I've spent some time trying to figure out where and why the UEFI 2.70
firmware is crashing when built with CSM support under Bhyve.
The first thing I noticed is that the code that builds the E820 table
doesn't appear to be finding the location of the EBDA at 0x40E: the
first entry should be something like 0x0 to 0x4cf00, but is 0-0 instead.
E820[ 0]: 0x 0 ---- 0x 0, Type = 0x1
E820[ 1]: 0x 0 ---- 0x A0000, Type = 0x2
E820[ 2]: 0x E0000 ---- 0x 100000, Type = 0x2
E820[ 3]: 0x 100000 ---- 0x 406000, Type = 0x1
...
As an aside, I'm working on a patch to submit upstream to fix the output
so it pads with zeros instead of spaces.
I've also found that as was probably pretty obvious the system is
crashing when trying to call into the CSM to initialize it. It gets as
far as calling AsmThunk16 (AsmThunk.nasm), but never appears to reach
CsmMain in BhyveCsm16.c. I'll see if I can work on it some more to
narrow down the error.
Another thing: the GNUmakefile in OvmfPkg/Csm/BhyveCsm16 has "CC ?=
gcc", but it appears the build system already sets CC to "cc", which
uses the system's clang compiler, which can't compile the assembly code.
I don't know if we might want to either hard-code CC to "gcc" for now,
or have users create a 'cc' symlinks in BaseTools/Bin/FreeBSD-amd64 ?
--
Rebecca Cran
_______________________________________________
freebsd-virtualization@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
To unsubscribe, send any mail to
"freebsd-virtualization-unsubscr...@freebsd.org"