qman_init_fq() fail when use kexec in ls1046

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

qman_init_fq() fail when use kexec in ls1046

1,112 Views
zhengruoqin
Contributor I

Hi All:
I want to run kexec on ls1046a.

 

I have used kexec-tools v2.0.15 to start a new kernel, my boot log is in attachment. The kernel version is 4.9.35 (lsdk1709).

 

What I did is like this.

1. First, I boot the kernel in uboot with a itb file which includes Image and dtb. 
Well, In my first boot, it works well. 
uboot command:
=>setenv serverip 192.168.246.2; setenv ipaddr 192.168.246.59; tftp a0000000 ....../kernel-32le.itb
=>setenv bootargs "root=/dev/mmcblk0p3 rw ip=192.168.246.59:192.168.246.2:192.168.246.1:255.255.255.0:armv8:eth1:off earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200";bootm a0000000#ls1046a-rdb

 

2. After the first kernel booted, I use kexec to boot the new kernel with dtb file, the kernel is failed to init qman_fq, the error is qman_init_fq(259) = -5 and NIC can't work when the second kernel booted.

qman_init_fq() action is be processed in dpaa_eth driver probe action, related kernel config is FSL_SDK_DPAA_ETH.

When I disable FSL_SDK_DPAA_ETH, the kernel can boot without error, but the eth net can't work, as the dpaa_eth is the eth driver, so the NIC can't work without it.

[ 1.375878] fsl_dpa soc:fsl,dpaa:ethernet@0: of_find_device_by_node(/soc/fman
@1a00000/ethernet@e0000) failed
[ 1.385719] fsl_dpa: probe of soc:fsl,dpaa:ethernet@0 failed with error -22
[ 1.392756] fsl_dpa soc:fsl,dpaa:ethernet@1: of_find_device_by_node(/soc/fman
@1a00000/ethernet@e2000) failed
[ 1.402595] fsl_dpa: probe of soc:fsl,dpaa:ethernet@1 failed with error -22
[ 1.410425] fsl_dpa soc:fsl,dpaa:ethernet@2: qman_init_fq(259) = -5
[ 1.416954] CRGID 0x1 is being used by FQID 0x104, CGR will be leaked
[ 1.423646] CRGID 0x0 is being used by FQID 0x105, CGR will be leaked
[ 1.430306] fsl_dpa: probe of soc:fsl,dpaa:ethernet@2 failed with error -5
[ 1.437389] BUG: Bad page state in process swapper/0 pfn:af7cc
[ 1.443305] page:cb09f8b0 count:-2 mapcount:0 mapping: (null) index:0x0
[ 1.450006] flags: 0x0()

 

Can anyone give me some help about this problem?

Labels (1)
0 Kudos
2 Replies

772 Views
bpe
NXP Employee
NXP Employee

Your QMAN driver fails because it attempts to initialize an already
initialized QMAN which is not possible. Unload all DPAA modules before
you do kexec() or remove DPAA support from the kernel that calls
kexec() completely.


Have a great day,
Platon

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

772 Views
zhengruoqin
Contributor I

Thank you for your answer and may I ask some more questions?

1. How to unload all DPAA modules?  They are built in kernel not built as mouldes,  I don't know the way to unload them before second kernel boot.

2. How to remove DPAA support from the kernel? As far as I'm concerned,  many kernel configs are related to DPAA such as eth device, if I remove DPAA, how should I use them?

3. Do you know if NXP has the plan to fix this problem in the future?

0 Kudos