Hi,
I work on a AT91RM9200 based board.
On u-boot-1.1.6,
I must define CONFIG_SKIP_LOW_LEVEL_INIT if I want it working.
The AT91RM92000 based board has 64M of SDRAM.
To configure it I have made changes on
u-boot-1.1.6/include/board/at91rm9200-dk.h :
Code:
#define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM 0x20000000
#define PHYS_SDRAM_SIZE 0x4000000 /* 64 megs */
And this :
Code:
#define SDRC_CR_VAL 0x2188c159 /* set up the SDRAM */
The last change is applied only if CONFIG_SKIP_LOW_LEVEL_INIT is undefined.
When CONFIG_SKIP_LOW_LEVEL_INIT is undefined, u-boot try to start but crashes ;
Code:
Load U-BOOT from dataflash[c0008000] to SDRAM[21f00000]
Set PLLA to 180Mhz and Master clock to 60Mhz and start U-BOOT
(...nothing else, program is crashed...)
I have analyzed the code and I have found that the program crashes in
u-boot-1.1.6/cpu/arm920t/at91rm9200/lowlevel_init.s when it attempts to write the configuration :
Code:
ldr r0, =SMRDATA1
ldr r1, _MTEXT_BASE
sub r0, r0, r1
add r2, r0, #176
2:
/* the address */
ldr r1, [r0], #4
/* the value */
ldr r3, [r0], #4
str r3, [r1] // crash here !
cmp r2, r0
bne 2b
You have to know that even with the default 32MB configuration, u-boot crashes if CONFIG_SKIP_LOW_LEVEL_INIT is not defined.
Any ideas ?
Hoping help, thanks a lot !