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 <kra...@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"
-- 
2.31.1

_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to