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
inbox:toh:sinovoip:bananapi_bpi-r4 [2024/02/19 02:32] – [OpenWrt bootlog] add bootlog danielinbox:toh:sinovoip:bananapi_bpi-r4 [2024/11/21 07:31] – Add information how to enable WO firmware dpawlik
Line 1: Line 1:
-====== Sinovoip BananaPi BPi-R4 ======+====== Sinovoip BananaPi BPI-R4 ======
 ~~NOTOC~~ ~~NOTOC~~
  
Line 6: Line 6:
 {{page>meta:infobox:construction&noheader&nofooter&noeditbtn}} {{page>meta:infobox:construction&noheader&nofooter&noeditbtn}}
  
-/Banana Pi BPI-R4 Router board with MediaTek MT7988A (Filogic 880) quad-core ARM Corex-A73 design, 4GB DDR4 RAM, 8GB eMMC, 128MB SPI-NAND flash onboardalso have 2x 10Gbe SFP, 4x Gbe network portUSB3.2 port, M.2 support 4G/5G/NVME SSD.2x miniPCIe slots with PCIe3.0 2lane interface for Wi-Fi 7 NIC.+Banana Pi BPI-R4 uses the MediaTek MT7988A (Filogic 880), a 1.8GHz quad-core ARM Corex-A73 SoC. Included is 4GB DDR4 RAM, 8GB eMMC, 128MB SPI-NAND flash, 2x 10Gbe SFP, 4x 1Gbe network portsUSB 3.2 port, M.2 supports 4G/5G/NVMESSD.2x miniPCIe slots with PCIe 3.0 2lane interface for Wi-Fi 7 NIC. 
 + 
 +{{media:sinovoip:banana_pi_bpi-r4_1.jpg?300|BPi-R4}}
  
 /*****/ /*****/
 /* How to add images ========> https://openwrt.org/meta/adding_images_to_openwrt_wiki */ /* How to add images ========> https://openwrt.org/meta/adding_images_to_openwrt_wiki */
 /*****/ /*****/
- 
-{{ media:sinovoip:banana_pi_bpi-r4_1.jpg?200|Generic Router}} 
- 
  
 ===== OpenWrt support ===== ===== OpenWrt support =====
  
-Experimental support in OpenWrt main branch and snapshots after [[commit>?p=openwrt/openwrt.git;a=commitdiff;h=f16dc4b42fb265affb2298e815a7ce0a13d60da6|2024-02-15]]+<!-- ToH: { 
 +  "source": "json", 
 +  "dom": "t", 
 +  "paging": false, 
 +  "rotate": true, 
 +  "shownColumns": ["brand", "model", "version", "supportedcurrentrel", "oemdevicehomepageurl", "forumsearch", "deviceid"]
 +  "filterColumns": {"brand": "^Sinovoip$", "model": "^Banana Pi BPi-R4$"
 +} -->
  
 +/*** if info available: uncomment and fill in
  
-/*** if info available: uncomment and fill in 
 ===== Supporting activities ===== ===== Supporting activities =====
 //Describe if there are any ongoing activities that might lead to OpenWrt support.// //Describe if there are any ongoing activities that might lead to OpenWrt support.//
Line 29: Line 35:
  
 /*** if info available: uncomment and fill in /*** if info available: uncomment and fill in
 +
 ===== Experimental firmware ===== ===== Experimental firmware =====
  
Line 40: Line 47:
 ***/ ***/
  
 +===== Installation =====
  
-===== Hardware highlights ===== +The easiest way to run OpenWrt is [[https://firmware-selector.openwrt.org/?version=SNAPSHOT&target=mediatek%2Ffilogic&id=bananapi_bpi-r4|download]] a snapshot, write it to an [[docs:guide-user:installation:installation_methods:sd card]], and boot it.
-^ CPU                        ^ Ram      ^ Flash   ^ Network     ^ WLAN   ^ USB      ^ Serial   ^ JTag   ^ +
-MediaTek Filogic 880 @ 1800 MHz    4 GiB  |  128 MiB + 8 GiB  |  2x 10G + 4x 10/100/1000  |  b/g/n/ac/ax/be    1x 3.2  |   Yes    |   Yes    |+
  
 +<code>
 +$ zcat openwrt-mediatek-filogic-bananapi_bpi-r4-sdcard.img.gz | dd of=/dev/sdX bs=1M status=progress
 +</code>
  
-/*** if info available: uncomment and fill in +The installation method for the various Banana Pi boards is similar, so until this page is complete you may also refer to [[:toh:sinovoip:bananapi_bpi-r3]]. Read the [[https://wiki.banana-pi.org/Getting_Started_with_BPI-R4|user manual]] provided by SinoVoip to understand the hardware switches selecting the available storage devices, and which device to boot from. It's possible to boot from an SD card, from the internal eMMC, or from the internal SPI-NAND flash.
-===== Installation ===== +
-  - → [[:downloads|Obtain firmware]] +
-  - → [[docs:guide-user:installation:generic.flashing|Install OpenWrt]] +
-  → [[:downloads|Latest OpenWrt release]]+
  
-==== Installing OpenWrt ==== +If you have a serial console attached, then in the boot menu of the BPI you can select //Install bootloader, recovery and production to NAND// to install from the sdcard to the internal NAND. After that you can remove the sdcard, change the boot switch, and boot from the NAND.
-***/+
  
 +Installing to eMMC is possible by first installing to NAND, then copy from the NAND to eMMC. This is because the sdcard and the eMMC cannot be both accessed at the same time. The sdcard takes priority and "hides" the internal eMMC when inserted.
 +
 +You may also instruct the bootloader to perform an installation on the next reboot using the bootloader environment from inside OpenWrt via SSH. See the details at [[:toh:sinovoip:bananapi_bpi-r3]].
 +
 +[[wp>NVM_Express|NVMe]] storage can be used by including or installing the driver ''kmod-nvme''.
  
 /*** if info available: uncomment and fill in /*** if info available: uncomment and fill in
 +
 ===== Debricking ===== ===== Debricking =====
 -> [[docs:guide-user:troubleshooting:generic.debrick]] -> [[docs:guide-user:troubleshooting:generic.debrick]]
Line 63: Line 73:
  
 /*** if info available: uncomment and fill in /*** if info available: uncomment and fill in
 +
 ===== Failsafe mode ===== ===== Failsafe mode =====
 -> [[docs:guide-user:troubleshooting:failsafe_and_factory_reset]] -> [[docs:guide-user:troubleshooting:failsafe_and_factory_reset]]
Line 69: Line 80:
  
 /*** if info available: uncomment and fill in /*** if info available: uncomment and fill in
 +
 ===== Basic configuration ===== ===== Basic configuration =====
 After flashing, proceed with [[docs:guide-user:base-system:start|Basic configuration]]: Set up your Internet connection, configure wireless, configure USB port, etc. After flashing, proceed with [[docs:guide-user:base-system:start|Basic configuration]]: Set up your Internet connection, configure wireless, configure USB port, etc.
Line 75: Line 87:
  
 /*** if info available: uncomment and fill in /*** if info available: uncomment and fill in
 +
 ===== Specific configuration ===== ===== Specific configuration =====
  
Line 92: Line 105:
  
 /*** if info available: uncomment and fill in /*** if info available: uncomment and fill in
 +
 ==== Buttons ==== ==== Buttons ====
 -> [[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).
Line 107: Line 121:
 </WRAP> </WRAP>
 ***/ ***/
- 
  
 ===== Hardware ===== ===== Hardware =====
 +
 +
 ==== Info ==== ==== Info ====
-^ Architecture    | ARM / AARCH64 Cortex-A73 | +^ Architecture    | ARM / AARCH64 Cortex-A73                                                 
-^ Vendor          | SinoVoip              +^ Vendor          | SinoVoip                                                                 
-^ Bootloader      | U-Boot                +^ Bootloader      | U-Boot                                                                   
-^ System-On-Chip  | MediaTek Filogic 880 (MT7988)| +^ System-On-Chip  | MediaTek Filogic 880 (MT7988)                                            
-^ CPU/Speed       | 1800 MHz| +^ CPU/Speed       | 1800 MHz                                                                 
-^ Flash-Chip      | SPI Flash / eMMC| +^ Flash-Chip      | SPI Flash / eMMC                                                         
-^ Flash size      | 128 MiB / 8GiB | +^ Flash size      | 128 MiB / 8GiB                                                           
-^ RAM             | 4 GiB DDR4 |+^ RAM             | 4 GiB DDR4                                                               |
 ^ Wireless        | MediaTek MT7975N 2.4GHz + MediaTek MT7977B 5GHz + MediaTek MT7977A 6GHz  | ^ Wireless        | MediaTek MT7975N 2.4GHz + MediaTek MT7977B 5GHz + MediaTek MT7977A 6GHz  |
-^ Ethernet        | 4x 10/100/1000/ Mbit/s + 2x 10000 Mbit/s SFP+| +^ Ethernet        | 4x 10/100/1000/ Mbit/s + 2x 10000/5000/2500/1000 Mbit/s SFP+             
-^ Switch          | Internal to the SOC | +^ Switch          | Internal to the SOC                                                      
-^ USB             | 1x 3.2 + 1x 2.0 unpopulated | +^ USB             | 1x 3.2 + 1x 2.0 unpopulated                                              
-^ Serial          | [[#Serial|Yes]] | +^ Serial          | [[#Serial|Yes]]                                                          
-^ JTAG            | [[#JTAG|Yes]] |+^ JTAG            | [[#JTAG|Yes]]                                                            |
  
  
 /*** if info available: uncomment and fill in /*** if info available: uncomment and fill in
 +
 ==== Flash Layout ==== ==== Flash Layout ====
 <WRAP BOX> <WRAP BOX>
Line 136: Line 152:
 ***/ ***/
  
 +==== BPI-R4-NIC-BE14 ====
 +One of the greatest advantages of this device is the cooperation of the main processor (MT7988) with the WiFi module (**MT7996**).
 +The **BPI-R4-NIC-BE14** module is often described as a board with MT7996 processor, but this is actually a marketing shorthand used by MediaTek
 +for its Wireless module series. The MT7996 refers to an entire chipset package consisting of multiple components: MT7995AV+MT7976CN+MT7977IAN.
 +
 +<WRAP BOX>
 +**Important**: The Sinovoip company advice to use **19V/3.2A** power supply. Make sure, that your current power supply is good. Most of the USB-C power supply for the modern PC's will have it.
 +</WRAP>
 +
 +Before you mount the module to the router, remember to switch the "**SW4**" to the **ON possition** on the BPi-R4 board, like on the picture below:
 +
 +{{media:sinovoip:bpi_r4_v1.0_sw4.jpg?400|sw4 switch}}
 +
 +After that, the 12V LED lights up when turned **ON**.
 +
 +=== Wireless Offload ===
 +
 +Before explaining the WO firwmare goal, it is worth to mention about **WED** - **W**ireless **E**thernet **D**ispatch. (Special thanks
 +for Dangowrt for the explaination).
 +
 +The WED term stems from the original implementation which is part of MT7622 and offloads
 +forwarding from Ethernet to Wireless, ie. WiFi TX is offloaded only. Hence packets received on Ethernet
 +are dispatched to Wireless, hence the name. More recent versions (MT7986, MT7981 and later SoC) do
 +support also taking care of the traffic received on the Wireless interface.
 +
 +The "**WO**" (**W**ireless **O**ffload Firmware) In order to perform WED on recent SoCs a dedicated
 +offloading firmware is required.
 +
 +WED means offloading traffic forwarding from/to Wireless. It works with the existing
 +flow-offloading aka. HWNAT engine of MediaTek SoCs, just like for forwarding Ethernet traffic.
 +Newer SoCs need firmware to perform WED, and that is called WO firmware. Because WED is now bidirectional,
 +MediaTek started to use the more generic term WO instead of WED, which suggests a unidirectional
 +nature as it has been the case on MT7622. Today, the two terms (WED and WO) mean the same feature.
 +
 +The "**WO**" firmware is available now in the OpenWrt snapshot builds since this [[https://github.com/openwrt/openwrt/commit/eee3c695f3922c9bbacef9e4c2b1b71e8174fee1|commit]].
 +
 +<WRAP BOX>
 +**Important**: The current WO firmware in the builds is unstable and it is recommended to use it for advenced user. It is mandatory to limit the RAM for **2GB**, otherwise the wireless interfaces will not start.
 +
 +
 +To set 2GB RAM limit, you need to execute on the router:
 +<code>
 +fw_setenv bootargs "ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait mem=2048M"
 +</code>
 +
 +To go back to previous settings, execute on the router:
 +<code>
 +fw_setenv bootargs "ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait"
 +</code>
 +</WRAP>
 +
 +After you change RAM size (temporary workaround), enable load the **WO** firmware. To do that, you need to add into the ///etc/modules.conf//, for example:
 +
 +<code>
 +echo "options mt7996e wed_enable=Y sr_scene_detect=Y" >> /etc/modules.conf
 +</code>
 +
 +Then **reboot** the router to apply changes. When it comes back, results should be as below:
 +
 +<code>
 +$ cat /sys/module/mt7996e/parameters/sr_scene_detect
 +Y
 +$ cat /sys/module/mt7996e/parameters/wed_enable
 +Y
 +</code>
 +
 +
 +=== Module BPI-R4-NIC-BE14 photo ===
 +
 +{{media:sinovoip:BPI-R4-NIC-BE14_2.jpg?400|BPI-R4-NIC-BE14}}
 +
 +=== 6GHz wireless network ===
 +
 +The topic of 6GHz networking is often duplicated on the official OpenWrt forum, so before
 +configuring your network, make sure:
 +
 +  * if you are using Windows 10, using the 6GHz network is not possible on this system,
 +  * make sure you have the latest drivers,
 +  * verify the Wi-Fi [[https://en.wikipedia.org/wiki/List_of_WLAN_channels#6_GHz_(802.11ax_and_802.11be)|regulation list]] for your country. It is highly possible that running this type of network is not permitted in your region. Using a country code that does not match your location is not recommended.
 +  * there are only few contries where the 320MHz width can be used
 +
 +<WRAP BOX>
 +**NOTE**: Sometimes the latest drivers may not achieve satisfactory speeds. It is worth trying sometimes to use **AX** mode than **BE** mode.
 +</WRAP>
 +
 +==== Testing speed locally ====
 +There are many tools to check the speed between the host and the router. The most commonly
 +used, "**iperf3**" can cause problems for less advanced users. In this case, the
 +"**librespeed-go**" package (you need to enable it in /etc/config/librespeed-go) may be a more
 +convenient method for testing (by default the service should be available on port :8989).
  
 ==== Photos ==== ==== Photos ====
-/* =====>>>>> Standard size for photos: add ?400 to the medialink                                */ 
-/* When uploading photos, **name them** intelligently. Nobody knows what 20100930_000602.jpg is! */ 
-/* e.g. {{:media:yourbrand:yourbrand_yourmodel_front.jpg?400|}}                                  */ 
-/* Thanks, your wiki administration - Oct. 2015 */ 
  
-{{ media:sinovoip:bpi_r4_v1.0_top.jpg |photo of PCB}} +{{media:sinovoip:bpi_r4_v1.0_top.jpg?400|top PCB}} 
-{{ media:sinovoip:bpi_r4_v1.0_bot.jpg |photo of PCB}}+{{media:sinovoip:bpi_r4_v1.0_bot.jpg?400|bottom PCB}}
  
 ==== Serial ==== ==== Serial ====
 -> [[docs:techref:hardware:port.serial]] general information about the serial port, serial port cable, etc. -> [[docs:techref:hardware:port.serial]] general information about the serial port, serial port cable, etc.
 +
 +Serial connection parameters for Sinovoip BananaPi BPi-R4: 115200, 8N1, 3.3V
  
 How to connect to the Serial Port of this specific device:\\ How to connect to the Serial Port of this specific device:\\
-{{ media:sinovoip:bpi_r4_uart.jpg |photo of PCB }} +{{media:sinovoip:bpi_r4_uart.jpg?300|Serial port}}
- +
-^ Serial connection parameters for Sinovoip BananaPi BPi-R4 | 115200, 8N1, 3.3V |+
  
 ==== JTAG ==== ==== JTAG ====
Line 166: Line 268:
  
 Find OpenOCD scripts provided by MediaTek [[https://github.com/mtk-openwrt/openocd-scripts/tree/main/mt7988|here]]. Find OpenOCD scripts provided by MediaTek [[https://github.com/mtk-openwrt/openocd-scripts/tree/main/mt7988|here]].
 +
 ===== Bootlogs ===== ===== Bootlogs =====
 +
 ==== OEM bootlog ==== ==== OEM bootlog ====
 <WRAP bootlog> <WRAP bootlog>
Line 791: Line 895:
 [   16.773573] Per-port-per-queue mode is going to be enabled! [   16.773573] Per-port-per-queue mode is going to be enabled!
 [   16.779197] PPPQ use qid 0~11 (scheduler 0). [   16.779197] PPPQ use qid 0~11 (scheduler 0).
- +</nowiki>
- +
-BusyBox v1.33.2 (2023-06-04 07:30:12 UTC) built-in shell (ash) +
- +
-  _______                     ________        __ +
-       |.-----.-----.-----.|  |  |  |.----.|  |_ +
-     ||  _  |  -__|     ||  |  |  ||   _||   _| +
- |_______||   __|_____|__|__||________||__|  |____| +
-          |__| W I R E L E S S   F R E E D O M +
- ----------------------------------------------------- +
- OpenWrt 21.02-SNAPSHOT, unknown +
- ----------------------------------------------------- +
-=== WARNING! ===================================== +
-There is no root password defined on this device! +
-Use the "passwd" command to set up a new password +
-in order to prevent unauthorized SSH logins. +
--------------------------------------------------- +
-root@OpenWrt:/# </nowiki>+
 </WRAP>\\ </WRAP>\\
  
 ==== OpenWrt bootlog ==== ==== OpenWrt bootlog ====
 <WRAP bootlog> <WRAP bootlog>
 +<nowiki>
 F0: 102B 0000 F0: 102B 0000
 FA: 1042 0000 FA: 1042 0000
Line 1415: Line 1503:
 [   17.244136] br-wan: port 2(eth2) entered forwarding state [   17.244136] br-wan: port 2(eth2) entered forwarding state
 [   17.249619] IPv6: ADDRCONF(NETDEV_CHANGE): br-wan: link becomes ready [   17.249619] IPv6: ADDRCONF(NETDEV_CHANGE): br-wan: link becomes ready
- +</nowiki>
- +
- +
-BusyBox v1.36.1 (2024-02-18 08:56:45 UTC) built-in shell (ash) +
- +
-  _______                     ________        __ +
-       |.-----.-----.-----.|  |  |  |.----.|  |_ +
-     ||  _  |  -__|     ||  |  |  ||   _||   _| +
- |_______||   __|_____|__|__||________||__|  |____| +
-          |__| W I R E L E S S   F R E E D O M +
- ----------------------------------------------------- +
- OpenWrt SNAPSHOT, r25233-6da308f4de +
- ----------------------------------------------------- +
-=== WARNING! ===================================== +
-There is no root password defined on this device! +
-Use the "passwd" command to set up a new password +
-in order to prevent unauthorized SSH logins. +
--------------------------------------------------- +
-root@OpenWrt:/+
 </WRAP>\\ </WRAP>\\
  
Line 1440: Line 1510:
 ===== Tags ===== ===== Tags =====
  
-{{tag>mediatek MT7988 128NAND 8192eMMC 4096RAM 6Port GigabitEthernet 10GigabitEthernet SFP microSD lte MiniPCIexpress 3SIM m.2 DevBoard Filogic USB3.2 13Ant TRNG crypto Serial SPI GPIO I2C 12v_powered unsupported}}+{{tag>mediatek MT7988 128NAND 8192eMMC 4096RAM 6Port GigabitEthernet 10GigabitEthernet SFP microSD lte MiniPCIexpress 3SIM m.2 DevBoard Filogic USB3.2 13Ant TRNG crypto Serial SPI GPIO I2C 12v_powered}}
  • Last modified: 2024/11/27 09:03
  • by n-storm