summaryrefslogtreecommitdiffstats
path: root/sys/arm
Commit message (Collapse)AuthorAgeFilesLines
* Oooops, get the end of the memory right.cognet2007-10-251-1/+1
|
* KERNBASE should really be KERNVIRTADDR there too.cognet2007-10-241-2/+2
| | | | MFC after: 1 week
* In ate_get_mac(), try to get the mac address in the right order, at leastcognet2007-10-241-6/+6
| | | | | | | | in the same order as it's set in ate_set_mac. I remember a discussion about this on -arm, but apparently nothing was done. Warner, is this wrong ? X-MFC After: proper review
* Handle the case where PHYSADDR != KERNPHYSADDR (ie we do not load the kernelcognet2007-10-241-7/+11
| | | | | | at the beginning of the RAM). MFC After: 1 week
* Correct a comment, this was not true anymore.cognet2007-10-241-2/+2
|
* correct guard variable names.imp2007-10-181-3/+3
|
* Merge support from p4 (from NetBSD) for arm9e and arm10, arm11 cores. Notimp2007-10-187-22/+834
| | | | | | yet connected to the build, but reduces diffs to p4 repo. Obtained from: NetBSD
* Merge definitions for ARM9E, ARM10 and ARM11 processors from p4 (whichimp2007-10-181-2/+14
| | | | got them from NetBSD).
* Use the direct mapping, if available, for pmap_zero_page_xscale() as well.cognet2007-10-161-0/+15
|
* Do not use __XSCALE__ to detect if pld/strd/ldrd is available, usecognet2007-10-135-25/+25
| | | | | | _ARM_ARCH_5E instead. MFC After: 3 days
* Define _ARM_ARCH_5E too, so that we know if pld/strd/ldrd are available.cognet2007-10-131-1/+6
| | | | MFC After: 3 days
* Spelling fix for interupt -> interruptkevlo2007-10-121-2/+2
|
* Make the PCI code aware of PCI domains (aka PCI segments) so we canmarius2007-09-303-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | support machines having multiple independently numbered PCI domains and don't support reenumeration without ambiguity amongst the devices as seen by the OS and represented by PCI location strings. This includes introducing a function pci_find_dbsf(9) which works like pci_find_bsf(9) but additionally takes a domain number argument and limiting pci_find_bsf(9) to only search devices in domain 0 (the only domain in single-domain systems). Bge(4) and ofw_pcibus(4) are changed to use pci_find_dbsf(9) instead of pci_find_bsf(9) in order to no longer report false positives when searching for siblings and dupe devices in the same domain respectively. Along with this change the sole host-PCI bridge driver converted to actually make use of PCI domain support is uninorth(4), the others continue to use domain 0 only for now and need to be converted as appropriate later on. Note that this means that the format of the location strings as used by pciconf(8) has been changed and that consumers of <sys/pciio.h> potentially need to be recompiled. Suggested by: jhb Reviewed by: grehan, jhb, marcel Approved by: re (kensmith), jhb (PCI maintainer hat)
* Ok I hope I got it right this time.cognet2007-09-275-25692/+40
| | | | | | | | | | After discussion with Sam, switch back to use firmware(9) instead of having the firmware in hex format. Put the binary firmware uuencoded into sys/contrib/dev/npe, and slap a LICENSE file, as found on the Intel website. Approved by: re (blanket), mux (mentor) MFC After: 1 week
* Now that Intel changed the license for the NPE firmware, import it directlycognet2007-09-275-46/+25693
| | | | | | | hexed into our tree, instead of requiring the user to download it. Approved by: re (blanket) MFC after: 1 week
* Fix a comment to reflect the truth.cognet2007-09-271-1/+1
| | | | | Spotted out by: Marius Nuennerich <marius.nuennerich AT gmx D0T de> Approved by: re (blanket)
* Change the management of cached pages (PQ_CACHE) in two fundamentalalc2007-09-251-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ways: (1) Cached pages are no longer kept in the object's resident page splay tree and memq. Instead, they are kept in a separate per-object splay tree of cached pages. However, access to this new per-object splay tree is synchronized by the _free_ page queues lock, not to be confused with the heavily contended page queues lock. Consequently, a cached page can be reclaimed by vm_page_alloc(9) without acquiring the object's lock or the page queues lock. This solves a problem independently reported by tegge@ and Isilon. Specifically, they observed the page daemon consuming a great deal of CPU time because of pages bouncing back and forth between the cache queue (PQ_CACHE) and the inactive queue (PQ_INACTIVE). The source of this problem turned out to be a deadlock avoidance strategy employed when selecting a cached page to reclaim in vm_page_select_cache(). However, the root cause was really that reclaiming a cached page required the acquisition of an object lock while the page queues lock was already held. Thus, this change addresses the problem at its root, by eliminating the need to acquire the object's lock. Moreover, keeping cached pages in the object's primary splay tree and memq was, in effect, optimizing for the uncommon case. Cached pages are reclaimed far, far more often than they are reactivated. Instead, this change makes reclamation cheaper, especially in terms of synchronization overhead, and reactivation more expensive, because reactivated pages will have to be reentered into the object's primary splay tree and memq. (2) Cached pages are now stored alongside free pages in the physical memory allocator's buddy queues, increasing the likelihood that large allocations of contiguous physical memory (i.e., superpages) will succeed. Finally, as a result of this change long-standing restrictions on when and where a cached page can be reclaimed and returned by vm_page_alloc(9) are eliminated. Specifically, calls to vm_page_alloc(9) specifying VM_ALLOC_INTERRUPT can now reclaim and return a formerly cached page. Consequently, a call to malloc(9) specifying M_NOWAIT is less likely to fail. Discussed with: many over the course of the summer, including jeff@, Justin Husted @ Isilon, peter@, tegge@ Tested by: an earlier version by kris@ Approved by: re (kensmith)
* Make sure we do not call _arm_bzero() or _arm_memcpy() if the size is not atcognet2007-09-221-3/+3
| | | | | | least the minimum asked by the driver. Approved by: re (blanket)
* Add various macros for the ADMA unit.cognet2007-09-221-0/+39
| | | | Approved by: re (blanket)
* Add a driver for the 7seg found on the CRB board, largely based on thecognet2007-09-228-0/+470
| | | | | | IQ31244 version. Approved by: re (blanket)
* Twist the RAS logic a bit to avoid branching.cognet2007-09-221-12/+9
| | | | | MFC After: 1 week Approved by: re (blanket)
* Remove dead code.cognet2007-09-191-1/+0
| | | | | Approved by: re (blanket) Beer from: jadawin
* Kill bogus printf debugs.imp2007-09-161-7/+0
| | | | Approved by: re@ (blanket)
* Kill overly verbose messages about setting bus width.imp2007-09-161-5/+2
| | | | Approved by: re@ (blanket)
* It has been observed on the mailing lists that the different categoriesalc2007-09-151-4/+4
| | | | | | | | | | | | | | | of pages don't sum to anywhere near the total number of pages on amd64. This is for the most part because uma_small_alloc() pages have never been counted as wired pages, like their kmem_malloc() brethren. They should be. This changes fixes that. It is no longer necessary for the page queues lock to be held to free pages allocated by uma_small_alloc(). I removed the acquisition and release of the page queues lock from uma_small_free() on amd64 and ia64 weeks ago. This patch updates the other architectures that have uma_small_alloc() and uma_small_free(). Approved by: re (kensmith)
* It's probably time I learn C.cognet2007-09-121-2/+2
| | | | | | | | | | Fix a few while (!uart_getreg() & SR1_TNF) when while (!(uart_getreg() & SR18TNF)) was really meant. This driver should die anyway, it's awful, and uart_ns8250 should be fine for the StrongArm 1110. I'll kill it later. Submitted by: Mikhael Skvorts Approved by: re (blanket)
* In __bswap16_var(), make sure the 16 upper bits are cleared; whilecognet2007-09-091-2/+4
| | | | | | | optimizing, gcc4 doesn't always do so. Reported by: Nathan Whitehorn Approved by: re (blanket)
* There's no need to re-read PCIR_COMMAND once we set it.cognet2007-09-041-2/+0
| | | | Approved by: re (blanket)
* Just wbinv if both PREREAD and PREWRITE are set.cognet2007-08-181-3/+9
| | | | | | | In PREREAD, just invalidate the cache lines, and do not write back them, if the buffer is properly aligned. Approved by: re (blanket)
* Ooops, we need to define TD_LOCK here.cognet2007-08-081-0/+1
| | | | | Approved by: re (blanket) Pointy hat to: cognet
* Add cast to silent gcc warnings.cognet2007-08-071-24/+24
| | | | Approved by: re (blanket)
* Use the third argument of cpu_switch(), as done for i386/amd63, as it iscognet2007-08-071-6/+20
| | | | | | required for ULE. Approved by: re (blanket)
* Add in all the USB devices and all the wireless goo. The KB9202 hasimp2007-07-311-0/+44
| | | | | | | only USB 1.1 speeds available, but this shouldn't hurt. Now that we have working usb support for this board, this is a natural followup. Approved by: re (kensmith)
* Make USB work on the KB9202{,A,B} boards. This has been in p4 for aboutimp2007-07-313-3/+36
| | | | | | | | | | | | | | | | | 7 months. You must have JP6 in the 1-2 position to supply power to the USB devices, but I've used uftdi, uplcom and umass successfully. If you have it in 2-3, then nothing will show up. Also, if you have the FQPA packaging for the AT91RM9200 (like the KN9202 boards have), you will get the following message uhub0: device problem (IOERROR), disabling port 2 due to a hardware erratum. It is safe to ignore as it is about pins that aren't brought out on the FQPA package and aren't proeprly terminated either. Alas, there's no register to read to tell the FQPA from the BGA versions. Submitted by: Daan Vreeken Approved by: re (kensmith)
* MFppc:cognet2007-07-311-1/+1
| | | | | | | | | | | | | | | revision 1.66 date: 2007/07/31 06:23:26; author: marcel; state: Exp; lines: +2 -2 Fix backward compatibility of the "old" (i.e. FreeBSD6) lseek syscall. It was broken when a new lseek syscall was introduced. The problem is that we need to swap the 32-bit td_retval values for the __syscall indirect syscall when the actual syscall has a 32-bit return value. Hence, we need to exclude lseek(2). And this means the "old" lseek(2) as well -- which we didn't. Based on a patch from: grehan@ Approved by: re (blanket)
* CRB config file.cognet2007-07-271-0/+114
| | | | Approved by: re (blanket)
* XScale core 3 definitions.cognet2007-07-271-0/+5
| | | | Approved by: re (blanket)
* Cleanupcognet2007-07-272-8/+2
| | | | Approved by: re (blanket)
* Do not define NIRQ, it is already defined in include/intr.hcognet2007-07-271-5/+0
| | | | Approved by: re (blanket)
* Share the timer and watchdog drivers with the i81342. It's the same,cognet2007-07-272-7/+70
| | | | | | except it uses different registers. Approved by: re (blanket)
* Add initial IOP342 support.cognet2007-07-2716-0/+2869
| | | | | | Thanks to Intel for providing sample hardware. Approved by: re (blanket)
* Say if the L2 cache is enabled or disabled as well.cognet2007-07-271-0/+6
| | | | Approved by: re (blanket)
* Handle supersections and L2 cache.cognet2007-07-271-30/+36
| | | | Approved by: re (blanket)
* Use supersection instead of standard sections to map the whole memorycognet2007-07-271-11/+29
| | | | | | when available. Approved by: re (blanket)
* Fix the cache mode description.cognet2007-07-271-5/+5
| | | | Approved by: re (blanket)
* Properly handle supersections.cognet2007-07-272-14/+46
| | | | | | Make sure we cache entries in the L2 cache. Approved by: re (blanket)
* Bring in two bandaids to get the elf trampoline to work again, until I findcognet2007-07-271-5/+15
| | | | | | | | | | a proper solution. - Add a dummy entry point which just calls the C entry points, and try to make sure it's the first code in the binary. - Copy a bit more than func_end to try to copy the whole load_kernel() function. gcc4 puts code behind the func_end symbol. Approved by: re (blanket)
* Add a new set of functions to handle L2 cache. Make them no-op for everycognet2007-07-272-16/+67
| | | | | | CPU except Xscale core 3. Approved by: re (blanket)
* Import xscale core 3 cache management functions.cognet2007-07-271-0/+397
| | | | Approved by: re (blanket)
* INTR_FILTER bits for armcognet2007-07-271-2/+44
| | | | Approved by: re (blanket)
OpenPOWER on IntegriCloud