[U-Boot-Board-Maintainers] Raspberry pi 4 - u-boot - genet / scb

Sascha Dewald sascha.dewald at gmail.com
Tue Nov 19 10:05:42 UTC 2019


Hi Matthias,

yes, i network boot with the beta firmware, since a while.

Short Steps:
* take latest bootloader from ( github.com/raspberrypi/firmware/boot/ )

* patched the beta pieeprom & vl805 with the recovery.bin and bootconf.txt
- ( github.com/raspberrypi/rpi-eeprom/boot/ )

* in  bootconf.txt inside pieeprom i used BOOT_ORDER=0x12 - so that network
boot was at first. (
https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/raspberry_pi4_network_boot_beta.md
)


Yesterday i figured out, that it was possible to embed the initramfs into
the kernel. Today i will try this, because my distribution has NFS as
module for the root filesystem.
Would be nice if the rpi4 would accept the ramfsfile from the config.txt to
load the initrd from tftp .. ;-)

i tried to add some more nic-id's inside broadcom.c, but with no success:
( https://github.com/sd-hd/u-boot/blob/rpi4/drivers/net/phy/broadcom.c )

The 64bit armstub with network enabled inside the assembler, seems to have
no affect inside config.txt. (
https://github.com/raspberrypi/tools/blob/master/armstubs/armstub8.S )

My experimental u-boot devicetree prints this below, but i don't know how
to enable the devices under the "scb - simple bus"...

Maybe i can help testing for you ?

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 at 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             |   |   |-- jtag_gpio22
 pinconfig    16  [   ]   pinconfig             |   |   |-- pcm_gpio18
 pinconfig    17  [   ]   pinconfig             |   |   |-- pcm_gpio28
 pinconfig    18  [   ]   pinconfig             |   |   |-- pwm0_gpio12
 pinconfig    19  [   ]   pinconfig             |   |   |-- pwm0_gpio18
 pinconfig    20  [   ]   pinconfig             |   |   |-- pwm0_gpio40
 pinconfig    21  [   ]   pinconfig             |   |   |-- pwm1_gpio13
 pinconfig    22  [   ]   pinconfig             |   |   |-- pwm1_gpio19
 pinconfig    23  [   ]   pinconfig             |   |   |-- pwm1_gpio41
 pinconfig    24  [   ]   pinconfig             |   |   |-- pwm1_gpio45
 pinconfig    25  [   ]   pinconfig             |   |   |-- sdhost_gpio48
 pinconfig    26  [   ]   pinconfig             |   |   |-- spi0_gpio7
 pinconfig    27  [   ]   pinconfig             |   |   |-- spi0_gpio35
 pinconfig    28  [   ]   pinconfig             |   |   |-- spi1_gpio16
 pinconfig    29  [   ]   pinconfig             |   |   |-- spi2_gpio40
 pinconfig    30  [   ]   pinconfig             |   |   |-- uart0_gpio14
 pinconfig    31  [   ]   pinconfig             |   |   |--
uart0_ctsrts_gpio16
 pinconfig    32  [   ]   pinconfig             |   |   |--
uart0_ctsrts_gpio30
 pinconfig    33  [   ]   pinconfig             |   |   |-- uart0_gpio32
 pinconfig    34  [   ]   pinconfig             |   |   |-- uart0_gpio36
 pinconfig    35  [   ]   pinconfig             |   |   |--
uart0_ctsrts_gpio38
 pinconfig    36  [   ]   pinconfig             |   |   |-- uart1_gpio14
 pinconfig    37  [   ]   pinconfig             |   |   |--
uart1_ctsrts_gpio16
 pinconfig    38  [   ]   pinconfig             |   |   |-- uart1_gpio32
 pinconfig    39  [   ]   pinconfig             |   |   |--
uart1_ctsrts_gpio30
 pinconfig    40  [   ]   pinconfig             |   |   |-- uart1_gpio40
 pinconfig    41  [   ]   pinconfig             |   |   |--
uart1_ctsrts_gpio42
 pinconfig    42  [   ]   pinconfig             |   |   |-- gpclk0_gpio49
 pinconfig    43  [   ]   pinconfig             |   |   |-- gpclk1_gpio50
 pinconfig    44  [   ]   pinconfig             |   |   |-- gpclk2_gpio51
 pinconfig    45  [   ]   pinconfig             |   |   |-- i2c0_gpio46
 pinconfig    46  [   ]   pinconfig             |   |   |-- i2c1_gpio46
 pinconfig    47  [   ]   pinconfig             |   |   |-- i2c3_gpio2
 pinconfig    48  [   ]   pinconfig             |   |   |-- i2c3_gpio4
 pinconfig    49  [   ]   pinconfig             |   |   |-- i2c4_gpio6
 pinconfig    50  [   ]   pinconfig             |   |   |-- i2c4_gpio8
 pinconfig    51  [   ]   pinconfig             |   |   |-- i2c5_gpio10
 pinconfig    52  [   ]   pinconfig             |   |   |-- i2c5_gpio12
 pinconfig    53  [   ]   pinconfig             |   |   |-- i2c6_gpio0
 pinconfig    54  [   ]   pinconfig             |   |   |-- i2c6_gpio22
 pinconfig    55  [   ]   pinconfig             |   |   |-- i2c_slave_gpio8
 pinconfig    56  [   ]   pinconfig             |   |   |-- jtag_gpio48
 pinconfig    57  [   ]   pinconfig             |   |   |-- mii_gpio28
 pinconfig    58  [   ]   pinconfig             |   |   |-- mii_gpio36
 pinconfig    59  [   ]   pinconfig             |   |   |-- pcm_gpio50
 pinconfig    60  [   ]   pinconfig             |   |   |-- pwm0_gpio52
 pinconfig    61  [   ]   pinconfig             |   |   |-- pwm1_gpio53
 pinconfig    62  [   ]   pinconfig             |   |   |-- rgmii_gpio35
 pinconfig    63  [   ]   pinconfig             |   |   |-- rgmii_irq_gpio34
 pinconfig    64  [   ]   pinconfig             |   |   |-- rgmii_irq_gpio39
 pinconfig    65  [   ]   pinconfig             |   |   |--
rgmii_mdio_gpio28
 pinconfig    66  [   ]   pinconfig             |   |   |--
rgmii_mdio_gpio37
 pinconfig    67  [   ]   pinconfig             |   |   |-- spi0_gpio46
 pinconfig    68  [   ]   pinconfig             |   |   |-- spi2_gpio46
 pinconfig    69  [   ]   pinconfig             |   |   |-- spi3_gpio0
 pinconfig    70  [   ]   pinconfig             |   |   |-- spi4_gpio4
 pinconfig    71  [   ]   pinconfig             |   |   |-- spi5_gpio12
 pinconfig    72  [   ]   pinconfig             |   |   |-- spi6_gpio18
 pinconfig    73  [   ]   pinconfig             |   |   |-- uart2_gpio0
 pinconfig    74  [   ]   pinconfig             |   |   |--
uart2_ctsrts_gpio2
 pinconfig    75  [   ]   pinconfig             |   |   |-- uart3_gpio4
 pinconfig    76  [   ]   pinconfig             |   |   |--
uart3_ctsrts_gpio6
 pinconfig    77  [   ]   pinconfig             |   |   |-- uart4_gpio8
 pinconfig    78  [   ]   pinconfig             |   |   |--
uart4_ctsrts_gpio10
 pinconfig    79  [   ]   pinconfig             |   |   |-- uart5_gpio12
 pinconfig    80  [   ]   pinconfig             |   |   |--
uart5_ctsrts_gpio14
 pinconfig    81  [   ]   pinconfig             |   |   |-- dpi_18bit_gpio0
 pinconfig    82  [   ]   pinconfig             |   |   |-- gpioout
 pinconfig    83  [   ]   pinconfig             |   |   |-- alt0
 pinconfig    84  [   ]   pinconfig             |   |   |-- spi0_pins
 pinconfig    85  [   ]   pinconfig             |   |   |-- spi0_cs_pins
 pinconfig    86  [   ]   pinconfig             |   |   |-- spi3_pins
 pinconfig    87  [   ]   pinconfig             |   |   |-- spi3_cs_pins
 pinconfig    88  [   ]   pinconfig             |   |   |-- spi4_pins
 pinconfig    89  [   ]   pinconfig             |   |   |-- spi4_cs_pins
 pinconfig    90  [   ]   pinconfig             |   |   |-- spi5_pins
 pinconfig    91  [   ]   pinconfig             |   |   |-- spi5_cs_pins
 pinconfig    92  [   ]   pinconfig             |   |   |-- spi6_pins
 pinconfig    93  [   ]   pinconfig             |   |   |-- spi6_cs_pins
 pinconfig    94  [   ]   pinconfig             |   |   |-- i2c0
 pinconfig    95  [   ]   pinconfig             |   |   |-- i2c1
 pinconfig    96  [   ]   pinconfig             |   |   |-- i2c3
 pinconfig    97  [   ]   pinconfig             |   |   |-- i2c4
 pinconfig    98  [   ]   pinconfig             |   |   |-- i2c5
 pinconfig    99  [   ]   pinconfig             |   |   |-- i2c6
 pinconfig   100  [   ]   pinconfig             |   |   |-- i2s
 pinconfig   101  [ + ]   pinconfig             |   |   |-- sdio_pins
 pinconfig   102  [   ]   pinconfig             |   |   |-- bt_pins
 pinconfig   103  [   ]   pinconfig             |   |   |-- uart0_pins
 pinconfig   104  [ + ]   pinconfig             |   |   |-- uart1_pins
 pinconfig   105  [   ]   pinconfig             |   |   |-- uart2_pins
 pinconfig   106  [   ]   pinconfig             |   |   |-- uart3_pins
 pinconfig   107  [   ]   pinconfig             |   |   |-- uart4_pins
 pinconfig   108  [   ]   pinconfig             |   |   |-- uart5_pins
 pinconfig   109  [   ]   pinconfig             |   |   |-- audio_pins
 gpio          0  [   ]   gpio_bcm2835          |   |   `-- gpio_bcm2835
 serial        0  [   ]   bcm283x_pl011         |   |-- serial at 7e201000
 serial        1  [ + ]   serial_bcm283x_mu     |   |-- serial at 7e215040
 mmc           0  [ + ]   sdhci-bcm2835         |   |-- emmc2 at 7e340000
 blk           0  [ + ]   mmc_blk               |   |   `--
emmc2 at 7e340000.blk
 mmc           1  [ + ]   sdhci-bcm2835         |   |-- mmcnr at 7e300000
 blk           1  [   ]   mmc_blk               |   |   `--
mmcnr at 7e300000.blk
 video         0  [ + ]   bcm2835_video         |   `-- fb
 vidconsole    0  [ + ]   vidconsole0           |       `-- fb.vidconsole0
 simple_bus    1  [   ]   generic_simple_bus    |-- clocks
 clk           0  [   ]   fixed_rate_clock      |   |-- clock at 3
 clk           1  [   ]   fixed_rate_clock      |   `-- clock at 4
 simple_bus    2  [   ]   generic_simple_bus    |-- v3dbus
 simple_bus    3  [   ]   generic_simple_bus    |-- scb
 clk           2  [   ]   fixed_rate_clock      |-- clock at 3
 clk           3  [   ]   fixed_rate_clock      `-- clock at 4
U-Boot>
PM_RSTS: 0x00001000
RPi: BOOTLOADER release VERSION:b6a7593d Nov 18 2019 11:06:57 BOOTMODE:
0x00000006 part: 0 BUILD_TIMESTAMP=1574075215 0xe56706c5 0x00c03111


Regards,
Sascha



Am Mo., 18. Nov. 2019 um 18:14 Uhr schrieb Matthias Brugger <
mbrugger at suse.com>:

> HI Sascha,
>
> On 18/11/2019 10:24, Sascha Dewald wrote:
> > Hi Matthias,
> >
> > sorry for mention you directly.
> >
> > I successfully boot the raspberry pi 4 over network, but have problems to
> > load the initrd.img over tftp.
> >
>
> You do that through the PXE boot from the FW, right?
>
> > Do you know where i can get help, to enable scb & genet, so that u-boot
> > detect the network interface ?
> >
>
> I know that there is someone working on the driver and we should expect a
> first
> working version before end of the year. I was just checking on that today
> :)
>
> Regards,
> Matthias
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.denx.de/pipermail/u-boot-board-maintainers/attachments/20191119/3cb5cb04/attachment-0001.html>


More information about the U-Boot-Board-Maintainers mailing list