Hi Simon,

Am 2020-04-15 21:22, schrieb Simon Glass:
Hi Michael,

On Wed, 15 Apr 2020 at 09:22, Michael Walle <mich...@walle.cc> wrote:

Hi Simon,

Am 2020-04-15 15:56, schrieb Simon Glass:
> +Tom
>
> Hi,
>
> On Sat, 14 Mar 2020 at 14:33, <s...@google.com> wrote:
>>
>> On 03. 03. 20 8:47, Michael Walle wrote:
>> > If there are aliases for an uclass, set the base for the "dynamically"
>> > allocated numbers next to the highest alias.
>> >
>> > Please note, that this might lead to holes in the sequences, depending
>> > on the device tree. For example if there is only an alias "ethernet1",
>> > the next device seq number would be 2.
>> >
>> > In particular this fixes a problem with boards which are using ethernet
>> > aliases but also might have network add-in cards like the E1000. If the
>> > board is started with the add-in card and depending on the order of the
>> > drivers, the E1000 might occupy the first ethernet device and mess up
>> > all the hardware addresses, because the devices are now shifted by one.
>> >
>> > Also adapt the test cases to the new handling and add test cases
>> > checking the holes in the seq numbers.
>> >
>> > Signed-off-by: Michael Walle <mich...@walle.cc>
>> > Reviewed-by: Alex Marginean <alexandru.margin...@nxp.com>
>> > Tested-by: Alex Marginean <alexandru.margin...@nxp.com>
>> > Acked-by: Vladimir Oltean <olte...@gmail.com>
>> > Reviewed-by: Simon Glass <s...@chromium.org>
>> > ---
>> > changes since v3:
>> >  - dev_read_alias_highest_id() is only available if CONFIG_OF_CONTROL is
>> >    set. Thus added an additional condition "CONFIG_IS_ENABLED(OF_CONTROL)",
>> >    thanks Simon.
>> >
>> > changes since v2:
>> >  - adapt/new test cases, thanks Simon
>> >
>> > changes since v1:
>> >  - move notice about superfluous commits from commit message to this
>> >    section.
>> >  - fix the comment style
>> >
>> >  arch/sandbox/dts/test.dts |  4 ++--
>> >  drivers/core/uclass.c     | 21 +++++++++++++++------
>> >  include/configs/sandbox.h |  6 +++---
>> >  test/dm/eth.c             | 14 +++++++-------
>> >  test/dm/test-fdt.c        | 22 +++++++++++++++++-----
>> >  5 files changed, 44 insertions(+), 23 deletions(-)
>> >
>> Applied to u-boot-dm/next, thanks!
>
> Sadly, after applying this was found to break rpi_3. Due to some
> still-pending patches mine doesn't boot anyway so I didn't notice.
>
> The tbot trace is below. The first is the new u-boot-dm/master with
> two rpi patches, the second is the same with just your patch added.
> Ethernet seems to go away.

could you dump "dm tree" and "dm uclass" in both cases?

I've had a look at the device tree and there seems to be one ethernet
alias to the corresponding USB LAN device. I can only imagine that this
alias doesn't match (for whatever reason) and as a second problem, the
networking doesn't find a device if there is only a ethernet1.


Yes please see below (first one is without your patch).

Thanks


do-try-int.sh rpi3 HEAD

Checking revision eff8ae8810da44bbbad71e617ea80abc7d7cde45
tbot starting ...
├─Parameters:
│     rev        = 'eff8ae8810da44bbbad71e617ea80abc7d7cde45'
│     clean      = True
├─Calling uboot_checkout ...
│   ├─Builder: rpi_3
│   └─Done. (1.002s)
├─────────────────────────────────────────
└─SUCCESS (1.284s)
tbot starting ...
├─Parameters:
│     clean      = False
├─Calling uboot_build_and_flash ...
│   ├─POWERON (Raspberry Pi 3b)
│   ├─Calling uboot_build ...
│   │   ├─Calling uboot_checkout ...
│   │   │   ├─Builder: rpi_3
│   │   │   └─Done. (0.127s)
│   │   ├─Configuring build ...
│   │   ├─Calling uboot_make ...
│   │   │   └─Done. (13.117s)
│   │   └─Done. (15.603s)
│   ├─Calling uboot_flash ...
│   │   ├─Calling copy ...
│   │   │   └─Done. (0.004s)
│   │   └─Done. (4.412s)
│   ├─POWEROFF (Raspberry Pi 3b)
│   └─Done. (20.975s)
├─────────────────────────────────────────
└─SUCCESS (21.152s)
tbot starting ...
├─Calling interactive_board ...
│   ├─POWERON (Raspberry Pi 3b)
│   ├─Entering interactive shell (CTRL+D to exit) ...


U-Boot 2020.04-00305-geff8ae8810 (Apr 15 2020 - 13:15:29 -0600)

DRAM:  992 MiB
RPI 3 Model B (0xa22082)
MMC:   mmc@7e202000: 0, sdhci@7e300000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   No ethernet found.
starting USB...
Bus usb@7e980000: scanning bus usb@7e980000 for devices... Timeout
poll on interrupt endpoint
Failed to get keyboard state from device 0c40:8000
4 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
U-Boot> dm tree
 Class     Index  Probed  Driver                Name
-----------------------------------------------------------
 root          0  [ + ]   root_driver           root_driver
 simple_bus    0  [ + ]   generic_simple_bus    |-- soc
 pinctrl       0  [ + ]   bcm283x_pinctrl       |   |-- gpio@7e200000
 pinconfig     0  [   ]   pinconfig             |   |   |-- dpi_gpio0
 pinconfig     1  [   ]   pinconfig             |   |   |-- emmc_gpio22
 pinconfig     2  [ + ]   pinconfig             |   |   |-- emmc_gpio34
 pinconfig     3  [   ]   pinconfig             |   |   |-- emmc_gpio48
pinconfig 4 [ ] pinconfig | | |-- gpclk0_gpio4 pinconfig 5 [ ] pinconfig | | |-- gpclk1_gpio5 pinconfig 6 [ ] pinconfig | | |-- gpclk1_gpio42 pinconfig 7 [ ] pinconfig | | |-- gpclk1_gpio44 pinconfig 8 [ ] pinconfig | | |-- gpclk2_gpio6 pinconfig 9 [ ] pinconfig | | |-- gpclk2_gpio43
 pinconfig    10  [   ]   pinconfig             |   |   |-- i2c0_gpio0
 pinconfig    11  [   ]   pinconfig             |   |   |-- i2c0_gpio28
 pinconfig    12  [   ]   pinconfig             |   |   |-- i2c0_gpio44
 pinconfig    13  [   ]   pinconfig             |   |   |-- i2c1_gpio2
 pinconfig    14  [   ]   pinconfig             |   |   |-- i2c1_gpio44
pinconfig 15 [ ] pinconfig | | |-- i2c_slave_gpio18
 pinconfig    16  [   ]   pinconfig             |   |   |-- jtag_gpio4
 pinconfig    17  [   ]   pinconfig             |   |   |-- jtag_gpio22
 pinconfig    18  [   ]   pinconfig             |   |   |-- pcm_gpio18
 pinconfig    19  [   ]   pinconfig             |   |   |-- pcm_gpio28
 pinconfig    20  [   ]   pinconfig             |   |   |-- pwm0_gpio12
 pinconfig    21  [   ]   pinconfig             |   |   |-- pwm0_gpio18
 pinconfig    22  [   ]   pinconfig             |   |   |-- pwm0_gpio40
 pinconfig    23  [   ]   pinconfig             |   |   |-- pwm1_gpio13
 pinconfig    24  [   ]   pinconfig             |   |   |-- pwm1_gpio19
 pinconfig    25  [   ]   pinconfig             |   |   |-- pwm1_gpio41
 pinconfig    26  [   ]   pinconfig             |   |   |-- pwm1_gpio45
pinconfig 27 [ + ] pinconfig | | |-- sdhost_gpio48
 pinconfig    28  [   ]   pinconfig             |   |   |-- spi0_gpio7
 pinconfig    29  [   ]   pinconfig             |   |   |-- spi0_gpio35
 pinconfig    30  [   ]   pinconfig             |   |   |-- spi1_gpio16
 pinconfig    31  [   ]   pinconfig             |   |   |-- spi2_gpio40
pinconfig 32 [ ] pinconfig | | |-- uart0_gpio14 pinconfig 33 [ ] pinconfig | | |-- uart0_ctsrts_gpio16 pinconfig 34 [ ] pinconfig | | |-- uart0_ctsrts_gpio30 pinconfig 35 [ ] pinconfig | | |-- uart0_gpio32 pinconfig 36 [ ] pinconfig | | |-- uart0_gpio36 pinconfig 37 [ ] pinconfig | | |-- uart0_ctsrts_gpio38 pinconfig 38 [ + ] pinconfig | | |-- uart1_gpio14 pinconfig 39 [ ] pinconfig | | |-- uart1_ctsrts_gpio16 pinconfig 40 [ ] pinconfig | | |-- uart1_gpio32 pinconfig 41 [ ] pinconfig | | |-- uart1_ctsrts_gpio30 pinconfig 42 [ ] pinconfig | | |-- uart1_gpio40 pinconfig 43 [ ] pinconfig | | |-- uart1_ctsrts_gpio42
 pinconfig    44  [   ]   pinconfig             |   |   |-- gpioout
 pinconfig    45  [   ]   pinconfig             |   |   |-- alt0
gpio 0 [ ] gpio_bcm2835 | | `-- gpio_bcm2835
 serial        0  [   ]   bcm283x_pl011         |   |-- serial@7e201000
 mmc           0  [ + ]   bcm2835-sdhost        |   |-- mmc@7e202000
blk 0 [ + ] mmc_blk | | `-- m...@7e202000.blk
 serial        1  [ + ]   serial_bcm283x_mu     |   |-- serial@7e215040
 mmc           1  [ + ]   sdhci-bcm2835         |   |-- sdhci@7e300000
blk 1 [ ] mmc_blk | | `-- sd...@7e300000.blk
 video         0  [ + ]   bcm2835_video         |   |-- hdmi@7e902000
 vidconsole    0  [ + ]   vidconsole0           |   |   `--
hdmi@7e902000.vidconsole0
 usb           0  [ + ]   dwc2_usb              |   |-- usb@7e980000
 usb_hub       0  [ + ]   usb_hub               |   |   `-- usb_hub
 usb_hub       1  [ + ]   usb_hub               |   |       `-- usb_hub
eth 0 [ + ] smsc95xx_eth | | |-- smsc95xx_eth
 usb_dev_ge    0  [ + ]   usb_dev_generic_drv   |   |           `--
generic_bus_0_dev_4
 simple_bus    1  [   ]   generic_simple_bus    |   `-- firmware
 simple_bus    2  [   ]   generic_simple_bus    `-- clocks
U-Boot> dm uclass
uclass 0: root
0   * root_driver @ 3db67028, seq 0, (req -1)

uclass 20: blk
0   * m...@7e202000.blk @ 3db683e0, seq 0, (req -1)
1     sd...@7e300000.blk @ 3db686c8

EFI: Initializing UCLASS_EFI
uclass 30: efi
uclass 31: eth
0   * smsc95xx_eth @ 3db69ac0, seq 0, (req -1)

Shouldn't this be "req 0" if the ethernet alias is actually matched.
Does u-boot actually supports matching usb nodes to devices? If not,
shouldn't the alias be removed then?

That being said, it is still strange why the bootloader doesn't find
ethernet-1 then. I've tried with my board, no native ethernet support
and an usb network dongle which works as expected (well the dongle
seems to have some issues to actually transfer frames).


U-Boot 2020.04-00278-gab5be282e8-dirty (Apr 16 2020 - 12:40:55 +0200)

SoC:  LS1028A Rev1.0 (0x870b0110)
Clock Configuration:
       CPU0(A72):1300 MHz  CPU1(A72):1300 MHz
       Bus:      400  MHz  DDR:      1600 MT/s
Reset Configuration Word (RCW):
       00000000: 34004010 00000030 00000000 00000000
       00000010: 00000000 008f0000 0030c000 00000000
       00000020: 06200000 00002580 00000000 00019016
       00000030: 00000000 00000048 00000000 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000103 00000000 100e7026 00000000
       00000070: bb580000 00020000
Model: Kontron SMARC-sAL28 Board
DRAM:  3.9 GiB
DDR    3.9 GiB (DDR3, 32-bit, CL=11, ECC on)
Using SERDES1 Protocol: 47960 (0xbb58)
PCIe0: pcie@3400000 Root Complex: no link
PCIe1: pcie@3500000 Root Complex: no link
WDT:   Started with servicing (60s timeout)
Waking secondary cores to start from fbd47000
All (2) cores are up.
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from SPI Flash... spi_nor_init
SF: Detected w25q32dw with page size 256 Bytes, erase size 64 KiB, total 4 MiB
OK
In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0
=> usb start
starting USB...
Bus usb3@3100000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
Bus usb3@3110000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb3@3100000 for devices... 1 USB Device(s) found
scanning bus usb3@3110000 for devices...
Warning: ax88179_eth MAC addresses don't match:
Address in ROM is               00:0a:cd:27:0e:8c
Address in environment is       00:de:ad:be:ef:01
4 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
# dm uclass
[..]
uclass 32: eth
0   * ax88179_eth @ fbb494a0, seq 1, (req -1)
[..]

-michael

Reply via email to