summaryrefslogtreecommitdiffstats
path: root/sys/arm
Commit message (Collapse)AuthorAgeFilesLines
* Increase the maximum text size on ARM to 64MiB. Without this clang would beandrew2013-03-011-1/+3
| | | | | | | | | | sent a SIGABRT when it is loaded as it is too large. This is the smallest power of two MiB value that allows us to execute clang. While here wrap it in an #ifndef to be consistent with the other architectures. Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp>
* Eliminate a redundant #include: machine/pmap.h is already includedalc2013-03-017-7/+0
| | | | through vm/pmap.h.
* Copy the definition of VM_MAX_AUTOTUNE_MAXUSERS from i386. (See r242847.)alc2013-03-011-0/+4
| | | | Tested by: andrew
* Enable uart driver for A10.ganbold2013-03-012-3/+3
| | | | Approved by: gonzo@
* Add platform DMA support to SDHCI driver for BCM2835gonzo2013-02-281-4/+300
| | | | | Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp> Reviewed by: ian@
* Add driver for BCM2835's DMA enginegonzo2013-02-283-0/+790
| | | | | This is a version of code submitted by Daisuke Aoyama <aoyama at peach.ne.jp> with some architectural changes.
* MFcalloutng:mav2013-02-287-126/+68
| | | | | | | 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.
* Complete r247297:attilio2013-02-287-14/+0
| | | | | | Remove unused inclusions of vm/vm_pager.h and vm/vnode_pager.h. Sponsored by: EMC / Isilon storage division
* Fix typogonzo2013-02-271-1/+1
|
* - Initialize GPIO_OE register based on pinmux configurationgonzo2013-02-271-0/+14
| | | | | | Although AM335x TRM states that GPIO_OE register is not used and just reflects pads configuration in practice it does control pin behavior and shoiuld be set in addition to pinmux setup
* Merge from vmc-playground branch:attilio2013-02-262-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Replace the sub-optimal uma_zone_set_obj() primitive with more modern uma_zone_reserve_kva(). The new primitive reserves before hand the necessary KVA space to cater the zone allocations and allocates pages with ALLOC_NOOBJ. More specifically: - uma_zone_reserve_kva() does not need an object to cater the backend allocator. - uma_zone_reserve_kva() can cater M_WAITOK requests, in order to serve zones which need to do uma_prealloc() too. - When possible, uma_zone_reserve_kva() uses directly the direct-mapping by uma_small_alloc() rather than relying on the KVA / offset combination. The removal of the object attribute allows 2 further changes: 1) _vm_object_allocate() becomes static within vm_object.c 2) VM_OBJECT_LOCK_INIT() is removed. This function is replaced by direct calls to mtx_init() as there is no need to export it anymore and the calls aren't either homogeneous anymore: there are now small differences between arguments passed to mtx_init(). Sponsored by: EMC / Isilon storage division Reviewed by: alc (which also offered almost all the comments) Tested by: pho, jhb, davide
* Export vfp_init() prototype, for use in the MP code.cognet2013-02-261-0/+1
|
* Fix SMP build.cognet2013-02-261-4/+3
|
* Don't forget to init the VFP stuff for all cores.cognet2013-02-261-0/+8
|
* Be more conservative in auto-sizing and capping the kmem submap. Inalc2013-02-261-3/+3
| | | | | | | fact, use the same values here that we use on 32-bit x86 and MIPS. Some machines were reported to have problems with the more aggressive values. Reported and tested by: andrew
* Eliminate a redundant #include: machine/pmap.h is already includedalc2013-02-262-2/+0
| | | | through vm/pmap.h.
* RPi users might want to touch the boot partition, which is always FATkientzle2013-02-261-2/+5
| | | | | | formatted on this board, so compile-in MSDOSFS. Comment out the compiled-in FDT and explain why.
* Merge from vmobj-rwlock branch:attilio2013-02-262-2/+0
| | | | | | | | Remove unused inclusion of vm/vm_pager.h and vm/vnode_pager.h. Sponsored by: EMC / Isilon storage division Tested by: pho Reviewed by: alc
* Fix off-by-one error in sanity checksgonzo2013-02-251-7/+7
|
* - Fix off-by-one error when returning max pin numbergonzo2013-02-251-7/+6
| | | | | | - Fix GPIOGET for output pins. Requesting state for output pin is valid operation, get the state from TI_GPIO_DATAOUTX register
* Add macroses to properly map IO peripherals memory window fromgonzo2013-02-231-0/+14
| | | | ARM physical memory address space to VideoCore address space
* Add basic and not very reliable protection against going to sleep withmav2013-02-231-1/+8
| | | | | | | thread scheduled by interrupt fired after we entered critical section. None of cpu_sleep() implementations on ARM check sched_runnable() now, so put the first line of defence here. This mostly fixes unexpectedly long sleeps in synthetic tests of calloutng code and probably other situations.
* Initialize vm_max_kernel_address on non-FDT platforms. (This should havealc2013-02-2013-24/+32
| | | | | | | | been included in r246926.) The second parameter to pmap_bootstrap() is redundant. Eliminate it. Reviewed by: andrew
* Spelling fixesgonzo2013-02-191-2/+2
| | | | Spotted by: N. J. Mann
* Roll back change of frequency for initialization sequence since itgonzo2013-02-191-7/+6
| | | | | | seems to cause more problems then previous behavior: it either breaks initilization sequence in other places or uncovers problems with high-speed mode timing for SDHCI 3.0
* Define gpio constants rather than using enum.ganbold2013-02-191-11/+7
| | | | | | | | Fix pull-up and pull-down values of gpio. According to A10 user manual possible pull register values are 00 Pull-up/down disable, 01 Pull-up, 10 Pull-down. Approved by: gonzo@
* Place a cap on the size of the kernel's heap, also known as the kmemalc2013-02-181-0/+8
| | | | | | | | submap. Otherwise, after r246204, the auto-scaling logic in kern_malloc.c tries to create a kmem submap that consumes the entire kernel map on a Pandaboard with 1 GB of RAM. Tested by: gonzo
* On arm, like sparc64, the end of the kernel map varies from one type ofalc2013-02-184-4/+9
| | | | | | | | | machine to another. Therefore, VM_MAX_KERNEL_ADDRESS can't be a constant. Instead, #define it to be a variable, vm_max_kernel_address, just like we do on sparc64. Reviewed by: kib Tested by: ian
* - Add hw.bcm2835.sdhci.hs tunable to enable/disable highspeed mode ingonzo2013-02-171-1/+23
| | | | | | | | | | | | | | | | | SDHCI driver Suggested by: Daisuke Aoyama - Set initilization sequence frequency to 8MHz. It should fix Data CRC errors. Standard requires initialization sequence to be executed at 400KHz but on this hardware low frequncies seems to cause Data CRC errors. Value was derived from analyzing hardware signals after Raspberry Pi is powered up. Before any data is read though DATA line adapter's clock frequency is changed to 8MHz. Modern cards should function fine at 8MHz but for older MMC cards it can be overriden by setting hw.bcm2835.sdhci.min_freq tunable.
* In _bus_dmamap_addseg(), the return value must be zero for error, or the sizeian2013-02-162-4/+4
| | | | | actually added to the segment (possibly smaller than the requested size if boundary crossings had to be avoided).
* Set map->pmap before _bus_dmamap_count_pages() tries to use it.ian2013-02-151-1/+2
| | | | Obtained from: Thomas Skibo <ThomasSkibo@sbcglobal.net>
* Enable USB1 (which is EHCI0) for Allwinner A10gonzo2013-02-153-0/+7
| | | | Tested by: ganbold@
* Fix copy-paste error in bus_space_unmap argumentgonzo2013-02-151-5/+3
| | | | | | While I'm at it - fix some style(9) issues Submitted by: Mikael Urankar
* Reform the busdma API so that new types may be added without modifyingkib2013-02-122-689/+579
| | | | | | | | | | | | | | | | | | | | | every architecture's busdma_machdep.c. It is done by unifying the bus_dmamap_load_buffer() routines so that they may be called from MI code. The MD busdma is then given a chance to do any final processing in the complete() callback. The cam changes unify the bus_dmamap_load* handling in cam drivers. The arm and mips implementations are updated to track virtual addresses for sync(). Previously this was done in a type specific way. Now it is done in a generic way by recording the list of virtuals in the map. Submitted by: jeff (sponsored by EMC/Isilon) Reviewed by: kan (previous version), scottl, mjacob (isp(4), no objections for target mode changes) Discussed with: ian (arm changes) Tested by: marius (sparc64), mips (jmallet), isci(4) on x86 (jharris), amd64 (Fabian Keil <freebsd-listen@fabiankeil.de>)
* Remove debug outputgonzo2013-02-121-1/+0
|
* A10 reset mechanism is the same for all boards in this family so removegonzo2013-02-111-6/+3
| | | | | redundant reset function implementation pointer. We might want to ressurect it later when support for other Allwinner chips is introduced.
* Add watchdog driver for Allwinner A10gonzo2013-02-113-0/+230
|
* Fix breakage introduced in r246318.kientzle2013-02-091-1/+2
|
* Use and set gpio pin to high to power up usb.ganbold2013-02-061-1/+17
| | | | Approved by: gonzo@
* Remove two dead assignments andganbold2013-02-051-14/+14
| | | | | | | make use of sc more explicit and clear Submitted by: Christoph Mallon Approved by: gonzo@
* Add gpio driver and update dts and kernel config accordingly.ganbold2013-02-053-1/+523
| | | | Approved by: gonzo@
* Use the STACKALIGN macro to alight the stack rather than with a magic mask.andrew2013-02-041-5/+4
| | | | Submitted by: Christoph Mallon <christoph.mallon gmx.de>
* Another overhaul of the CPSW driver for BeagleBonekientzle2013-02-033-901/+1586
| | | | | | | | | | | | | | Major changes: * Finally tracked down the flow control setting that seems to have been causing TX stalls and watchdog timeouts * RX and TX paths now share a lot more code * TX interrupt is no longer used; we instead GC finished tx queue entries at the bottom of the start routine. * TX start now queues fragmented packets directly; it only invokes defrag() for occasional very fragmented packets. * "sysctl dev.cpsw" dumps controller statistics and queue counts * Host Error Interrupt will give extensive debugging information if the controller chokes on the queued data.
* Tweaks to standard BEAGLEBONE config, as recently discussedkientzle2013-02-021-3/+3
| | | | on FreeBSD-ARM.
* Add VM_KMEM_SIZE_SCALE parameter set to 2 (50%) for all ARM platforms.andre2013-02-011-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | VM_KMEM_SIZE_SCALE specifies which fraction of the available physical memory, after deduction of the kernel itself and other early statically allocated memory, can be used for the kmem_map. The kmem_map provides for all UMA/malloc allocations in KVM space. Previously ARM was using a fixed kmem_map size of (12*1024*1024) = 12MB without regard to effectively available memory. This is too small for recent ARM SoC with more than 128MB of RAM. For reference a description of others related kmem_map parameters: VM_KMEM_SIZE default start size of kmem_map if SCALE is not defined VM_KMEM_SIZE_MIN hard floor on the kmem_map size VM_KMEM_SIZE_MAX hard ceiling on the kmem_map size VM_KMEM_SIZE_SCALE fraction of the available real memory to be used for the kmem_map, limited by the MIN and MAX parameters. Tested by: ian MFC after: 1 week
* Use pmap_kextract() instead of inlining the page table walk.kib2013-01-311-29/+1
| | | | | | | Remove the comment referencing non-existing code. Reviewed by: cognet, ian (previous version) Tested by: ian
* Add simple clock driver and ehci glue code for a10ganbold2013-01-295-5/+571
| | | | | | Update dts and kernel config Approved by: gonzo@
* Fix case for some signal names.dmarion2013-01-281-51/+51
| | | | Submitted by: Emmanuel Vadot <elbarto@megadrive.org>
* Filled in missing pads for AM335x / Beaglebone.dmarion2013-01-281-130/+122
| | | | Submitted by: Emmanuel Vadot <elbarto@megadrive.org>
* Fix off-by-one errors in low-level arm9 and arm10 cache maintenance routines.ian2013-01-272-30/+22
| | | | | | | | | | | | | | | | | | | | In all the routines that loop through a range of virtual addresses, the loop is controlled by subtracting the cache line size from the total length of the request. After the subtract, a 'bpl' instruction was used, which branches if the result of the subtraction is zero or greater, but we need to exit the loop when the count hits zero. Thus, all the bpl instructions in those loops have been changed to 'bhi' (branch if greater than zero). In addition, the two routines that walk through the cache using set-and-index were correct, but confusing. The loop control for those has been simplified, just so that it's easier to see by examination that the code is correct. Routines for other arm architectures and generations still have the bpl instruction, but compensate for the off-by-one situation by decrementing the count register by one before entering the loop. PR: arm/174461 Approved by: cognet (mentor)
OpenPOWER on IntegriCloud