Skip to content

Commit 2281ba5

Browse files
committed
board/aarch64: update bpi-r3 readme
[skip ci] Signed-off-by: Joachim Wiberg <[email protected]>
1 parent f135202 commit 2281ba5

File tree

1 file changed

+183
-50
lines changed

1 file changed

+183
-50
lines changed
Lines changed: 183 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,122 @@
1-
# Banana Pi R3
1+
# Banana Pi BPI-R3
22

3-
## Support level
4-
Full support for all Infix enabled features including switched ethernet ports, WiFi,
5-
and SFP interfaces. The board includes comprehensive hardware support for
6-
MediaTek MT7986 SoC features.
3+
<img src="bananapi-bpi-r3.webp" alt="The board" width=800 padding=10>
74

8-
### Hardware features
9-
The Banana Pi R3 is a high-performance networking board featuring:
10-
- MediaTek MT7986 ARM Cortex-A53 quad-core processor
11-
- 4x Gigabit LAN ports (lan1-lan4)
12-
- 1x Gigabit WAN port
13-
- 2x SFP ports (sfp1, sfp2) for fiber connectivity
14-
- Dual WiFi interfaces (wifi0 for 2.4GHz, wifi1 for 5GHz)
15-
- USB support
16-
- SD card boot support
5+
## Overview
176

18-
### Network configuration
19-
The board comes preconfigured with:
20-
- 4 switched LAN ports for internal networking
21-
- Dedicated WAN port with DHCP client enabled
22-
- SFP ports for high-speed fiber connections
23-
- Dual WiFi interfaces for wireless connectivity
7+
The Banana Pi R3 is a high-performance networking board with full Infix
8+
support for all enabled features including switched Ethernet ports, WiFi,
9+
and SFP interfaces.
2410

25-
### Installing Infix on eMMC
11+
### Hardware Features
2612

27-
> [!IMPORTANT]
28-
> No standard eMMC image exist yet, you have to create it your own
29-
> from the SD card image by replacing fip.bin in the SD card image to
30-
> the eMMC variant.
13+
- MediaTek MT7986 ARM Cortex-A53 quad-core processor @ 2.0 GHz
14+
- 2 GB DDR4 RAM
15+
- 8 GB eMMC storage + microSD card slot
16+
- 5x Gigabit Ethernet ports (4x LAN, 1x WAN)
17+
- 2x SFP cages for fiber connectivity (1G/2.5G)
18+
- Dual-band WiFi (2.4 GHz + 5 GHz)
19+
- USB 3.0 port
20+
- Mini PCIe slot
3121

32-
This guide describes how to install Infix on the internal eMMC storage of your BPI-R3.
33-
The installation process requires a FTDI cable for console access, SD
34-
card with Infix, a USB drive with the necessary bootloaders and eMMC
35-
system image, and involves configuring the board's boot switches.
22+
### Default Network Configuration
3623

37-
#### Required files
24+
Infix comes preconfigured with:
3825

39-
Download the following files and place them on a FAT32-formatted USB drive:
26+
- **LAN ports** (lan1-lan4): Bridged for internal networking
27+
- **WAN port**: DHCP client enabled for internet connectivity
28+
- **SFP ports** (sfp1, sfp2): Available for configuration
29+
- **WiFi interfaces** (wifi0, wifi1): Available for configuration
4030

41-
1. **NAND bootloader files** (for initial setup):
42-
- [bpi-r3_spim-nand_bl2.img](https://github.com/frank-w/u-boot/releases/download/CI-BUILD-2025-10-bpi-2025.10-2025-10-13_1032/bpi-r3_spim-nand_bl2.img)
43-
- [bpi-r3_spim-nand_fip.bin](https://github.com/frank-w/u-boot/releases/download/CI-BUILD-2025-10-bpi-2025.10-2025-10-13_1032/bpi-r3_spim-nand_fip.bin)
31+
## Getting Started
4432

45-
2. **eMMC bootloader files**:
46-
- Download and extract [bpi-r3-emmc-boot-2025.01-latest.tar.gz](https://github.com/kernelkit/infix/releases/download/latest-boot/bpi-r3-emmc-boot-2025.01-latest.tar.gz)
47-
- This contains `bl2.img` and `fip.bin` for eMMC boot
33+
### Quick Start with SD Card
4834

49-
3. **System image**:
50-
- `infix-bpi-r3-emmc.img` - The Infix system image for eMMC
35+
The easiest way to get started is using an SD card:
5136

52-
#### Installation steps
37+
1. **Download the SD card image:** [infix-bpi-r3-sdcard.img][2]
38+
2. **Flash the image to an SD card:** see [this guide][0]
39+
3. **Set boot switches:**
40+
- Set DIP switches to **0000** (SD card boot mode)
41+
- Switch positions are on the underside of the board near the SD slot
42+
4. **Boot the board:**
43+
- Insert the SD card
44+
- Connect power
45+
- Connect to LAN port or console (115200 8N1)
46+
- Default login: `admin` / `admin`
5347

54-
**Step 1: Flash NAND bootloader**
48+
### Boot Switch Reference
5549

56-
Boot from SD card and break into U-Boot by pressing Ctrl-C during startup:
50+
The BPI-R3 has a 4-position DIP switch that controls boot media:
51+
52+
<img align="right" src="bootstrap-switch.webp" alt="DIP switches" width=200 padding=10>
53+
54+
| Position | Mode | Description |
55+
|----------|-------------|---------------------------------------|
56+
| 0000 | SD card | Boot from microSD card (recommended) |
57+
| 0110 | eMMC | Boot from internal eMMC storage |
58+
| 0101 | SPI NAND | Boot from SPI NAND (advanced users) |
59+
60+
> [!NOTE]
61+
> Switch position is read from left to right: "0" = OFF, "1" = ON.
62+
> When the DIP switch is in the "UP" position it is OFF(0).
63+
64+
## Advanced: Installing to eMMC
65+
66+
For production deployments or better performance, you can install Infix
67+
to the internal eMMC storage. This is more complex but provides faster
68+
boot times and eliminates the external SD card.
69+
70+
### Why Use eMMC?
71+
72+
**Advantages:**
73+
74+
- Faster boot and better performance
75+
- No external SD card to manage
76+
- More robust for industrial/embedded deployments
77+
78+
**Disadvantages:**
79+
80+
- More complex installation process
81+
- Requires intermediate NAND boot step
82+
- Harder to recover from errors
83+
84+
### Prerequisites
85+
86+
- FTDI USB-to-serial cable (3.3V) for console access
87+
- microSD card with Infix (for initial boot)
88+
- USB flash drive (FAT32 formatted)
89+
- Downloaded files (see below)
90+
91+
### Required Files
92+
93+
Download and place these files on a FAT32-formatted USB drive:
94+
95+
1. **Intermediate NAND bootloader** (from Frank-W's U-Boot):
96+
- [bpi-r3_spim-nand_bl2.img][5] (BL2 loader)
97+
- [bpi-r3_spim-nand_fip.bin][6] (FIP image)
98+
2. **Infix eMMC image:**
99+
- [infix-bpi-r3-emmc.img][3] (Complete system image)
100+
3. **eMMC bootloader** (extracted from):
101+
- [bpi-r3-emmc-boot-2025.01-latest.tar.gz][4]
102+
- Extract `bl2.img` from the tarball to your USB drive
103+
104+
> [!WARNING]
105+
> The following process involves multiple boot mode changes. Take your
106+
> time verify each step carefully.
107+
108+
### Installation Steps
109+
110+
#### Step 1: Boot from SD card
111+
112+
1. Set boot switches to **0000** (SD card mode)
113+
2. Insert SD card with Infix
114+
3. Power on and break into U-Boot (press Ctrl-C during boot)
115+
116+
#### Step 2: Flash intermediate NAND bootloader
117+
118+
This step installs a temporary bootloader to NAND that will help us
119+
flash the eMMC. From the U-Boot prompt:
57120

58121
```
59122
usb start
@@ -64,9 +127,13 @@ fatload usb 0:1 0x50000000 bpi-r3_spim-nand_fip.bin
64127
mtd write spi-nand0 0x50000000 0x380000 0x200000
65128
```
66129

67-
Power off the board and set the boot switch to **0101** (NAND boot mode), then power on.
130+
#### Step 3: Boot from NAND
131+
132+
1. Power off the board
133+
2. Set boot switches to **0101** (NAND mode)
134+
3. Power on - you should boot into U-Boot again
68135

69-
**Step 2: Flash system to eMMC**
136+
#### Step 4: Write Infix image to eMMC
70137

71138
From the U-Boot prompt:
72139

@@ -77,9 +144,11 @@ setexpr blocks ${filesize} / 0x200
77144
mmc write 0x50000000 0x0 ${blocks}
78145
```
79146

80-
**Step 3: Configure eMMC bootloader**
147+
This writes the complete Infix system (partitions, rootfs, etc.) to eMMC.
81148

82-
Write the eMMC bootloader and configure the boot partition:
149+
#### Step 5: Configure eMMC boot
150+
151+
Now configure the eMMC boot partition and write the bootloader:
83152

84153
```
85154
mmc partconf 0 1 1 1
@@ -90,8 +159,72 @@ mmc partconf 0 1 1 0
90159
mmc bootbus 0 0 0 0
91160
```
92161

93-
Power off the board, set the boot switch to **0110** (eMMC boot mode), and power on.
94-
Your BPI-R3 should now boot Infix from the internal eMMC storage.
162+
#### Step 6: Boot from eMMC
163+
164+
1. Power off the board
165+
2. Set boot switches to **0110** (eMMC mode)
166+
3. Remove SD card (optional, but recommended to verify eMMC boot)
167+
4. Power on
168+
169+
Your BPI-R3 should now boot Infix from internal eMMC storage!
170+
171+
## Troubleshooting
172+
173+
### Board won't boot
174+
175+
- Verify boot switch positions (check twice!)
176+
- Ensure power supply provides adequate current (12V/2A recommended)
177+
- Try booting from SD card with switches at **0000**
178+
179+
### Can't break into U-Boot
180+
181+
- Ensure serial console is connected properly (115200 8N1, 3.3V)
182+
- Press Ctrl-C immediately when you see boot messages
183+
- Try power cycling and pressing Ctrl-C repeatedly
184+
185+
### eMMC boot fails after installation
186+
187+
- Boot from NAND (**0101**) and verify eMMC image was written
188+
- Check USB drive contents - ensure all files are present
189+
- Re-run Step 5 (eMMC boot configuration)
190+
191+
### Reverting to SD card
192+
193+
Simply set boot switches back to **0000** and boot from SD card. The
194+
eMMC installation does not affect SD card functionality.
195+
196+
## Additional Resources
197+
198+
- [Infix Documentation][1]
199+
- [Official BPI-R3 Wiki][7]
200+
- [Release Downloads][8]
201+
202+
## Building Custom Images
203+
204+
See the main Infix documentation for building from source. To build both
205+
SD card and eMMC images locally:
206+
207+
```bash
208+
# Build bootloaders for both SD and eMMC
209+
make x-bpi-r3-sd-boot
210+
make x-bpi-r3-emmc-boot
211+
212+
# Build main system
213+
make aarch64
214+
215+
# Create SD card image
216+
./utils/mkimage.sh -od bananapi-bpi-r3
217+
218+
# Create eMMC image
219+
./utils/mkimage.sh -odt emmc bananapi-bpi-r3
220+
```
95221

96-
### Pre-built images
97-
SD card image: [infix-bpi-r3-sdcard.img](https://github.com/kernelkit/infix/releases/download/latest-boot/infix-bpi-r3-sdcard.img)
222+
[0]: https://kernelkit.org/posts/flashing-sdcard/
223+
[1]: https://kernelkit.org/infix/latest/
224+
[2]: https://github.com/kernelkit/infix/releases/download/latest-boot/infix-bpi-r3-sdcard.img
225+
[3]: https://github.com/kernelkit/infix/releases/download/latest-boot/infix-bpi-r3-emmc.img
226+
[4]: https://github.com/kernelkit/infix/releases/download/latest-boot/bpi-r3-emmc-boot-2025.01-latest.tar.gz
227+
[5]: https://github.com/frank-w/u-boot/releases/download/CI-BUILD-2025-10-bpi-2025.10-2025-10-13_1032/bpi-r3_spim-nand_bl2.img
228+
[6]: https://github.com/frank-w/u-boot/releases/download/CI-BUILD-2025-10-bpi-2025.10-2025-10-13_1032/bpi-r3_spim-nand_fip.bin
229+
[7]: https://wiki.banana-pi.org/Banana_Pi_BPI-R3
230+
[8]: https://github.com/kernelkit/infix/releases/tag/latest-boot

0 commit comments

Comments
 (0)