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 sets BUILD_MIN_BIOSTABLE to 8k for bios images being 256k or larger in size. 32bit code is moved off in that case, so we have more room in the f-segment then.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- scripts/layoutrom.py | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/scripts/layoutrom.py b/scripts/layoutrom.py index 6616721d1b58..abebf0211fa9 100755 --- a/scripts/layoutrom.py +++ b/scripts/layoutrom.py @@ -651,6 +651,10 @@ def main(): # Read kconfig config file config = scanconfig(cfgfile)
+ # larger roms have more room in the f-segment due to moving out 32bit code + if config.get('CONFIG_ROM_SIZE') >= 256: + BUILD_MIN_BIOSTABLE = 8192 + # Figure out which sections to keep. allsections = info16[0] + info32seg[0] + info32flat[0] symbols = {'16': info16[1], '32seg': info32seg[1], '32flat': info32flat[1]}
Dear Gerd,
Am 31.05.21 um 07:55 schrieb Gerd Hoffmann:
Small nit for the commit message summary: Increa*s*e.
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.
Do you have an example command how to reproduce this with QEMU?
This patch sets BUILD_MIN_BIOSTABLE to 8k for bios images being 256k or larger in size. 32bit code is moved off in that case, so we have more room in the f-segment then.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com
scripts/layoutrom.py | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/scripts/layoutrom.py b/scripts/layoutrom.py index 6616721d1b58..abebf0211fa9 100755 --- a/scripts/layoutrom.py +++ b/scripts/layoutrom.py @@ -651,6 +651,10 @@ def main(): # Read kconfig config file config = scanconfig(cfgfile)
- # larger roms have more room in the f-segment due to moving out 32bit code
- if config.get('CONFIG_ROM_SIZE') >= 256:
BUILD_MIN_BIOSTABLE = 8192
# Figure out which sections to keep. allsections = info16[0] + info32seg[0] + info32flat[0] symbols = {'16': info16[1], '32seg': info32seg[1], '32flat': info32flat[1]}
Rest looks good.
Kind regards,
Paul
On Mon, May 31, 2021 at 08:02:52AM +0200, Paul Menzel wrote:
Dear Gerd,
Am 31.05.21 um 07:55 schrieb Gerd Hoffmann:
Small nit for the commit message summary: Increa*s*e.
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.
Do you have an example command how to reproduce this with QEMU?
Just create a guest with lots of disks. Easiest is using virtio-scsi-pci because you can plug tons of disks ("-device scsi-hd") into a single host adapter then.
take care, Gerd
On Mon, May 31, 2021 at 07:55:28AM +0200, Gerd Hoffmann wrote:
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 sets BUILD_MIN_BIOSTABLE to 8k for bios images being 256k or larger in size. 32bit code is moved off in that case, so we have more room in the f-segment then.
Thanks. Looks good to me.
-Kevin
On Wed, Jun 02, 2021 at 11:31:46AM -0400, Kevin O'Connor wrote:
On Mon, May 31, 2021 at 07:55:28AM +0200, Gerd Hoffmann wrote:
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 sets BUILD_MIN_BIOSTABLE to 8k for bios images being 256k or larger in size. 32bit code is moved off in that case, so we have more room in the f-segment then.
Thanks. Looks good to me.
Pushed.
take care, Gerd