I want test the ram with 32 instead of 64 bit width. The configuration files I have found for sdram say they are generated with tools like gen_sdram_cfg and TK1_emc_reg_tool. Are those tools available somewhere?
TK1 doesn’t support 32bit width memory. the tool isn’t public.
Ok. Just starting out with this board. By TK1, do you mean Tegra K1 or the Jetson TK1? We are looking into a hardware design with 32bit width. The TRM says “Tegra K1 devices feature a hybrid 2x32-bit / 1x64-bit memory controller”, and I’m trying to find out if it is possible to set it up for 1x32. My plan to test this was to configure the Jetson to use 1x32 and verify the reduction in bandwith and capacity.
A bit further in the TRM now, and “The Tegra K1 device supports a single physical channel of memory interface, which operates in either single 1x32 or hybrid
2x32 / 1x64 configurations.” seems promising :)
TK1 is Tegra K1
Nobody did single 32bit from software before.this may be a huge workload.
That sounds scary. My plan was to find the relevant register settings in the Memory Controller and upload a new BCT. Then I hoped u-boot and linux would Just Work.
Been staring at the TRM for a while now. Maybe it’s the terminology that confuses me, but I can’t figure out which registers to tweak to get 1x32. Do anyone know the EMC so well that they can help me out?
i looked at the .par file which was used to generate sdram config file and didn’t find anything is related data width.
i guess this may need something change in u-boot.
Yes. I’m starting to wonder if the EMC itself handles/detects some of this. The TRM says “if a second device is populated”. Perhaps the EMC itself figures out if a second device is there, and I have to make sure u-boot/linux “know the hardware”.
I found those par files myself, and spotted “dram_x64 : 1” in them. In the BCT this goes into the EMC_FBIO_CFG5_0 register, which has bits for DRAM_WIDTH and DRAM_DATA_SWZL.
An update in case others are curious about this.
I believe I have x32 working now.
Generated new sdram config for x32
Changed dts files in u-boot and kernel, and told u-boot to stay away from adresses past 3072M.
Commented out (for now) the emc code in the kernel used to change ram frequency.
And to conclude this. After changing the emc tables in linux, Everything Works.
It seems you have find the way to use 32bit sdram.
Could you please do me a favor?I tried to use only the sdram 1 and 2.
Thanks a lot.
Where did you find the par files？
Sorry for not replying to this! I have checked the option for mail notifications, but I never get any mails. Glad you figured it out.
I have started working on the same problem can you please explain more how have you achieved 1x32 configuration on Jetson TK1.