History log of /src/usr.sbin/installboot/arch/hp300.c |
Revision | | Date | Author | Comments |
1.22 |
| 05-Apr-2025 |
tsutsui | Replace unnecessary pointer arith with array for readability.
|
1.21 |
| 05-Apr-2025 |
tsutsui | Cleanup hp300 LIF bootblock definitions.
- move LIF value definitions from MD mkboot to MI <sys/bootblock.h> to share them between mkboot and MI installboot(8) - rename variables and use proper macros for readability - misc KNF
|
1.20 |
| 30-Mar-2025 |
tsutsui | Always read LIF volume/directory from stage1 even on cd9660 stage2 case.
mmap(2) against the bootstrap file in the target cd9660 could fail because the sector size of ISO9660 is 2048 so each file could be allocated at an offset not pagesize (4096 or 8192) aligned.
This could fail if stage1 (specified via "primary" arg on command line) and stage2 (on the target filesystem) files are different, but in "build.sh iso-image" case they are always identical.
The problem (build failures in auotomated builds for hp300 on Linux) was reported by Jan-Benedict Glaw.
Should also be pulled up to netbsd-10.
|
1.19 |
| 19-May-2024 |
tsutsui | branches: 1.19.2; Add cd9660 support to search a bootloader file in the target file system.
Also add CD boot support for hp300, using a bootloader file in cd9660 fs. This is a tool's part to close PR/54455.
HP 9000/300 machines read LIF directory entry allocated after the LIF volume header at the top of the boot disk during bootstrap, and a bootstrap file must be contiguously allocated on the disk due to limitation of the LIF specification.
Current NetBSD/hp300's bootloader is larger than ~80KB so we have to prepare a special 'boot' partition for FFS (that has only 8KB (ffsv1) or 32KB (ffsv2) spaces) disks to put such a large bootloader.
On the other hand, on ISO9660 fs all files are allocated contiguously so we can specify a bootloader file in the target ISO9660 directly in the LIF directory entry.
Note we can simply use the existing "append" option to create bootable CD ISO for hp300, but it looks some emulators (at leaset MAME) reject such non-standard ISO files, i.e. with an appended bootloader file at the end of the image.
|
1.18 |
| 11-May-2024 |
tsutsui | Sync with src/sys/arch/hp300/stand/mkboot/volhdr.h rev 1.6.
https://mail-index.netbsd.org/source-changes/2024/05/07/msg151195.html > Use proper signedness for the LIF file system data structures.
mkboot should use this MI <sys/bootblock.h> and volhdr.h should be removed soon.
|
1.17 |
| 05-Dec-2021 |
msaitoh | branches: 1.17.2; s/maping/mapping/
|
1.16 |
| 07-May-2019 |
thorpej | Use designated initializers for struct ib_mach.
|
1.15 |
| 14-Jun-2013 |
msaitoh | branches: 1.15.28; Remove trailng whitespaces.
|
1.14 |
| 03-May-2013 |
matt | Make this build with the disk label change.
|
1.13 |
| 10-Feb-2011 |
tsutsui | branches: 1.13.4; 1.13.10; Fix botch in previous revision. Sorry for a stupid change.
|
1.12 |
| 07-Jan-2010 |
tsutsui | branches: 1.12.2; Add a sectorsize parameter member in struct ib_params and use it where sector size (disk block size) is required, instead of DEV_BSIZE constant which means device I/O block size.
"Looks reasonable" from dholland@, and fixes tools installboot(8) on Cygwin where DEV_BSIZE != 512 as mentioned in PR toolchain/42555.
|
1.11 |
| 05-Apr-2009 |
lukem | fix sign-compare issues
|
1.10 |
| 28-Apr-2008 |
martin | branches: 1.10.8; Remove clause 3 and 4 from TNF licenses
|
1.9 |
| 02-Feb-2008 |
itohy | branches: 1.9.4; Change be32toh to htobe32 where applicable.
|
1.8 |
| 02-Feb-2008 |
itohy | d_npartitions field of struct disklabel is 16bit, not 32bit.
|
1.7 |
| 18-Feb-2006 |
dsl | branches: 1.7.10; Move the MD definitions into the MD files, leaving machines.c with just a list of the supported machines.
|
1.6 |
| 12-Jun-2005 |
dyoung | Oops, straggler: #include <nbinclude/sys/disklabel.h> if we're building a host-tool.
XXX In hp300_setboot, quiet -Wunitialized: initialize secsize to XXX HP300_SECTSIZE. Is this correct?
|
1.5 |
| 12-Jun-2005 |
dyoung | For portability, use 'unsigned int' instead of 'uint'.
|
1.4 |
| 13-Nov-2003 |
dsl | roundup() write of hp300 boot code to a multiplr of the disk sector size. and re-instate the hp300 code - seems to work.
|
1.3 |
| 10-Nov-2003 |
dsl | Ensure we use the target disklabel.h, not the host one. Read the disklabel directly from sector 2 instead of using DIOCGDINFO. Expect the label to be big-endian. Support -o append for real files.
|
1.2 |
| 08-Nov-2003 |
uwe | Don't use PRId64 in a host tool. Not all systems have the PRI* macros (e.g. FreeBSD 4.x). Cast to long long int instead.
|
1.1 |
| 08-Nov-2003 |
dsl | First cut of hp300 installboot, seems to DTRT on i386. Maybe this code ought to know how to add a file to the LIF filesystem.
|
1.7.10.1 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.9.4.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.10.8.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.12.2.1 |
| 17-Feb-2011 |
bouyer | Sync with HEAD
|
1.13.10.1 |
| 23-Jun-2013 |
tls | resync from head
|
1.13.4.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.15.28.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.17.2.2 |
| 12-Apr-2025 |
martin | Pull up following revision(s) (requested by tsutsui in ticket #1088):
usr.sbin/installboot/arch/hp300.c: revision 1.20
Always read LIF volume/directory from stage1 even on cd9660 stage2 case. mmap(2) against the bootstrap file in the target cd9660 could fail because the sector size of ISO9660 is 2048 so each file could be allocated at an offset not pagesize (4096 or 8192) aligned.
This could fail if stage1 (specified via "primary" arg on command line) and stage2 (on the target filesystem) files are different, but in "build.sh iso-image" case they are always identical.
The problem (build failures in auotomated builds for hp300 on Linux) was reported by Jan-Benedict Glaw.
|
1.17.2.1 |
| 22-Jun-2024 |
martin | Pull up following revision(s) (requested by tsutsui in ticket #722):
sys/fs/cd9660/cd9660_util.c: revision 1.16 sys/arch/hp300/stand/common/clock.c: revision 1.14 sys/arch/hp300/stand/common/scsireg.h: revision 1.5 sys/arch/hp300/stand/common/scsireg.h: revision 1.6 sys/arch/hp300/stand/Makefile.buildboot: revision 1.38 sys/arch/hp300/include/bus.h: revision 1.23 sys/arch/hp300/stand/Makefile.buildboot: revision 1.39 sys/arch/hp300/stand/common/sd.c: revision 1.12 sys/arch/hp300/stand/common/prf.c: revision 1.6 sys/arch/hp300/stand/common/sd.c: revision 1.13 usr.sbin/installboot/installboot.8: revision 1.106 usr.sbin/installboot/Makefile: revision 1.59 sys/arch/hp300/stand/common/devopen.c: revision 1.14 usr.sbin/installboot/installboot.8: revision 1.107 sys/arch/hp300/stand/common/ite_dumb.c: revision 1.2 sys/arch/hp300/stand/common/devopen.c: revision 1.15 usr.sbin/installboot/installboot.8: revision 1.108 sys/fs/cd9660/cd9660_extern.h: revision 1.29 usr.sbin/installboot/installboot.8: revision 1.109 tools/Makefile.nbincludes: revision 1.11 (patch) sys/arch/hp300/dev/rboxreg.h: revision 1.3 sys/arch/hp300/stand/common/scsivar.h: revision 1.5 sys/arch/hp300/dev/dnkbd.c: revision 1.14 sys/arch/hp300/hp300/trap.c: revision 1.156 sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.12 sys/arch/hp300/dev/frodoreg.h: revision 1.6 sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.13 sys/arch/hp300/stand/common/ite_sti.c: revision 1.2 sys/arch/hp300/stand/common/hil.c: revision 1.15 usr.sbin/installboot/arch/hp300.c: revision 1.18 sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.14 sys/arch/hp300/dev/rbox.c: revision 1.4 usr.sbin/installboot/arch/hp300.c: revision 1.19 sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.15 sys/sys/bootblock.h: revision 1.59 sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.16 usr.sbin/installboot/installboot.h: revision 1.44 sys/arch/hp300/stand/mkboot/volhdr.h: file removal sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.17 sys/arch/hp300/dev/hpib.c: revision 1.45 usr.sbin/installboot/installboot.h: revision 1.45 usr.sbin/installboot/cd9660.c: revision 1.1 sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.18 sys/arch/hp300/dev/topcatreg.h: revision 1.3 usr.sbin/installboot/cd9660.c: revision 1.2 sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.19 sys/arch/hp300/stand/inst/inst.c: revision 1.25 sys/arch/hp300/stand/uboot/Makefile: revision 1.12 sys/arch/hp300/dev/dvbox.c: revision 1.4 sys/arch/hp300/dev/dma.c: revision 1.45 sys/arch/hp300/stand/uboot/Makefile: revision 1.13 sys/arch/hp300/stand/common/rd.c: revision 1.16 sys/arch/hp300/stand/inst/Makefile: revision 1.12 distrib/hp300/cdroms/installcd/Makefile: revision 1.4 sys/arch/hp300/stand/mkboot/volhdr.h: revision 1.6 sys/arch/hp300/stand/common/machdep.c: revision 1.16 usr.sbin/installboot/fstypes.c: revision 1.14 sys/arch/hp300/hp300/machdep.c: revision 1.238 sys/arch/hp300/include/cpu.h: revision 1.73 sys/arch/hp300/dev/diofbreg.h: revision 1.4 sys/arch/hp300/stand/common/scsi.c: revision 1.12 sys/arch/hp300/stand/common/netio.c: revision 1.19 sys/arch/hp300/stand/common/scsi.c: revision 1.13 sys/arch/hp300/dev/sti_sgc.c: revision 1.8 sys/arch/hp300/dev/rtc.c: revision 1.22 sys/arch/hp300/stand/mkboot/mkboot.c: revision 1.20 sys/arch/hp300/stand/common/conf.h: revision 1.4 sys/arch/hp300/hp300/autoconf.c: revision 1.111 sys/arch/hp300/stand/common/conf.c: revision 1.15 sys/arch/hp300/stand/mkboot/Makefile: revision 1.12 sys/arch/hp300/stand/mkboot/Makefile: revision 1.13 sys/arch/hp300/hp300/autoconf.c: revision 1.114 sys/arch/hp300/dev/dcmreg.h: revision 1.11 sys/arch/hp300/dev/diofbvar.h: revision 1.4 sys/arch/hp300/dev/dcm.c: revision 1.91 sys/fs/cd9660/cd9660_util.c: revision 1.15 sys/arch/hp300/dev/mcclock_frodo.c: revision 1.2
TAB/space cleanup.
installboot(8): formatting improvements
Use Ar foo instead of <foo>; this is mdoc.
Other formatting tweaks. installboot(8): fix up markup
Don't overuse .Sy - when everything is highlighted, nothing is. Use .Ic for options &c to get correct PostScript output (both are bold in plain text).
Use Aq Ar inside .Pa, as both Pa and Ar are rendered as underscored text in plain text output, and the distinction is lost.
Don't set examples in bold, but give them .Pp space around - they are much easier to read this way.
Use consistent -width in FILES. document how to use installboot on netbsd/vax.
PR/57909: Jan-Benedict Glaw: Don't include (build) timestamp when doing a reproducible build fix usage string, improve error handling. add missing chunk for repro-build. fix gcc warnings. avoid stringop truncation, fix copyright string to prevent assembler warnings.
Fix build as a tool (Jan-Benedict Glaw)
Fix integer overflow of strtol(3) for "loadpoint" address on ILP32 hosts.
This strtol(3) was introduced in rev 1.12 for PR/57909 after netbsd-10, but it returns LONG_MAX (0x7FFFFFFF) for 0xFFF00000 on ILP32 hosts and the wrong loadpoint causes "NOT ENOUGH MEMORY" error by the BOOTROMs on loading uboot.lif on (at least) my 9000/360 and 9000/425t.
Misc cosmetic changes for mostly readability. - KNF and add some newlines per blocks - define and use proper bintobcd() macro - make local functions and variables static
The same uboot.lif binaries are generated.
Rename ${PROGAOUT} -> ${PROGELF} to reflect reality. Use proper signedness for the LIF file system data structures.
Ancient 4.3BSD used short and int for location, file size, file type, and addresses etc. but all of them should be unsigned.
Also rename several variables and add comments for readability. The LIF file system info can be found in "The HPDir Project" page: https://www.hp9845.net/9845/projects/hpdir/ The same uboot.lif binaries are generated.
Add a preliminary CD boot support to uboot for preparation of PR/54455. Briefly tested on mame, but not enalbed yet.
Recognize SCSI CD-ROM devices as a booted device properly.
Necessary for PR port-hp300/54455, to boot an md root root RAMDISK
kernel from CD-ROM without "WARNING: can't find match for bootdev:" prompt.
Sync with src/sys/arch/hp300/stand/mkboot/volhdr.h rev 1.6. https://mail-index.netbsd.org/source-changes/2024/05/07/msg151195.html
Use proper signedness for the LIF file system data structures. mkboot should use this MI <sys/bootblock.h> and volhdr.h should be removed soon.
Use MI <sys/bootblock.h> to refer LIF filesystem structures. This should have been done when LIF definitions were initially added to <sys/bootblock.h> for MI installboot(8).
Enable SUPPORT_CD on uboot.
Make cd9660_util.c usable in userland tools like installboot(8).
This was partially done for src/distrib/cdrom/macppc_installboot, but more strict prototypes are necessary for native binary builds.
Install cd9660 related system headers for tools installboot(8) builds.
Reorder function prototypes per source files.
Add cd9660 support to search a bootloader file in the target file system.
Also add CD boot support for hp300, using a bootloader file in cd9660 fs. This is a tool's part to close PR/54455.
HP 9000/300 machines read LIF directory entry allocated after the LIF volume header at the top of the boot disk during bootstrap, and a bootstrap file must be contiguously allocated on the disk due to limitation of the LIF specification.
Current NetBSD/hp300's bootloader is larger than ~80KB so we have to prepare a special 'boot' partition for FFS (that has only 8KB (ffsv1) or 32KB (ffsv2) spaces) disks to put such a large bootloader.
On the other hand, on ISO9660 fs all files are allocated contiguously so we can specify a bootloader file in the target ISO9660 directly in the LIF directory entry.
Note we can simply use the existing "append" option to create bootable CD ISO for hp300, but it looks some emulators (at leaset MAME) reject such non-standard ISO files, i.e. with an appended bootloader file at the end of the image.
Put a RAMDISK kernel and SYS_UBOOT into hp300 installcd to make it bootable.
This should finally close PR/54455.
Fix tools build errors on Cygwin.
Appease warnings on building tools/installboot on Cygwin.
|
1.19.2.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|