AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Ibbażat Kompjuters fuq Modulu Istruzzjonijiet
Prefazju
Avviż dwar id-drittijiet tal-awtur
Copyright © 2023 Avnet Embedded GmbH. Id-drittijiet kollha riżervati. L-ikkupjar ta' dan id-dokument, li jipprovdi lil ħaddieħor u l-użu jew il-komunikazzjoni tal-kontenut tiegħu, huma pprojbiti mingħajr awtorità espressa minn Avnet Embedded/MSC Technologies
GmbH. It-trasgressuri huma responsabbli għall-ħlas tad-danni. Id-drittijiet kollha huma riżervati fil-każ tal-għoti ta' privattiva jew ir-reġistrazzjoni ta' mudell ta' utilità jew disinn.
Informazzjoni Importanti
Din id-dokumentazzjoni hija maħsuba għal udjenzi kwalifikati biss. Il-prodott deskritt hawnhekk mhuwiex prodott għall-utent aħħari. Ġie żviluppat u mmanifatturat għal aktar ipproċessar minn persunal imħarreġ.
Ċaħda
Għalkemm dan id-dokument ġie ġġenerat bl-akbar attenzjoni, l-ebda garanzija jew responsabbiltà għall-korrettezza jew l-adegwatezza għal xi skop partikolari hija implikata. L-informazzjoni f'dan id-dokument hija pprovduta "kif inhi" u hija soġġetta għal bidla mingħajr avviż.
Trademarks
L-ismijiet, il-logos jew it-trademarks kollha tal-prodotti użati huma proprjetà tas-sidien rispettivi tagħhom.
Informazzjoni Ġenerali
Ambitu
Dan id-dokument japplika għall-Kompjuter Inkorporat fuq Moduli Avnet kollha bbażati fuq CPUs tas-serje NXP i.MX8 u i.MX9, bħal eż.
- 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
Din il-lista ma tippretendix li hija eżawrjenti, speċjalment peress li jistgħu jinħarġu bordijiet ġodda li għalihom jistgħu japplikaw l-istess proċeduri, filwaqt li dan id-dokument jista’ mhux dejjem jiġi aġġornat immedjatament.
Reviżjonijiet u Modifiki
Reviżjoni | Data | Ikkummenta | |
1.0 | 25.05.2023 | M. Koch | Verżjoni inizjali |
Kif tibdel il-port UART tad-debug
Introduzzjoni
Ħafna sistemi bbażati fuq ARM jiġu b'Serial Console bħala l-mezz ewlieni ta 'aċċess għal skopijiet ta' debug u introduzzjoni tas-sistema. Skont ir-rekwiżiti tal-klijent, hija ħtieġa li sseħħ ta 'spiss f'sistemi bħal dawn li l-port UART tad-debug default jeħtieġ li jinbidel għal port serjali differenti. Permezz ta 'debug tal-port UART irridu nfissru l-port UART li se jipprovdi l-input/output kollu U-Boot, l-output tal-bootlog tal-qalba u l-qoxra tal-qalba, bażikament il-komunikazzjoni UART kollha li wieħed jara f'immaġni Yocto minima. Peress li l-port default UART ma jintużax minn komponent wieħed biss tas-softwer, iżda pjuttost minn ħafna komponenti, inklużi u-boot, atf-firmware, optee-os u kernel innifsu, l-issettjar tal-port default UART jista 'jkun ta' sfida, u l-overview jista 'malajr jintilef. Dan id-dokument se jispjega l-passi kollha li għandhom isegwu, biex jinkiseb dan il-kompitu. Għal spjegazzjoni aktar faċli, dan id-dokument inkiteb għall-proċessur NXP i.MX8 MINI u mscldk, iżda jista 'jiġi applikat għall-proċessuri kollha tas-serje i.MX8 u i.MX9 u sistemi ta' bini oħra bi ftit sforz.
Tħejjija tal-ambjent
Il-bdil tal-port default tad-debug UART se jeħtieġ li timmodifika l-kodiċi f'Yocto, u l-eħfef mod biex tagħmel dan, huwa li tuża Yocto devtool biex tipprepara s-sorsi għalina. Ikun meħtieġ li jiġu mmodifikati l-pakketti Yocto li ġejjin:
- u-boot-imx (virtwali/bootloader)
- linux-imx (virtwali/kernel)
- atf-imx
- optee-os (biss jekk jintuża optee)
Is-sorsi għandhom jiġu ppreparati b'devtool:
$ ./devtool jimmodifika u-boot-imx
$ ./devtool jimmodifika linux-imx
$ ./devtool timmodifika atf-imx
$ ./devtool timmodifika optee-os
Is-sorsi kollha jistgħu jinstabu fid-direttorju "spazju tax-xogħol".
Kodiċi li jimmodifika
Li timmodifika l-Bootloader
Fil-bootloader se jiġri xi inizjalizzazzjoni UART bażika, għalhekk ikun meħtieġ li timmodifika l-muxing u l-indirizz bażi tal-port UART. It-tieni kompitu ta 'u-boot huwa li tgħaddi argumenti tal-boot lill-kernel u hawnhekk ikun meħtieġ li timmodifika l-argument tty tal-console. L-inizjalizzazzjoni u l-muxing UART iseħħu fl-ewwel stage tal-proċess boot fl-SPL. Il-kodiċi tas-sors jista 'jinstab fil-bord speċifiku spl.c file.
Mira file: spazju tax-xogħol/sorsi/u-boot-imx/board/msc/sm2s_imx8mm/spl.c
Iftaħ il- file u naviga għall-funzjoni init_ser0():
static void init_ser0(void)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk(1);
}
Il-funzjoni jattiva l-arloġġ għal UART2(indiċi 1 għal UART fiżiku 2).
Issa, jekk irridu nużaw UART1 minflok, nistgħu niddefinixxu l-funzjoni init_ser1 tagħna stess:
static void init_ser1(void)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}
Ibdel is-sejħa tal-funzjoni ta 'init_ser0 ma' init_ser1() fil-funzjoni board_early_init_f(). Barra minn hekk ninnotaw li l-istruttura ser1_pads mhix definita. Hawnhekk se jkun meħtieġ li tkun konxju tal-wajers ta 'UART1. Fuq imx8mm, UART1 jista 'jiġi muxed għal pads uart1, jew għal pads sai2. Għaldaqstant, ser1_pads jistgħu jiġu definiti bħala:
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
};
Jew inkella, billi tuża sai2:
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 };
Issa l-indirizz bażi tal-UART għandu jiġi modifikat, l-indirizz huwa definit fil-konfigurazzjoni tal-header tal-bordijiet file.
Mira file: workspace/sources/u-boot-imx/include/configs/msc_sm2s_imx8mm.h
Immodifika d-definizzjoni CONFIG_MXC_UART_BASE. Għal UART1 dan ikun:
- // #define CONFIG_MXC_UART_BASE
- UART2_BASE_ADDR
- #define CONFIG_MXC_UART_BASE
- UART1_BASE_ADDR
Fl-aħħarnett, l-argument tal-kernel tal-console għandu jiġi modifikat. Il-valur jista' jinstab fl-istess header file. Fittex għal “console=ttymxc1…” and modify “ttymxc1” to “ttymxc0”. The index number correlates to UART index, and is always UART index minus 1. So for UART 2 we use ttymxc1, for UART3 use ttymxc2 etc..
Timmodifika l-ARM Trusted Firmware
Arm Trusted Firmware (imx-atf) m'għandu l-ebda rutina ta 'inizjalizzazzjoni UART stess, madankollu għandu indirizz bażi UART hardcoded, u jiddependi fuq inizjalizzazzjoni UART xierqa minn u-boot. Konfigurazzjoni ta 'indirizz bażi differenti f'u-boot u imx-atf x'aktarx tħalli l-proċessur imwaħħal f'handler ta' eċċezzjoni, u ma jkun hemm xejn viżibbli fuq UART (is-CPU jidher li hang mingħajr raġuni viżibbli). Meta l-port UART jinbidel, din il-bidla trid isseħħ ukoll f'imx-atf! Il-bidla tal-port UART f'imx-atf teħtieġ modifika tal-indirizz bażi. Dan il-valur huwa stabbilit fil-platform.mk file tal-proċessur.
Mira file: spazju tax-xogħol/sorsi/imx-atf/plat/imx/imx8m/imx8mm/platform.mk
L-indirizz bażi UART korrett jista 'jinstab fil-manwal ta' referenza imx8. F'dan exampnibdlu minn UART2 għal UART1 fuq imx8mm:
# IMX_BOOT_UART_BASE ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000
Li timmodifika l-optee-os
Optee OS normalment jitgħabba meta tintuża l-kriptografija tal-modulu CAAM fis-sistema. Optee jaħdem fuq l-istess qlub ARM Cortex-A53, iżda f'każ ieħor kompletament indipendenti bħall-qalba. Optee jeħtieġ ukoll aċċess UART u f'dan il-każ ifisser modifika tal-indirizz bażi.
Mira file: spazju tax-xogħol/sorsi/optee-os/core/arch/arm/plat-imx/conf.mk
Dan example se tissettja l-indirizz bażi UART minn UART2 għal UART1:
#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE
Timmodifika l-kernel
Kernel se jeħtieġ biss ftit modifiki tas-siġra tal-apparat, u biss jekk l-UART għadu mhux disponibbli fil-kernel. F'ħafna każijiet, l-ebda modifika ma tkun meħtieġa. Madankollu, jekk jogħġbok ivverifika jekk l-istanza tty li trid tuża teżistix! Iċċekkja l-preżenza tat-tty b'kmand tal-qoxra:
$ ls /dev/ttymxc*
Jekk it-ttymxc huwa diġà disponibbli, l-ebda modifika mhi meħtieġa. Per example, għal UART2 dan ikun /dev/ttymxc1. Kif diġà nafu, l-indiċi ta 'tty huwa dejjem l-indiċi ta' l-UART fiżiku nieqes 1. Jekk it-tty meħtieġ ma jkunx disponibbli, jekk jogħġbok segwi l-proċedura ta 'integrazzjoni UART tas-soltu.
Ibni u Ittestja
Għal bini mill-ġdid bla periklu għandu jiġi applikat tindif sħiħ:
$ ./bitbake –c cleanall u-boot-imx linux-imx imx-atf optee-os
Ibni l-immaġni mill-ġdid bil-kmand tal-bini default, pereżempjuample:
$ ./bitbake msc-image-base
Għall-iskop tal-ittestjar, adapter UART għandu jkun imqabbad mal-UART l-antik. M'għandux ikun hemm aktar output fuq l-UART l-antik! L-UART il-ġdid għandu jkun kompletament funzjonali, għal dan jekk jogħġbok ivverifika l-konnessjoni billi tuża l-qoxra UART u-boot u l-console linux.
Appoġġ għall-Prodott
L-inġiniera u t-tekniċi ta' Avnet Embedded huma impenjati li jipprovdu appoġġ lill-klijenti tagħna kull meta jkun meħtieġ. Qabel ma tikkuntattja l-Appoġġ Tekniku ta' Avnet Embedded, jekk jogħġbok ikkonsulta l-paġni rispettivi fuq tagħna websit fuq
https://embedded.avnet.com/support/
għall-aħħar dokumentazzjoni, sewwieqa u downloads tas-softwer.
Jekk l-informazzjoni pprovduta hemmhekk ma ssolvix il-problema tiegħek, jekk jogħġbok ikkuntattja lit-tim tagħna ta' Appoġġ Tekniku Inkorporat ta' Avnet kif ġej:
Email: support.boards@avnet.eu
Telefon: +49 (0)8165 906-200
Dokumenti / Riżorsi
![]() |
AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Ibbażat Kompjuters fuq Modulu [pdf] Istruzzjonijiet MSC SM2S-IMX8M, MSC SM2S-IMX8M Debug UART Port ARM Ibbażat Kompjuters fuq Modulu, Debug UART Port ARM Ibbażat Kompjuters fuq Modulu, UART Port ARM Ibbażat Kompjuters fuq Modulu, Port ARM Ibbażat Kompjuters fuq Modulu, ARM Ibbażat Kompjuters fuq Modulu, Kompjuters Ibbażati fuq Modulu, Kompjuters fuq Modulu, Modulu |