Jetson TK1 - RAM specification clarification

I’m trying to figure out what type and how much RAM Jetson Tk1 will have. In two sections specification said:

  • 2 Gbyte x16 memory with 64 bit width (can accommodate from 1-4 GByte total)
  • 2GB DDR2 - on the block diagram

But when looking in functional description I see:

  • H5TC4G63AFR-RDA 4 Hynix DDR3L FBGA96, 256Mbit x 16, 933MHz

In H5TC4G63AFR-xxA spec I read that are a 4Gb low power Double Data Rate III (DDR3L) Synchronous DRAM.

I assume that author mean 2GB memory but there is difference between DDR2 and DDR3L. It would be great if someone from NVIDIA could clarify this information.

Second thing is, if it is possible to expand RAM, what’s the process for getting more RAM on board ?

I believe the DDR2 block in the diagram should be DDR3

It appears there are 4 DDR modules of 4Gbit each. Each module has a 16-bit wide interface. (16 x 256Mbit = 4Gbit module) so total storage is 4x4Gbit = 2 Gbyte.
Because there are 4 modules total memory interface width is 4x16=64-bit.

I’d put my faith in the schematics nvidia has put online :)

N.

Hello,
Is there anyway i can upgarde the RAM(2Gb seems way too less).

Thank you.

There is no way of upgrading/changing the memory.

Thats sad to hear. The Jetson would be the perfect device for me but 2Gb RAM is very small.

Are there plans for updates or selectable RAM sizes when shopping?

It won’t be very fast, and it may not last very long, but you can add swap memor y as a swap partition on the removable SD-MMC card, just fdisk that card to include a swap partition and then add it with swapon pointing to that partition. Alternatively add external USB harddrive and put a swap partition there.

Thank you for the hint but such an extended memory is no solution for me as its very slow compared to normal RAM.

I think that statement is a little too strong.
A person with the right skills and equipment should be able to replace the memory but it won’t be quick or easy to do.
We have the schematic available so if there are enough address lines and the like there might be pin-compatible parts to upgrade to. You also probably wouldn’t need to change out other passive parts but if so that rework would be relatively easier, especially since we have access to the schematic.

The schematic says this uses Hynix DDR3 1866 1.35V BGA100 chips.
There are 4 chips with 256Mbx16 configuration. (512MB each)
So you would need to replace all 4 with 1 GB chips which will take a long while to double the RAM.

Even if you get the chips replaced you would need to deal with the software. Since these are 32 bit Tegras you might have issues with 4 GB RAM. So maybe you could replace just 2 with the larger size and hope 3 GB works. But either way you would need to put in some effort for the RAM driver I assume.

You will need an ARM debugger and possibly whatever special IDE they used on the Tegra directly such as IAR. Also If I was writing the software on this I would also want an Xray inspection to make sure it was soldered correctly. You don’t want to be banging your keyboard for hours/days to later discover that 1 pin on 1 chip isn’t connected causing the whole system to fail. But this verification costs extra money.

So if you don’t have an xray machine for circuit boards, full access to a wide range of ARM dev tools and software/experience, and some sort of oven/heat gun and skilled technician, and special software skills you aren’t going to be able to replace the RAM yourself.

However I bet there is someone out there who might try this eventually. It would make for an interesting post, even if they fail at it.

To double the RAM, I replaced the original 4 Hynix 4Gb DDR chips with pin-to-pin compatible Hynix 8Gb DDR chips and found the system recognized still total 2GB only (actually 1.7GB). I am wondering if the official schematics showing an additional address line support with a note “A15 USED FOR FUTURE DUAL DIE CONFIG” means Jetson already implemented it. (I thought so.) I will check the driver too. Before that, how could I know if Jetson PCB is already configured to support 4 8Gb DDR chips? (I checked the documents and the information was really confusing…)
Thank you.

I’m not an expert in this matter but …

… your bootloader (uboot or fastboot) need init more RAM. In L4T jetson-tk1.conf file you have defined jetsons memory configuration file. But in folder “Linux_for_Tegra/bootloader/ardbeg/BCT” there are olso other configs for other RAM modules. For 4GB modules there is file named:

E1780_Hynix_4GB_H5TC8G63AMR_PBA_792Mhz.cfg

Check what is a model number of your RAM modules … if it’s H5TC8G63AMR_PBA then probably you will be able to use more ram on your board after modifying your jetson-tk1.conf file and flashing L4T again. But be carefull … you can brick your board.

Also tegra k1 is 32 bit so max ~3GB memory will be supported unless kernel has compiled PAE Physical Address Extension support. That is atlist what i was doing when x64 bit ubuntu’s were to unstable to use ;).

Hope this helps.

BTW what is model number of your ram chips and where did you bought them? Also what equipment did you use to replace the modules? Some time ago i had similar idea but i didn’t have skills and equipment to do that :(.

Jetson is a developer board not intended for mass resale (nor as a component of resale in any quantity). It’s unlikely this will ever upgrade, although I suspect there is a possibility of 64 bit versions to aid developers in the future.

Thanks a lot for the information.
The part number of my 8Gb Hynix DDR chips is “H5TC8G63AMR_RDA”. One of my friends gave me his excess DRAM samples. Another friend used some professional SMT machine to change the DRAM for me. (I am lucky to have these friends…)

Also in kernel source tree there is file arch/arm/boot/dts/tegra124-jetson-tk1.dts. Inside there is memory information block:

memory {
reg = <0x0 0x80000000 0x0 0x80000000>;
};

so ram capacity is limited (i think) to 2GB. You probably need to change this to 0x100000000, recompile kernel and then flash your board with new kernel.
Also check /proc/cmdline to see if there is some memory capacity limiting configuration.

If your board is working right now i would start modifications with this two.

If you succeed don’t forget to let us know :).

BTW. Is there a way to buy 9 samples (i have two jetson’s + 1 spare) of those H5TC8G63AMR_RDA modules from your good friends?

Or is there a ddr3 ram module with those dices?

Thank you very much. I will definitely try and report what I get.
As for the DRAM samples, I will check with my friend how to buy retail samples (as I also need more if it works).

Also in file

Linux_for_Tegra/bootloader/ardbeg/jetson-tk1_extlinux.conf

referenced by jetson-tk1.conf is defined kernel command line with memory configuration entries.

Cheers

yushanwu, you need to modify the SDRAM settings in the BCT file from bootloader/ardbeg/BCT.

  • kernel configuration
  • System Type - Full 4GB physical memory support
  • System Type - Support for the LPAE
  • make sure Kernel features - Memory split is 3G user / 1G kernel
  • kernel command line: the size seems to be passed based on BCT settings

For what it’s worth, I have the same exact hardware setup and I haven’t yet managed to find stable SDRAM settings with 4 GB enabled, at best it crashes while starting init scripts.

An update, I got my board working nicely with a 4GB configuration with LPAE. I wrote some instructions here: https://github.com/lgeek/jetson_hw_hacking

Nvidia has added PM375_Hynix_4GB_H5TC8G63AMR_PBA_792Mhz.cfg in the latest L4T 21. for this module.
I didn’t check whats diffrent beetween yours and theirs.
I think i’ll take a risk and try to upgrade mine two jetsons.

Thoose 4GB H5TC8G63AMR_PBA modules are avaliable on aliexpress 19$ a piece now.

Also congrats! :)

Nice, I hadn’t realised a new L4T was released. You should use their BCT in that case, mine is mostly guesswork.

Edit: for what it’s worth, the GPU driver is crashing at startup if I use the NVIDIA-provided BCT with the 19.3 L4T kernel.