apm821xx: MBL DUO-only: enable USB-Storage for boot from USB support
authorChristian Lamparter <chunkeey@gmail.com>
Sat, 17 Feb 2024 20:16:12 +0000 (21:16 +0100)
committerChristian Lamparter <chunkeey@gmail.com>
Sat, 2 Mar 2024 13:08:07 +0000 (14:08 +0100)
it is possible to boot and run OpenWrt from an image on an USB-Stick
on the MyBook Live DUO. (No, the MyBook Live Single does NOT have an
USB-Port and attempts at enabling it sadly all failed... so far).

To do that:
First, prepare a USB-Stick by writing the raw and uncompressed OpenWRT
factory image for the device onto the stick (i.e.
 # gunzip -c openwrt-*wd_mybooklive*-factory.img.gz > /dev/sd$XX).

Then enter the u-boot via an attached TTL/CMOS 3.3V cable adapter and
give the following commands a try in the:

 usb start; sata init
 ext2load usb 0:1 ${fdt_addr_r} /boot/apollo3g.dtb
 ext2load usb 0:1 ${kernel_addr_r} /boot/uImage
 setenv bootargs 'root=/dev/sdc2 rw rootfstype=squashfs,ext4 rootdelay=5'
 run addtty; bootm ${kernel_addr_r} - ${fdt_addr_r}

Notes:
 - booting from USB-Sticks takes a long time! Be prepared to wait a few
   minutes. (~3 minutes for 4 MiB /boot/uImage file on a USB 2.0 Stick)

 - the bootargs part 'root=/dev/sdX2' depends on how many HDDs/SSDs are
   slotted in. (if none: then use sda, if one: sdb. if two: sdc)

 - rootdelay is important as the storage on the USB-Sticks do not show
   up fast enough. 5 seconds might be excessive though.

 - it's possible to concat these commands together in one line and
   write it into u-boot's "bootcmd" environment variable and save the
   environment to make the device to always boot from USB from then on.

   if you have accidentally overridden the 'bootcmd' and want to return
   to 'spec' enter the following commands :

   setenv bootcmd 'run boot_sata_script_ap2nc'
   saveenv

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/apm821xx/sata/config-default

index daff2d04bef2bfb5638aada4cdfb075ac5622e2b..7efb914885f3bd92eaed2cebe06aef5d75ac9ecd 100644 (file)
@@ -54,3 +54,9 @@ CONFIG_PPC4xx_CPM=y
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
+CONFIG_USB=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_DWC2=y
+CONFIG_USB_DWC2_HOST=y
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_STORAGE=y