Commit Graph

130 Commits

Author SHA1 Message Date
thorpej 62a064e24e Bump initial kernel PTs to 4. 2003-09-09 20:42:38 +00:00
thorpej 472c98cf7a Fix think'o in last. Pointed out by Izumi Tsutsui. 2003-07-27 04:52:28 +00:00
thorpej ca601a7747 Flesh out inittodr() and resettodr(). 2003-07-26 05:51:11 +00:00
lukem 08716eae82 __KERNEL_RCSID() 2003-07-15 00:24:37 +00:00
thorpej 452a8fdae2 Rename IPL_IMP -> IPL_VM. 2003-06-16 20:00:56 +00:00
thorpej bd370c9c04 Give every obio implementation a size and width locator. 2003-06-16 17:40:49 +00:00
thorpej 998f8a71ed Add an optional "width" locator to the obio bus, specifying the
bus width of the device.
2003-06-15 19:03:46 +00:00
thorpej 05d2fb4399 Use the new pmap_devmap facility in the on-board device mapping code. 2003-06-15 18:43:48 +00:00
thorpej 87d5bba5b3 Replace the ad-hoc "section mapping table" for static device mappings
with a more generic "devmap" structure that can also handle mappings
made with large and small pages.  Add new pmap routines to enter these
mappings during bootstrap (and "remember" the devmap), and routines to
look up the static mappings once the kernel is running.
2003-06-15 17:45:21 +00:00
thorpej 0eff671820 Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
2003-06-14 17:01:06 +00:00
thorpej d5bcde54a7 Move KERNEL_VM_SIZE into the C files where its used. 2003-05-22 05:47:04 +00:00
thorpej 361d0454ce Move KERNEL_VM_BASE inside where it is used (it won't be there for long). 2003-05-21 22:48:20 +00:00
thorpej 55f89430cf Decrease the verbosity level unless VERBOSE_INIT_ARM is defiend. 2003-05-17 23:46:59 +00:00
thorpej fb149b56a8 Move the 7-segment display definitions into the C file. 2003-05-14 19:46:39 +00:00
thorpej bbba90a2fb Don't expose KERNEL_TEXT_BASE outside of board-specific code. This gives
individual board start-up code more flexibility about where the kernel
starts in the kernel address space.
2003-05-03 18:25:28 +00:00
thorpej aae7e372b7 Reduce differences between ARM32_NEW_VM_LAYOUT and not; always pass
the start and end of the kernel managed virtual address space to
pmap_bootstrap() in the new pmap.
2003-05-03 03:49:03 +00:00
thorpej 1dff12252d Remove old pmap support for platforms which have fully switched over. 2003-05-03 03:29:06 +00:00
thorpej 4eeee795e8 Eliminate PTE_BASE and the PT-PT completely in the ARM32_PMAP_NEW case.
Also in the ARM32_PMAP_NEW case, reclaim the USPACE-bytes of wasted space
at the top of the user address that hasn't been needed for a very very
long time.
2003-05-02 23:22:33 +00:00
ragge 69a66687f8 Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
2003-04-26 11:05:05 +00:00
thorpej 49c00b1d84 Use high vectors on IQ80321 and IQ80310. 2003-04-22 14:09:46 +00:00
thorpej fc08e6bd7a Adapt to ARM32_PMAP_NEW. 2003-04-19 21:52:03 +00:00
thorpej dd9bc74460 Use PAGE_SIZE rather than NBPG. 2003-04-02 03:39:59 +00:00
thorpej 23bc250391 Merge the nathanw_sa branch. 2003-01-17 21:55:23 +00:00
thorpej 1132348b98 Use aprint_normal() for cfprint routines. 2003-01-01 01:24:19 +00:00
bjh21 d599df9587 Continue the " - . - 8" purge. Specifically:
add	rd, pc, #foo - . - 8		->	adr	rd, foo
ldr	rd, [pc, #foo - . - 8]		->	ldr	rd, foo

Also, when saving the return address for a function pointer call, use
"mov lr, pc" just before the call unless the return address is somewhere
other than just after the call site.

Finally, a few obvious little micro-optimisations like using LDR directly
rather than ADR followed by LDR, and loading directly into PC rather than
bouncing via R0.
2002-10-14 22:32:50 +00:00
thorpej 855eefa351 Clean up some bad interaction between the spl inlining stuff and
strict-prototypes.
2002-10-09 00:03:42 +00:00
thorpej 950670fa77 Fix a typo. 2002-10-08 17:39:17 +00:00
thorpej 1a5a7fe7b7 Use indirect configuration for on-board devices (i.e. those things
attached to "obio") on the IQ80310 and IQ80321.  It makes more sense
to do it this way for this type of system (the goal being to encapsulate
as much information about the board as possible into one file).
2002-10-03 20:14:58 +00:00
thorpej cea0a147b4 Add macros to convert an "IRQ" number to its respective XINT3/XINT0 bit. 2002-10-03 20:11:42 +00:00
thorpej dd14964387 Fix script-o. 2002-10-03 01:29:30 +00:00
thorpej c5e91d447d Use CFATTACH_DECL(). 2002-10-02 04:55:47 +00:00
thorpej 9a711d6985 Declare all cfattach structures const. 2002-09-27 20:29:02 +00:00
provos 0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
thorpej 6c88de3b53 Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller.  Use it
rather than invoking cfattach->ca_match directly.
2002-09-27 03:17:40 +00:00
thorpej d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
thorpej 77a6866508 Enable caching on kernel and user page tables. This saves having
to do uncached memory access during VM operations (which can be
quite expensive on some CPUs).

We currently write-back PTEs as soon as they're modified; there is
some room for optimization (to write them back in larger chunks).
For PTEs in the APTE space (i.e. PTEs for pmaps that describe another
process's address space), PTEs must also be evicted from the cache
complete (PTEs in PTE space will be evicted durint a context switch).
2002-08-24 02:16:30 +00:00
thorpej 6cc7c1c1ff * Add PTE_SYNC() and PTE_SYNC_RANGE() macros. These don't actually do
anything yet.
* Use PTE_SYNC() and PTE_SYNC_RANGE() in some obvious places, i.e.
  where vtopte() is used.
2002-08-22 01:13:53 +00:00
thorpej 5fddbbe3d5 Do cached memory access to L1 tables, making sure to write-back the
cache after any L1 table modifications.
2002-08-21 18:34:31 +00:00
briggs 126f6cf9bc Add a new option EVBARM_BOARDTYPE to differentiate between different
evbarm ports.  Inline _splraise/_spllower/splx for i80321 and iq80310
for more performance.
2002-08-17 16:42:20 +00:00
thorpej eeebe88acf Don't need to frob CPSR in _splraise(). 2002-08-14 19:47:18 +00:00
briggs 0b956d0b8b Implement pmc(9) -- An interface to hardware performance monitoring
counters.  These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface.  Initially, the Intel XScale
counters are the only ones supported.
2002-08-07 05:14:47 +00:00
thorpej 22e32aa941 #if 0 the stray interrupt messages -- we tend to get them "a lot"
during normal activity on some IOP310-based designs.
2002-08-04 17:52:46 +00:00
thorpej 79af00bddb Move the calls to uvm_page_physload() out of pmap_bootstrap() and
into platform-specific initialization code, giving platform-specific
code control over which free list a given chunk of memory gets put
onto.

Changes are essentially mechanical.  Test compiled for all ARM
platforms, test booted on Intel IQ80321 and Shark.

Discussed some time ago on port-arm.
2002-07-31 00:20:51 +00:00
thorpej d3aa5664b7 Move the uvm_setpagesize() call to platform-dependent code in preparation
for other changes to pmap_bootstrap().
2002-07-30 16:16:38 +00:00
thorpej a572f8f4a5 Report stray interrupts. 2002-06-26 01:06:44 +00:00
thorpej bfd9280083 Issue a CPWAIT sequence after enabling the MMU to make sure
it's really enabled.
2002-04-26 18:01:21 +00:00
thorpej cff1953dae Fix typo in last (luckily, search/replace makes the same typo everywhere). 2002-04-14 21:32:24 +00:00
thorpej 302ea396c3 iq80310_do_pending -> iq80310_do_soft, to accurately describe what's
actually going on there.
2002-04-14 21:30:19 +00:00
thorpej a9e4c1a943 * Delcare COUNTER_MASK properly.
* Restructure timer_read() so that the compiler generates better code.
2002-04-14 19:47:03 +00:00
thorpej 71123e8747 Gah, correct editor mistake in last. 2002-04-13 22:42:39 +00:00