diff options
author | Koen Vandeputte <koen.vandeputte@citymesh.com> | 2021-04-06 12:16:10 +0200 |
---|---|---|
committer | Koen Vandeputte <koen.vandeputte@ncentric.com> | 2021-04-06 17:00:07 +0200 |
commit | f4f4259ca17e61a2bb14b9453e050451478f546a (patch) | |
tree | b975be4b0908aa2219f828a94e965e842cb24876 /target/linux/ath79/files/drivers | |
parent | 880c8b44223c9cbce3dd14da78c33676c6f1a8a6 (diff) | |
download | upstream-f4f4259ca17e61a2bb14b9453e050451478f546a.tar.gz upstream-f4f4259ca17e61a2bb14b9453e050451478f546a.tar.bz2 upstream-f4f4259ca17e61a2bb14b9453e050451478f546a.zip |
ath79: ar934x-nand: fix broken nand on kernel 5.10
Booting current 5.10.x testing kernel shows this:
[ 0.335781] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xf1
[ 0.342280] nand: Samsung NAND 128MiB 3,3V 8-bit
[ 0.346982] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048,
OOB size: 64
[ 0.354703] ar934x-nand 1b800200.nand: unknown ECC mode 2
[ 0.360193] ar934x-nand 1b800200.nand: nand_scan failed, err:-22
[ 0.366341] ar934x-nand: probe of 1b800200.nand failed with error -22
...
[ 1.089264] /dev/root: Can't open blockdev
[ 1.093482] VFS: Cannot open root device "(null)" or
unknown-block(0,0): error -6
[ 1.101077] Please append a correct "root=" boot option; here are the
available partitions:
[ 1.109555] 1f00 64 mtdblock0
[ 1.109559] (driver?)
[ 1.116199] 1f01 48 mtdblock1
[ 1.116202] (driver?)
[ 1.122841] 1f02 4 mtdblock2
[ 1.122844] (driver?)
[ 1.129493] 1f03 4 mtdblock3
[ 1.129497] (driver?)
[ 1.136138] 1f04 4 mtdblock4
[ 1.136142] (driver?)
[ 1.142787] Kernel panic - not syncing: VFS: Unable to mount root fs
on unknown-block(0,0)
[ 1.151168] Rebooting in 1 seconds..
The issue is caused by a wrong check for ECC engine type
on newer kernels.
Fix this.
Bootlog after:
[ 0.335689] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xf1
[ 0.342192] nand: Samsung NAND 128MiB 3,3V 8-bit
[ 0.346884] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048,
OOB size: 64
[ 0.354611] Scanning device for bad blocks
[ 0.364924] random: fast init done
[ 0.496641] 3 fixed-partitions partitions found on MTD device
ar934x-nand
[ 0.503545] Creating 3 MTD partitions on "ar934x-nand":
[ 0.508865] 0x000000000000-0x000000040000 : "booter"
[ 0.515133] 0x000000040000-0x000000400000 : "kernel"
[ 0.523265] 0x000000400000-0x000008000000 : "ubi"
Fixes: fb64e2c30f ("ath79: ar934x-nand: add kernel 5.10 compatibility")
Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
Diffstat (limited to 'target/linux/ath79/files/drivers')
-rw-r--r-- | target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c b/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c index 207bcd59ac..ddc6d6d882 100644 --- a/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c +++ b/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c @@ -1341,7 +1341,7 @@ static int ar934x_nfc_attach_chip(struct nand_chip *nand) if (ret) return ret; #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) - } else if (nand->ecc.engine_type == NAND_ECC_ENGINE_TYPE_SOFT) { + } else if (nand->ecc.engine_type != NAND_ECC_ENGINE_TYPE_SOFT) { dev_err(dev, "unknown ECC mode %d\n", nand->ecc.engine_type); #else } else if (nand->ecc.mode != NAND_ECC_SOFT) { |