Advise Sought - Configuring Linux to work with only 16 data bits connected to DDR3 on am57xx.


Our initial board with the 5718 has a single Kingston 256MBx16 DDR3 chip with only 16 data bits connected to the first EMIF. The 572xEVM/BeagleBoard appears to utilize all 32 data bits, the lower 16 of which are connected to the first Kingston DDR3 part in the “pair” while the upper 16 bits appear to be connected to the second DDR3 chip in the pair. There are 4 DDR chips in total, with each DDR3 chip pair connected to one of two EMIF controllers on the 57xx.

Would you be so kind as to point me in the right direction for what all I need to look at in U-boot and the kernel to run the DDR3 in “16-bit mode?” I’ve seen that there is a NARROW_MODE bit in the EMIF chip, and I’m wondering if this is all that needs to be set in both U-boot and the kernel for proper operation.

Additionally from looking at the BeagleBone Black schematic, it looks like only 16 data bits are connected to it’s DDR3 chip. Is the best place to start to perform a tree diff on U-boot and the kernel for the BeagleBone Black vs. the BeagleBoard-X15?

I’m currently running the BeagleBoard-X15 image with Debian 8.6 and uname -r = 4.4.30-ti-r64 and U-boot Version, 2017.01-00302-gafb742e-dirty.

I will try to set NARROW_MODE, build U-Boot, see what happens, and post what appear to be meaningful results…

Thanks in advance!!