This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X - No NAND device found on SDK8.0 Kernel

Dears,

We are bring up the board, but it having a No NAND device found issue on kernel.

To dump the uboot GPMC register is different with the kernel,

uboot:

00000800 001e1e00 001e1e00 16051807    ................
50000070: 00151e1e 16000f80 00000f48 ffffffff

kernel:

GPMC_CONFIG1_0:800
GPMC_CONFIG2_0:30300
GPMC_CONFIG3_0:22030211
GPMC_CONFIG4_0:3006310
GPMC_CONFIG5_0:40505
GPMC_CONFIG6_0:83000000
GPMC_CONFIG7_0:F41

dts setting is SDK8.0 default value

nand-bus-width = <8>;
gpmc,device-width = <1>;
gpmc,sync-clk-ps = <0>;
gpmc,cs-on-ns = <0>;
gpmc,cs-rd-off-ns = <44>;
gpmc,cs-wr-off-ns = <44>;
gpmc,adv-on-ns = <6>;
gpmc,adv-rd-off-ns = <34>;
gpmc,adv-wr-off-ns = <44>;
gpmc,we-on-ns = <0>;
gpmc,we-off-ns = <40>;
gpmc,oe-on-ns = <0>;
gpmc,oe-off-ns = <54>;
gpmc,access-ns = <64>;
gpmc,rd-cycle-ns = <82>;
gpmc,wr-cycle-ns = <82>;
gpmc,wait-on-read = "true";
gpmc,wait-on-write = "true";
gpmc,bus-turnaround-ns = <0>;
gpmc,cycle2cycle-delay-ns = <0>;
gpmc,clk-activation-ns = <0>;
gpmc,wait-monitoring-ns = <0>;
gpmc,wr-access-ns = <40>;
gpmc,wr-data-mux-bus-ns = <0>;

error message:
[    2.287199] nand: No NAND device found
[    2.290981] nand device scan failed, may be bus-width mismatch
.
.
[    2.858882] UBIFS error (pid 1): ubifs_mount: cannot open "ubi0:rootfs", error -19
[    2.866630] VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0): error -19
[    2.874756] Please append a correct "root=" boot option; here are the available partitions:
[    2.883272] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Please give me a favor for the issue, let me know how to do, thanks.

B.R.
Joe

  • Hi Joe,
    You mean, able to detect NAND flash in u-boot but not with kernel right ?
    You can disable the NAND init (CS,GPMC init etc) stuff in dts file and just mention about the filesystem partition table.

    Try to check which part of code is over writing the value of GPMC (NAND part)