freebsd-dev/stand/i386/libi386
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
..
amd64_tramp.S
bio.c Add Copyright. 2018-12-30 15:34:12 +00:00
biosacpi.c Prefer uintXX_t to u_intXX_t 2018-03-13 16:33:00 +00:00
biosdisk.c loader: bc_add can not use any other probes than ah=0x4b 2020-02-03 11:33:33 +00:00
biosmem.c Add Dell Chromebook to the list of devices with E820 extmem quirk enabled 2019-01-14 01:30:48 +00:00
biospci.c Regularize the Netflix copyright 2019-02-04 21:28:25 +00:00
biospnp.c Prefer uintXX_t to u_intXX_t 2018-03-13 16:33:00 +00:00
biossmap.c
bootinfo32.c loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
bootinfo64.c loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
bootinfo.c loader: start kernel in text mode when there is no vbefb vt driver 2021-01-27 01:07:34 +02:00
comconsole.c test if port does exist via using scratch register 2020-03-12 06:45:08 +00:00
devicename.c i386_parsedev() needs to support fd devices 2019-01-02 20:31:15 +00:00
elf32_freebsd.c
elf64_freebsd.c Stop setting PG_U in bootstrap mappings. 2020-04-24 13:53:40 +00:00
i386_copy.c veloader use vectx API for kernel and modules 2020-03-08 17:42:42 +00:00
i386_module.c
libi386.h loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
Makefile loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
Makefile.depend
multiboot_tramp.S
multiboot.c stand/multiboot: adjust the protocol between loader and kernel 2021-01-29 15:23:26 +01:00
multiboot.h
nullconsole.c
pread.c
pxe.c Backout 356693. The libsa malloc does provide necessary alignment and 2020-01-13 20:02:27 +00:00
pxe.h Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
pxetramp.S stand/i386/libi386: rename .s file to .S to use Clang IAS 2018-11-26 19:29:18 +00:00
relocater_tramp.S
spinconsole.c
time.c
vbe.c loader: handle malloc failures in vbe_init, use consistent naming 2021-01-19 21:58:46 +02:00
vbe.h loader: only use vidc_install_font() with vga controller 2021-01-05 00:49:18 +02:00
vidconsole.c loader: do not update palette in text mode (real fix) 2021-01-15 15:43:14 +02:00