Home | History | Annotate | Download | only in installboot
History log of /src/sys/arch/atari/stand/installboot/installboot.c
RevisionDateAuthorComments
 1.39  03-Jul-2022  tsutsui Fix inverted logic. My fault back in 2015..
 1.38  11-May-2022  rin Make FD support optional (intended for install media).
 1.37  11-May-2022  rin Refactor install_[sw]d() into install_hd().

Shave off ~0.5KB from install floppy, and dedup codes a lot.

Thanks tsutsui@ for kind review!
 1.36  11-Jan-2017  christos need <sys/stat.h>
 1.35  12-Aug-2015  tsutsui branches: 1.35.2;
Try to shrink binary size a bit.

- omit usage of options in SMALLPROG case
- use bool instead of int where appropriate
- rely on zero-initialized-bss
 1.34  24-Nov-2014  tsutsui branches: 1.34.2;
Disable "OS bootversion check" on crunched binaries for installation media.

This oscheck() function seems implemented to check compatibility
between bootloaders and /netbsd kernel, but checking /netbsd using kvm(3)
doesn't make sense on installation or even future cross builds, and
probably we will never bump bootloader version without compatibility
per recent 14 years history.

This works around overflow of 1440KB 2HD sysinst.fs, and would also be
worth to pullup to netbsd-7.
 1.33  24-Nov-2014  tsutsui Revert previous again.

There are claims that it still violates strict-aliasing rule and
it is no sense to just appease compiler by incorrect implementation.
 1.32  16-Nov-2014  tsutsui Appease gcc48 -Werror=strict-aliasing warning by filling cksum via union.

Discussed in source-changes-d@ thread and tested on TT030.
Should be pulled up to netbsd-7 (if NetBSD/m68k 7.0 will switch to gcc48).
 1.31  16-Nov-2014  tsutsui Revert revs 1.29 and 1.30, to make it easier to pullup an alternative fix.

Ok'ed by christos@
http://mail-index.netbsd.org/source-changes-d/2014/11/15/msg007338.html
 1.30  13-Nov-2014  christos move to the right offset
 1.29  13-Nov-2014  christos fix strict aliasing violations
 1.28  31-Mar-2014  ozaki-r branches: 1.28.4;
Fix typo
 1.27  29-Mar-2014  ozaki-r Fix typos
 1.26  26-Mar-2014  christos kill sprintf
 1.25  05-Nov-2011  christos branches: 1.25.10; 1.25.14;
make this compile again.
 1.24  14-Mar-2009  dsl branches: 1.24.12;
ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.23  14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.22  06-Jan-2009  tsutsui branches: 1.22.2;
Fix PR port-atari/40315: Bootloader fails on Atari TT030
Add asm sources which provide a fixed entry point for raw bootxx and bootxxx
because modern aggressive gcc4 may reorder functions in the same source
and the first function in a C source won't always appear at the beginning
in its object.

Also overhaul various files in the stand directory:
- rename stand/Makefile.inc to stand/Makefile.booters and
explicitly include it from each Makefile because the stand
directory contains non standalone programs like installboot and
Makefile.inc will be included implicitly from all Makefiles in SUBDIRs
- put more common options into Makefile.booters so that
all boot programs use proper options (-Os etc.)
- make standalone boot programs compile without installed ${DESTDIR}:
- create machine and m68k symlinks in ${.OBJDIR} in all boot programs
- set appropriate make environments to suppress errors and warnings
- <string.h> isn't there in _STANDALONE case
- put #ifdef TOSTOOLS (looks equivarent with !_STANDALONE)
to some files in stand/tostools
- use ${LD} ${LINKFLAGS} rather than ${CC} ${LDFLAGS}
- create raw binaries on ${PROG} target rather than on beforeinstall
and stop weird renaming on beforeinstall and afterinstall
- print proper error message if bootxx size is larger than limit
- create ${DESTDIR}/usr/mdec/{milan,std} directories on beforeinstall
in all boot programs
(XXX: how can we put MD /usr/mdec/foo directories into src/etc/mtree?)
- prototype warnsfy
- cleanup Makefiles for readablity and remove unnecessary rules
- no need to use daddr_t in installboot because the AHDI label doesn't
support 64 bit block numbers

Tested by David Ross (PR submitter) on port-atari, and
finally NetBSD/atari on TT030 is now fully functional.

Should be pulled up to netbsd-4 (where gcc4 was initially imported)
and netbsd-5.
 1.21  15-Nov-2008  abs Since dl.d_type is always "unknown" now, pick the type of bootblock to
install based on the device name: eg /dev/fd0c would be floppy
 1.20  11-Dec-2005  christos branches: 1.20.24; 1.20.68; 1.20.74; 1.20.78; 1.20.84; 1.20.86; 1.20.88;
merge ktrace-lwp.
 1.19  11-Mar-2004  jmc daddr_t is forced to int32_t in sys/arch/atari/stand/Makefile.inc so correct
the printf formats to match this
 1.18  09-Mar-2004  jdc Catch up to the bootblock split into std and milan directories.
 1.17  01-Apr-2003  he branches: 1.17.2;
Undo the last; adding the quad arithmetic caused the boot code to
overflow. Instead do as the mvme68k port, and use 32-bit daddr_t here.
 1.16  01-Apr-2003  he Adapt to daddr_t being bumped to 64 bits. This required us to add
div/mod quad operations to libsa, and adjusting a pair of format specifiers.
 1.15  09-Aug-2002  soren Remove extraneous \n's in {err,warn}{,x}.
 1.14  20-Jul-2002  grant sweep of errx/warnx, remove unnecessary trailing \n
 1.13  12-Apr-2002  leo branches: 1.13.2;
Don't bail out when /netbsd is not present. We don't really need it
anyway.
 1.12  14-Oct-2001  leo branches: 1.12.4;
Just use '_bootversion', don't use C_LABEL macros. From RTSL, I found out
that kvm_nlist adds an underscore when the binary format is ELF.
 1.11  06-Sep-2001  leo Make this finally compile again. It hasn't worked since the C_LABEL() got in.
 1.10  30-Sep-2000  leo branches: 1.10.4;
Add include of <machine/asm.h>. C_LABEL is defined there.
 1.9  08-Jul-2000  jdolecek use _C_LABEL() for bootversion, instead of hardcoding the reference as _bootversion
 1.8  01-Dec-1998  leo branches: 1.8.10;
Make this compile again... ('maximum entropy').
 1.7  09-Jul-1997  leo Introduce 'bootversion' in locore.s. Check this to decide if installing
a bootstrap with the running installboot makes sense.
 1.6  08-Jan-1997  leo Handle DTYPE_ESDI like ST506.
 1.5  08-Jan-1997  leo Bump version.
 1.4  29-Jun-1996  leo Update to match NetBSD version.
 1.3  14-May-1996  leo branches: 1.3.4;
Update to make this work correctly when using an obj-directory.
 1.2  28-Mar-1996  leo Drop in a more interlligent version check.
 1.1  29-Feb-1996  leo branches: 1.1.1;
Initial revision
 1.1.1.1  29-Feb-1996  leo NetBSD/Atari bootcode by Waldi Ravens.
 1.3.4.1  30-Jun-1996  jtc Pulled up rev 1.4 by request from Leo Weppelman
 1.8.10.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.10.4.4  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.10.4.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.10.4.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.10.4.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.12.4.4  13-Aug-2002  nathanw Catch up to -current.
 1.12.4.3  01-Aug-2002  nathanw Catch up to -current.
 1.12.4.2  17-Apr-2002  nathanw Catch up to -current.
 1.12.4.1  14-Oct-2001  nathanw file installboot.c was added on branch nathanw_sa on 2002-04-17 00:02:43 +0000
 1.13.2.1  30-Aug-2002  gehenna catch up with -current.
 1.17.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.17.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.17.2.1  03-Aug-2004  skrll Sync with HEAD
 1.20.88.2  16-Jan-2009  bouyer Pull up following revision(s) (requested by tsutsui in ticket #274):
sys/arch/atari/stand/xxboot/Makefile.xxboot: revision 1.5
sys/arch/atari/stand/tostools/libtos/libtos.h: revision 1.5
sys/arch/atari/stand/installboot/disklabel.c: revision 1.3
sys/arch/atari/stand/bootxxx/Makefile.bootxxx: revision 1.4, 1.5
sys/arch/atari/stand/libsa/Makefile: revision 1.28
sys/arch/atari/stand/bootxx/start.S: revision 1.1
distrib/utils/sysinst/arch/atari/md.c: revision 1.23
sys/arch/atari/stand/bootxx/Makefile.bootxx: revision 1.8
sys/arch/atari/stand/tostools/libtos/aout.c: revision 1.11
sys/arch/atari/stand/installboot/installboot.h: revision 1.9
sys/arch/atari/stand/bootxxx/bootxxx.c: revision 1.4
sys/arch/atari/stand/Makefile.inc: file removal
distrib/sets/lists/base/md.atari: revision 1.50
sys/arch/atari/stand/Makefile.booters: revision 1.1
sys/arch/atari/stand/bootxx/bootxx.c: revision 1.13
sys/arch/atari/stand/installboot/installboot.c: revision 1.22
sys/arch/atari/stand/tostools/libtos/elf.c: revision 1.9
sys/arch/atari/stand/tostools/libtos/sysinfo.c: revision 1.8
sys/arch/atari/stand/bootxxx/start.S: revision 1.1
Fix PR port-atari/40315: Bootloader fails on Atari TT030
Add asm sources which provide a fixed entry point for raw bootxx and bootxxx
because modern aggressive gcc4 may reorder functions in the same source
and the first function in a C source won't always appear at the beginning
in its object.
Also overhaul various files in the stand directory:
- rename stand/Makefile.inc to stand/Makefile.booters and
explicitly include it from each Makefile because the stand
directory contains non standalone programs like installboot and
Makefile.inc will be included implicitly from all Makefiles in SUBDIRs
- put more common options into Makefile.booters so that
all boot programs use proper options (-Os etc.)
- make standalone boot programs compile without installed ${DESTDIR}:
- create machine and m68k symlinks in ${.OBJDIR} in all boot programs
- set appropriate make environments to suppress errors and warnings
- <string.h> isn't there in _STANDALONE case
- put #ifdef TOSTOOLS (looks equivarent with !_STANDALONE)
to some files in stand/tostools
- use ${LD} ${LINKFLAGS} rather than ${CC} ${LDFLAGS}
- create raw binaries on ${PROG} target rather than on beforeinstall
and stop weird renaming on beforeinstall and afterinstall
- print proper error message if bootxx size is larger than limit
- create ${DESTDIR}/usr/mdec/{milan,std} directories on beforeinstall
in all boot programs
(XXX: how can we put MD /usr/mdec/foo directories into src/etc/mtree?)
- prototype warnsfy
- cleanup Makefiles for readablity and remove unnecessary rules
- no need to use daddr_t in installboot because the AHDI label doesn't
support 64 bit block numbers
Tested by David Ross (PR submitter) on port-atari, and
finally NetBSD/atari on TT030 is now fully functional.
Should be pulled up to netbsd-4 (where gcc4 was initially imported)
and netbsd-5.
Don't install built boot.atari loaders into / of DESTDIR because
there are two variants of boot.atari per machine types (std or milan)
and they should be selected and copied from /usr/mdec/{std,milan} dirs
to /targetroot during installation.
Problem on default installation with sysinst was reported by David Ross.
Remove /boot.atari, which is no longer installed during build
and removed from base.tgz.
Note we must not mark this obsolete because this tertiary bootloader
will be copied into / during installation and it shouldn't be removed
by postinstall(8).
Before installboot(8), check running machine types (milan or others)
via sysctl(3) and copy appropriate tertiary boot.atari loader
from /usr/mdec/{std,milan} into targetroot.
Full fresh installations of 5.0_BETA and 4.0_STABLE with the same change
have been tested by David Ross on port-atari.
Fixes the final portion of PR port-atari/40315, and
pullup requests to both netbsd-4 and netbsd-5 will be sent shortly.
 1.20.88.1  08-Jan-2009  snj Pull up following revision(s) (requested by abs in ticket #228):
sys/arch/atari/stand/installboot/installboot.c: revision 1.21
Since dl.d_type is always "unknown" now, pick the type of bootblock to
install based on the device name: eg /dev/fd0c would be floppy
 1.20.86.2  28-Apr-2009  skrll Sync with HEAD.
 1.20.86.1  19-Jan-2009  skrll Sync with HEAD.
 1.20.84.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.20.78.1  04-May-2009  yamt sync with head.
 1.20.74.1  17-Jan-2009  mjf Sync with HEAD.
 1.20.68.1  15-Jan-2009  bouyer Pull up following revision(s) (requested by abs in ticket #1257):
distrib/atari/miniroot/Makefile.inc: file removal
distrib/atari/floppies/prepare/list: revision 1.5
distrib/atari/miniroot/dot.profile: file removal
distrib/atari/miniroot/install.md: file removal
distrib/atari/floppies/install/list: revision 1.8
distrib/atari/miniroot/disktab.shadow: file removal
distrib/atari/miniroot/termcap.vt: file removal
distrib/atari/floppies/prepare/install.md: revision 1.3
sys/arch/atari/stand/installboot/installboot.c: revision 1.21
distrib/atari/floppies/common/dot.profile: revision 1.3
distrib/atari/miniroot/list: file removal
Since dl.d_type is always "unknown" now, pick the type of bootblock to
install based on the device name: eg /dev/fd0c would be floppy
Fix atari sysinst based miniroot image, and retire old (unreferenced)
miniroot.
 1.20.24.2  15-Jan-2009  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1263):
sys/arch/atari/stand/xxboot/Makefile.xxboot: revision 1.5
sys/arch/atari/stand/tostools/libtos/libtos.h: revision 1.5
sys/arch/atari/stand/installboot/disklabel.c: revision 1.3
sys/arch/atari/stand/bootxxx/Makefile.bootxxx: revision 1.4
sys/arch/atari/stand/bootxxx/Makefile.bootxxx: revision 1.5
sys/arch/atari/stand/libsa/Makefile: revision 1.28
sys/arch/atari/stand/bootxx/start.S: revision 1.1
distrib/utils/sysinst/arch/atari/md.c: revision 1.23
sys/arch/atari/stand/bootxx/Makefile.bootxx: revision 1.8
sys/arch/atari/stand/tostools/libtos/aout.c: revision 1.11
sys/arch/atari/stand/installboot/installboot.h: revision 1.9
sys/arch/atari/stand/bootxxx/bootxxx.c: revision 1.4
distrib/sets/lists/base/md.atari: revision 1.50
sys/arch/atari/stand/Makefile.booters: revision 1.1
sys/arch/atari/stand/bootxx/bootxx.c: revision 1.13
sys/arch/atari/stand/installboot/installboot.c: revision 1.22
sys/arch/atari/stand/tostools/libtos/elf.c: revision 1.9
sys/arch/atari/stand/tostools/libtos/sysinfo.c: revision 1.8
sys/arch/atari/stand/bootxxx/start.S: revision 1.1
Fix PR port-atari/40315: Bootloader fails on Atari TT030
Add asm sources which provide a fixed entry point for raw bootxx and bootxxx
because modern aggressive gcc4 may reorder functions in the same source
and the first function in a C source won't always appear at the beginning
in its object.
Also overhaul various files in the stand directory:
- rename stand/Makefile.inc to stand/Makefile.booters and
explicitly include it from each Makefile because the stand
directory contains non standalone programs like installboot and
Makefile.inc will be included implicitly from all Makefiles in SUBDIRs
- put more common options into Makefile.booters so that
all boot programs use proper options (-Os etc.)
- make standalone boot programs compile without installed ${DESTDIR}:
- create machine and m68k symlinks in ${.OBJDIR} in all boot programs
- set appropriate make environments to suppress errors and warnings
- <string.h> isn't there in _STANDALONE case
- put #ifdef TOSTOOLS (looks equivarent with !_STANDALONE)
to some files in stand/tostools
- use ${LD} ${LINKFLAGS} rather than ${CC} ${LDFLAGS}
- create raw binaries on ${PROG} target rather than on beforeinstall
and stop weird renaming on beforeinstall and afterinstall
- print proper error message if bootxx size is larger than limit
- create ${DESTDIR}/usr/mdec/{milan,std} directories on beforeinstall
in all boot programs
(XXX: how can we put MD /usr/mdec/foo directories into src/etc/mtree?)
- prototype warnsfy
- cleanup Makefiles for readablity and remove unnecessary rules
- no need to use daddr_t in installboot because the AHDI label doesn't
support 64 bit block numbers
Tested by David Ross (PR submitter) on port-atari, and
finally NetBSD/atari on TT030 is now fully functional.
Should be pulled up to netbsd-4 (where gcc4 was initially imported)
and netbsd-5.
Don't install built boot.atari loaders into / of DESTDIR because
there are two variants of boot.atari per machine types (std or milan)
and they should be selected and copied from /usr/mdec/{std,milan} dirs
to /targetroot during installation.
Problem on default installation with sysinst was reported by David Ross.
Remove /boot.atari, which is no longer installed during build
and removed from base.tgz.
Note we must not mark this obsolete because this tertiary bootloader
will be copied into / during installation and it shouldn't be removed
by postinstall(8).
Before installboot(8), check running machine types (milan or others)
via sysctl(3) and copy appropriate tertiary boot.atari loader
from /usr/mdec/{std,milan} into targetroot.
Full fresh installations of 5.0_BETA and 4.0_STABLE with the same change
have been tested by David Ross on port-atari.
Fixes the final portion of PR port-atari/40315, and
pullup requests to both netbsd-4 and netbsd-5 will be sent shortly.
 1.20.24.1  15-Jan-2009  bouyer Pull up following revision(s) (requested by abs in ticket #1257):
distrib/atari/miniroot/Makefile.inc: file removal
distrib/atari/floppies/prepare/list: revision 1.5
distrib/atari/miniroot/dot.profile: file removal
distrib/atari/miniroot/install.md: file removal
distrib/atari/floppies/install/list: revision 1.8
distrib/atari/miniroot/disktab.shadow: file removal
distrib/atari/miniroot/termcap.vt: file removal
distrib/atari/floppies/prepare/install.md: revision 1.3
sys/arch/atari/stand/installboot/installboot.c: revision 1.21
distrib/atari/floppies/common/dot.profile: revision 1.3
distrib/atari/miniroot/list: file removal
Since dl.d_type is always "unknown" now, pick the type of bootblock to
install based on the device name: eg /dev/fd0c would be floppy
Fix atari sysinst based miniroot image, and retire old (unreferenced)
miniroot.
 1.22.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.24.12.2  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.24.12.1  10-Nov-2011  yamt sync with head
 1.25.14.1  18-May-2014  rmind sync with head
 1.25.10.2  03-Dec-2017  jdolecek update from HEAD
 1.25.10.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.28.4.1  29-Mar-2015  snj Pull up following revision(s) (requested by martin in ticket #651):
distrib/atari/floppies/common/list.images: revision 1.10
sys/arch/atari/stand/installboot/Makefile: revision 1.8
sys/arch/atari/stand/installboot/installboot.c: revision 1.34
Disable "OS bootversion check" on crunched binaries for installation media.
This oscheck() function seems implemented to check compatibility
between bootloaders and /netbsd kernel, but checking /netbsd using kvm(3)
doesn't make sense on installation or even future cross builds, and
probably we will never bump bootloader version without compatibility
per recent 14 years history.
This works around overflow of 1440KB 2HD sysinst.fs, and would also be
worth to pullup to netbsd-7.
 1.34.2.2  05-Feb-2017  skrll Sync with HEAD
 1.34.2.1  22-Sep-2015  skrll Sync with HEAD
 1.35.2.1  20-Mar-2017  pgoyette Sync with HEAD

RSS XML Feed