Devices should tell the server what they are in case an administrator wants to group or hand out dedicated leases and information to some devices on the lan. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Banana Pi BPI-R3
Overview
The Banana Pi R3 is a high-performance networking board with full Infix support for all enabled features including switched Ethernet ports, WiFi, and SFP interfaces.
Hardware Features
- MediaTek MT7986 ARM Cortex-A53 quad-core processor @ 2.0 GHz
- 2 GB DDR4 RAM
- 8 GB eMMC storage + microSD card slot
- 5x Gigabit Ethernet ports (4x LAN, 1x WAN)
- 2x SFP cages for fiber connectivity (1G/2.5G)
- Dual-band WiFi (2.4 GHz + 5 GHz)
- USB 3.0 port
- Mini PCIe slot
Default Network Configuration
Infix comes preconfigured with:
- LAN ports (lan1-lan4): Bridged for internal networking
- WAN port: DHCP client enabled for internet connectivity
- SFP ports (sfp1, sfp2): Available for configuration
- WiFi interfaces (wifi0, wifi1): Available for configuration
Getting Started
Quick Start with SD Card
The easiest way to get started is using an SD card:
- Download the SD card image: infix-bpi-r3-sdcard.img
- Flash the image to an SD card: see this guide
- Set boot switches:
- Set DIP switches to 0000 (SD card boot mode)
- Switch positions are on the underside of the board near the SD slot
- Boot the board:
- Insert the SD card
- Connect power
- Connect to LAN port or console (115200 8N1)
- Default login:
admin/admin
Boot Switch Reference
The BPI-R3 has a 4-position DIP switch that controls boot media:
| Position | Mode | Description |
|---|---|---|
| 0000 | SD card | Boot from microSD card (recommended) |
| 0110 | eMMC | Boot from internal eMMC storage |
| 1010 | SPI NAND | Boot from SPI NAND (advanced users) |
Note
Switch position is read from left to right: "0" = OFF, "1" = ON.
When the DIP switch is in the "UP" position it is OFF(0).
Advanced: Installing to eMMC
For production deployments or better performance, you can install Infix to the internal eMMC storage. This is more complex but provides faster boot times and eliminates the external SD card.
Why Use eMMC?
Advantages:
- Faster boot and better performance
- No external SD card to manage
- More robust for industrial/embedded deployments
Disadvantages:
- More complex installation process
- Requires intermediate NAND boot step
- Harder to recover from errors
Prerequisites
- FTDI USB-to-serial cable (3.3V) for console access
- microSD card with Infix (for initial boot)
- USB flash drive (FAT32 formatted)
- Downloaded files (see below)
Required Files
Download and place these files on a FAT32-formatted USB drive:
- Intermediate NAND bootloader (from Frank-W's U-Boot):
- bpi-r3_spim-nand_bl2.img (BL2 loader)
- bpi-r3_spim-nand_fip.bin (FIP image)
- Infix eMMC image:
- infix-bpi-r3-emmc.img (Complete system image)
- eMMC bootloader (extracted from):
- bpi-r3-emmc-boot-2025.01-latest.tar.gz
- Extract
bl2.imgfrom the tarball to your USB drive
Warning
The following process involves multiple boot mode changes. Take your time verify each step carefully.
Installation Steps
Step 1: Boot from SD card
- Set boot switches to 0000 (SD card mode)
- Insert SD card with Infix
- Power on and break into U-Boot (press Ctrl-C during boot)
Step 2: Flash intermediate NAND bootloader
This step installs a temporary bootloader to NAND that will help us flash the eMMC. From the U-Boot prompt:
usb start
mtd erase spi-nand0
fatload usb 0:1 0x50000000 bpi-r3_spim-nand_bl2.img
mtd write spi-nand0 0x50000000 0x0 0x100000
fatload usb 0:1 0x50000000 bpi-r3_spim-nand_fip.bin
mtd write spi-nand0 0x50000000 0x380000 0x200000
Step 3: Boot from NAND
- Power off the board
- Set boot switches to 1010 (NAND mode)
- Power on - you should boot into U-Boot again
Step 4: Write Infix image to eMMC
From the U-Boot prompt:
usb start
fatload usb 0:1 0x50000000 infix-bpi-r3-emmc.img
setexpr blocks ${filesize} / 0x200
mmc write 0x50000000 0x0 ${blocks}
This writes the complete Infix system (partitions, rootfs, etc.) to eMMC.
Step 5: Configure eMMC boot
Now configure the eMMC boot partition and write the bootloader:
mmc partconf 0 1 1 1
mmc erase 0x0 0x400
fatload usb 0:1 0x50000000 bl2.img
mmc write 0x50000000 0x0 0x400
mmc partconf 0 1 1 0
Step 6: Boot from eMMC
- Power off the board
- Set boot switches to 0110 (eMMC mode)
- Remove SD card (optional, but recommended to verify eMMC boot)
- Power on
Your BPI-R3 should now boot Infix from internal eMMC storage!
Troubleshooting
Board won't boot
- Verify boot switch positions (check twice!)
- Ensure power supply provides adequate current (12V/2A recommended)
- Try booting from SD card with switches at 0000
Can't break into U-Boot
- Ensure serial console is connected properly (115200 8N1, 3.3V)
- Press Ctrl-C immediately when you see boot messages
- Try power cycling and pressing Ctrl-C repeatedly
eMMC boot fails after installation
- Boot from NAND (1010) and verify eMMC image was written
- Check USB drive contents - ensure all files are present
- Re-run Step 5 (eMMC boot configuration)
Reverting to SD card
Simply set boot switches back to 0000 and boot from SD card. The eMMC installation does not affect SD card functionality.
Additional Resources
Building Custom Images
See the main Infix documentation for building from source. To build both SD card and eMMC images locally:
# Build bootloaders for both SD and eMMC
make x-bpi-r3-sd-boot
make x-bpi-r3-emmc-boot
# Build main system
make aarch64
# Create SD card image
./utils/mkimage.sh -od bananapi-bpi-r3
# Create eMMC image
./utils/mkimage.sh -odt emmc bananapi-bpi-r3