[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 18:37:23 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 |
On 5/1/21 5:24 PM, Bin Meng wrote:
> On Sun, May 2, 2021 at 7:21 AM Guenter Roeck <linux@roeck-us.net> wrote:
>>
>> 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 ?
>
> I don't see these 2 are supported targets of QEMU:
> https://wiki.qemu.org/Documentation/Platforms/ARM
>
Reality says otherwise.
$ qemu-system-arm --version
QEMU emulator version 6.0.0 (v6.0.0-25-geac5bb0cc1-dirty)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers
$ qemu-system-arm -M ? | grep mcim
mcimx6ul-evk Freescale i.MX6UL Evaluation Kit (Cortex A7)
mcimx7d-sabre Freescale i.MX7 DUAL SABRE (Cortex A7)
Guenter
Re: [PATCH v3 3/4] hw/arm: sabrelite: Connect the Ethernet PHY at address 6, Bin Meng, 2021/05/01