Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
toh:sinovoip:bananapi_bpi_r3_mini [2024/02/20 02:29] – created danieltoh:sinovoip:bananapi_bpi_r3_mini [2024/12/16 23:26] (current) – added info about trouble with en8811h-firmware after NAND flashing. (P.P.S. part)) bulat-ch
Line 11: Line 11:
   "rotate": true,   "rotate": true,
   "shownColumns": ["brand", "model", "version", "supportedcurrentrel", "oemdevicehomepageurl", "forumsearch", "deviceid"],   "shownColumns": ["brand", "model", "version", "supportedcurrentrel", "oemdevicehomepageurl", "forumsearch", "deviceid"],
-  "filterColumns": {"brand": "^Sinovoip$", "model": "^BananaPi BPi R3 mini$"}+  "filterColumns": {"brand": "^Sinovoip$", "model": "^Banana Pi BPi-R3 Mini$"}
 } --> } -->
 +
 +===== Hardware Highlights =====
 +<!-- ToH: {
 +  "source": "json",
 +  "dom": "t",
 +  "paging": false,
 +  "rotate": true,
 +  "shownColumns": ["model", "version", "cpu", "cpumhz", "cpucores", "flashmb", "rammb", "wlanhardware", "wlan24ghz", "wlan50ghz", "ethernet1gports", "usbports"],
 +  "filterColumns": {"brand": "^Sinovoip$", "model": "^Banana Pi BPi-R3 Mini$"}
 +} -->
 +
 +  * Two 10M/100M/1G/2.5G capable RJ45 ports, directly connected to SOC.
 +
 +  * PCIe gen-3 x2 Key-M M.2 socket for NVMe SSD (or additional WiFi in Key-A/E to Key-M adapter)
 +
 +  * USB 3.0 only Key-B M.2 slot with SIM card slot (**no actual PCIe signals on the M.2 socket!**)
 +
 +===== Installation =====
 +/* stable release
 +<!-- ToH: {
 +  "source": "json",
 +  "dom": "t",
 +  "paging": false,
 +  "rotate": true,
 +  "shownColumns": ["model", "version", "supportedcurrentrel", "firmwareopenwrtinstallurl", "firmwareopenwrtupgradeurl", "firmwareoemstockurl"],
 +  "filterColumns": {"brand": "^Sinovoip$", "model": "^Banana Pi BPi-R3 Mini$"}
 +} -->
 +*/
 +
 +/* snapshot */
 +/* delete once stable release is available */
 +<!-- ToH: {
 +  "source": "json",
 +  "dom": "t",
 +  "paging": false,
 +  "rotate": true,
 +  "shownColumns": ["model", "version", "supportedcurrentrel", "firmwareopenwrtsnapshotinstallurl", "firmwareopenwrtsnapshotupgradeurl", "firmwareoemstockurl"],
 +  "filterColumns": {"brand": "^Sinovoip$", "model": "^Banana Pi BPi-R3 Mini$"}
 +} -->
 +
 +Please see the [[https://wiki.banana-pi.org/Getting_Started_with_BPI-R3_MINI|user manual provided by SinoVoip]] to understand the hardware switches selecting the available storage devices, and which device to boot from.
 +
 +=== Installation instructions for eMMC ===
 +0. Set boot switch to boot from SPI-NAND (assuming stock rom or immortalwrt running there)
 +
 +1. Write GPT partition table to eMMC
 + Move openwrt-mediatek-filogic-bananapi_bpi-r3-mini-emmc-gpt.bin to the device /tmp using scp and write it to /dev/mmcblk0:
 +  dd if=/tmp/openwrt-*-r3-mini-emmc-gpt.bin of=/dev/mmcblk0
 +
 +2. Reboot (to reload partition table)
 +
 +3. Write bootloader and OpenWrt images
 + Move files to the device /tmp using scp:
 +  openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin
 +  openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip
 +  openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb
 +  openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
 + Write them to the appropriate partitions:
 +  echo 0 > /sys/block/mmcblk0boot0/force_ro
 +  dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin of=/dev/mmcblk0boot0
 +  dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip of=/dev/mmcblk0p3
 +  dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb of=/dev/mmcblk0p4
 +  dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb of=/dev/mmcblk0p5
 +  sync
 +
 +4. Remove the device from power, set boot switch to eMMC and boot into OpenWrt. The device will come up with IP 192.168.1.1 and assume the
 +Ethernet port closer to the USB-C power connector as LAN port.
 +
 +5. If you like to have Ethernet support inside U-Boot (eg. to boot via TFTP) you also need to write the PHY firmware to /dev/mmcblk0boot1:
 +  echo 0 > /sys/block/mmcblk0boot1/force_ro
 +  dd if=/lib/firmware/airoha/EthMD32.dm.bin of=/dev/mmcblk0boot1
 +  dd if=/lib/firmware/airoha/EthMD32.DSP.bin bs=16384 seek=1 of=/dev/mmcblk0boot1
 +
 +=== Installation instructions for NAND ===
 +
 +0. Set boot switch to boot from eMMC (assuming OpenWrt is installed there by instructions above. Using stock rom or immortalwrt does NOT work!)
 +
 +1. Write things to NAND
 + Move files to the device /tmp using scp:
 +  openwrt-*-bananapi_bpi-r3-mini-snand-preloader.bin
 +  openwrt-*-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
 +  openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb
 +  openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
 + Write them to the appropriate locations:
 +  mtd write /tmp/openwrt-*-bananapi_bpi-r3-mini-snand-preloader.bin /dev/mtd0
 +  ubidetach -m 1
 +  ubiformat /dev/mtd1
 +  ubiattach -m 1
 +  volsize=$(wc -c < /tmp/openwrt-*-bananapi_bpi-r3-mini-snand-bl31-uboot.fip)
 +  ubimkvol /dev/ubi0 -N fip -n 0 -s $volsize -t static
 +  ubiupdatevol /dev/ubi0_0 /tmp/openwrt-*-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
 +  cd /lib/firmware/airoha
 +  cat EthMD32.dm.bin EthMD32.DSP.bin > /tmp/en8811h-fw.bin
 +  ubimkvol /dev/ubi0 -N en8811h-firmware -n 1 -s 147456 -t static
 +  ubiupdatevol /dev/ubi0_1 /tmp/en8811h-fw.bin
 +  ubimkvol /dev/ubi0 -n 2 -N ubootenv -s 126976
 +  ubimkvol /dev/ubi0 -n 3 -N ubootenv2 -s 126976
 +  volsize=$(wc -c < /tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb)
 +  ubimkvol /dev/ubi0 -n 4 -N recovery -s $volsize
 +  ubiupdatevol /dev/ubi0_4 /tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb
 +  volsize=$(wc -c < /tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb)
 +  ubimkvol /dev/ubi0 -n 5 -N fit -s $volsize
 +  ubiupdatevol /dev/ubi0_5 /tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
 +
 +3. Remove the device from power, set boot switch to NAND, power up and boot into OpenWrt.
 +
 +
 +
 +P.S.: in case write to MTD results in error, apply the following
 +  insmod mtd-rw.ko i_want_a_brick=1 
 +  
 +  
 +P.P.S.: If after NAND flashing to 24.10.0-rc2 and trying flash using TFTP you got an error like this: 
 +  Volume en8811h-fw not found! 
 +  [Airoha] read firmware from UBI failed. 
 +  EN8811H load firmware fail.
 +Please change in instucion above:
 +  ubimkvol /dev/ubi0 -N en8811h-firmware -n 1 -s 147456 -t static
 +to:
 +  ubimkvol /dev/ubi0 -N en8811h-fw -n 1 -s 147456 -t static
 +  
  • Last modified: 2024/12/16 23:26
  • by bulat-ch