
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 -- To view, visit https://review.coreboot.org/c/coreboot/+/32020 To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings Gerrit-Project: coreboot Gerrit-Branch: master Gerrit-Change-Id: I13e47f45e69376d046f35c04363fe3db1cfaa610 Gerrit-Change-Number: 32020 Gerrit-PatchSet: 10 Gerrit-Owner: Patrick Rudolph <patrick.rudolph@9elements.com> Gerrit-Reviewer: Angel Pons <th3fanbus@gmail.com> Gerrit-Reviewer: Arthur Heymans <arthur@aheymans.xyz> Gerrit-Reviewer: Christian Walter <christian.walter@9elements.com> Gerrit-Reviewer: Daniel Maslowski <info@orangecms.org> Gerrit-Reviewer: Felix Singer <felixsinger@posteo.net> Gerrit-Reviewer: Julius Werner <jwerner@chromium.org> Gerrit-Reviewer: Martin Roth <martinroth@google.com> Gerrit-Reviewer: Nico Huber <nico.h@gmx.de> Gerrit-Reviewer: Patrick Georgi <pgeorgi@google.com> Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph@9elements.com> Gerrit-Reviewer: Philipp Deppenwiese <zaolin.daisuki@gmail.com> Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org> Gerrit-CC: Michael Niewöhner Gerrit-CC: Paul Menzel <paulepanter@users.sourceforge.net> Gerrit-CC: Stefan Reinauer <stefan.reinauer@coreboot.org> Gerrit-CC: Thomas Heijligen <src@posteo.de> Gerrit-MessageType: newpatchset