Team,
Can you please help?
Linux only sees 2Gbytes of DDR3 instead of a total of 4Gbytes.
What are the extra step to do to have Linux see/use the full 4GBytes memory space?
How can we narrow down where the issue is?
The setup is as below:
EMIF1 + EMIF2 = 4GBytes as follow:
On EMIF1: 2x (512Mx16) = 2GB DDR3 chips as per Fig 8-2 page 378 of the datasheet SPRS953F
On EMIF2: 2x (512Mx16) = 2GB DDR3 chips as per Fig 8-2 page 378 of the datasheet SPRS953F
The EMIF parameters were obtained using the EMIF_RegisterConfiguration.xlsm from SPRAC36:
www.ti.com/.../SITARA-DDR-CONFIG-TOOL
The board can boot Linux and both EMIFs are running in interleaved mode.
The LISA_MAP configuration we are applying is the following:
static const struct dmm_lisa_map_regs ingeteam_bd_lisa_regs = {
.dmm_lisa_map_2 = 0x80740300,
.dmm_lisa_map_3 = 0xFF020100,
.is_ma_present = 0x1
}
The kernel was built with he CONFIG_ARM_LPAE feature enabled. If we executed the following command (as suggested in https://e2e.ti.com/support/processors/f/791/p/803805/3005117?tisearch=e2e-sitesearch&keymatch=DRA742&pi320966=2 ):
root@board:~# zcat /proc/config.gz | grep -i LPAE
CONFIG_ARM_LPAE=y
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
It shows that the LPAE extension is enabled
But our system only sees 2GB:
root@board:~# cat /proc/meminfo
MemTotal: 1849496 kB
MemFree: 1793184 kB
MemAvailable: 1805892 kB