Patrick Rudolph uploaded patch set #8 to this change.
[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
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).
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
23 files changed, 2,024 insertions(+), 7 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/20/32020/8
To view, visit change 32020. To unsubscribe, or for help writing mail filters, visit settings.