We use cookies to provide our visitors with an optimal site experience. View our privacy notice and cookie notice to learn more about how we use cookies and how to manage your settings. By proceeding on our website you consent to the use of cookies.
We have new rev C boards with 16G EMMC. It was the same part as our Rev B board.
On Rev B, I run your sudo /opt/scripts/tools/grow_partition.sh and the Linux was able to expand to full 16G. But some how on our Rev C, it only expands to 5G.
The P/N for EMMC is EMMC16G-TB29-90F02
Any suggestions that something is possibly wrong?
I agree with you that it is not the script. The script expands from 3.5G to 4.9G, it does as it supposes to do.
If it is the addresses, I thought it shall be something like 8G, not 5G. If it is bad EMMC chip, it still hard to think of 4.9G.
I have to try more boards, to see if they are consistent.
Best Regards,
David
Hi Robert,
Thank you for your suggestions.
I will try more boards, which may give us some clues. Or as you suggested, using u-boot to dig out some error codes or do more testing.
I found that the EMMC on the Rev C board, which only claimed 4.9G out of 16G Capacity is in Enhanced Mode ( from u-boot mmc ) :
User Capacity: 4.9 GiB ENH
User Enhanced Start: 0 Bytes
User Enhanced Size: 4.9 GiB
It may use mmc-utils to be reconfigured?
There are a few questions in mind:
The enhanced mode is default for ‘enhanced version’ of EMMC?
Why only 4.9 visible under enhanced mode?
How to claim the rest or how to change to non-enhanced mode?
It has hwpartition u-boot cmd or mmc-utils as you suggested. I haven’t got chance to try it out. I am still having wifi issue, (service is loaded ok, but no wlan0 interface device). Without WIFI, it is hard to install tools for use.
Correct, so with the correct mmc command you should be able to put it in TLC mode to get all 16GB… This is all new, i shared it with the old Beagle developers, we haven’t had to deal with an eMMC like this yet…
Thank you for your confirmation.
Later, I would like to make it multiple partitions. One for Linux O/S, which is more static after being flashed. One for user partition, which may constantly updates with pSLC mode. That way we have balanced performance and space.
I got some feedback from Kingston regarding EMMC pSLC configuration, I thought you might be interested in the info. I would like to share it with you.
( the Jesd84-B51.pdf too large to upload)
EMMC16G-TB29-90F01 is standard configuration chip P/N
EMMC16G-TB29-90F02 is pSLC configuration chip P/N
EMMC Chip with EMMC16G-TB29-90F01 is in standard configuration ONLY?
This is the standard configuration. Standard configurations can be set to pSLC mode which is a one-time-programmable (OTP) operation and cannot be undone. All data is lost when converting to pSLC.
EMMC16G-TB29-90F01
eMMC 5.1
Standard Temp. -25C to +85C
Package 11.5 x 13.0 x 0.8 mm
Native 3D TLC NAND Flash
Sector count 30,621,696 = 30,621,696 * 512 = 15,678,308,352 Bytes
EMMC Chip with EMMC16G-TB29-90F02 is in pSLC as default? Is it possible to be re-partitioned as mixed ( some as standard, and some as pSLC) ?
This part is set as pSLC mode from the factory. Standard configured parts can be set to have a mix of standard and pSLC sections. Once set in pSLC it cannot be undone due to the OTP nature.
Section “6.2.4 Configure partitions” of the JEDEC standard (attached) describes how to set pSLC which they call “Enhanced User Data Area”.
EMMC16G-TB29-90F02
eMMC 5.1
Standard Temp. -25C to +85C
Package 11.5 x 13.0 x 0.8 mm
Native 3D TLC NAND Flash converted to pSLC.
Sector count 10,207,232 = 10,207,232 * 512 = 5,226,102,784 Bytes
Ouch, so “F02” is 16G eMMC in pSLC mode via a one time programmable option… They should really rename the part number as “5.9G” vs “16G”… As that is so confusing, as you don’t get all 16G…
I am using EMMC16G-TB29-90F01 eMMC on i.MX6UL evk nxp board . Can you please share the procedure for configuring the eMMC in device tree and uboot and please share the datasheet of EMMC16G-TB29-90F01.
First, I don’t know what is your problem with the EMMC chip you are using. If EMMC is already configured, then there is nothing to change. If you need to add EMMC into the system, then the best way is to find the device configuration for EMMC from NXP source for your dev board, they must have a version of source for the dev board you are using. As far as bitbake process, you shall also follow nxp bitbaking procedures. NXP has pretty good custom support. I made changes on eMMC device tree, because DIGI device tree has a parameter mismatch for the EMMC we are using, and I got hint from NXP IMX6UL experts. My advice is to file a tick to NXP support, they will give you specific info.
In our board, we disabled SD card, when Kernel is loaded. We were using eMMC, and we found there was eMMC R/W I/O block error, with large files (say >25M). That was reason, I modified some parameters for eMMC pins in the device tree. The modification was confirmed by DIGI engineering team and fixed R/W error. Then we found the eMMC still failed at very low temperature. (<-10 C). At the end, we removed eMMC, just used on-chip flash.