aboutsummaryrefslogtreecommitdiffstats
path: root/tools/firmware/Makefile
diff options
context:
space:
mode:
authorkaf24@localhost.localdomain <kaf24@localhost.localdomain>2007-01-26 16:30:48 +0000
committerkaf24@localhost.localdomain <kaf24@localhost.localdomain>2007-01-26 16:30:48 +0000
commitdd59dfdfb1e48b15dfa0139fd3d78070ebaf4479 (patch)
tree0b757f319a04f591f53633795b5869e30bad0201 /tools/firmware/Makefile
parent247a0089e5a71a20ea7ffea2ea5a8863ff0873e2 (diff)
downloadxen-dd59dfdfb1e48b15dfa0139fd3d78070ebaf4479.tar.gz
xen-dd59dfdfb1e48b15dfa0139fd3d78070ebaf4479.tar.bz2
xen-dd59dfdfb1e48b15dfa0139fd3d78070ebaf4479.zip
This patch adds a 32bit gateway to the Bochs BIOS. The 32 bit code is
compiled with gcc and linked into the hvmloader as a byte-array. Hvmloader allocates memory (rounded up to next 64kb) from the e820 table below 4GB, copies and relocates the 32bit code in the allocated area and copies a jumptable (located in a section '.biosjumptable') pointing to the 'exported' functions into the Bochs BIOS's memory area to link the two code sections. The memory area has been reserved and can be identified with the signature '___JMPT'. In the Bochs BIOS only stub functions are provided. These load the index of a particular function in the jump table, switch to protected mode and call the function in the high memory area. The stack is prepared such that functions compiled by gcc can just pick the parameters from the stack as usual - this means that the 16bit real-mode return address is taken off the stack. The stub functions should have the same signature as those in 32bit space. For ABI compatibility reasons parameters inside the Bochs BIOS stubs should all be 32bit wide. This patch includes a test function that calls three gcc-compiled functions in the high memory area and displays their success status. Simple tests are done doing multiplication and addition of 32-bit numbers and reading and modification of a static variable. These functions test the interface and the relocation code. The test code is removed in patch part 3. Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
Diffstat (limited to 'tools/firmware/Makefile')
-rw-r--r--tools/firmware/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index eb734d987c..8091da46d3 100644
--- a/tools/firmware/Makefile
+++ b/tools/firmware/Makefile
@@ -7,7 +7,7 @@ TARGET := hvmloader/hvmloader
INST_DIR := $(DESTDIR)/usr/lib/xen/boot
SUBDIRS :=
-SUBDIRS += rombios
+SUBDIRS += rombios rombios/32bit
SUBDIRS += vgabios
SUBDIRS += vmxassist
SUBDIRS += hvmloader