AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Fa'avae Komepiuta i luga ole Fa'atonuga Fa'atonu.
AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Fa'avae Komepiuta i luga ole Module

Upu Tomua

Faasilasilaga Puletaofia

Puletaofia © 2023 Avnet Embedded GmbH. Ua taofia aia tatau uma. O le kopiina o lenei pepa, tuʻuina atu i isi ma le faʻaogaina poʻo le fesoʻotaʻiga o mea o loʻo i ai, e faʻasaina e aunoa ma se pule faʻaalia mai le Avnet Embedded /MSC Technologies

GmbH. E noatia tagata solitulafono mo le totogiina o mea ua faaleagaina. O aia tatau uma e fa'aagaga pe a tu'uina atu se pateni po'o le resitalaina o se fa'ata'ita'iga aoga po'o se mamanu.

Fa'amatalaga Taua

O lenei fa'amaumauga e fa'amoemoe mo na'o tagata fa'apitoa. O le oloa o lo'o fa'amatalaina i inei e le'o se mea e fa'aaogaina fa'au'uga. Na atia'e ma gaosia mo le fa'agaioiga atili e tagata faigaluega a'oa'oina.

Fa'ailoga

E ui lava o lenei pepa na gaosia ma le faaeteete e leai se faʻamaonia poʻo se noataga mo le saʻo poʻo le talafeagai mo soʻo se faʻamoemoega faʻapitoa e faʻaalia. O faʻamatalaga i totonu o lenei pepa o loʻo tuʻuina atu "e pei ona iai" ma e mafai ona suia e aunoa ma se faʻaaliga.

Fa'ailoga Fa'ailoga

O igoa uma o oloa fa'aaogaina, logos po'o fa'ailoga tau fefa'ataua'iga o meatotino a latou tagata.

Fa'amatalaga Lautele

Aotelega

O lenei pepa e faʻaoga mo Avnet Embedded Computer-on-Modules uma e faʻavae ile NXP i.MX8- ma le i.MX9-series CPUs, pei ole faʻataʻitaʻiga

  • 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

O lenei lisi e le o fai mai e le atoatoa, aemaise lava pe a mafai ona tatalaina ni laupapa fou e mafai ona faʻaoga tutusa faiga, ae o lenei pepa e le mafai ona faʻafouina vave.

Toe Iloiloga ma Suiga

Toe Iloiloga Aso Faamatalaga
1.0 25.05.2023 M. Koch Faiga muamua

Fa'afefea ona sui le debug UART uafu

Folasaga

O le tele o faiga fa'avae ARM o lo'o sau ma le Serial Console e fai ma auala autu e maua ai le fa'aogaina o le fa'aogaina ma le fa'atupuina o fa'amoemoega. Fa'alagolago i mana'oga o tagata fa'atau, ose mea e fa'atupu soo i ia faiga e mana'omia ai ona sui le uafu debug UART i se isi uafu serial. O le debug UART port o lona uiga o le UART port lea o le a maua uma ai le U-Boot input/output, kernel bootlog output ma kernel shell, e masani lava o fesoʻotaʻiga UART uma o le a vaʻaia e se tasi i se ata Yocto laʻititi. Talu ai ona o le faaletonu o le UART port e le o faaaogaina e na o le tasi le vaega polokalama, ae o le tele o vaega, e aofia ai le u-boot, atf-firmware, optee-os ma le fatu lava ia, o le setiina o le UART uafu faaletonu e mafai ona luitauina, ma le sili atu.view e mafai ona vave leiloa. O lenei pepa o le a faʻamatalaina laasaga uma e mulimuli ai, e ausia ai lenei galuega. Mo faʻamatalaga faigofie, o lenei pepa na tusia mo le NXP i.MX8 MINI processor ma mscldk, ae mafai ona faʻaoga i le i.MX8- ma le i.MX9-series processors ma isi faiga faʻavae ma se taumafaiga itiiti lava.

Saunia le siosiomaga

O le suia o le faʻaogaina o le UART port e manaʻomia ai le suia o le code i Yocto, ma o le auala pito sili ona faigofie e fai ai, o le faʻaaogaina lea o Yocto devtool e saunia ai punaoa mo i tatou. E manaʻomia le faʻaleleia o afifi Yocto nei:

  • u-boot-imx (virtual/bootloader)
  • linux-imx (virtual/kernel)
  • atf-imx
  • optee-os (naʻo pe a faʻaaoga le optee)

E tatau ona saunia punaoa ma devtool: 

$ ./devtool suia le u-boot-imx
$ ./devtool sui linux-imx
$ ./devtool sui atf-imx
$ ./devtool sui optee-os

O puna'oa uma e mafai ona maua i le "workspace" directory.

Fa'ailoga tulafono

Suia le Bootloader

I totonu o le bootloader o le a tupu ai se amataga UART autu, o lea e tatau ai ona sui le muxing ma le tuatusi autu o le UART port. O le galuega lona lua a le u-boot o le tuʻuina atu lea o finauga faʻavae i le fatu ma o iinei o le a manaʻomia ai le suia o le console tty argument. UART amataina ma muxing e tupu i le amataga stage o le faiga fa'avae i le SPL. E mafai ona maua le code source i le laupapa spl.c faapitoa file.

Sini file: avanoa faigaluega/sources/u-boot-imx/board/msc/sm2s_imx8mm/spl.c

Tatala le file ma faʻafeiloaʻi i le galuega init_ser0():

static void init_ser0(vale)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk(1);
}

O le galuega e fa'agaoioia ai le uati mo UART2(fa'asino igoa 1 mo UART faaletino 2).

Ia, afai tatou te mananaʻo e faʻaoga UART1 nai lo lena, e mafai ona tatou faʻamatalaina a tatou lava init_ser1 galuega:

static void init_ser1(vale)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}

Suia le valaau galuega a init_ser0 ma init_ser1() i le board_early_init_f() galuega. E le gata i lea, matou te matauina e le o faʻamalamalamaina le fausaga ser1_pads. O iinei e tatau ai ona nofouta i le uaea o UART1. I imx8mm, UART1 e mafai ona muxed i uart1 pads, po'o sai2 pads. E tusa ai ma lea, ser1_pads e mafai ona faauigaina e faapea:

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

A leai, faʻaaoga 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 };

O lea la e tatau ona sui le tuatusi fa'avae UART, o le tuatusi o lo'o fa'amatalaina i le fa'auluuluga o laupapa file.

Sini file: workspace/sources/u-boot-imx/include/configs/msc_sm2s_imx8mm.h

Suia le fa'amatalaga CONFIG_MXC_UART_BASE. Mo UART1 o le: 

  • // #define CONFIG_MXC_UART_BASE
  • UART2_BASE_ADDR
  • #define CONFIG_MXC_UART_BASE
  • UART1_BASE_ADDR

Mulimuli ane, e tatau ona suia le finauga kernel console. E mafai ona maua le tau i le ulutala tutusa file. Saili mo “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..

Suia le ARM Trusted Firmware

Arm Trusted Firmware(imx-atf) e leai sana faiga fa'avae UART, peita'i o lo'o iai lona tuatusi fa'amaufa'ailoga UART, ma fa'alagolago ile amataga ole UART mai le u-boot. O se isi faʻasologa o tuatusi faʻavae i le u-boot ma le imx-atf e foliga mai o le a tuʻu ai le gaioiga e pipii i totonu o se tagata faʻapitoa, ma o le a leai se mea e iloa i luga o le UART (o le PPU e foliga mai e tautau e aunoa ma se mafuaaga vaaia). A suia le uafu UART, e tatau foi ona tupu lenei suiga ile imx-atf! Suia le UART uafu i imx-atf manaʻomia se faʻasologa o tuatusi faʻavae. O lenei tau o loʻo faʻatulagaina i le platform.mk file o le processor.

Sini file: avanoa faigaluega/sources/imx-atf/plat/imx/imx8m/imx8mm/platform.mk 

O le tuatusi fa'avae UART sa'o e mafai ona maua i le tusi fa'asino imx8. I lenei examptatou sui mai le UART2 i le UART1 ile imx8mm:

# IMX_BOOT_UART_BASE ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000

Suia optee-os

O le Optee OS e masani ona utaina pe a faʻaogaina le faʻaogaina o le CAAM module cryptography i luga o le polokalama. O le Optee e tamoe i luga o le ARM Cortex-A53 cores, ae i se isi tulaga tutoatasi atoatoa e pei o le fatu. E mana'omia fo'i e le Optee le avanoa i le UART ma i le tulaga lea o lona uiga o le suiga ole tuatusi fa'avae.

Sini file: workspace/sources/optee-os/core/arch/arm/plat-imx/conf.mk

O lenei exampo le a seti le tuatusi fa'avae UART mai UART2 i le UART1: 

#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE

Suia le Kernel

Ole Kernel ole a mana'omia na'o ni nai suiga ole la'au masini, ma pe afai e le'i maua le UART ile fatu. I le tele o tulaga, e leai se suiga e mana'omia. Ae ui i lea, faʻamolemole faʻamaonia pe o iai le faʻataʻitaʻiga tty e te manaʻo e faʻaoga! Siaki le tty faʻatasi ma se faʻatonuga atigi:

$ ls /dev/ttymxc*

Afai ua maua le ttymxc, e leai se suiga e manaʻomia. Mo example, mo UART2 o le /dev/ttymxc1. E pei ona uma ona tatou iloa, o le faasino igoa o le tty e masani lava o le faasinoupu o le UART faaletino toesea 1. Afai e le o maua le tty manaʻomia, faʻamolemole mulimuli i le masani UART integration procedure.

Fausia & Su'ega

Mo se toe fausia saogalemu e tatau ona faʻaogaina le faʻamamaina atoatoa:

$ ./bitbake –c faamama uma u-boot-imx linux-imx imx-atf optee-os

Toe fau le ata i le fa'atonuga faufale, mo fa'ataampLe:

$ ./bitbake msc-image-base

Mo le fa'amoemoega o su'ega, e tatau ona fa'afeso'ota'i se UART adapter i le UART tuai. E le tatau ona toe i ai se gaioiga i luga o le UART tuai! O le UART fou e tatau ona galue atoatoa, mo lena faʻamolemole faʻamaonia le fesoʻotaʻiga e ala i le faʻaogaina o le u-boot UART shell ma le linux console.

Lagolago oloa

Avnet Embedded engineers ma tekinisia o lo'o naunau e tu'uina atu le lagolago i a tatou tagata fa'atau i so'o se taimi e mana'omia ai. A'o le'i fa'afeso'ota'i le Lagolago Fa'atekinisi a le Avnet Embedded, fa'amolemole fa'afeso'ota'i itulau ta'itasi i la matou webnofoaga i
https://embedded.avnet.com/support/
mo fa'amaumauga lata mai, aveta'avale ma la'u mai polokalame.

Afai o fa'amatalaga o lo'o tu'uina atu iina e le fo'ia ai lou fa'afitauli, fa'amolemole fa'afeso'ota'i la matou vaega o le Avnet Embedded Technical Support e pei ona taua i lalo:

imeli: support.boards@avnet.eu
Telefoni: +49 (0)8165 906-200

AVNET EMBEDDED Logo

Pepa / Punaoa

AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Fa'avae Komepiuta i luga ole Module [pdf] Faatonuga
MSC SM2S-IMX8M, MSC SM2S-IMX8M Debug UART Port ARM Fa'avae Komipiuta i luga o le Module, Debug UART Port ARM Fa'avae Komipiuta i luga ole Module, UART Port ARM Fa'avae Komipiuta i luga ole Module, Port ARM Fa'avae Komipiuta i luga ole Module, ARM Fa'avae Komipiuta i luga ole Module, Fa'avae Komipiuta i luga ole Module, Komepiuta ile Module, Module

Fa'asinomaga

Tuu se faamatalaga

E le fa'asalalauina lau tuatusi imeli. Fa'ailogaina fanua mana'omia *