lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 17 Nov 2020 11:16:26 +0100
From:   Juergen Borleis <jbe@...gutronix.de>
To:     Miquel Raynal <miquel.raynal@...tlin.com>,
        linux-kernel@...r.kernel.org, linux-mtd@...ts.infradead.org
Cc:     Vignesh Raghavendra <vigneshr@...com>,
        Richard Weinberger <richard@....at>, Han Xu <han.xu@....com>,
        kernel@...gutronix.de
Subject: mtd: rawnand: gpmi: regression since
 e5e5631cc88987a6f3cd8304660bd9190da95916

Hi,

reading a NAND page in raw mode is required to check the consistence of the so-
called FCBs (used to boot the SoC from NAND content).

Before e5e5631cc88987a6f3cd8304660bd9190da95916 ("mtd: rawnand: gpmi: Use
nand_extract_bits()") it reads the first page of the NAND correctly as:

00000000  00 00 88 fb ff ff 46 43  42 20 00 00 00 01 50 3c  |......FCB ....P<|
00000010  19 06 00 00 00 00 00 08  00 00 80 08 00 00 40 00  |..............@.|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 09 00  |................|
00000030  00 00 00 02 00 00 00 02  00 00 09 00 00 00 0a 00  |................|
00000040  00 00 03 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000060  00 00 00 00 00 00 00 00  00 00 00 01 00 00 80 10  |................|
00000070  00 00 55 01 00 00 55 01  00 00 01 00 00 00 9e 07  |..U...U.........|
00000080  00 00 02 00 00 00 00 08  00 00 00 00 00 00 00 00  |................|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200  40 05 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |@...............|
00000210  40 01 00 00 00 80 05 00  00 80 05 00 40 01 00 00  |@...........@...|
00000220  c0 03 00 00 80 02 00 00  00 00 00 00 00 00 00 00  |................|
00000230  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000240  00 00 00 00 00 00 00 00  00 00 00 00 00 00 07 00  |................|
00000250  80 83 06 00 00 00 07 00  00 00 07 00 00 07 00 00  |................|
00000260  00 42 06 00 80 05 00 00  00 40 06 00 00 00 00 00  |.B.......@......|
00000270  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000790  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 fc  |................|
000007a0  03 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000007b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000800  ff 00 00 00 00 00 00 00  00 00 00 00 17 15 06 06  |................|
00000810  10 1f 03 07 00 00 00 1c  0f 17 1f 05 00 00 00 00  |................|
00000820  00 19 00 00 0e 19 00 00  00 00 00 00 00 00 00 00  |................|
00000830  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000880

After applying e5e5631cc88987a6f3cd8304660bd9190da95916 reading the same page
the reported content is broken (the NAND page still contains correct data):

00000000  00 00 88 fb ff ff 46 43  42 20 00 00 00 01 50 3c  |......FCB ....P<|
00000010  19 06 00 00 00 00 00 08  00 00 80 08 00 00 40 00  |..............@.|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 09 00  |................|
00000030  00 00 00 02 00 00 00 02  00 00 09 00 00 00 0a 00  |................|
00000040  40 05 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |@...............|
00000050  40 01 00 00 00 80 05 00  00 80 05 00 40 01 00 00  |@...........@...|
00000060  c0 03 00 00 80 02 00 00  00 00 00 00 00 00 00 00  |................|
00000070  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000250  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 fc  |................|
00000260  03 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000270  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000002c0  06 70 c0 a8 00 00 00 00  00 00 00 00 40 00 00 00  |.p..........@...|
000002d0  10 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000002e0  00 00 00 00 00 01 00 00  10 00 00 00 fe 80 00 00  |................|
000002f0  00 00 00 00 52 2d f4 ff  fe 0a f9 6b 80 00 00 00  |....R-.....k....|
00000300  10 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000310  00 00 00 00 00 00 00 00  10 00 00 00 fe 80 00 00  |................|
00000320  00 00 00 00 00 00 00 00  00 00 00 00 40 00 00 00  |............@...|
00000330  10 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000340  00 00 00 00 00 01 00 00  10 00 00 00 ff 00 00 00  |................|
00000350  00 00 00 00 00 00 00 00  00 00 00 00 08 00 00 00  |................|
00000360  10 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000370  00 00 00 00 00 01 00 00  09 00 00 00 52 6f 75 74  |............Rout|
00000380  65 44 61 74 61 00 06 61  61 7b 73 76 7d 00 00 00  |eData..aa{sv}...|
00000390  28 02 00 00 64 00 00 00  04 00 00 00 64 65 73 74  |(...d.......dest|
000003a0  00 01 73 00 25 00 00 00  32 30 30 31 3a 36 37 63  |..s.%...2001:67c|
000003b0  3a 36 37 30 3a 63 30 61  38 3a 35 32 32 64 3a 66  |:670:c0a8:522d:f|
000003c0  34 66 66 3a 66 65 30 61  3a 66 39 36 62 00 00 00  |4ff:fe0a:f96b...|
000003d0  06 00 00 00 70 72 65 66  69 78 00 01 75 00 00 00  |....prefix..u...|
000003e0  80 00 00 00 00 00 00 00  06 00 00 00 6d 65 74 72  |............metr|
000003f0  69 63 00 01 75 00 00 00  00 00 00 00 54 00 00 00  |ic..u.......T...|
00000400  00 b0 c8 ec 64 65 73 74  00 01 73 00 13 00 00 00  |....dest..s.....|
00000410  32 30 30 31 3a 36 37 63  3a 36 37 30 3a 63 30 61  |2001:67c:670:c0a|
00000420  38 3a 3a 00 00 00 00 00  06 00 00 00 70 72 65 66  |8::.........pref|
00000430  69 78 00 01 75 00 00 00  40 00 00 00 00 00 00 00  |ix..u...@.......|
00000440  06 00 00 00 6d 65 74 72  69 63 00 01 75 00 00 00  |....metric..u...|
00000450  00 01 00 00 5c 00 00 00  04 00 00 00 64 65 73 74  |....\.......dest|
00000460  00 01 73 00 19 00 00 00  66 65 38 30 3a 3a 35 32  |..s.....fe80::52|
00000470  32 64 3a 66 34 66 66 3a  66 65 30 61 3a 66 39 36  |2d:f4ff:fe0a:f96|
00000480  62 00 00 00 00 00 00 00  06 00 00 00 70 72 65 66  |b...........pref|
00000490  69 78 00 01 75 00 00 00  80 00 00 00 00 00 00 00  |ix..u...........|
000004a0  06 00 00 00 6d 65 74 72  69 63 00 01 75 00 00 00  |....metric..u...|
000004b0  00 00 00 00 44 00 00 00  04 00 00 00 64 65 73 74  |....D.......dest|
000004c0  00 01 73 00 06 00 00 00  66 65 38 30 3a 3a 00 00  |..s.....fe80::..|
000004d0  06 00 00 00 70 72 65 66  69 78 00 01 75 00 00 00  |....prefix..u...|
000004e0  40 00 00 00 00 00 00 00  06 00 00 00 6d 65 74 72  |@...........metr|
000004f0  69 63 00 01 75 00 00 00  00 01 00 00 44 00 00 00  |ic..u.......D...|
00000500  04 00 00 00 64 65 73 74  00 01 73 00 06 00 00 00  |....dest..s.....|
00000510  66 66 30 30 3a 3a 00 00  06 00 00 00 70 72 65 66  |ff00::......pref|
00000520  69 78 00 01 75 00 00 00  08 00 00 00 00 00 00 00  |ix..u...........|
00000530  06 00 00 00 6d 65 74 72  69 63 00 01 75 00 00 00  |....metric..u...|
00000540  00 01 00 00 74 00 00 00  04 00 00 00 64 65 73 74  |....t.......dest|
00000550  00 01 73 00 02 00 00 00  3a 3a 00 00 00 00 00 00  |..s.....::......|
00000560  06 00 00 00 70 72 65 66  69 78 00 01 75 00 00 00  |....prefix..u...|
00000570  00 00 00 00 00 00 00 00  08 00 00 00 6e 65 78 74  |............next|
00000580  2d 68 6f 70 00 01 73 00  17 00 00 00 66 65 38 30  |-hop..s.....fe80|
00000590  3a 3a 35 30 35 34 3a 66  66 3a 66 65 62 33 3a 61  |::5054:ff:feb3:a|
000005a0  35 66 62 00 00 00 00 00  06 00 00 00 6d 65 74 72  |5fb.........metr|
000005b0  69 63 00 01 75 00 00 00  00 04 00 00 00 00 00 00  |ic..u...........|
000005c0  0b 00 00 00 4e 61 6d 65  73 65 72 76 65 72 73 00  |....Nameservers.|
000005d0  03 61 61 79 00 00 00 00  00 00 00 00 00 00 00 00  |.aay............|
000005e0  07 00 00 00 44 6f 6d 61  69 6e 73 00 02 61 73 00  |....Domains..as.|
000005f0  00 00 00 00 00 00 00 00  08 00 00 00 53 65 61 72  |............Sear|
00000600  63 68 65 73 00 02 61 73  00 00 00 00 00 00 00 00  |ches..as........|
00000610  0a 00 00 00 44 6e 73 4f  70 74 69 6f 6e 73 00 02  |....DnsOptions..|
00000620  61 73 00 00 00 00 00 00  0b 00 00 00 44 6e 73 50  |as..........DnsP|
00000630  72 69 6f 72 69 74 79 00  01 69 00 00 64 00 00 00  |riority..i..d...|
00000640  09 00 00 00 46 6c 6f 77  4c 61 62 65 6c 00 01 75  |....FlowLabel..u|
00000650  00 00 00 00 00 00 00 00  05 00 00 00 46 6c 61 67  |............Flag|
00000660  73 00 01 75 00 00 00 00  00 00 00 00 30 02 30 02  |s..u........0.0.|
00000670  30 02 30 02 30 02 30 02  30 02 30 02 30 02 30 02  |0.0.0.0.0.0.0.0.|
00000680  30 02 30 02 30 02 30 02  30 02 30 02 30 02 72 00  |0.0.0.0.0.0.0.r.|
00000690  72 00 72 00 31 02 31 02  31 02 31 02 31 02 31 02  |r.r.1.1.1.1.1.1.|
000006a0  31 02 31 02 31 02 31 02  31 02 31 02 31 02 31 02  |1.1.1.1.1.1.1.1.|
*
000006f0  31 02 31 02 31 02 72 00  72 00 72 00 72 00 72 00  |1.1.1.r.r.r.r.r.|
00000700  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000720  01 00 00 00 00 00 00 00  17 00 17 00 17 00 17 00  |................|
00000730  17 00 17 00 17 00 17 00  17 00 17 00 17 00 17 00  |................|
00000740  17 00 17 00 17 00 17 00  17 00 17 00 72 00 72 00  |............r.r.|
00000750  72 00 72 00 32 02 32 02  32 02 32 02 32 02 32 02  |r.r.2.2.2.2.2.2.|
00000760  32 02 32 02 32 02 32 02  32 02 32 02 32 02 32 02  |2.2.2.2.2.2.2.2.|
*
00000790  32 02 32 02 33 02 33 02  33 02 33 02 72 00 72 00  |2.2.3.3.3.3.r.r.|
000007a0  72 00 72 00 72 00 72 00  72 00 72 00 72 00 72 00  |r.r.r.r.r.r.r.r.|
000007b0  72 00 72 00 34 02 34 02  34 02 34 02 34 02 34 02  |r.r.4.4.4.4.4.4.|
000007c0  34 02 34 02 34 02 34 02  34 02 34 02 34 02 34 02  |4.4.4.4.4.4.4.4.|
000007d0  34 02 34 02 34 02 35 02  34 02 34 02 34 02 34 02  |4.4.4.5.4.4.4.4.|
000007e0  34 02 34 02 34 02 34 02  35 02 72 00 72 00 72 00  |4.4.4.4.5.r.r.r.|
000007f0  72 00 72 00 36 02 36 02  36 02 36 02 36 02 36 02  |r.r.6.6.6.6.6.6.|
00000800  ff 00 00 00 00 00 00 00  00 00 00 00 17 15 06 06  |................|
00000810  10 1f 03 07 00 00 00 1c  0f 17 1f 05 00 00 00 00  |................|
00000820  00 19 00 00 0e 19 00 00  00 00 00 00 00 00 00 00  |................|
00000830  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

Juergen

-- 
Pengutronix e.K.                       | Juergen Borleis             |
Steuerwalder Str. 21                   | https://www.pengutronix.de/ |
31137 Hildesheim, Germany              | Phone: +49-5121-206917-128  |
Amtsgericht Hildesheim, HRA 2686       | Fax:   +49-5121-206917-9    |

Powered by blists - more mailing lists