[U-Boot] [RFC][PATCH 00/19] arm: add full relocation / cache support
Matthias Weißer
weisserm at arcor.de
Wed Aug 4 14:17:41 CEST 2010
Hello Heiko
Am 29.07.2010 12:44, schrieb Heiko Schocher:
> This patch series add full relocation and cache support for arm
> based boards. I did this for arm1136, arm_cortexa8 and arm926ejs
> based boards. As this change is not compatible to old code,
> before this can go to mainline *all* plattforms and boards
> have to be converted! As I don;t have access to all plattforms/
> boards I need help here! Also I couldn;t test all boards,
> so please test and report, send bugfixes!
I just tested your patch set on my version of u-boot for MB86R01 from
Fujitsu (arm926ejs based SoC). This is currently not available in
mainline u-boot but current patches are available here
http://lists.denx.de/pipermail/u-boot/2010-August/074688.html
The point is that the board doesn't boot after applying your patches and
doing the changes to my board which are given at the end of this mail.
The board runs through my low level init (so DDR RAM is up) and later on
crashes in the first call to memset. I could not further debug this as I
have to admit that I am not an expert with GDB + BDI2000 debugging.
Maybe you can give me some hints what I am missing.
Thanks
Matthias
Changes made to the board code after applying your patches:
diff --git a/include/configs/jadecpu.h b/include/configs/jadecpu.h
index bfc60a6..24aa23d 100644
--- a/include/configs/jadecpu.h
+++ b/include/configs/jadecpu.h
@@ -149,6 +149,10 @@
#define PHYS_SDRAM 0x40000000 /* Start address of
DDRRAM */
#define PHYS_SDRAM_SIZE 0x08000000 /* 128 megs */
+/* additions for new relocation code, must added to all boards */
+#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
+#define CONFIG_SYS_INIT_SP_ADDR 0x01000000
+
/*
* FLASH and environment organization
*/
diff --git a/board/syteco/jadecpu/jadecpu.c b/board/syteco/jadecpu/jadecpu.c
index 04d2f9d..bf96bcd 100644
--- a/board/syteco/jadecpu/jadecpu.c
+++ b/board/syteco/jadecpu/jadecpu.c
@@ -154,12 +154,18 @@ int misc_init_r(void)
*/
int dram_init(void)
{
- gd->bd->bi_dram[0].start = PHYS_SDRAM;
- gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
-
+ /* dram_init must store complete ramsize in gd->ram_size */
+ gd->ram_size = get_ram_size((volatile void *)PHYS_SDRAM,
+ PHYS_SDRAM_SIZE);
return 0;
}
+void dram_init_banksize (void)
+{
+ gd->bd->bi_dram[0].start = PHYS_SDRAM;
+ gd->bd->bi_dram[0].size = gd->ram_size;
+}
+
int board_eth_init(bd_t *bis)
{
int rc = 0;
More information about the U-Boot
mailing list