bcm63xx kernel 5.10
Hauke Mehrtens
hauke at hauke-m.de
Fri Feb 4 10:47:45 PST 2022
On 2/4/22 19:23, Florian Fainelli wrote:
>
>
> On 2/4/2022 9:28 AM, Daniel González Cabanelas wrote:
>> Hi Hauke:
>>
>> El vie, 4 feb 2022 a las 0:48, Hauke Mehrtens (<hauke at hauke-m.de>)
>> escribió:
>>>
>>> Hi,
>>>
>>> We would like to switch the bcm63xx target to kernel 5.10. Paul created
>>> a pull request for that:
>>> https://github.com/openwrt/openwrt/pull/4616
>>>
>>> There is still a problem with Macronix NAND flash chips, see the
>>> comments from the pull request.
>>>
>>> Could someone please have a look into this problem.
>>>
>>> Does this change in the upstream kernel help?
>>> https://github.com/torvalds/linux/commit/22ca05b82d3e3abc2b116a11ee41b6b692b95530
>>>
>>>
>> The patch together with:
>> https://github.com/torvalds/linux/commit/a071912636cc3420f54e2a6312c1625ac763cf03
>>
>>
>> They both apply cleanly without changes in current Openwrt, kernel
>> testing 5.10, But the kernel still fails to load, caused by
>> macronix_nand_block_protection_support .
>
> Is there a log available somewhere that shows the boot failure with
> 5.10? Have you been able to run a bisection somehow?
>
> None of those patches should be relevant as the DSL SoCs do not use EDU,
> they use PIO. Now about this one:
>
> lists.infradead.org/pipermail/linux-mtd/2022-January/091107.html
Hi Florian,
The details are in this pull request:
https://github.com/openwrt/openwrt/pull/4616
We see this error:
-------------------------------
[ 0.789569] printk: bootconsole [early0] disabled
[ 0.789569] printk: bootconsole [early0] disabled
[ 0.812291] bcm6368_nand 10000200.nand: there is not valid maps for
state default
[ 0.823019] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xf1
[ 0.829592] nand: Macronix MX30LF1G18AC
[ 0.833525] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048,
OOB size: 64
[ 0.841306] bcm6368_nand 10000200.nand: detected 128MiB total, 128KiB
blocks, 2KiB pages, 16B OOB, 8-bit, BCH-4
[ 0.857758] Bad block table not found for chip 0
[ 0.867999] Bad block table not found for chip 0
[ 0.872690] Scanning device for bad blocks
[ 0.909739] CPU 0 Unable to handle kernel paging request at virtual
address 0040000c, epc == 80064e4c, ra == 80066e30
[ 0.920631] Oops[#1]:
[ 0.922965] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.87 #0
[ 0.929136] $ 0 : 00000000 00000001 00400000 00000002
[ 0.934511] $ 4 : 81438080 8140be2c 00000000 81408300
[ 0.939887] $ 8 : 8140a000 00001ff0 00000001 8114af80
[ 0.945263] $12 : 00000400 8143bc80 8143bc80 00000000
[ 0.950638] $16 : 80ee1f40 00000003 81438080 807b460c
[ 0.956014] $20 : 00000002 807a9880 806e9670 806e9648
[ 0.961392] $24 : 00000002 806549f8
[ 0.966767] $28 : 807a2000 8140bde0 80820000 80066e30
[ 0.972143] Hi : 00000008
[ 0.975101] Lo : cccccccf
[ 0.978082] epc : 80064e4c __task_rq_lock+0x38/0xc0
[ 0.983266] ra : 80066e30 try_to_wake_up+0xb4/0x5a4
[ 0.988541] Status: 10008f02 KERNEL EXL
[ 0.992574] Cause : 00800008 (ExcCode 02)
[ 0.996695] BadVA : 0040000c
[ 0.999652] PrId : 0002a080 (Broadcom BMIPS4350)
[ 1.004488] Modules linked in:
[ 1.007633] Process swapper/0 (pid: 0, threadinfo=(ptrval),
task=(ptrval), tls=00000000)
[ 1.015957] Stack : 81438000 00000003 00000000 81438000 81438080
00000003 00000000 10008f00
[ 1.024567] 8143852c 80066e30 00000400 0000002e 00000329
00000000 00000000 00000001
[ 1.033178] 00000001 00000000 00000000 00000000 81422180
82368cc4 10008f00 8140bf0c
[ 1.041789] 0000003a 807a9880 806e9670 806e9648 80820000
80080920 80ee1f40 00000000
[ 1.050400] 80ee1f40 82368cc0 82368cc0 80080d90 81421a00
00000000 00000000 00000000
[ 1.059010] ...
[ 1.061520] Call Trace:
[ 1.064038] [<80064e4c>] __task_rq_lock+0x38/0xc0
[ 1.068881] [<80066e30>] try_to_wake_up+0xb4/0x5a4
[ 1.073831] [<80080920>] swake_up_locked+0x28/0x58
[ 1.078734] [<80080d90>] complete+0x44/0x64
[ 1.083065] [<8043b450>] brcmnand_irq+0xa4/0xac
[ 1.087719] [<80090a3c>] __handle_irq_event_percpu+0x70/0x1b8
[ 1.093607] [<80090c4c>] handle_irq_event+0x50/0xe8
[ 1.098624] [<80094fbc>] handle_level_irq+0xf0/0x1fc
[ 1.103732] [<80090118>] generic_handle_irq+0x44/0x5c
[ 1.108946] [<80396b10>] bcm6345_periph_irq_handle+0x110/0x1c0
[ 1.114932] [<80090118>] generic_handle_irq+0x44/0x5c
[ 1.120152] [<8065521c>] do_IRQ+0x1c/0x2c
[ 1.124254] [<80396fc4>] plat_irq_dispatch+0x60/0xd0
[ 1.129371] [<80015bf0>] handle_int+0x150/0x15c
[ 1.134015] [<80015a60>] __r4k_wait+0x20/0x40
[ 1.138492]
[ 1.140008] Code: 24140002 26101f40 8e420004 <8c42000c> 00021080
02621021 8c510000 02118821 0c19540e
[ 1.150070]
[ 1.151660] ---[ end trace 625caeee62f8fa21 ]---
[ 1.156366] Kernel panic - not syncing: Fatal exception in interrupt
[ 1.162890] ------------[ cut here ]------------
[ 1.167651] WARNING: CPU: 0 PID: 0 at kernel/smp.c:633
smp_call_function_many_cond+0x438/0x454
[ 1.176503] Modules linked in:
[ 1.179651] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G D
5.10.87 #0
[ 1.187256] Stack : 10008f00 00000000 80820000 8008d84c 80830000
80725d5c 00000000 00000000
[ 1.195864] 8140bb24 80ff0000 806f4060 807b74f8 807b6fe7
10008f00 8140bac8 5f0039dd
[ 1.204474] 00000000 00000000 806f4060 8140b960 00000000
00000000 ffffefff ffffffea
[ 1.213086] 0000008a 8140b96c 0000008a 807c0818 00000000
10008f00 00000000 806f0000
[ 1.221696] 00000009 807b7100 00000000 00000000 00000678
00000000 00000000 80ff0000
[ 1.230306] ...
[ 1.232817] Call Trace:
[ 1.235353] [<8001a210>] show_stack+0x30/0x100
[ 1.239907] [<803794b8>] dump_stack+0xa8/0xd8
[ 1.244407] [<8003aaa4>] __warn+0xc0/0x12c
[ 1.248599] [<8003ab6c>] warn_slowpath_fmt+0x5c/0xac
[ 1.253704] [<800c3edc>] smp_call_function_many_cond+0x438/0x454
[ 1.259885] [<800c3f3c>] smp_call_function+0x24/0x30
[ 1.264996] [<8003a510>] panic+0x114/0x31c
[ 1.269206] [<8001a4cc>] die+0x124/0x130
[ 1.273257] [<800257a0>] do_page_fault+0x534/0x544
[ 1.278172] [<8002a674>] tlb_do_page_fault_0+0x124/0x12c
[ 1.283638] [<80066e30>] try_to_wake_up+0xb4/0x5a4
[ 1.288549]
[ 1.290076] ---[ end trace 625caeee62f8fa22 ]---
[ 1.294823] ------------[ cut here ]------------
[ 1.299582] WARNING: CPU: 0 PID: 0 at kernel/smp.c:498
smp_call_function_single+0x1f4/0x1fc
[ 1.308170] Modules linked in:
[ 1.311315] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G D W
5.10.87 #0
[ 1.318921] Stack : 10008f00 00000001 80820000 8008d84c 80830000
80725d5c 00000000 00000000
[ 1.327532] 8140bb34 80ff0000 806f4060 807b74f8 807b6fe7
10008f00 8140bad8 5f0039dd
[ 1.336142] 00000000 00000000 806f4060 8140b970 00000000
00000000 ffffefff ffffffea
[ 1.344753] 000000a2 8140b97c 000000a2 807c0818 00000000
10008f00 00000000 806f0000
[ 1.353363] 00000009 807b7100 00000000 00000001 00000798
00000000 00000000 80ff0000
[ 1.361974] ...
[ 1.364482] Call Trace:
[ 1.367003] [<8001a210>] show_stack+0x30/0x100
[ 1.371573] [<803794b8>] dump_stack+0xa8/0xd8
[ 1.376056] [<8003aaa4>] __warn+0xc0/0x12c
[ 1.380265] [<8003ab6c>] warn_slowpath_fmt+0x5c/0xac
[ 1.385373] [<800c3924>] smp_call_function_single+0x1f4/0x1fc
[ 1.391284] [<800c3f3c>] smp_call_function+0x24/0x30
[ 1.396394] [<8003a510>] panic+0x114/0x31c
[ 1.400604] [<8001a4cc>] die+0x124/0x130
[ 1.404637] [<800257a0>] do_page_fault+0x534/0x544
[ 1.409566] [<8002a674>] tlb_do_page_fault_0+0x124/0x12c
[ 1.415029] [<80066e30>] try_to_wake_up+0xb4/0x5a4
[ 1.419948]
[ 1.421472] ---[ end trace 625caeee62f8fa23 ]---
[ 1.426235] Rebooting in 1 seconds..
�HELO2.425330] triggering watchdog soft-reset...
CPUI
L1CI
-------------------------------
When we apply this change it starts to work again. This was added
between 5.4 and 5.10.
-------------------------------
--- a/drivers/mtd/nand/raw/nand_macronix.c
+++ b/drivers/mtd/nand/raw/nand_macronix.c
@@ -323,7 +323,7 @@
macronix_nand_fix_broken_get_timings(chip);
macronix_nand_onfi_init(chip);
- macronix_nand_block_protection_support(chip);
+ //macronix_nand_block_protection_support(chip);
macronix_nand_deep_power_down_support(chip);
return 0;
-------------------------------
Hauke
More information about the openwrt-devel
mailing list