Home | History | Annotate | only in /src/sys/arch/sparc/stand/common
History log of /src/sys/arch/sparc/stand/common
RevisionDateAuthorComments
 1.2 07-May-2002  lukem decommission old installboot; it doesn't work on bootxx anymore anyway.
 1.1 30-Oct-2001  thorpej branches: 1.1.2; 1.1.4; 1.1.6;
Rather than using nlist(3), use a magic structure with a magic
number that installboot(8) can search for. Suggested by cgd@netbsd.org.
 1.1.6.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.1.6.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.6.1 30-Oct-2001  thorpej file bbinfo.h was added on branch kqueue on 2002-01-10 19:49:09 +0000
 1.1.4.3 20-Jun-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 30-Oct-2001  nathanw file bbinfo.h was added on branch nathanw_sa on 2002-01-08 00:27:55 +0000
 1.1.2.2 12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.1.2.1 30-Oct-2001  thorpej file bbinfo.h was added on branch thorpej-mips-cache on 2001-11-12 21:17:33 +0000
 1.2 05-Apr-2008  tsutsui Add support booting from UFS2 partition for sparc.
Tested on tme emulating SS2.

Closes PR port-sparc/36068.
 1.1 01-Jun-1997  mrg branches: 1.1.70; 1.1.108; 1.1.124; 1.1.158;
Completely rearrange SPARC boot code, modeling it after alpha and hp300
ports' boot programs. Also added support for loading gzip'd kernels,
useful for booting from floppy. From Jason R. Thorpe <thorpej@nas.nasa.gov>,
tested by Matthew Green <mrg@eterna.com.au> and Erik Fair <fair@clock.org>.
 1.1.158.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.124.1 03-Jun-2008  skrll Sync with netbsd-4.
 1.1.108.1 08-May-2008  jdc Pull up revisions:
src/sys/arch/sparc/stand/common/conf.c 1.2
src/sys/arch/sparc/stand/common/promdev.c 1.21
(requested by tsutsui in ticket #1132).

Add support booting from UFS2 partition for sparc.
Tested on tme emulating SS2.

Closes PR port-sparc/36068.
 1.1.70.2 08-May-2008  jdc Revert revisiion 1.1.70.1 and apply patch from ticket #1928 correctly.
 1.1.70.1 08-May-2008  jdc Pull up revisions:
src/sys/arch/sparc/stand/common/conf.c 1.2
src/sys/arch/sparc/stand/common/promdev.c 1.21
(requested by tsutsui in ticket #1928).

Add support booting from UFS2 partition for sparc.
Tested on tme emulating SS2.

Closes PR port-sparc/36068.
 1.15 21-Oct-2009  snj Drop 3rd and 4th clauses. Approved by gwr@ (copyright holder).
 1.14 13-Jul-2006  uwe branches: 1.14.62;
De-__P. ANSIify.

Same object code is generated (except in prf.c, where putchar argument
type was changed to int to match the prototype and one instrcution
changes accordingly).

strategy() in ofdev.c was not ANSIified in this sweep, b/c that
changes code generated at call sites!
 1.13 25-Jan-2006  uwe branches: 1.13.2; 1.13.6;
It's free -> dealloc, not free -> size_t (hi, Christos :).
 1.12 25-Jan-2006  christos free -> dealloc
unsigned -> size_t for alloc/dealloc
 1.11 11-Dec-2005  christos branches: 1.11.2;
merge ktrace-lwp.
 1.10 10-Nov-2003  wiz branches: 1.10.16;
Spell address with two d's. Inspired by similar changes in OpenBSD,
originating from Jonathon Gray and forwarded by jmc@openbsd.
 1.9 31-Oct-2000  pk branches: 1.9.24;
Align the DVMA mapping on NBPSG boundaries.
 1.8 18-Jun-2000  fvdl branches: 1.8.2;
Rearrange previous slightly to avoid getting values that are too low;
the only goal here is to leave some space for the stack.
 1.7 18-Jun-2000  fvdl Account for the stack when computing the base va. This makes the
bootblocks work again on the 4/110.
 1.6 14-Apr-2000  pk branches: 1.6.2;
dvma_init: avoid integer variable overflow
 1.5 15-Feb-2000  pk Determine base address at run time.
 1.4 15-Feb-2000  pk Nuke unused code.
 1.3 15-Feb-1999  pk branches: 1.3.2; 1.3.8;
Use PROMLIB to streamline this code. This also provides the bulk of
Open Firmware boot code.
 1.2 12-Oct-1998  pk Move around a few PTE-manipulating macros.
 1.1 01-Jun-1997  mrg Completely rearrange SPARC boot code, modeling it after alpha and hp300
ports' boot programs. Also added support for loading gzip'd kernels,
useful for booting from floppy. From Jason R. Thorpe <thorpej@nas.nasa.gov>,
tested by Matthew Green <mrg@eterna.com.au> and Erik Fair <fair@clock.org>.
 1.3.8.2 22-Nov-2000  bouyer Sync with HEAD.
 1.3.8.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.2.3 27-Jul-2000  he Revert previous, and pull up revisions 1.7-1.8 (requested by pk):
Account for stack when computing base VA; fixes booting on sun4
systems. Fixes PR#9906 and PR#10165
(Previous patch had bug as submitted.)
 1.3.2.2 23-Jul-2000  he Pull up revisions 1.7-1.8 (via patch, requested by pk):
Account for stack when computing base VA; fixes booting on sun4
systems. Fixes PR#9906 and PR#10165
 1.3.2.1 27-Jun-2000  he Apply patch (requested by pk):
Fix lossage of the bootstrap program on sun4 machines, at least
when booting from disk. Fixes PR#9906.
 1.6.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.8.2.1 01-Nov-2000  tv Pullup 1.9 [pk]:
Align the DVMA mapping on NBPSG boundaries.
 1.9.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.9.24.1 03-Aug-2004  skrll Sync with HEAD
 1.10.16.2 30-Dec-2006  yamt sync with head.
 1.10.16.1 21-Jun-2006  yamt sync with head.
 1.11.2.1 01-Feb-2006  yamt sync with head.
 1.13.6.1 11-Aug-2006  yamt sync with head
 1.13.2.1 09-Sep-2006  rpaulo sync with head
 1.14.62.1 11-Mar-2010  yamt sync with head
 1.1 25-Aug-2010  christos branches: 1.1.2; 1.1.4; 1.1.10;
factor out the floppy detection code.
 1.1.10.2 05-Mar-2011  rmind sync with head
 1.1.10.1 25-Aug-2010  rmind file isfloppy.c was added on branch rmind-uvmplock on 2011-03-05 20:52:04 +0000
 1.1.4.2 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.1.4.1 25-Aug-2010  uebayasi file isfloppy.c was added on branch uebayasi-xip on 2010-10-22 07:21:33 +0000
 1.1.2.2 09-Oct-2010  yamt sync with head
 1.1.2.1 25-Aug-2010  yamt file isfloppy.c was added on branch yamt-nfs-mp on 2010-10-09 03:31:53 +0000
 1.1 25-Aug-2010  christos branches: 1.1.2; 1.1.4; 1.1.10;
factor out the floppy detection code.
 1.1.10.2 05-Mar-2011  rmind sync with head
 1.1.10.1 25-Aug-2010  rmind file isfloppy.h was added on branch rmind-uvmplock on 2011-03-05 20:52:04 +0000
 1.1.4.2 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.1.4.1 25-Aug-2010  uebayasi file isfloppy.h was added on branch uebayasi-xip on 2010-10-22 07:21:33 +0000
 1.1.2.2 09-Oct-2010  yamt sync with head
 1.1.2.1 25-Aug-2010  yamt file isfloppy.h was added on branch yamt-nfs-mp on 2010-10-09 03:31:53 +0000
 1.9 26-Mar-2014  christos kill sprintf
 1.8 28-Apr-2008  martin branches: 1.8.34; 1.8.44; 1.8.50;
Remove clause 3 and 4 from TNF licenses
 1.7 11-Dec-2005  christos branches: 1.7.74; 1.7.76; 1.7.78;
merge ktrace-lwp.
 1.6 19-Jun-2005  thorpej Move common Sun ID PROM definitions into <dev/sun/idprom.h>.
 1.5 23-Jan-2005  pk Make pmap_map() work on sun4 machines.
Thanks to Matthew and Julian for finding this.
 1.4 24-Oct-2003  pk branches: 1.4.2; 1.4.6; 1.4.8;
pmap_map_srmmu: use the `map-pages' Forth word to let prom map all pages
at once.
 1.3 10-Jul-2003  pk pmap_map(): round up size to compute # of pages.
 1.2 27-Jun-2003  uwe branches: 1.2.2;
Drop redundant argument to printf("\n"). Obvious pasto.
 1.1 01-Mar-2003  pk Add support for large kernels by searching for a physical memory segment
to fit it in. As a bonus, the kernel is now also mapped to the virtual
address (i.e. KERNBASE) it is linked at.
 1.2.2.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.2.2.4 24-Jan-2005  skrll Sync with HEAD.
 1.2.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.2.1 03-Aug-2004  skrll Sync with HEAD
 1.4.8.1 29-Apr-2005  kent sync with -current
 1.4.6.1 16-Mar-2005  tron Pull up revision 1.5 (requested by pk in ticket #1118):
Make pmap_map() work on sun4 machines.
Thanks to Matthew and Julian for finding this.
 1.4.2.1 16-Mar-2005  tron Pull up revision 1.5 (requested by pk in ticket #1118):
Make pmap_map() work on sun4 machines.
Thanks to Matthew and Julian for finding this.
 1.7.78.1 16-May-2008  yamt sync with head.
 1.7.76.1 18-May-2008  yamt sync with head.
 1.7.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.8.50.1 18-May-2014  rmind sync with head
 1.8.44.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.34.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11 12-Apr-2021  mrg remove shadowed (common) declarations of various libsa variables
from various boot programs. for macppc and zaurus, avoid building
with -fcommon any more.
 1.10 23-Apr-2020  joerg branches: 1.10.4;
rootpath is owned by libsa
 1.9 21-Oct-2009  snj branches: 1.9.74;
Drop 3rd and 4th clauses. Approved by gwr@ (copyright holder).
 1.8 13-Jul-2006  uwe branches: 1.8.62;
De-__P. ANSIify.

Same object code is generated (except in prf.c, where putchar argument
type was changed to int to match the prototype and one instrcution
changes accordingly).

strategy() in ofdev.c was not ANSIified in this sweep, b/c that
changes code generated at call sites!
 1.7 25-Feb-2003  pk branches: 1.7.18; 1.7.32; 1.7.36;
Note which network boot protocol we're trying.
 1.6 14-May-2002  lukem - Enable NFS_BOOT_DHCP (as well as the existing NFS_BOOT_BOOTPARAM).
DHCP/Bootp is tried before bootparams in the MI nfs mountroot code.
- Change the order in boot.net from "bootparams then bootp" to
"bootp then bootparams", to be consistent with the MI nfs mountroot code.

(Consistency with other NetBSD ports is good, and things still work
for sites that run bootparams but not dhcp/bootp, although I'd argue that
dhcp/bootp is much easier to setup and manage and is easier to debug
than our rpc.bootparamd...)

Per discussion with Paul Kranenburg and Matt Green.
 1.5 22-Jan-2000  pk branches: 1.5.8; 1.5.12;
Try both the BOOTPARAMS and BOOTP protocol (in that order). This also
takes care of PR#8738.
 1.4 07-May-1999  drochner branches: 1.4.2;
include <lib/libkern/libkern.h> for intoa()/inet_ntoa()
 1.3 15-Feb-1999  pk branches: 1.3.4;
Use PROMLIB to streamline this code. This also provides the bulk of
Open Firmware boot code.
 1.2 22-Jul-1997  drochner Don't use <lib/libsa/if_ether.h> anymore. This was a copy of the
old (before ARP changes) <netinet/if_ether.h>, intended for
temporary use.
 1.1 01-Jun-1997  mrg Completely rearrange SPARC boot code, modeling it after alpha and hp300
ports' boot programs. Also added support for loading gzip'd kernels,
useful for booting from floppy. From Jason R. Thorpe <thorpej@nas.nasa.gov>,
tested by Matthew Green <mrg@eterna.com.au> and Erik Fair <fair@clock.org>.
 1.3.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.4.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.12.1 20-Jun-2002  nathanw Catch up to -current.
 1.5.8.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.7.36.1 11-Aug-2006  yamt sync with head
 1.7.32.1 09-Sep-2006  rpaulo sync with head
 1.7.18.1 30-Dec-2006  yamt sync with head.
 1.8.62.1 11-Mar-2010  yamt sync with head
 1.9.74.1 25-Apr-2020  bouyer Sync with bouyer-xenpvh-base2 (HEAD)
 1.10.4.1 17-Apr-2021  thorpej Sync with HEAD.
 1.12 21-Oct-2009  snj Drop 3rd and 4th clauses. Approved by gwr@ (copyright holder).
 1.11 18-Mar-2009  cegger bzero -> memset
 1.10 12-Jan-2009  tsutsui branches: 1.10.2;
Replace time_t values in libsa sources with the following two types
to avoid unnecessary 64 bit ops which would make binaries larger:

satime_t (currently unsigned int):
numbers in seconds returned by the machine dependent getsecs() function
which are used to measure relative time

saseconds_t (currently int):
numbers in seconds used to specify timeout to network drivers

Per discussion on current-users.
 1.9 13-Jul-2006  uwe branches: 1.9.58; 1.9.62; 1.9.70;
De-__P. ANSIify.

Same object code is generated (except in prf.c, where putchar argument
type was changed to int to match the prototype and one instrcution
changes accordingly).

strategy() in ofdev.c was not ANSIified in this sweep, b/c that
changes code generated at call sites!
 1.8 11-Dec-2005  christos branches: 1.8.4; 1.8.8;
merge ktrace-lwp.
 1.7 15-Mar-2004  pk branches: 1.7.16;
Replace myetheraddr() by prom_getether(). Convert the file descriptor to
deivce tree node (if possible) to support the "local-mac-address' property.
 1.6 13-Mar-2003  hannken branches: 1.6.2;
Explicit cast for netif.

Approved by: Matthias Drochner <drochner@netbsd.org>
 1.5 26-Feb-2003  pk Move all `ID prom' stuff into the prom library.
 1.4 08-Nov-1999  pk Remove inclusion of unused headers.
 1.3 15-Feb-1999  pk branches: 1.3.8; 1.3.10; 1.3.14;
Use PROMLIB to streamline this code. This also provides the bulk of
Open Firmware boot code.
 1.2 22-Jul-1997  drochner Don't use <lib/libsa/if_ether.h> anymore. This was a copy of the
old (before ARP changes) <netinet/if_ether.h>, intended for
temporary use.
 1.1 01-Jun-1997  mrg Completely rearrange SPARC boot code, modeling it after alpha and hp300
ports' boot programs. Also added support for loading gzip'd kernels,
useful for booting from floppy. From Jason R. Thorpe <thorpej@nas.nasa.gov>,
tested by Matthew Green <mrg@eterna.com.au> and Erik Fair <fair@clock.org>.
 1.3.14.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.3.10.1 15-Nov-1999  fvdl Sync with -current
 1.3.8.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.6.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.6.2.1 03-Aug-2004  skrll Sync with HEAD
 1.7.16.1 30-Dec-2006  yamt sync with head.
 1.8.8.1 11-Aug-2006  yamt sync with head
 1.8.4.1 09-Sep-2006  rpaulo sync with head
 1.9.70.2 28-Apr-2009  skrll Sync with HEAD.
 1.9.70.1 19-Jan-2009  skrll Sync with HEAD.
 1.9.62.2 11-Mar-2010  yamt sync with head
 1.9.62.1 04-May-2009  yamt sync with head.
 1.9.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.10.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.3 21-Jul-2000  jdolecek switch to sys/conf/newvers_stand.sh for generation of version file
sync the message in boot/version with other ports using newvers_stand.sh
 1.2 15-Jan-1999  mrg branches: 1.2.8; 1.2.18;
look for /^Version:/ to find the boot block version, rather than using
the "version" file's RCS id (which is useless for branches).
 1.1 01-Jun-1997  mrg branches: 1.1.8;
Completely rearrange SPARC boot code, modeling it after alpha and hp300
ports' boot programs. Also added support for loading gzip'd kernels,
useful for booting from floppy. From Jason R. Thorpe <thorpej@nas.nasa.gov>,
tested by Matthew Green <mrg@eterna.com.au> and Erik Fair <fair@clock.org>.
 1.1.8.1 19-Jan-1999  cgd pull up rev 1.2 from trunk (mrg)
 1.2.18.1 26-Aug-2000  mrg "pull up" (via patch) fixes for sparc64 vs sparc boot blocks. (this is
resolved on the trunk with newvers_stand.sh). approved by thorpej.
 1.2.8.1 20-Nov-2000  bouyer Remove files that are no longer on the trunck
 1.31 17-Jan-2025  riastradh sparc promdev.c: Nix trailing whitespace. Fix intertoken space.

No functional change intended.
 1.30 13-Jan-2025  jdc Move the check for RAID boot into the strategy routines.
This avoids a Data Access Exception at boot time on older PROM versions.
 1.29 03-Feb-2019  mrg branches: 1.29.36;
don't compare string pointers against \0
 1.28 25-Mar-2017  martin branches: 1.28.14;
Virtio block devices may have a "scsi" device_type instead of "block",
so accept both.
 1.27 30-Dec-2013  martin branches: 1.27.6; 1.27.10; 1.27.14;
Avoid buffer overruns (no practical difference for any sane firmware
properties, but better be safe).
 1.26 02-Sep-2010  uwe branches: 1.26.8; 1.26.18; 1.26.22;
Fix printf formats in -DDEBUG_PROM to make it compile.

XXX: print daddr_t after casting it to int since libsa is not built
with LIBSA_PRINTF_LONGLONG_SUPPORT by default.
 1.25 25-Aug-2010  christos factor out the floppy detection code.
 1.24 25-Aug-2010  christos Don't LOAD_BACKWARDS for floppies.
 1.23 18-Oct-2009  tsutsui branches: 1.23.2; 1.23.4;
Don't try to read disklabel to check FS_RAID on floppy boot since
reopening floppy could cause Data Access Exception later.
Fixes PR port-sparc/42186, ok'ed by mrg@.
 1.22 12-Jan-2009  tsutsui Replace time_t values in libsa sources with the following two types
to avoid unnecessary 64 bit ops which would make binaries larger:

satime_t (currently unsigned int):
numbers in seconds returned by the machine dependent getsecs() function
which are used to measure relative time

saseconds_t (currently int):
numbers in seconds used to specify timeout to network drivers

Per discussion on current-users.
 1.21 05-Apr-2008  tsutsui branches: 1.21.4; 1.21.12; 1.21.14; 1.21.20;
Add support booting from UFS2 partition for sparc.
Tested on tme emulating SS2.

Closes PR port-sparc/36068.
 1.20 13-Jul-2006  uwe branches: 1.20.8; 1.20.24; 1.20.58;
De-__P. ANSIify.

Same object code is generated (except in prf.c, where putchar argument
type was changed to int to match the prototype and one instrcution
changes accordingly).

strategy() in ofdev.c was not ANSIified in this sweep, b/c that
changes code generated at call sites!
 1.19 20-Jun-2006  jdc Add support to the 2nd stage boot loader for booting from RAID
partitions. We do this by checking the NetBSD label to see if the
boot partition is of type RAID. If so, we offset reads from the
disk so that the kernel image can be read.

Note that with this code, sun4 machines (with PROM monitor) will only
boot from RAID if the RAID partition is the first one on the disk.

Tested on a SPARCstation 20, a SPARCstation 2 and a 4/330.
 1.18 20-May-2006  mrg branches: 1.18.2;
struct filesystem is now struct fs_ops, since i don't know when.
 1.17 11-Dec-2005  christos branches: 1.17.4; 1.17.6; 1.17.8; 1.17.12; 1.17.14;
merge ktrace-lwp.
 1.16 27-Apr-2005  martin branches: 1.16.2;
Do not rely on strings to which pointers are returned by promlib functions
to persist accross further promlib calls.
This fixes (at least) bootjs.net.
 1.15 30-Jul-2003  mrg branches: 1.15.6; 1.15.8; 1.15.14;
sprinkle some: libkern.h, some -ffreestanding and some cast-y goodness,
all for the pleasure of the gcc 3 :-)
 1.14 26-Feb-2003  pk branches: 1.14.2;
Move all `ID prom' stuff into the prom library.
 1.13 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.12 26-Sep-2001  eeh branches: 1.12.4;
getprop* -> PROM_getprop*
 1.11 05-Aug-2001  mrg branches: 1.11.2;
avoid an unused variable warning
 1.10 04-Apr-2001  pk branches: 1.10.2;
* Missing PROM_OPENFIRM: case in getdevtype() and prom_getether().
* In getdevtype(), use prom_instance_to_package() to get to the device node.

From Valeriy E. Ushakov on port-sparc@netbsd.org.
 1.9 18-Jan-2001  pk branches: 1.9.2;
On V0 proms, read the `idprom' property at the root node to get to the
station's ethernet address.
 1.8 28-Apr-1999  christos branches: 1.8.2; 1.8.12;
Include <sys/systm.h> to get prototype for memset.
 1.7 15-Feb-1999  pk branches: 1.7.4;
Use PROMLIB to streamline this code. This also provides the bulk of
Open Firmware boot code.
 1.6 12-Oct-1998  pk Move around a few PTE-manipulating macros.
 1.5 05-Oct-1998  christos rename getprop routine to avoid conflict with the one in bsd_openprom.h
 1.4 15-Sep-1998  pk Can't afford a 1K buffer in the data segment.
 1.3 29-Aug-1998  mrg add support for finding kernels other than `netbsd'. the list is:
netbsd, netbsd.gz, netbsd.old, netbsd.old.gz, onetbsd, onetbsd.gz
and vmunix, in that order. this is used by the bootable `bootfs'
image (suitable for floppies and cdroms), which contains a netbsd.gz
by default.
while i'm here, fix up `boot [device] -s' which got broke when
booting kernels with a - in their name was fixed..
 1.2 27-May-1998  pk Properly split boot spec into file name and arguments.
 1.1 01-Jun-1997  mrg Completely rearrange SPARC boot code, modeling it after alpha and hp300
ports' boot programs. Also added support for loading gzip'd kernels,
useful for booting from floppy. From Jason R. Thorpe <thorpej@nas.nasa.gov>,
tested by Matthew Green <mrg@eterna.com.au> and Erik Fair <fair@clock.org>.
 1.7.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.8.12.1 03-Feb-2001  he Pull up revision 1.9 (requested by pk):
On V0 proms, read the ``idprom'' property at the root node to
get to the station's ethernet address. Fixes netbooting on some
older SPARCstations where the boot program would otherwise crash.
 1.8.2.2 21-Apr-2001  bouyer Sync with HEAD
 1.8.2.1 11-Feb-2001  bouyer Sync with HEAD.
 1.9.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.10.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.10.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.10.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.11.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.12.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.12.4.1 26-Sep-2001  nathanw file promdev.c was added on branch nathanw_sa on 2002-10-18 02:40:01 +0000
 1.14.2.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.14.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.14.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.14.2.1 03-Aug-2004  skrll Sync with HEAD
 1.15.14.3 08-May-2008  jdc Pull up revisions:
src/sys/arch/sparc/stand/common/conf.c 1.2
src/sys/arch/sparc/stand/common/promdev.c 1.21
(requested by tsutsui in ticket #1928).

Add support booting from UFS2 partition for sparc.
Tested on tme emulating SS2.

Closes PR port-sparc/36068.
 1.15.14.2 10-Nov-2006  ghen Pull up following revision(s) (requested by jdc in ticket #1527):
sys/arch/sparc/stand/common/promdev.c: revision 1.19
share/man/man8/man8.sparc/boot.8: revision 1.29 + patch
share/man/man8/man8.sparc/boot.8: revision 1.30
Add support to the 2nd stage boot loader for booting from RAID
partitions. We do this by checking the NetBSD label to see if the
boot partition is of type RAID. If so, we offset reads from the
disk so that the kernel image can be read.
Note that with this code, sun4 machines (with PROM monitor) will only
boot from RAID if the RAID partition is the first one on the disk.
Tested on a SPARCstation 20, a SPARCstation 2 and a 4/330.
Add some PROM monitor and Open Boot PROM boot-related commands and a
BUGS section describing boot limitations.
Drop trailing whitespace.
 1.15.14.1 28-Apr-2005  tron Pull up revision 1.16 (requested by martin in ticket #210):
Do not rely on strings to which pointers are returned by promlib functions
to persist accross further promlib calls.
This fixes (at least) bootjs.net.
 1.15.8.1 29-Apr-2005  kent sync with -current
 1.15.6.1 12-May-2005  riz Pull up revision 1.16 (requested by martin in ticket #1484):
Do not rely on strings to which pointers are returned by promlib functions
to persist accross further promlib calls.
This fixes (at least) bootjs.net.
 1.16.2.2 30-Dec-2006  yamt sync with head.
 1.16.2.1 21-Jun-2006  yamt sync with head.
 1.17.14.1 19-Jun-2006  chap Sync with head.
 1.17.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.17.8.3 11-Aug-2006  yamt sync with head
 1.17.8.2 26-Jun-2006  yamt sync with head.
 1.17.8.1 24-May-2006  yamt sync with head.
 1.17.6.1 01-Jun-2006  kardel Sync with head.
 1.17.4.1 09-Sep-2006  rpaulo sync with head
 1.18.2.1 13-Jul-2006  gdamore Merge from HEAD.
 1.20.58.2 17-Jan-2009  mjf Sync with HEAD.
 1.20.58.1 02-Jun-2008  mjf Sync with HEAD.
 1.20.24.1 03-Jun-2008  skrll Sync with netbsd-4.
 1.20.8.2 27-Jan-2010  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1379):
sys/arch/sparc/sparc/auxreg.h: revision 1.13
distrib/sparc/ramdisk/dot.profile: revision 1.20
sys/arch/sparc/stand/common/promdev.c: revision 1.23
Don't try to read disklabel to check FS_RAID on floppy boot since
reopening floppy could cause Data Access Exception later.
Fixes PR port-sparc/42186, ok'ed by mrg@.
Use /dev/fd0a rather than /dev/rfd0a to read instfs.tgz image from floppy.
It looks newer (appearred after 1.6) gzip tries to read less than DEV_BSIZE
(to check header?) so we can't use raw device directly.
(note sparc bootfs ramdisk doesn't have dd(1))
Workaround for PR port-sparc/42193, and would also fix PR install/28734.
Explicitly clear AUXIO4M_FTC bit in FTC_FLIP macro used on
pseudo-dma for floppy, as well as AUXIO4C_FTC bit for sun4c.
A comment in the macro says AUXIO4M_FTC bit is auto-clear,
but my two SS20s (including compatible) with 150MHz hyperSPARCs
get data_overrun without it, and no bad side effect on SS5
(works with and without this change).
Closes PR port-sparc/42516, which is the last one of a bunch of
floppy issue on NetBSD/sparc since NetBSD 2.0 days. See
http://mail-index.NetBSD.org/port-sparc/2009/12/20/msg000484.html
for details.
 1.20.8.1 08-May-2008  jdc Pull up revisions:
src/sys/arch/sparc/stand/common/conf.c 1.2
src/sys/arch/sparc/stand/common/promdev.c 1.21
(requested by tsutsui in ticket #1132).

Add support booting from UFS2 partition for sparc.
Tested on tme emulating SS2.

Closes PR port-sparc/36068.
 1.21.20.1 21-Apr-2010  matt sync to netbsd-5
 1.21.14.1 23-Jan-2010  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1251):
sys/arch/sparc/sparc/auxreg.h: revision 1.13
distrib/sparc/ramdisk/dot.profile: revision 1.20
sys/arch/sparc/dev/audioamd.c: revision 1.25
sys/arch/sparc/dev/fd.c: revision 1.147
sys/arch/sparc/stand/common/promdev.c: revision 1.23
distrib/sparc/miniroot/Makefile.inc: revision 1.16
Build miniroot binaries for sparc with -Os to shrink instfs.tgz
for the second boot floppy which use miniroot objects.
This is workaround for PR install/42146, and ok'ed by mrg@.
Don't try to read disklabel to check FS_RAID on floppy boot since
reopening floppy could cause Data Access Exception later.
Fixes PR port-sparc/42186, ok'ed by mrg@.
Disable "fast trap" handlers which invoke software interrupts
in sparc/amd7930intr.s and sparc/bsd_fdintr.s until they are
rewritten to adapt new MI softint(9) API.
No particular comments on PR port-sparc/42192, but
this fixes timeout problem on floppy access on my SPARCstation 1+.
XXX: floppy support on sun4m seems to have another problem (data overrun).
Use /dev/fd0a rather than /dev/rfd0a to read instfs.tgz image from floppy.
It looks newer (appearred after 1.6) gzip tries to read less than DEV_BSIZE
(to check header?) so we can't use raw device directly.
(note sparc bootfs ramdisk doesn't have dd(1))
Workaround for PR port-sparc/42193, and would also fix PR install/28734.
Explicitly clear AUXIO4M_FTC bit in FTC_FLIP macro used on
pseudo-dma for floppy, as well as AUXIO4C_FTC bit for sun4c.
A comment in the macro says AUXIO4M_FTC bit is auto-clear,
but my two SS20s (including compatible) with 150MHz hyperSPARCs
get data_overrun without it, and no bad side effect on SS5
(works with and without this change).
Closes PR port-sparc/42516, which is the last one of a bunch of
floppy issue on NetBSD/sparc since NetBSD 2.0 days. See
http://mail-index.NetBSD.org/port-sparc/2009/12/20/msg000484.html
for details.
 1.21.12.1 19-Jan-2009  skrll Sync with HEAD.
 1.21.4.3 09-Oct-2010  yamt sync with head
 1.21.4.2 11-Mar-2010  yamt sync with head
 1.21.4.1 04-May-2009  yamt sync with head.
 1.23.4.1 05-Mar-2011  rmind sync with head
 1.23.2.1 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.26.22.1 18-May-2014  rmind sync with head
 1.26.18.2 03-Dec-2017  jdolecek update from HEAD
 1.26.18.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.26.8.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.27.14.1 21-Apr-2017  bouyer Sync with HEAD
 1.27.10.1 26-Apr-2017  pgoyette Sync with HEAD
 1.27.6.1 28-Aug-2017  skrll Sync with HEAD
 1.28.14.1 10-Jun-2019  christos Sync with HEAD
 1.29.36.1 02-Aug-2025  perseant Sync with HEAD
 1.16 25-Aug-2010  christos factor out the floppy detection code.
 1.15 25-Aug-2010  christos Don't LOAD_BACKWARDS for floppies.
 1.14 12-Jan-2009  tsutsui Replace time_t values in libsa sources with the following two types
to avoid unnecessary 64 bit ops which would make binaries larger:

satime_t (currently unsigned int):
numbers in seconds returned by the machine dependent getsecs() function
which are used to measure relative time

saseconds_t (currently int):
numbers in seconds used to specify timeout to network drivers

Per discussion on current-users.
 1.13 28-Apr-2008  martin branches: 1.13.8;
Remove clause 3 and 4 from TNF licenses
 1.12 13-Jul-2006  uwe branches: 1.12.58; 1.12.60; 1.12.62;
De-__P. ANSIify.

Same object code is generated (except in prf.c, where putchar argument
type was changed to int to match the prototype and one instrcution
changes accordingly).

strategy() in ofdev.c was not ANSIified in this sweep, b/c that
changes code generated at call sites!
 1.11 11-Dec-2005  christos branches: 1.11.4; 1.11.8;
merge ktrace-lwp.
 1.10 27-Apr-2005  martin branches: 1.10.2;
Do not rely on strings to which pointers are returned by promlib functions
to persist accross further promlib calls.
This fixes (at least) bootjs.net.
 1.9 01-Mar-2003  pk branches: 1.9.2; 1.9.8; 1.9.10; 1.9.16;
Add support for large kernels by searching for a physical memory segment
to fit it in. As a bonus, the kernel is now also mapped to the virtual
address (i.e. KERNBASE) it is linked at.
 1.8 26-Feb-2003  pk Move all `ID prom' stuff into the prom library.
 1.7 27-May-1999  pk `xmit' & `recv' return `ssize_t'
 1.6 30-Apr-1999  christos Add bootinfo struct to pass symtab arguments.
XXX: This does not work with ELF yet, but I don't understand why...
 1.5 15-Feb-1999  pk branches: 1.5.4;
Use PROMLIB to streamline this code. This also provides the bulk of
Open Firmware boot code.
 1.4 12-Oct-1998  pk Move around a few PTE-manipulating macros.
 1.3 05-Sep-1998  pk Assign my copyrights to TNF.
 1.2 14-Sep-1997  pk Define a new DDB magic number to pass to the kernel.
 1.1 01-Jun-1997  mrg branches: 1.1.4;
Completely rearrange SPARC boot code, modeling it after alpha and hp300
ports' boot programs. Also added support for loading gzip'd kernels,
useful for booting from floppy. From Jason R. Thorpe <thorpej@nas.nasa.gov>,
tested by Matthew Green <mrg@eterna.com.au> and Erik Fair <fair@clock.org>.
 1.1.4.1 16-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.5.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.9.16.1 28-Apr-2005  tron Pull up revision 1.10 (requested by martin in ticket #210):
Do not rely on strings to which pointers are returned by promlib functions
to persist accross further promlib calls.
This fixes (at least) bootjs.net.
 1.9.10.1 29-Apr-2005  kent sync with -current
 1.9.8.1 12-May-2005  riz Pull up revision 1.10 (requested by martin in ticket #1484):
Do not rely on strings to which pointers are returned by promlib functions
to persist accross further promlib calls.
This fixes (at least) bootjs.net.
 1.9.2.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.10.2.1 30-Dec-2006  yamt sync with head.
 1.11.8.1 11-Aug-2006  yamt sync with head
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.12.62.2 04-May-2009  yamt sync with head.
 1.12.62.1 16-May-2008  yamt sync with head.
 1.12.60.1 18-May-2008  yamt sync with head.
 1.12.58.2 17-Jan-2009  mjf Sync with HEAD.
 1.12.58.1 02-Jun-2008  mjf Sync with HEAD.
 1.13.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.12 10-Mar-2016  martin Deal with _edata not being 4-byte aligned
 1.11 28-Apr-2008  martin branches: 1.11.44; 1.11.64;
Remove clause 3 and 4 from TNF licenses
 1.10 11-Dec-2005  christos branches: 1.10.74; 1.10.76; 1.10.78;
merge ktrace-lwp.
 1.9 23-Mar-2004  pk Add openfirmware() entry point.
 1.8 28-Jun-2003  uwe branches: 1.8.2;
Only JavaStations have OFW, so set cpu type to CPU_SUN4M in is_openfirm.
 1.7 21-Nov-2001  uwe Skip relocation if OpenFirmware already loaded us at the right address.
 1.6 20-May-2001  uwe branches: 1.6.2; 1.6.8;
Save OpenFirmware client interface handler in romp, where it is
expected to be. GC unused opf_romp variable.
 1.5 19-Oct-2000  pk branches: 1.5.2;
When relocating, there's no need to copy the BSS area.
 1.4 05-Mar-1999  pk branches: 1.4.8;
Use <machine/asm.h> to construct C identifiers.
 1.3 15-Feb-1999  pk Transfer copyright to TNF.
 1.2 15-Feb-1999  pk Use PROMLIB to streamline this code. This also provides the bulk of
Open Firmware boot code.
 1.1 01-Jun-1997  mrg Completely rearrange SPARC boot code, modeling it after alpha and hp300
ports' boot programs. Also added support for loading gzip'd kernels,
useful for booting from floppy. From Jason R. Thorpe <thorpej@nas.nasa.gov>,
tested by Matthew Green <mrg@eterna.com.au> and Erik Fair <fair@clock.org>.
 1.4.8.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.6.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.6.8.1 20-May-2001  nathanw file srt0.S was added on branch nathanw_sa on 2002-01-08 00:27:56 +0000
 1.6.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.8.2.1 03-Aug-2004  skrll Sync with HEAD
 1.10.78.1 16-May-2008  yamt sync with head.
 1.10.76.1 18-May-2008  yamt sync with head.
 1.10.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.11.64.1 19-Mar-2016  skrll Sync with HEAD
 1.11.44.1 03-Dec-2017  jdolecek update from HEAD

RSS XML Feed