summaryrefslogtreecommitdiffstats
path: root/sys/arm/s3c2xx0
Commit message (Collapse)AuthorAgeFilesLines
* Eliminate irq_dispatch.S. Move the data items it contained into arm/intr.cian2014-03-101-1/+0
| | | | | | | | and the functionality it provided into arm/exception.S. Rename the main irq handling routine from arm_handler_execute() to arm_irq_handler() to make it more congruent with how other exception handlers are named, and also update its signature to reflect what has long been reality: it is passed just a trapframe pointer, no interrupt number argument.
* The arm exception entry points currently vector through a function pointerian2014-03-091-8/+0
| | | | | | | | to the actual handler routine. All the pointers are static-intialized to the only handlers available, and yet various platform-specific inits still set those pointers (to the values they're already initialized to). Begin to drain the swamp by removing all the redundant external declarations and runtime setting of the pointers that's scattered around various places.
* It turns out a global variable is the only straightforward way toian2014-02-091-0/+1
| | | | | | | | | | | communicate the kernel's physical load address from where it's known in initarm() into cpu_mp_start() which is called from non-arm code and takes no parameters. This adds the global variable and ensures that all the various copies of initarm() set it. It uses the variable in cpu_mp_start(), eliminating the last uses of KERNPHYSADDR outside of locore.S (where we can now calculate it instead of relying on the constant).
* Replace compile-time constant KERNPHYSADDR with abp_physaddr (determinedian2014-02-091-2/+2
| | | | | at runtime) where it's trivial to do so. Another breadcrumb on the trail to a kernel that can be loaded at any 1MB boundary.
* Consolidate code related to setting up physical memory configuration intoian2014-02-081-11/+15
| | | | | | | | | | | | | | a new physmem.c file. The new code provides helper routines that can be used by legacy SoCs and newer FDT-based systems. There are routines to add one or more regions of physically contiguous ram, and exclude one or more physically contiguous regions of ram. Ram can be excluded from crash dumps, from being given over to the vm system for allocation management, or both. After all the included and excluded regions have been added, arm_physmem_init_kernel_globals() processes the regions into the global dump_avail and phys_avail arrays and realmem and physmem variables that communicate memory configuration to the rest of the kernel. Convert all existing SoCs to use the new helper code.
* Use abp_physaddr for the physical address over KERNPHYSADDR. This helps usandrew2014-02-061-1/+2
| | | | remove the need to load the kernel at a fixed address.
* Remove STARTUP_PAGETABLE_ADDR from the ARM configs and replace it withandrew2014-01-281-1/+0
| | | | | | | | | memory at the end of the kernel. This helps reduce the SoC and board specific configuration required. Reviewed by: bsdimp Tested by: jmg (armeb), br
* Introduce grab and ungrab upcalls. When the kernel desires to grab theimp2014-01-191-1/+23
| | | | | | | | | | console, it calls the grab functions. These functions should turn off the RX interrupts, and any others that interfere. This makes mountroot prompt work again. If there's more generalized need other than prompting, many of these routines should be expanded to do those new things. Reviewed by: bde (with reservations)
* Fix typo in comment.gavin2013-11-241-1/+1
|
* Call cpu_setup() from the initarm() routine on platforms that don't useian2013-11-211-0/+1
| | | | | | | the common FDT-aware initarm() in arm/machdep.c. Pointed out by: cognet Pointy hat to: ian
* Move remaining code and data related to static device mapping into theian2013-11-041-2/+3
| | | | | | | new devmap.[ch] files. Emphasize the MD nature of these things by using the prefix arm_devmap_ on the function and type names (already a few of these things found their way into MI code, hopefully it will be harder to do by accident in the future).
* Remove the duplicated implementations of some bus_space functions and useian2013-11-042-91/+8
| | | | | | the essentially identical generic implementations instead. The generic implementations differ only in the spelling of a couple variable names and some formatting differences.
* A few last BUS_PROBE_NOWILDCARDs are in order.nwhitehorn2013-10-291-1/+1
|
* Remove redundant redeclarations of uart_s3c2410_class indim2013-10-092-3/+0
| | | | | | | | sys/arm/s3c2xx0/uart_bus_s3c2410.c and uart_cpu_s3c2410.c, to silence two gcc warnings. Approved by: re (gjb) X-MFC-With: r252394
* Use the correct address when calling kva_free()cognet2013-08-101-1/+1
| | | | | Pointy hat to: cognet Spotted out by: alc
* - The address lies in the bus space handle, not in the cookiecognet2013-08-101-5/+5
| | | | | | - Use the right address when calling kva_free() (Is there any reason why the s3c2xx0 comes with its own version of bs_map/ bs_unmap ? It seems to be just the same as in bus_space_generic.c)
* Replace kernel virtual address space allocation with vmem. This providesjeff2013-08-071-2/+2
| | | | | | | | | | | | | transparent layering and better fragmentation. - Normalize functions that allocate memory to use kmem_* - Those that allocate address space are named kva_* - Those that operate on maps are named kmap_* - Implement recursive allocation handling for kmem_arena in vmem. Reviewed by: alc Tested by: pho Sponsored by: EMC / Isilon Storage Division
* Fix low-level uart drivers that set their fifo sizes in the softc too late.ian2013-04-011-9/+9
| | | | | | | | | uart(4) allocates send and receiver buffers in attach() before it calls the low-level driver's attach routine. Many low-level drivers set the fifo sizes in their attach routine, which is too late. Other drivers set them in the probe() routine, so that they're available when uart(4) allocates buffers. This fixes the ones that were setting the values too late by moving the code to probe().
* Eliminate a redundant #include: machine/pmap.h is already includedalc2013-03-011-1/+0
| | | | through vm/pmap.h.
* Complete r247297:attilio2013-02-281-2/+0
| | | | | | Remove unused inclusions of vm/vm_pager.h and vm/vnode_pager.h. Sponsored by: EMC / Isilon storage division
* Initialize vm_max_kernel_address on non-FDT platforms. (This should havealc2013-02-201-1/+2
| | | | | | | | been included in r246926.) The second parameter to pmap_bootstrap() is redundant. Eliminate it. Reviewed by: andrew
* Create a common set_stackptrs in sys/arm/machdep.c.andrew2012-09-221-11/+1
| | | | | | | On single core devices set_stackptrs is only ever called with cpu = 0 in initarm and will be identical to the existing function. On SMP this needs to be implemented for sys/arm/mp_machdep.c, but the implementations are identical for each SoC.
* Set machine correctly on ARM. This allows universe to use the correct worldandrew2012-08-181-0/+1
| | | | | | when building each kernel. Reviewed by: imp
* Merging projects/armv6, part 1gonzo2012-08-153-5/+3
| | | | | | | | | Cummulative patch of changes that are not vendor-specific: - ARMv6 and ARMv7 architecture support - ARM SMP support - VFP/Neon support - ARM Generic Interrupt Controller driver - Simplification of startup code for all platforms
* Move unmask IRQ function call up to nexus device level.gonzo2012-07-171-1/+0
| | | | | | | | | | FDT-enabled targets were broken after r238043 that relies on device up the hierarchy to properly setup interrupt. nexus device for ARM platforms did job only partially: setting handler but not unmasking interrupt. Unmasking was performed by platform code. Reviewed by: andrew@
* Remove some unused variables/externs that have been copied too many times...imp2012-07-101-9/+0
|
* Remove stray line from merge.imp2012-06-151-1/+0
|
* More Linux boot support. Create arm_dump_avail_init() to initializeimp2012-06-141-12/+2
| | | | | | this array either from Linux boot data, when enabled, or in the typical way that most ports do it. arm_pyhs_avail_init is coming soon since it must be a separate function.
* Modify all the arm platform files to call parse_boot_param passing inimp2012-06-141-3/+2
| | | | | | | | | | | | | the boot parameters from initarm first thing. parse_boot_param parses the boot arguments and converts them to the /boot/loader metadata the rest of the kernel uses. parse_boot_param is a weak alias to fake_preload_metadata, which all the platforms use now, but may become more extensive in the future. Since it is a weak symbol, specific boards may define their own parse_boot_param to interface to custom boot loaders. Reviewed by: cognet@, Ian Lapore
* Trim trailing whitespace...imp2012-06-135-20/+20
|
* Pull out the common code to initialise proc0 & thread0 from initarm to aandrew2012-06-101-10/+2
| | | | | | common function. Reviewed by: imp
* Minor rearrangement of the locore <-> initarm interface. Pass in aimp2012-06-031-1/+1
| | | | | | structure with the first 4 registers to allow a wider range of boot loaders to work. Future commits will make use of this to centralize support for the different loaders.
* Get myself a brain, move the call to init_param1() before the first use incognet2011-02-211-2/+3
| | | | | | | at91_machdep.c, and do it for the files I forgot the first time Reported by: andrew Submitted by: pluknet
* Move the load address of the kernel to the start of KVA as theandrew2011-01-291-4/+4
| | | | | | s3c24x0 copy of initarm expects the kernel to be loaded there. Approved by: imp (mentor)
* Make MSGBUF_SIZE kernel option a loader tunable kern.msgbufsize.pluknet2011-01-211-4/+3
| | | | | | | Submitted by: perryh pluto.rain.com (previous version) Reviewed by: jhb Approved by: kib (mentor) Tested by: universe
* Remove bogus usage of INTR_FAST. "Fast" interrupts are now indicated byjhb2011-01-061-1/+1
| | | | | registering a filter handler rather than a threaded handler. Also remove a bogus use of INTR_MPSAFE for a filter.
* Allow external interrupts.andrew2010-07-242-7/+163
| | | | | | | | - Set the external pin to interrupt in bus_setup_intr - Implement bus_config_intr for external interrupts - Extend arm_{,un}mask_irq to work with external interrupts Approved by: imp (mentor)
* Add the s3c24x0 real time clock driverandrew2010-07-224-1/+194
| | | | Approved by: imp (mentor)
* Rework how device memory is allocated on the s3c24x0 CPU's.andrew2010-07-225-81/+67
| | | | | | | | | | | The device virtual addresses are now able to be allocated at runtime rather than from the static pmap_devmap at boot. The only exception is memory required before we have had a chance to dynamically allocate it. While here reduce the space between the statically allocated devices by reducing the distance between the virtual addresses. Approved by: imp (mentor)
* Add support for the Samsung S3C2xx0 family of ARM SoCs written byimp2010-03-2020-0/+3577
Andrew Turner. The kernel supports the LN2410SBC evaluation board, and likely others. These parts (or similar ones) are in some open hardware designs for phones. Submitted by: Andrew Turner
OpenPOWER on IntegriCloud