mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 22:23:27 +00:00
82620cd610
Follow the recommendations stated in the Turris Omnia DTS for eth2: "In case SFP module is present, U-Boot has to enable the sfp node above, remove phy-handle property, and add managed = "in-band-status" property." The boot script is written in a way, that it works for all U-Boot versions deployed by the vendor so far (2015.10-rc2, 2019.07). Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
33 lines
1.0 KiB
Plaintext
33 lines
1.0 KiB
Plaintext
# Determine root device
|
|
setexpr rootpart ${distro_bootpart} + 1
|
|
if test ${devtype} = mmc -a ${devnum} = 0; then
|
|
setenv rootdev /dev/mmcblk0p${rootpart}
|
|
elif test ${devtype} = scsi -a ${devnum} = 0; then
|
|
setenv rootdev /dev/sda${rootpart}
|
|
else
|
|
# New U-Boot only
|
|
part uuid ${devtype} ${devnum}:${rootpart} uuid
|
|
setenv rootdev PARTUUID=${uuid}
|
|
fi
|
|
setenv bootargs earlyprintk console=ttyS0,115200 root=${rootdev} rootfstype=auto rootwait
|
|
|
|
# Load device tree and prepare for modification
|
|
load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} @DTB@.dtb
|
|
fdt addr ${fdt_addr_r}
|
|
fdt resize
|
|
|
|
# Enable SFP cage, if module is present
|
|
i2c dev 0
|
|
i2c mw 0x70 0.0 0xf
|
|
i2c read 0x71 0 1 0x00fffff1
|
|
setexpr.b mod_def0 *0x00fffff1 \& 0x10
|
|
if test ${mod_def0} -eq 0; then
|
|
fdt set /sfp status okay
|
|
fdt rm /soc/internal-regs/ethernet@34000 phy-handle
|
|
fdt set /soc/internal-regs/ethernet@34000 managed in-band-status
|
|
fi
|
|
|
|
# Load kernel and boot
|
|
load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} zImage
|
|
bootz ${kernel_addr_r} - ${fdt_addr_r}
|