buildrom.py: Handle image size in PCI header
[seabios.git] / tools / buildrom.py
index 19b715adfe491aa0fd54fbae4d35b1d1a0abf346..7ed8107b2dc0838240ae52ab6d241d8449468bfa 100755 (executable)
@@ -28,6 +28,11 @@ def main():
     data += "\0" * (alignpos(count, 512) - count)
     count = len(data)
 
+    # Check if a pci header is present
+    pcidata = ord(data[24:25]) + (ord(data[25:26]) << 8)
+    if pcidata != 0:
+        data = data[:pcidata + 16] + chr(count/512) + chr(0) + data[pcidata + 18:]
+
     # Fill in size field; clear checksum field
     data = data[:2] + chr(count/512) + data[3:6] + "\0" + data[7:]