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>
2021-02-27 14:17:09 +00:00
|
|
|
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
|
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
|
|
|
@@ -18,6 +18,10 @@
|
|
|
|
|
|
|
|
aliases {
|
|
|
|
serial0 = &uart0;
|
|
|
|
+ led-boot = &led_system_green;
|
|
|
|
+ led-failsafe = &led_system_blue;
|
|
|
|
+ led-running = &led_system_green;
|
|
|
|
+ led-upgrade = &led_system_blue;
|
|
|
|
};
|
|
|
|
|
|
|
|
chosen {
|
|
|
|
@@ -41,8 +45,8 @@
|
|
|
|
compatible = "gpio-keys";
|
|
|
|
|
|
|
|
factory {
|
|
|
|
- label = "factory";
|
|
|
|
- linux,code = <BTN_0>;
|
|
|
|
+ label = "reset";
|
|
|
|
+ linux,code = <KEY_RESTART>;
|
|
|
|
gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
|
|
|
|
};
|
|
|
|
|
|
|
|
@@ -56,17 +60,25 @@
|
|
|
|
leds {
|
|
|
|
compatible = "gpio-leds";
|
|
|
|
|
|
|
|
- green {
|
|
|
|
- label = "bpi-r64:pio:green";
|
|
|
|
- gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
|
|
|
|
+ led_system_blue: blue {
|
|
|
|
+ label = "bpi-r64:pio:blue";
|
2021-03-01 21:46:38 +00:00
|
|
|
+ gpios = <&pio 85 GPIO_ACTIVE_HIGH>;
|
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>
2021-02-27 14:17:09 +00:00
|
|
|
default-state = "off";
|
|
|
|
};
|
|
|
|
|
|
|
|
- red {
|
|
|
|
- label = "bpi-r64:pio:red";
|
|
|
|
- gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
|
|
|
|
+ led_system_green: green {
|
|
|
|
+ label = "bpi-r64:pio:green";
|
|
|
|
+ gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
|
|
|
|
default-state = "off";
|
|
|
|
};
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * red {
|
|
|
|
+ * label = "bpi-r64:pio:red";
|
|
|
|
+ * gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
|
|
|
|
+ * default-state = "off";
|
|
|
|
+ * };
|
|
|
|
+ */
|
|
|
|
};
|
|
|
|
|
|
|
|
memory {
|