buildrom.py: Handle image size in PCI header
authorJulian Pidancet <julian.pidancet@gmail.com>
Mon, 19 Dec 2011 05:07:57 +0000 (05:07 +0000)
committerKevin O'Connor <kevin@koconnor.net>
Wed, 21 Dec 2011 04:13:06 +0000 (23:13 -0500)
This patch makes buildrom.py check if a PCI is present in the ROM,
and fills in the image size field.

Signed-off-by: Julian Pidancet <julian.pidancet@gmail.com>
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:]