AnsweredAssumed Answered

Still issues with i.MX6DL, 2x512MB RAM, U-Boot and Linux (DT)

Question asked by Steffen Doster on Feb 14, 2020
Latest reply on Feb 24, 2020 by igorpadykov

Hello everyone,

 

slowly I'm running mad with this:

I have a new custom board with i.MX6DL connected to two RAM-Chips:

RAM-Schematic

I created the U-Boot RAM-cfg with the LPDDR2-Script-Aid-v0.06. (See attached *.cfg-File and Script-Aid-XLS).

I tested several RAM-definitions in the U-Boot Header-File: (CFG-File and Header-File both with Interleaving and Non-Interleaving-RAM). The fat text seem to work with an i.MX6Quad.

/* RAM Configs */
#undef INTERLEAVING_RAM
#ifdef INTERLEAVING_RAM
/* RAM Configs interleaving */
#define PHYS_SDRAM                                        MMDC0_ARB_BASE_ADDR
#define PHYS_SDRAM_SIZE                             (512u * 1024 * 1024)
#define CONFIG_NR_DRAM_BANKS                1
#define CONFIG_SYS_SDRAM_BASE               PHYS_SDRAM
#else
/* RAM Configs non interleaving */
/*#define CONFIG_NR_DRAM_BANKS            1
#define PHYS_SDRAM_1                                  MMDC0_ARB_BASE_ADDR
#define PHYS_SDRAM_1_SIZE                        (512u * 1024 * 1024)
#define CONFIG_SYS_SDRAM_BASE             PHYS_SDRAM_1
*/
#define CONFIG_NR_DRAM_BANKS                2
#define PHYS_SDRAM_1                                   MMDC0_ARB_BASE_ADDR
#define PHYS_SDRAM_2                                   MMDC1_ARB_BASE_ADDR
#define PHYS_SDRAM_1_SIZE                         (512u * 1024 * 1024)
#define PHYS_SDRAM_2_SIZE                         (512u * 1024 * 1024)
#define iomem_valid_addr(addr, size)                 (addr >= PHYS_SDRAM_1 && addr <= (PHYS_SDRAM_2 + PHYS_SDRAM_2_SIZE))
#define CONFIG_SYS_SDRAM_BASE               PHYS_SDRAM_1

#endif

 

And I tried to configure the <memory> entry in Devicetree with several configurations:

memory {
         device_type = "memory";
         reg = <0x10000000 0x40000000>; /* working with QUAD */
         /*reg = <0x10000000 0x20000000 0x80000000 0x20000000>;*/
};

 

Every Test ends in the same result: Linux boots, but when I run <memtester> the whole System freezes including a Heartbeat-LED.

 

Somewhere I do something terribly wrong, but where? Why does it work with the Quad-Core but not with DualLite?

I think I don't understand CS0_END-Parameter! (And some other things, too.)

 

PLEAAAAAAAASE HELP!!

 

I can provide more Information if this helps.

Outcomes