I-AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM esekwe kwiikhompyuter kwiMiyalelo yeModyuli
I-AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM esekwe kwiikhompyuter kwiModyuli

Intshayelelo

Isaziso selungelo lokushicilela

Copyright © 2023 Avnet Embedded GmbH. Onke Amalungelo Agciniwe. Ukukopishwa kolu xwebhu, ukubonelela abanye kunye nokusetyenziswa okanye unxibelelwano lwemixholo yalo, akuvumelekanga ngaphandle kwegunya elicacileyo elivela kwi-Avnet Embedded / MSC Technologies.

GmbH. Abaphuli-mthetho banoxanduva lokuhlawula umonakalo. Onke amalungelo agcinwe kwimeko yokunikezelwa kwelungelo elilodwa lomenzi wechiza okanye ukubhaliswa kwemodeli eluncedo okanye uyilo.

Ulwazi Olubalulekileyo

Olu xwebhu lujoliswe kubaphulaphuli abafanelekileyo kuphela. Imveliso echazwe apha ayiyomveliso yomsebenzisi wokugqibela. Yaphuhliswa yaze yenzelwe ukusetyenzwa ngakumbi ngabasebenzi abaqeqeshiweyo.

Ukuzihlangula

Nangona olu xwebhu lwenziwe ngononophelo olukhulu akukho siqinisekiso okanye xanduva lokuchaneka okanye ukufaneleka kwayo nayiphi na injongo echaziweyo. Ulwazi olukolu xwebhu lunikezelwe “njengoko lunjalo” kwaye lunokutshintshwa ngaphandle kwesaziso.

Iimpawu zokuthengisa

Onke amagama emveliso asetyenzisiweyo, iilogo okanye iimpawu zokuthengisa ziyipropathi yabanini bazo.

Iinkcukacha zajikelele

Ububanzi

Olu xwebhu lusebenza kuzo zonke i-Avnet Embedded Computer-on-Modules esekelwe kwi-NXP i.MX8- kunye ne-i.MX9-series CPUs, ezifana umz.

  • I-SM2S-IMX8PLUS
  • I-SM2S-IMX8M
  • I-SM2S-IMX8MINI
  • I-SM2S-IMX8NANO
  • I-SM2S-IMX8 (QuadPlus/QuadMax)
  • I-SM2S-IMX93
  • I-OSM-SF-IMX91
  • I-OSM-SF-IMX93
  • I-OSM-MF-IMX8NANO
  • I-OSM-MF-IMX8MINI

Olu luhlu alubangi luphelele, ngakumbi njengoko iibhodi ezintsha zinokukhutshwa ekunokuthi kusebenze kuzo iinkqubo ezifanayo, ngelixa olu xwebhu lungasoloko luhlaziywa ngokukhawuleza.

Uhlaziyo kunye noHlengahlengiso

Uhlaziyo Umhla Comment
1.0 25.05.2023 M. Koch Inguqulelo yokuqala

Ulitshintsha njani izibuko le-UART ye-debug

Intshayelelo

Iinkqubo ezininzi ezisekelwe kwi-ARM ziza ne-Serial Console njengendlela ephambili yokufikelela kwi-debug kunye neenjongo zokuzisa inkqubo. Kuxhomekeka kwiimfuno zomthengi, yimfuneko ehlala isenzeka kwiinkqubo ezinjalo ukuba isixokelelwano se-UART sokungagqibeki sidinga ukutshintshelwa kwizibuko lothotho olwahlukileyo. Ngokulungisa izibuko le-UART sithetha izibuko le-UART eliza kubonelela ngalo lonke igalelo/imveliso ye-U-Boot, imveliso ye-kernel bootlog kunye neqokobhe le-kernel, ngokusisiseko lonke unxibelelwano lwe-UART umntu uya kulibona kumfanekiso omncinci weYocto. Ukusukela ukuba izibuko le UART elingagqibekanga lingasetyenziswa lilungu lesoftware enye kuphela, kodwa ngamacandelo amaninzi, ukuquka u-boot, atf-firmware, optee-os kunye nekernel ngokwayo, ukucwangcisa izibuko yeUART engagqibekanga kunokuba ngumngeni, kwaye ngaphezulu.view inokulahleka ngokukhawuleza. Olu xwebhu luya kuchaza onke amanyathelo amawalandelwe, ukuphumeza lo msebenzi. Ukufumana ingcaciso elula, olu xwebhu lubhalelwe i-NXP i.MX8 MINI iprosesa kunye ne-mscldk, kodwa ingasetyenziswa kuzo zonke i.MX8- kunye ne-i.MX9-series processors kunye nezinye iinkqubo zokwakha ngomzamo omncinci kakhulu.

Ukulungiselela okusingqongileyo

Ukutshintsha i-debug ye-UART ye-port ye-debug iya kufuna ikhowudi yokuguqula kwi-Yocto, kwaye indlela elula yokuyenza, kukusebenzisa i-Yocto devtool ukusilungiselela imithombo. Kuya kufuneka ukuguqula ezi phakheji zeYocto zilandelayo:

  • u-boot-imx (virtual/bootloader)
  • linux-imx (virtual/kernel)
  • i-atf-imx
  • i-optee-os (kuphela ukuba i-optee isetyenzisiwe)

Imithombo kufuneka ilungiswe nge-devtool: 

$ ./devtool lungisa u-boot-imx
$ ./devtool lungisa i-linux-imx
$ ./devtool lungisa i-atf-imx
$ ./devtool lungisa i-optee-os

Yonke imithombo yolwazi inokufumaneka kuluhlu "lwendawo yokusebenza".

Ikhowudi yokuguqula

Ukutshintsha iBootloader

Kwi-bootloader okunye ukuqaliswa kwe-UART esisiseko kuya kwenzeka, ngoko ke kuyakufuneka ukuguqula i-muxing kunye nedilesi yesiseko se-UART port. Umsebenzi wesibini we-u-boot kukugqithisa iimpikiswano zesiqalo kwi-kernel kwaye apha kuyakuba yimfuneko ukulungisa i-console tty ingxoxo. Ukuqaliswa kwe-UART kunye ne-muxing kwenzeka kwi-s yangokotage yenkqubo yesiqalo kwi SPL. Ikhowudi yemvelaphi inokufumaneka kwibhodi ethile spl.c file.

Ekujoliswe kuko file: indawo yokusebenza/imithombo/u-boot-imx/board/msc/sm2s_imx8mm/spl.c

Vula i file kwaye ujonge kumsebenzi init_ser0 ():

i-static void init_ser0(ingekho)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk(1);
}

Umsebenzi wenza ukuba iwotshi isebenze UART2(isalathisi 1 ye-UART 2 yomzimba).

Ngoku, ukuba sifuna ukusebenzisa i-UART1 endaweni yoko, sinokuchaza umsebenzi wethu we-init_ser1:

i-static void init_ser1(ingekho)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}

Faka endaweni yefowuni yomsebenzi ka init_ser0 nge init_ser1() kwi board_early_init_f() umsebenzi. Ngaphezulu siqaphela ukuba i-ser1_pads isakhiwo asichazwanga. Apha kuyakufuneka ukuba ube nolwazi ngocingo lwe-UART1. Kwi-imx8mm, i-UART1 inokudityaniswa kwi-uart1 pads, okanye kwi-sai2 pads. Ngokufanelekileyo, i-ser1_pads inokuchazwa njenge:

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
};

Okanye, usebenzisa i-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 };

Ngoku idilesi yesiseko ye-UART kufuneka iguqulwe, idilesi ichazwe kwiibhodi ze-header config file.

Ekujoliswe kuko file: indawo yokusebenza/imithombo/u-boot-imx/include/configs/msc_sm2s_imx8mm.h

Guqula inkcazo CONFIG_MXC_UART_BASE. Kwi-UART1 oku kuya kuba: 

  • // #chaza CONFIG_MXC_UART_BASE
  • UART2_BASE_ADDR
  • #chaza CONFIG_MXC_UART_BASE
  • UART1_BASE_ADDR

Ekugqibeleni, ingxabano ye-console kernel kufuneka iguqulwe. Ixabiso linokufumaneka kwisihloko esifanayo file. Khangela i “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..

Ukulungiswa kwe-ARM ethembekileyo yeFirmware

I-Arm Trusted Firmware(i-imx-atf) ayinayo eyakho indlela yokuqalisa i-UART, nangona kunjalo inedilesi yesiseko se-UART enekhowudi, kwaye ixhomekeke ekuqalisweni okufanelekileyo kwe-UART ukusuka kwi-u-boot. Uqwalaselo lwesiseko esahlukileyo kwi-u-boot kunye ne-imx-atf iyakushiya iprosesa ibambekile kwisibambi sangaphandle, kwaye akuyi kubakho nto ibonakala kwi-UART (i-CPU ibonakala ijinga ngaphandle kwesizathu esibonakalayo). Xa izibuko le-UART litshintshwa, olu tshintsho kufuneka lwenzeke kwi-imx-atf! Ukutshintsha izibuko le-UART kwi-imx-atf kufuna isiseko sokuguqulwa kwedilesi. Eli xabiso libekwe kwiqonga.mk file yeprosesa.

Ekujoliswe kuko file: indawo yokusebenzela/imithombo/imx-atf/plat/imx/imx8m/imx8mm/platform.mk 

Idilesi yesiseko ye-UART echanekileyo inokufunyanwa kwincwadana yesalathiso ye-imx8. Kule exampsitshintsha ukusuka kwi-UART2 ukuya kwi-UART1 kwi-imx8mm:

# IMX_BOOT_UART_BASE ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000

Ukulungiswa kwee-optee-os

I-Optee OS idla ngokulayishwa xa imodyuli ye-CAAM i-cryptography isetyenziswa kwinkqubo. I-Optee isebenza kwi-ARM Cortex-A53 cores efanayo, kodwa kwenye imo ezimeleyo ngokupheleleyo njenge-kernel. I-Optee ikwafuna ufikelelo lwe-UART kwaye kule meko ithetha ukuguqulwa kwedilesi yesiseko.

Ekujoliswe kuko file: indawo yokusebenza/imithombo/optee-os/core/arch/arm/plat-imx/conf.mk

Le example iyakuseta idilesi yesiseko se-UART ukusuka kwi-UART2 ukuya kwi-UART1: 

#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE

Ukutshintsha iKernel

I-Kernel iya kufuna kuphela izixhobo ezimbalwa zokuguqulwa komthi, kwaye kuphela ukuba i-UART ayikafumaneki kwi-kernel okwangoku. Kwiimeko ezininzi, akukho kuguqulwa kuya kufuneka konke konke. Nangona kunjalo, nceda uqinisekise ukuba umzekelo we-tty ofuna ukuwusebenzisa ukhona! Jonga ubukho be-tty ngomyalelo weqokobhe:

$ ls /dev/ttymxc*

Ukuba i-ttymxc sele ikhona, akukho lulungiso lufunekayo. Umzekeloample, ye-UART2 le iya kuba ngu/dev/ttymxc1. Njengoko sele sisazi, isalathisi se tty sisoloko sisisalathiso se-UART yomzimba thabatha 1. Ukuba i-tty efunekayo ayikho, nceda ulandele inkqubo yesiqhelo yokudibanisa i-UART.

Yakha & Uvavanye

Ukwakha kwakhona okukhuselekileyo kufuneka kucocwe ngokupheleleyo:

$ ./bitbake -c cleanall u-boot-imx linux-imx imx-atf optee-os

Yakha umfanekiso kwakhona ngomyalelo wokwakha omiselweyo, umzekeloample:

$ ./bitbake msc-image-base

Ngenjongo yovavanyo, iadaptha ye-UART kufuneka iqhagamshelwe kwi-UART endala. Akufuneki kuphinde kubekho mveliso kwi-UART endala! I-UART entsha kufuneka isebenze ngokupheleleyo, ngenxa yoko nceda uqinisekise udibaniso ngokusebenzisa iqokobhe le-UART ye-u-boot kunye ne-console ye-linux.

Inkxaso yeMveliso

Iinjineli ze-Avnet Embedded kunye neengcali zizimisele ukubonelela ngenkxaso kubathengi bethu nanini na kufuneka. Ngaphambi kokuba uqhagamshelane neNkxaso yobuGcisa ye-Avnet Embedded, nceda uqhagamshelane namaphepha afanelekileyo kwi yethu webindawo kwi
https://embedded.avnet.com/support/
kumaxwebhu amva nje, abaqhubi kunye nokhuphelo lwesoftware.

Ukuba ulwazi olunikeziweyo aluyicombululi ingxaki yakho, nceda uqhagamshelane neqela lethu leNkxaso yobuGcisa le-Avnet elifakwe ngolu hlobo lulandelayo:

I-imeyile: support.boards@avnet.eu
Ifowuni: +49 (0)8165 906-200

I-AVNET EMBEDDED Logo

Amaxwebhu / Izibonelelo

I-AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM esekwe kwiikhompyuter kwiModyuli [pdf] Imiyalelo
MSC SM2S-IMX8M, MSC SM2S-IMX8M Debug UART Port ARM esekwe kwiiKhompyutha kwiModyuli, Debug UART Port ARM esekwe kwiiKhompyutha ezikwiModyuli, iUART Port ARM esekwe kwiiKhompyutha kwiModyuli, iPort ARM esekwe kwiModyuli, kwiARM esekwe kwiiKhompyutha ezikwiModyuli, eziSekelwe kwiikhompyuter. kwiModyuli, iiKhompyutha kwiModyuli, iModyuli

Iimbekiselo

Shiya uluvo

Idilesi yakho ye-imeyile ayizupapashwa. Iindawo ezifunekayo ziphawulwe *