Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [netbsd-10] src



Module Name:    src
Committed By:   martin
Date:           Sat May 13 13:26:57 UTC 2023

Modified Files:
        src/share/man/man4 [netbsd-10]: options.4
        src/share/man/man8/man8.x86 [netbsd-10]: boot.8 dosboot.8 pxeboot.8
        src/sys/arch/amd64/amd64 [netbsd-10]: locore.S
        src/sys/arch/amd64/conf [netbsd-10]: files.amd64 std.amd64
        src/sys/arch/i386/stand/efiboot [netbsd-10]: boot.c efiboot.c efiboot.h
            version
        src/sys/arch/i386/stand/efiboot/bootia32 [netbsd-10]: efibootia32.c
            startprog32.S
        src/sys/arch/i386/stand/efiboot/bootx64 [netbsd-10]: efibootx64.c
            startprog64.S
        src/sys/arch/i386/stand/lib [netbsd-10]: exec.c

Log Message:
Pull up following revision(s) (requested by manu in ticket #159):

        share/man/man8/man8.x86/boot.8: revision 1.27
        sys/arch/i386/stand/efiboot/version: revision 1.3
        share/man/man8/man8.x86/boot.8: revision 1.28
        share/man/man8/man8.x86/boot.8: revision 1.29
        sys/arch/i386/stand/lib/exec.c: revision 1.79
        sys/arch/i386/stand/efiboot/efiboot.c: revision 1.13
        sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.6
        sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.6
        sys/arch/i386/stand/efiboot/boot.c: revision 1.22
        sys/arch/amd64/amd64/locore.S: revision 1.219
        sys/arch/i386/stand/efiboot/bootia32/startprog32.S: revision 1.3
        sys/arch/i386/stand/efiboot/efiboot.h: revision 1.12
        sys/arch/amd64/conf/files.amd64: revision 1.121
        sys/arch/amd64/conf/std.amd64: revision 1.13
        share/man/man8/man8.x86/pxeboot.8: revision 1.6
        sys/arch/i386/stand/efiboot/bootx64/startprog64.S: revision 1.4
        sys/arch/amd64/amd64/locore.S: revision 1.220
        share/man/man8/man8.x86/dosboot.8: revision 1.4
        share/man/man4/options.4: revision 1.524

Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address

EFI bootstrap assumes it can copy the amd64 kernel to its ELF load
address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can
clash with previous UEFI memory allocation, as described here:
http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html

This change adds a reloc keyword for controling where the EFI
boostrap will copy the kernel image. Possible values are:
default - the default and prior behavior, copy at 0x200000.
none - do not copy and use the kernel image where it was loaded.
address - specify an explicit address where to copy the kernel.

This comes with an amd64 kernel patch that makes it self-relocatable.
It first discover where it was loaded in memory, and if this is
different than the expected 0x200000, hhe the kernel relocates
itself and start over at the right address.

Merge x86 boot options in x86/boot(8) and add undocumented UEFI options

We were supposed to keep the option list in x86/boot(8), x86/dosoot(8)
and x86/pxeboot(8) in sync, but it did not happen, hence it may work
better with all the options in x86/boot(8). Also add the undocumented
UEFI boot options.

Add a SELFRELOC kernel option for the sake of documentation clarity.
Instead of telling that x86/boot(8) reloc command needs a kernel able
to self relocate, we can tell it needs a kernel built with the
SELFRELOC option. This keeps the reader from wondering what could
make a kernel able to self relocate.

Remove XXX todo marker left by mistake

Raise the version for new feature (here reloc command)
Suggested by Masanobu SAITOH


To generate a diff of this commit:
cvs rdiff -u -r1.523 -r1.523.2.1 src/share/man/man4/options.4
cvs rdiff -u -r1.26 -r1.26.2.1 src/share/man/man8/man8.x86/boot.8
cvs rdiff -u -r1.3 -r1.3.22.1 src/share/man/man8/man8.x86/dosboot.8
cvs rdiff -u -r1.5 -r1.5.6.1 src/share/man/man8/man8.x86/pxeboot.8
cvs rdiff -u -r1.214 -r1.214.4.1 src/sys/arch/amd64/amd64/locore.S
cvs rdiff -u -r1.120 -r1.120.20.1 src/sys/arch/amd64/conf/files.amd64
cvs rdiff -u -r1.12 -r1.12.20.1 src/sys/arch/amd64/conf/std.amd64
cvs rdiff -u -r1.21 -r1.21.4.1 src/sys/arch/i386/stand/efiboot/boot.c
cvs rdiff -u -r1.12 -r1.12.24.1 src/sys/arch/i386/stand/efiboot/efiboot.c
cvs rdiff -u -r1.11 -r1.11.4.1 src/sys/arch/i386/stand/efiboot/efiboot.h
cvs rdiff -u -r1.2 -r1.2.26.1 src/sys/arch/i386/stand/efiboot/version
cvs rdiff -u -r1.5 -r1.5.26.1 \
    src/sys/arch/i386/stand/efiboot/bootia32/efibootia32.c
cvs rdiff -u -r1.2 -r1.2.52.1 \
    src/sys/arch/i386/stand/efiboot/bootia32/startprog32.S
cvs rdiff -u -r1.5 -r1.5.26.1 \
    src/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c
cvs rdiff -u -r1.3 -r1.3.50.1 \
    src/sys/arch/i386/stand/efiboot/bootx64/startprog64.S
cvs rdiff -u -r1.78 -r1.78.4.1 src/sys/arch/i386/stand/lib/exec.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index