Enabling 4 GB RAM on a custom board based on the beagleboard-x15

119 views
Skip to first unread message

Rafael H. B.

unread,
Dec 20, 2018, 12:46:50 PM12/20/18
to beagleboard-x15
Hello,

We've replaced the RAM chips of a custom board based on the beagleboard-x15 to upgrade the RAM from 2 GB to 4 GB.

The memory chips we're using are the Micron MT41K512M16HA.

After receiving some help in the IRC forums and our own research we were able to boot the Linux kernel recognizing the extra RAM.

First, we modified board/ti/am57xx/board.c in u-boot:

static const struct emif_regs beagle_x15_emif1_ddr3_532mhz_emif_regs = {
.sdram_config_init = 0x61851bb2, /* 0x61851b32 to 0x61851bb2 configure 16 row bits */
.sdram_config = 0x61851bb2, /* 0x61851b32 to 0x61851bb2 configure 16 row bits */
[...]
};

static const struct emif_regs beagle_x15_emif2_ddr3_532mhz_emif_regs = {
.sdram_config_init = 0x61851bb2, /* 0x61851b32 to 0x61851bb2 configure 16 row bits */
.sdram_config = 0x61851bb2, /* 0x61851b32 to 0x61851bb2 configure 16 row bits */
[...]
};

Booting into this modified u-boot still only shows 2GB, as reported by bdinfo:

=> bdinfo
...
DRAM bank   = 0x00000000
-> start    = 0x80000000
-> size     = 0x80000000

Next, we recompiled the Linux kernel with LPAE turned on and the following addition to arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi

memory@1 {
device_type = "memory";
reg = <0x2 0x0 0x0 0x80000000>;
};

After booting this kernel We can see this memory map:

# cat /proc/iomem
...
80000000-9fffffff : System RAM
  80008000-813fffff : Kernel code
  81600000-8176dcff : Kernel data
b8000000-ffffffff : System RAM
200000000-27fcfffff : System RAM

---
I have the following questions:

- Am I missing anything in the EMIF configuration?

- Is it possible to modify u-boot so the 4 GB of RAM is accessible?

- What methods could I use to test the RAM, either in u-boot or in Linux?

Thank you,

Rafael
Reply all
Reply to author
Forward
0 new messages