From 2e7cb17c15c64bfe6394b2a1951fa187c2620c7d Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 21 May 2015 00:39:02 +0200 Subject: initial fw_cfg support Signed-off-by: Paolo Bonzini --- main.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'main.c') diff --git a/main.c b/main.c index 5ef38cf..2378abb 100644 --- a/main.c +++ b/main.c @@ -1,7 +1,9 @@ #include "bios.h" +#include "e820.h" #include "pci.h" #include "string.h" #include "segment.h" +#include "fw_cfg.h" #define PCI_VENDOR_ID_INTEL 0x8086 #define PCI_DEVICE_ID_INTEL_82441 0x1237 @@ -77,13 +79,28 @@ static void setup_idt(void) set_realmode_int(0x15, bios_int15); } +static void extract_e820(void) +{ + int id = fw_cfg_file_id("etc/e820"); + uint32_t size; + + if (id == -1) + panic(); + + size = fw_cfg_file_size(id); + e820.nr_map = size / sizeof(e820.map[0]); + fw_cfg_file_select(id); + fw_cfg_read(&e820.map, size); +} + int main(void) { make_bios_writable(); setup_pic(); setup_idt(); + fw_cfg_setup(); // extract_acpi(); - // extract_e820(); + extract_e820(); // extract_smbios(); // extract_kernel(); // make_bios_readonly(); -- cgit v1.1