Module Name: src Committed By: martin Date: Wed Oct 18 16:53:04 UTC 2023
Modified Files: src/sys/arch/amd64/conf [netbsd-10]: XEN3_DOM0 src/sys/arch/i386/conf [netbsd-10]: XEN3PAE_DOM0 src/sys/arch/x86/include [netbsd-10]: genfb_machdep.h src/sys/arch/x86/pci [netbsd-10]: pci_machdep.c src/sys/arch/x86/x86 [netbsd-10]: consinit.c genfb_machdep.c src/sys/arch/xen/conf [netbsd-10]: files.xen src/sys/arch/xen/include [netbsd-10]: hypervisor.h src/sys/arch/xen/x86 [netbsd-10]: autoconf.c consinit.c pvh_consinit.c src/sys/arch/xen/xen [netbsd-10]: xen_machdep.c src/sys/external/mit/xen-include-public/dist/xen/include/public [netbsd-10]: platform.h xen.h Added Files: src/sys/arch/xen/xen [netbsd-10]: genfb_xen.c Log Message: Pull up following revision(s) (requested by bouyer in ticket #428): sys/arch/xen/xen/xen_machdep.c: revision 1.28 sys/arch/x86/pci/pci_machdep.c: revision 1.97 sys/arch/xen/xen/genfb_xen.c: revision 1.1 sys/arch/xen/xen/genfb_xen.c: revision 1.2 sys/arch/xen/include/hypervisor.h: revision 1.59 sys/arch/i386/conf/XEN3PAE_DOM0: revision 1.41 (patch) sys/arch/x86/x86/genfb_machdep.c: revision 1.22 sys/arch/xen/x86/consinit.c: revision 1.18 sys/arch/xen/x86/autoconf.c: revision 1.26 sys/external/mit/xen-include-public/dist/xen/include/public/platform.h: revision 1.2 sys/arch/xen/conf/files.xen: revision 1.188 sys/arch/x86/x86/consinit.c: revision 1.37 sys/arch/xen/conf/files.xen: revision 1.189 sys/arch/x86/x86/consinit.c: revision 1.38 sys/external/mit/xen-include-public/dist/xen/include/public/xen.h: revision 1.2 sys/arch/x86/include/genfb_machdep.h: revision 1.7 sys/arch/xen/x86/pvh_consinit.c: revision 1.5 sys/arch/xen/x86/pvh_consinit.c: revision 1.6 sys/arch/amd64/conf/XEN3_DOM0: revision 1.201 Move the pvh_xencons so xen_machdep.c as early_xencons, so it can be used in the future as early ouput for plain PV guests too. Support non-VGA framebuffers for Xen dom0. This is mandatory for graphic console on EFI-only hardware. Add a xen_genfb_getbtinfo() function which will return a btinfo_framebuffer structure, filled in with parameters provided by Xen when runing as a Xen dom0, call xen_genfb_getbtinfo() instead of lookup_bootinfo(BTINFO_FRAMEBUFFER) when adding properties to the PCI graphic device (when genfb is attached) and in x86_genfb_init() when genfb is used as console. x86/x86/consinit.c: If running as a Xen dom0, use xen_genfb_getbtinfo() to check if we have a genfb console xen/x86/consinit.c: support genfb as possible console xen/x86/consinit.c: use the hypervior IO as console until a better one is found. If the hypervisor is using a serial port for boot messages, we'll get NetBSD's boot message on the serial port too until the real console takes over. xen/x86/autoconf.c: rework device_register() to be closer to the x86 version. Especially make sure that device_pci_register() is called. Make sure to always fall back to xen_early_console, even for dom0 Enable genfb in DOM0 kernels Add ext_lfb_base to dom0_vga_console_info, from recent Xen. We know if it's present or not by checking dom0.info_size Add XENPF_get_dom0_console, which gets a dom0_vga_console_info stucture from the hypervisor. To be used by PVH dom0 kernels. XENPVH option is not used. Fix consinit.c to use XENPVHVM as intended and XENPVH from defflag for a dom0 PVH, the dom0_vga_console_info structure has to be retrieved using a platform hypercall; do so in the XENPVHVM case. Now genfb works in a PVH dom0 running on Xen 4.18 (Xen 4.15 doesn't support this platoform op, so no way to make it work here). To generate a diff of this commit: cvs rdiff -u -r1.197.4.2 -r1.197.4.3 src/sys/arch/amd64/conf/XEN3_DOM0 cvs rdiff -u -r1.36.4.1 -r1.36.4.2 src/sys/arch/i386/conf/XEN3PAE_DOM0 cvs rdiff -u -r1.5.18.1 -r1.5.18.2 src/sys/arch/x86/include/genfb_machdep.h cvs rdiff -u -r1.93.4.2 -r1.93.4.3 src/sys/arch/x86/pci/pci_machdep.c cvs rdiff -u -r1.35.4.1 -r1.35.4.2 src/sys/arch/x86/x86/consinit.c cvs rdiff -u -r1.19.4.1 -r1.19.4.2 src/sys/arch/x86/x86/genfb_machdep.c cvs rdiff -u -r1.187 -r1.187.4.1 src/sys/arch/xen/conf/files.xen cvs rdiff -u -r1.55.4.2 -r1.55.4.3 src/sys/arch/xen/include/hypervisor.h cvs rdiff -u -r1.25 -r1.25.20.1 src/sys/arch/xen/x86/autoconf.c cvs rdiff -u -r1.16 -r1.16.68.1 src/sys/arch/xen/x86/consinit.c cvs rdiff -u -r1.2.20.1 -r1.2.20.2 src/sys/arch/xen/x86/pvh_consinit.c cvs rdiff -u -r0 -r1.2.2.2 src/sys/arch/xen/xen/genfb_xen.c cvs rdiff -u -r1.27 -r1.27.4.1 src/sys/arch/xen/xen/xen_machdep.c cvs rdiff -u -r1.1.1.1 -r1.1.1.1.32.1 \ src/sys/external/mit/xen-include-public/dist/xen/include/public/platform.h \ src/sys/external/mit/xen-include-public/dist/xen/include/public/xen.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.