FRDM i.MX91S – jak wgrać obraz na płytkę

·

NXP FRDM imx91s - jak wgrac obraz Yocto na plytke

Wprowadzenie- jak uruchomić FRDM i.MX91S po buildzie Yocto

W poprzednim poście zbudowałem przykładowy obraz systemu w oparciu o Yocto, dlatego w tym wpisie zajmę się wgraniem tego systemu na płytkę FRDM i.MX91S od NXP.

Dwie metody flashowania obrazu na kartę SD

Istnieją 2 główne metody wgrywania obrazu sytemu kartę SD- bo płytka iMX91S właśnie z takiej karty się bootuje. Metody to

  1. użycie narzędzia bmaptool
  2. użycie narzędzia uuu

Szybkie wgrywanie obrazu przez bmaptool

Opcja pierwsza wymaga wyjęcia karty SD, włożenia jej do komputera z systemem linux i zawołania komendy copy w narzędziu bmaptool. Do komendy dodajemy plik z obrazem (rozszerzenie .wic.zst) oraz miejsce, gdzie znajdziemy naszą kartę SD- u mnie to /dev/sda.

Jeśli poda się też plik imx-image-core-imx91-11x11-lpddr4-frdm-imx91s.rootfs.wic.bmap obok jego odpowiednika z rozszerzeniem zst to karta wgra się błyskawicznie.

sudo bmaptool copy --bmap imx-image-core-imx91-11x11-lpddr4-frdm-imx91s.rootfs.wic.bmap imx-image-core-imx91-11x11-lpddr4-frdm-imx91s.rootfs.wic.zst /dev/sda

U mnie 2.4 GB obraz wgrywal sie na karte około 37 sekund – łącznie z rozpakowaniem zstd.

Wgrywanie obrazu przez NXP uuu (USB recovery)

Druga opcja to uuu tool od NXP. Tak jak bmaptool użyjesz do płytek od innych vendorów tak uuu działa tylko dla NXP.

Przygotowanie płytki do trybu Serial Download

Żeby skorzystać z uuu należy go zainstalować. Następnie trzeba podpiąć kable USB do płytki – jeden jest do połączenia szeregowego i jest oznaczony jako DEBUG, a drugi, oznaczony jako TYPE-C USB1- właśnie do wgrywania. Potem trzeba przestawić zworki na płytce, żeby ustawić ją w tryb Serial Download. To ostatnie osiągam przez ustawienie DIP Switcha na 0001.

Weryfikacja połączenia z płytką

Po podłączeniu przestawieniu DIP Switcha na 0001, podłączeniu kabla USB-C oraz włączeniu urządzenia – można je wykryć na komputerze host. Do tego celu używamy uuu -lsusb.

Znalazło płytkę! To przechodzimy do kolejnego kroku:

Flashowanie obrazu

Skoro płytka jest wykryta, możemy wgrać obraz na kartę SD przy użyciu uuu toola. Żeby tego dokonać wołamy komendę:

sudo uuu -b sd_all ./imx-image-core-imx91-11x11-lpddr4-frdm-imx91s.rootfs-20260429200202.wic.zst

Do komendy uuu przekazaliśmy parametr -b sd_all, który mówi żeby uuu skorzystał ze swojego wbudowanego skryptu do wypalenia całego obrazu na karcie SD. Jeśli Twoja płytka ma wbudowaną pamięć eMMC – wtedy korzystasz z innego wbudowanego skryptu, np. -b emmc_all.

Na koniec podajesz obraz w formacie wic – może być spakowany – jak u mnie przy użyciu facebookowego Zstandard.

Pierwsze uruchomienie systemu i dostęp przez UART

Po zakończonym wgrywaniu przestawiam zworki z powrotem na oryginalną pozycję. Według tabelki z tyłu płytki powinno to być 0011, ale w rzeczywistości, przynajmniej w mojej płytce- jest to 1100. Możliwe, że to bug w dokumentacji.

Podłączam zasilanie, żeby wystartować płytkę, startuję minicom albo screen, żeby podłączyć się do serial’a (ten drugi port USB-C oznaczony DEBUG- znajduje się obok portu do wgrywania systemu) i pyk – mamy ten system:

Uwagi praktyczne i problemy ze zworkami

Co wybrać – uuu czy bmaptool w przypadku i.MX91S?

Po przetestowaniu obu narzędzi dla siebie wybieram bmaptool, bo jest po prostu szybszy. Wyjęcie karty SD i przełożenie jej do czytnika zajmuje o wiele mniej czasu niż czekanie aż uuu skończy działać.

Gdyby istniała możliwość zautomatyzowania sterowania DIP Switchem to wtedy przestawiłbym się na uuu, ale w przypadku i.MX91S musiałbym przylutować dodatkowe kable albo w inny sposób zastąpić DIP Switch zwykłymi zworkami. Na ten moment jest to nieopłacalne.

Błąd w dokumentacji

Na tylnej części płytki PCB znajduje się mała tabela, mówiąca o trybach bootowania:

SW1 [4-1]BOOT DEVICE
0001Downloader
0011SDHC
0101FlexSPI NAND

Oznacza to w skrócie, że ustawiając DIP Switch w pozycję 0001 – mamy tryb Serial Download, który pozwala na wykorzystanie uuu, następnie w pozycji 0011 – startujemy z karty SD, a w pozycji 0101 – z wbudowanej pamięci NAND Flash o rozmiarze 256MB.

Niestety po ustawieniu DIP Switcha w pozycję 0011 czyli bootowania z karty SD – płytka nie działa. Działa natomiast po ustawieniu pozycji na 1100 – w takiej pozycji przyszła do mnie ta płytka i bootowanie z karty SD działało. Jest to moim zdaniem błąd, o którym warto pamiętać korzystając z tej płytki.

Podsumowanie

Po przestestowaniu dwóch możliwych sposobów na wgranie software’u na płytki mogę podjąć świadomą decyzję i korzystać z bmaptoola do wgrywania nowych obrazów na i.MX91S.

Gdybym miał potrzebę zautomatyzowania tego wgrywania – na pewno przestawiłbym się na korzystanie z uuu toola, ale przez brak możliwości łatwego zautomatyzowania sterowania DIP Switchem – rezygnuję z tej możliwości.

Na koniec warto pamiętać o tym, że wgrywanie nowego obrazu w przyszłości nie będzie zdarzało się często, bo chcę opracować system aktualizacji – w oparciu o jedno ze znanych narzędzi jak np. swupdate, Mender lub RAUC. Gdy już takie rozwiązanie powstanie to na pewno znajdzie się tutaj link do tego posta.

Komentarze

Jedna odpowiedź na “FRDM i.MX91S – jak wgrać obraz na płytkę”

  1. […] wgramy ten obraz na płytkę ewaluacyjną – zobacz wpis […]

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *