El vie, 4 feb 2022 a las 23:02, Florian Fainelli (<f.faine...@gmail.com>) escribió: > > > > On 2/4/2022 11:21 AM, Álvaro Fernández Rojas wrote: > > So the problem is that SET_FEATURES and GET_FEATURES isn’t supported by > > versions 2.1, 2.2 and 4.0 of the nand controller, which are the ones > > present on bcm63xx, right? > > Yes, I suspect this is the problem since I do not see CMD_LOW_LEVEL_OP > being defined in the register database for the controllers v2.1 and > v2.2, v3.3. Staring with v4.0, the controllers do have the > CMD_LOW_LEVEL_OP. This is the version/feature table that I could > programmatically compile: > > version: 0.1, ll: no > version: 1.0, ll: no > version: 2.0, ll: no > version: 2.1, ll: no > version: 2.2, ll: no > version: 3.0, ll: no > version: 3.2, ll: no > version: 3.3, ll: no > version: 3.4, ll: no > version: 4.0, ll: yes > version: 5.0, ll: yes > version: 6.0, ll: yes > version: 6.2, ll: yes > version: 7.0, ll: yes > version: 7.1, ll: yes > version: 7.2, ll: yes > version: 7.3, ll: yes > > How about this patch, does it work better? > > diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c > b/drivers/mtd/nand/raw/brcmnand/brcmnand.c > index f75929783b94..06ac593beec0 100644 > --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c > +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c > @@ -1727,6 +1727,8 @@ static void brcmnand_cmdfunc(struct nand_chip > *chip, unsigned command, > break; > case NAND_CMD_SET_FEATURES: > case NAND_CMD_GET_FEATURES: > + if (ctrl->nand_version < 0x0400) > + break; > brcmnand_low_level_op(host, LL_OP_CMD, command, false); > brcmnand_low_level_op(host, LL_OP_ADDR, column, false); > break; > > -- > Florian
No, it didn't help: [ 0.839567] bcm6368_nand 10000200.nand: there is not valid maps for state default [ 0.849936] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xf1 [ 0.856533] nand: Macronix MX30LF1G18AC [ 0.860422] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 [ 0.868285] bcm6368_nand 10000200.nand: detected 128MiB total, 128KiB blocks, 2KiB pages, 16B OOB, 8-bit, BCH-4 [ 0.884673] Bad block table not found for chip 0 [ 0.895132] Bad block table not found for chip 0 [ 0.899833] Scanning device for bad blocks [ 0.937390] CPU 0 Unable to handle kernel paging request at virtual address 0040000c, epc == 80064ff0, ra == 80066fd4 [ 0.948283] Oops[#1]: [ 0.950617] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.96 #0 [ 0.956788] $ 0 : 00000000 00000001 00400000 00000002 [ 0.962164] $ 4 : 81438080 8140be2c 00000000 81408300 [ 0.967539] $ 8 : 8140a000 00001ff0 00000001 8125af80 [ 0.972915] $12 : 00000400 8143b680 8143b680 00000000 [ 0.978291] $16 : 80ff0f40 00000003 81438080 807b660c [ 0.983668] $20 : 00000002 807ab880 806eb8a0 806eb878 [ 0.989043] $24 : 00000002 80656b28 [ 0.994420] $28 : 807a4000 8140bde0 80820000 80066fd4 [ 0.999796] Hi : 0000000a [ 1.002753] Lo : 66666669 [ 1.005734] epc : 80064ff0 __task_rq_lock+0x38/0xc0 [ 1.010919] ra : 80066fd4 try_to_wake_up+0xb4/0x5a4 [ 1.016193] Status: 10008f02 KERNEL EXL [ 1.020226] Cause : 00800008 (ExcCode 02) [ 1.024347] BadVA : 0040000c [ 1.027306] PrId : 0002a080 (Broadcom BMIPS4350) [ 1.032141] Modules linked in: [ 1.035285] Process swapper/0 (pid: 0, threadinfo=(ptrval), task=(ptrval), tls=00000000) [ 1.043609] Stack : 81438000 00000003 00000000 81438000 81438080 00000003 00000000 10008f00 [ 1.052220] 8143852c 80066fd4 00000400 00000014 00000246 00000000 00000000 00000001 [ 1.060821] 00000001 00000000 00000000 00000000 81422180 8248ccc4 10008f00 8140bf0c [ 1.069423] 0000003a 807ab880 806eb8a0 806eb878 80820000 80080cec 8143c0ac 00000000 [ 1.078034] 00000000 8248ccc0 8248ccc0 8008115c 81421a00 00000000 00000000 00000000 [ 1.086644] ... [ 1.089154] Call Trace: [ 1.091673] [<80064ff0>] __task_rq_lock+0x38/0xc0 [ 1.096515] [<80066fd4>] try_to_wake_up+0xb4/0x5a4 [ 1.101465] [<80080cec>] swake_up_locked+0x28/0x58 [ 1.106370] [<8008115c>] complete+0x44/0x64 [ 1.110700] [<8043b910>] brcmnand_irq+0xa4/0xac [ 1.115354] [<80090e08>] __handle_irq_event_percpu+0x70/0x1b8 [ 1.121241] [<80091018>] handle_irq_event+0x50/0xe8 [ 1.126258] [<80095388>] handle_level_irq+0xf0/0x1fc [ 1.131366] [<800904e4>] generic_handle_irq+0x44/0x5c [ 1.136581] [<80396ed0>] bcm6345_periph_irq_handle+0x110/0x1c0 [ 1.142567] [<800904e4>] generic_handle_irq+0x44/0x5c [ 1.147791] [<8065734c>] do_IRQ+0x1c/0x2c [ 1.151888] [<80397384>] plat_irq_dispatch+0x60/0xd0 [ 1.157006] [<80015c10>] handle_int+0x150/0x15c [ 1.161650] [<80015a80>] __r4k_wait+0x20/0x40 [ 1.166126] [ 1.167642] Code: 24140002 26100f40 8e420004 <8c42000c> 00021080 02621021 8c510000 02118821 0c195c5a [ 1.177703] [ 1.179295] ---[ end trace 95cf16981dbab9fd ]--- [ 1.184006] Kernel panic - not syncing: Fatal exception in interrupt [ 1.190524] ------------[ cut here ]------------ [ 1.195285] WARNING: CPU: 0 PID: 0 at kernel/smp.c:633 smp_call_function_many_cond+0x438/0x454 [ 1.204136] Modules linked in: [ 1.207285] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G D 5.10.96 #0 [ 1.214890] Stack : 10008f00 00000000 80820000 8008dc18 80830000 80727f5c 00000000 00000000 [ 1.223499] 8140bb24 81100000 806f6250 807b94f8 807b8fe7 10008f00 8140bac8 a4e9c2ab [ 1.232109] 00000000 00000000 806f6250 8140b960 00000000 00000000 ffffefff ffffffea [ 1.240710] 0000008a 8140b96c 0000008a 807c2818 00000000 10008f00 00000000 806f0000 [ 1.249312] 00000009 807b9100 00000000 00000000 00000678 00000000 00000000 81100000 [ 1.257914] ... [ 1.260424] Call Trace: [ 1.262962] [<8001a230>] show_stack+0x30/0x100 [ 1.267516] [<80379878>] dump_stack+0xa8/0xd8 [ 1.272015] [<8003aac4>] __warn+0xc0/0x12c [ 1.276206] [<8003ab8c>] warn_slowpath_fmt+0x5c/0xac [ 1.281312] [<800c4344>] smp_call_function_many_cond+0x438/0x454 [ 1.287493] [<800c43a4>] smp_call_function+0x24/0x30 [ 1.292601] [<8003a530>] panic+0x114/0x31c [ 1.296814] [<8001a4ec>] die+0x124/0x130 [ 1.300862] [<800257c0>] do_page_fault+0x534/0x544 [ 1.305778] [<8002a694>] tlb_do_page_fault_0+0x124/0x12c [ 1.311244] [<80066fd4>] try_to_wake_up+0xb4/0x5a4 [ 1.316157] [ 1.317681] ---[ end trace 95cf16981dbab9fe ]--- [ 1.322430] ------------[ cut here ]------------ [ 1.327189] WARNING: CPU: 0 PID: 0 at kernel/smp.c:498 smp_call_function_single+0x1f4/0x1fc [ 1.335777] Modules linked in: [ 1.338923] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G D W 5.10.96 #0 [ 1.346529] Stack : 10008f00 00000001 80820000 8008dc18 80830000 80727f5c 00000000 00000000 [ 1.355140] 8140bb34 81100000 806f6250 807b94f8 807b8fe7 10008f00 8140bad8 a4e9c2ab [ 1.363750] 00000000 00000000 806f6250 8140b970 00000000 00000000 ffffefff ffffffea [ 1.372360] 000000a2 8140b97c 000000a2 807c2818 00000000 10008f00 00000000 806f0000 [ 1.380971] 00000009 807b9100 00000000 00000001 00000798 00000000 00000000 81100000 [ 1.389573] ... [ 1.392081] Call Trace: [ 1.394602] [<8001a230>] show_stack+0x30/0x100 [ 1.399171] [<80379878>] dump_stack+0xa8/0xd8 [ 1.403655] [<8003aac4>] __warn+0xc0/0x12c [ 1.407864] [<8003ab8c>] warn_slowpath_fmt+0x5c/0xac [ 1.412972] [<800c3d8c>] smp_call_function_single+0x1f4/0x1fc [ 1.418883] [<800c43a4>] smp_call_function+0x24/0x30 [ 1.423990] [<8003a530>] panic+0x114/0x31c [ 1.428203] [<8001a4ec>] die+0x124/0x130 [ 1.432235] [<800257c0>] do_page_fault+0x534/0x544 [ 1.437163] [<8002a694>] tlb_do_page_fault_0+0x124/0x12c [ 1.442629] [<80066fd4>] try_to_wake_up+0xb4/0x5a4 [ 1.447545] [ 1.449070] ---[ end trace 95cf16981dbab9ff ]--- [ 1.453833] Rebooting in 1 seconds.. [ 2.452929] triggering watchdog soft-reset...<0xff>HELO _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel