mediatek: rework support for BananaPi BPi-R64
authorDaniel Golle <daniel@makrotopia.org>
Sat, 27 Feb 2021 14:17:09 +0000 (14:17 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 28 Feb 2021 04:15:44 +0000 (04:15 +0000)
commitdfa0a38d1f4d5bbac768569e3769ae4438a57e73
tree04d8c630c07e74bc94db6f429a861dda1a9806ec
parentb102e281a4de8f177adcabbff07072a3c926c367
mediatek: rework support for BananaPi BPi-R64

**What's new**

 * Bring support for the Bananapi BPi-R64 to the level desirable for
   a nice hackable routerboard.
 * Use ARM Trusted Firmware A from source. (goodbye binary preloader)
 * Use Das U-Boot from source. (see previous commit)
 * Assemble SD-card image using OpenWrt image-commands.
   (no gen_sd_cruz_foo.sh added, this is not Raspbian)
 * Updated kernel options to support root filesystem.
 * Updated DTS to match OpenWrt LAN ports, known LEDs, buttons, ...
 * Detect root device, handle sysupgrade, config restore, ...
 * Wire up (known) LEDs and buttons in OpenWrt-fashion.
 * Build one set of images from SD-card and eMMC.
 * Hopefully provide a good example of how things can be done right
   from scratch.

**Installation and images**

 * Have an empty SD-card at hand
 * Write stuff to the card, as root (card device is /dev/mmcblkX)
   - write header, gpt, bl2, atf, u-boot and recovery kernel:
     `cat *bpi-r64-boot-sdcard.img *bpi-r64-initramfs-recovery.fit > /dev/mmcblkX`
   - rescan partitions:
     `blockdev --rereadpt /dev/mmcblkX`
   - write main system to production partition:
     `cat *bpi-r64-squashfs-sysupgrade.fit > /dev/mmcblkXp5`

 * Installation to eMMC works using SD-card bootloader via TFTP
   When running OpenWrt of SD-card, issue this to trigger installation
   to eMMC:
   `fw_setenv bootcmd run emmc_init`
   Be prepared to serve the content of bin/targets/mediatek/mt7622 on
   TFTP server address 192.168.1.254.

**What's missing**

 * The red LED is always on, probably a hardware bug.
 * AHCI (probably needs DTS changes)
 * Ship SD-card image ready with every needed for eMMC install.
 * The eMMC has a second, currently unused boot partition. This would
   be ideal to store the WiFi EEPROM and Ethernet MAC address(es).
   @sinovoip ideas?

Thanks to Thomas Hühn @thuehn for providing the hardware!

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/mediatek/dts/mt7622-bananapi-bpi-r64-rootdisk.dts [deleted file]
target/linux/mediatek/image/gen_mt7622_emmc_img.sh [deleted file]
target/linux/mediatek/image/mt7622.mk
target/linux/mediatek/mt7622/base-files/etc/board.d/02_network
target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
target/linux/mediatek/mt7622/config-5.10
target/linux/mediatek/mt7622/target.mk
target/linux/mediatek/patches-5.10/112-dts-fix-bpi64-lan-names.patch [new file with mode: 0644]
target/linux/mediatek/patches-5.10/112-dts-fix-bpi64-leds-and-buttons.patch [new file with mode: 0644]
target/linux/mediatek/patches-5.10/602-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch