mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-05 06:11:44 +00:00
Fix U-Boot compilation for MIPS boards using ELDK 4.0
This commit is contained in:
parent
4a86d779ff
commit
c75eba3b41
5 changed files with 29 additions and 26 deletions
|
@ -2,6 +2,8 @@
|
||||||
Changes for U-Boot 1.1.4:
|
Changes for U-Boot 1.1.4:
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
|
* Fix U-Boot compilation for MIPS boards using ELDK 4.0
|
||||||
|
|
||||||
* Add support for TQM8541/8555 boards, TQM85xx support reworked:
|
* Add support for TQM8541/8555 boards, TQM85xx support reworked:
|
||||||
- Support for TQM8541/8555 boards added.
|
- Support for TQM8541/8555 boards added.
|
||||||
- Complete rework of TQM8540/8560 support.
|
- Complete rework of TQM8540/8560 support.
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#ifdef __MIPS__
|
#ifdef __MIPS__
|
||||||
/* Macros depend on this variable */
|
/* Macros depend on this variable */
|
||||||
static unsigned long mips_io_port_base = 0;
|
unsigned long mips_io_port_base = 0;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ MIPSFLAGS=$(shell \
|
||||||
if [ "$v" -lt "14" ]; then \
|
if [ "$v" -lt "14" ]; then \
|
||||||
echo "-mcpu=4kc"; \
|
echo "-mcpu=4kc"; \
|
||||||
else \
|
else \
|
||||||
echo "-march=4kc -mtune=4kc -Wa,-mips_allow_branch_to_undefined"; \
|
echo "-march=4kc -mtune=4kc"; \
|
||||||
fi)
|
fi)
|
||||||
|
|
||||||
ifneq (,$(findstring 4KCle,$(CROSS_COMPILE)))
|
ifneq (,$(findstring 4KCle,$(CROSS_COMPILE)))
|
||||||
|
|
|
@ -234,21 +234,34 @@ reset:
|
||||||
li t0, CONF_CM_UNCACHED
|
li t0, CONF_CM_UNCACHED
|
||||||
mtc0 t0, CP0_CONFIG
|
mtc0 t0, CP0_CONFIG
|
||||||
|
|
||||||
|
/* Initialize GOT pointer.
|
||||||
|
*/
|
||||||
|
bal 1f
|
||||||
|
nop
|
||||||
|
.word _GLOBAL_OFFSET_TABLE_
|
||||||
|
1:
|
||||||
|
move gp, ra
|
||||||
|
lw t1, 0(ra)
|
||||||
|
move gp, t1
|
||||||
|
|
||||||
#ifdef CONFIG_INCA_IP
|
#ifdef CONFIG_INCA_IP
|
||||||
/* Disable INCA-IP Watchdog.
|
/* Disable INCA-IP Watchdog.
|
||||||
*/
|
*/
|
||||||
bal disable_incaip_wdt
|
la t9, disable_incaip_wdt
|
||||||
|
jalr t9
|
||||||
nop
|
nop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Initialize any external memory.
|
/* Initialize any external memory.
|
||||||
*/
|
*/
|
||||||
bal lowlevel_init
|
la t9, lowlevel_init
|
||||||
|
jalr t9
|
||||||
nop
|
nop
|
||||||
|
|
||||||
/* Initialize caches...
|
/* Initialize caches...
|
||||||
*/
|
*/
|
||||||
bal mips_cache_reset
|
la t9, mips_cache_reset
|
||||||
|
jalr t9
|
||||||
nop
|
nop
|
||||||
|
|
||||||
/* ... and enable them.
|
/* ... and enable them.
|
||||||
|
@ -260,21 +273,13 @@ reset:
|
||||||
/* Set up temporary stack.
|
/* Set up temporary stack.
|
||||||
*/
|
*/
|
||||||
li a0, CFG_INIT_SP_OFFSET
|
li a0, CFG_INIT_SP_OFFSET
|
||||||
bal mips_cache_lock
|
la t9, mips_cache_lock
|
||||||
|
jalr t9
|
||||||
nop
|
nop
|
||||||
|
|
||||||
li t0, CFG_SDRAM_BASE + CFG_INIT_SP_OFFSET
|
li t0, CFG_SDRAM_BASE + CFG_INIT_SP_OFFSET
|
||||||
la sp, 0(t0)
|
la sp, 0(t0)
|
||||||
|
|
||||||
/* Initialize GOT pointer.
|
|
||||||
*/
|
|
||||||
bal 1f
|
|
||||||
nop
|
|
||||||
.word _GLOBAL_OFFSET_TABLE_ - 1f + 4
|
|
||||||
1:
|
|
||||||
move gp, ra
|
|
||||||
lw t1, 0(ra)
|
|
||||||
add gp, t1
|
|
||||||
la t9, board_init_f
|
la t9, board_init_f
|
||||||
j t9
|
j t9
|
||||||
nop
|
nop
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
#include <net.h>
|
#include <net.h>
|
||||||
#include <environment.h>
|
#include <environment.h>
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
#if ( ((CFG_ENV_ADDR+CFG_ENV_SIZE) < CFG_MONITOR_BASE) || \
|
#if ( ((CFG_ENV_ADDR+CFG_ENV_SIZE) < CFG_MONITOR_BASE) || \
|
||||||
(CFG_ENV_ADDR >= (CFG_MONITOR_BASE + CFG_MONITOR_LEN)) ) || \
|
(CFG_ENV_ADDR >= (CFG_MONITOR_BASE + CFG_MONITOR_LEN)) ) || \
|
||||||
defined(CFG_ENV_IS_IN_NVRAM)
|
defined(CFG_ENV_IS_IN_NVRAM)
|
||||||
|
@ -66,8 +68,6 @@ static ulong mem_malloc_brk;
|
||||||
*/
|
*/
|
||||||
static void mem_malloc_init (void)
|
static void mem_malloc_init (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
ulong dest_addr = CFG_MONITOR_BASE + gd->reloc_off;
|
ulong dest_addr = CFG_MONITOR_BASE + gd->reloc_off;
|
||||||
|
|
||||||
mem_malloc_end = dest_addr;
|
mem_malloc_end = dest_addr;
|
||||||
|
@ -94,8 +94,6 @@ void *sbrk (ptrdiff_t increment)
|
||||||
|
|
||||||
static int init_func_ram (void)
|
static int init_func_ram (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
#ifdef CONFIG_BOARD_TYPES
|
#ifdef CONFIG_BOARD_TYPES
|
||||||
int board_type = gd->board_type;
|
int board_type = gd->board_type;
|
||||||
#else
|
#else
|
||||||
|
@ -127,8 +125,6 @@ static void display_flash_config(ulong size)
|
||||||
|
|
||||||
static int init_baudrate (void)
|
static int init_baudrate (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
uchar tmp[64]; /* long enough for environment variables */
|
uchar tmp[64]; /* long enough for environment variables */
|
||||||
int i = getenv_r ("baudrate", tmp, sizeof (tmp));
|
int i = getenv_r ("baudrate", tmp, sizeof (tmp));
|
||||||
|
|
||||||
|
@ -180,12 +176,11 @@ init_fnc_t *init_sequence[] = {
|
||||||
|
|
||||||
void board_init_f(ulong bootflag)
|
void board_init_f(ulong bootflag)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
gd_t gd_data, *id;
|
gd_t gd_data, *id;
|
||||||
bd_t *bd;
|
bd_t *bd;
|
||||||
init_fnc_t **init_fnc_ptr;
|
init_fnc_t **init_fnc_ptr;
|
||||||
ulong addr, addr_sp, len = (ulong)&uboot_end - CFG_MONITOR_BASE;
|
ulong addr, addr_sp, len = (ulong)&uboot_end - CFG_MONITOR_BASE;
|
||||||
|
ulong *s;
|
||||||
#ifdef CONFIG_PURPLE
|
#ifdef CONFIG_PURPLE
|
||||||
void copy_code (ulong);
|
void copy_code (ulong);
|
||||||
#endif
|
#endif
|
||||||
|
@ -262,8 +257,10 @@ void board_init_f(ulong bootflag)
|
||||||
*/
|
*/
|
||||||
addr_sp -= 16;
|
addr_sp -= 16;
|
||||||
addr_sp &= ~0xF;
|
addr_sp &= ~0xF;
|
||||||
*((ulong *) addr_sp)-- = 0;
|
s = (ulong *)addr_sp;
|
||||||
*((ulong *) addr_sp)-- = 0;
|
*s-- = 0;
|
||||||
|
*s-- = 0;
|
||||||
|
addr_sp = (ulong)s;
|
||||||
debug ("Stack Pointer at: %08lx\n", addr_sp);
|
debug ("Stack Pointer at: %08lx\n", addr_sp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -298,7 +295,6 @@ void board_init_f(ulong bootflag)
|
||||||
|
|
||||||
void board_init_r (gd_t *id, ulong dest_addr)
|
void board_init_r (gd_t *id, ulong dest_addr)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
cmd_tbl_t *cmdtp;
|
cmd_tbl_t *cmdtp;
|
||||||
ulong size;
|
ulong size;
|
||||||
extern void malloc_bin_reloc (void);
|
extern void malloc_bin_reloc (void);
|
||||||
|
|
Loading…
Add table
Reference in a new issue