* I-pipe ARM64 on Armv8 NXP LS1028A
@ 2021-07-11 16:37 Joe Lee
2021-07-12 3:50 ` chensong_2000
0 siblings, 1 reply; 3+ messages in thread
From: Joe Lee @ 2021-07-11 16:37 UTC (permalink / raw)
To: xenomai
Hi Pals,
I applied the ipipe-core-5.4.119-arm64-2.patch on an NXP LS1028A, a
64-bit Armv8 processor.
But then there are two problems, could anyone give me some advice ?
1. Warning "not pipeline-safe" when booting like below:
[ 0.053295] ASID allocator initialised with 32768 entries
[ 0.058807] rcu: Hierarchical SRCU implementation.
[ 0.063764] ------------[ cut here ]------------
[ 0.068435] MSI domain irqchip ITS-pMSI is not pipeline-safe!
[ 0.068459] WARNING: CPU: 0 PID: 1 at
/home/joe/nxp/linux/kernel/irq/msi.c:273 msi_create_irq_dom0
[ 0.092331] Modules linked in:
[ 0.095409] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.119-dirty #1
[ 0.101994] Hardware name: LS1028A RDB Board (DT)
[ 0.106735] I-pipe domain: Linux
[ 0.109986] pstate: 60000005 (nZCv daif -PAN -UAO)
[ 0.114817] pc : msi_create_irq_domain+0x184/0x190
[ 0.119648] lr : msi_create_irq_domain+0x184/0x190
[ 0.124477] sp : ffff80001002bca0
[ 0.127815] x29: ffff80001002bca0 x28: 0000000000000000
[ 0.133173] x27: 0000000000000000 x26: ffff00007ba0cb90
[ 0.138530] x25: ffff80001132c928 x24: ffff000079014100
[ 0.143887] x23: ffff00007ba0cb08 x22: ffff800011749000
[ 0.149243] x21: ffff80001177e320 x20: ffff000079014100
[ 0.154600] x19: ffff80001177e2a0 x18: ffffffffffffffff
[ 0.159957] x17: 0000000068278711 x16: 000000009d48fe30
[ 0.165314] x15: ffff800011749908 x14: 0000000000000000
[ 0.170670] x13: 0000000000000001 x12: 0000000000000000
[ 0.176027] x11: 0000000000000001 x10: ffff80001183f090
[ 0.181384] x9 : ffff80001002bca0 x8 : 656661732d656e69
[ 0.186741] x7 : 6c6570697020746f x6 : ffff80001183f0d1
[ 0.192098] x5 : 0000000000000000 x4 : 0000000000000000
[ 0.197455] x3 : ffff000079bcee18 x2 : 0000000000000000
[ 0.202811] x1 : 741db99c0414c500 x0 : 0000000000000000
[ 0.208168] Call trace:
[ 0.210631] msi_create_irq_domain+0x184/0x190
[ 0.215114] platform_msi_create_irq_domain+0x1c/0x130
[ 0.220297] its_pmsi_init+0xe0/0x154
[ 0.223988] do_one_initcall+0x5c/0x1a8
[ 0.227855] kernel_init_freeable+0xd0/0x240
[ 0.232161] kernel_init+0x10/0x108
[ 0.235675] ret_from_fork+0x10/0x1c
[ 0.239278] ---[ end trace d5b95d1adba5cfc9 ]---
[ 0.243957] Platform MSI: gic-its@6020000 domain created
[ 0.249368] PCI/MSI: /interrupt-controller@6000000/gic-its@6020000
domain created
[ 0.256949] fsl-mc MSI:
/interrupt-controller@6000000/gic-its@6020000 domain created
2. When the ethernet link up, kernel will crash like below.
[ 4625.779805] Unable to handle kernel NULL pointer dereference at
virtual address 0000000000000000
[ 4625.788622] Mem abort info:
[ 4625.791418] ESR = 0x86000004
[ 4625.794476] EC = 0x21: IABT (current EL), IL = 32 bits
[ 4625.799801] SET = 0, FnV = 0
[ 4625.802857] EA = 0, S1PTW = 0
[ 4625.806003] user pgtable: 4k pages, 48-bit VAs, pgdp=00000000f693a000
[ 4625.812461] [0000000000000000] pgd=0000000000000000
[ 4625.817352] Internal error: Oops: 86000004 [#1] PREEMPT SMP
[ 4625.822938] Modules linked in: xt_addrtype xt_conntrack
crct10dif_ce galcore(O)
[ 4625.830277] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W O
5.4.119-dirty #1
[ 4625.838218] Hardware name: LS1028A RDB Board (DT)
[ 4625.842932] I-pipe domain: Linux
[ 4625.846164] pstate: 40000085 (nZcv daIf -PAN -UAO)
[ 4625.850967] pc : 0x0
[ 4625.853157] lr : __ipipe_ack_fasteoi_irq+0x1c/0x28
[ 4625.857957] sp : ffff800010003f60
[ 4625.861277] x29: ffff800010003f60 x28: ffff8000117521c0
[ 4625.866603] x27: 0000000000000000 x26: ffff800010004000
[ 4625.871929] x25: ffff800010000000 x24: ffff80001183a000
[ 4625.877255] x23: 0000000000000000 x22: ffff800011767000
[ 4625.882581] x21: 000000000000006d x20: 0000000000000000
[ 4625.887906] x19: 000000000000006d x18: 0000000000000000
[ 4625.893232] x17: 0000000000000000 x16: 0000000000000000
[ 4625.898557] x15: 0000000000000000 x14: 0000000000000000
[ 4625.903883] x13: 0000000000000001 x12: 0000000000000000
[ 4625.909208] x11: 0000000000000000 x10: 0000000000000040
[ 4625.914534] x9 : ffff800011760b50 x8 : ffff800011760b48
[ 4625.919859] x7 : ffff000078c0f190 x6 : 0000000000000000
[ 4625.925185] x5 : ffff000078c0f000 x4 : 0000000000000000
[ 4625.930510] x3 : ffff800011885580 x2 : 0000000000001b80
[ 4625.935835] x1 : 0000000000000000 x0 : ffff000078275e28
[ 4625.941161] Call trace:
[ 4625.943610] 0x0
[ 4625.945450] __ipipe_dispatch_irq+0x174/0x1c0
[ 4625.949816] __ipipe_grab_irq+0x5c/0x98
[ 4625.953660] gic_handle_irq+0x5c/0xe4
[ 4625.957329] handle_arch_irq_pipelined+0x14/0x60
[ 4625.961957] el1_irq+0xc8/0x174
[ 4625.965103] ipipe_unstall_root+0x34/0x50
[ 4625.969122] arch_cpu_idle+0x14/0x20
[ 4625.972704] default_idle_call+0x3c/0x44
[ 4625.976635] do_idle+0xc0/0x150
[ 4625.979781] cpu_startup_entry+0x20/0x48
[ 4625.983712] rest_init+0xd4/0xe0
[ 4625.986946] arch_call_rest_init+0xc/0x14
[ 4625.990963] start_kernel+0x404/0x438
[ 4625.994634] Code: bad PC value
[ 4625.997697] ---[ end trace d5b95d1adba5cfcc ]---
[ 4626.002326] Kernel panic - not syncing: Attempted to kill the idle task!
[ 4626.009046] SMP: stopping secondary CPUs
[ 4626.012979] Kernel Offset: disabled
[ 4626.016474] CPU features: 0x0002,21006008
[ 4626.020489] Memory Limit: none
[ 4626.023552] ---[ end Kernel panic - not syncing: Attempted to kill
the idle task! ]---
Attached my kernel config.
--
Joe Lee
-------------- next part --------------
A non-text attachment was scrubbed...
Name: config-5.4.119-dirty
Type: application/octet-stream
Size: 184787 bytes
Desc: not available
URL: <http://xenomai.org/pipermail/xenomai/attachments/20210712/6443ffb8/attachment.obj>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: I-pipe ARM64 on Armv8 NXP LS1028A
2021-07-11 16:37 I-pipe ARM64 on Armv8 NXP LS1028A Joe Lee
@ 2021-07-12 3:50 ` chensong_2000
2021-07-12 4:26 ` Greg Gallagher
0 siblings, 1 reply; 3+ messages in thread
From: chensong_2000 @ 2021-07-12 3:50 UTC (permalink / raw)
To: Joe Lee, xenomai
i had similar experience, below is my fix.
在 2021/7/12 上午12:37, Joe Lee via Xenomai 写道:
> Hi Pals,
>
> I applied the ipipe-core-5.4.119-arm64-2.patch on an NXP LS1028A, a
> 64-bit Armv8 processor.
>
> But then there are two problems, could anyone give me some advice ?
>
> 1. Warning "not pipeline-safe" when booting like below:
>
> [ 0.053295] ASID allocator initialised with 32768 entries
> [ 0.058807] rcu: Hierarchical SRCU implementation.
> [ 0.063764] ------------[ cut here ]------------
> [ 0.068435] MSI domain irqchip ITS-pMSI is not pipeline-safe!
> [ 0.068459] WARNING: CPU: 0 PID: 1 at
> /home/joe/nxp/linux/kernel/irq/msi.c:273 msi_create_irq_dom0
> [ 0.092331] Modules linked in:
> [ 0.095409] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.119-dirty #1
> [ 0.101994] Hardware name: LS1028A RDB Board (DT)
> [ 0.106735] I-pipe domain: Linux
> [ 0.109986] pstate: 60000005 (nZCv daif -PAN -UAO)
> [ 0.114817] pc : msi_create_irq_domain+0x184/0x190
> [ 0.119648] lr : msi_create_irq_domain+0x184/0x190
> [ 0.124477] sp : ffff80001002bca0
> [ 0.127815] x29: ffff80001002bca0 x28: 0000000000000000
> [ 0.133173] x27: 0000000000000000 x26: ffff00007ba0cb90
> [ 0.138530] x25: ffff80001132c928 x24: ffff000079014100
> [ 0.143887] x23: ffff00007ba0cb08 x22: ffff800011749000
> [ 0.149243] x21: ffff80001177e320 x20: ffff000079014100
> [ 0.154600] x19: ffff80001177e2a0 x18: ffffffffffffffff
> [ 0.159957] x17: 0000000068278711 x16: 000000009d48fe30
> [ 0.165314] x15: ffff800011749908 x14: 0000000000000000
> [ 0.170670] x13: 0000000000000001 x12: 0000000000000000
> [ 0.176027] x11: 0000000000000001 x10: ffff80001183f090
> [ 0.181384] x9 : ffff80001002bca0 x8 : 656661732d656e69
> [ 0.186741] x7 : 6c6570697020746f x6 : ffff80001183f0d1
> [ 0.192098] x5 : 0000000000000000 x4 : 0000000000000000
> [ 0.197455] x3 : ffff000079bcee18 x2 : 0000000000000000
> [ 0.202811] x1 : 741db99c0414c500 x0 : 0000000000000000
> [ 0.208168] Call trace:
> [ 0.210631] msi_create_irq_domain+0x184/0x190
> [ 0.215114] platform_msi_create_irq_domain+0x1c/0x130
> [ 0.220297] its_pmsi_init+0xe0/0x154
> [ 0.223988] do_one_initcall+0x5c/0x1a8
> [ 0.227855] kernel_init_freeable+0xd0/0x240
> [ 0.232161] kernel_init+0x10/0x108
> [ 0.235675] ret_from_fork+0x10/0x1c
> [ 0.239278] ---[ end trace d5b95d1adba5cfc9 ]---
> [ 0.243957] Platform MSI: gic-its@6020000 domain created
> [ 0.249368] PCI/MSI: /interrupt-controller@6000000/gic-its@6020000
> domain created
> [ 0.256949] fsl-mc MSI:
> /interrupt-controller@6000000/gic-its@6020000 domain created
--- a/drivers/pci/controller/pcie-brcmstb.c
+++ b/drivers/pci/controller/pcie-brcmstb.c
@@ -914,6 +914,7 @@ static struct irq_chip brcm_msi_irq_chip = {
.name = "Brcm_MSI",
.irq_mask = pci_msi_mask_irq,
.irq_unmask = pci_msi_unmask_irq,
+ .flags = IRQCHIP_PIPELINE_SAFE,
};
i'm not sure if it's identical to yours, but "flags =
IRQCHIP_PIPELINE_SAFE" would be applicable to your case.
>
> 2. When the ethernet link up, kernel will crash like below.
>
> [ 4625.779805] Unable to handle kernel NULL pointer dereference at
> virtual address 0000000000000000
> [ 4625.788622] Mem abort info:
> [ 4625.791418] ESR = 0x86000004
> [ 4625.794476] EC = 0x21: IABT (current EL), IL = 32 bits
> [ 4625.799801] SET = 0, FnV = 0
> [ 4625.802857] EA = 0, S1PTW = 0
> [ 4625.806003] user pgtable: 4k pages, 48-bit VAs, pgdp=00000000f693a000
> [ 4625.812461] [0000000000000000] pgd=0000000000000000
> [ 4625.817352] Internal error: Oops: 86000004 [#1] PREEMPT SMP
> [ 4625.822938] Modules linked in: xt_addrtype xt_conntrack
> crct10dif_ce galcore(O)
> [ 4625.830277] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W O
> 5.4.119-dirty #1
> [ 4625.838218] Hardware name: LS1028A RDB Board (DT)
> [ 4625.842932] I-pipe domain: Linux
> [ 4625.846164] pstate: 40000085 (nZcv daIf -PAN -UAO)
> [ 4625.850967] pc : 0x0
> [ 4625.853157] lr : __ipipe_ack_fasteoi_irq+0x1c/0x28
> [ 4625.857957] sp : ffff800010003f60
> [ 4625.861277] x29: ffff800010003f60 x28: ffff8000117521c0
> [ 4625.866603] x27: 0000000000000000 x26: ffff800010004000
> [ 4625.871929] x25: ffff800010000000 x24: ffff80001183a000
> [ 4625.877255] x23: 0000000000000000 x22: ffff800011767000
> [ 4625.882581] x21: 000000000000006d x20: 0000000000000000
> [ 4625.887906] x19: 000000000000006d x18: 0000000000000000
> [ 4625.893232] x17: 0000000000000000 x16: 0000000000000000
> [ 4625.898557] x15: 0000000000000000 x14: 0000000000000000
> [ 4625.903883] x13: 0000000000000001 x12: 0000000000000000
> [ 4625.909208] x11: 0000000000000000 x10: 0000000000000040
> [ 4625.914534] x9 : ffff800011760b50 x8 : ffff800011760b48
> [ 4625.919859] x7 : ffff000078c0f190 x6 : 0000000000000000
> [ 4625.925185] x5 : ffff000078c0f000 x4 : 0000000000000000
> [ 4625.930510] x3 : ffff800011885580 x2 : 0000000000001b80
> [ 4625.935835] x1 : 0000000000000000 x0 : ffff000078275e28
> [ 4625.941161] Call trace:
> [ 4625.943610] 0x0
> [ 4625.945450] __ipipe_dispatch_irq+0x174/0x1c0
> [ 4625.949816] __ipipe_grab_irq+0x5c/0x98
> [ 4625.953660] gic_handle_irq+0x5c/0xe4
> [ 4625.957329] handle_arch_irq_pipelined+0x14/0x60
> [ 4625.961957] el1_irq+0xc8/0x174
> [ 4625.965103] ipipe_unstall_root+0x34/0x50
> [ 4625.969122] arch_cpu_idle+0x14/0x20
> [ 4625.972704] default_idle_call+0x3c/0x44
> [ 4625.976635] do_idle+0xc0/0x150
> [ 4625.979781] cpu_startup_entry+0x20/0x48
> [ 4625.983712] rest_init+0xd4/0xe0
> [ 4625.986946] arch_call_rest_init+0xc/0x14
> [ 4625.990963] start_kernel+0x404/0x438
> [ 4625.994634] Code: bad PC value
> [ 4625.997697] ---[ end trace d5b95d1adba5cfcc ]---
> [ 4626.002326] Kernel panic - not syncing: Attempted to kill the idle task!
> [ 4626.009046] SMP: stopping secondary CPUs
> [ 4626.012979] Kernel Offset: disabled
> [ 4626.016474] CPU features: 0x0002,21006008
> [ 4626.020489] Memory Limit: none
> [ 4626.023552] ---[ end Kernel panic - not syncing: Attempted to kill
> the idle task! ]---
>
+++ b/kernel/irq/chip.c
@@ -986,7 +986,8 @@ void __ipipe_end_level_irq(struct irq_desc *desc)
void __ipipe_ack_fasteoi_irq(struct irq_desc *desc)
{
- desc->irq_data.chip->irq_hold(&desc->irq_data);
+ if(desc && desc->irq_data.chip && desc->irq_data.chip->irq_hold)
+ desc->irq_data.chip->irq_hold(&desc->irq_data);
}
from the oops info, x0 : ffff000078275e28 should be desc,
desc->irq_data.chip->irq_hold should be NULL.
> Attached my kernel config.
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: I-pipe ARM64 on Armv8 NXP LS1028A
2021-07-12 3:50 ` chensong_2000
@ 2021-07-12 4:26 ` Greg Gallagher
0 siblings, 0 replies; 3+ messages in thread
From: Greg Gallagher @ 2021-07-12 4:26 UTC (permalink / raw)
To: chensong_2000; +Cc: Joe Lee, Xenomai@xenomai.org
On Sun, Jul 11, 2021 at 11:50 PM chensong_2000--- via Xenomai <
xenomai@xenomai.org> wrote:
> i had similar experience, below is my fix.
>
> 在 2021/7/12 上午12:37, Joe Lee via Xenomai 写道:
> > Hi Pals,
> >
> > I applied the ipipe-core-5.4.119-arm64-2.patch on an NXP LS1028A, a
> > 64-bit Armv8 processor.
> >
> > But then there are two problems, could anyone give me some advice ?
> >
> > 1. Warning "not pipeline-safe" when booting like below:
> >
> > [ 0.053295] ASID allocator initialised with 32768 entries
> > [ 0.058807] rcu: Hierarchical SRCU implementation.
> > [ 0.063764] ------------[ cut here ]------------
> > [ 0.068435] MSI domain irqchip ITS-pMSI is not pipeline-safe!
> > [ 0.068459] WARNING: CPU: 0 PID: 1 at
> > /home/joe/nxp/linux/kernel/irq/msi.c:273 msi_create_irq_dom0
> > [ 0.092331] Modules linked in:
> > [ 0.095409] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.119-dirty #1
> > [ 0.101994] Hardware name: LS1028A RDB Board (DT)
> > [ 0.106735] I-pipe domain: Linux
> > [ 0.109986] pstate: 60000005 (nZCv daif -PAN -UAO)
> > [ 0.114817] pc : msi_create_irq_domain+0x184/0x190
> > [ 0.119648] lr : msi_create_irq_domain+0x184/0x190
> > [ 0.124477] sp : ffff80001002bca0
> > [ 0.127815] x29: ffff80001002bca0 x28: 0000000000000000
> > [ 0.133173] x27: 0000000000000000 x26: ffff00007ba0cb90
> > [ 0.138530] x25: ffff80001132c928 x24: ffff000079014100
> > [ 0.143887] x23: ffff00007ba0cb08 x22: ffff800011749000
> > [ 0.149243] x21: ffff80001177e320 x20: ffff000079014100
> > [ 0.154600] x19: ffff80001177e2a0 x18: ffffffffffffffff
> > [ 0.159957] x17: 0000000068278711 x16: 000000009d48fe30
> > [ 0.165314] x15: ffff800011749908 x14: 0000000000000000
> > [ 0.170670] x13: 0000000000000001 x12: 0000000000000000
> > [ 0.176027] x11: 0000000000000001 x10: ffff80001183f090
> > [ 0.181384] x9 : ffff80001002bca0 x8 : 656661732d656e69
> > [ 0.186741] x7 : 6c6570697020746f x6 : ffff80001183f0d1
> > [ 0.192098] x5 : 0000000000000000 x4 : 0000000000000000
> > [ 0.197455] x3 : ffff000079bcee18 x2 : 0000000000000000
> > [ 0.202811] x1 : 741db99c0414c500 x0 : 0000000000000000
> > [ 0.208168] Call trace:
> > [ 0.210631] msi_create_irq_domain+0x184/0x190
> > [ 0.215114] platform_msi_create_irq_domain+0x1c/0x130
> > [ 0.220297] its_pmsi_init+0xe0/0x154
> > [ 0.223988] do_one_initcall+0x5c/0x1a8
> > [ 0.227855] kernel_init_freeable+0xd0/0x240
> > [ 0.232161] kernel_init+0x10/0x108
> > [ 0.235675] ret_from_fork+0x10/0x1c
> > [ 0.239278] ---[ end trace d5b95d1adba5cfc9 ]---
> > [ 0.243957] Platform MSI: gic-its@6020000 domain created
> > [ 0.249368] PCI/MSI: /interrupt-controller@6000000/gic-its@6020000
> > domain created
> > [ 0.256949] fsl-mc MSI:
> > /interrupt-controller@6000000/gic-its@6020000 domain created
>
> --- a/drivers/pci/controller/pcie-brcmstb.c
> +++ b/drivers/pci/controller/pcie-brcmstb.c
> @@ -914,6 +914,7 @@ static struct irq_chip brcm_msi_irq_chip = {
> .name = "Brcm_MSI",
> .irq_mask = pci_msi_mask_irq,
> .irq_unmask = pci_msi_unmask_irq,
> + .flags = IRQCHIP_PIPELINE_SAFE,
> };
>
> i'm not sure if it's identical to yours, but "flags =
> IRQCHIP_PIPELINE_SAFE" would be applicable to your case.
>
> >
> > 2. When the ethernet link up, kernel will crash like below.
> >
> > [ 4625.779805] Unable to handle kernel NULL pointer dereference at
> > virtual address 0000000000000000
> > [ 4625.788622] Mem abort info:
> > [ 4625.791418] ESR = 0x86000004
> > [ 4625.794476] EC = 0x21: IABT (current EL), IL = 32 bits
> > [ 4625.799801] SET = 0, FnV = 0
> > [ 4625.802857] EA = 0, S1PTW = 0
> > [ 4625.806003] user pgtable: 4k pages, 48-bit VAs, pgdp=00000000f693a000
> > [ 4625.812461] [0000000000000000] pgd=0000000000000000
> > [ 4625.817352] Internal error: Oops: 86000004 [#1] PREEMPT SMP
> > [ 4625.822938] Modules linked in: xt_addrtype xt_conntrack
> > crct10dif_ce galcore(O)
> > [ 4625.830277] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W O
> > 5.4.119-dirty #1
> > [ 4625.838218] Hardware name: LS1028A RDB Board (DT)
> > [ 4625.842932] I-pipe domain: Linux
> > [ 4625.846164] pstate: 40000085 (nZcv daIf -PAN -UAO)
> > [ 4625.850967] pc : 0x0
> > [ 4625.853157] lr : __ipipe_ack_fasteoi_irq+0x1c/0x28
> > [ 4625.857957] sp : ffff800010003f60
> > [ 4625.861277] x29: ffff800010003f60 x28: ffff8000117521c0
> > [ 4625.866603] x27: 0000000000000000 x26: ffff800010004000
> > [ 4625.871929] x25: ffff800010000000 x24: ffff80001183a000
> > [ 4625.877255] x23: 0000000000000000 x22: ffff800011767000
> > [ 4625.882581] x21: 000000000000006d x20: 0000000000000000
> > [ 4625.887906] x19: 000000000000006d x18: 0000000000000000
> > [ 4625.893232] x17: 0000000000000000 x16: 0000000000000000
> > [ 4625.898557] x15: 0000000000000000 x14: 0000000000000000
> > [ 4625.903883] x13: 0000000000000001 x12: 0000000000000000
> > [ 4625.909208] x11: 0000000000000000 x10: 0000000000000040
> > [ 4625.914534] x9 : ffff800011760b50 x8 : ffff800011760b48
> > [ 4625.919859] x7 : ffff000078c0f190 x6 : 0000000000000000
> > [ 4625.925185] x5 : ffff000078c0f000 x4 : 0000000000000000
> > [ 4625.930510] x3 : ffff800011885580 x2 : 0000000000001b80
> > [ 4625.935835] x1 : 0000000000000000 x0 : ffff000078275e28
> > [ 4625.941161] Call trace:
> > [ 4625.943610] 0x0
> > [ 4625.945450] __ipipe_dispatch_irq+0x174/0x1c0
> > [ 4625.949816] __ipipe_grab_irq+0x5c/0x98
> > [ 4625.953660] gic_handle_irq+0x5c/0xe4
> > [ 4625.957329] handle_arch_irq_pipelined+0x14/0x60
> > [ 4625.961957] el1_irq+0xc8/0x174
> > [ 4625.965103] ipipe_unstall_root+0x34/0x50
> > [ 4625.969122] arch_cpu_idle+0x14/0x20
> > [ 4625.972704] default_idle_call+0x3c/0x44
> > [ 4625.976635] do_idle+0xc0/0x150
> > [ 4625.979781] cpu_startup_entry+0x20/0x48
> > [ 4625.983712] rest_init+0xd4/0xe0
> > [ 4625.986946] arch_call_rest_init+0xc/0x14
> > [ 4625.990963] start_kernel+0x404/0x438
> > [ 4625.994634] Code: bad PC value
> > [ 4625.997697] ---[ end trace d5b95d1adba5cfcc ]---
> > [ 4626.002326] Kernel panic - not syncing: Attempted to kill the idle
> task!
> > [ 4626.009046] SMP: stopping secondary CPUs
> > [ 4626.012979] Kernel Offset: disabled
> > [ 4626.016474] CPU features: 0x0002,21006008
> > [ 4626.020489] Memory Limit: none
> > [ 4626.023552] ---[ end Kernel panic - not syncing: Attempted to kill
> > the idle task! ]---
> >
>
> +++ b/kernel/irq/chip.c
> @@ -986,7 +986,8 @@ void __ipipe_end_level_irq(struct irq_desc *desc)
>
> void __ipipe_ack_fasteoi_irq(struct irq_desc *desc)
> {
> - desc->irq_data.chip->irq_hold(&desc->irq_data);
> + if(desc && desc->irq_data.chip && desc->irq_data.chip->irq_hold)
> + desc->irq_data.chip->irq_hold(&desc->irq_data);
> }
>
> from the oops info, x0 : ffff000078275e28 should be desc,
> desc->irq_data.chip->irq_hold should be NULL.
>
> > Attached my kernel config.
> >
>
> Hi,
The above fixes make sense, you may want to make sure that adding the
PIPELINE_SAFE flag is all that's needed in the driver. If you want to make
a formal patch I'll apply these to the next ipipe patch. I should have it
done this week.
Thanks
Greg
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-07-12 4:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-11 16:37 I-pipe ARM64 on Armv8 NXP LS1028A Joe Lee
2021-07-12 3:50 ` chensong_2000
2021-07-12 4:26 ` Greg Gallagher
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.