AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Awọn kọnputa ti o da lori Awọn ilana Module
AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Awọn kọnputa ti o da lori Module

Àsọyé

Akiyesi Aṣẹ-lori-ara

Aṣẹ © 2023 Avnet ifibọ GmbH. Gbogbo awọn ẹtọ wa ni ipamọ. Didaakọ iwe yii, pese si awọn miiran ati lilo tabi ibaraẹnisọrọ ti awọn akoonu inu rẹ, jẹ eewọ laisi aṣẹ kiakia lati Avnet Embedded /MSC Technologies

GmbH. Awọn ẹlẹṣẹ jẹ oniduro fun sisanwo awọn bibajẹ. Gbogbo awọn ẹtọ wa ni ipamọ ni iṣẹlẹ ti ẹbun ti itọsi tabi iforukọsilẹ ti awoṣe ohun elo tabi apẹrẹ.

Alaye pataki

Iwe yi jẹ ipinnu fun awọn olugbo ti o peye nikan. Ọja ti a ṣalaye ninu rẹ kii ṣe ọja olumulo ipari. O ti ni idagbasoke ati iṣelọpọ fun sisẹ siwaju nipasẹ oṣiṣẹ oṣiṣẹ.

AlAIgBA

Botilẹjẹpe iwe-ipamọ yii ti jẹ ipilẹṣẹ pẹlu itọju to ga julọ ko si atilẹyin ọja tabi layabiliti fun titọ tabi ibamu fun eyikeyi idi kan pato ti o tumọ si. Alaye ti o wa ninu iwe yii ti pese “bi o ti ri” ati pe o wa labẹ iyipada laisi akiyesi.

Awọn aami-išowo

Gbogbo awọn orukọ ọja ti a lo, awọn aami tabi aami-iṣowo jẹ ohun-ini ti awọn oniwun wọn.

Ifihan pupopupo

Ààlà

Iwe yi kan fun gbogbo Avnet ifibọ Computer-on-Modules da lori NXP i.MX8- ati i.MX9-jara CPUs, gẹgẹ bi awọn apẹẹrẹ.

  • 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

Atokọ yii ko beere pe o pari, paapaa bi awọn igbimọ tuntun le ṣe idasilẹ fun eyiti awọn ilana kanna le waye, lakoko ti iwe yii le ma ṣe imudojuiwọn nigbagbogbo lẹsẹkẹsẹ.

Awọn atunṣe ati Awọn atunṣe

Àtúnyẹwò Ọjọ Ọrọìwòye
1.0 25.05.2023 M. Koch Ẹya akọkọ

Bii o ṣe le yipada ibudo UART yokokoro

Ọrọ Iṣaaju

Pupọ awọn ọna ṣiṣe ti o da lori ARM wa pẹlu Console Serial gẹgẹbi ọna akọkọ ti iraye si fun yokokoro ati awọn idi igbejade eto. Ti o da lori awọn ibeere alabara, o jẹ iwulo ti o nwaye nigbagbogbo ni iru awọn ọna ṣiṣe ti ibudo yokokoro aifọwọyi UART nilo lati yipada si ibudo ni tẹlentẹle miiran. Nipa yokokoro UART ibudo a tumo si UART ibudo eyi ti yoo pese gbogbo U-Boot igbewọle / o wu, ekuro bootlog o wu ati ekuro ikarahun, besikale gbogbo UART ibaraẹnisọrọ ọkan yoo ri ni a pọọku Yocto image. Niwọn igba ti ibudo UART aiyipada ko lo nipasẹ paati sọfitiwia kan nikan, ṣugbọn nipasẹ ọpọlọpọ awọn paati, pẹlu u-boot, atf-firmware, optee-os ati ekuro funrararẹ, ṣeto ibudo UART aiyipada le jẹ nija, ati siwajuview le ni kiakia sọnu. Iwe yii yoo ṣe alaye gbogbo awọn igbesẹ lati tẹle, lati ṣaṣeyọri iṣẹ yii. Fun rọrun alaye, iwe yi a kọ fun NXP i.MX8 MINI isise ati mscldk, ṣugbọn o le wa ni loo si gbogbo i.MX8- ati i.MX9-jara nse ati awọn miiran Kọ awọn ọna šiše pẹlu gan kekere akitiyan .

Ngbaradi ayika

Yiyipada ebute yokokoro aiyipada UART yoo nilo iyipada koodu ni Yocto, ati ọna ti o rọrun julọ lati ṣe, ni lati lo Yocto devtool lati ṣeto awọn orisun fun wa. Yoo jẹ dandan lati yipada awọn idii Yocto wọnyi:

  • u-boot-imx (foju/bootloader)
  • linux-imx (foju/kernel)
  • atf-imx
  • optee-os (nikan ti o ba lo optee)

Awọn orisun yẹ ki o pese pẹlu devtool: 

$ ./devtool yipada u-boot-imx
$ ./devtool ṣe atunṣe linux-imx
$ ./devtool yipada atf-imx
$ ./devtool yipada optee-os

Gbogbo awọn orisun ni a le rii ninu ilana “aaye iṣẹ”.

koodu iyipada

Títúnṣe Bootloader

Ninu bootloader diẹ ninu ipilẹṣẹ UART ipilẹ yoo ṣẹlẹ, nitorinaa yoo jẹ pataki lati yipada muxing ati adirẹsi ipilẹ ti ibudo UART. Iṣẹ-ṣiṣe keji ti u-boot ni lati kọja awọn ariyanjiyan bata si kernel ati nibi yoo jẹ pataki lati yi ariyanjiyan tty console pada. Ipilẹṣẹ UART ati muxing ṣẹlẹ ni awọn ibẹrẹ stage ti ilana bata ni SPL. Awọn koodu orisun le ri ninu awọn ọkọ kan pato spl.c file.

Àfojúsùn file: aaye iṣẹ/awọn orisun/u-boot-imx/board/msc/sm2s_imx8mm/spl.c

Ṣii awọn file ki o si lọ kiri si iṣẹ init_ser0 ():

aimi init_ser0(ofo)
{
imx_iomux_v3_setup_multiple_pads (ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk (1);
}

Awọn iṣẹ activates aago fun UART2 (itọkasi 1 fun UART ti ara 2).

Ni bayi, ti a ba fẹ lo UART1 dipo, a le ṣalaye iṣẹ init_ser1 tiwa:

aimi init_ser1(ofo)
{
imx_iomux_v3_setup_multiple_pads (ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk (0);
}

Rọpo ipe iṣẹ ti init_ser0 pẹlu init_ser1 () ni iṣẹ board_early_init_f (). Siwaju sii a ṣe akiyesi pe eto ser1_pads ko ni asọye. Nibi o yoo jẹ pataki lati mọ ti awọn onirin ti UART1. Lori imx8mm, UART1 le jẹ muxed si awọn paadi uart1, tabi si awọn paadi sai2. Nitorinaa, ser1_pads le jẹ asọye bi:

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

Tabi bibẹẹkọ, lilo sai2:

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

Bayi adirẹsi ipilẹ UART yẹ ki o yipada, adirẹsi ti wa ni asọye ni atunto akọsori awọn igbimọ file.

Àfojúsùn file: aaye iṣẹ/awọn orisun/u-boot-imx/pẹlu/awọn atunto/msc_sm2s_imx8mm.h

Ṣatunṣe itumọ CONFIG_MXC_UART_BASE. Fun UART1 eyi yoo jẹ: 

  • // # asọye CONFIG_MXC_UART_BASE
  • UART2_BASE_ADDR
  • # asọye CONFIG_MXC_UART_BASE
  • UART1_BASE_ADDR

Ni ipari, ariyanjiyan ekuro console yẹ ki o yipada. Iye naa le rii ni akọsori kanna file. Wa fun “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..

Iyipada famuwia Gbẹkẹle ARM

Arm Trusted Firmware(imx-atf) ko ni ilana ipilẹṣẹ UART tirẹ, sibẹsibẹ o ni adiresi ipilẹ UART ti o ni koodu lile, ati gbarale ipilẹṣẹ UART to dara lati u-bata. Iṣeto ni ipilẹ ti o yatọ ni u-boot ati imx-atf yoo ṣeese lati lọ kuro ni ero isise ti o di ni olutọju imukuro, ati pe ko si ohun ti o han lori UART (CPU dabi pe o wa ni idorikodo fun ko si idi ti o han). Nigbati ibudo UART ba yipada, iyipada yii gbọdọ tun ṣẹlẹ ni imx-atf! Yiyipada ibudo UART ni imx-atf nilo iyipada adirẹsi ipilẹ. Yi iye ti ṣeto ni Syeed.mk file ti isise.

Àfojúsùn file: aaye iṣẹ/awọn orisun/imx-atf/plat/imx/imx8m/imx8mm/platform.mk 

Adirẹsi ipilẹ UART ti o tọ ni a le rii ninu iwe itọkasi imx8. Ninu example a yipada lati UART2 si UART1 lori imx8mm:

# IMX_BOOT_UART_BASE ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000

Iyipada optee-os

Optee OS ti wa ni nigbagbogbo kojọpọ nigbati CAAM module cryptography ti lo lori eto. Optee nṣiṣẹ lori awọn ohun kohun ARM Cortex-A53 kanna, ṣugbọn ni apẹẹrẹ ominira patapata bi ekuro. Optee tun nilo iraye si UART ati ninu ọran yii o tumọ si iyipada adirẹsi ipilẹ.

Àfojúsùn file: aaye iṣẹ/awọn orisun/optee-os/core/arch/arm/plat-imx/conf.mk

Eyi example yoo ṣeto adirẹsi ipilẹ UART lati UART2 si UART1: 

#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE?= UART1_BASE

Títúnṣe ekuro

Ekuro yoo nilo awọn iyipada igi ẹrọ diẹ, ati pe ti UART ko ba si ni ekuro sibẹsibẹ. Ni ọpọlọpọ igba, ko si iyipada yoo nilo rara. Sibẹsibẹ, jọwọ rii daju boya apẹẹrẹ tty ti o fẹ lo wa! Ṣayẹwo wiwa tty pẹlu aṣẹ ikarahun kan:

$ ls /dev/ttymxc*

Ti ttymxc ba ti wa tẹlẹ, ko nilo iyipada kankan. Fun example, fun UART2 eyi yoo jẹ /dev/ttymxc1. Gẹgẹbi a ti mọ tẹlẹ, atọka ti tty nigbagbogbo jẹ atọka ti UART ti ara iyokuro 1. Ti ko ba si tty ti a beere, jọwọ tẹle ilana isọpọ UART deede.

Kọ & Idanwo

Fun atunkọ ailewu kan ni kikun afọmọ yẹ ki o lo:

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

Kọ aworan naa lẹẹkansi pẹlu aṣẹ kikọ aiyipada, fun example:

$ ./bitbake msc-image-base

Fun idi idanwo, oluyipada UART yẹ ki o sopọ si UART atijọ. Ko yẹ ki o jẹ abajade diẹ sii lori UART atijọ! UART tuntun yẹ ki o ṣiṣẹ ni kikun, fun iyẹn jọwọ rii daju asopọ naa nipa lilo ikarahun u-boot UART ati console Linux.

Ọja Support

Awọn onimọ-ẹrọ ati awọn onimọ-ẹrọ ti Avnet ti pinnu lati pese atilẹyin si awọn alabara wa nigbakugba ti o nilo. Ṣaaju ki o to kan si Atilẹyin Imọ-ẹrọ ti Avnet Ifibọ, jọwọ kan si awọn oju-iwe oniwun lori wa webojula ni
https://embedded.avnet.com/support/
fun awọn titun iwe, awakọ ati software gbigba lati ayelujara.

Ti alaye ti o pese nibẹ ko ba yanju iṣoro rẹ, jọwọ kan si Avnet wa Ẹgbẹ Atilẹyin Imọ-iṣe Iṣipopada gẹgẹbi atẹle:

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

AVNET ifibọ Logo

Awọn iwe aṣẹ / Awọn orisun

AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM Awọn kọnputa ti o da lori Module [pdf] Awọn ilana
MSC SM2S-IMX8M, MSC SM2S-IMX8M Debug UART Port ARM Awọn kọnputa ti o da lori Module, Ṣatunkọ UART Port ARM Awọn kọnputa ti o da lori Module, UART Port ARM Awọn kọnputa ti o da lori Module, Awọn kọnputa ti o da lori ibudo lori Module, Awọn kọnputa ti o da lori ARM lori Module, Kọmputa ti o da lori lori Module, Awọn kọmputa lori Module, Module

Awọn itọkasi

Fi ọrọìwòye

Adirẹsi imeeli rẹ kii yoo ṣe atẹjade. Awọn aaye ti a beere ti wa ni samisi *