mtd: nand: atmel: probe of Spansion S34ML02G1 fails
Alexander Dahl
ada at thorsis.com
Tue Jul 25 02:26:33 PDT 2017
Hello,
when testing the recent v4.13-rc2 on our at91sam9g20 based platform I
discovered one of the NAND flash chips we use can not be setup correctly
anymore. I guess this may be due to the reworked atmel nand driver after
v4.9, but it may be another problem.
The board layout is similar to the at91sam9g20ek for the NAND flash part
and we're using different flash chips. With an hynix HY27UF082G2B
everything works, the console output on boot is like this:
nand: Could not find valid ONFI parameter page; aborting
nand: device found, Manufacturer ID: 0xad, Chip ID: 0xda
nand: Hynix NAND 256MiB 3,3V 8-bit
nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
The same board with another pin compatible flash chip, the Spansion
S34ML02G100TF100 however fails. I added some debug print statements to a
otherwise clean 4.13-rc2 kernel and get this:
nand: device found, Manufacturer ID: 0x01, Chip ID: 0xda
nand: AMD/Spansion S34ML02G1
nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
nand: onfi_version: 10, onfi_params.opt_cmd: 0x001B
nand: chip->onfi_set_features() failed: -22
nand: nand_setup_data_interface() failed: -22
atmel-nand-controller 10000000.ebi:nand-controller: nand_scan_ident()
failed: -22
atmel-nand-controller: probe of 10000000.ebi:nand-controller failed
with error -22
So in the ONFI parameter page of the flash chip the value for "optional
commands supported" in the features block is 0x001B which is exactly
what the datasheet says. This means this flash chip does not support
"Get Features" and "Set Features".
Now nand_onfi_set_features() correctly fails, because the nand chip can
not set features. It's called in nand_setup_data_interface() in
nand_base.c which fails itself because of the return value of the failed
set features call and so the whole chain of fails starts.
The nand chip actually works fine in U-Boot, and with kernels up to
v4.9.35, I didn't test v4.10, v4.11, but IIRC the board booted from nand
flash with v4.12.
Can anyone help me to fix this?
Greets
Alex
More information about the linux-mtd
mailing list