Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
toh:sinovoip:bananapi_bpi_r3_v1.0_v1.1 [2023/01/16 00:58] – [Switch Ports (for VLANs)] garlettoh:sinovoip:bananapi_bpi_r3_v1.0_v1.1 [2024/02/12 11:13] – external edit
Line 4: Line 4:
 ===== Supported Versions ===== ===== Supported Versions =====
  
----- datatable ---- +<!-- ToH: { 
-cols    BrandModelVersionsSupported Current Rel, OEM device homepage URL_url, Forum Search_search-forums, Device Techdata_pageid +  "source""json", 
-headers BrandModel, Version, Current Release, OEM Info, Forum Search, Technical Data +  "dom": "t", 
-align   c,c,c,c,c,c,c +  "paging": false
-filter  : Brand=Sinovoip +  "rotate"true
-filter  Model=BananaPi BPi R3 +  "shownColumns"["brand""model""version""supportedcurrentrel""oemdevicehomepageurl""forumsearch", "deviceid"]
- +  "filterColumns"{"brand": "^Sinovoip$", "model""^BananaPi BPi R3$"} 
-----+-->
  
 /* If no unsupported functions known, comment out the following datatable or delete it.  /* If no unsupported functions known, comment out the following datatable or delete it. 
----- datatable ---- +<!-- ToH: { 
-cols    Unsupported Functions_unsupporteds +  "source""json", 
-filter  : Brand=Sinovoip +  "dom""t", 
-filter  : Model=BananaPi BPi R3 +  "paging"false, 
----- */+  "shownColumns": ["unsupported_functions", "model", "version", "cpu", "cpumhz", "cpucores", "flashmb", "rammb", "wlanhardware", "wlan24ghz", "wlan50ghz", "ethernet100mports", "ethernet1gports", "modem", "usbports"], 
 +  "filterColumns": {"brand": "^Sinovoip$", "model": "^BananaPi BPi R3$"} 
 +-->
  
-===== Experimental Versions =====+  * Two 1G/2.5G capable SFP cages, one of them connected via the on-board MT7531 switch.
  
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  +  * PCIe gen-3 x2 Key-M M2/NGFF socket for NVMe SSD (or additional WiFi in Key-A/E to Key-M adapter)
-   The official Table of Hardware only lists current, stable versions of OpenWrt.  * +
-   Use this space to describe any on-going efforts to create a newer version       * +
-   of the firmware for this device. Provide links to firmware images,              * +
-   active threads on the forum, or other sources of information.                   * +
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +
- +
-//None at this time.// +
- +
-===== Hardware Highlights ===== +
----- datatable ---- +
-cols    : Model, Versions, CPU, CPU MHz, CPU Cores_numcores, Flash MB_mbflashs, RAM MB_mbram, WLAN Hardware, WLAN 2.4GHz, WLAN 5.0GHz, Ethernet 100M ports_, Ethernet Gbit ports_, Modem, USB ports_ +
-header  : Model, Version,SoC,CPU MHz,CPU Cores,Flash MB,RAM MB,WLAN Hardware,WLAN2.4,WLAN5.0,100M ports,Gbit ports,Modem,USB +
-align   : c,c,c,c,c,c,c,c,c,c,c,c,+
-filter  : Brand=Sinovoip +
-filter  : Model=BananaPi BPi R3 +
-----+
  
 +  * mPCIe slot with SIM card slot and USB 2.0 wired (**no actual PCIe signals on the mPCIe socket!**)
  
 ===== Installation ===== ===== Installation =====
 /* stable release */ /* stable release */
-/* uncomment once stable release is available +<!-- ToH: { 
----- datatable ---- +  "source""json", 
-cols    ModelVersionsSupported Current RelFirmware OpenWrt Install URL_urlFirmware OpenWrt Upgrade URL_url, Firmware OEM Stock URL_url +  "dom": "t", 
-headers ModelVersionCurrent ReleaseFirmware OpenWrt InstallFirmware OpenWrt UpgradeFirmware OEM Stock +  "paging": false, 
-align   : c,c,c +  "rotate": true
-filter  : Brand=Sinovoip +  "shownColumns"["model""version""supportedcurrentrel""firmwareopenwrtinstallurl""firmwareopenwrtupgradeurl""firmwareoemstockurl"]
-filter  Model=BananaPi BPi R3 +  "filterColumns"{"brand": "^Sinovoip$", "model""^BananaPi BPi R3$"} 
-filter  : Versions~V1.0, V1.1 +-->
----- +
-*/+
  
  
 /* snapshot */ /* snapshot */
-/* delete once stable release is available */ +/* delete once stable release is available 
----- datatable ---- +<!-- ToH: { 
-cols    ModelVersionsSupported Current RelFirmware OpenWrt snapshot Install URL_url, Firmware OpenWrt snapshot Upgrade URL_url, Firmware OEM Stock URL_url +  "source""json", 
-headers ModelVersionCurrent ReleaseFirmware OpenWrt snapshot InstallFirmware OpenWrt snapshot UpgradeFirmware OEM Stock +  "dom": "t", 
-align   : c,c,c +  "paging": false
-filter  : Brand=Sinovoip +  "shownColumns"["model""version""supportedcurrentrel""firmwareopenwrtsnapshotinstallurl""firmwareopenwrtsnapshotupgradeurl""firmwareoemstockurl"]
-filter  Model=BananaPi BPi R3 +  "filterColumns"{"brand": "^Sinovoip$", "model""^BananaPi BPi R3$"} 
-----+--
 +*/
  
-Tip: firmware-selector.openwrt.org can create a custom snapshot with packages like luci-ssl+Tip: [[https://firmware-selector.openwrt.org/?target=mediatek%2Ffilogic&id=bananapi_bpi-r3|firmware-selector.openwrt.org]] can create a custom snapshot with packages like luci-ssl
  
   - Unzip bananapi_bpi-r3-sdcard and write the image on a micro sd card using:   - Unzip bananapi_bpi-r3-sdcard and write the image on a micro sd card using:
-    * on linux: dd if=.....img of=/dev/...  (fix-me)+    * on linux: dd if=openwrt-mediatek-filogic-bananapi_bpi-r3-sdcard.img of=/dev/mmcblk_ OR sd_ )
     * on win: https://sourceforge.net/projects/win32diskimager/     * on win: https://sourceforge.net/projects/win32diskimager/
   - Insert the sd card   - Insert the sd card
Line 75: Line 61:
     - Connect power cord and wait boot (~20s)     - Connect power cord and wait boot (~20s)
     - ssh the device and type: <code> fw_setenv bootcmd "run nor_init ; env default bootcmd ; saveenv ; reset"; reboot </code>     - ssh the device and type: <code> fw_setenv bootcmd "run nor_init ; env default bootcmd ; saveenv ; reset"; reboot </code>
-    - Wait reboot and nor flashing (  (fix-me) 3 min ?)+    - Wait reboot and nor flashing (~90s)
     - Disconnect power     - Disconnect power
   - To install on NAND (128 MB) (optional):   - To install on NAND (128 MB) (optional):
Line 81: Line 67:
     - Connect power cord and wait boot (~20s)     - Connect power cord and wait boot (~20s)
     - ssh the device and type: <code> fw_setenv bootcmd "run ubi_init ; env default bootcmd ; saveenv ; reset"; reboot </code>     - ssh the device and type: <code> fw_setenv bootcmd "run ubi_init ; env default bootcmd ; saveenv ; reset"; reboot </code>
-    - Wait reboot and nor flashing (  (fix-me) 3 min ?)+    - Wait reboot and nand flashing (~90s)
     - Disconnect power     - Disconnect power
     - To install on eMMC (8192 MB) (optional):     - To install on eMMC (8192 MB) (optional):
Line 87: Line 73:
       - Connect power cord and wait boot (~20s)       - Connect power cord and wait boot (~20s)
       - ssh the device and type: <code> fw_setenv bootcmd "run emmc_init ; env default bootcmd ; saveenv ; reset"; reboot </code>       - ssh the device and type: <code> fw_setenv bootcmd "run emmc_init ; env default bootcmd ; saveenv ; reset"; reboot </code>
-      - Wait reboot and nor flashing (  (fix-me) 3 min ?)+      - Wait reboot and eMMC flashing (~90s)
       - Disconnect power       - Disconnect power
-  - Set the boot switch to your favorite location +  - Set the boot switch to your favorite location
  
  
Line 95: Line 81:
  
 ==== Flash Layout ==== ==== Flash Layout ====
-<WRAP BOX> +# lsblk /dev/mmcblk0  /dev/mtdblock*  -o START,SIZE,FSTYPE,NAME,PARTLABEL 
-FIXME //[[:docs:techref:flash.layout#discovery_how_to_find_out|Find out flash layout]]then add the flash layout table here (copypastemodify the [[docs:techref:flash.layout#partitioning_of_the_flash|example]]).//+^ START ^ SIZE ^ FSTYPE ^ NAME ^ PARTLABEL ^ 
 +|        |   7.3 GiB          | mmcblk0   | emmc device | 
 +|     34 |   4.0 MiB |          | ├mmcblk0p128 | | 
 +|   8192 |   0.5 MiB |          | ├mmcblk0p1 | ubootenv | 
 +|   9216 |   2.0 MiB |          | ├mmcblk0p2 | factory | 
 +|  13312 |   4.0 MiB |          | ├mmcblk0p3 | fip uboot | 
 +|  24576 |  32.0 MiB |          | ├mmcblk0p4 | recovery | 
 +| 131072 | 104.0 MiB |          | ├mmcblk0p5 | production | 
 +| 141856 |   6.1 MiB | squashfs |  ├mmcblk0p65 | /rom | 
 +| 154296 |  92.7 MiB | f2fs      └mmcblk0p66 | /overlay | 
 +|        | 128.0 MiB |          | NAND | | 
 +|        | 122.5 MiB | ubi      | ├mtdblock0 | / | 
 +|        |   2.0 MiB |          | ├mtdblock1 | uboot | 
 +|        |   3.0 MiB |          | ├mtdblock2 | | 
 +|        |   0.5 MiB |          | └mtdblock3 | bl2 second stage bootloader | 
 +|        |  32.0 MiB |          | NOR | | 
 +|        |  20.0 MiB |          | ├mtdblock0 | | 
 +|  10816 |   5.6 MiB | squashfs |  └mtdblock0p1 | |  
 +|        |   9.1 MiB |          | ├mtdblock1 | | 
 +|        |  10.5 MiB |          | ├mtdblock2 | |  
 +|        |   0.5 MiB |          | ├mtdblock3 | |  
 +|        |   0.5 MiB |          | ├mtdblock4 | |  
 +|        |   0.2 MiB |          | ├mtdblock5 | |  
 +|        |   0.2 MiB |          | └mtdblock6 | | 
  
-Please check out the article [[docs:techref:flash.layout|Flash layout]]. It contains examples and explanations that describe how to document the flash layout. + 
-</WRAP>+To create data partition and resize eMMC f2fs, boot on NOR(0000) or NAND(1010) and type: 
 +<code> 
 +parted /dev/mmcblk0 -- mkpart f2fs 768MiB -34s resizepart 5 768MiB resizepart 4 67.1M resizepart 3 12.6M  
 +  # say F to fix gpt global size 
 +reboot 
 + 
 +mount /dev/mmcblk0p66 /mnt && umount /dev/mmcblk0p66 && resize.f2fs /dev/mmcblk0p66 
 +  # if resize.f2fs fails, a sysupgrade may fix 
 +</code> 
 +Now boot on eMMC(0110) and check if it worked ! 
 + 
 + 
 + 
 +Get [[https://docs.kernel.org/filesystems/f2fs.html|f2fs]] info, including "discard blocks": 
 +<code> cat /sys/kernel/debug/f2fs/status </code>
  
 ===== Upgrading OpenWrt ===== ===== Upgrading OpenWrt =====
Line 134: Line 157:
 ===== Specific Configuration ===== ===== Specific Configuration =====
  
-<WRAP BOX> 
-FIXME Please fill in real values for this device, then remove the EXAMPLEs 
  
 ==== Network interfaces ==== ==== Network interfaces ====
 The default network configuration is: The default network configuration is:
 ^ Interface Name   ^ Description                  ^ Default configuration    ^ ^ Interface Name   ^ Description                  ^ Default configuration    ^
-| br-lan           EXAMPLE LAN & WiFi           EXAMPLE 192.168.1.1/24   | +| br-lan           | LAN ports, SFP2 & WiFi       | 192.168.1.1/24   | 
-vlan0 (eth0.0)   EXAMPLE LAN ports (1 to 4)   | EXAMPLE None             | +br-wan           | WAN port and SFP1            | DHCP             |
-| vlan1 (eth0.1)   | EXAMPLE WAN port             EXAMPLE DHCP             | +
-| wl0              | EXAMPLE WiFi                 | EXAMPLE Disabled         | +
- +
-</WRAP>+
  
 ==== Ports ==== ==== Ports ====
Line 161: Line 178:
 -> [[docs:guide-user:hardware:hardware.button]] on howto use and configure the hardware button(s). -> [[docs:guide-user:hardware:hardware.button]] on howto use and configure the hardware button(s).
 Here, we merely name the buttons, so we can use them in the above Howto. Here, we merely name the buttons, so we can use them in the above Howto.
- 
-<WRAP BOX> 
-FIXME Please fill in real values for this device, then remove the EXAMPLEs 
  
 The Sinovoip BananaPi BPi R3 has the following buttons: The Sinovoip BananaPi BPi R3 has the following buttons:
Line 171: Line 185:
 | WPS button                     ses   | | WPS button                     ses   |
 | boot switch (x4)                -    | | boot switch (x4)                -    |
- 
-</WRAP> 
  
 ===== Hardware ===== ===== Hardware =====
 ==== Info ==== ==== Info ====
  
----- datatemplatelist dttpllist ---- +<!-- ToH: { 
-templatemeta:template_datatemplatelist +  "source""json", 
-cols    BrandModelVersionsDevice TypeAvailabilitySupported Since Commit_gitSupported since RelSupported current RelUnsupportedBootloaderCPUTargetCPU MHzFlash MBsRAM MBSwitchEthernet 100M ports_Ethernet Gbit ports_Comments network ports_ModemVLANWLAN 2.4GHzWLAN 5.0GHzWLAN HardwaresWLAN Comments_Detachable Antennas_USB ports_SATA ports_Comments USB SATA ports_SerialJTAGLED countButton countPower supplyDevice Techdata_pageidForum topic URL_urlwikidevi URL_urlOEM Device Homepage URL_urlFirmware OEM Stock URL_urlFirmware OpenWrt Install URL_urlFirmware OpenWrt Upgrade URL_urlComments_ +  "dom""t", 
-filter  : Brand=Sinovoip +  "paging"false, 
-filter  Model=BananaPi BPi R3 +  "rotate": true, 
-----+  "shownColumns": ["brand""model""version""devicetype""availability""supportedsincecommit""supportedsincerel""supportedcurrentrel""unsupported_functions""bootloader""cpu""target""cpumhz""flashmb""rammb""switch""ethernet100mports""ethernet1gports""commentsnetworkports""modem""vlan""wlan24ghz""wlan50ghz""wlanhardware""wlancomments""detachableantennas""usbports""sataports""commentsusbsataports""serial""jtag""ledcount""buttoncount""powersupply""deviceid""owrt_forum_topic_url""wikideviurl""oemdevicehomepageurl""firmwareoemstockurl", "firmwareopenwrtinstallurl", "firmwareopenwrtupgradeurl", "comments"]
 +  "filterColumns"{"brand": "^Sinovoip$", "model""^BananaPi BPi R3$"} 
 +--
 +^ Task ^ Power Consumption (Wh) ^ 
 +| Idle | 4.0 | 
 +| 2.4 Ghz | 0.2 .. 1.0 | 
 +| 5.0 Ghz | 0.2 .. 1.0 | 
 +| OpenSSL | 0.2 |
  
 ==== Photos ==== ==== Photos ====
Line 211: Line 230:
 -> [[docs:techref:hardware:port.jtag]] general information about the JTAG port, JTAG cable, etc. -> [[docs:techref:hardware:port.jtag]] general information about the JTAG port, JTAG cable, etc.
  
-How to connect to the JTAG Port of this specific device:\\ +JTAG pins are exposed as part of the 26-pin GPIO pin header. As JTAG function is shared with other functions (pinmux), the pins need to be put into JTAG mode to work (ie. can be deactivated by software). 
-**Insert photo of PCB with markings for JTAG port**+ 
 +Find OpenOCD scripts provided by MediaTek [[https://github.com/mtk-openwrt/openocd-scripts/tree/main/mt7986|here]].
  
 ===== Bootloader mods ===== ===== Bootloader mods =====
 -> [[docs:techref:bootloader]] -> [[docs:techref:bootloader]]
 +Boot process:
 +  - Boot ROM (burned into MT7986A SoC, cannot be changed): loads first block of storage device, selected by bootstrap pins connected to switches on the R3
 +  - ARM Trusted Firmware BL2: starts and initializes the CPU and DRAM, then loads next stage
 +  - ARM Trusted Firmware BL3: contains ARM Trusted Firmware run-time (BL31) and U-Boot (BL33)
 +  - [[:docs:techref:bootloader:uboot|U-Boot]]: provides boot menu and network capabilities, loads OpenWrt/Linux
 +
 +All parts of the boot process apart from the Boot ROM and the memory initialization function in ARM Trusted Firmware BL2 are provided in source and **are built from source** in the OpenWrt build system.
 +
 +The U-Boot loader built from source with the OpenWrt image comes with a recovery/production dual-boot capabilities, options to install OpenWrt to all storage devices of the board, network capabilities incl. TFTP client and server, UEFI boot from removable storage and much more.
  
 ===== Hardware mods ===== ===== Hardware mods =====
Line 518: Line 547:
 //Space for additional notes, links to forum threads or other resources.// //Space for additional notes, links to forum threads or other resources.//
  
-  * ... 
  
 ===== Tags ===== ===== Tags =====
-<WRAP BOX> +[[meta:tags|How to add tags]]
-FIXME //Add tags below, then remove this fixme.// +
-</WRAP>+
  
-[[meta:tags|How to add tags]] +{{tag>4core armv8 MT7986 4nic sfp 1sim 8ant detachableantenna wifi6 802.11ax 802.11bgn 2048ram 32flash 128nand 8192emmc usb3.0 2usb m.2 fan 2button gpio microsd 12v_powered mediatek 7Port GigabitEthernet 2.5GigabitEthernet lte MiniPCIexpress DevBoard Filogic 2NIC hwVLAN 2WNIC TRNG crypto Serial SPI DualFirmware}}
-{{tag>EXAMPLETAG}}+