AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM أجهزة الكمبيوتر القائمة على تعليمات الوحدة
AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM أجهزة الكمبيوتر القائمة على الوحدة النمطية

مقدمة

إشعار حقوق الطبع والنشر

حقوق الطبع والنشر © 2023 لشركة Avnet Embedded GmbH. كل الحقوق محفوظة. يُحظر نسخ هذا المستند وتقديمه للآخرين واستخدام محتوياته أو نقلها دون تصريح صريح من Avnet Embedded /MSC Technologies

شركة محدودة. ويتحمل الجناة مسؤولية دفع التعويضات. جميع الحقوق محفوظة في حالة منح براءة اختراع أو تسجيل نموذج منفعة أو تصميم.

معلومات هامة

هذه الوثائق مخصصة للجماهير المؤهلة فقط. المنتج الموصوف هنا ليس منتجًا للمستخدم النهائي. تم تطويره وتصنيعه لمزيد من المعالجة بواسطة موظفين مدربين.

تنصل

على الرغم من أن هذه الوثيقة قد تم إنشاؤها بعناية فائقة، إلا أنه لا يتضمن أي ضمان أو مسؤولية عن الصحة أو الملاءمة لأي غرض معين. المعلومات الواردة في هذا المستند مقدمة "كما هي" وتخضع للتغيير دون إشعار.

العلامات التجارية

جميع أسماء المنتجات أو الشعارات أو العلامات التجارية المستخدمة هي ملك لأصحابها.

معلومات عامة

نِطَاق

ينطبق هذا المستند على جميع وحدات الكمبيوتر المضمنة في Avnet المستندة إلى وحدات المعالجة المركزية (CPUs) من سلسلة NXP i.MX8 وi.MX9، مثل على سبيل المثال

  • SM2S-IMX8PLUS
  • SM2S-IMX8M
  • SM2S-IMX8MINI
  • SM2S-IMX8 نانو
  • SM2S-IMX8 (كواد بلس/كواد ماكس)
  • SM2S-IMX93
  • أوسم-SF-IMX91
  • أوسم-SF-IMX93
  • OSM-MF-IMX8NANO
  • OSM-MF-IMX8MINI

لا تدعي هذه القائمة أنها شاملة، خاصة أنه قد يتم إصدار لوحات جديدة قد تنطبق عليها نفس الإجراءات، في حين قد لا يتم تحديث هذه الوثيقة دائمًا على الفور.

المراجعات والتعديلات

المراجعة تاريخ تعليق
1.0 25.05.2023 السيد كوخ النسخة الأولية

كيفية تغيير منفذ تصحيح UART

مقدمة

تأتي العديد من الأنظمة المستندة إلى ARM مزودة بوحدة تحكم تسلسلية كوسيلة رئيسية للوصول لأغراض تصحيح الأخطاء وإحضار النظام. اعتمادًا على متطلبات العميل، من الضرورة المتكررة في مثل هذه الأنظمة أن يتم تحويل منفذ تصحيح UART الافتراضي إلى منفذ تسلسلي مختلف. نعني بتصحيح منفذ UART منفذ UART الذي سيوفر جميع مدخلات/مخرجات U-Boot، ومخرجات سجل تمهيد kernel وقشرة kernel، وبشكل أساسي جميع اتصالات UART التي سيراها المرء في صورة Yocto البسيطة. نظرًا لأن منفذ UART الافتراضي لا يتم استخدامه بواسطة مكون برنامج واحد فقط، بل بواسطة العديد من المكونات، بما في ذلك u-boot وatf-firmware وoptee-os وkernel نفسه، فإن تعيين منفذ UART الافتراضي يمكن أن يكون أمرًا صعبًا، وقد يكون الأمر أكثر صعوبةview يمكن أن تضيع بسرعة. ستشرح هذه الوثيقة جميع الخطوات التي يجب اتباعها لتحقيق هذه المهمة. لتسهيل التوضيح، تمت كتابة هذا المستند لمعالج NXP i.MX8 MINI وmscldk، ولكن يمكن تطبيقه على جميع معالجات سلسلة i.MX8 وi.MX9 وأنظمة البناء الأخرى بجهد قليل جدًا.

إعداد البيئة

سيتطلب تغيير منفذ تصحيح UART الافتراضي تعديل التعليمات البرمجية في Yocto، وأسهل طريقة للقيام بذلك هي استخدام Yocto devtool لإعداد المصادر لنا. سيكون من الضروري تعديل حزم Yocto التالية:

  • u-boot-imx (افتراضي/أداة تحميل التشغيل)
  • Linux-imx (افتراضي/نواة)
  • atf-imx
  • optee-os (فقط في حالة استخدام optee)

يجب إعداد المصادر باستخدام devtool: 

$ ./devtool تعديل u-boot-imx
$ ./devtool تعديل Linux-imx
$ ./devtool تعديل atf-imx
$ ./devtool تعديل optee-os

يمكن العثور على جميع المصادر في دليل "مساحة العمل".

تعديل الكود

تعديل محمل الإقلاع

ستحدث بعض عمليات تهيئة UART الأساسية في أداة تحميل التشغيل، لذا سيكون من الضروري تعديل muxing والعنوان الأساسي لمنفذ UART. المهمة الثانية لـ u-boot هي تمرير وسيطات التمهيد إلى kernel وهنا سيكون من الضروري تعديل وسيطة tty لوحدة التحكم. تحدث تهيئة UART وmuxing في أوائل القرن العشرينtagه من عملية التمهيد في SPL. يمكن العثور على كود المصدر في 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(index 1 لـ UART الفعلي 2).

الآن، إذا أردنا استخدام UART1 بدلاً من ذلك، فيمكننا تعريف دالة init_ser1 الخاصة بنا:

الفراغ الثابت init_ser1 (باطل)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}

استبدل استدعاء دالة init_ser0 بـ init_ser1() في الدالة board_early_init_f(). علاوة على ذلك نلاحظ أن بنية ser1_pads لم يتم تعريفها. هنا سيكون من الضروري أن تكون على دراية بأسلاك UART1. على imx8mm، يمكن مزج UART1 مع منصات uart1 أو منصات sai2. وبناء على ذلك، يمكن تعريف 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: مساحة العمل/المصادر/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

وأخيرًا، يجب تعديل وسيطة kernel لوحدة التحكم. يمكن العثور على القيمة في نفس الرأس 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 أساسي مشفر، وتعتمد على تهيئة UART المناسبة من u-boot. من المرجح أن يؤدي تكوين عنوان أساسي مختلف في u-boot وimx-atf إلى ترك المعالج عالقًا في معالج الاستثناءات، ولن يكون هناك أي شيء مرئي على UART (يبدو أن وحدة المعالجة المركزية معطلة بدون سبب واضح). عند تغيير منفذ UART، يجب أن يحدث هذا التغيير أيضًا في imx-atf! يتطلب تغيير منفذ UART في imx-atf تعديل العنوان الأساسي. تم تعيين هذه القيمة في النظام الأساسي.mk file من المعالج.

هدف file: مساحة العمل/المصادر/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 عند استخدام تشفير وحدة CAAM على النظام. يعمل Optee على نفس أنوية ARM Cortex-A53، ولكن في حالة أخرى مستقلة تمامًا مثل النواة. يتطلب Optee أيضًا الوصول إلى UART وفي هذه الحالة يعني تعديل العنوان الأساسي.

هدف file: مساحة العمل/المصادر/optee-os/core/arch/arm/plat-imx/conf.mk

هذا السابقampسيقوم le بتعيين عنوان UART الأساسي من UART2 إلى UART1: 

#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE

تعديل النواة

لن يتطلب Kernel سوى القليل من التعديلات على شجرة الأجهزة، وذلك فقط إذا لم يكن UART متاحًا في kernel بعد. في كثير من الحالات، لن تكون هناك حاجة لأي تعديل على الإطلاق. ومع ذلك، يرجى التحقق من وجود مثيل tty الذي تريد استخدامه! تحقق من وجود tty باستخدام أمر Shell:

$ ليرة سورية /ديف/ttymxc*

إذا كان ttymxc متاحًا بالفعل، فلن تكون هناك حاجة إلى أي تعديل. على سبيل المثالample، بالنسبة لـ UART2، سيكون هذا هو /dev/ttymxc1. كما نعلم بالفعل، فهرس tty هو دائمًا فهرس UART الفعلي ناقص 1. إذا لم يكن tty المطلوب متاحًا، فيرجى اتباع إجراء تكامل UART المعتاد.

بناء واختبار

من أجل إعادة بناء آمنة، يجب تطبيق التنظيف الكامل:

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

قم ببناء الصورة مرة أخرى باستخدام أمر الإنشاء الافتراضي، على سبيل المثالampعلى:

$ ./bitbake msc-image-base

لأغراض الاختبار، يجب توصيل محول UART بـ UART القديم. يجب ألا يكون هناك المزيد من الإخراج على UART القديم! يجب أن يعمل UART الجديد بكامل طاقته، لذلك يرجى التحقق من الاتصال باستخدام u-boot UART shell ووحدة تحكم linux.

دعم المنتج

يلتزم مهندسو وفنيو Avnet Embedded بتقديم الدعم لعملائنا عند الحاجة. قبل الاتصال بالدعم الفني لبرنامج Avnet Embedded، يرجى مراجعة الصفحات المعنية على موقعنا webالموقع في
https://embedded.avnet.com/support/
للحصول على أحدث الوثائق وبرامج التشغيل وتنزيلات البرامج.

إذا لم تحل المعلومات المقدمة هناك مشكلتك، فيرجى الاتصال بفريق الدعم الفني لـ Avnet Embedded على النحو التالي:

بريد إلكتروني: support.boards@avnet.eu
هاتف: +49 (0)8165 906-200

شعار AVNET المضمن

المستندات / الموارد

AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM أجهزة الكمبيوتر القائمة على الوحدة النمطية [بي دي اف] تعليمات
MSC SM2S-IMX8M، MSC SM2S-IMX8M تصحيح أخطاء أجهزة الكمبيوتر القائمة على منفذ UART ARM على الوحدة، تصحيح أخطاء أجهزة الكمبيوتر القائمة على منفذ UART ARM على الوحدة، منفذ UART أجهزة الكمبيوتر المستندة إلى ARM على الوحدة، منفذ أجهزة الكمبيوتر المستندة إلى ARM على الوحدة، أجهزة الكمبيوتر المستندة إلى ARM على الوحدة، أجهزة الكمبيوتر القائمة على الوحدة، أجهزة الكمبيوتر على الوحدة، الوحدة

مراجع

اترك تعليقا

لن يتم نشر عنوان بريدك الإلكتروني. تم وضع علامة على الحقول المطلوبة *