Gzboot support for the ADI BRH eval board. This flash address allows

the kernel to be decompressed and started at board reset if the BRH's
rotary switch is set to position 5.
This commit is contained in:
thorpej 2003-03-25 23:38:00 +00:00
parent d223236902
commit eb7195a019
2 changed files with 101 additions and 0 deletions

View File

@ -0,0 +1,19 @@
# $NetBSD: Makefile,v 1.1 2003/03/25 23:38:00 thorpej Exp $
S= ${.CURDIR}/../../../../..
PLATFORM= ADI_BRH
RELOC= 0x00140000
MAXIMAGESIZE= 2097152 # 2M
LOADADDR= 0xc0200000
CPPFLAGS+= -DBECC_SUPPORT_V7
CPPFLAGS+= -DCONSPEED=57600
CPPFLAGS+= -DCONADDR=0x03000000UL
CPPFLAGS+= -DNS16550_FREQ=33300000
LDSCRIPT= ${.CURDIR}/ldscript
SRCS+= adi_brh.c ns16550.c becc_mem.c
.include "${S}/arch/evbarm/stand/gzboot/Makefile.gzboot"

View File

@ -0,0 +1,82 @@
/* $NetBSD: ldscript,v 1.1 2003/03/25 23:38:00 thorpej Exp $ */
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
"elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(FLASH)
MEMORY
{
/* We will locate the .text section in flash, and will run directly
from there just long enough to relocate our .text and .data into
a small chunk of SDRAM starting at (SDRAM + 1M). */
flash : o = 0x00140000, l = 2816K /* 4M total flash */
sdram : o = 0xc0100000, l = 1M /* kernel loads at 0xc0200000 */
}
SECTIONS
{
FLASH = 0x00140000;
/* Read-only sections, merged into text segment: */
__text_store = FLASH;
.text :
AT (FLASH)
{
*(.text)
*(.text.*)
*(.stub)
*(.glue_7t) *(.glue_7)
*(.rodata) *(.rodata.*)
} > sdram =0
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
__data_store = FLASH + SIZEOF(.text);
.data :
AT (LOADADDR(.text) + SIZEOF(.text))
{
__data_start = . ;
*(.data)
*(.data.*)
} > sdram
.sdata :
AT (LOADADDR(.data) + SIZEOF(.data))
{
*(.sdata)
*(.sdata.*)
} > sdram
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
__bss_start__ = .;
.sbss :
{
PROVIDE (__sbss_start = .);
PROVIDE (___sbss_start = .);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.scommon)
PROVIDE (__sbss_end = .);
PROVIDE (___sbss_end = .);
} > sdram
.bss :
{
*(.dynbss)
*(.bss)
*(.bss.*)
*(COMMON)
/* Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections. */
. = ALIGN(32 / 8);
} > sdram
. = ALIGN(32 / 8);
_end = .;
_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
PROVIDE (end = .);
.image (FLASH + SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.sdata)) :
AT (LOADADDR(.sdata) + SIZEOF(.sdata))
{
*(.image)
}
}