OpenWrt One - celebrating 20 years of OpenWrt
John Crispin
john at phrozen.org
Tue Jan 9 02:49:56 PST 2024
tl;dr
In 2024 the OpenWrt project turns 20 years! Let's celebrate this
anniversary by launching our own first and fully upstream supported
hardware design.
If the community likes the idea outlined below in greater details, we
would like to start a vote.
---
The idea
It is not new. We first spoke about this during the OpenWrt Summits in
2017 and also 2018. It became clear start of December 2023 while
tinkering with Banana Pi style devices that they are already pretty
close to what we wanted to achieve in ’17/‘18. Banana PIs have grown in
popularity within the community. They boot using a self compiled Trusted
Firmware-A (TF-A)and upstream U-Boot (thx MTK/Daniel) and some of the
boards are already fully supported by the upstream Linux kernel. The
only nonopen sourcecomponents are the 2.5 GbE PHYandWi-Fi firmware
blobsrunning on separate cores that areindependent of the main SoC
running Linuxand the DRAM calibration routines which are executed early
during boot.
I contacted three project members (pepe2k, dangole, nbd) on December 6th
to outline the overall idea. We went over several design proposals, At
the beginning we focused on the most powerful (and expensive)
configurations possible but finally ended up with something rather
simple and above all,feasible. We would like to propose the following as
our "first" community driven HW platform called "OpenWrt One/AP-24.XY".
Together with pepe2k (thx a lot) I discussed this for many hours and we
worked out the following project proposal. Instead of going insane with
specifications, we decided to include some nice features we believe all
OpenWrt supported platforms should have (e.g. being almost
unbrickablewith multiple recovery options, hassle-free system console
access, on-board RTC with battery backup etc.).
This is our first design, so let's KiSS!
Hardwarespecifications:
* SOC: MediaTek MT7981B
* Wi-Fi: MediaTek MT7976C (2x2 2.4 GHz + 3x3/2x2 + zero-wait DFS 5Ghz)
* DRAM: 1 GiB DDR4
* Flash: 128 MiB SPI NAND+ 4 MiB SPI NOR
* Ethernet: 2x RJ45 (2.5 GbE + 1 GbE)
* USB (host): USB 2.0 (Type-A port)
* USB (device, console): Holtek HT42B534-2 UART to USB (USB-C port)
* Storage: M.2 2042 for NVMe SSD (PCIe gen 2 x1)
* Buttons: 2x (reset + user)
* Mechanical switch: 1x for boot selection (recovery, regular)
* LEDs: 2x (PWM driven), 2x ETH Led (GPIO driven)
* External hardware watchdog: EM Microelectronic EM6324 (GPIO driven)
* RTC: NXP PCF8563TS (I2C) with battery backup holder(CR1220)
* Power: USB-PD-12V on USB-C port (optional802.3at/afPoE via RT5040 module)
* Expansion slots: mikroBUS
* Certification: FCC/EC/RoHS compliance
* Case: PCB size is compatible to BPi-R4 and the case design can be re-used
* JTAG for main SOC: 10-pin 1.27 mm pitch (ARM JTAG/SWD)
* Antenna connectors: 3x MMCX for easy usage, assembly and durability
* Schematics: these will be publicly available (license TBD)
* GPL compliance: 3b. "Accompany it with a written offer ... to give any
third party ... a complete machine-readable copy of the corresponding
source code"
* Price: aiming for below 100$
How will the device be distributed?
OpenWrt itself cannot handle this for a ton of reasons. This is why we
spoke with the SFC early. The idea is that BPi will distribute the
device using the already established channels and for every device sold
a donation will be made to ourSFC earmarked fund for OpenWrt. This money
can then be used to cover hosting expenses or maybe an OpenWrt summit.
SFC is committed to working with us in various ways on this project —
including making sure OpenWrt'strademark is properly respected, that
this router isabeautiful example of excellent GPL/LGPL compliance,
andthatthis becomes a great promotional opportunity for our project and
FOSS generally!
FAQ
* Why are there are 2 different flash chips?
- the idea is to make the device (almost!) unbrickable and very easy to
recover
- NAND will hold the main loader (U-Boot) and the Linux image and will
be the default boot device
- NOR will be write-protected by default (with WP jumper available on
the board) and will hold a recovery bootloader (and other essential
data, like Wi-Fi calibration)
- a dedicated boot select switch will allow changing between NOR and NAND
* What will the M.2 slot be used for?
- we will use M.2 with M-key for NVMe storage. There is a
work-in-progress patch to make PCIe work inside the U-Boot bootloader.
This will allow booting other Linux distributions such as Debian and
Alpine directly from NVMe
* Why is there no USB 3.x host port on the device?
- the USB 3.x and PCIe buses are shared in the selected SoC silicon,
hence only a single High-Speed USB port is available
* What is the purpose of the console USB-C port?
- Holtek UART to USB bridge with CDC-ACM support on USB-C makes the
device ultra easy to communicate with. No extra hardware or drivers will
be required. Android for example has CDC-ACM support enabled by default
* What MAC OUI will the device have?
- we plan to register an OUI block for OpenWrt which can also be used
for other vendor extensions such as Wi-Fi beacon IEs
* What is the purpose of the mikroBUS connector?
- mikroBUS was chosen as we wanted to make the hardware extendable.
There are dedicated pins for UART, SPI, I2C buses and RST/INT signals.
The standard uses regular 2.54 mm pitch connectors (you can use
available mikroBUS modules or just connect to it something else, with
2.54 mm jumper cables)
* Why have the RTC on board instead of a mikroBUS module?
- we believe there are many things a Wi-Fi (or networking in general)
device should have on-board by default. Always having a correct time on
the device is crucial in many applications, like VPN, DNSSEC, …
Timeline of events leading up to this e-mail
Forgive us for the lack of public communication during the initial
phase(which as you can see was short and quick). We wanted to ensure
that this project is feasible before disclosing it to the community. It
would be a real shame if we announced something that we later found out
to not be feasible thus failing expectations raised within the community.
03.12 - initial idea
06.12 - ping pepe2k, dangole, nbd
07.12 - ping MediaTek and ask if this sounds doable
08.12 - ping jow, Hauke
08.12 - request for call with SFC, we want them involved as soon as possible
09.12 - MediaTek replies and says they can help
09.12 - ping apacar, ynezz, dwmm2, lynxis, rsalvaterra
12.12 - MediaTek spoke with Banana Pi, they also like the idea
18.12 - call with SFC (Hauke joined, we found no prior slot to talk)
20.12 - started writing the U-Boot PCIe driver, made recovery from USB
and android fastboot recovery work.
... and then the end of year celebrations started and not much happened
for 2 weeks.
03.01-08.01 - write this text
Thanks,
Signed-off-by: Alexander Couzens <lynxis at fe80.eu>
Signed-off-by: Bradley M. Kuhn <bkuhn at sfconservancy.org>
Signed-off-by: Daniel Golle <daniel at makrotopia.org>
Signed-off-by: David Bauer <mail at david-bauer.net>
Signed-off-by: Denver Gingerich <denver at sfconservancy.org>
Signed-off-by: Felix Fietkau <nbd at nbd.name>
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
Signed-off-by: John Crispin <john at phrozen.org>
Signed-off-by: Jo-Philipp Wich <jo at mein.io>
Signed-off-by: Paul Spooren <mail at aparcar.org>
Signed-off-by: Petr Štetiar <ynezz at true.cz>
Signed-off-by: Piotr Dymacz <pepe2k at gmail.com>
Signed-off-by: Steven Liu <steven.liu at mediatek.com>
More information about the openwrt-devel
mailing list