RAM manufacture/part number information

Hi,

We are working on Linaro release and a custom board based on APQ8016E.

We need RAM related info like manufacture/part number from the user space.

If we run lshw command as below, we did not get the above RAM information:
root@linaro-alip:~# lshw -class memory
*-memory
description: System memory
physical id: 6
Size: 922MiB

Please do let us know if any way to get RAM manufacture / part number info from the userspace.

Regards,
Parth Y Shah

Any update ?

@Loic, can you please guide us over here?

Regards.
Parth Y Shah

DB410C uses a combo DDR+eMMC chip so the details can be picked via eMMC interfaces.

If you are not using a combo chip I’m not sure this is possible.

Thanks @danielt, on our custom board(G2 main board) we have separate RAM and EMMC but we have another custom board(ERAGON410), also based on APQ8016E where we have this DDR+eMMC combo.

on this board, we have the same result of lshw command,
root@linaro-alip:~# lshw -class memory
*-memory
description: System memory
physical id: 6
size: 924MiB

Can you please suggest user-space command, from which we can extract RAM manufacture and part number information on ERAGON410?

Also, if you have these details on DB410 from userspace, please share.

Regards,
Parth Y Shah

You can’t get the RAM manufacturer… but with a combo chip you can lookup the eMMC manufacturer instead since you know it is the same.

@danielt

In Ubuntu system when we use the same command “lshw -class memory”, we can see below output. It has all the information for RAM.

What implementation should be done in Linaro FS/ kernel to get RAM information like this?

Regards,
Parth Y Shah

As I said before, I don’t believe this is implementable.

PS if you look closely you will realize it has not been implemented on your laptop either

Hi @ParthShah

Every DRAM chip is different, and needs different settings. Sometimes even seemingly identical chips need different setting (due to manufacturing variations at the transistor level). Hence every DRAM has resisters readable by the memory controller in the host chip. When the 410 boots the memory controller reads the Mode registers (MR5 to be exact) to determine the chip manufacturer, and to set the DRAM memory bus timings appropriately. Since this all happens in a hardware state machine long before the first line of code has run, I am not sure the results of the MR reads are available to the host operating system. IF the contents of the MR are available, you will have write a driver to find them in the memory controller portion of the 410 chip. There is no currently existing driver or user level program to read the MR registers.

Because DRAM memories all need different settings the PC manufacturers require a small memory description EEPROM on the DRAM memory stick to explain to the host operating system how the memory controller should be programmed (example, clock rate and CAS latency). This is why you can stick almost any memory stick into a PC and it works. And hence on your Ubuntu system it can tell you the memory installed in the PC by reading the EEPROM (not by reading the MR registers in the DRAM chips). Unfortunately memory description EEPROMs are expensive and take up space so they are never put in a cell phone, and are not used, hence the host operating system can’t determine the type of memory.

The best way to determine what DRAM chip you have is to look at it, the part number is printed on the top of the chip. Obviously your board manufacturer knows exactly what DRAM chip was put on the board, so it may be possible for you to work with your board manufacturer to place a file in the eMMC containing the DRAM information.

@ljking Thanks for your detailed description, it helped to clear our understanding.

Yes, indeed we can get the idea of RAM manufacture by reading on the chip but our customer has 3 different RAM combinations for the production purpose. So, this query is being raised because the board would be in enclosure and if we can read this information from the userspace it would be easy to differentiate the boards based on RAM.

Regards,
Parth Y Shah