aboutsummaryrefslogtreecommitdiffstats
path: root/tools/firmware/rombios
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2011-04-12 13:34:30 +0100
committerIan Campbell <ian.campbell@citrix.com>2011-04-12 13:34:30 +0100
commitddff13d94c763321b54cfc2f6f12fc520c7b03c5 (patch)
treea24d374e732c887d6e9ddcfb7ee0469ff76f2af1 /tools/firmware/rombios
parent7d75f6881e5d438d5eb1d2abda78c64b43ab8544 (diff)
downloadxen-ddff13d94c763321b54cfc2f6f12fc520c7b03c5.tar.gz
xen-ddff13d94c763321b54cfc2f6f12fc520c7b03c5.tar.bz2
xen-ddff13d94c763321b54cfc2f6f12fc520c7b03c5.zip
tools: hvmloader: move ROMBIOS configuration into tools/firmware/rombios/
Currently rombios and hvmloader are rather intertwined. Separate the ROMBIOS configuration options out into a ROMBIOS provided file so that the dependency can become strictly from hvmloader to rombios. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'tools/firmware/rombios')
-rw-r--r--tools/firmware/rombios/32bit/pmm.c2
-rw-r--r--tools/firmware/rombios/config.h39
-rw-r--r--tools/firmware/rombios/rombios.c2
3 files changed, 41 insertions, 2 deletions
diff --git a/tools/firmware/rombios/32bit/pmm.c b/tools/firmware/rombios/32bit/pmm.c
index 0e5c5b8799..3b2c5350be 100644
--- a/tools/firmware/rombios/32bit/pmm.c
+++ b/tools/firmware/rombios/32bit/pmm.c
@@ -65,7 +65,7 @@
#include <stdint.h>
#include <stddef.h>
-#include <../hvmloader/config.h>
+#include "config.h"
#include <../hvmloader/e820.h>
#include "util.h"
diff --git a/tools/firmware/rombios/config.h b/tools/firmware/rombios/config.h
new file mode 100644
index 0000000000..4b501791a5
--- /dev/null
+++ b/tools/firmware/rombios/config.h
@@ -0,0 +1,39 @@
+#ifndef _ROMBIOS_CONFIG_H
+#define _ROMBIOS_CONFIG_H
+
+/* Memory map. */
+#define SCRATCH_PHYSICAL_ADDRESS 0x00010000
+#define HYPERCALL_PHYSICAL_ADDRESS 0x00080000
+
+#define OPTIONROM_PHYSICAL_ADDRESS 0x000C8000
+#define OPTIONROM_PHYSICAL_END 0x000EA000
+#define BIOS_INFO_PHYSICAL_ADDRESS 0x000EA000
+#define ACPI_PHYSICAL_ADDRESS 0x000EA020
+#define E820_PHYSICAL_ADDRESS 0x000EA100
+#define SMBIOS_PHYSICAL_ADDRESS 0x000EB000
+#define SMBIOS_MAXIMUM_SIZE 0x00005000
+#define ROMBIOS_PHYSICAL_ADDRESS 0x000F0000
+
+/* Offsets from E820_PHYSICAL_ADDRESS. */
+#define E820_NR_OFFSET 0x0
+#define E820_OFFSET 0x8
+
+/* Xen Platform Device */
+#define XEN_PF_IOBASE 0x10
+#define PFFLAG_ROM_LOCK 1 /* Sets whether ROM memory area is RW or RO */
+
+/* Located at BIOS_INFO_PHYSICAL_ADDRESS. */
+struct bios_info {
+ uint8_t com1_present:1; /* 0[0] - System has COM1? */
+ uint8_t com2_present:1; /* 0[1] - System has COM2? */
+ uint8_t lpt1_present:1; /* 0[2] - System has LPT1? */
+ uint8_t hpet_present:1; /* 0[3] - System has HPET? */
+ uint32_t pci_min, pci_len; /* 4, 8 - PCI I/O hole boundaries */
+ uint32_t madt_csum_addr; /* 12 - Address of MADT checksum */
+ uint32_t madt_lapic0_addr; /* 16 - Address of first MADT LAPIC struct */
+ uint32_t bios32_entry; /* 20 - Entry point for 32-bit BIOS */
+};
+#define BIOSINFO_OFF_bios32_entry 20
+
+#endif
+
diff --git a/tools/firmware/rombios/rombios.c b/tools/firmware/rombios/rombios.c
index f3363e9f94..80980b67f8 100644
--- a/tools/firmware/rombios/rombios.c
+++ b/tools/firmware/rombios/rombios.c
@@ -29,7 +29,7 @@
#define uint8_t unsigned char
#define uint16_t unsigned short
#define uint32_t unsigned long
-#include "../hvmloader/config.h"
+#include "config.h"
#define HVMASSIST
#undef HVMTEST