Up to [cvs.NetBSD.org] / src / sys / arch / x68k / stand / xxboot
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Overhaul xxboot. And merge floppy boot, taken from boot_ustar. - Rewrite boot.S completely. boot.S now supports boot from SCSI HD/CD and floppy. - Use IOCS call to identify the floppy format, instead of chkfmt.s which accesses hardware directly. - Import print_hex() debug function from boot_ufs. - Import a feature that displays initial registers (for debug) from boot_ufs, and restore it (this in boot_ufs has been broken). - Add size optimized alternatives for some libkern routines. - Stop linking libsa to prevent to link unexpected objects. - Bump version to 2.0.
Merge changes from current as of 20200406
Sync with head.
Set heap area explicitly. Until the load address was moved, the heap was placed at _end (it's default) and it was large space. After moving, this default space was too small.
Revert placing .bss right after .data, and make .bss fixed at 0x5000. .bss placed right after .data was overwritten when first 1KB loads full .text+.data.
Use __bss_start rather than edata to point the beginning of .bss. Currently the .bss is placed right after .data. In that case, edata points to the beginning of .bss so that there is no visible changes at least currently.
Sync with head.
Change primary bootloader's load address from 0x0f0000 to 0x003000. - Moving addresses closer eliminates bunch of this linker errors: in function `entry0': relocation truncated to fit: R_68K_16 against `edata'+ffffffffffff8000 : - By this change, harmful -noinhibit-exec option can also be removed. Finally, we can break the builds when assemble error occurs! - Load address of secondary is 0x6000, so that this change limits text+data+bss 12KB or less. Current actual size is 5~7KB. I think it should be fine. - cd9660 can have up to 30KB text+data in its bootarea. Even in this case, this change limits text+data+bss 12KB or less (currently, it's about 6KB). However, I take breaking the builds on errors rather than future size limitation. There is no user visible changes or interface changes.
Typo in comment. s/availble/available/
Add comment and figure of address map.
Initialize the screen in all primary bootloaders. - Some IPL (or boot selector) don't do it, but current secondary bootloader expects the screen to be initialized to display logo. To keep messages (like version signature) displayed by primary bootloader, this initialization should be done early in all primary bootloaders. - For boot_ustar.S, relocates some registers to save bootinfo (%d0). - Bumps version. Confirmed on X68030+060turbo and my X68030. This problem was found on X68030+060turbo at NetBSD booth in OSC 2011 Hiroshima (8+ years ago).
Sync with head.
Use .org directive to fix disklabel location instead of hand calculation. If the code size before disklabel is less, zero is filled automatically. If the code size before disklabel is exceeded, assembler stops with error. Note that this changes a padding word in the current output binary from a NOP instruction to zero but there are no functional changes.
Typo in comment. s/LABELLOFFSET/LABELOFFSET/
sync with (a bit old) head
Pull up revisions: src/sys/arch/x68k/stand/boot_ufs/boot.S revision 1.10 src/sys/arch/x68k/stand/boot/dp8390.c revision 1.2 src/sys/arch/x68k/stand/boot/dp8390.h revision 1.2 src/sys/arch/x68k/stand/boot/if_ne.c revision 1.2 src/sys/arch/x68k/stand/boot/ne.c revision 1.2 src/sys/arch/x68k/stand/libsa/clock.c revision 1.2 src/sys/arch/x68k/stand/netboot/Makefile revision 1.2 src/sys/arch/x68k/stand/netboot/boot.c revision 1.2 src/sys/arch/x68k/stand/netboot/conf.c revision 1.2 src/sys/arch/x68k/stand/bootlogo/MANIFEST delete src/sys/arch/x68k/stand/bootlogo/netbsd.xpm delete src/sys/arch/x68k/stand/bootlogo/setbootimg.c delete src/sys/arch/x68k/stand/bootlogo/xpm2bootimg.c delete src/sys/arch/x68k/stand/xxboot/boot.S revisions 1.2,1.3 src/sys/arch/x68k/stand/xxboot/bootmain.c revisions 1.2,1.3,1.4 src/sys/arch/x68k/stand/xxboot/xx.c revision 1.2 src/sys/arch/x68k/stand/xxboot/xxboot_ffsv1/Makefile revisions 1.2,1.3,1.4 src/sys/arch/x68k/stand/xxboot/xxboot_ffsv2/Makefile revisions 1.2,1.3,1.4 src/sys/arch/x68k/stand/xxboot/xxboot_lfsv1/Makefile revisions 1.2,1.3,1.4 src/sys/arch/x68k/stand/xxboot/xxboot_lfsv2/Makefile revisions 1.2,1.3,1.4 src/sys/arch/x68k/stand/xxboot/version revision 1.2 src/sys/arch/x68k/stand/xxboot/cdboot_cd9660/Makefile revision 1.2 src/sys/arch/x68k/stand/libsa/sdcd.c revision 1.14 (requested by tsutsui in ticket #707). Fix typo in comment. s/d1/d0/ Remove my local RCS IDs. Remove x68k/stand/bootlogo/ directory. It was a tool before the bootloader becomes multi-stage (>10 years ago), and it does not work anymore today. Pull fixes in comments from x68k/stand/boot_ufs/boot.S rev 1.9 and 1.10. Use a correct function name in .globl decl. - fix comments - use proper uintNN_t types - use ANSI function decls - remove unnecessary function decl - remove __P() - misc KNF and cosmetics - use declarations in <lib/libsa/stand.h> - remove __P() and some KNF - remove extern variable decl - use uintNN_t type Set *file for FS_OPS() pathname properly in devopen(). Now bootxx_ffsv1 (and other bootxx ufs variants) work properly. XXX: cd9660_open() in sys/lib/libsa/cd9660.c seems to open a file in the first entry of root directory if specified path is empty. Not sure if it's intentional behavoir. Appease warning "nbmake: ${TOUCHPROG} expands to empty string". Fix previous; no need to echo dummy command. Make xxboot for ufs variants actually functional: - set bootdev properly even on SCSI HD and floppy boot per SDBOOT/FDBOOT/CDBOOT defines in each Makefile - always print xxboot name and version - use IOCS PRINT calls instead of printf to avoid size overflow in DEBUG case - wrap debug stuff with #ifdef XXBOOT_DEBUG - bump version to denote changes Mostly taken from old boot_ufs. XXX: xxboot_lfs[12] are untested. Make sure to initialize partition offset in cdopen(), i.e. fix an uninitialized auto variable which happened to be zero on XM6i emulator. Now cdboot also works on real X68030.
Resync to 2012-11-19 00:00:00 UTC
Pull up following revision(s) (requested by tsutsui in ticket #645): sys/arch/x68k/stand/newdisk/newdisk.c: revision 1.10 sys/arch/x68k/stand/xxboot/xxboot_ffsv1/Makefile: revision 1.1 sys/arch/x68k/stand/xxboot/xx.c: revision 1.1 sys/arch/x68k/stand/Makefile: revision 1.10 sys/arch/x68k/stand/Makefile: revision 1.11 sys/arch/x68k/stand/boot/conf.c: revision 1.9 sys/arch/x68k/stand/Makefile: revision 1.12 sys/arch/x68k/stand/Makefile: revision 1.13 sys/arch/x68k/include/loadfile_machdep.h: revision 1.7 sys/arch/x68k/stand/xxboot/consio1.c: revision 1.1 sys/arch/x68k/stand/libsa/sdcd.c: revision 1.12 sys/arch/x68k/stand/libsa/libx68k.h: revision 1.6 sys/arch/x68k/stand/boot/ne.c: revision 1.1 sys/arch/x68k/stand/xxboot/boot.S: revision 1.1 sys/arch/x68k/stand/libsa/sdcd.c: revision 1.13 sys/arch/x68k/stand/netboot/boot.c: revision 1.1 sys/arch/x68k/stand/libsa/devopen.c: revision 1.6 sys/arch/x68k/stand/libsa/clock.c: revision 1.1 sys/arch/x68k/stand/boot/ne.h: revision 1.1 sys/arch/x68k/stand/netboot/conf.c: revision 1.1 sys/arch/x68k/stand/boot/version: revision 1.5 sys/arch/x68k/stand/boot/version: revision 1.6 sys/arch/x68k/stand/netboot/version: revision 1.1 sys/arch/x68k/stand/xxboot/Makefile.xxboot: revision 1.1 sys/arch/x68k/stand/boot/if_ne.c: revision 1.1 sys/arch/x68k/stand/boot/dp8390.h: revision 1.1 sys/arch/x68k/stand/xxboot/xxboot_lfsv2/Makefile: revision 1.1 sys/arch/x68k/stand/boot/dp8390.c: revision 1.1 sys/arch/x68k/stand/xxboot/bootmain.c: revision 1.1 sys/arch/x68k/stand/installboot/installboot.c: revision 1.6 sys/arch/x68k/stand/xxboot/conf.c: revision 1.1 sys/arch/x68k/stand/xxboot/xxboot_lfsv1/Makefile: revision 1.1 sys/arch/x68k/stand/libsa/Makefile.inc: revision 1.2 distrib/sets/lists/base/md.x68k: revision 1.44 sys/arch/x68k/stand/boot/conf.c: revision 1.10 sys/arch/x68k/stand/boot/boot.ldscript: revision 1.3 distrib/sets/lists/base/md.x68k: revision 1.45 sys/arch/x68k/stand/xxboot/xxboot.ldscript: revision 1.1 sys/arch/x68k/stand/xxboot/Makefile: revision 1.15 sys/arch/x68k/stand/libsa/Makefile: revision 1.29 sys/arch/x68k/stand/xxboot/cdboot_cd9660/Makefile: revision 1.1 sys/arch/x68k/stand/netboot/Makefile: revision 1.1 sys/arch/x68k/stand/libsa/consio.c: revision 1.10 sys/arch/x68k/stand/xxboot/version: revision 1.1 sys/arch/x68k/stand/xxboot/xxboot_ffsv2/Makefile: revision 1.1 Comment fix. Add FFSv2 support. Fix CD support. Initial support for xxboot (cdboot_cd9660, specifically). Add xxboot (stage1) support. put library first. Fix CD support (again!). Descend to xxboot. Add xxboot_?fsv?. Change to the 2-clauses license. Tweak SUBDIR build order and add comments about each dir. Fix a bug in check_getchar() (called from awaitkey_1sec()). It didn't clear input key data when non ASCII keys (CTRL, OPT.1 etc) were pressed so it couldn't detect further key inputs and "any other key for boot menu" interrupt during boot didn't work in that case. The problem was tracked by Y.Sugahara, and tested on X68030 and XM6i by me. Bump version to denote check_getchar() bug fix. First cut at x68k network bootloader via NE2000 on Neptune-X and Nereid. Written by isaki@ back in 2003 based on x86's NE2000 netboot, and misc debug and improvements by tsutsui@ and Y.Sugahara. Tested on XM6i (emulating Nereid Ethernet) and X68030 + Neptune-X by me, also on X68030 + Nereid and X68000 PRO-II + Xellent30 + Nereid by isaki@. Note: - X680x0 IPLROM doesn't support bootstrap from Neptune-X or Nereid, so this network bootloader needs to be loaded from floppy or harddisk. - Currently netboot support is not merged into the secondary Multi-boot (/usr/mdec/boot) due to size restriction. - Primary loaders assumes that the secondary bootloader name is /boot, so /usr/mdec/netboot needs to be installed as /boot into the target bootstrap device. Add new /usr/mdec/netboot. Check lp->d_npartitions before calling dkcksum() (which is in src/sbin/disklabel/dkcksum.c) because it doesn't check range and could cause coredump during installboot against floppy that includes garbage in LABELSECTOR.
file boot.S was added on branch netbsd-6 on 2012-11-18 19:05:17 +0000
Use a correct function name in .globl decl.
Pull fixes in comments from x68k/stand/boot_ufs/boot.S rev 1.9 and 1.10.
sync with head
file boot.S was added on branch yamt-pagecache on 2012-04-17 00:07:03 +0000
Initial support for xxboot (cdboot_cd9660, specifically).