History log of /src/sys/arch/hp300/stand/common/rd.c |
Revision | | Date | Author | Comments |
1.17 |
| 12-Feb-2023 |
andvar | fix various typos in comments.
|
1.16 |
| 15-Jan-2023 |
tsutsui | TAB/space cleanup.
|
1.15 |
| 25-Nov-2022 |
tsutsui | branches: 1.15.2; Sync with rdreg.h integer type changes.
|
1.14 |
| 21-Nov-2022 |
tsutsui | Use common macro for numbers of cylinders and blocks for HP-IB disks.
No binary changes.
|
1.13 |
| 21-Nov-2022 |
tsutsui | Make local variables static and read only ones const.
|
1.12 |
| 21-Nov-2022 |
tsutsui | Sync a list of HP-IB disk IDs with kernel's one.
Now bootloader can boot from 2202A, 7908A, 7911A, and 7941A. Tested on 425t and HPDisk.
|
1.11 |
| 05-Jul-2021 |
tsutsui | Cleanup duplicated CS/80 indentify structures. From OpenBSD.
https://marc.info/?l=openbsd-cvs&m=113227249626888&w=2 > Define the CS/80 identify structure only once and correctly, instead of > duplicating it in every CS/80 driver and using an hardcoded number for > its size. > No functional change.
https://marc.info/?l=openbsd-cvs&m=113273001020159&w=2 > Pick HP-IB describe structures changes from main kernel code here as well.
|
1.10 |
| 17-Jul-2011 |
joerg | branches: 1.10.58; 1.10.70; Retire varargs.h support. Move machine/stdarg.h logic into MI sys/stdarg.h and expect compiler to provide proper builtins, defaulting to the GCC interface. lint still has a special fallback. Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and derive va_list as required by standards.
|
1.9 |
| 08-Feb-2011 |
rmind | Remove clause 3 (UCB advertising clause) from the University of Utah copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks! Also, merge UCB and Utah copyright texts back into one, as they originally were.
Extra verification by snj@.
|
1.8 |
| 04-Mar-2007 |
christos | branches: 1.8.66; 1.8.72; 1.8.74; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.7 |
| 25-Jun-2006 |
tsutsui | branches: 1.7.10; Use (uint8_t *) to specify buffers for hpib xfers.
|
1.6 |
| 11-Dec-2005 |
christos | branches: 1.6.4; 1.6.8; 1.6.16; merge ktrace-lwp.
|
1.5 |
| 20-Feb-2005 |
tsutsui | branches: 1.5.4; Use ANSI function decls.
|
1.4 |
| 28-Aug-2004 |
thorpej | branches: 1.4.4; 1.4.6; Remove the last vestiges of COMPAT_NOLABEL. It's been 10 years; label your disks already.
|
1.3 |
| 14-Nov-2003 |
tsutsui | Misc cleanup: - KNF - WARNSfy - remove __P() - remove register declarations - const'ify some variables - make some local functions/variables static - bcopy -> memcpy - bcmp -> memcmp - bzero -> memset - space/TAB fix etc.
|
1.2 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
1.1 |
| 04-Feb-1997 |
thorpej | branches: 1.1.60; Complete and total reorganization of the hp300 boot code, modeled closely after the build process used by NetBSD/alpha's boot code.
|
1.1.60.5 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.1.60.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.1.60.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.1.60.2 |
| 03-Sep-2004 |
skrll | Sync with HEAD
|
1.1.60.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.4.6.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.4.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.5.4.2 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.5.4.1 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.6.16.1 |
| 13-Jul-2006 |
gdamore | Merge from HEAD.
|
1.6.8.1 |
| 26-Jun-2006 |
yamt | sync with head.
|
1.6.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.7.10.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.8.74.1 |
| 17-Feb-2011 |
bouyer | Sync with HEAD
|
1.8.72.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.8.66.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.10.70.1 |
| 01-Aug-2021 |
thorpej | Sync with HEAD.
|
1.10.58.2 |
| 06-Dec-2022 |
martin | Pull up following revision(s) (requested by tsutsui in ticket #1552):
sys/arch/hp300/dev/rd.c: revision 1.120 sys/arch/hp300/dev/rd.c: revision 1.121 sys/arch/hp300/dev/rd.c: revision 1.122 sys/arch/hp300/dev/rd.c: revision 1.123 sys/arch/hp300/dev/rd.c: revision 1.124 sys/arch/hp300/dev/rdreg.h: revision 1.19 sys/arch/hp300/dev/rd.c: revision 1.111 sys/arch/hp300/dev/rd.c: revision 1.112 sys/arch/hp300/dev/rd.c: revision 1.113 sys/arch/hp300/stand/common/rd.c: revision 1.12 sys/arch/hp300/dev/rd.c: revision 1.114 sys/arch/hp300/stand/common/rd.c: revision 1.13 sys/arch/hp300/dev/rd.c: revision 1.115 sys/arch/hp300/stand/common/rd.c: revision 1.14 sys/arch/hp300/dev/rd.c: revision 1.116 sys/arch/hp300/stand/common/rd.c: revision 1.15 sys/arch/hp300/dev/rd.c: revision 1.117 sys/arch/hp300/dev/rd.c: revision 1.118 sys/arch/hp300/dev/rd.c: revision 1.119 sys/arch/hp300/dev/rdvar.h: revision 1.27 sys/arch/hp300/dev/rdreg.h: revision 1.20
Sync a list of HP-IB disk IDs with kernel's one. Now bootloader can boot from 2202A, 7908A, 7911A, and 7941A. Tested on 425t and HPDisk.
Make local variables static and read only ones const.
Use common macro for numbers of cylinders and blocks for HP-IB disks. No binary changes.
Fix "rd(4) at punits not configured on HPDisk are misprobed" problem. - check not only stat value returned by C_QSTAT command against each punit but also desc.d_name returned by C_DESC command because it looks HPDisk responds to commands against punits supported but not-configured punits at 1-3 - prepare rdreset_unit() function to manage reset punit ops during probe without valid softc
The stragety is taken from OpenBSD with several modification. Tested on 425t with real 9122D and HPDisk emulating two 7937H drives. Should be pulled up to netbsd-9.
Remove now unused buffer members from softc prepared only for rdreset().
Use proper integer types for HP-IB xfer parameters. No visible regression on 425t and HPDisk.
Sync with rdreg.h integer type changes.
Remove unnecessary declarations.
Check bounds of RAW_PART by bounds_check_with_mediasize() as other drivers. With this check, dd(1) without a count value against a raw partition is terminated properly at the end of media. Tested on 425t and HPDisk. Should be pulled up to netbsd-9.
Check bounds of each partition by MI bounds_check_with_label(9). The previous implementation was committed in rev 1.26 about 26 years ago and it looks there is no quirk to use the old MD one.
Pass a correct dev_t arg to disk_ioctl(). Probably harmless.
Remove a duplicated static function declaration.
Set disk_geom parameters required by DIOCGPARTINFO in disk_ioctl(). With this change raid(4) no longer complains before mountroot: RAIDframe: can't get disk size for dev rd0 (22) Should be pulled up to netbsd-9.
Use proper RAW_PART macro rather than a magic number.
Remove more duplicated static function declarations.
Misc KNF and cosmetics.
Add empty DIOCCACHESYNC ioctl(2) for rd(4). Without this raid(4) always complains on various raidctl(8) ops: raid0: cache flush[0] to component 0 failed (22) RAID1 configured by raid(4) just works HP-IB disks on hp300.
Explicitly include <sys/kernel.h> for hz(9) as man pages says. XXX: it looks sys/param.h r1.615 and later also has extern int hz
|
1.10.58.1 |
| 14-Jul-2021 |
martin | Pull up following revision(s) (requested by tsutsui in ticket #1323):
sys/arch/hp300/dev/rd.c: revision 1.109 sys/arch/hp300/stand/Makefile.buildboot: revision 1.37 sys/arch/hp300/stand/common/ct.c: revision 1.8 sys/arch/hp300/dev/hpibvar.h: revision 1.22 sys/arch/hp300/dev/ct.c: revision 1.62 sys/arch/hp300/dev/hpibvar.h: revision 1.23 sys/arch/hp300/dev/ct.c: revision 1.63 sys/arch/hp300/dev/hpibvar.h: revision 1.24 sys/arch/hp300/dev/mt.c: revision 1.55 sys/arch/hp300/dev/rdreg.h: revision 1.14 sys/arch/hp300/dev/hpib.c: revision 1.43 (via patch) sys/arch/hp300/dev/rdreg.h: revision 1.15 sys/arch/hp300/dev/rdreg.h: revision 1.16 sys/arch/hp300/dev/rdreg.h: revision 1.17 etc/etc.hp300/MAKEDEV.conf: revision 1.15 sys/arch/hp300/stand/common/hpibvar.h: revision 1.6 sys/arch/hp300/stand/common/rd.c: revision 1.11 sys/arch/hp300/dev/ctreg.h: revision 1.11 sys/arch/hp300/dev/rdvar.h: revision 1.24 sys/arch/hp300/dev/rdvar.h: revision 1.25 sys/arch/hp300/dev/rdvar.h: revision 1.26 sys/arch/hp300/dev/rd.c: revision 1.103 sys/arch/hp300/dev/rd.c: revision 1.104 sys/arch/hp300/dev/rd.c: revision 1.105 sys/arch/hp300/dev/rd.c: revision 1.106 sys/arch/hp300/dev/rd.c: revision 1.107 sys/arch/hp300/dev/rd.c: revision 1.108
Consistently use #define<tab> here.
Consistently use #define<tab> as rdreg.h.
No need to bother to use aprint_debug(9) inside #ifdef DEBUG block.
Pull HP-IB probe fixes from OpenBSD/hp300. https://marc.info/?l=openbsd-cvs&m=113217630426615&w=2
Overhaul the way HP-IB devices are probed. We will now do an exhaustive probe of the (slave, punit) tuple space, since this is the only way we can get a dual disk or dual tape enclosure to attach two devices of the same kind.
This allows using multiple rd(4) disk images on the same slave emulated by HPDisk (and probably the real 9122D with dual floppy disk drives).
Thanks to Miod Vallat for suggesting this fix.
Move attach messages from common rdident() to explicit rdattach().
Cleanup duplicated CS/80 indentify structures. From OpenBSD. https://marc.info/?l=openbsd-cvs&m=113227249626888&w=2
Define the CS/80 identify structure only once and correctly, instead of duplicating it in every CS/80 driver and using an hardcoded number for its size. No functional change. https://marc.info/?l=openbsd-cvs&m=113273001020159&w=2
Pick HP-IB describe structures changes from main kernel code here as well.
Add support of multiple rd(4) disks on all punits for HPDisk.
Special thanks to Anders Gustafsson, the author of "HPDisk" (GPIB disk emulator) http://www.dalton.ax/hpdisk/ for providing bare boards and improving firmwares for NetBSD/hp300.
Specify -fno-unwind-tables to shrink binaries.
Before: text data bss dec hex filename 77902 4328 137120 219350 358d6 uboot
After: text data bss dec hex filename 64186 4328 137120 205634 32342 uboot
Create rd3 device nodes, for HPDisk.
Add Device and drive info of 2202A, 7908A, 7911A, and 7941A.
Geometries and description info are taken from hpdrive.ini.sample in HPDrive. Briefly tested on HPDisk.
Print rd(4) capacity and geometry info as sd(4) and wd(4) do.
Before: rd0 at hpibbus1 slave 0 punit 0: 7937H rd0: 698 cylinders, 13 heads, 1116102 blocks, 512 bytes/block
After: rd0 at hpibbus1 slave 0 punit 0: 7937H rd0: 544 MB, 698 cyl, 13 head, 123 sec, 512 bytes/block x 1116102 blocks
|
1.15.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.
|