eMMC chip size on the byte

I have three types of eMMC chips one made by SanDisk one by Toshiba and one by SKhynix.
All three claim to have capacity of 64GBytes, however their actual sizes are:
63585648640 bytes
62537072640 bytes
63652757504 bytes
I need to replace the largest one, by flashing the exact same image to another chip. The problem is I can’t find a new chip with the same number of bytes or more. I can’t reduce the image size because the end of it contains important data of the EFI boot.
Is there a way to find a replacement eMMC with the same number of bytes?
Is there a way to know the real size of the chip before I buy it?

Regards,
Jake

Sorry Jake,

there is really no way to find a replacement eMMC with the exactly same number of Bytes !?!

There is also no way to know the real size of the chip before buying it as no vendor indicates the real size, due to the fact that it really differs from each device due to different numbers of bad blocks found at the end of the NAND flash production process.

Regards, Rolf

Sadly, the memory manufactures don’t make this easy. Most of the time, devices from the same model/batch from one manufacture will be exactly the same. But between models they may also vary.

Here is one fun data-point from BeagleBoard.org, for our pre-installed 4GB eMMC over the years:

#Micron   3744MB (bbb): 3925868544 bytes
#Kingston 3688MB (bbb): 3867148288 bytes
#Kingston 3648MB (x15): 3825205248 bytes

So for, BeagleBoard.org’s image we start and dd a small image, then on on first boot-up it’ll resize for the full eMMC size…

Regards,

Thank you for your answers. This is so frustrating, I need to do so many crazy hacks to work around it.