AVNET உட்பொதிக்கப்பட்ட MSC SM2S-IMX8M பிழைத்திருத்த UART போர்ட் ஆர்எம் அடிப்படையிலான கணினிகள் மாட்யூல் வழிமுறைகளில்
AVNET எம்பெடட் MSC SM2S-IMX8M தொகுதியில் UART போர்ட் ARM அடிப்படையிலான கணினிகளை பிழைத்திருத்தம் செய்கிறது

முன்னுரை

காப்புரிமை அறிவிப்பு

பதிப்புரிமை © 2023 Avnet Embedded GmbH. அனைத்து உரிமைகளும் பாதுகாக்கப்பட்டவை. Avnet Embedded /MSC Technologies இன் வெளிப்படையான அதிகாரம் இல்லாமல் இந்த ஆவணத்தை நகலெடுப்பது, மற்றவர்களுக்கு வழங்குவது மற்றும் அதன் உள்ளடக்கங்களைப் பயன்படுத்துவது அல்லது தொடர்புகொள்வது தடைசெய்யப்பட்டுள்ளது.

GmbH. குற்றவாளிகள் இழப்பீடு செலுத்துவதற்கு பொறுப்பாவார்கள். காப்புரிமை வழங்கப்பட்டாலோ அல்லது பயன்பாட்டு மாதிரி அல்லது வடிவமைப்பைப் பதிவு செய்தாலோ அனைத்து உரிமைகளும் பாதுகாக்கப்பட்டவை.

முக்கியமான தகவல்

இந்த ஆவணம் தகுதிவாய்ந்த பார்வையாளர்களுக்காக மட்டுமே. இங்கு விவரிக்கப்பட்டுள்ள தயாரிப்பு இறுதி பயனர் தயாரிப்பு அல்ல. இது பயிற்சி பெற்ற பணியாளர்களால் மேலும் செயலாக்கத்திற்காக உருவாக்கப்பட்டு தயாரிக்கப்பட்டது.

மறுப்பு

இந்த ஆவணம் மிகுந்த கவனத்துடன் உருவாக்கப்பட்டிருந்தாலும், எந்தவொரு குறிப்பிட்ட நோக்கத்திற்கும் சரியான தன்மை அல்லது பொருத்தத்திற்கான உத்தரவாதமோ அல்லது பொறுப்போ குறிப்பிடப்படவில்லை. இந்த ஆவணத்தில் உள்ள தகவல்கள் "உள்ளபடியே" வழங்கப்பட்டுள்ளன, மேலும் அறிவிப்பு இல்லாமல் மாற்றத்திற்கு உட்பட்டவை.

வர்த்தக முத்திரைகள்

பயன்படுத்தப்படும் அனைத்து தயாரிப்பு பெயர்கள், லோகோக்கள் அல்லது வர்த்தக முத்திரைகள் அந்தந்த உரிமையாளர்களின் சொத்து.

பொதுவான தகவல்

நோக்கம்

இந்த ஆவணம் NXP i.MX8- மற்றும் i.MX9-தொடர் CPUகளை அடிப்படையாகக் கொண்ட அனைத்து Avnet உட்பொதிக்கப்பட்ட கணினி-ஆன்-மாட்யூல்களுக்கும் பொருந்தும், எ.கா.

  • SM2S-IMX8PLUS அறிமுகம்
  • SM2S-IMX8M அறிமுகம்
  • SM2S-IMX8MINI அறிமுகம்
  • SM2S-IMX8NANO அறிமுகம்
  • SM2S-IMX8 (குவாட்பிளஸ்/குவாட்மேக்ஸ்)
  • SM2S-IMX93 அறிமுகம்
  • OSM-SF-IMX91 அறிமுகம்
  • OSM-SF-IMX93 அறிமுகம்
  • OSM-MF-IMX8NANO அறிமுகம்
  • OSM-MF-IMX8MINI அறிமுகம்

இந்தப் பட்டியல் முழுமையானது என்று கூறவில்லை, குறிப்பாக புதிய பலகைகள் வெளியிடப்படலாம், அதற்கு அதே நடைமுறைகள் பொருந்தக்கூடும், அதே நேரத்தில் இந்த ஆவணம் எப்போதும் உடனடியாகப் புதுப்பிக்கப்படாமல் போகலாம்.

திருத்தங்கள் மற்றும் திருத்தங்கள்

திருத்தம் தேதி கருத்து
1.0 25.05.2023 எம். கோச் ஆரம்ப பதிப்பு

பிழைத்திருத்த UART போர்ட்டை எவ்வாறு மாற்றுவது

அறிமுகம்

பல ARM-அடிப்படையிலான அமைப்புகள், பிழைத்திருத்தம் மற்றும் கணினி மேம்பாட்டு நோக்கங்களுக்கான அணுகலுக்கான முக்கிய வழிமுறையாக ஒரு சீரியல் கன்சோலைக் கொண்டுள்ளன. வாடிக்கையாளர் தேவைகளைப் பொறுத்து, இதுபோன்ற அமைப்புகளில் இயல்புநிலை பிழைத்திருத்த UART போர்ட்டை வேறு சீரியல் போர்ட்டுக்கு மாற்றுவது அடிக்கடி நிகழும் தேவையாகும். பிழைத்திருத்த UART போர்ட்டைப் பொறுத்தவரை, அனைத்து U-Boot உள்ளீடு/வெளியீடு, கர்னல் பூட்லாக் வெளியீடு மற்றும் கர்னல் ஷெல் ஆகியவற்றை வழங்கும் UART போர்ட்டைக் குறிக்கிறோம், அடிப்படையில் ஒரு குறைந்தபட்ச Yocto படத்தில் காணக்கூடிய அனைத்து UART தகவல்தொடர்புகளும். இயல்புநிலை UART போர்ட் ஒரு மென்பொருள் கூறுகளால் மட்டும் பயன்படுத்தப்படுவதில்லை, மாறாக u-boot, atf-firmware, optee-os மற்றும் கர்னல் உட்பட பல கூறுகளால் பயன்படுத்தப்படுவதால், இயல்புநிலை UART போர்ட்டை அமைப்பது சவாலானது, மேலும் இது மிகவும் கடினமாக இருக்கும்.view விரைவாக தொலைந்து போகலாம். இந்தப் பணியை அடைய, பின்பற்ற வேண்டிய அனைத்து படிகளையும் இந்த ஆவணம் விளக்கும். எளிதான விளக்கத்திற்காக, இந்த ஆவணம் NXP i.MX8 MINI செயலி மற்றும் mscldk க்காக எழுதப்பட்டது, ஆனால் அனைத்து i.MX8- மற்றும் i.MX9-தொடர் செயலிகள் மற்றும் பிற உருவாக்க அமைப்புகளுக்கும் மிகக் குறைந்த முயற்சியுடன் பயன்படுத்தப்படலாம்.

சூழலைத் தயாரித்தல்

இயல்புநிலை பிழைத்திருத்த UART போர்ட்டை மாற்றுவதற்கு யோக்டோவில் குறியீட்டை மாற்றியமைக்க வேண்டியிருக்கும், மேலும் இதைச் செய்வதற்கான எளிதான வழி, யோக்டோ டெவ்டூலைப் பயன்படுத்தி நமக்கான மூலங்களைத் தயாரிப்பதாகும். பின்வரும் யோக்டோ தொகுப்புகளை மாற்றுவது அவசியம்:

  • u-boot-imx (மெய்நிகர்/துவக்க ஏற்றி)
  • லினக்ஸ்-ஐஎம்எக்ஸ் (மெய்நிகர்/கர்னல்)
  • ஏடிஎஃப்-ஐஎம்எக்ஸ்
  • optee-os (optee பயன்படுத்தப்பட்டால் மட்டும்)

devtool உடன் ஆதாரங்கள் தயாரிக்கப்பட வேண்டும்: 

$ ./devtool u-boot-imx ஐ மாற்றியமைக்கவும்
$ ./devtool லினக்ஸ்-imx ஐ மாற்றவும்
$ ./devtool atf-imx ஐ மாற்றவும்
$ ./devtool optee-os ஐ மாற்றவும்

அனைத்து ஆதாரங்களையும் "பணியிட" கோப்பகத்தில் காணலாம்.

குறியீட்டை மாற்றுகிறது

துவக்க ஏற்றியை மாற்றியமைத்தல்

துவக்க ஏற்றியில் சில அடிப்படை UART துவக்கம் நிகழும், எனவே muxing மற்றும் UART போர்ட்டின் அடிப்படை முகவரியை மாற்றுவது அவசியமாக இருக்கும். u-boot இன் இரண்டாவது பணி துவக்க வாதங்களை கர்னலுக்கு அனுப்புவதாகும், இங்கே கன்சோல் tty வாதத்தை மாற்றுவது அவசியமாக இருக்கும். UART துவக்கம் மற்றும் muxing ஆரம்ப காலங்களில் நடக்கும்.tagSPL இல் துவக்க செயல்முறையின் e. மூலக் குறியீட்டை போர்டு குறிப்பிட்ட spl.c இல் காணலாம். file.

இலக்கு file: பணியிடம்/மூலங்கள்/u-boot-imx/board/msc/sm2s_imx8mm/spl.c

திற file மற்றும் init_ser0() செயல்பாட்டிற்கு செல்லவும்:

நிலையான வெற்றிடம் init_ser0(வெற்றிடம்)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk(1);
}

இந்த செயல்பாடு கடிகாரத்தை செயல்படுத்துகிறது UART2(குறியீடு இயற்பியல் UART 1 க்கு 2).

இப்போது, ​​அதற்கு பதிலாக UART1 ஐப் பயன்படுத்த விரும்பினால், நமது சொந்த init_ser1 செயல்பாட்டை வரையறுக்கலாம்:

நிலையான வெற்றிடம் init_ser1(வெற்றிடம்)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}

board_early_init_f() செயல்பாட்டில் init_ser0 இன் செயல்பாட்டு அழைப்பை init_ser1() உடன் மாற்றவும். மேலும் ser1_pads அமைப்பு வரையறுக்கப்படவில்லை என்பதை நாம் கவனிக்கிறோம். இங்கே UART1 இன் வயரிங் பற்றி அறிந்திருப்பது அவசியம். imx8mm இல், UART1 ஐ uart1 பேட்களுக்கு அல்லது sai2 பேட்களுக்கு இணைக்கலாம். அதன்படி, ser1_pads ஐ இவ்வாறு வரையறுக்கலாம்:

நிலையான iomux_v3_cfg_t கான்ஸ்ட் ser1_pads[] = {
IMX8MM_PAD_UART1_RXD_UART1_RX | DEFAULT_UART_PAD_CTRL, IMX8MM_PAD_UART1_TXD_UART1_TX | DEFAULT_UART_PAD_CTRL, பூஜ்யம்
};

அல்லது, sai2 ஐப் பயன்படுத்துதல்:

நிலையான iomux_v3_cfg_t கான்ஸ்ட் ser1_pads[] = {
IMX8MM_PAD_SAI2_RXFS_UART1_TX | DEFAULT_UART_PAD_CTRL, IMX8MM_PAD_SAI2_RXC_UART1_RX | DEFAULT_UART_PAD_CTRL பூஜ்யம் };

இப்போது UART அடிப்படை முகவரி மாற்றியமைக்கப்பட வேண்டும், முகவரி boards header config இல் வரையறுக்கப்பட்டுள்ளது. file.

இலக்கு file: பணியிடம்/மூலங்கள்/u-boot-imx/include/configs/msc_sm2s_imx8mm.h

CONFIG_MXC_UART_BASE வரையறையை மாற்றவும். UART1 க்கு இது இப்படி இருக்கும்: 

  • // #CONFIG_MXC_UART_BASE ஐ வரையறுக்கவும்
  • UART2_BASE_ADDR
  • #CONFIG_MXC_UART_BASE ஐ வரையறுக்கவும்
  • UART1_BASE_ADDR

இறுதியாக, கன்சோல் கர்னல் வாதத்தை மாற்றியமைக்க வேண்டும். மதிப்பை அதே தலைப்பில் காணலாம். file. தேடுங்கள் “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..

ARM நம்பகமான நிலைபொருளை மாற்றியமைத்தல்

Arm Trusted Firmware(imx-atf) க்கு சொந்த UART துவக்க வழக்கம் இல்லை, இருப்பினும் இது ஒரு கடினக் குறியிடப்பட்ட UART அடிப்படை முகவரியைக் கொண்டுள்ளது, மேலும் u-boot இலிருந்து சரியான UART துவக்கத்தை நம்பியுள்ளது. u-boot மற்றும் imx-atf இல் வேறுபட்ட அடிப்படை முகவரி உள்ளமைவு பெரும்பாலும் செயலியை விதிவிலக்கு கையாளுபவரில் சிக்கிக்கொள்ள வைக்கும், மேலும் UART இல் எதுவும் தெரியாது (CPU எந்தக் காரணமும் இல்லாமல் செயலிழக்கத் தோன்றுகிறது). UART போர்ட் மாற்றப்படும்போது, ​​இந்த மாற்றம் imx-atf இல் நிகழ வேண்டும்! imx-atf இல் UART போர்ட்டை மாற்றுவதற்கு அடிப்படை முகவரி மாற்றம் தேவைப்படுகிறது. இந்த மதிப்பு platform.mk இல் அமைக்கப்பட்டுள்ளது. file செயலியின்.

இலக்கு file: பணியிடம்/மூலங்கள்/imx-atf/plat/imx/imx8m/imx8mm/platform.mk 

சரியான UART அடிப்படை முகவரியை imx8 குறிப்பு கையேட்டில் காணலாம். இந்த உதாரணத்தில்ampimx2mm இல் UART1 இலிருந்து UART8 க்கு மாறுகிறோம்:

# IMX_பூட்_யுஆர்டி_பேஸ் ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000

optee-os-ஐ மாற்றியமைத்தல்

பொதுவாக, கணினியில் CAAM தொகுதி குறியாக்கவியல் பயன்படுத்தப்படும்போது Optee OS ஏற்றப்படும். Optee அதே ARM Cortex-A53 கோர்களில் இயங்குகிறது, ஆனால் கர்னலைப் போலவே மற்றொரு முற்றிலும் சுயாதீனமான நிகழ்வில். Optee க்கும் UART அணுகல் தேவைப்படுகிறது, மேலும் இந்த விஷயத்தில் அது அடிப்படை முகவரி மாற்றத்தைக் குறிக்கிறது.

இலக்கு file: பணியிடம்/மூலங்கள்/optee-os/core/arch/arm/plat-imx/conf.mk

இந்த முன்னாள்ample UART அடிப்படை முகவரியை UART2 இலிருந்து UART1 க்கு அமைக்கும்: 

#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE

கர்னலை மாற்றியமைத்தல்

கர்னலுக்கு ஒரு சில சாதன மர மாற்றங்கள் மட்டுமே தேவைப்படும், மேலும் UART இன்னும் கர்னலில் கிடைக்கவில்லை என்றால் மட்டுமே. பல சந்தர்ப்பங்களில், எந்த மாற்றமும் தேவையில்லை. இருப்பினும், நீங்கள் பயன்படுத்த விரும்பும் tty நிகழ்வு இருக்கிறதா என்று சரிபார்க்கவும்! ஷெல் கட்டளையுடன் tty இருப்பைச் சரிபார்க்கவும்:

$ ls /dev/ttymxc*

ttymxc ஏற்கனவே கிடைத்தால், எந்த மாற்றமும் தேவையில்லை.ample, UART2 க்கு இது /dev/ttymxc1 ஆக இருக்கும். நாம் ஏற்கனவே அறிந்தபடி, tty இன் குறியீடு எப்போதும் இயற்பியல் UART இன் குறியீட்டைக் கழித்தல் 1 ஆகும். தேவையான tty கிடைக்கவில்லை என்றால், தயவுசெய்து வழக்கமான UART ஒருங்கிணைப்பு நடைமுறையைப் பின்பற்றவும்.

உருவாக்கு & சோதனை செய்

பாதுகாப்பான மறுகட்டமைப்பிற்கு முழுமையான சுத்தம் செய்தல் பயன்படுத்தப்பட வேண்டும்:

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

முன்னிருப்பு build கட்டளையைப் பயன்படுத்தி படத்தை மீண்டும் உருவாக்கவும், exampலெ:

$ ./bitbake msc-பட-அடிப்படை

சோதனை நோக்கத்திற்காக, ஒரு UART அடாப்டரை பழைய UART உடன் இணைக்க வேண்டும். பழைய UART இல் இனி எந்த வெளியீடும் இருக்கக்கூடாது! புதிய UART முழுமையாக செயல்பட வேண்டும், அதற்கு u-boot UART ஷெல் மற்றும் லினக்ஸ் கன்சோலைப் பயன்படுத்தி இணைப்பைச் சரிபார்க்கவும்.

தயாரிப்பு ஆதரவு

Avnet Embedded பொறியாளர்கள் மற்றும் தொழில்நுட்ப வல்லுநர்கள் எங்கள் வாடிக்கையாளர்களுக்கு தேவைப்படும் போதெல்லாம் ஆதரவை வழங்க உறுதிபூண்டுள்ளனர். Avnet Embedded இன் தொழில்நுட்ப ஆதரவைத் தொடர்புகொள்வதற்கு முன், எங்கள் பக்கங்களில் உள்ள அந்தந்த பக்கங்களைப் பார்க்கவும். webதளத்தில்
https://embedded.avnet.com/support/
சமீபத்திய ஆவணங்கள், இயக்கிகள் மற்றும் மென்பொருள் பதிவிறக்கங்களுக்கு.

அங்கு வழங்கப்பட்ட தகவல்கள் உங்கள் சிக்கலை தீர்க்கவில்லை என்றால், தயவுசெய்து எங்கள் Avnet உட்பொதிக்கப்பட்ட தொழில்நுட்ப ஆதரவு குழுவை பின்வருமாறு தொடர்பு கொள்ளவும்:

மின்னஞ்சல்: support.boards@avnet.eu
தொலைபேசி: +49 (0)8165 906-200

AVNET உட்பொதிக்கப்பட்ட லோகோ

ஆவணங்கள் / ஆதாரங்கள்

AVNET எம்பெடட் MSC SM2S-IMX8M தொகுதியில் UART போர்ட் ARM அடிப்படையிலான கணினிகளை பிழைத்திருத்தம் செய்கிறது [pdf] வழிமுறைகள்
MSC SM2S-IMX8M, MSC SM2S-IMX8M தொகுதியில் UART போர்ட் ARM அடிப்படையிலான கணினிகளை பிழைத்திருத்தவும், தொகுதியில் UART போர்ட் ARM அடிப்படையிலான கணினிகளை பிழைத்திருத்தவும், தொகுதியில் UART போர்ட் ARM அடிப்படையிலான கணினிகள், தொகுதியில் போர்ட் ARM அடிப்படையிலான கணினிகள், தொகுதியில் ARM அடிப்படையிலான கணினிகள், தொகுதியில் ARM அடிப்படையிலான கணினிகள், தொகுதியில் கணினிகள், தொகுதியில் கணினிகள், தொகுதியில் கணினிகள், தொகுதி

குறிப்புகள்

கருத்து தெரிவிக்கவும்

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்படாது. தேவையான புலங்கள் குறிக்கப்பட்டுள்ளன *