nand "BCH decoding failed" when using bch8_hw_romcode ecc mode

Tibault Damman tibault.damman at basalte.be
Fri Mar 18 03:32:36 PDT 2022


Gah, I just saw how that mail was sent, let me try that again:

On 17/03/2022 08:46, Sascha Hauer wrote:
> No clue, just some things you could test:
>
> - in BCH8_HW_ROMCODE barebox can't read what it has written itself,
>    right?

so it would seem yeah

> - Can barebox read what Linux has written in this mode?
> - Use Linux to write known data to a page:
>    seq 10000 > foo
>    flash_erase /dev/mtdx 0 0
>    nandwrite /dev/mtdx foo
> - Read the same page in raw mode in barebox:
>    md -s /dev/nand0.raw 0+2112
> - Write the same data with barebox
> - Read again:
>    md -s /dev/nand0.raw 0+2112
> - Compare the results
>
> You could also just return successfully in chien() when the result would
> fail and see what you read.

(I had to edit chien as you suggested, else md didn't print the results)

Writing from linux and barebox seems to give the same result:

> barebox at Phytec phyCORE-OMAP4460:/ gpmc_nand0.eccmode=bch8_hw_romcode
> barebox at Phytec phyCORE-OMAP4460:/ md -s /dev/nand0 0+2112    
> BCH decoding failed
> BCH decoding failed
> BCH decoding failed
> BCH decoding failed
> BCH decoding failed
> BCH decoding failed
> 00000000: 0a320a31 0a340a33 0a360a35 0a380a37                1.2.3.4.5.6.7.8.
> 00000010: 30310a39 0a31310a 310a3231 34310a33                9.10.11.12.13.14
> 00000020: 0a35310a 310a3631 38310a37 0a39310a                .15.16.17.18.19.
> 00000030: 320a3032 32320a31 0a33320a 320a3432                20.21.22.23.24.2
> 00000040: 36320a35 0a37320a 320a3832 30330a39                5.26.27.28.29.30
> 00000050: 0a31330a 330a3233 34330a33 0a35330a                .31.32.33.34.35.
> 00000060: 330a3633 38330a37 0a39330a 340a3034                36.37.38.39.40.4
> 00000070: 32340a31 0a33340a 340a3434 36340a35                1.42.43.44.45.46
> 00000080: 0a37340a 340a3834 30350a39 0a31350a                .47.48.49.50.51.
> 00000090: 350a3235 34350a33 0a35350a 350a3635                52.53.54.55.56.5
> 000000a0: 38350a37 0a39350a 360a3036 32360a31                7.58.59.60.61.62
> 000000b0: 0a33360a 360a3436 36360a35 0a37360a                .63.64.65.66.67.
> 000000c0: 360a3836 30370a39 0a31370a 370a3237                68.69.70.71.72.7
> 000000d0: 34370a33 0a35370a 370a3637 38370a37                3.74.75.76.77.78
> 000000e0: 0a39370a 380a3038 32380a31 0a33380a                .79.80.81.82.83.
> 000000f0: 380a3438 36380a35 0a37380a 380a3838                84.85.86.87.88.8
> 00000100: 30390a39 0a31390a 390a3239 34390a33                9.90.91.92.93.94
> 00000110: 0a35390a 390a3639 38390a37 0a39390a                .95.96.97.98.99.
> 00000120: 0a303031 0a313031 0a323031 0a333031                100.101.102.103.
> 00000130: 0a343031 0a353031 0a363031 0a373031                104.105.106.107.
> 00000140: 0a383031 0a393031 0a303131 0a313131                108.109.110.111.
> 00000150: 0a323131 0a333131 0a343131 0a353131                112.113.114.115.
> 00000160: 0a363131 0a373131 0a383131 0a393131                116.117.118.119.
> 00000170: 0a303231 0a313231 0a323231 0a333231                120.121.122.123.
> 00000180: 0a343231 0a353231 0a363231 0a373231                124.125.126.127.
> 00000190: 0a383231 0a393231 0a303331 0a313331                128.129.130.131.
> 000001a0: 0a323331 0a333331 0a343331 0a353331                132.133.134.135.
> 000001b0: 0a363331 0a373331 0a383331 0a393331                136.137.138.139.
> 000001c0: 0a303431 0a313431 0a323431 0a333431                140.141.142.143.
> 000001d0: 0a343431 0a353431 0a363431 0a373431                144.145.146.147.
> 000001e0: 0a383431 0a393431 0a303531 0a313531                148.149.150.151.
> 000001f0: 0a323531 0a333531 0a343531 0a353531                152.153.154.155.
> 00000200: 0a363531 0a373531 0a383531 0a393531                156.157.158.159.
> 00000210: 0a303631 0a313631 0a323631 0a333631                160.161.162.163.
> 00000220: 0a343631 0a353631 0a363631 0a373631                164.165.166.167.
> 00000230: 0a383631 0a393631 0a303731 0a313731                168.169.170.171.
> 00000240: 0a323731 0a333731 0a343731 0a353731                172.173.174.175.
> 00000250: 0a363731 0a373731 0a383731 0a393731                176.177.178.179.
> 00000260: 0a303831 0a313831 0a323831 0a333831                180.181.182.183.
> 00000270: 0a343831 0a353831 0a363831 0a373831                184.185.186.187.
> 00000280: 0a383831 0a393831 0a303931 0a313931                188.189.190.191.
> 00000290: 0a323931 0a333931 0a343931 0a353931                192.193.194.195.
> 000002a0: 0a363931 0a373931 0a383931 0a393931                196.197.198.199.
> 000002b0: 0a303032 0a313032 0a323032 0a333032                200.201.202.203.
> 000002c0: 0a343032 0a353032 0a363032 0a373032                204.205.206.207.
> 000002d0: 0a383032 0a393032 0a303132 0a313132                208.209.210.211.
> 000002e0: 0a323132 0a333132 0a343132 0a353132                212.213.214.215.
> 000002f0: 0a363132 0a373132 0a383132 0a393132                216.217.218.219.
> 00000300: 0a303232 0a313232 0a323232 0a333232                220.221.222.223.
> 00000310: 0a343232 0a353232 0a363232 0a373232                224.225.226.227.
> 00000320: 0a383232 0a393232 0a303332 0a313332                228.229.230.231.
> 00000330: 0a323332 0a333332 0a343332 0a353332                232.233.234.235.
> 00000340: 0a363332 0a373332 0a383332 0a393332                236.237.238.239.
> 00000350: 0a303432 0a313432 0a323432 0a333432                240.241.242.243.
> 00000360: 0a343432 0a353432 0a363432 0a373432                244.245.246.247.
> 00000370: 0a383432 0a393432 0a303532 0a313532                248.249.250.251.
> 00000380: 0a323532 0a333532 0a343532 0a353532                252.253.254.255.
> 00000390: 0a363532 0a373532 0a383532 0a393532                256.257.258.259.
> 000003a0: 0a303632 0a313632 0a323632 0a333632                260.261.262.263.
> 000003b0: 0a343632 0a353632 0a363632 0a373632                264.265.266.267.
> 000003c0: 0a383632 0a393632 0a303732 0a313732                268.269.270.271.
> 000003d0: 0a323732 0a333732 0a343732 0a353732                272.273.274.275.
> 000003e0: 0a363732 0a373732 0a383732 0a393732                276.277.278.279.
> 000003f0: 0a303832 0a313832 0a323832 0a333832                280.281.282.283.
> 00000400: 0a343832 0a353832 0a363832 0a373832                284.285.286.287.
> 00000410: 0a383832 0a393832 0a303932 0a313932                288.289.290.291.
> 00000420: 0a323932 0a333932 0a343932 0a353932                292.293.294.295.
> 00000430: 0a363932 0a373932 0a383932 0a393932                296.297.298.299.
> 00000440: 0a303033 0a313033 0a323033 0a333033                300.301.302.303.
> 00000450: 0a343033 0a353033 0a363033 0a373033                304.305.306.307.
> 00000460: 0a383033 0a393033 0a303133 0a313133                308.309.310.311.
> 00000470: 0a323133 0a333133 0a343133 0a353133                312.313.314.315.
> 00000480: 0a363133 0a373133 0a383133 0a393133                316.317.318.319.
> 00000490: 0a303233 0a313233 0a323233 0a333233                320.321.322.323.
> 000004a0: 0a343233 0a353233 0a363233 0a373233                324.325.326.327.
> 000004b0: 0a383233 0a393233 0a303333 0a313333                328.329.330.331.
> 000004c0: 0a323333 0a333333 0a343333 0a353333                332.333.334.335.
> 000004d0: 0a363333 0a373333 0a383333 0a393333                336.337.338.339.
> 000004e0: 0a303433 0a313433 0a323433 0a333433                340.341.342.343.
> 000004f0: 0a343433 0a353433 0a363433 0a373433                344.345.346.347.
> 00000500: 0a383433 0a393433 0a303533 0a313533                348.349.350.351.
> 00000510: 0a323533 0a333533 0a343533 0a353533                352.353.354.355.
> 00000520: 0a363533 0a373533 0a383533 0a393533                356.357.358.359.
> 00000530: 0a303633 0a313633 0a323633 0a333633                360.361.362.363.
> 00000540: 0a343633 0a353633 0a363633 0a373633                364.365.366.367.
> 00000550: 0a383633 0a393633 0a303733 0a313733                368.369.370.371.
> 00000560: 0a323733 0a333733 0a343733 0a353733                372.373.374.375.
> 00000570: 0a363733 0a373733 0a383733 0a393733                376.377.378.379.
> 00000580: 0a303833 0a313833 0a323833 0a333833                380.381.382.383.
> 00000590: 0a343833 0a353833 0a363833 0a373833                384.385.386.387.
> 000005a0: 0a383833 0a393833 0a303933 0a313933                388.389.390.391.
> 000005b0: 0a323933 0a333933 0a343933 0a353933                392.393.394.395.
> 000005c0: 0a363933 0a373933 0a383933 0a393933                396.397.398.399.
> 000005d0: 0a303034 0a313034 0a323034 0a333034                400.401.402.403.
> 000005e0: 0a343034 0a353034 0a363034 0a373034                404.405.406.407.
> 000005f0: 0a383034 0a393034 0a303134 0a313134                408.409.410.411.
> 00000600: 0a323134 0a333134 0a343134 0a353134                412.413.414.415.
> 00000610: 0a363134 0a373134 0a383134 0a393134                416.417.418.419.
> 00000620: 0a303234 0a313234 0a323234 0a333234                420.421.422.423.
> 00000630: 0a343234 0a353234 0a363234 0a373234                424.425.426.427.
> 00000640: 0a383234 0a393234 0a303334 0a313334                428.429.430.431.
> 00000650: 0a323334 0a333334 0a343334 0a353334                432.433.434.435.
> 00000660: 0a363334 0a373334 0a383334 0a393334                436.437.438.439.
> 00000670: 0a303434 0a313434 0a323434 0a333434                440.441.442.443.
> 00000680: 0a343434 0a353434 0a363434 0a373434                444.445.446.447.
> 00000690: 0a383434 0a393434 0a303534 0a313534                448.449.450.451.
> 000006a0: 0a323534 0a333534 0a343534 0a353534                452.453.454.455.
> 000006b0: 0a363534 0a373534 0a383534 0a393534                456.457.458.459.
> 000006c0: 0a303634 0a313634 0a323634 0a333634                460.461.462.463.
> 000006d0: 0a343634 0a353634 0a363634 0a373634                464.465.466.467.
> 000006e0: 0a383634 0a393634 0a303734 0a313734                468.469.470.471.
> 000006f0: 0a323734 0a333734 0a343734 0a353734                472.473.474.475.
> 00000700: 0a363734 0a373734 0a383734 0a393734                476.477.478.479.
> 00000710: 0a303834 0a313834 0a323834 0a333834                480.481.482.483.
> 00000720: 0a343834 0a353834 0a363834 0a373834                484.485.486.487.
> 00000730: 0a383834 0a393834 0a303934 0a313934                488.489.490.491.
> 00000740: 0a323934 0a333934 0a343934 0a353934                492.493.494.495.
> 00000750: 0a363934 0a373934 0a383934 0a393934                496.497.498.499.
> 00000760: 0a303035 0a313035 0a323035 0a333035                500.501.502.503.
> 00000770: 0a343035 0a353035 0a363035 0a373035                504.505.506.507.
> 00000780: 0a383035 0a393035 0a303135 0a313135                508.509.510.511.
> 00000790: 0a323135 0a333135 0a343135 0a353135                512.513.514.515.
> 000007a0: 0a363135 0a373135 0a383135 0a393135                516.517.518.519.
> 000007b0: 0a303235 0a313235 0a323235 0a333235                520.521.522.523.
> 000007c0: 0a343235 0a353235 0a363235 0a373235                524.525.526.527.
> 000007d0: 0a383235 0a393235 0a303335 0a313335                528.529.530.531.
> 000007e0: 0a323335 0a333335 0a343335 0a353335                532.533.534.535.
> 000007f0: 0a363335 0a373335 0a383335 0a393335                536.537.538.539.
> 00000800: 0a303435 0a313435 0a323435 0a333435                540.541.542.543.
> 00000810: 0a343435 0a353435 0a363435 0a373435                544.545.546.547.
> 00000820: 0a383435 0a393435 0a303535 0a313535                548.549.550.551.
> 00000830: 0a323535 0a333535 0a343535 0a353535                552.553.554.555.


Because the data looks right(?), despite the error prints, I tried
ubiformat again from barebox, then booted linux from SD, and attached
the ubi nand partition in linux... which worked fine.
All volumes and data were there.

Very confused about what's going wrong here.

--

I have since also tried attaching from barebox again, ignoring all the
errors. It does (after several minutes) finally succeed in attaching,
and recognizes all volumes.

Tibault



More information about the barebox mailing list