freebsd-dev/stand/i386
Roger Pau Monné b6d85a5f51 stand/multiboot: adjust the protocol between loader and kernel
There's a currently ad-hoc protocol to hand off the FreeBSD kernel
payload between the loader and the kernel itself when Xen is in the
middle of the picture. Such protocol wasn't very resilient to changes
to the loader itself, because it relied on moving metadata around to
package it using a certain layout. This has proven to be fragile, so
replace it with a more robust version.

The new protocol requires using a xen_header structure that will be
used to pass data between the FreeBSD loader and the FreeBSD kernel
when booting in dom0 mode. At the moment the only data conveyed is the
offset of the start of the module metadata relative to the start of the
module itself.

This is a slightly disruptive change since it also requires a change
to the kernel which is contained in this patch. In order to update
with this change the kernel must be updated before updating the
loader, as described in the handbook. Note this is only required when
booting a FreeBSD/Xen dom0. This change doesn't affect the normal
FreeBSD boot protocol.

This fixes booting FreeBSD/Xen in dom0 mode after
3630506b9d.

Sponsored by:		Citrix Systems R&D
MFC after:		3 days
Reviewed by:		tsoome
Differential Revision:	https://reviews.freebsd.org/D28411
2021-01-29 15:23:26 +01:00
..
boot0 Revert r362466 2020-06-22 07:46:24 +00:00
boot0sio
boot2 Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
btx btx: rename .s files to .S to use Clang IAS 2018-11-26 19:14:33 +00:00
cdboot stand: remove CLANG_NO_IAS from cdboot 2019-08-15 17:32:39 +00:00
common loader: edd_device_path_v3 is too small 2020-10-12 09:34:50 +00:00
gptboot loader: implement GELI writes 2020-07-11 06:51:42 +00:00
gptzfsboot loader: zfs should support bootonce an nextboot 2020-09-21 09:01:10 +00:00
isoboot Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
libfirewire biospci_write_config args were backwards 2019-01-08 20:01:56 +00:00
libi386 stand/multiboot: adjust the protocol between loader and kernel 2021-01-29 15:23:26 +01:00
loader loader: create built in font from bold font face 2021-01-23 10:53:30 +02:00
loader_4th Update Makefile.depend files 2019-12-11 17:37:53 +00:00
loader_lua Create a loader for each interpreter for x86 BIOS and all EFI 2018-08-14 18:44:41 +00:00
loader_simp Create a loader for each interpreter for x86 BIOS and all EFI 2018-08-14 18:44:41 +00:00
mbr stand/i386: rename .s to .S to use Clang IAS 2018-12-03 19:16:34 +00:00
pmbr stand/i386: rename .s to .S to use Clang IAS 2018-12-03 19:16:34 +00:00
pxeldr Avoid using non-portable dd conv=osync option 2020-05-11 08:40:33 +00:00
zfsboot zfsboot: add prototype for main() 2020-11-15 14:04:27 +00:00
boot.ldscript Link stand/i386 components using a linker script 2020-03-04 21:01:22 +00:00
Makefile stand: properly declare subdir deps or .WAIT, do parallel build 2020-12-31 11:15:45 -06:00
Makefile.inc Link stand/i386 components using a linker script 2020-03-04 21:01:22 +00:00