Mikrotik rb951ui-2hnd unsupported nand

Hi,

I was using rb951ui-2hnd since 2016 and have flashed with openwrt hundreds of devices. Recently I have received unit with unuspported nand (see image attached).

The error from the dmesg was as follows:

[    4.285397] nand: device found, Manufacturer ID: 0xc8, Chip ID: 0xf1
[    4.291967] nand: ESMT NAND 128MiB 3,3V 8-bit
[    4.296502] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 32
[    4.304367] ------------[ cut here ]------------
[    4.309164] WARNING: CPU: 0 PID: 1 at drivers/mtd/nand/nand_base.c:4716 nand_scan_tail+0x294/0xcf0
[    4.318431] No oob scheme defined for oobsize 32
[    4.323196] Modules linked in:
[    4.326376] CPU: 0 PID: 1 Comm: swapper Not tainted 4.14.193 #0
[    4.332489] Stack : 80550000 80507a6c 00000000 00000000 804da7cc 87c29c34 87c242dc 8052f947
[    4.341148]         804d68b4 00000001 807d37d0 0000126c 80449440 807d0000 87c29be8 628c6ff4
[    4.349810]         00000000 00000000 807d0000 000014d0 00000000 00000000 00000007 00000000
[    4.358464]         0000004b f3ee8b72 0000004a 00000000 00000000 00000009 00000000 804f7b58
[    4.367121]         802cacd4 0000126c 80449440 a7d81000 00000002 8029bd84 00000000 807d0000
[    4.375775]         ...
[    4.378308] Call Trace:
[    4.380849] [<8006c9fc>] show_stack+0x58/0x100
[    4.385465] [<800871b0>] __warn+0xe4/0x13c
[    4.389696] [<80087238>] warn_slowpath_fmt+0x30/0x3c
[    4.394840] [<802cacd4>] nand_scan_tail+0x294/0xcf0
[    4.399891] [<802d127c>] ar934x_nfc_probe+0x6c4/0x898
[    4.405148] [<802abb14>] platform_drv_probe+0x2c/0x70
[    4.410367] [<802aa040>] really_probe+0x138/0x2a8
[    4.415249] [<802aa254>] __driver_attach+0xa4/0xdc
[    4.420204] [<802a8274>] bus_for_each_dev+0x5c/0xbc
[    4.425263] [<802a95ac>] bus_add_driver+0xf4/0x214
[    4.430213] [<802aaad0>] driver_register+0xac/0xfc
[    4.435184] [<80060a50>] do_one_initcall+0xd0/0x1a0
[    4.440244] [<80552d38>] kernel_init_freeable+0x150/0x210
[    4.445838] [<8043ed40>] kernel_init+0x10/0x104
[    4.450538] [<800674b8>] ret_from_kernel_thread+0x14/0x1c
[    4.456143] ---[ end trace 09368123881aea93 ]---
[    4.460924] ar934x-nfc ar934x-nfc: scan tail failed, err:-22
[    4.466820] ar934x-nfc: probe of ar934x-nfc failed with error -22

I have found the documentation for the nand chip:
https://www.gigadevice.com/flash-memory/gd9fu1g8f3a/

And it seems that the OOB size is not recognised (in doc it is 64, it was recognised as 32).

I have then tries adding the device definition to the drivers/mtd/nand/nand_ids.c (values filled by me based on the doc linked above - may contain errors):

{
                .name = "GD9FU1G8F3A 1G 3.3V 8-bit",

                {{
                        .mfr_id = 0xc8,
                        .dev_id = 0xf1
                }},

                .pagesize = SZ_2K,
                .chipsize = 128,
                .erasesize = SZ_128K,
                .options = 0,

                .id_len = 2,
                .oobsize = 64,

                .ecc.strength_ds = 4,
                .ecc.step_ds = 512
        },

Then the error changed to:

[    4.292721] nand: device found, Manufacturer ID: 0xc8, Chip ID: 0xf1
[    4.299330] nand: GigaDevice GD9FU1G8F3A 1G 3.3V 8-bit
[    4.304655] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    4.318541] nand: WARNING: ar934x-nfc: the ECC used on your system is too weak compared to the one required by the NAND chip
[    4.330136] Scanning device for bad blocks
[    4.337188] Bad eraseblock 53 at 0x0000006a0000
[    4.342803] Bad eraseblock 71 at 0x0000008e0000
[    4.347765] Bad eraseblock 76 at 0x000000980000
[    4.353946] Bad eraseblock 105 at 0x000000d20000
[    4.428708] Creating 3 MTD partitions on "ar934x-nfc":
[    4.434040] 0x000000000000-0x000000040000 : "booter"
[    4.463026] 0x000000040000-0x000000400000 : "kernel"
[    4.492007] 0x000000400000-0x000008000000 : "ubi"

Can you help me in supporting this hardware?

1 Like

Hmm, the /r2 looks to me like a revision 2 so there could be some other changes too (but i have no older device to confirm that)

I have older devices (both /r2 and not /r2) which has different nand chips (toshibas, samsungs, and other) which work perfectly fine.

1 Like

Hi,

I have the same issue. Is there anyone with an idea?

Missing support for the gigadevice flash chip is a serious problem.
Is someone working on adding support? I'm willing to work on it, but I don't know where to start adding support for this flash chip.
So when there is someone that can point me in the right direction that would be great.

Using instruction of tpawlowski_ha, i build a patched bin and elf.
if you want, you can download here:
ELF
BIN

it work correctly, but some package OPKG say is not compatible because the sign of the packet.
must install with force option

Update to version 19.07.10 of patched firmware for ALL new NAND:

ELF - TFTP BOOT FILE

BIN - SYSUPGRADE FILE

1 Like

Hi
The link you provided for the instruction is not available , can you post it here please?

I don't know which link you are referring,
But I think the links for the RB951G-2HnD should help you to build an image yourself:

The RB951G is not the RB951ui:

You are right, they are not the same devices (that is the reason for different model numbers I guess), but that isn't saying that they both where facing the same issue with unsupported nand. The links I've posted are describing how the issue was solved for the RB951-G and the same approach can work for the RB951-Ui