[meta-freescale] [QORIQ] MDIO MUX HAS PROBLEM TO COMMUNICATE WITH MY PHY 1G

Mercier Ivan ivan.mercier at gmail.com
Mon Aug 19 00:54:05 PDT 2013


Thanks Zhenhua for your answer but I got the same log in p3041ds boot
mdio-mux-mmioreg fffdf0009.mdio-mux-emi1: failed to register mdio-mux bus
/localbus at ffe124000/board-control at 3,0/mdio-mux-emi1
and the ethernet works...

How I can find the approptiate config and phy address?What should I change
in dts?

The entire log is:
root at p3041ds:~# insmod /media/mmcblk0p1/fsl_pq_mdio.ko
libphy: Freescale PowerQUICC MII Bus: probed
libphy: mdio_mux: probed
Oops: Machine check, sig: 7 [#1]
SMP NR_CPUS=4 P3041 DS
Modules linked in: fsl_pq_mdio
NIP: c0016e94 LR: c0344448 CTR: 00000000
REGS: efc8ff10 TRAP: 0204   Not tainted
(3.8.13-rt9-DEBUG-WP6-04558-gf4c757e-dirty)
MSR: 00029002 <CE,EE,ME>  CR: 88002022  XER: 00000000
TASK = eb862ab0[550] 'kworker/u:3' THREAD: ebe78000 CPU: 1
GPR00: fffffff4 ebe79c70 eb862ab0 f1172009 f0541215 eb007b90 ffdf0000
0000fffd
GPR08: f0541215 eb007b90 00000000 00000000 22002024 00000000 c0056210
ebda5dec
GPR16: 00000000 00000000 00000000 ebd98760 c06bc81c c06bc7f8 c06bc7bc
c0783f10
GPR24: c06bc7dc c06bc7a0 c6b5b848 c066d9f0 00000008 ebfae650 ebd98750
f1172009
NIP [c0016e94] ioread8+0x4/0x20
LR [c0344448] mdio_mux_mmioreg_switch_fn.part.1+0x38/0xc0
Call Trace:
[ebe79c70] [c0344438] mdio_mux_mmioreg_switch_fn.part.1+0x28/0xc0
(unreliable)
[ebe79c88] [c03440f4] mdio_mux_read+0x44/0xa0
[ebe79ca8] [c0343880] mdiobus_read+0x50/0x80
[ebe79cc0] [c034298c] get_phy_device+0xbc/0x100
[ebe79d08] [c043eeb8] of_mdiobus_register.part.2+0xd8/0x210
[ebe79d58] [c0343f68] mdio_mux_init+0x198/0x240
[ebe79d98] [c0344338] mdio_mux_mmioreg_probe+0x1b8/0x290
[ebe79de8] [c02e2120] platform_drv_probe+0x20/0x30
[ebe79df0] [c02e0290] really_probe+0x90/0x390
[ebe79e10] [c02de270] bus_for_each_drv+0x70/0xb0
[ebe79e38] [c02e0698] device_attach+0xc8/0xf0
[ebe79e50] [c02df504] bus_probe_device+0xa4/0xc0
[ebe79e68] [c02dfb80] deferred_probe_work_func+0xa0/0xf0
[ebe79e88] [c004b6b0] process_one_work+0x170/0x4f0
[ebe79eb8] [c004be54] worker_thread+0x154/0x360
[ebe79ef0] [c00562a8] kthread+0x98/0xa0
[ebe79f40] [c00102a0] ret_from_kernel_thread+0x64/0x6c
Instruction dump:
60000000 60000000 60000000 2f840005 38600002 4d9e0020 38600000 4e800020
00000000 00000000 00000000 7c0004ac <88630000> 0c030000 4c00012c 5463063e
---[ end trace 083cef13476d224a ]---

Unable to handle kernel paging request for data at address 0xffffffec
Faulting instruction address: 0xc00566a4
Oops: Kernel access of bad area, sig: 11 [#2]
SMP NR_CPUS=4 P3041 DS
Modules linked in: fsl_pq_mdio
NIP: c00566a4 LR: c004cef8 CTR: c006efc0
REGS: efc8fcd0 TRAP: 0300   Tainted: G      D
(3.8.13-rt9-DEBUG-WP6-04558-gf4c757e-dirty)
MSR: 00000002 <>  CR: 42004082  XER: 00000000
DEAR: ffffffec, ESR: 00000000
TASK = eb862ab0[550] 'kworker/u:3' THREAD: ebe78000 CPU: 1
GPR00: c053f6b8 efc8fd80 eb862ab0 eb862ab0 00000001 ff76abc0 ffffffff
ff76abc0
GPR08: 0000000f 00000000 0000000f 00000000 22004082 00000000 c0056210
008ed000
GPR16: eb862c34 c0560000 c0790000 c07c0000 c0780000 c0790cc0 c0560000
00000000
GPR24: c0748480 00000004 c0748480 c07911c8 efc8e000 00000001 eb862ab0
00000001
NIP [c00566a4] kthread_data+0x4/0x10
LR [c004cef8] wq_worker_sleeping+0x18/0x110
Call Trace:
Instruction dump:
409effdc 80010024 7fc3f378 bb410008 38210020 7c0803a6 4e800020 81220158
8069ffe4 5463f7fe 4e800020 81230158 <8069ffec> 4e800020 60000000 80620158
---[ end trace 083cef13476d224b ]---

Fixing recursive fault but reboot is needed!

thanks for your help

Ivan


2013/8/19 Luo Zhenhua-B19537 <B19537 at freescale.com>

>  More comments. ****
>
> ** **
>
> > root at p3041ds:~# insmod /media/mmcblk0p1/fsl_pq_mdio.ko****
>
> > libphy: Freescale PowerQUICC MII Bus: probed****
>
> > libphy: mdio_mux: probed****
>
> > Oops: Machine check, sig: 7 [#1]****
>
> > SMP NR_CPUS=4 P3041 DS****
>
> > Modules linked in: fsl_pq_mdio****
>
> It should not have gone directly to "Oops: Machine check..." without
> printing MCSR.  The only way I can see that that might have happened is if
> fsl_rio_mcheck_exception() is claiming it, but MCSR fails to stay cleared
> in silent_out.****
>
> ** **
>
> Or, perhaps some output got lost.  Try calling oops_begin()/oops_end() in
> machine_check_e500mc().****
>
> ** **
>
> ** **
>
> Best Regards,****
>
> ** **
>
> Zhenhua****
>
> ** **
>
> *From:* meta-freescale-bounces at yoctoproject.org [mailto:
> meta-freescale-bounces at yoctoproject.org] *On Behalf Of *Luo Zhenhua-B19537
> *Sent:* Thursday, August 15, 2013 2:46 PM
> *To:* Mercier Ivan
> *Cc:* meta-freescale at yoctoproject.org
> *Subject:* Re: [meta-freescale] [QORIQ] MDIO MUX HAS PROBLEM TO
> COMMUNICATE WITH MY PHY 1G****
>
> ** **
>
> The log shows “mdio-mux-mmioreg fffdf0009.mdio-mux-emi1: failed to
> register mdio-mux bus /localbus at ffe124000/board-control at 3
> ,0/mdio-mux-emi1”.****
>
> ** **
>
> For the custom board using 1G Marvell 88E1118 PHY, it needs appropriate
> configuration for MDIO and  PHY address in DTS according to the actual
> value defined in the board RM. ****
>
> ** **
>
> ** **
>
> Best Regards,****
>
> ** **
>
> Zhenhua****
>
> ** **
>
> *From:* meta-freescale-bounces at yoctoproject.org [mailto:
> meta-freescale-bounces at yoctoproject.org] *On Behalf Of *Mercier Ivan
> *Sent:* Wednesday, August 14, 2013 10:45 PM
> *To:* meta-freescale at yoctoproject.org
> *Subject:* [meta-freescale] [QORIQ] MDIO MUX HAS PROBLEM TO COMMUNICATE
> WITH MY PHY 1G****
>
> ** **
>
> Hi everybody,
> I'm trying to make my 1G Ethernet working on a qoriq p3041 custom board
> using a phy 1G Marvell 88E1118.****
>
> It works on uboot on my board and works on uboot and Linux on p3041ds eval
> board(which use a phy VItesse VSC8244XHG).****
>
> It appears that the problem comes from module fsl_pq_mdio
>
> root at p3041ds:~# insmod /media/mmcblk0p1/fsl_pq_mdio.ko
> libphy: Freescale PowerQUICC MII Bus: probed
> libphy: mdio_mux: probed
> Oops: Machine check, sig: 7 [#1]
> SMP NR_CPUS=4 P3041 DS
> Modules linked in: fsl_pq_mdio
> NIP: c0016e94 LR: c0344848 CTR: 00000000
> REGS: ee68ff10 TRAP: 0204   Not tainted
> (3.8.13-rt9-DEBUG-WP6-04558-gf4c757e-dirty)
> MSR: 00029002 <CE,EE,ME>  CR: 48002022  XER: 00000000
> TASK = ea687570[29] 'kworker/u:1' THREAD: ea6c8000 CPU: 2
> GPR00: fffffff4 ea6c9c70 ea687570 f1172009 f0541215 ea007b90 ffdf0000
> 0000fffd
> GPR08: f0541215 ea007b90 00000000 00000000 22002024 00000000 c0056210
> ea09fdec
> GPR16: 00000000 00000000 00000000 eadaa9e0 c06bc988 c06bc964 c06bc928
> c0783f90
> GPR24: c06bc948 c06bc90c e78c3648 c066db20 00000008 e799add0 eadaa9d0
> f1172009
> NIP [c0016e94] ioread8+0x4/0x20
> LR [c0344848] mdio_mux_mmioreg_switch_fn.part.1+0x38/0xc0
> Call Trace:
> [ea6c9c70] [c0344838] mdio_mux_mmioreg_switch_fn.part.1+0x28/0xc0
> (unreliable)
> [ea6c9c88] [c03444f4] mdio_mux_read+0x44/0xa0
> [ea6c9ca8] [c0343880] mdiobus_read+0x50/0x80
> [ea6c9cc0] [c034298c] get_phy_device+0xbc/0x100
> [ea6c9d08] [c043f2b8] of_mdiobus_register.part.2+0xd8/0x210
> [ea6c9d58] [c0344368] mdio_mux_init+0x198/0x240
> [ea6c9d98] [c0344738] mdio_mux_mmioreg_probe+0x1b8/0x290
> [ea6c9de8] [c02e2120] platform_drv_probe+0x20/0x30
> [ea6c9df0] [c02e0290] really_probe+0x90/0x390
> [ea6c9e10] [c02de270] bus_for_each_drv+0x70/0xb0
> [ea6c9e38] [c02e0698] device_attach+0xc8/0xf0
> [ea6c9e50] [c02df504] bus_probe_device+0xa4/0xc0
> [ea6c9e68] [c02dfb80] deferred_probe_work_func+0xa0/0xf0
> [ea6c9e88] [c004b6b0] process_one_work+0x170/0x4f0
> [ea6c9eb8] [c004be54] worker_thread+0x154/0x360
> [ea6c9ef0] [c00562a8] kthread+0x98/0xa0
> [ea6c9f40] [c00102a0] ret_from_kernel_thread+0x64/0x6c
> Instruction dump:
> 60000000 60000000 60000000 2f840005 38600002 4d9e0020 38600000 4e800020
> 00000000 00000000 00000000 7c0004ac <88630000> 0c030000 4c00012c 4c00018c
> ---[ end trace 001bd1cff2c97bfc ]---****
>
> When I'm trying to use the network interface with this module, I got:
> root at p3041ds:~#ifconfig fm1-gb3 10.0.0.36
> fsl_dpa ethernet.14 fm1-gb3: Could not connect to PHY /localbus at ffe124000
> /board-control at 3,0/mdio-mux-emi1/rgmii-mdio at 8/ethernet-phy at 0
> fsl_dpa ethernet.14 fm1-gb3: init_phy() = -19
> SIOCSIFFLAGS: No such device****
>
> ** **
>
> To me, this is a problem of phy address declared in device tree.****
>
> Am I right?
> Does anybody know how to configure the dts to adapt it for a different phy?
> ****
>
> ** **
>
> attached, you can find my Linux boot log, my Linux config and the device
> tree source which is the original one.****
>
> Thanks a lot in advance.****
>
> Best Regards,****
>
> Ivan Mercier****
>
> ** **
>
> ** **
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20130819/b02f332c/attachment.html>


More information about the meta-freescale mailing list