BUILD_MIN_BIOSTABLE reserves space in the f-segment. Some data structures -- for example disk drives known to seabios -- must be stored there, so the space available here limits the number of devices seabios is able to manage.
This patch adds an config option for BUILD_MIN_BIOSTABLE so the size of the reservation can be configured at build time. Default is 8k for bios images being 256k or larger in size (32bit code is moved off then so we have more room in the f-segment), 2k (current value) otherwise.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- Makefile | 2 +- scripts/layoutrom.py | 3 ++- src/Kconfig | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile index 3d8943ef5f25..ddcd1dff399d 100644 --- a/Makefile +++ b/Makefile @@ -172,7 +172,7 @@ $(OUT)romlayout16.lds: $(OUT)ccode32flat.o $(OUT)code32seg.o $(OUT)ccode16.o $(O $(Q)$(OBJDUMP) -thr $(OUT)code32flat.o > $(OUT)code32flat.o.objdump $(Q)$(OBJDUMP) -thr $(OUT)code32seg.o > $(OUT)code32seg.o.objdump $(Q)$(OBJDUMP) -thr $(OUT)code16.o > $(OUT)code16.o.objdump - $(Q)$(PYTHON) ./scripts/layoutrom.py $(OUT)code16.o.objdump $(OUT)code32seg.o.objdump $(OUT)code32flat.o.objdump $(OUT)$(KCONFIG_AUTOHEADER) $(OUT)romlayout16.lds $(OUT)romlayout32seg.lds $(OUT)romlayout32flat.lds + $(Q)$(PYTHON) ./scripts/layoutrom.py $(OUT)code16.o.objdump $(OUT)code32seg.o.objdump $(OUT)code32flat.o.objdump $(OUT)$(KCONFIG_AUTOHEADER) $(OUT)romlayout16.lds $(OUT)romlayout32seg.lds $(OUT)romlayout32flat.lds $(CONFIG_MIN_BIOSTABLE)
# These are actually built by scripts/layoutrom.py above, but by pulling them # into an extra rule we prevent make -j from spawning layoutrom.py 4 times. diff --git a/scripts/layoutrom.py b/scripts/layoutrom.py index 6616721d1b58..94deca9fcc85 100755 --- a/scripts/layoutrom.py +++ b/scripts/layoutrom.py @@ -636,7 +636,8 @@ def scanconfig(file):
def main(): # Get output name - in16, in32seg, in32flat, cfgfile, out16, out32seg, out32flat = sys.argv[1:] + in16, in32seg, in32flat, cfgfile, out16, out32seg, out32flat, biostable = sys.argv[1:] + BUILD_MIN_BIOSTABLE = biostable * 1024
# Read in the objdump information infile16 = open(in16, 'r') diff --git a/src/Kconfig b/src/Kconfig index 3a8ffa15fded..95519fc50fa3 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -140,6 +140,13 @@ endchoice it into 128 KB (which was big enouth for a long time) you'll probably have to disable some featues such as xhci support.
+ config MIN_BIOSTABLE + int "biostable size (in KB)" + default 8 if ROM_SIZE >= 256 + default 2 + help + Memory space for BIOS tables in f-segment. + endmenu
menu "Hardware support"