[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