Globalscale MOCHAbin je još 2022. započeo kao Kickstarter projekat. Ideja je bila da se napravi hakabilni otvoreni ruter oko Marvell Armada 7040 quad-core SoC-a sa fokusom na bezbednost. Mi smo primerak za pisanje ove recenzije dobili krajem 2023, ali smo u više navrata odlagali predstavljanje očekujući da će tim uložiti dodatne napore u softversku podršku. Kako u 2024. jedva da je bilo nekih naznaka da je tim živ, odlučili smo da nema više razloga za čekanje i pokušaćemo kroz ovaj prikaz da prenesemo naša iskustva i viđenja opravdanosti nabavke ovog hardvera.
MOCHAbin je izgrađen oko Marvell Armada 7040 (88F7040) SoC-a, jačeg, četvorojezgarnog predstavnika Armada 7K familije. Dva klastera po dva ARM Cortex-A72 jezgra na 1.4 GHz su dovoljna da uz adekvatna periferna kola obezbede 12 Gbps agregatnog protoka podataka kroz procesor. Samo ova informacija nameće ideju korišćenja Marvell Armada 7040 SoC-a za izradu bezbednog NAS skladišta, implementaciju Firewall-a ili kreiranje SD-WAN prostora unutar kompanije ili kuće. Treba istaći da su od 2022. godine pa sve do sada mnoge firme koje razvijaju mrežnu opremu za industrijsku primenu, pre svega rutere i firewall opremu, upravo koristile SoC-eve iz Marvell Armada serija 7K i 8K.

Pominjanje ARM Cortex-A72 jezgara mejkerski svet prvo podseti na Broadcom BCM2711, takođe četvorojezgarni procesor koji se nalazi u Raspberry Pi 4 SBC-u. Međutim, ova dva SoC-a su dizajnirana sa sasvim različitim aplikativnim namenama. Iako Raspberry Pi 4 može poneti ulogu rutera ili firewall-a on nikada ne može pružiti one performanse koje će Marvell Armada 7040 postići. Razlog nije u brzini obrade podataka na procesoru, koji je klokovan nešto više na Raspberry Pi modelu, već u daleko bogatijem I/O prostoru koji obezbeđuje Marvell Armada 7040. Jedan od primera je što na AMBA/AXI-Bus u Broadcom SoC-u izlaze i Gigabitni Ethernet, jedina PCIe 2.0 linija i kompletan USB 2.0 protok, deleći teoretski maksimum od 5 Gbps na procesoru. Realno je da je ovaj protok daleko manji kada se uzme u obzir samo jedan Gigabitni Ethernet port maksimalnog protoka od 900 Mbps. Kod Marvell Armada 7040 dobićete jednu 10 Gbps XFI, jednu HS-SGMII 2.5 Gbps i jednu RGMII 1 Gbps Ethernet liniju sa procesorom koji je sposoban za obradu 12 Gbps protoka u zbiru.

HS-SGMII 2.5 Gbps linija se preko Topaz 88E6141 sviča deli na četiri Gb Ethernet porta koji su raspoređeni u formi 2×2. Topaz 88E6141 u sebi sadrži Z80 procesor na 200 MHz koji u potpunosti preuzima kontrolu nad Ethernet protokom i time rasterećuje SoC. Dokumentacija na internetu vezana za MOCHAbin ponekada je kontradiktorna. Verujemo da je razlog jer je i sama nastajala sa razvojem proizvoda i jasno je da je dolazilo do promena u tom vremenskom periodu. Bila je delimično javna i pre finalne verzije, budući da je ovo crowdfunded projekat. Tako u nekim dokumentima pogrešno piše da je ugrađen Topaz 88E6341, posledično tome MOCHAbin nema PTP, 1588, TCAM i Sync-E u LAN prostoru.

RGMII linija se vodi preko Alaska 88E1512 transivera. On ima dva multipleksirana izlaza: jedan se odvodi na Gb WLAN Ethernet RJ45 konektor, dok se drugi odvodi na Gb SFP port. Ova opcija omogućava gigabitnu vezu rutera sa „spoljnim svetom“, bilo da je moguća Ethernet, bilo veza optičkim kablom brzine do 1 Gbps. Treba istaći da Ethernet port uključuje PoE mogućnosti. Na slici ispod se vidi ugrađeni PoE modul između RJ45 i SFP porta. U ovom slučaju multipleksiranje dve Gbps linije ne bismo shvatili kao ograničenje, već upravo suprotno, kao proširenje seta mogućnosti.
Najzad, ukoliko je dostupna brža konekcija ka spolja 10 Gbps WLAN, tu je dodatni SFP+ port koji se vodi direktno na XFI liniju Marvell Armada 7040 SoC-a i koja omogućava povezivanje optičkim kablom brzinama do 10 Gbps. Međutim i tu postoji ograničenje, koje nas je iznenadilo i o kome smo detaljno pisali u zaključku.

Kao dodatnu komparativnu prednost Marvell Armada modela u domenu aplikativnih primena ističemo prisustvo ugrađenog koprocesora koji ima funkciju mrežnog i NAS akceleratora. Kao primer mogu biti kriptografske i CRC ekstenzije, akceleratori za operacije skladištenja podataka, mrežne operacije i bezbednost. Sa druge strane, Armada nema integrisani GPU, te ne nalazimo ni HDMI, eDP ili MIPI DSI izlaze na ploči.
Pored žičnih, bežična povezivost je takođe odlika MOCHAbin rutera. Došao nam je sa ugrađenim AzureWave AW-XM458 u mini PCIe portu. Tri antene su već postavljene i nalaze se u unutrašnjosti kućišta, koje inače nema predviđeno mesto za instalaciju eventualnih eksternih antena. Ispod zaštitnog poklopca skriven je NXP 88W9098 SoC, sa 2.4/5 GHz Dual-Band 2×2 Wi-Fi 6 (802.11ax) i Bluetooth 5.3 podrškom. Prateći mejkersku scenu, ovaj bežični modul je potpuno nepoznat, dok je sa druge strane čest na industrijskim i.MX-baziranim platformama. Iako hardverski superioran, problem može biti drajverska podrška pri implementaciji prilagođenih distribucija OS-a.

Uz Wi-Fi modul nalazi se i M.2 Key B ležište za LTE modem, sa postavljenim pripadajućim ležištem za SIM karticu na ploči i dodatni M.2 Key B za montažu 2280 SATA SSD-a. Marvell Armada 7040 ima dva SATA 3.0 linije, jedna je izvedena na već pomenuti M.2 port, dok je druga odmah pored SFP kaveza u vidu SATA konetora za hard disk. Dopala nam se mogućnost montaže SATA diska unutar kućišta na posebnom držaču koji se nalazi na poklopcu od livenog gvožđa, koji je ujedno i pasivni radijator. Naime, jedan deo poklopca je pažljivo dizajniran da dodiruje Armada 7040 SoC kada se kućište zatvori. Na to mesto je potrebno naneti adekvatnu količinu termalne paste kako bi se osigurao prenos toplote.

Dodatni drajvovi se mogu povezati i preko dva USB-A 3.0 porta. Oba porta su na našim testovima postigla brzinu od 227,58 MB/s pri čitanju, što je red veličine bolje od brzine koju je postigao ugrađeni 16 GB eMMC i koja je iznosila 22.56 MB/s. Merenja smo izvršili na Ubuntu 18.04.6 LTS sa kernelom 5.4.163 sa kojim nam je MOCHAbin i došao. I sve ostale benčmarke smo uradili na tom OS-u, a nakon toga smo flešovali najnoviji OpenWRT 24.10.0. Postupak ćemo objasniti kasnije, pošto na internetu ne postoji jedinstveno mesto sa svim potrebnim uputstvima.
Sa spoljne strane kućišta, uz USB-A portove nalazi se otvor za iglu kroz koji se ruter može resetovati. Tu je i barel konektor za napajanje. Specificirano napajanje je 12 V/ 3 A.

Uz dva USB-A porta nalazi se microUSB port. Na njemu je već ugrađen USB-to-UART konvertor (dibag konzola), te će se nakon direktnog povezivanja sa USB portom računara, MOCHAbin pojaviti na nekom od COM portova. U našem slučaju je to bio uvek COM3 prepoznat kao Profilic PL2303GL USB Serial COM. Brzinu prenosa treba podesiti na 115200 bauda. Na terminalu će se prilikom startovanja pojaviti ispis, gde se potvrđuje da je ovo Marvel Armada 7040 koji radi na 1400 MHz, sa 8 GB DDR4 memorije na 800 MHz. Okruženje se podiže sa ugrađenog SPI fleša, a sam OS sa 16 GB eMMC-a ugrađenog na ploči.

Treba dodatno pojasniti ugrađenu memoriju. MOCHAbin se standardno izrađuje sa 4 GB ECC RAM-a na 800 MHz (Samsung K4A8G085WB-BCTD 1600 DDR4). Postoje i verzije sa 1 GB, ali i ona koju smo mi dobili od 8 GB.

Softver
Flešovanje novog OS-a nije adekvatno dokumentovan od strane proizvođača. Kako je originalni Ubuntu 18.04 LTS danas zastareo probali smo da pronađemo nove verzije Ubuntu ili Debian OS-a, ali nismo u tom pokušaju bili uspešni. Budući da je osnovna namena MOCHAbin-a realizacija NAS-a ili rutera, prvo smo pokušali da pronađemo danas popularni OpenMediaVault. Takođe bez uspeha. Na jednom od sajtova GlobalScale/ESPRESSObin, na strani koja bi trebalo da bude MOCHAbin Wiki, pronašli smo instalacione fajlove za OpenWRT 22.03.2. Daljom pretragom na OpenWRT sajtu se mogu naći i druge verzije, pa i najnovija 24.10.0 koja je publikovana početkom februara 2025. Iako je moguće preuzeti i nešto noviju SNAPSHOT verziju, ipak smo se odlučili za poslednju „zvaničnu“, pomenutu 24.10.0.
Detaljno uputstvo za flešovanje koje smo pratili je sa CyberMind-ovog sajta. Tu je dat svaki korak i mi savetujemo da ispratite postupak koji je tamo predložen. Za svaku sigurnost ponovićemo ovde bitne korake. Prvo je potrebno preuzeti tri firmvera sa OpenWRT sajta za željenu verziju – mi smo izabrali 24.10.0. Ta tri fajla treba snimiti na USB drajv i ubaciti ga u MOCHAbin USB-A port. MOCHAbin povezati sa računarom preko microUSB porta i uključiti uređaj. U terminalu, mi koristimo MobaXterm, otvorimo serijski terminal, nađemo COM port na kome se pojavljuje MOCHAbin i podesimo brzinu na 112500 bauda. Videćemo kako se učitava BootROM – 2.03 kao na slici iznad. U pogodnom trenutku treba pritisnuti bilo koji taster na tastaturi, čime će se prekinuti dalje učitavanje i dobićemo pristup Marvell>> terminalu.
Sled komandi koje se unose dao je CyberMind.
- Prvo treba resetovati USB port: usb reset
- Potvrditi da su fajlovi u root-u USB drajva: fatls usb 0
- Učitati firmver, u našem slučaju: load usb 0:1 $kernel_addr_r openwrt-24.10.0-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img.gz
- Raspakovati i upisati na eMMC: gzwrite mmc 0 $kernel_addr_r $filesize
- Proveriti particije: mmc part
- Srediti okruženje sa četiri komande: env default -a
- setenv bootcmd ‘load mmc 0 ${loadaddr} boot.scr && source ${loadaddr}’
- setenv console ‘console=ttyS0,115200’
- saveenv
I nakon toga resetovati MOCHAbin. Preporučujemo da to uradite gašenjem napajanja i ponovnim uključivanjem. Nakon reseta potrebno je u konzoli na PC-u postaviti lozinku za root nalog. Sada je moguće pristupiti OpenWRT-u i preko IP adrese 192.168.1.1 u Luci okruženju. Poznat grafički prikaz omogućava lagodan rad. Naš je savet da instalirate luci-app-ttyd aplikaciju koja će vam omogućiti otvaranje terminala u okviru Luci-a. Instalirajte i wpad koji će biti neophodan za ispravan rad Wi-Fi modula.

Ovako instaliran OpenWRT nema drajvere za AzureWave AW-XM458 (NXP 88W9098) modul koji dolazi sa MOCHAbin-om i potrebno ih je instalirati. Njih ćete naći na Ahrotahn GitHub-u. Potrebno ih je preuzeti, u našem slučaju sa: http://github.com/Ahrotahn/openwrt-nxp-pcie9098/releases/download/v24.10.0/kmod-nxp-pcie9098_v24.10.0.ipk i instalirati: opkg install kmod-nxp-pcie9098_v24.10.0.ipk . Nama se pokazalo ovo dvokoračno rešenje bolje od onoga koje predlaže sam Ahrotahn. Nakon kraće instalacije, potrebno je resetovati MOCHAbin i pojaviće se wwan interfejs. Obratite pažnju na informaciju datu na GitHub-u da u /lib/firmware/nxp/wifi_mod_para.conf treba dodati drv_mode=1.

Benchmarks
Rekli smo da svako poređenje Marvel Armada 7040 sa drugim ARM Cortex-A72 SoC-evima nema odlučujući značaj, jer je ovo mrežno specijalizovani procesor i nije ga moguće u tom smislu zameniti sa desktop ili multimedijalnim SoC-evima kakav je recimo i Broadcom BCM2711 u Raspberry Pi 4 SBC-u. Mi smo ipak uradili standardnu paletu testova, ne bi li stekli komparativni osećaj u bazičnom funkcionisanju obrade podataka i rada sa memorijom. Nažalost, OS koji nam je bio dostupan je veoma stari Ubuntu 18.04.6 LTS sa kernelom 5.4.163. Ako ste pažljivo pogledali OpenWRT snimak ekrana, videli ste da je danas aktuelan kernel 6.6.73 (toolchain: musl libc 1.2.5, glibc 2.38,gcc 13.3.0, binutils 2.42), pa i rezultate uzmite kao ilustrativne. Poredili smo MOCHAbin sa dve platforme, jedna je Raspberry Pi 4 sa takođe četvorojezgarnim ARM Cortex-A72, a drugi je Banana Pi BPi-R2 Pro ruter sa Rockchip RK3568 – takođe četvorojezgarnim, ali sa ARM Cortex-A55 jezgrima.
Sysbench CPU je jasno pokazao da su ARM Cortex-A72 jezgra superiorna u odnosu na ARM Cortex-A55. Raspberry Pi 4 je postigao nešto bolje rezultate jer sam radi na nešto višem taktu od 1.5 GHz, za razliku od Armade koja inicijalno radi na 1.4 GHz. Ovaj takt se džamperima na ploči može spustiti na 1200, 1000, 800 ili 600 MHz ukoliko je to opravdano sa stanovišta potrošnje, odnosno termalnih problema.
OpenSSl testovi su pokazali da Marvell Armada 7K procesor ima ugrađena kola za hardversku enkripciju koja su u rangu Rochchip-ovih, pa time daleko nadmašuje performanse koje nudi Raspberry Pi, što je u mrežnim aplikativnom zahtevima veoma bitno. Hardverski enkriptori su vezani za takt, pa će u slučaju njegovog obaranja i oni postizati adekvatno manje performanse.
MOCHAbin DDR4 RAM radi na 800 MHz, u pitanju je 32-bitni DDR1600 sa ECC funkcijama. Raspberry Pi 4 koristi 3200 MHz LPDDR4 memoriju, kao i Rockhip RK3568 i oba memorijska kontrolera su 32 bitna.
Kao i Sysbench RAM i Tinymembench je pokazao da je Rochchip dominantan u brzini manipulacije podacima u memoriji. Nešto lošije performanse MOCHAbin-a sigurno dolaze i zbog ECC memorije, ali se mora uzeti u obzir i zastarela Ubuntu verzija na kojoj je vršeno testiranje.
Unixbench test, iako prevaziđen pokazao je veoma interesantne rezultate. Naime MOCHAbin je u njemu superioran u odnosu na ostale dve uporedne platforme. Naravno da ne možemo dati neki smisleni komentar u vezi ove pojave, ali je sam podatak dovoljan kao poziv na promišljanje o proizvodima koji su namenjeni prvenstveno industrijskog upotrebi, kao što je to Marvell Armada.
Na kraju, pogledali smo i Geekbench 5 i dobili opet slične rezultate. Izgleda da profesionalna oprema u kompleksnim testovima sistema ipak postiže dominantno dobre rezultate, što smo prvi put primetili na testovima Voipac i.MX 8M Industrial Development Kit-a.
Zaključak
U zaključku je mesto i za nerealizovana obećanja. Jedno od njih je i mikroBUS konektor koji je hardverski povezan na Marvel Armada 7040 SoC, ali nigde na internetu nema pomena o načinu upotrebe, sem jednog bloga iz 2023. koji govori da „za sada“ to nije omogućeno. Deluje da ovo nije retko obećanje, posebno kod proizvođača rutera koji kao po pravilu postavljaju ovaj „konektor“ za dodatna hardverska proširenja. Mi smo od kompanije mikroe(lektronika) nabavili četiri Click pločice sa bazičnim senzorima kako bi isprobali ovu mogućnost. Na žalost svih, na ovom modelu, za sada nećemo videti kako ova opcija funkcioniše.

Drugo obećanje je da će se kao LAN svič koristiti Topaz 88E6341, a u MOCHAbin-u se našao Topaz 88E6141, te poslednično tome MOCHAbin nema PTP, 1588, TCAM, Sync-E i druge „pametne“ mrežne funkcije u LAN delu. Pri tom, ovim svičem se 2.5 Gbps linija sa Marvell Armada 7040 SoC-a deli na četiri Gb Ethernet porta. Dakle, nema govora o 4 Gb agregatnom protoku na ovim LAN portovima.
Treća skrivena činjenica je da je druga 2.5 Gbps Marvell Armada linija multipleksirana između Gb PoE Ethernet WAN porta i Gb optičkog SFP WAN porta. Dakle jedan samo jedan od njih može raditi u jednom trenutku. Dodatno iznenađenje je došlo kada smo u dokumentaciji pročitali sledeću tvrdnju: „eth0 and eth2 are network bonded in mode-1(active backup) as the same WAN port with eth2 set to bond primary. This means eth0 will be active only when eth2 doesn’t exist or fails.“ eth0 je u stvari 10 Gbps optički SFP+ WAN, a eth2 pomenuti Gb SFP optički WAN. Iako Marvell Armada 7040 ima agregatni protok podataka od 12 Gbps, to će potencijalno biti dostignuto ukoliko se MOCHAbin podesi da bude NAS ili server, ali nikako ako je u funkciji rutera koji bi formirao lokalnu mrežu.
Izbor AzureWave AW-XM458 (sa NXP 88W9098 u njemu) deluje nam kao želja da se hardver što više usaglasi sa industrijskim parnjacima, budući da se 2022. godine pojavio veći broj industrijskih rutera renomiranih kompanija sa ovom kombinacijom Wi-Fi modula i SoC-a. Problemi sa drajverima postoje i danas, a da nije hrvatske kompanije Sartura, pitanje je da kakvu bi i OpenWRT podršku uopšte imali.
MOCHAbin nema mogućnost ugradnje M.2 NVMe SSD diska već samo SATA što za posledicu ima slabije performanse, bitne ako se uređaj koristi kao mrežno skladište podataka. Razvojni tim je dva Armadina SATA porta realizovao na dva različita načina. Jedan je, kao što smo već rekli, u vidu klasičnog SATA konektora za disk sa predviđenim držačem, dok je drugi u vidu M.2 Key B konektora. Obratite pažnju prilikom nabavke M.2 SATA diska, posebno ako kupujete Key B+M koji može biti i SATA, ali i NVMe. Ovaj potonji neće raditi.

Da li je nabavka ovog Marvell Armada 7040 (razvojnog sistema) otvorenog rutera/NAS-a za $299 dobra, pitanje je na koji ne možemo imati odgovor. Industrijske platforme na tom SoC-u, iako 2022. popularne danas su u ponudi samo kao zamenske. Tehnologija brzo ide dalje i pojavljuju se nova i sofisticiranija rešenja za istu cenu. Ako sa druge strane želite pouzdan hardver i ne predstavlja vam problem što se ne možete osloniti na podršku koja se očekuje od mainstream kompanija ovaj ruter/NAS može biti odličan izazov. Posebno je primamljiv zbog 10 Gb optičkog WAN-a i činjenice da je ovo potpuno otvoren hardver koji radi na novom 24.10.0 OpenWRT softveru otvorenog koda. Za građenje sopstvene lokalne mreže, mrežnog skladišta podataka ili rutera koji kombinuje optiku, žični Ethernet, LTE, Wi-Fi 6 i Bluetoot 5.3 moglo bi se reći da je dostojan izazov svakom profesionalcu i mejkeru.