summaryrefslogtreecommitdiffstats
path: root/sys/arm
Commit message (Collapse)AuthorAgeFilesLines
* Remove the unused major/minor numbers from iodev and memdev.ed2008-06-251-1/+0
| | | | | | | | | Now that st_rdev is being automatically generated by the kernel, there is no need to define static major/minor numbers for the iodev and memdev. We still need the minor numbers for the memdev, however, to distinguish between /dev/mem and /dev/kmem. Approved by: philip (mentor)
* Fix a typo: i80321_pci_probe -> i81342_pci_probekevlo2008-06-121-1/+1
|
* Add the pxa_teardown_intr() bus method function to de-associate thekevlo2008-06-101-10/+17
| | | | interrupt handler
* Pull all the code to deal with bus space methods into a shared set ofkevlo2008-06-102-102/+7
| | | | routines.
* Since we create a DMA tag "mtag" for TX map with bus_dmamap_create(),wkoszek2008-06-091-2/+2
| | | | | | | | | we must synchronize such a map against "mtag" with bus_dmamap_sync(), not the tag designated for RX map. Fix it. Approved by: cognet
* Remove sa1_cache_clean_addrkevlo2008-06-091-2/+0
|
* Unify arminit() and clean upkevlo2008-06-091-58/+1
|
* Support for the XScale PXA255 SoC as found on the Gumstix Basix and Connexbenno2008-06-0617-0/+3873
| | | | | | | | | | | | | boards. This is enough to net-boot to multiuser. Also supported is the SMSC LAN91C111 parts used on the netCF, netDUO and netMMC add-on boards. I'll be putting some instructions on how to boot this on the Gumstix boards online soon. This is still fairly rough and will be refined over time but I felt it was better to get this out there where other people can help out.
* Release the resources for the registers for the TWI device withimp2008-05-281-1/+1
| | | | | | SYS_RES_MEMORY to match how we allocate them... Noticed by: Ian Lepore
* The VM system no longer uses setPQL2(). Remove it and its helpers.alc2008-05-231-8/+0
|
* Retire pmap_addr_hint(). It is no longer used.alc2008-05-181-7/+0
|
* Add a stub for pmap_align_superpage() on machines that don't (yet)alc2008-05-091-0/+10
| | | | implement pmap-level support for superpages.
* Expand kdb_alt_break a little, most commonly used with the optionpeter2008-05-041-2/+13
| | | | | | | | | | | | | | | | | | | ALT_BREAK_TO_DEBUGGER. In addition to "Enter ~ ctrl-B" (to enter the debugger), there is now "Enter ~ ctrl-P" (force panic) and "Enter ~ ctrl-R" (request clean reboot, ala ctrl-alt-del on syscons). We've used variations of this at work. The force panic sequence is best used with KDB_UNATTENDED for when you just want it to dump and get on with it. The reboot request is a safer way of getting into single user than a power cycle. eg: you've hosed the ability to log in (pam, rtld, etc). It gives init the reboot signal, which causes an orderly reboot. I've taken my best guess at what the !x86 and non-sio code changes should be. This also makes sio release its spinlock before calling KDB/DDB.
* - Add an integer argument to idle to indicate how likely we are to wakejeff2008-04-251-1/+8
| | | | | | | | | | | | | | | from idle over the next tick. - Add a new MD routine, cpu_wake_idle() to wakeup idle threads who are suspended in cpu specific states. This function can fail and cause the scheduler to fall back to another mechanism (ipi). - Implement support for mwait in cpu_idle() on i386/amd64 machines that support it. mwait is a higher performance way to synchronize cpus as compared to hlt & ipis. - Allow selecting the idle routine by name via sysctl machdep.idle. This replaces machdep.cpu_idle_hlt. Only idle routines supported by the current machine are permitted. Sponsored by: Nokia
* Now that all platforms use genclock, shuffle things around slightlyphk2008-04-221-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for better structure. Much of this is related to <sys/clock.h>, which should really have been called <sys/calendar.h>, but unless and until we need the name, the repocopy can wait. In general the kernel does not know about minutes, hours, days, timezones, daylight savings time, leap-years and such. All that is theoretically a matter for userland only. Parts of kernel code does however care: badly designed filesystems store timestamps in local time and RTC chips almost universally track time in a YY-MM-DD HH:MM:SS format, and sometimes in local timezone instead of UTC. For this we have <sys/clock.h> <sys/time.h> on the other hand, deals with time_t, timeval, timespec and so on. These know only seconds and fractions thereof. Move inittodr() and resettodr() prototypes to <sys/time.h>. Retain the names as it is one of the few surviving PDP/VAX references. Move startrtclock() to <machine/clock.h> on relevant platforms, it is a MD call between machdep.c/clock.c. Remove references to it elsewhere. Remove a lot of unnecessary <sys/clock.h> includes. Move the machdep.disable_rtc_set sysctl to subr_rtc.c where it belongs. XXX: should be kern.disable_rtc_set really, it's not MD.
* Make genclock standard on all platforms.phk2008-04-219-9/+0
| | | | Thanks to: grehan & marcel for platform support on ia64 and ppc.
* On the AT91, we need to write on the EOI register after we handle ancognet2008-04-203-1/+14
| | | | | | | | interrupt. So, add a new function pointer, arm_post_filter, which defaults to NULL, and which will be used as the post_filter arg for intr_event_create(). Set it properly for the AT91, so that it boots again. Reported by: hps
* Multi-bss (aka vap) support for 802.11 devices.sam2008-04-203-6/+0
| | | | | | | | | | | Note this includes changes to all drivers and moves some device firmware loading to use firmware(9) and a separate module (e.g. ral). Also there no longer are separate wlan_scan* modules; this functionality is now bundled into the wlan module. Supported by: Hobnob and Marvell Reviewed by: many Obtained from: Atheros (some bits)
* - Add the interrupt vector number to intr_event_create so MI code canjeff2008-04-111-1/+1
| | | | | | | | | | | | lookup hard interrupt events by number. Ignore the irq# for soft intrs. - Add support to cpuset for binding hardware interrupts. This has the side effect of binding any ithread associated with the hard interrupt. As per restrictions imposed by MD code we can only bind interrupts to a single cpu presently. Interrupts can be 'unbound' by binding them to all cpus. Reviewed by: jhb Sponsored by: Nokia
* Remove some long-dead codekevlo2008-04-087-62/+1
| | | | Reviewed by: cognet
* Remove bus_space_generic.c from the per-plarform files. Having it in thecognet2008-04-053-3/+0
| | | | per-cpu files should be enough.
* Add bus_space_generic.c for the i81342 as well.cognet2008-04-051-0/+1
|
* Add a MI intr_event_handle() routine for the non-INTR_FILTER case. Thisjhb2008-04-051-43/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | allows all the INTR_FILTER #ifdef's to be removed from the MD interrupt code. - Rename the intr_event 'eoi', 'disable', and 'enable' hooks to 'post_filter', 'pre_ithread', and 'post_ithread' to be less x86-centric. Also, add a comment describe what the MI code expects them to do. - On amd64, i386, and powerpc this is effectively a NOP. - On arm, don't bother masking the interrupt unless the ithread is scheduled in the non-INTR_FILTER case to match what INTR_FILTER did. Also, don't bother unmasking the interrupt in the post_filter case if we never masked it. The INTR_FILTER case had been doing this by having arm_unmask_irq for the post_filter (formerly 'eoi') hook. - On ia64, stray interrupts are now masked for the non-INTR_FILTER case. They were already masked in the INTR_FILTER case. - On sparc64, use the a NULL pre_ithread hook and use intr_enable_eoi() for both the 'post_filter' and 'post_ithread' hooks to match what the non-INTR_FILTER code did. - On sun4v, retire the ithread wrapper hack by using an appropriate 'post_ithread' hook instead (it's what 'post_ithread'/'enable' was designed to do even in 5.x). Glanced at by: piso Reviewed by: marius Requested by: marius [1], [5] Tested on: amd64, i386, arm, sparc64
* Fix stupid typoimp2008-04-041-1/+1
|
* Make kernel.tramp build properly on ARM9E.raj2008-04-041-0/+2
| | | | | Reviewed by: imp Approved by: cognet (mentor)
* Now really add the bus_space_generic.c file...raj2008-04-031-0/+146
| | | | | Reviewed by: sam Approved by: cognet (mentor)
* Refactor certain ARM bus space methods: instead of having multiple copies ofraj2008-04-0312-424/+38
| | | | | | | | the same code introduce sys/arm/arm/bus_space_generic.c for a shared set of routines. Reviewed by: sam Approved by: cognet (mentor)
* Fix AVILA build.raj2008-04-031-2/+2
| | | | | Reviewed by: sam Approved by: cognet(mentor)
* Take the first baby step towards unifying and cleaning up arminit():imp2008-04-038-306/+79
| | | | | | | | - Pull all the code to deal with the trampoline stuff into one centeralized place and use it from everywhere. - Some minor style tidiness Reviewed by: tinguely
* KERNBASE + 0x00200000 is the same thing as KERNVIRTADDR on thisimp2008-04-031-3/+2
| | | | | | platform, so use the latter in preference to the former. This makes the fake_preload setup be the same between kb920x_machdep.c and avila_machdep.c....
* Remove unnecessary #define.imp2008-04-031-1/+0
|
* Add kernel module support for nfslockd and krpc. Use the module systemdfr2008-03-279-0/+9
| | | | | | | to detect (or load) kernel NLM support in rpc.lockd. Remove the '-k' option to rpc.lockd and make kernel NLM the default. A user can still force the use of the old user NLM by building a kernel without NFSLOCKD and/or removing the nfslockd.ko module.
* When building a kernel module, define MAXCPU the same as SMP sojb2008-03-271-2/+2
| | | | that modules work with and without SMP.
* We need to prototype _start() as well, as we use it to test if we're runningcognet2008-03-221-0/+1
| | | | | | | from flash or from RAM. Reported by: imp MFC After: 3 days
* add hints to specify how NPE ports are mapped to MAC+PHY; thesesam2008-03-221-0/+8
| | | | | | | | could be commented out as they just duplicate the defaults that are built into the code Reviewed by: imp MFC after: 1 week
* Improve mac+phy configuration so that hints can be used to describesam2008-03-221-16/+80
| | | | | | | | | | | | | layouts different than the defaults: o hint.npe.0.mac="A", "B", etc. specifies the window for MAC register accesses o hint.npe.0.mii="A", "B", etc. specifies PHY registers o hint.npe.1.phy=%d specifies the PHY to map to a port This allows devices like NSLU to be setup w/o code changes and will also be used for forthcoming support for more Avila boards. Reviewed by: imp MFC after 1 week
* add usb devices and more wlan stuff now that usb is functionalsam2008-03-201-13/+19
| | | | MFC after: 1 month
* map device 5; the optional USB controller on Gateworks 2348 boardssam2008-03-201-3/+4
| | | | | | | shows up here instead of the minipci slot at J4 Reviewed by: cognet, imp MFC after: 1 week
* Simplify the interrupt code a bit:jhb2008-03-171-28/+4
| | | | | | | | | | | | - Always include the ie_disable and ie_eoi methods in 'struct intr_event' and collapse down to one intr_event_create() routine. The disable and eoi hooks simply aren't used currently in the !INTR_FILTER case. - Expand 'disab' to 'disable' in a few places. - Use function casts for arm and i386:intr_eoi_src() instead of wrapper routines since to trim one extra indirection. Compiled on: {arm,amd64,i386,ia64,ppc,sparc64} x {FILTER, !FILTER} Tested on: {amd64,i386} x {FILTER, !FILTER}
* In keeping with style(9)'s recommendations on macros, use a ';'rwatson2008-03-162-2/+2
| | | | | | | | | after each SYSINIT() macro invocation. This makes a number of lightweight C parsers much happier with the FreeBSD kernel source, including cflow's prcc and lxr. MFC after: 1 month Discussed with: imp, rink
* Add preliminary support for binding interrupts to CPUs:jhb2008-03-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add a new intr_event method ie_assign_cpu() that is invoked when the MI code wishes to bind an interrupt source to an individual CPU. The MD code may reject the binding with an error. If an assign_cpu function is not provided, then the kernel assumes the platform does not support binding interrupts to CPUs and fails all requests to do so. - Bind ithreads to CPUs on their next execution loop once an interrupt event is bound to a CPU. Only shared ithreads are bound. We currently leave private ithreads for drivers using filters + ithreads in the INTR_FILTER case unbound. - A new intr_event_bind() routine is used to bind an interrupt event to a CPU. - Implement binding on amd64 and i386 by way of the existing pic_assign_cpu PIC method. - For x86, provide a 'intr_bind(IRQ, cpu)' wrapper routine that looks up an interrupt source and binds its interrupt event to the specified CPU. MI code can currently (ab)use this by doing: intr_bind(rman_get_start(irq_res), cpu); however, I plan to add a truly MI interface (probably a bus_bind_intr(9)) where the implementation in the x86 nexus(4) driver would end up calling intr_bind() internally. Requested by: kmacy, gallatin, jeff Tested on: {amd64, i386} x {regular, INTR_FILTER}
* Respect RF_SHAREABLE flag in ARM nexus_setup_intr()raj2008-03-121-0/+3
| | | | | Reviewed by: imp Approved by: cognet (mentor)
* Improve ARM bus_dmamap_load_buffer() error handling.raj2008-03-121-2/+4
| | | | | | Reviewed by: imp Approved by: cognet (mentor) Spotted by: Grzegorz Bernacki gjb AT semihalf DOT com
* Remove kernel support for M:N threading.jeff2008-03-123-17/+0
| | | | | | | | While the KSE project was quite successful in bringing threading to FreeBSD, the M:N approach taken by the kse library was never developed to its full potential. Backwards compatibility will be provided via libmap.conf for dynamically linked binaries and static binaries will be broken.
* MFi386:cognet2008-03-061-1/+3
| | | | | | | | | | | | revision 1.6 date: 2004/08/21 18:50:34; author: alc; state: Exp; lines: +3 -1 Properly free the temporary sf_buf in uiomove_fromphys() if a copyin or copyout fails. Obtained from: DragonFlyBSD Spotted out by: Mark Tinguely MFC After: 3 days
* Remove unused pv_list_count from the vm_page, and pm_count from the structcognet2008-03-062-6/+0
| | | | | | pmap. Submitted by: Mark Tinguely
* Add rl(4) supportkevlo2008-03-051-0/+2
|
* Convert to be a 2-clause bsd-only license.kevlo2008-03-031-7/+0
| | | | Pointed out by: rwatson
* Remove errant % in license comment.rwatson2008-02-261-1/+1
| | | | MFC after: 3 days
* On the ixp425, when we fail to initialize the memory rman instance, therwatson2008-02-261-1/+1
| | | | | | panic message should read "memory", not "IRQ". MFC after: 3 days
OpenPOWER on IntegriCloud