mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 12:41:32 +00:00
omap5912-osk: Fix device initialisation
In the current u-boot, the device pin multiplexing and clock initialisation needs to be early during the boot process and before board_init() is called. U-boot is currently crashing on this board because this is not being done early enough. Therefore, add a s_init() function for the omap5912-osk board to do this. Also fix the stack pointer so that it is pointing to the end of the internal RAM and not the beginning as this was also causing the device to crash. Signed-off-by: Jon Hunter <jon-hunter@ti.com>
This commit is contained in:
parent
5faba1eac6
commit
2a309f33de
3 changed files with 33 additions and 6 deletions
|
@ -306,6 +306,23 @@ common_tc:
|
|||
ldr r1, VAL_MPU_CNTL_TIMER
|
||||
str r1, [r0]
|
||||
|
||||
/*
|
||||
* Setup a temporary stack
|
||||
*/
|
||||
ldr sp, SRAM_STACK
|
||||
bic sp, sp, #7 /* 8-byte alignment for ABI compliance */
|
||||
|
||||
/*
|
||||
* Save the old lr(passed in ip) and the current lr to stack
|
||||
*/
|
||||
push {ip, lr}
|
||||
|
||||
/*
|
||||
* go setup pll, mux, memory
|
||||
*/
|
||||
bl s_init
|
||||
pop {ip, pc}
|
||||
|
||||
/* back to arch calling code */
|
||||
mov pc, lr
|
||||
|
||||
|
@ -470,6 +487,9 @@ VAL_ARM_IDLECT2:
|
|||
VAL_ARM_IDLECT3:
|
||||
.word 0x00000015
|
||||
|
||||
SRAM_STACK:
|
||||
.word CONFIG_SYS_INIT_SP_ADDR
|
||||
|
||||
/* command values */
|
||||
.equ CMD_SDRAM_NOP, 0x00000000
|
||||
.equ CMD_SDRAM_PRECHARGE, 0x00000001
|
||||
|
|
|
@ -66,6 +66,14 @@ int board_init (void)
|
|||
/* adress of boot parameters */
|
||||
gd->bd->bi_boot_params = 0x10000100;
|
||||
|
||||
flash__init();
|
||||
ether__init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void s_init(void)
|
||||
{
|
||||
/* Configure MUX settings */
|
||||
set_muxconf_regs ();
|
||||
peripheral_power_enable ();
|
||||
|
@ -75,10 +83,6 @@ int board_init (void)
|
|||
* ... rkw ...
|
||||
*/
|
||||
icache_enable ();
|
||||
|
||||
flash__init ();
|
||||
ether__init ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/******************************
|
||||
|
|
|
@ -183,7 +183,10 @@
|
|||
#define CONFIG_ENV_SIZE 0x20000 /* Total Size of Environment Sector */
|
||||
#define CONFIG_ENV_OFFSET 0x20000 /* environment starts here */
|
||||
|
||||
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
|
||||
#define CONFIG_SYS_INIT_SP_ADDR PHYS_SRAM
|
||||
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
|
||||
#define CONFIG_SYS_INIT_RAM_ADDR PHYS_SRAM
|
||||
#define CONFIG_SYS_INIT_RAM_SIZE (250 * 1024)
|
||||
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \
|
||||
CONFIG_SYS_INIT_RAM_SIZE)
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
|
|
Loading…
Add table
Reference in a new issue