summaryrefslogtreecommitdiffstats
path: root/sys/arm/lpc
Commit message (Collapse)AuthorAgeFilesLines
* Move arm's devmap to some generic place, so it can be usedbr2016-04-261-4/+4
| | | | | | | | | by other architectures. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D6091 Sponsored by: DARPA, AFRL Sponsored by: HEIF5
* Rename ARM_INTRNG and MIPS_INTRNG to INTRNG. This will help with machineandrew2016-04-151-1/+1
| | | | | | | independent code that needs to know about INTRNG such as PCI drivers. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation
* Fix fallout from r292180 (Dec 2015)... ensure that every driver which hasian2016-03-211-0/+1
| | | | | | | | | a DRIVER_MODULE() referencing mmc_driver has a MODULE_DEPEND() on mmc. This is because the kernel linker only searches for symbols in dependent modules, so loading sdhci_pci (and other bus-flavors of sdhci) would fail when mmc was not compiled into the kernel (even if you hand-loaded mmc first). (Thanks to jilles@ for providing the vital clue about the kernel linker.)
* Stop defining fdt_pic_table when building for ARM_INTRNG.andrew2016-02-111-0/+2
|
* Remove the arm KERNPHYSADDR option as it is no longer used. The makeandrew2015-12-221-1/+0
| | | | option is still in existance as it is used to build the trampoline code.
* Move the DRIVER_MODULE() statements that declare mmc(4) to be a child ofian2015-12-141-0/+1
| | | | | | the various bridge drivers out of dev/mmc.c and into the bridge drivers. Requested by: jhb (almost two years ago; better late than never)
* Move more bus_space_* files to be built by files.arm. This leaves theandrew2015-11-211-2/+0
| | | | | | | definition in a file.* file under sys/arm/arm in the few cases we need it for non-fdt platforms. Sponsored by: ABT Systems Ltd
* Build the cpufunc_asm_* files based on the cpu type, not which config fileandrew2015-03-291-1/+0
| | | | we happen to be building.
* We don't use cpufunc_asm_armv5.S in any of these configs, remove it.andrew2015-03-291-1/+0
|
* Implement GPIO_GET_BUS() method for all GPIO drivers.loos2015-01-311-3/+20
| | | | | Add helper routines to deal with attach and detach of gpiobus and gpioc devices that are common to all drivers.
* Rename bus_space-v6.c to bus_space_base.c, because it's not v6-specifician2015-01-211-1/+1
| | | | | and now some v5 Marvell systems are using it. Only define fdt_bus_tag if option FDT is defined.
* Use arm/bus_space-v6.c for all armv6 systems, the essentially identicalian2015-01-212-148/+1
| | | | files for lpc and xilinx aren't needed. Also, fix a couple paste-os.
* Add 64-bit DMA support in the XHCI controller driver.hselasky2015-01-051-0/+1
| | | | | | | - Fix some comments and whitespace while at it. MFC after: 1 month Submitted by: marius@
* Reduce the diff between the lpc interrupt controller in head and arm_intrngandrew2014-12-211-19/+23
|
* Make the GPIO children attach to the first unit available and not only toloos2014-10-281-2/+2
| | | | | | | | | unit 0. It seems that this 'simplification' was copied to all GPIO drivers in tree. This fix a bug where a GPIO controller could fail to attach its children (gpioc and gpiobus) if another GPIO driver attach first.
* Mechanically convert to if_inc_counter().glebius2014-09-191-5/+5
|
* Add the start of the ARM platform code. This is based on the PowerPCandrew2014-05-171-5/+6
| | | | | | | | | | platform code, it is expected these will be merged in the future when the ARM code is more complete. Until more boards can be tested only use this with the Raspberry Pi and rrename the functions on the other SoCs. Reviewed by: ian@
* Rename platform_gpio_init to be SoC specificandrew2014-05-103-3/+3
|
* 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.
* Replace many pasted identical definitions of cpu_initclocks() with a commonian2014-02-261-6/+0
| | | | | | | | implementation in arm/machdep.c. Most arm platforms either don't need to do anything, or just need to call the standard eventtimer init routines. A generic implementation that does that is now provided via weak linkage. Any platform that needs to do something different can provide a its own implementation to override the generic one.
* Follow r261352 by updating all drivers which are children of simplebusian2014-02-0211-0/+39
| | | | | | | | | | | | | to check the status property in their probe routines. Simplebus used to only instantiate its children whose status="okay" but that was improper behavior, fixed in r261352. Now that it doesn't check anymore and probes all its children; the children all have to do the check because really only the children know how to properly interpret their status property strings. Right now all existing drivers only understand "okay" versus something- that's-not-okay, so they all use the new ofw_bus_status_okay() helper.
* 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
* Add #include <machine/fdt.h> to a few files that used to get it viaian2014-01-051-0/+1
| | | | pollution from other headers.
* Convert from using fdt_immr style to arm_devmap_add_entry() to makeian2014-01-054-38/+41
| | | | | | | | | | | | | | | | | | static device mappings. This SoC relied heavily on the fact that all devices were static-mapped at a fixed address, and it (rather bogusly) used bus_space read and write calls passing hard-coded virtual addresses instead of proper bus handles, relying on the fact that the virtual addresses of the mappings were known at compile time, and relying on the implementation details of arm bus_space never changing. All such usage was replaced with calls to bus_space_map() to obtain a proper bus handle for the read/write calls. This required adjusting some of the #define values that map out hardware registers, and some of them were renamed in the process to make it clear which were defining absolute physical addresses and which were defining offsets. (The ones that just define offsets don't appear to be referenced and probably serve no value other than perhaps documentation.)
* Fix undefined behavior: (1 << 31) is not defined as 1 is an int and thiseadler2013-11-302-4/+4
| | | | | | | | | | | | | shifts into the sign bit. Instead use (1U << 31) which gets the expected result. This fix is not ideal as it assumes a 32 bit int, but does fix the issue for most cases. A similar change was made in OpenBSD. Discussed with: -arch, rdivacky Reviewed by: cperciva
* Call initarm_lastaddr() later in the init sequence, after establishingian2013-11-051-4/+8
| | | | | | | | | | | | | | | | | | | static device mappings, rather than as the first of the initializations that a platform can hook into. This allows a platform to allocate KVA from the top of the address space downwards for things like static device mapping, and return the final "last usable address" result after that and other early init work is done. Because some platforms were doing work in initarm_lastaddr() that needs to be done early, add a new initarm_early_init() routine and move the early init code to that routine on those platforms. Rename platform_devmap_init() to initarm_devmap_init() to match all the other init routines called from initarm() that are designed to be implemented by platform code. Add a comment block that explains when these routines are called and the type of work expected to be done in each of them.
* 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).
* Sweep up a bit of arm-land fallout after r257244; include necessaryian2013-10-281-0/+1
| | | | headers directly that are no longer available via accidental include.
* Retire arm_remap_nocache() and the data and constants associated with it.ian2013-10-271-1/+1
| | | | | | The only remaining user was the code that allocates bounce pages for armv4 busdma. It's not clear why bounce pages would need uncached memory, but if that ever changes, kmem_alloc_attr() would be the way to get it.
* Remove #include <machine/frame.h> from all the arm code that doesn'tian2013-10-276-6/+0
| | | | | | really need it. That would be almost everywhere it was included. Add it in a couple files that really do need it and were previously getting it by accident via another header.
* Remove all #include <machine/pmap.h> from arm code. It's alreadyian2013-10-271-1/+0
| | | | | | | included by vm/pmap.h, which is a prerequisite for arm/machine/pmap.h so there's no reason to ever include it directly. Thanks to alc@ for pointing this out.
* Remove all the instances of '#undef DEBUG' from kernel.loos2013-10-252-6/+0
| | | | | Suggested by: rpaulo Approved by: adrian (mentor)
* MFcalloutng:mav2013-02-281-20/+12
| | | | | | | Switch eventtimers(9) from using struct bintime to sbintime_t. Even before this not a single driver really supported full dynamic range of struct bintime even in theory, not speaking about practical inexpediency. This change legitimates the status quo and cleans up the code.
* Mechanically substitute flags from historic mbuf allocator withglebius2012-12-051-1/+1
| | | | | | | | | malloc(9) flags within sys. Exceptions: - sys/contrib not touched - sys/mbuf.h edited manually
* Fix typo; s/ouput/outputkevlo2012-11-071-1/+1
|
* Merge the FDT versions of initarm.andrew2012-11-031-503/+9
| | | | | | | | | The copies of initarm used on platforms with FDT support were almost identical. The differences were pulled out into separate functions that were called by initarm. This change merges the, now identical, copies of initarm and a few of it's support functions. This is a step towards a common kernel on ARMv6.
* Merge r242125 into the other ARMv6 copies of initarm.andrew2012-10-311-0/+5
|
* Move the call to platform_gpio_init() into initarm_gpio_init() to reduceandrew2012-10-301-5/+5
| | | | the diff to the other FDT versions of initarm.
* Create the new initarm_ functions to reduce the diff to the other FDTandrew2012-09-261-11/+25
| | | | versions of initarm
* Use arm_dump_avail_init to build the dump_avail arrayandrew2012-09-261-6/+1
|
* Start to clean up the lpc initarm as it also uses FDT.andrew2012-09-261-12/+18
|
* Update different versions of physmap_init to be identical in preparationandrew2012-09-231-3/+13
| | | | for merging them.
* Reduce the diff between the FDT implementations of initarm.andrew2012-09-221-4/+4
| | | | This only touches whitespace and comments.
* Create a common set_stackptrs in sys/arm/machdep.c.andrew2012-09-221-11/+2
| | | | | | | 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
* Switch lpc initarm() to use struct arm_boot_params and therefore fixjceel2012-08-151-33/+7
| | | | | | EA3250 kernel build. Approved by: gonzo
* Merging of projects/armv6, part 8gonzo2012-08-1520-0/+6692
r235162: Initial LPC32x0 support. Includes DTS file for Embedded Artists EA3250 board. Peripherals currently supported: - Serial ports - Interrupt controller - Timers - Ethernet - USB host - Framebuffer (in conjunction with SSD1289 LCD controller) - RTC - SPI - GPIO Submitted by: Jakub Wojciech Klama <jceel@freebsd.org>
OpenPOWER on IntegriCloud