summaryrefslogtreecommitdiffstats
path: root/sys/arm/sa11x0
Commit message (Collapse)AuthorAgeFilesLines
* Fix for arm and mips case the size of storage for sintrcnt/sintrnames.attilio2011-08-021-1/+1
| | | | | | | | | | It seems that "info as" is not much precise on what expect by pseudo-op .word, by the way. No MFC is previewed for this patch. Tested by: andreast, pluknet Approved by: re (kib)
* - Remove the eintrcnt/eintrnames usage and introduce the concept ofattilio2011-07-181-9/+4
| | | | | | | | | | | | | | | | sintrcnt/sintrnames which are symbols containing the size of the 2 tables. - For amd64/i386 remove the storage of intr* stuff from assembly files. This area can be widely improved by applying the same to other architectures and likely finding an unified approach among them and move the whole code to be MI. More work in this area is expected to happen fairly soon. No MFC is previewed for this patch. Tested by: pluknet Reviewed by: jhb Approved by: re (kib)
* Remove duplicate header includeskevlo2011-06-262-3/+0
|
* Call init_param1() much earlier, so that msgbufsize is non-zero when we wantcognet2011-02-131-2/+3
| | | | to map and use the msgbuf.
* The NetBSD Foundation has granted permission to remove clauses 3 and 4.imp2010-02-169-63/+0
| | | | Obtained from: NetBSD
* Eliminate an unnecessary vm include file.alc2009-11-041-1/+0
|
* Map DPCPU pages into ARM kernel VA space.raj2009-07-011-0/+3
| | | | | | | | | | | DPCPU area was not properly mapped into kernel VA space, which caused page fault on the first DPCPU access. This patch fixes the problem by mapping DPCPU area into kernel VA space. Submitted by: Michal Hajduk, Piotr Ziecik Reviewed by: cognet, stas Approved by: re (kib) Obtained from: Semihalf
* Implement a facility for dynamic per-cpu variables.jeff2009-06-231-0/+5
| | | | | | | | | | | | | | | - Modules and kernel code alike may use DPCPU_DEFINE(), DPCPU_GET(), DPCPU_SET(), etc. akin to the statically defined PCPU_*. Requires only one extra instruction more than PCPU_* and is virtually the same as __thread for builtin and much faster for shared objects. DPCPU variables can be initialized when defined. - Modules are supported by relocating the module's per-cpu linker set over space reserved in the kernel. Modules may fail to load if there is insufficient space available. - Track space available for modules with a one-off extent allocator. Free may block for memory to allocate space for an extent. Reviewed by: jhb, rwatson, kan, sam, grehan, marius, marcel, stas
* Pass the previously returned IRQ back to arm_get_next_irq() so thatmarcel2009-06-091-1/+1
| | | | | | | | | the implementation can guarantee forward progress in the event of a stuck interrupt or interrupt storm. This is especially critical for fast interrupt handlers, as they can cause a hard hang in that case. When first called, arm_get_next_irq() is passed -1. Obtained from: Juniper Networks, Inc.
* Move a comment to where it belongs.cognet2009-02-021-2/+1
| | | | Spotted out by: Christoph Mallon <christoph d0t mallon AT gmx d0t de>
* Remove unused variables.cognet2009-02-021-5/+0
| | | | Spotted out by: Christoph Mallon <christoph d0t mallon AT gmx d0t de>
* - Fix spelling error in comments.stas2008-12-011-1/+1
| | | | | | PR: arm/128891 Submitted by: Pavel Pankov <pankov_p@mail.ru> Approved by: kib (mentor)
* 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.
* Remove some long-dead codekevlo2008-04-081-4/+1
| | | | Reviewed by: cognet
* Fix stupid typoimp2008-04-041-1/+1
|
* Refactor certain ARM bus space methods: instead of having multiple copies ofraj2008-04-032-120/+8
| | | | | | | | the same code introduce sys/arm/arm/bus_space_generic.c for a shared set of routines. Reviewed by: sam Approved by: cognet (mentor)
* Take the first baby step towards unifying and cleaning up arminit():imp2008-04-031-43/+7
| | | | | | | | - 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
* Move the strongarm-specific files from conf/files.arm to sa11x0/files.sa11xO.cognet2007-12-021-0/+2
| | | | Submitted by: Rafal Jaworowski <raj AT semihalf DOT com>
* Fix for the panic("vm_thread_new: kstack allocation failed") andkib2007-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | silent NULL pointer dereference in the i386 and sparc64 pmap_pinit() when the kmem_alloc_nofault() failed to allocate address space. Both functions now return error instead of panicing or dereferencing NULL. As consequence, vmspace_exec() and vmspace_unshare() returns the errno int. struct vmspace arg was added to vm_forkproc() to avoid dealing with failed allocation when most of the fork1() job is already done. The kernel stack for the thread is now set up in the thread_alloc(), that itself may return NULL. Also, allocation of the first process thread is performed in the fork1() to properly deal with stack allocation failure. proc_linkup() is separated into proc_linkup() called from fork1(), and proc_linkup0(), that is used to set up the kernel process (was known as swapper). In collaboration with: Peter Holm Reviewed by: jhb
* 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)
* Don't expose the uart_ops structure directly, but instead havemarcel2007-04-022-4/+7
| | | | | | | | | | | | it obtained through the uart_class structure. This allows us to declare the uart_class structure as weak and as such allows us to reference it even when it's not compiled-in. It also allows is to get the uart_ops structure by name, which makes it possible to implement the dt tag handling in uart_getenv(). The side-effect of all this is that we're using the uart_class structure more consistently which means that we now also have access to the size of the bus space block needed by the hardware when we map the bus space, eliminating any hardcoding.
* Wrap a BUS_SETUP_INTR() line at 80.piso2007-03-061-2/+2
|
* Remove unused header file <machine/katelib.h>kevlo2007-02-261-2/+0
|
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-232-11/+12
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* - Add a uart_rxready() and corresponding device-specific implementationsmarius2007-01-181-6/+5
| | | | | | | | | | | | | | | that can be used to check whether receive data is ready, i.e. whether the subsequent call of uart_poll() should return a char, and unlike uart_poll() doesn't actually receive data. - Remove the device-specific implementations of uart_poll() and implement uart_poll() in terms of uart_getc() and the newly added uart_rxready() in order to minimize code duplication. - In sunkbd(4) take advantage of uart_rxready() and use it to implement the polled mode part of sunkbd_check() so we don't need to buffer a potentially read char in the softc. - Fix some mis-indentation in sunkbd_read_char(). Discussed with: marcel
* Threading cleanup.. part 2 of several.julian2006-12-061-4/+0
| | | | | | | | | | | | | | | | | | | | | | Make part of John Birrell's KSE patch permanent.. Specifically, remove: Any reference of the ksegrp structure. This feature was never fully utilised and made things overly complicated. All code in the scheduler that tried to make threaded programs fair to unthreaded programs. Libpthread processes will already do this to some extent and libthr processes already disable it. Also: Since this makes such a big change to the scheduler(s), take the opportunity to rename some structures and elements that had to be moved anyhow. This makes the code a lot more readable. The ULE scheduler compiles again but I have no idea if it works. The 4bsd scheduler still reqires a little cleaning and some functions that now do ALMOST nothing will go away, but I thought I'd do that as a separate commit. Tested by David Xu, and Dan Eischen using libthr and libpthread.
* Match bus space unmap prototype.kevlo2006-11-201-1/+2
| | | | Approved by: cognet
* Eliminate unused global variables.alc2006-11-111-2/+0
|
* Make KSE a kernel option, turned on by default in all GENERICjb2006-10-261-0/+4
| | | | | | | kernel configs except sun4v (which doesn't process signals properly with KSE). Reviewed by: davidxu@
* style(9) cleanup.kevlo2006-10-214-4/+0
| | | | Approved by: cognet
* Rewrite ARM_USE_SMALL_ALLOC so that instead of the current behavior, it mapscognet2006-08-081-8/+5
| | | | | | | | whole the physical memory, cached, using 1MB section mappings. This reduces the address space available for user processes a bit, but given the amount of memory a typical arm machine has, it is not (yet) a big issue. It then provides a uma_small_alloc() that works as it does for architectures which have a direct mapping.
* Don't forget to define uart_sa1110_vaddr.cognet2006-06-211-0/+2
| | | | Submitted by: kevlo
* Now that we use pmap_mapdev_boostrap(), we can get ride of the got_mmucognet2006-06-073-31/+3
| | | | | | hack. Submitted by: kevlo
* Convert the last offender, the SA1110 port, to ARM32_NEW_VM_LAYOUT, andcognet2006-06-061-6/+15
| | | | completely nuke the !ARM32_NEW_VM_LAYOUT case.
* The Assabet has 32MB of RAM, not 16.cognet2006-05-301-2/+3
| | | | Submitted by: kevlo
* Uncomment the call to cpu_idcache_wbinv_all() after the MMU has beencognet2006-05-301-1/+1
| | | | | | | | | | enabled. It has been commented out for a reason I forgot but I suspect does not apply anymore. Technically speaking it's not required to do it, has the data and the instruction cache have been disabled in _start(). However, it may change in the future, so I don't want to rely on this behavior. Submitted by: kevlo
* Nuke sa11x0_attach_args. It's a NetBSDIsm, and we have no use for it.cognet2006-05-291-9/+0
| | | | Submitted by: kevlo
* Remove any reference to enable_mmu(), it's been gone for a long time.cognet2006-05-261-1/+0
| | | | Submitted by: kevlo
* Use pmap_devmap_bootstrap(), instead of mapping the SACOM1 registerscognet2006-05-234-6/+42
| | | | | | | with pmap_map_entry. More use of macros instead of hardcoding the addr. Submitted by: kevlo
* Use macros instead of hardcoding the address for SACOM1. Also don'tcognet2006-05-223-4/+7
| | | | | | pretend we're working with SACOM3, as we're really mapping SACOM1. Submitted by: kevlo
* Implement sa11x0_bs_unmap.cognet2006-05-181-3/+15
| | | | Submitted by: kevlo
* Make this compile (UART_IPEND_* => SER_INT_*).cognet2006-05-181-2/+2
|
* When returning a resource that we've allocated with rman_reserve_resource,imp2006-04-201-0/+2
| | | | go ahead and set the rid for that resource.
* MFp4: Catchup with recent UART changes.cognet2006-04-061-2/+2
|
* Tweak how the MD code calls the fooclock() methods some. Instead ofjhb2005-12-221-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | passing a pointer to an opaque clockframe structure and requiring the MD code to supply CLKF_FOO() macros to extract needed values out of the opaque structure, just pass the needed values directly. In practice this means passing the pair (usermode, pc) to hardclock() and profclock() and passing the boolean (usermode) to hardclock_cpu() and hardclock_process(). Other details: - Axe clockframe and CLKF_FOO() macros on all architectures. Basically, all the archs were taking a trapframe and converting it into a clockframe one way or another. Now they can just extract the PC and usermode values directly out of the trapframe and pass it to fooclock(). - Renamed hardclock_process() to hardclock_cpu() as the latter is more accurate. - On Alpha, we now run profclock() at hz (profhz == hz) rather than at the slower stathz. - On Alpha, for the TurboLaser machines that don't have an 8254 timecounter, call hardclock() directly. This removes an extra conditional check from every clock interrupt on Alpha on the BSP. There is probably room for even further pruning here by changing Alpha to use the simplified timecounter we use on x86 with the lapic timer since we don't get interrupts from the 8254 on Alpha anyway. - On x86, clkintr() shouldn't ever be called now unless using_lapic_timer is false, so add a KASSERT() to that affect and remove a condition to slightly optimize the non-lapic case. - Change prototypeof arm_handler_execute() so that it's first arg is a trapframe pointer rather than a void pointer for clarity. - Use KCOUNT macro in profclock() to lookup the kernel profiling bucket. Tested on: alpha, amd64, arm, i386, ia64, sparc64 Reviewed by: bde (mostly)
* Provide a dump_avail[] variable, which contains the page ranges to becognet2005-10-031-4/+5
| | | | | | | dumped. For iq31244_machdep.c, attempt to recognize hints provided by the elf trampoline.
* Fix multiple abuses of __RMAN_RESOURCE_VISIBLE in the arm code.cognet2005-09-253-10/+21
| | | | Spotted out by: phk
* - MFp4: modify slightly the arm intr API, there's arm CPUs with more than 32cognet2005-06-091-16/+14
| | | | | interrupts. - Implement teardown methods where appropriate.
* pmap_update() is gone.cognet2005-04-131-1/+0
|
* Start all license statements with /*-imp2005-01-059-9/+9
|
OpenPOWER on IntegriCloud