diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-10-03 16:17:47 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2007-10-03 16:17:47 -0700 |
commit | 985c965eca140470d87912cebd923cd27a6d892c (patch) | |
tree | 8440b6a12d295b1c7225ed1a57b608ee18f29e8b | |
parent | 3f237720e9819485e098ef88092174657c2c60ee (diff) | |
download | syslinux-985c965eca140470d87912cebd923cd27a6d892c.tar.gz |
Update the memory layout specification
Update the memory layout specification. Remove NASM 0.98.38 bug
workarounds, rebalance the bss sections, and introduce the new section
.adv which contain the auxilliary data vector.
-rw-r--r-- | cache.inc | 2 | ||||
-rw-r--r-- | com32.inc | 2 | ||||
-rw-r--r-- | comboot.inc | 2 | ||||
-rw-r--r-- | dnsresolv.inc | 2 | ||||
-rw-r--r-- | font.inc | 7 | ||||
-rw-r--r-- | getc.inc | 2 | ||||
-rw-r--r-- | graphics.inc | 2 | ||||
-rw-r--r-- | layout.inc | 28 | ||||
-rw-r--r-- | parsecmd.inc | 2 | ||||
-rw-r--r-- | parseconfig.inc | 2 | ||||
-rw-r--r-- | pxelinux.asm | 2 |
11 files changed, 25 insertions, 28 deletions
@@ -103,7 +103,7 @@ getcachesector: pop cx ret - section .latebss + section .bss ; Each CachePtr contains: ; - Block pointer @@ -350,7 +350,7 @@ com32_sys_resume: bits 16 - section .bss + section .bss1 alignb 4 RealModeSSSP resd 1 ; Real-mode SS:SP PMESP resd 1 ; Protected-mode ESP diff --git a/comboot.inc b/comboot.inc index ffc9425f..61da382f 100644 --- a/comboot.inc +++ b/comboot.inc @@ -967,5 +967,5 @@ feature_flags_len equ ($-feature_flags) err_notdos db ': attempted DOS system call', CR, LF, 0 err_comlarge db 'COMBOOT image too large.', CR, LF, 0 - section .latebss + section .bss1 ConfigName resb FILENAME_MAX diff --git a/dnsresolv.inc b/dnsresolv.inc index 166e11f3..4fe2040a 100644 --- a/dnsresolv.inc +++ b/dnsresolv.inc @@ -150,7 +150,7 @@ dns_skiplabel: .rdata: equ $ endstruc - section .latebss + section .bss alignb 2 DNSSendBuf resb DNS_MAX_PACKET DNSRecvBuf resb DNS_MAX_PACKET @@ -123,10 +123,7 @@ vidrows_ok: mov [VidRows],al popa ret - -; VGA font buffer at the end of memory (so loading a font works even -; in graphics mode, but don't put too much pressure on the .bss) - section .latebss + section .bss vgafontbuf resb 8192 section .data @@ -134,7 +131,7 @@ vgafontbuf resb 8192 VGAFontSize dw 16 ; Defaults to 16 byte font UserFont db 0 ; Using a user-specified font - section .bss + section .bss1 alignb 4 GXPixCols resw 1 ; Graphics mode pixel columns GXPixRows resw 1 ; Graphics mode pixel rows @@ -307,7 +307,7 @@ parseint: .isk: shl ebx,10 ; * 2^10 jmp .fini - section .bss + section .bss1 alignb 4 NumBuf resb 15 ; Buffer to load number NumBufEnd resb 1 ; Last byte in NumBuf diff --git a/graphics.inc b/graphics.inc index e80e04cd..e452a840 100644 --- a/graphics.inc +++ b/graphics.inc @@ -346,7 +346,7 @@ linear_color db 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0 ; of this byte. UsingVGA db 0 - section .latebss + section .bss1 alignb 2 GraphXSize resw 1 ; Width of splash screen file VGAPos resw 1 ; Pointer into VGA memory @@ -42,24 +42,24 @@ STACK_START equ TEXT_START-STACK_SIZE ; org TEXT_START - ; NASM BUG: refers to hacks to handle NASM 0.98.38 bugs; might need - ; conditional compilation + ; Use .earlybss for things that MUST be in low memory. + section .earlybss nobits start=BSS_START + section .bcopy32 align=4 valign=16 follows=.data vfollows=.earlybss + section .config align=4 valign=16 follows=.bcopy32 vfollows=.bcopy32 + section .config.end nobits valign=4 vfollows=.config - section .earlybss nobits start=BSS_START - section .bcopy32 align=4 valign=16 follows=.data vfollows=.earlybss - section .config align=4 valign=16 follows=.bcopy32 vfollows=.bcopy32 - section .config.end nobits align=4 follows=.config + ; Use .bss1 for things that doesn't have to be in low memory, + ; but are in order to offload .bss + section .bss1 nobits valign=16 vfollows=.config.end - ; NASM BUG: follows= here should be vfollows= - section .bss nobits align=256 follows=.config.end + section .text start=TEXT_START + ; NASM BUG: .data always follows .text; can't override + section .data align=16 ; follows=.text - section .text start=TEXT_START - ; NASM BUG: follows=.text not accepted here - section .data align=16 ; follows=.text + section .adv progbits align=1 follows=.config - ; NASM BUG: We would like to do follows=.bcopy32 - section .latebss nobits align=16 start=LATEBSS_START + section .bss nobits align=16 follows=.adv ; Reserve space for stack - section .stack nobits align=16 start=STACK_START + section .stack nobits align=16 start=STACK_START Stack resb STACK_SIZE diff --git a/parsecmd.inc b/parsecmd.inc index a87da4b1..c19c658c 100644 --- a/parsecmd.inc +++ b/parsecmd.inc @@ -96,7 +96,7 @@ getcommand: err_badcfg db 'Unknown keyword in syslinux.cfg.', CR, LF, 0 err_noparm db 'Missing parameter in syslinux.cfg.', CR, LF, 0 - section .latebss + section .bss alignb 4 vk_size equ (vk_end + 3) & ~3 VKernelBuf: resb vk_size ; "Current" vkernel diff --git a/parseconfig.inc b/parseconfig.inc index 2b6031fd..ef1ed112 100644 --- a/parseconfig.inc +++ b/parseconfig.inc @@ -436,7 +436,7 @@ VKernel db 0 ; Have we seen any "label" statements? IPAppend db 0 ; Default IPAPPEND option %endif - section .latebss + section .bss alignb 4 ; For the good of REP MOVSD command_line resb max_cmd_len+2 ; Command line buffer alignb 4 diff --git a/pxelinux.asm b/pxelinux.asm index 800c66d5..d54510bb 100644 --- a/pxelinux.asm +++ b/pxelinux.asm @@ -210,7 +210,7 @@ PXEStack resd 1 ; Saved stack during PXE call ; writing a received ARP packet into low memory. RBFG_brainfuck resb 0E00h - section .latebss + section .bss alignb 4 RebootTime resd 1 ; Reboot timeout, if set by option StrucPtr resd 1 ; Pointer to PXENV+ or !PXE structure |