Commit Graph

68 Commits

Author SHA1 Message Date
thorpej
dbe6d8291b * Fix use of pmap_curmaxkvaddr.
* Use the PTP hint in the pmap.
2002-03-25 04:51:19 +00:00
thorpej
5ffc15a083 Use vtopte() instead of pmap_pte(). 2002-03-24 18:12:54 +00:00
thorpej
0ba36d6f6f * Rename PROCESS_PAGE_TBLS_BASE -> PTE_BASE
* Rename ALT_PAGE_TBLS_BASE -> APTE_BASE
* Garbage-collect PAGE_TABLE_SPACE_START
2002-03-23 02:22:56 +00:00
briggs
d099df10f4 Use obio_bs_rr_1.
In obio_bs_map(): Create a mapping for regions that are not in the
	standard on-board I/O space.
2002-03-19 01:36:13 +00:00
thorpej
e0ea696615 * Add support for running the IQ80310 kernel where KERNEL_BASE !=
physical memory start.  Garbage-collect some cruft while here.
* Move the kernel up to 0xc0000000, giving a 1G/3G kernel/user split.
* Adjust the Integrator startup code accordingly.
2002-03-03 21:22:15 +00:00
thorpej
e23381908a inittodr(): Actually initialize time from the file system time. 2002-03-03 21:10:40 +00:00
chris
1181e367e0 Implement pmap_growkernel for arm32 based ports.
Note that this has been compiled on some systems, cats, IQ80310, IPAQ, netwinder and shark (note that shark's build is currently broken due to other reasons), but only actually run on cats.
Shark doesn't make use of the functionality as I believe there has to be a correlation between OFW and the kernel tables so that calls into OFW work.
2002-03-03 11:22:58 +00:00
briggs
caaef6d0d0 Implement obio_bs_rr_1. 2002-02-23 19:55:34 +00:00
thorpej
d114b32f24 Add some nops after we enable the MMU, for good measure (enough for
the nops to be the prefetch'd insns when the MMU switch occurs).
2002-02-23 05:58:46 +00:00
thorpej
f31f6affa9 Make sure the MMU is enabled after we switch to the new kernel
page tables (gzboot disables the MMU before it does its work).
2002-02-23 05:55:26 +00:00
thorpej
37595cfcf8 Fix the "va" argument to pmap_map_entry() when mapping kernel_ptpt.
This happened to work in the IOP310 because the kernel runs VA==PA.
2002-02-22 17:23:13 +00:00
thorpej
bb84e85802 Change pmap_map_entry() to work like pmap_map_chunk(): take a pointer
to the L1 table and a virtual address, and no pointer to the L2 table.
The L2 table will be looked up by pmap_map_entry(), which will panic
if the there is no L2 table for the requested VA.

NOTE: IT IS EXTREMELY IMPORTANT THAT THE CORRECT VIRTUAL ADDRESS
BE PROVIDED TO pmap_map_entry()!  Notably, the code that mapped
the kernel L2 tables into the kernel PT mapping L2 table were not
passing actual virtual addresses, but rather offsets into the range
mapped by the L2 table.  I have fixed up all of these call sites,
and tested the resulting kernel on both an IQ80310 and a Shark.
Other portmasters should examine their pmap_map_entry() calls if
their new kernels fail.
2002-02-22 04:49:19 +00:00
thorpej
79738a99e9 Keep track of which kernel PTs are available during bootstrap,
and let pmap_map_chunk() lookup the correct one to use for the
current VA.  Eliminate the "l2table" argument to pmap_map_chunk().

Add a second L2 table for mapping kernel text/data/bss on the
IQ80310 (fixes booting kernels with ramdisks).
2002-02-21 21:58:00 +00:00
thorpej
15e0450397 Always pass the L1 table to pmap_map_chunk(). This allows pmap_map_chunk()
to perform some error checking.
2002-02-21 05:25:23 +00:00
thorpej
454e106a48 map_chunk() -> pmap_map_chunk(), and move it to pmap.c 2002-02-21 02:52:19 +00:00
skrll
2de2e35201 Fix typo in comment. 2002-02-20 20:47:40 +00:00
thorpej
425011f621 map_pagetable() -> pmap_link_l2pt(), and move it to pmap.c 2002-02-20 20:41:15 +00:00
thorpej
c44b9117f0 Collapse map_entry{,ro,nc}() into a single pmap_map_entry() that
takes a prot and a "cacheable" indicator.
2002-02-20 02:32:56 +00:00
thorpej
9c31f51c34 Rename map_section() to pmap_map_section(), move it to pmap.c, and give it
an extra argument (prot - specifies protection of the mapping).
2002-02-20 00:10:15 +00:00
thorpej
e01bd95698 * The Npwr only has 5 interrupt sources, all in XINT3, so don't bother
reading XINT0 (which isn't even implemented by the CPLD on Npwr).
* Adjust the mask of valid IRQ bits for the Npwr.
2002-02-09 03:52:31 +00:00
thorpej
727b4699ce The Npwr has a 19-bit timer. Make sure values programmed into
the counter fit.
2002-02-08 23:50:53 +00:00
thorpej
66c81951ae Default the console to the correct speed on the Npwr (so that
it doesn't have to be set in the kernel config file).
2002-02-08 03:41:56 +00:00
briggs
efca4d520d Wire the internal devices to the right interrupts on NPWR. 2002-02-08 03:28:24 +00:00
thorpej
987cb42a95 No point in setting the ATU Subsys vendor/dev ID on boards that
can't plug into a PCI host.
2002-02-08 02:31:12 +00:00
thorpej
367a9543a7 The Npwr doesn't have the board_rev/cpld_rev/backplane_det registers,
do don't bother reading them.
2002-02-08 02:30:12 +00:00
briggs
6331bb5b24 Let this compile with the IOP310_TEAMASA_NPWR option. 2002-02-08 01:42:41 +00:00
briggs
07ec97aeba finish conversion from TEAMASA_NPWR to IOP310_TEAMASA_NPWR 2002-02-08 01:41:48 +00:00
thorpej
140c8fe847 Don't hard-code the console address in error messages. 2002-02-07 23:53:01 +00:00
thorpej
2b9837b4d9 Add support for the Team ASA Npwr IOP310-based server appliance. 2002-02-07 21:34:23 +00:00
thorpej
9265cef48c irq_init() -> iq80310_intr_init() 2002-01-30 04:01:36 +00:00
thorpej
2bc996b0bc New interrupt framework for NetBSD/evbarm, and accompanying new
interrupt code for the IQ80310 board support package.

XXX The Integrator board support package still uses the old-style
arm32 interrupt code, so some compatibility hacks have been added
for it.  When the Integrator uses new-style interrupts, those hacks
can go away.
2002-01-30 03:59:39 +00:00
thorpej
4e990d9ccb Overhaul of the ARM cache code. This is mostly a simplification
pass.  Rather than providing a whole slew of cache operations that
aren't ever used, distill them down to some useful primitives:

	icache_sync_all         Synchronize I-cache
	icache_sync_range       Synchronize I-cache range

	dcache_wbinv_all        Write-back and Invalidate D-cache
	dcache_wbinv_range      Write-back and Invalidate D-cache range
	dcache_inv_range        Invalidate D-cache range
	dcache_wb_range         Write-back D-cache range

	idcache_wbinv_all       Write-back and Invalidate D-cache,
				Invalidate I-cache
	idcache_wbinv_range     Write-back and Invalidate D-cache,
				Invalidate I-cache range

Note: This does not yet include an overhaul of the actual asm files
that implement the primitives.  Instead, we've provided a safe default
for each CPU type, and the individual CPU types can now be optimized
one at a time.
2002-01-25 19:19:22 +00:00
thorpej
ae267d2bc7 s/CPLD/iq80310/g 2002-01-24 03:34:28 +00:00
thorpej
e594c94727 Some prototype cleanup. 2002-01-20 03:41:47 +00:00
thorpej
d25c8d3cac Allow the console unit to be overridden with the CONUNIT configuration
option.
2002-01-18 19:47:05 +00:00
thorpej
bd500cc450 When mapping the kernel text/data/bss:
* Round the text size up the next page, don't truncate it.
* Pass the kernel L1 table to map_chunk() so that it can try
  to use section mappings.
2002-01-16 23:37:05 +00:00
briggs
b89eed2156 If we're attaching UART2, then use UART2 in failure-case panic()s. 2002-01-04 21:18:59 +00:00
thorpej
014157862c * Share a common vector page between arm26 and arm32.
* Use a common set of exception handlers for all arm32 platforms.
* New FIQ framework based on discussions with Ben Harris, shared
  between arm26 and arm32.
2001-12-20 01:20:21 +00:00
thorpej
a5a8439141 Make the snake slither in a slightly more interesting pattern that
also happens to have 8 positions (and thus has a slightly more efficient
implementation).
2001-12-01 21:23:17 +00:00
thorpej
216b9b2ea6 - Don't enable FIQs; nothing uses them (yet).
- Steer i80200 PMU and BCU interrupts to IRQ# (for lack of a better
  place, at the moment).
- Disable all interrupts other than external-IRQ# in the i80200 ICU;
  we don't deal with any of the others, yet.
2001-12-01 06:15:36 +00:00
thorpej
a7cfcd87fd Implement a "snake" for the 7-segment display. 2001-12-01 02:04:27 +00:00
thorpej
5f8b540ed9 Remove U from the display seg constants. 2001-12-01 02:02:46 +00:00
thorpej
a9b25a66fa When processing ASTs:
- Loop until astpending is clear upon return from ast().
- Clear astpending *before* re-enabling interrupts.
2001-11-28 01:31:59 +00:00
thorpej
7184ed949e Update copyright notice. 2001-11-27 00:35:34 +00:00
thorpej
34ce8c531b Don't need to include <machine/irqhandler.h> 2001-11-27 00:34:48 +00:00
thorpej
8cd82ab7b7 Move interrupt-related stuff out of the generic 32-bit ARM genassym.cf
and into platform-specific genassym.cf files.
2001-11-27 00:15:58 +00:00
thorpej
d8415403ba Fix brain'o in handling of schedhz and profhz. Also, make sure to
compute tickfix after computing tick (not that tickfix should ever
be non-zero, but there for completeness).
2001-11-26 18:01:05 +00:00
thorpej
fc019be5fd Use <arm/undefined.h> instead of <machine/undefined.h>. 2001-11-23 21:18:29 +00:00
thorpej
969599022a Use <arm/cpufunc.h>, not <machine/cpufunc.h>. 2001-11-23 19:36:48 +00:00
thorpej
fec02f1259 No need to pull in <machine/pte.h> directly. 2001-11-23 17:23:40 +00:00