Commit Graph

1256 Commits

Author SHA1 Message Date
thorpej
f7d64ef778 Clean up a comment. 1998-03-07 03:15:06 +00:00
thorpej
f55b280ffc Clean this up a bit. 1998-03-07 01:44:08 +00:00
thorpej
dcbc04e7af Rename Sysptmap and Sysmap to Lev2map and Lev3map, respectively, and
add some comments describing in better detail what they are and how they
are used.
1998-03-07 01:43:54 +00:00
thorpej
60e6d2e48f Update a comment in pagemove(). 1998-03-07 01:26:04 +00:00
thorpej
ff155df72a Nuke kvtopte(). Also, change pagemove() to lookup the from and to PTEs
in each iteration of the loop, since PT pages may not necessarily be
contiguous.
1998-03-07 01:11:39 +00:00
thorpej
60d30d3838 Nuke kvtopte() and ptetokv(). 1998-03-07 01:10:05 +00:00
thorpej
58a7bd9288 Nuke the vatopa() macro. 1998-03-07 00:42:07 +00:00
thorpej
059d0c72de pmap_ste() -> pmap_l2pte(), pmap_pte() -> pmap_l3pte() 1998-03-06 23:41:01 +00:00
thorpej
8081bd3017 Move pmap_pte*() macros into the header file, nuke pmap_ste_v(), add
pmap_lev1pte().
1998-03-06 23:19:26 +00:00
thorpej
53e3bf87b9 Fix think'o in last kcopy() change. 1998-03-05 02:10:57 +00:00
thorpej
a2db880e8c In kcopy(), make sure we save and restore the old fault handler; kcopy()
is called from uiomove(), which may be in the code path of servicing
a non-fatal page fault caused by a copyin() or copyout().
1998-03-04 02:11:58 +00:00
cgd
09dbd9234d fix typo in last commit (noticed on inspection) 1998-03-02 21:36:55 +00:00
cgd
7ff7b02fac allow LDSTATIC definition to be overridden by bsd.own.mk/mk.conf 1998-03-02 20:01:05 +00:00
cgd
9da165424c allow LDSTATIC definition to be overridden by bsd.own.mk/mk.conf 1998-03-02 19:57:00 +00:00
ross
03169f0089 Second part of cdev_decl() migration. Declare cputype variable.
Add config info for a12 switch driver and console driver.
1998-03-02 08:04:04 +00:00
ross
41a61f7c9e Update interrupt name table for a12 crossbar. 1998-03-02 07:47:52 +00:00
ross
b8d5ca6c78 Centralize cdev_decl() for these MI drivers + a12dc in machine/conf.h (cgd)
(This does not introduce any config or option dependencies.)
1998-03-02 07:44:18 +00:00
ross
ff94450f84 Use the more consistent register field names & add ctags(1) keys. 1998-03-02 07:07:41 +00:00
ross
6e6f663204 Rewrite of interrupt dispatch logic. Add ctags(1) keys for *a12*.h files. 1998-03-02 07:03:20 +00:00
ross
13aeff8570 Fix attachment message. 1998-03-02 06:59:38 +00:00
ross
1ada245647 Support attachment of xb and a12dc, define most of the remaining
core logic register fields.
1998-03-02 06:56:16 +00:00
ross
469f9b6126 Clean up attachment code and prototypes. 1998-03-02 06:53:34 +00:00
thorpej
7a571c643b Rename a few macros to better describe what they are:
- kvtol1pte() -> l1pte_index()
- vatoste() -> l2pte_index()
- vatopte() -> l3pte_index()
1998-03-02 00:49:01 +00:00
thorpej
54bb4f9e6e Rewrite pmap_enter() to have a more sane structure, useful for when
page table page management is rewritten.
1998-03-02 00:22:54 +00:00
ross
4ebd177543 Remove the A12 from the rogue's gallery of the promcons-addicted. 1998-03-01 08:17:36 +00:00
ross
39254d4d4b Poll console at 50 Hz, not 1024 Hz! (4 tlb and imb coherency ops per poll
make this exceedingly expensive even on an alpha)  Note: only 3 systypes
still use promcons.
1998-03-01 07:40:11 +00:00
ross
2170c2a46d Force elf symbol sections to an addressable boundary. 1998-02-28 10:38:55 +00:00
cgd
18a1481f7a Use NFS_BOOT_DHCP rather than NFS_BOOT_BOOTP. The former is more
flexible, and the boot blocks use DHCP already(!!!) and it'd be good
for the kernel to be consistent with them.
1998-02-28 02:01:32 +00:00
thorpej
ba3ddd48ad Move the code that enters and removes entries from the pv_table into
functions pmap_enter_pv() and pmap_remove_pv().
1998-02-28 01:07:05 +00:00
thorpej
9bbe89ea3f Garbage-collect the kpt_page stuff; it was basically unused in this
pmap, and isn't applicable to how dynamically allocated kernel page
tables will work on the Alpha.
1998-02-27 22:25:25 +00:00
thorpej
faf1155de5 Revamp pv_table management:
- Make pv_table an array of struct pv_head's, which contain LIST_HEADs
  for the pv_entry's, as well as page attributes (mod, ref, ptpage).
- Use <sys/queue.h> to manipulate pv_entry lists.
- Fix several obvious bugs in pmap_collect_pv().
- Use K0SEG to access pv_page's.
1998-02-27 19:39:03 +00:00
thorpej
f17bbcfffa Changes necessitated by the fact that all pmaps have their own level 1
page tables: use curpcb to determine which level 1 map defines the
current VM context, and use that level 1 map when mapping and unmapping
the PROM.
1998-02-27 04:03:00 +00:00
thorpej
c4e7c88520 Step 1 of the Grand Alpha Pmap Rototill:
- Clean up pmap_bootstrap() some, and make a slight change to how the
  PROM mappings are saved.
- Give each pmap its own level 1 page table, rather than sharing a global
  level 1 page table.  This will eventually allow for Very Large user
  address spaces.
- Keep a list of all pmaps, so that when kernel level 2 page tables are
  allocated, all level 1 tables may be updated.
- Add a couple of functions for allocating and freeing page table pages.
- Add a few comments about ASN allocation.
1998-02-27 03:59:58 +00:00
thorpej
5d56ce57ba Several changes related to all pmaps having their own level 1
page table:
- Update the current hwpcb pointer in the SWITCH_CONTEXT macro, so that
  we know it's always correct.
- Optimize cpu_switch(): if we're switching to ourselves, skip the
  actual context swap.
- Clean up some comments and remove some code rendered obsolete by
  the fact that address spaces are now selected by switching to a
  new level 1 page table.
1998-02-27 03:53:49 +00:00
thorpej
cb6972d4d3 Implement alpha_pal_swpctx(). 1998-02-27 03:44:53 +00:00
perry
1ed8ea9966 note second parm of sysarch() is now void *, + trivial KNF, etc. 1998-02-25 21:41:55 +00:00
thorpej
58509e699f Add support for UVM. 1998-02-24 07:38:01 +00:00
thorpej
772da350d4 Disable the message buffer during crash dumps by clearing msgbufenabled,
not msgbufmapped.
1998-02-19 04:18:30 +00:00
mycroft
3b9429b248 Minor changes to make all the float.h files match. 1998-02-18 11:01:27 +00:00
cgd
f19c0ee648 nuke pmap_map(). it's an internal MD function, and it's unused 1998-02-18 01:44:32 +00:00
thorpej
8354e68508 Remove "class" declarations, and add "devclass" declarations where
appropriate.  Fix several inconsistencies between device class and
attributes.  Mostly from Chris Demetriou.
1998-02-16 22:12:45 +00:00
thorpej
b4e77b173a Add support for non-contiguous physical memory, using MACHINE_NEW_NONCONTIG.
These changes also recover memory that is located before the kernel in
the first system software segment on systems which do not use the PROM
for console I/O.  Written by Chris Demetriou and myself.
1998-02-16 03:59:55 +00:00
cgd
1584dc4420 The pmap_emulate_reference warning about the page not being managed should
be a panic instead.  If it's hit, "random" memory is going to be corrupted.
1998-02-14 02:04:05 +00:00
cgd
1538076f47 fix pasto in last (sigh) 1998-02-14 01:18:46 +00:00
cgd
ab67040f58 fix for (harmless) bogon introduced in last commit 1998-02-14 01:17:19 +00:00
cgd
e719e8f703 adjust kernel core dump code for changes in kcore.h, also clean up
slightly.
1998-02-14 00:53:26 +00:00
cgd
69d88fbfd6 replace the single phys_ram_seg_t with a count. an array of segment
descriptors will be placed after this structure in the core file.
1998-02-14 00:17:57 +00:00
enami
2c12105cda Remove comment which says that fxp is untested (it is known to work now).
Also, make model name closer to what driver prints startup.
1998-02-13 04:33:30 +00:00
cgd
25d056473c Clean up kernel initialization. Use the bootinfo structure (or innate
knowledge) earlier, and gather all information needed earlier.  Mark the
init code carefully re: when it can print stuff out, when it can expect
the firmware to stop working, etc.  Be more careful about using the PROM
console and other PROM facilities, and hint that in the future all use
of firmware/boot program callbacks by the kernel should go away (since
the world may not be mapped the way the firmware/boot program wants!).
1998-02-13 02:09:03 +00:00
thorpej
b22ad9fe1a Define a lookup table for Alpha platform variation names. 1998-02-13 01:29:09 +00:00
thorpej
bdc328cb13 Use the platform family name in alpha_unknown_sysname(). 1998-02-13 00:27:37 +00:00
thorpej
bd60d9c62d Rewrite the way the platform model string is determined:
- Attempt to find the model string in the HWRPB's DSR area.  Failing that
  (if the HWRPB version is too old)...
- Look up the system variation in a variation/string table.  Failing that
  (unknown variation)...
- Create a default model string using the variation number.

Also, factor out a bunch of common code.
1998-02-13 00:12:45 +00:00
thorpej
44df600994 Define the structure of the HWRPB's Dynamic System Recognition area. 1998-02-13 00:07:25 +00:00
thorpej
7fbc685c06 Make it a little more clear that the "eb164" systype doens't necessarily
mean that a machine is a DEC EB164 (it may be an AlphaPC 164, which is
different, from the firmware's perspective).
1998-02-12 20:46:47 +00:00
thorpej
314f40f8d8 We can't count on the CIA revision register telling us if we're a 21171
or 21172, so make the chip/revsion output a little more sane.
1998-02-12 20:43:45 +00:00
cgd
5a1a26d325 set 'hwrpb' in a way that works exactly the same way as the previous
code, but looks significantly less gross.
1998-02-12 02:54:02 +00:00
cgd
c7ba12ab93 rename struct rob's "rpb" element to "rpb_phys" for clarity. also,
change its type from a pointer to a never-defined structure to a
u_int64_t.
1998-02-12 02:27:48 +00:00
cgd
92d17b5b50 clean up the way bootinfo information is passed and used: move the version
number passed by the boot block into a register, change the kernel's
bootinfo handing so that it always uses bootinfo to get bootinfo-ish values
(filling them in if the boot blocks didn't pass them), and make versioning
a small bit more sane.
1998-02-12 01:53:18 +00:00
thorpej
c26f962957 Use kernel_map in bus_dmamem_{map,free}(). 1998-02-11 03:08:31 +00:00
thorpej
30aa56fc66 Use M_DMAMAP where appropriate. 1998-02-11 01:37:51 +00:00
cgd
e21b7a5995 leave space for bootstrap stack when calculating kernstart 1998-02-11 00:05:33 +00:00
thorpej
1951c4b19b Bump KNMEMCLUSTERS slightly, and make it more obvious how to tune it
(lifted from i386 port).
1998-02-10 03:53:01 +00:00
thorpej
68d3b764ce Make it easier to keep the scaled VM_*_SIZE values in sync w/ the
constants.
1998-02-10 03:52:05 +00:00
thorpej
5887833ac7 Kernel for babylon.netbsd.org. 1998-02-10 00:48:14 +00:00
thorpej
8e69ee392a Fixup includes. 1998-02-04 23:41:45 +00:00
thorpej
612aea038c Use the common _bus_dmamap_sync() as the _dmamap_sync method in the
bus_dma_tag_t.
1998-02-04 07:37:28 +00:00
thorpej
1a2b1a18f2 The _dmamap_sync method is no longer optional. 1998-02-04 07:36:10 +00:00
thorpej
b1d8bffad8 Flush the CPU write buffer in _bus_dmamap_sync(). 1998-02-04 07:35:30 +00:00
thorpej
8abe76d2f0 Add offset and length parameters to bus_dmamap_sync(), used for specifiying
partial syncs of a DMA mapping.
1998-02-04 05:12:46 +00:00
thorpej
99cc8482d1 Change the last argument of bus_dmamap_sync() from bus_dmasync_op_t to int,
and allow more than one synchronization operation to be specified in
a single call.  Dissallow mixing of PRE and POST operations.
1998-02-04 01:57:27 +00:00
thorpej
2d403996b2 Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC to
BUS_DMA_COHERENT.
1998-02-04 00:10:30 +00:00
thorpej
5fd0d10994 Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC toBUS_DMA_COHERENT. 1998-02-04 00:04:25 +00:00
mycroft
b5c132e4d2 Prototype __flt_rounds() consistently. 1998-02-03 01:26:20 +00:00
thorpej
cfa47dfc11 Add support for installing boot blocks into ISO-9660 file system images. 1998-02-01 06:59:30 +00:00
thorpej
fea34a1cf2 Bump the ramdisk size to 3M. 1998-02-01 02:55:42 +00:00
thorpej
4efe4fc0da le* at isa? isn't ready for prime-time yet. 1998-02-01 00:24:26 +00:00
ross
d0cce6d144 Take Jason's most excellent advice on platform.model. 1998-01-31 10:55:42 +00:00
ross
1e62e0ffd9 Remove the #include of rpb.h from clock.c and set hz from the hwrpb
in alpha_init() instead of from a hardwired 1024 in cpu_initclocks().
1998-01-31 10:32:47 +00:00
cgd
58fb6574f9 valloclim() was unused; kill it. #undef valloc() at the end of
allocsys().
1998-01-31 02:20:44 +00:00
ross
6270ed1711 Add the A12 fast ethernet controller, an if_de.c hacked (prior to
bus_dma's appearance in the tree) to support sram bounce buffers.
When a busified if_de.c appears, this module can join awd.c at the
end of that long walk on a short pier.
1998-01-31 01:43:40 +00:00
ross
3a83745247 In some hp300-derived pmaps, in pmap_page_protect(), don't walk off the
end of the list of physical->virtual entires into NULL space if the last
entry is (mysteriously) wired in the pmap. Add a DEBUG printf on alpha.
1998-01-31 01:32:55 +00:00
ross
1559f49cd1 Correct a number of apparent errors in a few reboot paramemter block fields. 1998-01-29 22:28:52 +00:00
ross
ccafd3dcb9 Define the A12 names. 1998-01-29 22:26:24 +00:00
ross
f2d2b6bf68 defopt for AVALON_A12 and specifiers for all the platform modules. 1998-01-29 22:23:06 +00:00
ross
18beceb2f9 Recognize Avalon A12 cputype code. 1998-01-29 22:20:15 +00:00
ross
43a3471986 While here in alpha/stand, add a technically required imb coherency op
just before transferring to the kernel entry point.
1998-01-29 22:13:25 +00:00
ross
c1972a428c Avoid VMS palcode ops by using a different technique for cpu_number(),
and don't execute the VMS->OSF palcode switch if the OSF palcode
is already running...which will be the case if the console is not
the venerable SRM.
1998-01-29 22:09:37 +00:00
ross
8430acf1e7 Add a12 platform support. The A12 is a scalable, distributed memory parallel
processor.
1998-01-29 21:46:33 +00:00
ross
12f93343cd Add basic platform support for NetBSD on the Avalon A12. I'm running this
CVS commit on one right now...
1998-01-29 21:42:50 +00:00
ross
683fada0e3 Clean up duplicated code sequences and add an imb (a coherency operation)
whenever the console code is mapped and unmapped.
1998-01-29 21:11:58 +00:00
ross
0c4d28f49e Fix an alpha-specific page daemon wedge...the new pmap_clear_reference()
may be faster, but it was supposed to _clear_ PMAP_ATTR_REF, not _set_ it.
1998-01-29 05:44:57 +00:00
thorpej
2538ed1062 Use offsetof() from libkern.h 1998-01-28 02:23:04 +00:00
thorpej
5ac7e550d1 Implement bus_dmamap_load_mbuf(). 1998-01-27 02:35:58 +00:00
mycroft
15ae963bea When dumping, print out the device number as major,minor. 1998-01-24 16:46:23 +00:00
thorpej
cacd48c0d6 Print the correct error number if nfs_mount() fails. From Chris Demetriou. 1998-01-23 19:13:28 +00:00
thorpej
9c3ef8899b Don't conditionally define the sgmap_log_entry structure, and turn off
SGMAP logging by default.
1998-01-21 22:36:10 +00:00
thorpej
3d9cd8a05a Extent names are const. 1998-01-21 22:34:38 +00:00
thorpej
12809e3434 If mapping only one segment of DMA memory into KVA space, use K0SEG. 1998-01-19 03:12:20 +00:00
thorpej
c6d1f2e018 G/c LANCE DMA allocation goop. 1998-01-19 02:57:28 +00:00
thorpej
e5e8573d5c Allocate the LANCE DMA area and set it up here. This is still not
optimal (really should be done further down the food chain), but we
can't really do that in a nice way right now, and this is much better
than what we had before (which was to steal memory pages before the
VM system was bootstrapped).
1998-01-19 02:56:05 +00:00