Other Parts Discussed in Thread: TPS65218
Tool/software:
Hi,
we have been using the Am437X board card with NAND as the MTD system for a long time. Recently, we aim to improve the system's boot time, so we replaced the original 512x8-bit NAND (8-bit width,S34ML04G200TFI000) with 256x16-bit (16-bit width) NAND(MT29F4G16ABADAWP), hoping to increase the bit width to enhance read and write speeds.
We Compiled and downloaded u-boot-spl.bin to the board via serial port (xmodem):
Transferring u-boot-spl.bin...
100% 123 KB 9 KB/s 00:00:13 0 Errors
However, when we downloaded u-boot.img to the board, an error occurred:
OMAP-ELM: uncorrectable ECC errors
Transferring u-boot.img...
100% 595 KB 3 KB/s 00:02:29 0 Errors
xyzModem - CRC mode, 4769(SOH)/0(STX)/0(CAN) packets, 4 retries
Loaded 610096 bytes
U-Boot 2018.01-00444-ge782a78-dirty (Jul 16 2025 - 10:43:05 +0800)
CPU : AM437X-GP rev 1.2
Model: TI AM437x GP EVM
DRAM: 1 GiB
PMIC: TPS65218
NAND: 512 MiB
MMC: OMAP SD/MMC: 0
omap-elm: uncorrectable ECC errors
omap-elm: uncorrectable ECC errors
…
The SDK is ti-sdk-rt-am437x-evm-05.03.00.07.
We configure in u-boot:
1) Am43xx_evm_defconfig:CONFIG_SYS_NAND_BUSWIDTH_16BIT=y
2) In Am437x-gp-evm.dts, added: nand_flash_x8:
0x20 (PIN_INPUT | MUX_MODE0) /* gpmc_ad0.gpmc_ad8 */
0x24 (PIN_INPUT | MUX_MODE0) /* gpmc_ad1.gpmc_ad9 */
0x28 (PIN_INPUT | MUX_MODE0) /* gpmc_ad2.gpmc_ad10 */
0x2c (PIN_INPUT | MUX_MODE0) /* gpmc_ad3.gpmc_ad11 */
0x30 (PIN_INPUT | MUX_MODE0) /* gpmc_ad4.gpmc_ad12 */
0x34 (PIN_INPUT | MUX_MODE0) /* gpmc_ad5.gpmc_ad13 */
0x38 (PIN_INPUT | MUX_MODE0) /* gpmc_ad6.gpmc_ad14 */
0x3c (PIN_INPUT | MUX_MODE0) /* gpmc_ad7.gpmc_ad15 */
Meanwhile, change nand-bus-width=<8> to <16>:
&gpmc {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&nand_flash_x8>;
ranges = <0 0 0 0x01000000>; /* minimum GPMC partition = 16MB */
nand@0,0 {
reg = <0 0 4>; /* device IO registers */
ti,nand-ecc-opt = "bch16";
ti,elm-id = <&elm>;
nand-bus-width = <16>; //<8>;
gpmc,device-width = <1>;
…
Is there anything else that needs to be configured or changed?
Best Regard!
Dudechao