- Provide alternate implementations of board_init_f() board_init_r() for OMAP spl. - Provide linker script - Initialize global data - Add serial console support - Update CONFIG_SYS_TEXT_BASE to allow for SPL's bss and move it to board config header from config.mk Signed-off-by: Aneesh V <aneesh@ti.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>master
parent
033ca72438
commit
bcae721162
@ -0,0 +1,82 @@ |
||||
/*
|
||||
* (C) Copyright 2010 |
||||
* Texas Instruments, <www.ti.com> |
||||
* |
||||
* Aneesh V <aneesh@ti.com> |
||||
* |
||||
* See file CREDITS for list of people who contributed to this |
||||
* project. |
||||
* |
||||
* This program is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU General Public License as |
||||
* published by the Free Software Foundation; either version 2 of |
||||
* the License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program; if not, write to the Free Software |
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
||||
* MA 02111-1307 USA |
||||
*/ |
||||
#include <common.h> |
||||
#include <asm/u-boot.h> |
||||
#include <asm/arch/sys_proto.h> |
||||
#include <timestamp_autogenerated.h> |
||||
#include <version_autogenerated.h> |
||||
|
||||
DECLARE_GLOBAL_DATA_PTR; |
||||
|
||||
/* Define global data structure pointer to it*/ |
||||
static gd_t gdata __attribute__ ((section(".data"))); |
||||
static bd_t bdata __attribute__ ((section(".data"))); |
||||
|
||||
inline void hang(void) |
||||
{ |
||||
puts("### ERROR ### Please RESET the board ###\n"); |
||||
for (;;) |
||||
; |
||||
} |
||||
|
||||
void board_init_f(ulong dummy) |
||||
{ |
||||
/*
|
||||
* We call relocate_code() with relocation target same as the |
||||
* CONFIG_SYS_SPL_TEXT_BASE. This will result in relocation getting |
||||
* skipped. Instead, only .bss initialization will happen. That's |
||||
* all we need |
||||
*/ |
||||
debug(">>board_init_f()\n"); |
||||
relocate_code(CONFIG_SPL_STACK, &gdata, CONFIG_SPL_TEXT_BASE); |
||||
} |
||||
|
||||
void board_init_r(gd_t *id, ulong dummy) |
||||
{ |
||||
for (;;) |
||||
; |
||||
} |
||||
|
||||
void preloader_console_init(void) |
||||
{ |
||||
const char *u_boot_rev = U_BOOT_VERSION; |
||||
char rev_string_buffer[50]; |
||||
|
||||
gd = &gdata; |
||||
gd->bd = &bdata; |
||||
gd->flags |= GD_FLG_RELOC; |
||||
gd->baudrate = CONFIG_BAUDRATE; |
||||
|
||||
setup_clocks_for_console(); |
||||
serial_init(); /* serial communications setup */ |
||||
|
||||
/* Avoid a second "U-Boot" coming from this string */ |
||||
u_boot_rev = &u_boot_rev[7]; |
||||
|
||||
printf("\nU-Boot SPL %s (%s - %s)\n", u_boot_rev, U_BOOT_DATE, |
||||
U_BOOT_TIME); |
||||
omap_rev_string(rev_string_buffer); |
||||
printf("Texas Instruments %s\n", rev_string_buffer); |
||||
} |
@ -0,0 +1,62 @@ |
||||
/* |
||||
* (C) Copyright 2002 |
||||
* Gary Jennejohn, DENX Software Engineering, <garyj@denx.de> |
||||
* |
||||
* (C) Copyright 2010 |
||||
* Texas Instruments, <www.ti.com> |
||||
* Aneesh V <aneesh@ti.com> |
||||
* |
||||
* See file CREDITS for list of people who contributed to this |
||||
* project. |
||||
* |
||||
* This program is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU General Public License as |
||||
* published by the Free Software Foundation; either version 2 of |
||||
* the License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program; if not, write to the Free Software |
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
||||
* MA 02111-1307 USA |
||||
*/ |
||||
|
||||
MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ |
||||
LENGTH = CONFIG_SPL_MAX_SIZE } |
||||
MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ |
||||
LENGTH = CONFIG_SPL_BSS_MAX_SIZE } |
||||
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") |
||||
OUTPUT_ARCH(arm) |
||||
ENTRY(_start) |
||||
SECTIONS |
||||
{ |
||||
.text : |
||||
{ |
||||
__start = .; |
||||
arch/arm/cpu/armv7/start.o (.text) |
||||
*(.text*) |
||||
} >.sram |
||||
|
||||
. = ALIGN(4); |
||||
.rodata : { *(SORT_BY_ALIGNMENT(.rodata*)) } >.sram |
||||
|
||||
. = ALIGN(4); |
||||
.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram |
||||
. = ALIGN(4); |
||||
__image_copy_end = .; |
||||
_end = .; |
||||
|
||||
.bss : |
||||
{ |
||||
. = ALIGN(4); |
||||
__bss_start = .; |
||||
*(.bss*) |
||||
. = ALIGN(4); |
||||
__bss_end__ = .; |
||||
} >.sdram |
||||
} |
@ -1,31 +0,0 @@ |
||||
#
|
||||
# (C) Copyright 2006-2009
|
||||
# Texas Instruments Incorporated, <www.ti.com>
|
||||
#
|
||||
# OMAP 4430 SDP
|
||||
# see http://www.ti.com/ for more information on Texas Instruments
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
# SDRAM Address Space:
|
||||
# 8000'0000 - 9fff'ffff (512 MB)
|
||||
# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
|
||||
# (mem base + reserved)
|
||||
|
||||
CONFIG_SYS_TEXT_BASE = 0x80e80000
|
@ -1,31 +0,0 @@ |
||||
#
|
||||
# (C) Copyright 2006-2009
|
||||
# Texas Instruments Incorporated, <www.ti.com>
|
||||
#
|
||||
# OMAP 4430 SDP
|
||||
# see http://www.ti.com/ for more information on Texas Instruments
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
# SDRAM Address Space:
|
||||
# 8000'0000 - 9fff'ffff (512 MB)
|
||||
# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
|
||||
# (mem base + reserved)
|
||||
|
||||
CONFIG_SYS_TEXT_BASE = 0x80e80000
|
Loading…
Reference in new issue