qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 3/4] hw/arm: sabrelite: Connect the Ethernet PHY at addres


From: Guenter Roeck
Subject: Re: [PATCH v3 3/4] hw/arm: sabrelite: Connect the Ethernet PHY at address 6
Date: Sat, 1 May 2021 16:21:19 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1

On 5/1/21 2:40 PM, Philippe Mathieu-Daudé wrote:
> On 5/1/21 10:12 PM, Guenter Roeck wrote:
>> On 4/30/21 9:28 PM, Bin Meng wrote:
>>> On Fri, Apr 30, 2021 at 10:41 PM Guenter Roeck <linux@roeck-us.net> wrote:
>>>>
>>>> Hi,
>>>>
>>>> On Wed, Jan 06, 2021 at 02:35:03PM +0800, Bin Meng wrote:
>>>>> From: Bin Meng <bin.meng@windriver.com>
>>>>>
>>>>> At present, when booting U-Boot on QEMU sabrelite, we see:
>>>>>
>>>>>   Net:   Board Net Initialization Failed
>>>>>   No ethernet found.
>>>>>
>>>>> U-Boot scans PHY at address 4/5/6/7 (see board_eth_init() in the
>>>>> U-Boot source: board/boundary/nitrogen6x/nitrogen6x.c). On the real
>>>>> board, the Ethernet PHY is at address 6. Adjust this by updating the
>>>>> "fec-phy-num" property of the fsl_imx6 SoC object.
>>>>>
>>>>> With this change, U-Boot sees the PHY but complains MAC address:
>>>>>
>>>>>   Net:   using phy at 6
>>>>>   FEC [PRIME]
>>>>>   Error: FEC address not set.
>>>>>
>>>>> This is due to U-Boot tries to read the MAC address from the fuse,
>>>>> which QEMU does not have any valid content filled in. However this
>>>>> does not prevent the Ethernet from working in QEMU. We just need to
>>>>> set up the MAC address later in the U-Boot command shell, by:
>>>>>
>>>>>   => setenv ethaddr 00:11:22:33:44:55
>>>>>
>>>>
>>>> With this patch in place, the standard Ethernet interface no longer works 
>>>> when
>>>> booting sabrelite Linux images directly (without u-boot) using the 
>>>> following
>>>> qemu command.
>>>>         qemu-system-arm -M sabrelite -kernel arch/arm/boot/zImage
>>>>         ...
>>>>
>>>> The Ethernet interface still instantiates, but packet transfer to the host
>>>> no longer works. Reverting this patch fixes the problem for me.
>>>>
>>>> Is there a qemu command line parameter that is now necessary to instantiate
>>>> the Ethernet interface when booting Linux ?
>>>
>>> Enabling "guest_errors" shows that Linux kernel fec driver is trying
>>> to read PHY at address 0, which is not what we want.
>>>
>>> [imx.fec.phy]imx_phy_read: Bad phy num 0
>>>
>>> The device tree blob of the sabrelite does not contain a node for the
>>> ethernet phy specifying phy address, so I suspect Linux kernel driver
>>> is using default phy address 0 instead.
>>>
>>> Could you please test on a real hardware to see what happens?
>>>
>>
>> The problem is that qemu returns 0 when the OS tries to read from a
>> non-existing PHY. Linux expects it to return 0xffff, and believes that
>> a PHY is there if 0 is returned.
> 
> Correct.
> 

I'll send a patch. Next question is why the Ethernet interfaces on mcimx6ul-evk
and mcimx7d-sabre don't work. I either get no connectivity at all (similar to
the above) or something like

fec 2188000.ethernet eth1: Unable to connect to phy
ifconfig: SIOCSIFFLAGS: No such device

Any idea ?

Thanks,
Guenter



reply via email to

[Prev in Thread] Current Thread [Next in Thread]