i386: Mark the obsolete fields in bootinfo with _was_

Mark the obsolete fields in bootinfo with _was_. Note that the fields
from bi_memdesc_version to the end of the structure never were used in a
release. They were added in April 2010 for i386 EFI booting. The boot
loader set these fields though 2019, but no kernel ever looked at them
and we never supported i386 EFI booting, and likely never will in this
form. They can likely be deleted entirely in the future, but locore.S
needs to change to do that (it also needs to change to drop support for
really old booting scenarios as well, which will eliminate bi_endcommon
too).

All the other fields haven't been used since the 4.x -> 5.x cutover of
the wdc driver to ata.

The bi_bios_dev field is used in the handoff between bootXX and the
loader. The loader uses it to determine what disk it was loaded off of
to detmerine the default root filesystem. It's not used by the i386
kernel anymore to determine anything.

Sponsored by:		Netflix
Reviewed by:		tsoome
Differential Revision:	https://reviews.freebsd.org/D36544
This commit is contained in:
Warner Losh 2022-09-16 09:09:16 -06:00
parent d43bcf62a2
commit 59b1d07428

View File

@ -40,7 +40,7 @@
/* Only change the version number if you break compatibility. */
#define BOOTINFO_VERSION 1
#define N_BIOS_GEOM 8
#define _WAS_N_BIOS_GEOM 8
/*
* A zero bootinfo field often means that there is no info available.
@ -52,12 +52,12 @@ struct bootinfo {
u_int32_t bi_kernelname; /* represents a char * */
u_int32_t bi_nfs_diskless; /* struct nfs_diskless * */
/* End of fields that are always present. */
#define bi_endcommon bi_n_bios_used
u_int32_t bi_n_bios_used;
u_int32_t bi_bios_geom[N_BIOS_GEOM];
#define bi_endcommon _was_bi_n_bios_used
u_int32_t _was_bi_n_bios_used;
u_int32_t _was_bi_bios_geom[_WAS_N_BIOS_GEOM];
u_int32_t bi_size;
u_int8_t bi_memsizes_valid;
u_int8_t bi_bios_dev; /* bootdev BIOS unit number */
u_int8_t bi_bios_dev; /* bootdev BIOS unit number (bootX -> loader only) */
u_int8_t bi_pad[2];
u_int32_t bi_basemem;
u_int32_t bi_extmem;
@ -67,13 +67,13 @@ struct bootinfo {
u_int32_t bi_kernend; /* end of kernel space */
u_int32_t bi_envp; /* environment */
u_int32_t bi_modulep; /* preloaded modules */
uint32_t bi_memdesc_version; /* EFI memory desc version */
uint64_t bi_memdesc_size; /* sizeof EFI memory desc */
uint64_t bi_memmap; /* pa of EFI memory map */
uint64_t bi_memmap_size; /* size of EFI memory map */
uint64_t bi_hcdp; /* DIG64 HCDP table */
uint64_t bi_fpswa; /* FPSWA interface */
uint64_t bi_systab; /* pa of EFI system table */
uint32_t _was_bi_memdesc_version;/* EFI memory desc version */
uint64_t _was_bi_memdesc_size; /* sizeof EFI memory desc */
uint64_t _was_bi_memmap; /* pa of EFI memory map */
uint64_t _was_bi_memmap_size; /* size of EFI memory map */
uint64_t _was_bi_hcdp; /* DIG64 HCDP table */
uint64_t _was_bi_fpswa; /* FPSWA interface */
uint64_t _was_bi_systab; /* pa of EFI system table */
};
#ifdef _KERNEL