Hello Julius Werner, Angel Pons, Arthur Heymans, Daniel Maslowski, Christian Walter, Felix Singer, Philipp Deppenwiese, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/32020
to look at the new patch set (#10).
Change subject: [WIP]x86: Introduce the blobolator ......................................................................
[WIP]x86: Introduce the blobolator
This is a PoC to run arbitrary code and blobs inside an emulated virtual machine using libx86emu, thus the name blobolator.
The libx86emu has been patched to the following: * redirect IO to the host machine it's running on * trace IO * start in protected mode * add mechanism to drop IO access * add Kconfig to debug code it is running
Implemented features: * Run ramstage in libx86emu * Kconfig specific hooks by using _blobolator_drivers (same mechanism as __pci_driver) * PCI decoding and BAR tracing * POST code decoding * Unhandled IO tracing * Added test code in qemu emulation/q35 * Machine parseable format
TODO: * Add support to trace only blobs, not stages. * Improve translation of known IO to human readable format ** COM ** PCI ** APIC ** PIT ** POST
Tested on qemu. Sucessfully run ramstage in blobolator. Tested on X11SSH-TF. Sucessfully run ramstage in blobolator (requires additional libx86emu patches).
You need to install 3rdparty/libx86emu from https://github.com/PatrickRudolph/libx86emu/tree/cpuid_msr_callback
Change-Id: I13e47f45e69376d046f35c04363fe3db1cfaa610 Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M src/Kconfig M src/arch/x86/Makefile.inc M src/arch/x86/boot.c A src/arch/x86/libx86emu/Kconfig.debug A src/arch/x86/libx86emu/Makefile.inc A src/arch/x86/libx86emu/blobolator.c A src/arch/x86/libx86emu/blobolator_internal.h A src/arch/x86/libx86emu/stdarg.h A src/arch/x86/libx86emu/stdio.h A src/arch/x86/libx86emu/time.h A src/arch/x86/libx86emu/trace-bios.c A src/arch/x86/libx86emu/trace-pci.c A src/arch/x86/libx86emu/trace-serial.c A src/arch/x86/libx86emu/trace-skl.c A src/arch/x86/libx86emu/trace.c M src/arch/x86/postcar_loader.c M src/commonlib/include/commonlib/cbmem_id.h A src/include/blobolator.h M src/include/rules.h M src/include/stddef.h M src/lib/Makefile.inc M src/lib/hardwaremain.c M src/lib/program.ld M src/mainboard/emulation/qemu-q35/mainboard.c 24 files changed, 2,065 insertions(+), 7 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/20/32020/10