AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Based Computers sa Module Instruksyon
Pasiuna
Pahibalo sa Copyright
Copyright © 2023 Avnet Embedded GmbH. Tanang katungod gigahin. Ang pagkopya niini nga dokumento, paghatag sa uban ug ang paggamit o komunikasyon sa mga sulod niini, gidili nga walay dayag nga awtoridad gikan sa Avnet Embedded/MSC Technologies
GmbH. Ang mga nakasala adunay tulubagon sa pagbayad sa mga danyos. Ang tanan nga mga katungod gireserba kung adunay paghatag usa ka patente o pagrehistro sa usa ka modelo sa utility o disenyo.
Importante nga Impormasyon
Kini nga dokumentasyon gituyo alang sa mga kwalipikado nga mga mamiminaw lamang. Ang produkto nga gihulagway dinhi dili usa ka produkto sa end user. Gipalambo ug gihimo kini alang sa dugang nga pagproseso sa mga gibansay nga kawani.
Disclaimer
Bisan kung kini nga dokumento gihimo uban ang labing kaayo nga pag-amping walay warranty o tulubagon alang sa pagkahusto o pagkaangay sa bisan unsang partikular nga katuyoan ang gipasabut. Ang impormasyon sa kini nga dokumento gihatag "sa pagkakaron" ug mahimong usbon nga walay pahibalo.
Mga marka sa pamatigayon
Ang tanan nga gigamit nga mga ngalan sa produkto, logo o marka sa pamatigayon gipanag-iya sa ilang tag-iya.
Kinatibuk-ang Impormasyon
Kasangkaran
Kini nga dokumento magamit sa tanang Avnet Embedded Computer-on-Modules base sa NXP i.MX8- ug i.MX9-series nga mga CPU, sama sa eg
- 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
Kini nga lista wala mag-angkon nga kompleto, labi na nga ang mga bag-ong tabla mahimong ipagawas diin ang parehas nga mga pamaagi mahimong magamit, samtang kini nga dokumento mahimo’g dili kanunay nga ma-update dayon.
Mga Pagbag-o ug Pagbag-o
Rebisyon | Petsa | Komento | |
1.0 | 25.05.2023 | M. Koch | Inisyal nga bersyon |
Giunsa ang pagbag-o sa debug sa UART port
Pasiuna
Daghang mga sistema nga nakabase sa ARM nga adunay usa ka Serial Console ingon ang nag-unang paagi sa pag-access alang sa mga katuyoan sa pag-debug ug sistema. Depende sa mga kinahanglanon sa kostumer, kini usa ka kanunay nga kinahanglanon sa ingon nga mga sistema nga ang default nga debug nga UART port kinahanglan nga ibalhin sa usa ka lahi nga serial port. Pinaagi sa pag-debug sa UART port ang among gipasabot mao ang UART port nga maghatag sa tanan nga U-Boot input/output, kernel bootlog output ug kernel shell, batakan ang tanan nga UART nga komunikasyon nga makita sa usa ka gamay nga Yocto image. Tungod kay ang default nga pantalan sa UART wala gigamit sa usa lamang ka bahin sa software, apan sa daghang mga sangkap, lakip ang u-boot, atf-firmware, optee-os ug kernel mismo, ang pagtakda sa default nga pantalan sa UART mahimong mahagit, ug sa ibabaw.view dali ra mawala. Kini nga dokumento magpatin-aw sa tanan nga mga lakang nga sundon, aron makab-ot kini nga buluhaton. Alang sa mas sayon nga katin-awan, kini nga dokumento gisulat alang sa NXP i.MX8 MINI processor ug mscldk, apan mahimong magamit sa tanan nga i.MX8- ug i.MX9-series nga mga processor ug uban pang mga sistema sa pagtukod nga adunay gamay nga paningkamot.
Pag-andam sa palibot
Ang pagbag-o sa default debug UART port magkinahanglan og pag-usab sa code sa Yocto, ug ang pinakasayon nga paagi sa pagbuhat niini, mao ang paggamit sa Yocto devtool aron maandam ang mga tinubdan alang kanato. Kinahanglang usbon ang mosunod nga Yocto packages:
- u-boot-imx (virtual/bootloader)
- linux-imx (virtual/kernel)
- atf-imx
- optee-os (kon optee lang ang gigamit)
Ang mga tinubdan kinahanglan nga andamon uban sa devtool:
$ ./devtool usba ang u-boot-imx
$ ./devtool usba ang linux-imx
$ ./devtool usba ang atf-imx
$ ./devtool usba ang optee-os
Ang tanan nga mga gigikanan makit-an sa direktoryo nga "workspace".
Pag-usab sa code
Pag-usab sa Bootloader
Sa bootloader mahitabo ang pipila ka sukaranan nga pagsugod sa UART, mao nga kinahanglan nga usbon ang muxing ug ang base nga adres sa pantalan sa UART. Ang ikaduhang tahas sa u-boot mao ang pagpasa sa mga argumento sa boot ngadto sa kernel ug dinhi kinahanglan nga usbon ang console tty argument. Ang pagsugod ug muxing sa UART mahitabo sa pinakauna nga mga stage sa proseso sa boot sa SPL. Ang source code makita sa board specific spl.c file.
Target file: workspace/sources/u-boot-imx/board/msc/sm2s_imx8mm/spl.c
Ablihi ang file ug navigate sa function init_ser0():
static void init_ser0(walay)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk(1);
}
Ang function nagpalihok sa orasan alang sa UART2(index 1 para sa pisikal nga UART 2).
Karon, kung gusto namong gamiton ang UART1, mahimo namong ipasabut ang among kaugalingon nga init_ser1 function:
static void init_ser1(walay)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}
Ilisan ang function call sa init_ser0 sa init_ser1() sa board_early_init_f() function. Dugang pa nga namatikdan namon nga ang istruktura sa ser1_pads wala gihubit. Dinhi kinahanglan nga mahibal-an ang mga wiring sa UART1. Sa imx8mm, UART1 mahimong muxed sa uart1 pads, o sa sai2 pads. Tungod niini, ang ser1_pads mahimong ipasabut ingon:
static nga 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
};
O kung dili, gamit ang sai2:
static nga 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 };
Karon ang UART base nga adres kinahanglan nga usbon, ang adres gihubit sa boards header config file.
Target file: workspace/sources/u-boot-imx/include/configs/msc_sm2s_imx8mm.h
Usba ang kahulugan nga CONFIG_MXC_UART_BASE. Alang sa UART1 kini mahimong:
- // #define CONFIG_MXC_UART_BASE
- UART2_BASE_ADDR
- #define CONFIG_MXC_UART_BASE
- UART1_BASE_ADDR
Sa katapusan, ang argumento sa kernel sa console kinahanglan nga usbon. Ang bili makita sa samang ulohan file. Pangitaa ang “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..
Pag-usab sa ARM Trusted Firmware
Ang Arm Trusted Firmware(imx-atf) walay kaugalingong UART initialization routine, pero kini adunay hardcoded UART base address, ug nagsalig sa saktong UART initialization gikan sa u-boot. Ang usa ka lahi nga base address configuration sa u-boot ug imx-atf lagmit nga magbilin sa processor nga maipit sa usa ka exception handler, ug walay makita sa UART (ang CPU daw nagbitay nga walay makita nga rason). Kung gibag-o ang pantalan sa UART, kini nga pagbag-o kinahanglan usab nga mahitabo sa imx-atf! Ang pagbag-o sa port sa UART sa imx-atf nanginahanglan usa ka pagbag-o sa base address. Kini nga kantidad gibutang sa plataporma.mk file sa processor.
Target file: workspace/sources/imx-atf/plat/imx/imx8m/imx8mm/platform.mk
Ang husto nga UART base nga adres makita sa imx8 reference manual. Niining exampatong usbon gikan sa UART2 ngadto sa UART1 sa imx8mm:
# IMX_BOOT_UART_BASE ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000
Pag-usab sa optee-os
Ang Optee OS kasagaran nga gikarga kung ang CAAM module cryptography gigamit sa sistema. Ang Optee nagdagan sa parehas nga ARM Cortex-A53 nga mga core, apan sa lain nga hingpit nga independente nga pananglitan sama sa kernel. Ang Optee nanginahanglan usab ug UART nga pag-access ug sa kini nga kaso nagpasabut kini usa ka pagbag-o sa base address.
Target file: workspace/sources/optee-os/core/arch/arm/plat-imx/conf.mk
Kini nga example magbutang ug UART base nga adres gikan sa UART2 ngadto sa UART1:
#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE
Pag-usab sa Kernel
Ang Kernel magkinahanglan lamang ug pipila ka mga pag-usab sa punoan sa device, ug kung ang UART wala pa magamit sa kernel. Sa daghang mga kaso, wala’y kinahanglan nga pagbag-o. Bisan pa, palihug susiha kung ang tty instance nga gusto nimong gamiton anaa! Susiha ang presensya sa tty gamit ang shell command:
$ls /dev/ttymxc*
Kung ang ttymxc naa na, wala’y kinahanglan nga pagbag-o. Kay example, alang sa UART2 kini mahimong /dev/ttymxc1. Sa ato nang nahibal-an, ang indeks sa tty mao ang kanunay nga indeks sa pisikal nga UART minus 1. Kung ang gikinahanglan nga tty wala magamit, palihug sunda ang naandan nga pamaagi sa paghiusa sa UART.
Pagtukod ug Pagsulay
Alang sa usa ka luwas nga pagtukod pag-usab ang usa ka bug-os nga paglimpyo kinahanglan nga magamit:
$ ./bitbake –c limpyo ang tanan nga u-boot-imx linux-imx imx-atf optee-os
Pagtukod pag-usab sa imahe gamit ang default build command, alang sa example:
$ ./bitbake msc-image-base
Alang sa katuyoan sa pagsulay, ang usa ka adapter sa UART kinahanglan nga konektado sa daan nga UART. Kinahanglan nga wala nay output sa daan nga UART! Ang bag-ong UART kinahanglan nga hingpit nga magamit, para niana palihog pamatud-i ang koneksyon pinaagi sa paggamit sa u-boot UART shell ug sa linux console.
Suporta sa Produkto
Ang Avnet Embedded nga mga inhenyero ug technician komitado sa paghatag og suporta sa among mga kustomer kung gikinahanglan. Sa dili pa mokontak sa Teknikal nga Suporta sa Avnet Embedded, palihog konsultaha ang tagsa-tagsa nga mga panid sa among website sa
https://embedded.avnet.com/support/
alang sa pinakabag-o nga dokumentasyon, mga drayber ug pag-download sa software.
Kung ang impormasyon nga gihatag didto dili makasulbad sa imong problema, palihog kontaka ang among Avnet Embedded Technical Support team sama sa mosunod:
Email: support.boards@avnet.eu
Telepono: +49 (0)8165 906-200
Mga Dokumento / Mga Kapanguhaan
![]() |
AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Based Computers sa Module [pdf] Mga instruksiyon MSC SM2S-IMX8M, MSC SM2S-IMX8M Debug UART Port ARM Based Computers sa Module, Debug UART Port ARM Based Computers sa Module, UART Port ARM Based Computers sa Module, Port ARM Based Computers sa Module, ARM Based Computers sa Module, Based Computers sa Module, Computers sa Module, Module |