summaryrefslogtreecommitdiffstats
path: root/sys/arm
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of bootinfo for good in loader (U-Boot-based) and ARM.raj2010-07-112-78/+0
| | | | | For FDT-enabled platforms the device tree is a modern replacement for bootinfo config data.
* Move prototypes for kern_sigtimedwait() and kern_sigprocmask() tojhb2010-06-301-0/+1
| | | | <sys/syscallsubr.h> where all other kern_<syscall> prototypes live.
* Move ARM nexus rman initialization to attach routine.raj2010-06-161-7/+7
| | | | | | This fixes a panic, which started to trigger after r209129 cleanup. Submitted by: Andrew Turner
* Turn off cache if there's more than one kernel mapping, and one is writable.cognet2010-06-151-1/+1
| | | | Submitted by: Mark Tinguely
* Temporarily bring back the ARM bootinfo (and make tinderbox happy).raj2010-06-142-0/+78
| | | | BI will be eliminated for good when powerpc transition to FDT is complete.
* Convert Marvell ARM platforms to FDT convention.raj2010-06-1332-2361/+1549
| | | | | | | | | | | | | | | | | | | | | | | | | The following systems are involved: - DB-88F5182 - DB-88F5281 - DB-88F6281 - DB-78100 - SheevaPlug This overhaul covers the following major changes: - All integrated peripherals drivers for Marvell ARM SoC, which are currently in the FreeBSD source tree are reworked and adjusted so they derive config data out of the device tree blob (instead of hard coded / tabelarized values). - Since the common FDT infrastrucutre (fdtbus, simplebus) is used we say good by to obio / mbus drivers and numerous hard-coded config data. Note that world needs to be built WITH_FDT for the affected platforms. Reviewed by: imp Sponsored by: The FreeBSD Foundation.
* Initial FDT infrastructure elements for ARM.raj2010-06-132-0/+105
| | | | | Reviewed by: imp Sponsored by: The FreeBSD Foundation
* Improve style.raj2010-06-131-1/+2
|
* Relax one of the new assertions in pmap_enter() a little. Specifically,alc2010-06-111-1/+2
| | | | | | allow pmap_enter() to be performed on an unmanaged page that doesn't have VPO_BUSY set. Having VPO_BUSY set really only matters for managed pages. (See, for example, pmap_remove_write().)
* Reduce the scope of the page queues lock and the number ofalc2010-06-101-22/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PG_REFERENCED changes in vm_pageout_object_deactivate_pages(). Simplify this function's inner loop using TAILQ_FOREACH(), and shorten some of its overly long lines. Update a stale comment. Assert that PG_REFERENCED may be cleared only if the object containing the page is locked. Add a comment documenting this. Assert that a caller to vm_page_requeue() holds the page queues lock, and assert that the page is on a page queue. Push down the page queues lock into pmap_ts_referenced() and pmap_page_exists_quick(). (As of now, there are no longer any pmap functions that expect to be called with the page queues lock held.) Neither pmap_ts_referenced() nor pmap_page_exists_quick() should ever be passed an unmanaged page. Assert this rather than returning "0" and "FALSE" respectively. ARM: Simplify pmap_page_exists_quick() by switching to TAILQ_FOREACH(). Push down the page queues lock inside of pmap_clearbit(), simplifying pmap_clear_modify(), pmap_clear_reference(), and pmap_remove_write(). Additionally, this allows for avoiding the acquisition of the page queues lock in some cases. PowerPC/AIM: moea*_page_exits_quick() and moea*_page_wired_mappings() will never be called before pmap initialization is complete. Therefore, the check for moea_initialized can be eliminated. Push down the page queues lock inside of moea*_clear_bit(), simplifying moea*_clear_modify() and moea*_clear_reference(). The last parameter to moea*_clear_bit() is never used. Eliminate it. PowerPC/BookE: Simplify mmu_booke_page_exists_quick()'s control flow. Reviewed by: kib@
* Don't set PG_WRITEABLE in pmap_enter() unless the page is managed.alc2010-06-051-1/+2
| | | | Correct a typo in a nearby comment on sparc64.
* In pmap_enter_locked(), don't require the vector page to be VPO_BUSY.alc2010-06-011-3/+4
|
* Push down page queues lock acquisition in pmap_enter_object() andalc2010-05-261-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pmap_is_referenced(). Eliminate the corresponding page queues lock acquisitions from vm_map_pmap_enter() and mincore(), respectively. In mincore(), this allows some additional cases to complete without ever acquiring the page queues lock. Assert that the page is managed in pmap_is_referenced(). On powerpc/aim, push down the page queues lock acquisition from moea*_is_modified() and moea*_is_referenced() into moea*_query_bit(). Again, this will allow some additional cases to complete without ever acquiring the page queues lock. Reorder a few statements in vm_page_dontneed() so that a race can't lead to an old reference persisting. This scenario is described in detail by a comment. Correct a spelling error in vm_page_dontneed(). Assert that the object is locked in vm_page_clear_dirty(), and restrict the page queues lock assertion to just those cases in which the page is currently writeable. Add object locking to vnode_pager_generic_putpages(). This was the one and only place where vm_page_clear_dirty() was being called without the object being locked. Eliminate an unnecessary vm_page_lock() around vnode_pager_setsize()'s call to vm_page_clear_dirty(). Change vnode_pager_generic_putpages() to the modern-style of function definition. Also, change the name of one of the parameters to follow virtual memory system naming conventions. Reviewed by: kib
* Initial loader(8) support for Flattened Device Tree.raj2010-05-251-0/+1
| | | | | | | | | | o This is disabled by default for now, and can be enabled using WITH_FDT at build time. o Tested with ARM and PowerPC. Reviewed by: imp Sponsored by: The FreeBSD Foundation
* Roughly half of a typical pmap_mincore() implementation is machine-alc2010-05-241-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | independent code. Move this code into mincore(), and eliminate the page queues lock from pmap_mincore(). Push down the page queues lock into pmap_clear_modify(), pmap_clear_reference(), and pmap_is_modified(). Assert that these functions are never passed an unmanaged page. Eliminate an inaccurate comment from powerpc/powerpc/mmu_if.m: Contrary to what the comment says, pmap_mincore() is not simply an optimization. Without a complete pmap_mincore() implementation, mincore() cannot return either MINCORE_MODIFIED or MINCORE_REFERENCED because only the pmap can provide this information. Eliminate the page queues lock from vfs_setdirty_locked_object(), vm_pageout_clean(), vm_object_page_collect_flush(), and vm_object_page_clean(). Generally speaking, these are all accesses to the page's dirty field, which are synchronized by the containing vm object's lock. Reduce the scope of the page queues lock in vm_object_madvise() and vm_page_dontneed(). Reviewed by: kib (an earlier version)
* Reorganize syscall entry and leave handling.kib2010-05-232-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend struct sysvec with three new elements: sv_fetch_syscall_args - the method to fetch syscall arguments from usermode into struct syscall_args. The structure is machine-depended (this might be reconsidered after all architectures are converted). sv_set_syscall_retval - the method to set a return value for usermode from the syscall. It is a generalization of cpu_set_syscall_retval(9) to allow ABIs to override the way to set a return value. sv_syscallnames - the table of syscall names. Use sv_set_syscall_retval in kern_sigsuspend() instead of hardcoding the call to cpu_set_syscall_retval(). The new functions syscallenter(9) and syscallret(9) are provided that use sv_*syscall* pointers and contain the common repeated code from the syscall() implementations for the architecture-specific syscall trap handlers. Syscallenter() fetches arguments, calls syscall implementation from ABI sysent table, and set up return frame. The end of syscall bookkeeping is done by syscallret(). Take advantage of single place for MI syscall handling code and implement ptrace_lwpinfo pl_flags PL_FLAG_SCE, PL_FLAG_SCX and PL_FLAG_EXEC. The SCE and SCX flags notify the debugger that the thread is stopped at syscall entry or return point respectively. The EXEC flag augments SCX and notifies debugger that the process address space was changed by one of exec(2)-family syscalls. The i386, amd64, sparc64, sun4v, powerpc and ia64 syscall()s are changed to use syscallenter()/syscallret(). MIPS and arm are not converted and use the mostly unchanged syscall() implementation. Reviewed by: jhb, marcel, marius, nwhitehorn, stas Tested by: marcel (ia64), marius (sparc64), nwhitehorn (powerpc), stas (mips) MFC after: 1 month
* On entry to pmap_enter(), assert that the page is busy. While I'malc2010-05-161-1/+13
| | | | | | | | | | | | | | | | | | | | here, make the style of assertion used by pmap_enter() consistent across all architectures. On entry to pmap_remove_write(), assert that the page is neither unmanaged nor fictitious, since we cannot remove write access to either kind of page. With the push down of the page queues lock, pmap_remove_write() cannot condition its behavior on the state of the PG_WRITEABLE flag if the page is busy. Assert that the object containing the page is locked. This allows us to know that the page will neither become busy nor will PG_WRITEABLE be set on it while pmap_remove_write() is running. Correct a long-standing bug in vm_page_cowsetup(). We cannot possibly do copy-on-write-based zero-copy transmit on unmanaged or fictitious pages, so don't even try. Previously, the call to pmap_remove_write() would have failed silently.
* Catchup with new prototype for db_printf().cognet2010-05-141-1/+1
|
* The FA526 belongs to the ARM9TDMI familykevlo2010-05-122-3/+1
|
* Push down the page queues into vm_page_cache(), vm_page_try_to_cache(), andalc2010-05-081-12/+12
| | | | | | | | | | | vm_page_try_to_free(). Consequently, push down the page queues lock into pmap_enter_quick(), pmap_page_wired_mapped(), pmap_remove_all(), and pmap_remove_write(). Push down the page queues lock into Xen's pmap_page_is_mapped(). (I overlooked the Xen pmap in r207702.) Switch to a per-processor counter for the total number of pages cached.
* Add support for FA626TE.kevlo2010-05-046-61/+66
| | | | Tested on GM8181 development board.
* Add new tunable 'net.link.ifqmaxlen' to set default send interfacesobomax2010-05-032-3/+3
| | | | | | | | | | queue length. The default value for this parameter is 50, which is quite low for many of today's uses and the only way to modify this parameter right now is to edit if_var.h file. Also add read-only sysctl with the same name, so that it's possible to retrieve the current value. MFC after: 1 month
* Import mvs(4) - Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA controllersmav2010-05-021-0/+1
| | | | | | driver for CAM ATA subsystem. This driver supports same hardware as atamarvell, ataadaptec and atamvsata drivers from ata(4), but provides many additional features, such as NCQ, PMP, etc.
* On Alan's advice, rather than do a wholesale conversion on a singlekmacy2010-04-302-5/+10
| | | | | | | | | | | | architecture from page queue lock to a hashed array of page locks (based on a patch by Jeff Roberson), I've implemented page lock support in the MI code and have only moved vm_page's hold_count out from under page queue mutex to page lock. This changes pmap_extract_and_hold on all pmaps. Supported by: Bitgravity Inc. Discussed with: alc, jeffr, and kib
* Style: use #define<TAB> instead of #define<SPACE>.kib2010-04-271-1/+1
| | | | | Noted by: bde, pluknet gmail com MFC after: 11 days
* Resurrect pmap_is_referenced() and use it in mincore(). Essentially,alc2010-04-241-0/+14
| | | | | | | | | | | | | | | | | pmap_ts_referenced() is not always appropriate for checking whether or not pages have been referenced because it clears any reference bits that it encounters. For example, in mincore(), clearing the reference bits has two negative consequences. First, it throws off the activity count calculations performed by the page daemon. Specifically, a page on which mincore() has called pmap_ts_referenced() looks less active to the page daemon than it should. Consequently, the page could be deactivated prematurely by the page daemon. Arguably, this problem could be fixed by having mincore() duplicate the activity count calculation on the page. However, there is a second problem for which that is not a solution. In order to clear a reference on a 4KB page, it may be necessary to demote a 2/4MB page mapping. Thus, a mincore() by one process can have the side effect of demoting a superpage mapping within another process!
* Move the constants specifying the size of struct kinfo_proc intokib2010-04-241-0/+2
| | | | | | | | | | machine-specific header files. Add KINFO_PROC32_SIZE for struct kinfo_proc32 for architectures providing COMPAT_FREEBSD32. Add CTASSERT for the size of struct kinfo_proc32. Submitted by: pluknet Reviewed by: imp, jhb, nwhitehorn MFC after: 2 weeks
* Change USB_DEBUG to #ifdef and allow it to be turned off. Previously this hadthompsa2010-04-227-0/+7
| | | | | | the illusion of a tunable setting but was always turned on regardless. MFC after: 1 week
* Add BUS_SPACE_UNRESTRICTED and define it to be ~0, just like all theimp2010-04-081-0/+2
| | | | other platforms.
* Oops! Wrong copy-paste in r206053.mav2010-04-011-1/+1
|
* Fill extended ATA command registers in cPRD to support 48bit commands.mav2010-04-011-0/+5
|
* Build modules for this config to make sure they stay buildable...imp2010-03-291-1/+1
|
* Pass the correct pointer to fled_cb().rpaulo2010-03-261-1/+1
|
* Change the arguments of exec_setregs() so that it receives a pointernwhitehorn2010-03-251-3/+3
| | | | | | | | to the image_params struct instead of several members of that struct individually. This makes it easier to expand its arguments in the future without touching all platforms. Reviewed by: jhb
* Make sure we insert and remove the PV entries related to unmanaged kernelcognet2010-03-211-3/+5
| | | | | mappings into the kernel pmap, not into the pmap related to the pmap_enter_pv()/pmap_remove_pv() call.
* Add support for the Samsung S3C2xx0 family of ARM SoCs written byimp2010-03-2021-0/+3664
| | | | | | | | 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
* fix type in commentticso2010-03-121-1/+1
|
* Fix ARM cache handling yet more.raj2010-03-112-2/+9
| | | | | | | | | | | | 1) vm_machdep.c: remove the dangling allocations so they do not un-necessarily turn off the cache upon consecutive access. 2) busdma_machdep.c: remove the same amount than shadow mapped. Reported by: Maks Verver Submitted by: Mark Tinguely Reviewed by: Grzegorz Bernacki MFC after: 3 days
* Let detailed info about CPU features print on Marvell Sheeva CPU as well.raj2010-03-111-0/+2
| | | | | | | Provide missing entry in the cpu_classes[]. Reported by: Maks Verver MFC after: 1 week
* Provide correct TCLK value for Kirkwood A1 silicon revision.raj2010-03-052-2/+4
| | | | | | | While there improve SOC ID output accordingly. Obtained from: Semihalf MFC after: 1 week
* simplify hash calculationticso2010-02-281-5/+1
|
* remove debug leftoverticso2010-02-281-1/+0
|
* Fix multicast hashes.ticso2010-02-281-2/+17
| | | | Atmel uses a simple xor hash instead of the typical crc based one.
* Do not force verbose and single mode in non-metadata boot case.raj2010-02-241-2/+1
| | | | We want to go multi-user by default also in case of booting without loader(8).
* Update the commented out option for omitting the sysctl descriptions; itbrucec2010-02-243-3/+3
| | | | | | was committed as NO_SYSCTL_DESCR. Approved by: rrs (mentor)
* Fix previous commit: led_func() doesn't exist, it should be fled_cb().rpaulo2010-02-221-1/+1
| | | | Pointed out by: bz
* Show the cpu info for fa526kevlo2010-02-203-1/+7
| | | | Submitted by: Yohanes Nugroho <yohanes at gmail dot com>
* Correct both FA526/FA626TE cpu ids since the cpu id is alwayskevlo2010-02-201-2/+2
| | | | masked with 0xfffffff0
* The NetBSD Foundation has granted permission to remove clauses 3 and 4.imp2010-02-1616-112/+0
| | | | Obtained from: NetBSD
* Adjust style (following the already existing rules) for the newlyattilio2010-02-1514-14/+14
| | | | | | introduced option DEADLKRES. Reported by: danfe, julian, avg
OpenPOWER on IntegriCloud