Have you seen/fixed this bug with hw offload: [R64] Mainline OpenWRT image ?
Support for BananaPi BPi-R64
OpenWrt UBI installer image generator
is there a mainline-series to add hw-nat?
in openwrt it is pending, and i do not see the previous selection to mt7622 (and 7621/7629) only
Hi, I want to tell about my experience with new firmware update. Fist you need flash openwrt-mediatek-mt7622-bananapi_bpi-r64-boot-sdcard.img file to SD and load. After that you see new u-boot:
Recovery system this openwrt-mediatek-mt7622-bananapi_bpi-r64-initramfs-recovery.itb, production system this openwrt-mediatek-mt7622-bananapi_bpi-r64-squashfs-sysupgrade.itb.
I have load openwrt-mediatek-mt7622-bananapi_bpi-r64-squashfs-sysupgrade this is status screen:
.root@OpenWrt:/# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 25.8M 25.8M 0 100% /rom
tmpfs 496.7M 3.0M 493.8M 1% /tmp
tmpfs 496.7M 504.0K 496.2M 0% /tmp/root
overlayfs:/tmp/root 496.7M 504.0K 496.2M 0% /
tmpfs 512.0K 0 512.0K 0% /dev
But I have one big trouble. System can’t save settings after reboot (I use sysupgrade image). And other trouble, serial console does not react to keyboard (you must reboot some times and then it start react, I don’t understant how It work)
There has been a problem with the new way we deal with mmc/block storage and GPT partitions which lead to overlay being reinitialized on every boot. This is fixed in more recent builds after
https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=ec76cbc521e182d04bc07339e3c7b5a7a8f15a5b
If you are running an image where you still encounter that bug, you can fix it in the meantime by doing
ln -s 2 /overlay/.fs_state
I’ve also encountered the slightly weird behavior of the serial console which makes navigating the bootmenu more tricky than on other MT7622 boards I’ve been dealing with. Probably there is still something wrong/missing in DTS or pinctrl driver in U-Boot – the faulty red LED (always on despite GPIO88 being wired up) is an other indicator of that. The OpenWrt build of U-Boot is U-Boot 2020.10 with MediaTek’s patches on top plus adding defconfigs and environments for boards. For the BPi-R64 I’m using the dts contained in the U-Boot repository and just add LEDs and buttons to it (so that factory reset of the environment works by holding the button during power-on). For Linux it’s similar. So it’d be interesting to know if other people also encounter this when running recent U-Boot and Kernel, and if not, are they using the DTS from those upstream sources?
Other than that U-Boot works fine, I’ve just have it run 4 passes of Memtest86 9.0 EFI
And everything needed for eMMC installation is now already integrated on the SD Card image to make it easier.
I’ve also made an OpenWrt wiki page:
Feel free to edit/complete stuff there.
Remaining issues are:
- the red LED
- serial console weirdness
- no way to load mt7622 wifi EEPROM from mmc (mt76 driver needs to be extended for that, ideally we put mt7622 wifi eeprom and maybe MAC addresses in the unused boot1 partition of the eMMC)
- add SPI-NAND to DTS
- boot from SPI-NAND (are bootselect pins exposed for that?)
Regarding the RED led, check my comment here from MT7622 programming manual: Official OpenWrt Support for BananaPi BPi-R64 & what is missing
I think GPIO88 pin needs to be told do do GPIO and not I2C1_SDA
Can you describe this a bit more? I have same behaviour like on r2 and no üroblems in bootmenu/uboot. Do you use a modified or upstream uboot? Maybe compare config with my one
I use upstream 2020.10 with the few patches on top (see package/boot/uboot-mediatek in OpenWrt tree). It works well with other MT7622 boards (Belkin RT3200/Linksys E8450), no problems with the serial port there. On the Bananapi serial RX has problems only with specific bytes sent, so maybe baud clocking slightly off or something like that.
Assigning GPIO function to PIN 88 happens automatically by the pinctrl-mt7622 driver when you request the GPIO PIN. Ie. that’s the mode which is set once you add the LED to gpio-leds, as that will request the PIN and thereby set it to GPIO mode (at least this is how pinctrl on those mtk SoCs is supposed to work)
I noticed that my 2 bpi boards (r2,r64) do not support specific usb2uart (e.g. with profilic chips),maybe this is the cause. I currently only using cp2102
You are right. I swapped the FTDI FT232R (could be a fake) for FTDI FT2232HL and now it works perfectly.
I want to tall that u-boot from graphin firmwere or firmware witch posted sinovoip don’t has this truble with serial console, they only appear in last OpenWRT.
I have try new build. Settings is saved fine. And I have noticed one detail, If you press arrow button many time during loading u-boot It will start response to keyboard.
Maybe there are more patches or DTS changes bundled into this U-Boot binary from @sinovoip? And yes, I’ve also noticed that only arrow keys in menu are affected and they do work after trying a lot of times. I suspect pinconf/pinctrl issue.
I have one more trouble, if I picked “Install bootloader and recovery to eMMC.” and try load from eMMC I take this:
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000000000-0x00000000000001FF] "" (1 blocks)
[PART] [0x0000000000004400-0x00000000001FFFFF] "" (4062 blocks)
Device APC domain init setup:
Domain Setup (0x0)
Domain Setup (0x0)
Device APC domain after setup:
Domain Setup (0x0)
Domain Setup (0x0)
[get_part] part->nr_sects=2048, part->info->name=fip
[get_part] part->nr_sects=2048, part->info->name=ubootenv
[get_part] part->nr_sects=65536, part->info->name=recovery
[get_part] part->nr_sects=2007040, part->info->name=production
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=1, part->info->name=
[get_part] part->nr_sects=4062, part->info->name=
[BLDR] lk partition not found
load lk (ret=-1)
[BLDR] Second Bootloader Load Failed
PL fatal error...
And during Banana PI loading, Windows find new network. On earlier builds It Fixed by set MAC address in Network interface options but in last build it dont work.
Maybe try setting a fixed address in the bootloader environment as well, because apparently bootloader also brings up the interface to some level (haven’t checked).
fw_setenv ethaddr 11:22:33:44:55:66
(in OpenWrt)
or
setenv ethaddr 11:22:33:44:55:66
(in U-Boot)
I have set ethaddr in U-boot, but this is don’t help. But if I open network settings in Windows It connect to network witch I set in Network interface ( for example Windows have find new network 68, but connected to network 60 witch mac addres set in Network interface options)
We need to tell U-Boot to pass down the MAC address to Linux. It works like that:
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts 2021-02-18 18:06:59.890603978 +0000
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts 2021-03-03 21:47:52.562303132 +0000
@@ -18,6 +18,8 @@
aliases {
serial0 = &uart0;
+ ethernet0 = &gmac0;
+ ethernet1 = &gmac1;
};
chosen {
(at least this is how they do with U-Boot on sunxi, guess it’d work the same on this platform)
Was the eMMC empty at the time of installation? Because there is something lokking for lk
partition, we don’t have such a partition. It should be bl2 looking for partition fip
instead.
Maybe your eMMC was already installed and the boot partition write protected, so the installer could not overwrite that old Preloader?