From 72ee9b0ebefa98e05867712eb303269836ec69b4 Mon Sep 17 00:00:00 2001 From: Yinghai Lu Date: Wed, 14 Dec 2005 02:39:33 +0000 Subject: issue 51 and 52: set mtrr for ap before stop it, and _RAMBASE above 1M support and pgtbl after 1M support git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2142 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/config/linuxbios_ram.ld | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'src/config') diff --git a/src/config/linuxbios_ram.ld b/src/config/linuxbios_ram.ld index 6fa311fc0e..a159ce035e 100644 --- a/src/config/linuxbios_ram.ld +++ b/src/config/linuxbios_ram.ld @@ -15,6 +15,7 @@ /* * Written by Johan Rydberg, based on work by Daniel Kahlin. * Rewritten by Eric Biederman + * 2005.12 yhlu add linuxbios_ram cross the vga font buffer handling */ /* * We use ELF as output format. So that we can @@ -91,21 +92,25 @@ SECTIONS _stack = .; .stack . : { /* Reserve a stack for each possible cpu */ - . = (CONFIG_MAX_CPUS * STACK_SIZE) ; + /* the stack for ap will be put after pgtbl in 1M to CONFIG_LB_MEM_TOPK range when VGA and ROM_RUN and CONFIG_LB_MEM_TOPK>1024*/ + . = ((CONFIG_CONSOLE_VGA || CONFIG_PCI_ROM_RUN)&&(_RAMBASE<0x100000)&&((CONFIG_LB_MEM_TOPK<<10)>0x100000) ) ? STACK_SIZE : (CONFIG_MAX_CPUS*STACK_SIZE); } _estack = .; - _heap = .; - .heap . : { - /* Reserve 256K for the heap */ - . = HEAP_SIZE ; - . = ALIGN(4); - } - _eheap = .; + _heap = .; + .heap . : { + /* Reserve 256K for the heap */ + . = HEAP_SIZE ; + . = ALIGN(4); + } + _eheap = .; /* The ram segment * This is all address of the memory resident copy of linuxBIOS. */ - _ram_seg = _text; + _ram_seg = _text; _eram_seg = _eheap; + + _bogus = ASSERT( !((CONFIG_CONSOLE_VGA || CONFIG_PCI_ROM_RUN) && ((_ram_seg<0xa0000) && (_eram_seg>0xa0000))) , "please increase CONFIG_LB_MEM_TOPK and if still fail, try to set _RAMBASE more than 1M"); + /DISCARD/ : { *(.comment) *(.note) -- cgit v1.2.3