Home | History | Annotate | Download | only in boot_ufs
History log of /src/sys/arch/x68k/stand/boot_ufs/boot.S
RevisionDateAuthorComments
 1.19  28-Jan-2020  isaki 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.
 1.18  28-Jan-2020  isaki 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.
 1.17  18-Jan-2020  isaki 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.
 1.16  18-Jan-2020  isaki Typo in comment. s/availble/available/
 1.15  18-Jan-2020  isaki Add comment and figure of address map.
 1.14  18-Jan-2020  isaki 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).
 1.13  16-Jan-2020  isaki 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.
 1.12  14-Jan-2020  isaki Clean up.
- B_KEYINP is no longer called from C.
- B_COLOR is no longer used.
 1.11  13-Jan-2020  isaki Typo in comment. s/LABELLOFFSET/LABELOFFSET/
 1.10  01-Nov-2012  isaki branches: 1.10.38; 1.10.44;
Fix typo in comment. s/d1/d0/
 1.9  21-Feb-2011  itohy branches: 1.9.4; 1.9.10; 1.9.14;
Cleanup my copyright notice.
 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  11-Dec-2005  christos branches: 1.7.26;
merge ktrace-lwp.
 1.6  04-Dec-2003  keihan branches: 1.6.16;
netbsd.org -> NetBSD.org

All "netbsd.org" is now gone from src/sys/arch.
 1.5  09-Jun-2002  isaki branches: 1.5.6;
Divided 406 bytes disklabel area into 'nop' and 404 bytes area.
 1.4  24-Nov-2001  minoura branches: 1.4.2; 1.4.10;
boot_ufs can now used as the disk primary boot.
 1.3  28-Sep-2001  minoura branches: 1.3.4;
Update authors' mail addresses.
 1.2  27-Sep-2001  minoura Make these compile with the old (a.out) toolchain.
 1.1  27-Sep-2001  minoura Initial commit of the new bootloader to support ELF kernel.
It consists of two programs named boot_ufs and boot; the former reads
the latter (an OMAGIC a.out).
Boot now utilizes the libsa library to read the actual kernel.

- LFS code exists, but probobly does not work.
- Currently the ELF toolchain is required.
- Many features are missing.
 1.3.4.3  20-Jun-2002  nathanw Catch up to -current.
 1.3.4.2  08-Jan-2002  nathanw Catch up to -current.
 1.3.4.1  28-Sep-2001  nathanw file boot.S was added on branch nathanw_sa on 2002-01-08 00:28:45 +0000
 1.4.10.1  15-Jul-2002  gehenna catch up with -current.
 1.4.2.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.4.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.2.1  24-Nov-2001  thorpej file boot.S was added on branch kqueue on 2002-01-10 19:50:28 +0000
 1.5.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.5.6.1  03-Aug-2004  skrll Sync with HEAD
 1.6.16.1  03-Sep-2007  yamt sync with head.
 1.7.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.8.74.1  05-Mar-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.9.14.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.9.10.1  24-Nov-2012  jdc 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.
 1.9.4.1  16-Jan-2013  yamt sync with (a bit old) head
 1.10.44.3  29-Feb-2020  ad Sync with head.
 1.10.44.2  25-Jan-2020  ad Sync with head.
 1.10.44.1  17-Jan-2020  ad Sync with head.
 1.10.38.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed