FK~

Moje odkazy

Ostatní odkazy

Close Windows
Nenajdete mě na Facebooku ani Twitteru
Rozpad EU
Jsem členem FSF
There Is No Cloud …just other people's computers.
Sane software manifesto / Manifest příčetného softwaru

HiFive1 – deska s otevřeným čipem RISC-V

vydáno: 4. 8. 2018 23:23, aktualizováno: 2. 3. 2020 01:14

Zatímco v oblasti softwaru jsme se dostali do stavu, kdy všechny běžné potřeby uživatele lze uspokojit svobodným softwarem (operační systém, nástroje, aplikace…), a uživatel má tak plnou kontrolu nad svým systémem, v oblasti hardwaru jsou stále uživatelé většinou závislí na tom proprietárním-uzavřeném. Uzavřenost – jak softwaru, tak hardwaru – má řadu negativních dopadů. Jde buď o těžko odhalitelné a často neopravitelné chyby nebo o záměrně škodlivé vlastnosti. Poslední roky jsou v tomto ohledu zvlášť bohaté: Intel AMT/ME (trojský kůň přímo v procesoru, před kterým nás FSF varovala už někdy v roce 2014) nebo SpectreMeltdown. Ať už jde o chybu, záměrně škodlivou vlastnost nebo kombinaci obojího, důsledky jsou stejné – počítač přestává poslouchat svého uživatele/vlastníka a řídí se pokyny někoho jiného, komu buď předává naše data (šifrovací klíče, citlivé soubory…) nebo nám zabrání v používání počítače (např. DRM), pozmění či smaže data. Tohle je jednoznačně nežádoucí stav – a to bez ohledu na to, zda jste běžný uživatel, banka, výrobní firma, vládní organizace nebo armáda. Současná situace v oboru je hodně špatná.

SiFive - HiFive1 - RISC-V

Nicméně i v případě hardwaru se situace zlepšuje. Cestou, jak z toho ven, je otevřenost a veřejná kontrola – nad zdrojovým kódem i nad hardwarovými návrhy. Máme poměrně silné hnutí tvůrců otevřeného hardwaru, vzniká spousta desek a zařízení, ke kterým jejich autoři zveřejňují schémata a seznamy součástek, zdrojové kódy firmwarů, návrhy pro FPGA a návody na výrobu. Ale i v těchto případech zůstává většinou zásadní část systému – procesor počítače nebo MCU (microcontroller) menšího zařízení – uzavřená. Není to vinou autorů těchto návrhů, ale tím, že otevřené součástky na trhu chybí – nebo alespoň donedávna chyběly. Ovšem i tady jsme na dobré cestě: máme architekturu OpenPOWER pro výkonné servery a pracovní stanice a máme RISC-V a lowRISC pro menší zařízení.

Pojďme se teď podívat na jednu vývojovou desku, která je plně otevřená – a to až na úroveň hardwaru a samotného čipu. Mám tady pár desek HiFive1 od SiFive s čipem RISC-V. Sice nám nenahradí počítač a nepustíme si na ní GNU/Linux, ale přesto je poměrně výkonná a dá se na ní postavit spousta užitečných zařízení.

SiFive - HiFive1 - RISC-V

Vlastnosti HiFive1

Tato deska má shodný tvar a rozměry jako Arduino Uno. Není ovšem vybavena klasickým jednočipem ATmega od Atmelu, ale o dost výkonnějším čipem SiFive Freedom E310 (FE310) s instrukční sadou RISC-V běžícím na frekvenci 320 MHz. Mimochodem: kolik MHz měl váš první počítač a co všechno dokázal? Specifikaci nalezneme na stránkách výrobce HiFive1:

HiFive1 - RISC-V - specifikace desky a čipu

Na Crowd Supply se pak můžeme podívat na srovnání s Arduinem:

HiFive1 - RISC-V - porovnání s Arduinem

Cena HiFive1

Celá deska v současnosti (srpen 2018) stojí 59 USD, což je poměrně dost, ale samotný čip vyjde v přepočtu na koruny kolem stovky – což už je přijatelné a když navrhujete zařízení v ceně několika stovek nebo pár tisícikorun, tak vás ta stovka za hlavní čip nemusí moc trápit.

SiFive - HiFive1 - RISC-V

A to se bavíme o cenách při nákupu jednotek kusů – ve větším množství a v budoucnu budou ceny výrazně nižší. Mimochodem: ten zázrak, kvůli kterému si to kupujete, není největší čip na desce, ale ten vpravo uprostřed:

SiFive - HiFive1 - RISC-V

Programování HiFive1

Sadu nástrojů potřebných pro vývoj nalezneme na stránkách výrobce: RISC-V Tools – mají tam jak IDE, tak samotné SDK a GCC pro RISC-V.

Kromě toho můžeme použít i PlatformIO, které RISC-V rovněž podporuje. Pro prvotní vyzkoušení je to asi nejpohodlnější cesta – o tomto nástroji jsem psal už v předchozím článku o IoT a TTN. Při instalaci přes PlatformIO se nám stáhne GCC a další nástroje pro RISC-V:

$ du -s .platformio/packages/toolchain-riscv/ 
1,1G    .platformio/packages/toolchain-riscv/

Začneme nejjednodušším programem (nalezneme mezi příklady v PlatfomIO):

#include <stdio.h>

int main()
{
  puts("hello world!\n");

  return 0;
}

Kompilace a spuštění:

# zkompilujeme:
platformio run -e freedom-e300-hifive1

# nastavíme si práva na USB zařízení
# (konkrétní čísla zjistíme příkazem lsusb):
sudo chown root:hacker /dev/bus/usb/003/014

# nahrajeme do zařízení:
platformio run -e freedom-e300-hifive1 --target upload

# sledujeme výpis sériového portu:
platformio device monitor --baud 115200

A po sériové lince nám po resetu zařízení přijde text „hello world!“. To sice není nic světoborného, ale víme, že deska funguje, komunikuje s naším počítačem a jsme schopni do ní nahrát vlastní program – což je celkem zásadní předpoklad pro jakýkoli další vývoj :-)

SiFive - HiFive1 - RISC-V

Závěr

RISC-V, lowRISC(?) a OpenPOWER jsou budoucnost svobodného/otevřeného hardwaru. LowRISC vypadá sice slibně, ale zatím toho moc hmatatelného nepředvedli. OpenPOWER zase vyžaduje dost velkou investici. Ale RISC-V a konkrétně deska HiFive1 od SiFive je něco, co si můžete koupit teď hned a nezruinuje to váš rodinný rozpočet. Kromě toho SiFive dělá i HiFive Unleashed což je větší a výkonnější vývojová deska, na které si už plnohodnotný GNU/Linux pustíte, ale u ní mi poměr cena/výkon nepřijde moc příznivý (pro praktické použití je potřeba dokoupit ještě rozšiřující kartu, která přidá PCI Express, M.2 a SATA). To už bych si spíš připlatil za ten OpenPOWER.

Odkazy a zdroje:

  • HiFive1 – deska s otevřeným čipem RISC-V, formát jako Arduino Uno
  • RISC-V Tools – GCC a další nástroje pro RISC-V
  • HiFive Unleashed – větší deska s RISC-V procesorem, na které už lze spustit GNU/Linux
  • RISC-V – otevřený procesor
  • RISC-V – stránka na Wikipedii
  • OpenPOWER – otevřený procesor
  • AbcLinuxu.cz – diskuse na Ábíčku

Témata: [C++] [C] [svobodný hardware] [hardware] [IoT]

Komentáře čtenářů

Tento článek zatím nikdo nekomentoval

Přidat komentář

reagujete na jiný komentář (zrušit)
jméno nebo přezdívka
název příspěvku
webová stránka, blog
e-mailová adresa
nápověda: možnosti formátování
ochrana proti spamu a špatným trollům

Náhled komentáře