AVNET EMBEDDED MSC SM2S-IMX8M ڊيبگ UART پورٽ ARM بيسڊ ڪمپيوٽرز آن ماڊل هدايتون
AVNET EMBEDDED MSC SM2S-IMX8M ڊيبگ UART پورٽ ARM بيسڊ ڪمپيوٽرز آن ماڊل

اڳڪٿي

ڪاپي رائيٽ جو نوٽيس

ڪاپي رائيٽ © 2023 Avnet Embedded GmbH. سڀ حق محفوظ آهن. هن دستاويز جي نقل ڪرڻ، ٻين کي مهيا ڪرڻ ۽ ان جي مواد جو استعمال يا مواصلات، Avnet Embedded/MSC Technologies کان ظاهري اختيار کان سواءِ منع ٿيل آهي.

جي ايم بي ايڇ. نقصان جي ادائيگي جا ذميوار آهن. سڀ حق محفوظ آهن پيٽنٽ جي گرانٽ جي صورت ۾ يا يوٽيلٽي ماڊل يا ڊيزائن جي رجسٽريشن جي صورت ۾.

اهم معلومات

هي دستاويز صرف قابليت رکندڙ سامعين لاءِ آهي. هتي بيان ڪيل پراڊڪٽ هڪ آخري صارف جي پيداوار نه آهي. اهو ترقي يافته ۽ تربيت يافته اهلڪارن پاران وڌيڪ پروسيسنگ لاء تيار ڪيو ويو.

رد ڪرڻ

جيتوڻيڪ هي دستاويز انتهائي احتياط سان تيار ڪيو ويو آهي، ڪنهن خاص مقصد لاءِ صحيحيت يا مناسبيت جي ڪا به ضمانت يا ذميواري لاڳو نه ڪئي وئي آهي. هن دستاويز ۾ معلومات مهيا ڪئي وئي آهي "جيئن آهي" ۽ بغير نوٽيس جي تبديلي جي تابع آهي.

ٽريڊ مارڪ

سڀئي استعمال ٿيل پراڊڪٽ جا نالا، لوگو يا ٽريڊ مارڪ انهن جي لاڳاپيل مالڪن جي ملڪيت آهن.

عام معلومات

دائرو

هي دستاويز NXP i.MX8- ۽ i.MX9-series CPUs جي بنياد تي سڀني Avnet Embedded Computer-on-Modules لاءِ لاڳو ٿئي ٿو، جهڙوڪ مثال طور

  • 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

هي فهرست مڪمل هجڻ جي دعويٰ نه ڪري ٿي، خاص طور تي جيئن ته نوان بورڊ جاري ڪيا وڃن جن لاءِ ساڳيون طريقا لاڳو ٿي سگهن ٿا، جڏهن ته هي دستاويز هميشه فوري طور تي اپڊيٽ نه ٿي سگهي ٿو.

ترميمون ۽ ترميمون

نظرثاني تاريخ تبصرو
1.0 25.05.2023 ايم ڪوچ شروعاتي نسخو

ڊيبگ UART پورٽ کي ڪيئن تبديل ڪجي

تعارف

ڪيترائي ARM-بنياد سسٽم سيريل ڪنسول سان گڏ ايندا آهن جيئن ڊيبگ ۽ سسٽم آڻڻ جي مقصدن تائين رسائي جو بنيادي ذريعو. گراهڪ جي ضرورتن تي مدار رکندي، اهڙين سسٽم ۾ اهو اڪثر وقت جي ضرورت آهي ته ڊفالٽ ڊيبگ UART بندرگاهن کي مختلف سيريل پورٽ ۾ تبديل ڪرڻ جي ضرورت آهي. ڊيبگ UART بندرگاھ سان اسان جو مطلب آھي UART بندرگاھ جيڪو سڀ يو-بوٽ ان پٽ/آئوٽ پُٽ، ڪنيل بوٽلاگ آئوٽ پُٽ ۽ ڪنيل شيل مهيا ڪندو، بنيادي طور تي سڀ UART ڪميونيڪيشن ھڪڙي گھٽ ۾ گھٽ Yocto تصوير ۾ ڏسندا. جيئن ته ڊفالٽ UART پورٽ صرف هڪ سافٽ ويئر جزو پاران استعمال نه ڪيو ويو آهي، بلڪه ڪيترن ئي حصن طرفان، بشمول u-boot، atf-firmware، optee-os ۽ kernel خود، ڊفالٽ UART پورٽ کي ترتيب ڏيڻ مشڪل ٿي سگهي ٿو، ۽ وڌيڪview جلدي گم ٿي سگهي ٿو. هي دستاويز بيان ڪندو سڀني قدمن جي پيروي ڪرڻ لاء، هن ڪم کي حاصل ڪرڻ لاء. آسان وضاحت لاءِ، ھي دستاويز NXP i.MX8 MINI پروسيسر ۽ mscldk لاءِ لکيو ويو آھي، پر تمام گھٽ ڪوشش سان سڀني i.MX8- ۽ i.MX9-سيريز پروسيسرز ۽ ٻين بلڊ سسٽم تي لاڳو ڪري سگھجي ٿو.

ماحول جي تياري

ڊفالٽ ڊيبگ UART پورٽ کي تبديل ڪرڻ لاءِ يوڪٽو ۾ ڪوڊ تبديل ڪرڻ جي ضرورت پوندي، ۽ ان کي ڪرڻ جو آسان طريقو، استعمال ڪرڻ آهي Yocto devtool اسان لاءِ ذريعن کي تيار ڪرڻ لاءِ. ھيٺ ڏنل يوڪٽو پيڪيجز کي تبديل ڪرڻ جي ضرورت پوندي.

  • u-boot-imx (ورچوئل/بوٽ لوڊر)
  • linux-imx (مجازي/ڪرنل)
  • atf-imx
  • optee-os (صرف جيڪڏهن optee استعمال ڪيو وڃي)

ذريعن کي devtool سان تيار ڪيو وڃي: 

$ ./devtool تبديل ڪريو u-boot-imx
$./devtool linux-imx تبديل ڪريو
$ ./devtool تبديل ڪريو atf-imx
$./devtool modify optee-os

سڀ ذريعا ”ڪم اسپيس“ ڊاريڪٽري ۾ ڳولهي سگهجن ٿا.

ترميمي ڪوڊ

بوٽ لوڊر کي تبديل ڪرڻ

بوٽ لوڊر ۾ ڪجهه بنيادي UART شروعات ٿيندي، تنهنڪري اهو ضروري هوندو ته ميڪسنگ کي تبديل ڪرڻ ۽ UART بندرگاهه جو بنيادي پتو. u-boot جو ٻيو ڪم boot argument کي kernel ڏانهن منتقل ڪرڻ آهي ۽ هتي ڪنسول tty آرگيومينٽ کي تبديل ڪرڻ ضروري هوندو. UART جي شروعات ۽ مڪسنگ سڀ کان پهرئين ايس ۾ ٿئي ٿيtagSPL ۾ بوٽ جي عمل جو اي. ماخذ ڪوڊ ڳولي سگھجي ٿو بورڊ ۾ مخصوص spl.c file.

نشانو file: workspace/sources/u-boot-imx/board/msc/sm2s_imx8mm/spl.c

کوليو file ۽ فنڪشن تي وڃو init_ser0():

جامد باطل init_ser0 (void)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads))؛ init_uart_clk(1)؛
}

فنڪشن لاء ڪلاڪ کي چالو ڪري ٿو UART2 (انڊيڪس 1 جسماني UART لاءِ 2).

هاڻي، جيڪڏهن اسان ان جي بدران UART1 استعمال ڪرڻ چاهيون ٿا، اسان پنهنجي init_ser1 فنڪشن کي بيان ڪري سگهون ٿا:

جامد باطل init_ser1 (void)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads))؛ init_uart_clk(0)؛
}

init_ser0 جي فنڪشن ڪال کي تبديل ڪريو init_ser1() سان بورڊ_early_init_f() فنڪشن ۾. وڌيڪ اسان کي خبر آهي ته ser1_pads جوڙجڪ وضاحت نه ڪئي وئي آهي. هتي اهو ضروري آهي ته UART1 جي وائرنگ کان واقف ٿيڻو پوندو. imx8mm تي، UART1 کي uart1 pads تي، يا sai2 pads تي مڪس ڪري سگھجي ٿو. ان جي مطابق، ser1_pads جي وضاحت ٿي سگھي ٿي جيئن:

جامد 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
};

يا ٻيو، sai2 استعمال ڪندي:

جامد 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 } ;

ھاڻي UART بنيادي ايڊريس کي تبديل ڪيو وڃي، ايڊريس بورڊ جي ھيڊر ترتيب ۾ بيان ڪيو ويو آھي file.

نشانو file: workspace/sources/u-boot-imx/include/configs/msc_sm2s_imx8mm.h

وصف تبديل ڪريو CONFIG_MXC_UART_BASE. UART1 لاءِ هي هوندو: 

  • // # define 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 تي ڪجھ به نظر نه ايندو (سي پي يو ڏسڻ ۾ اچي ٿو ته ڪنهن به سبب جي لٽڻ لڳي). جڏهن UART بندرگاهن کي تبديل ڪيو ويو آهي، اها تبديلي پڻ imx-atf ۾ ٿيڻ گهرجي! imx-atf ۾ UART بندرگاهن کي تبديل ڪرڻ لاء بنيادي ايڊريس جي ترميم جي ضرورت آهي. هي قدر پليٽ فارم.mk ۾ مقرر ڪيو ويو آهي file پروسيسر جي.

نشانو file: Workspace/source/imx-atf/plat/imx/imx8m/imx8mm/platform.mk 

صحيح UART بنيادي پتو ڳولي سگھجي ٿو imx8 ريفرنس مينوئل ۾. هن ۾ اڳوڻيampاسان تبديل ڪريون ٿا UART2 کان UART1 ۾ imx8mm تي:

# IMX_BOOT_UART_BASE؟= 0x30890000
IMX_BOOT_UART_BASE؟= 0x30860000

Optee-os کي تبديل ڪرڻ

Optee OS عام طور تي لوڊ ڪيو ويندو آهي جڏهن CAAM ماڊل cryptography استعمال ڪيو ويندو آهي سسٽم تي. Optee ساڳي ARM Cortex-A53 ڪور تي هلندو آهي، پر ٻي مڪمل طور تي آزاد مثال طور ڪنييل. Optee کي پڻ UART رسائي جي ضرورت آهي ۽ انهي صورت ۾ ان جو مطلب آهي بنيادي ايڊريس ترميمي.

نشانو file: workspace/sources/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 ڪلين آل يو-بوٽ-ايمڪس لينڪس-ايمڪس ايمڪس-اي ٽي ايف آپٽي-او ايس

تصوير کي ٻيهر ٺاھيو ڊفالٽ تعمير ڪمانڊ سان، مثال لاءِampاليزي:

$./bitbake msc-image-base

جاچ جي مقصد لاء، هڪ UART اڊاپٽر کي پراڻي UART سان ڳنڍيل هجڻ گهرجي. پراڻي UART تي وڌيڪ پيداوار نه هجڻ گهرجي! نئون UART مڪمل طور تي ڪم ڪرڻ گھرجي، ان لاءِ مھرباني ڪري يو-بوٽ UART شيل ۽ لينڪس ڪنسول استعمال ڪندي ڪنيڪشن جي تصديق ڪريو.

پيداوار جي حمايت

Avnet Embedded انجنيئرز ۽ ٽيڪنيشين اسان جي گراهڪن کي مدد فراهم ڪرڻ لاءِ پرعزم آهن جڏهن به ضرورت هجي. Avnet Embedded جي ٽيڪنيڪل سپورٽ سان رابطو ڪرڻ کان پهريان، مهرباني ڪري اسان جي لاڳاپيل صفحن تي صلاح ڪريو webسائيٽ تي
https://embedded.avnet.com/support/
جديد دستاويز، ڊرائيور ۽ سافٽ ويئر ڊائون لوڊ لاء.

جيڪڏهن اتي مهيا ڪيل معلومات توهان جو مسئلو حل نٿو ڪري، مهرباني ڪري اسان جي Avnet Embedded ٽيڪنيڪل سپورٽ ٽيم سان رابطو ڪريو جيئن هيٺ ڏنل آهي:

اي ميل: support.boards@avnet.eu
فون: +49 (0)8165 906-200

AVNET EMBEDDED لوگو

دستاويز / وسيلا

AVNET EMBEDDED MSC SM2S-IMX8M ڊيبگ UART پورٽ ARM بيسڊ ڪمپيوٽرز آن ماڊل [pdf] هدايتون
MSC SM2S-IMX8M، MSC SM2S-IMX8M ڊيبگ UART پورٽ ARM جي بنياد تي ڪمپيوٽرن تي ماڊل، ڊيبگ UART پورٽ ARM تي ٻڌل ڪمپيوٽرن تي ماڊل، UART پورٽ ARM جي بنياد تي ڪمپيوٽرن تي ماڊل، پورٽ ARM تي ٻڌل ڪمپيوٽرن تي ماڊل، ARM بيسڊ ڪمپيوٽرن تي ماڊل، ARM بيسڊ ڪمپيوٽرز ماڊل تي، ڪمپيوٽرن تي ماڊل، ماڊل

حوالو

تبصرو ڇڏي ڏيو

توهان جو اي ميل پتو شايع نه ڪيو ويندو. گهربل فيلڊ نشان لڳل آهن *