AVNET EMBEDDED MSC SM2S-IMX8M Araztu UART ataka ARM oinarritutako ordenagailuak moduluaren argibideetan

Hitzaurrea
Copyright-oharra
Copyright © 2023 Avnet Embedded GmbH. Eskubide guztiak erreserbatuta. Debekatuta dago dokumentu hau kopiatzea, besteei ematea eta horren edukia erabiltzea edo komunikatzea, Avnet Embedded / MSC Technologies-en berariazko baimenik gabe.
GmbH. Arau-hausleak kalte-galeren erantzule dira. Eskubide guztiak erreserbatuta daude patente bat eman edo erabilgarritasun-eredu edo diseinu bat erregistratzen bada.
Informazio garrantzitsua
Dokumentazio hau publiko kualifikatuentzat soilik da. Hemen deskribatzen den produktua ez da azken erabiltzailearen produktua. Prestatutako langileek garatu eta fabrikatu zuten prozesatzeko.
Erantzukizuna
Dokumentu hau arreta handiz sortu den arren, ez da inolako bermerik edo erantzukizunik inplikatuko helburu zehatz baterako zuzentasuna edo egokitasuna. Dokumentu honetako informazioa "dagoen moduan" ematen da eta alda daiteke jakinarazi gabe.
Markak
Erabilitako produktuen izen, logotipo edo marka komertzialak dagozkien jabeen jabetzakoak dira.
Informazio Orokorra
Eremua
Dokumentu hau NXP i.MX8- eta i.MX9 serieko PUZetan oinarritutako Avnet-en kapsulatutako ordenagailuen modulu guztietarako aplikatzen da, adibidez.
- SM2S-IMX8PLUS
- SM2S-IMX8M
- SM2S-IMX8MINI
- SM2S-IMX8NANO
- SM2S-IMX8 (QuadPlus/QuadMax)
- SM2S-IMX93
- OSM-SF-IMX91
- OSM-SF-IMX93
- OSM-MF-IMX8NANO
- OSM-MF-IMX8MINI
Zerrenda honek ez du esan nahi zehatza denik, batez ere izapide berberak aplika daitezkeen kontseilu berriak kaleratu daitezkeelako, dokumentu hau beti berehala eguneratuta ez egotea.
Berrikuspenak eta Aldaketak
| Berrikuspena | Data | Iruzkina | |
| 1.0 | 25.05.2023 | M. Koch | Hasierako bertsioa |
Nola aldatu arazketa UART ataka
Sarrera
ARM-n oinarritutako sistema askok serieko kontsola bat dute arazte- eta sistema abiarazteko atzitzeko bide nagusi gisa. Bezeroaren eskakizunen arabera, horrelako sistemetan maiz gertatzen den beharra da arazteko UART ataka lehenetsia beste serie ataka batera aldatzea. UART ataka arazketaz, U-Boot sarrera/irteera, nukleoaren abiarazteen irteera eta nukleoaren shell guztiak emango dituen UART ataka esan nahi dugu, funtsean, Yocto irudi minimo batean ikusiko duen UART komunikazio guztia. UART ataka lehenetsia software osagai batek bakarrik erabiltzen ez duenez, osagai askok baizik, u-boot, atf-firmware, optee-os eta kernel-ek barne, UART ataka lehenetsia ezartzea zaila izan daiteke, eta gehiagoview azkar gal daiteke. Dokumentu honetan egin beharreko urrats guztiak azalduko dira, zeregin hori lortzeko. Azalpen errazagoa izateko, dokumentu hau NXP i.MX8 MINI prozesadorerako eta mscldk-erako idatzi zen, baina i.MX8- eta i.MX9 serieko prozesadore guztietan eta beste eraikuntza-sistema batzuetan aplika daiteke esfortzu txikiarekin.
Ingurumena prestatzea
Arazketa lehenetsitako UART ataka aldatzeko Yocto-n kodea aldatu beharko da, eta hori egiteko modurik errazena Yocto devtool erabiltzea da iturriak guretzako prestatzeko. Beharrezkoa izango da Yocto pakete hauek aldatzea:
- u-boot-imx (birtuala/abiarazlea)
- linux-imx (birtuala/kernel)
- atf-imx
- optee-os (optee erabiltzen bada soilik)
Iturriak devtool-ekin prestatu behar dira:
$ ./devtool aldatu u-boot-imx
$ ./devtool aldatu linux-imx
$ ./devtool aldatu atf-imx
$ ./devtool aldatu optee-os
Iturburu guztiak "laneko eremua" direktorioan aurki daitezke.
Kodea aldatzea
Bootloader aldatzea
Abio-kargatzailean oinarrizko UART hasierako batzuk gertatuko dira, beraz, muxing-a eta UART atakaren oinarrizko helbidea aldatzea beharrezkoa izango da. U-boot-en bigarren zeregina abio-argumentuak nukleora pasatzea da eta hemen beharrezkoa izango da kontsola tty argumentua aldatzea. UART hasieratzea eta muxing-a lehen mendeetan gertatzen datagabio-prozesuaren e SPL-n. Iturburu-kodea plaka spl.c espezifikoan aurki daiteke file.
Helburua file: workspace/sources/u-boot-imx/board/msc/sm2s_imx8mm/spl.c
Ireki file eta nabigatu init_ser0() funtziora:
static void init_ser0(void)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk(1);
}
Funtzioak erlojua aktibatzen du UART2 (indizea 1 UART fisikorako 2).
Orain, UART1 erabili nahi badugu, gure init_ser1 funtzioa defini genezake:
static void init_ser1(void)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}
Ordeztu init_ser0-ren funtzio-deia init_ser1() board_early_init_f() funtzioan. Gainera, ser1_pads egitura ez dagoela definituta nabarituko dugu. Hemen beharrezkoa izango da UART1-en kableatuaren berri izatea. Imx8mm-n, UART1 muxatu daiteke uart1 padetara edo sai2 padetara. Horren arabera, ser1_pads honela defini daiteke:
static iomux_v3_cfg_t const ser1_pads[] = {
IMX8MM_PAD_UART1_RXD_UART1_RX | DEFAULT_UART_PAD_CTRL, IMX8MM_PAD_UART1_TXD_UART1_TX | DEFAULT_UART_PAD_CTRL, NULL
};
Edo bestela, sai2 erabiliz:
static iomux_v3_cfg_t const ser1_pads[] = {
IMX8MM_PAD_SAI2_RXFS_UART1_TX | DEFAULT_UART_PAD_CTRL, IMX8MM_PAD_SAI2_RXC_UART1_RX | DEFAULT_UART_PAD_CTRL NULL };
Orain UART oinarrizko helbidea aldatu behar da, helbidea plaken goiburuko konfigurazioan definitzen da file.
Helburua file: workspace/sources/u-boot-imx/include/configs/msc_sm2s_imx8mm.h
Aldatu CONFIG_MXC_UART_BASE definizioa. UART1-erako hau izango litzateke:
- // #definitu CONFIG_MXC_UART_BASE
- UART2_BASE_ADDR
- #defini CONFIG_MXC_UART_BASE
- UART1_BASE_ADDR
Azkenik, kontsolaren nukleoaren argumentua aldatu beharko litzateke. Balioa goiburu berean aurki daiteke file. Bilatu “console=ttymxc1…” eta aldatu “ttymxc1” “ttymxc0”-ra. Indize-zenbakia UART indizearekin korrelazionatzen da, eta beti UART indizea ken 1 da. Beraz, UART 2rako ttymxc1 erabiltzen dugu, UART3rako ttymxc2 etab.
ARM fidagarria den firmwarea aldatzea
Arm Trusted Firmware (imx-atf) ez du UART hasierako errutinarik; hala ere, UART oinarri-helbide gogor kodetua du, eta u-boot-etik UART hasieratze egokian oinarritzen da. U-boot eta imx-atf-en oinarrizko helbide-konfigurazio desberdin batek ziurrenik prozesadorea salbuespen-kudeatzaile batean itsatsita utziko du, eta ez da ezer egongo UART-n (PUZa arrazoi ikusgarririk gabe zintzilik dagoela dirudi). UART ataka aldatzen denean, aldaketa hau imx-atf-en ere gertatu behar da! UART ataka imx-atf-en aldatzeak oinarrizko helbidea aldatzea eskatzen du. Balio hau platform.mk-n ezartzen da file prozesadorearena.
Helburua file: workspace/sources/imx-atf/plat/imx/imx8m/imx8mm/platform.mk
UART oinarrizko helbide zuzena imx8 erreferentzia eskuliburuan aurki daiteke. Adib honetanampUART2tik UART1era aldatzen dugu imx8mm-n:
# IMX_BOOT_UART_BASE ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000
Optee-os aldatzea
Optee OS sisteman CAAM moduluaren kriptografia erabiltzen denean kargatu ohi da. Optee ARM Cortex-A53 nukleo berdinetan exekutatzen da, baina nukleoaren beste instantzia guztiz independente batean. Optee-k UART sarbidea ere behar du eta kasu honetan oinarrizko helbidea aldatzea esan nahi du.
Helburua file: workspace/sources/optee-os/core/arch/arm/plat-imx/conf.mk
Adibampfitxategiak UART oinarrizko helbidea ezarriko du UART2tik UART1era:
#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE
Kernel-a aldatzea
Kernelak gailuen zuhaitz aldaketa gutxi beharko ditu, eta UART oraindik nukleoan eskuragarri ez badago. Kasu askotan, ez da inolako aldaketarik beharko. Hala ere, egiaztatu erabili nahi duzun tty instantzia dagoen ala ez! Egiaztatu tty presentzia shell komando batekin:
$ ls /dev/ttymxc*
Ttymxc dagoeneko eskuragarri badago, ez da aldaketarik behar. Adibidezample, UART2rako hau /dev/ttymxc1 izango litzateke. Dagoeneko dakigunez, tty-ren indizea beti da UART fisikoaren indizea ken 1. Beharrezko tty-a eskuragarri ez badago, jarraitu UART integrazio-prozedura ohikoa.
Eraiki eta Probatu
Berreraikitze segururako garbiketa osoa aplikatu behar da:
$ ./bitbake –c cleanall u-boot-imx linux-imx imx-atf optee-os
Eraiki irudia berriro eraikitzeko komando lehenetsiarekin, adibidezample:
$ ./bitbake msc-image-base
Proba egiteko, UART egokitzaile bat UART zaharrera konektatu behar da. Ez luke irteera gehiago egon behar UART zaharrean! UART berriak guztiz funtzionala izan behar du; horretarako, egiaztatu konexioa u-boot UART shell eta linux kontsola erabiliz.
Produktuaren laguntza
Avnet Embedded ingeniari eta teknikariek gure bezeroei laguntza eskaintzeko konpromisoa hartzen dute behar denean. Avnet Embedded-en laguntza teknikoarekin harremanetan jarri aurretik, kontsultatu gure orrialdean dagozkien orrialdeak webgunean
https://embedded.avnet.com/support/
azken dokumentazio, kontrolatzaile eta software deskargatzeko.
Bertan emandako informazioak zure arazoa konpontzen ez badu, jarri harremanetan gure Avnet Embedded Laguntza Teknikoko taldearekin honela:
Posta elektronikoa: support.boards@avnet.eu
Telefonoa: +49 (0)8165 906-200
![]()
Dokumentuak / Baliabideak
![]() |
AVNET EMBEDDED MSC SM2S-IMX8M Araztu UART ataka ARM oinarritutako ordenagailuak moduluan [pdfArgibideak MSC SM2S-IMX8M, MSC SM2S-IMX8M Araztu UART ataka ARM oinarritutako ordenagailuak moduluan, arazketa UART ataka ARM oinarritutako ordenagailuak moduluan, UART ataka ARM oinarritutako ordenagailuak moduluan, portuko ARM oinarritutako ordenagailuak moduluan, ARM oinarritutako ordenagailuak moduluan, Oinarritutako ordenagailuak Moduluan, Ordenagailuak Moduluan, Moduluan |




