difference between the lower half and upper half of the BIOS region 
though and I expect this is part of what the problem is.  FYI, the 
following patch works.  Surprisingly, we only need to restore the 
0xe8000..0xe8fff region.  Still trying to understand what's happening.

diff --git a/src/shadow.c b/src/shadow.c
index f0f97c5..860f461 100644
--- a/src/shadow.c
+++ b/src/shadow.c
@@ -29,7 +29,8 @@ __make_bios_writable(u16 bdf)
     int clear = 0;
     int i;
     for (i=0; i<6; i++) {
-        if (CONFIG_OPTIONROMS_DEPLOYED) {
+        /* need to copy 0xe8000 bios region for qemu */
+        if (i==5) {
             int reg = pci_config_readb(bdf, 0x5a + i);
             if ((reg & 0x11) != 0x11) {
                 // Need to copy optionroms to work around qemu 
