diff options
-rw-r--r-- | Makefile | 3 | ||||
-rwxr-xr-x | scripts/checkrom.py | 21 | ||||
-rw-r--r-- | src/Kconfig | 11 |
3 files changed, 28 insertions, 7 deletions
@@ -178,7 +178,8 @@ $(OUT)bios.bin.elf $(OUT)bios.bin: $(OUT)rom.o scripts/checkrom.py @echo " Prepping $@" $(Q)$(OBJDUMP) -thr $< > $<.objdump $(Q)$(OBJCOPY) -O binary $< $(OUT)bios.bin.raw - $(Q)$(PYTHON) ./scripts/checkrom.py $<.objdump $(OUT)bios.bin.raw $(OUT)bios.bin + $(Q)$(PYTHON) ./scripts/checkrom.py $<.objdump $(CONFIG_ROM_SIZE) \ + $(OUT)bios.bin.raw $(OUT)bios.bin $(Q)$(STRIP) -R .comment $< -o $(OUT)bios.bin.elf diff --git a/scripts/checkrom.py b/scripts/checkrom.py index 6f07ac88..aa3dd0d1 100755 --- a/scripts/checkrom.py +++ b/scripts/checkrom.py @@ -21,7 +21,7 @@ def checksum(data, start, size, csum): def main(): # Get args - objinfo, rawfile, outfile = sys.argv[1:] + objinfo, finalsize, rawfile, outfile = sys.argv[1:] # Read in symbols objinfofile = open(objinfo, 'rb') @@ -32,11 +32,20 @@ def main(): rawdata = f.read() f.close() datasize = len(rawdata) - finalsize = 64*1024 - if datasize > 64*1024: - finalsize = 128*1024 - if datasize > 128*1024: - finalsize = 256*1024 + finalsize = int(finalsize) * 1024 + if finalsize == 0: + finalsize = 64*1024 + if datasize > 64*1024: + finalsize = 128*1024 + if datasize > 128*1024: + finalsize = 256*1024 + if datasize > finalsize: + print "Error! ROM doesn't fit (%d > %d)" % (datasize, finalsize) + print " You have to either increate the size (CONFIG_ROM_SIZE)" + print " or turn off some features (such as hardware support not" + print " needed) to make it fit. Trying a more recent gcc version" + print " might work too." + sys.exit(1) # Sanity checks start = symbols['code32flat_start'].offset diff --git a/src/Kconfig b/src/Kconfig index c40cc610..20d2a3ed 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -122,6 +122,17 @@ endchoice selected, the memory is instead allocated from the "9-segment" (0x90000-0xa0000). + config ROM_SIZE + int "ROM size (in KB)" + default 0 + help + Set the ROM size. Say '0' here to make seabios figure the + needed size automatically. + + Currently SeaBIOS will easily fit into 256 KB. To make it fit + it into 128 KB (which was big enouth for a long time) you'll + probably have to disable some featues such as xhci support. + endmenu menu "Hardware support" |