AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port Komputer Berbasis ARM pada Petunjuk Modul
AVNET Tertanam MSC SM2S-IMX8M Debug UART Port Komputer Berbasis ARM pada Modul

Kata pengantar

Pemberitahuan Hak Cipta

Hak Cipta © 2023 Avnet Embedded GmbH. Seluruh hak cipta. Menyalin dokumen ini, memberikannya kepada orang lain dan penggunaan atau komunikasi isinya, dilarang tanpa izin tegas dari Avnet Embedded / MSC Technologies

GmbH. Pelanggar bertanggung jawab atas pembayaran ganti rugi. Semua hak dilindungi undang-undang dalam hal pemberian paten atau pendaftaran model atau desain utilitas.

Informasi Penting

Dokumentasi ini ditujukan hanya untuk khalayak yang memenuhi syarat. Produk yang dijelaskan di sini bukan produk pengguna akhir. Itu dikembangkan dan diproduksi untuk diproses lebih lanjut oleh personel terlatih.

Penafian

Meskipun dokumen ini dibuat dengan sangat hati-hati, tidak ada jaminan atau tanggung jawab atas kebenaran atau kesesuaian untuk tujuan tertentu. Informasi dalam dokumen ini disediakan “sebagaimana adanya” dan dapat berubah tanpa pemberitahuan.

Merek Dagang

Semua nama produk, logo, atau merek dagang yang digunakan adalah milik dari pemiliknya masing-masing.

Informasi Umum

Cakupan

Dokumen ini berlaku untuk semua Komputer-on-Modul Avnet Tertanam berdasarkan CPU seri NXP i.MX8- dan i.MX9, seperti misalnya

  • 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

Daftar ini tidak dianggap lengkap, terutama karena dewan baru mungkin akan dibebastugaskan dengan prosedur yang sama, sementara dokumen ini mungkin tidak selalu diperbarui dengan segera.

Revisi dan Modifikasi

Revisi Tanggal Komentar
1.0 25.05.2023 M. Koch Versi awal

Bagaimana mengubah debug port UART

Perkenalan

Banyak sistem berbasis ARM dilengkapi dengan Konsol Serial sebagai sarana akses utama untuk tujuan debug dan peningkatan sistem. Tergantung pada kebutuhan pelanggan, dalam sistem seperti itu, port UART debug default perlu dialihkan ke port serial yang berbeda. Yang kami maksud dengan debug port UART adalah port UART yang akan menyediakan semua input/output U-Boot, output bootlog kernel, dan shell kernel, pada dasarnya semua komunikasi UART akan dilihat dalam gambar Yocto minimal. Karena port UART default tidak digunakan hanya oleh satu komponen perangkat lunak, melainkan oleh banyak komponen, termasuk u-boot, atf-firmware, optee-os, dan kernel itu sendiri, menyetel port UART default dapat menjadi tantangan, dan lebih dari itu.view dapat dengan cepat hilang. Dokumen ini akan menjelaskan semua langkah yang harus diikuti, untuk mencapai tugas ini. Untuk penjelasan lebih mudah, dokumen ini ditulis untuk prosesor NXP i.MX8 MINI dan mscldk, namun dapat diterapkan ke semua prosesor seri i.MX8 dan i.MX9 serta sistem build lainnya dengan sedikit usaha.

Mempersiapkan lingkungan

Mengubah port UART debug default memerlukan modifikasi kode di Yocto, dan cara termudah untuk melakukannya adalah dengan menggunakan Yocto devtool untuk menyiapkan sumber bagi kami. Paket Yocto berikut perlu dimodifikasi:

  • u-boot-imx (virtual/bootloader)
  • linux-imx (virtual/kernel)
  • atf-imx
  • optee-os (hanya jika optee digunakan)

Sumber harus disiapkan dengan devtool: 

$ ./devtool ubah u-boot-imx
$ ./devtool memodifikasi linux-imx
$ ./devtool ubah atf-imx
$ ./devtool memodifikasi optee-os

Semua sumber dapat ditemukan di direktori “ruang kerja”.

Memodifikasi kode

Memodifikasi Bootloader

Di bootloader, beberapa inisialisasi UART dasar akan terjadi, jadi muxing dan alamat dasar port UART perlu diubah. Tugas kedua dari u-boot adalah meneruskan argumen boot ke kernel dan di sini perlu memodifikasi argumen konsol tty. Inisialisasi dan muxing UART terjadi paling awaltage proses booting di SPL. Kode sumber dapat ditemukan di papan khusus spl.c file.

Target file: ruang kerja/sources/u-boot-imx/board/msc/sm2s_imx8mm/spl.c

Buka file dan arahkan ke fungsi init_ser0():

kekosongan statis init_ser0(batal)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk(1);
}

Fungsi ini mengaktifkan jam untuk UART2(indeks 1 untuk UART fisik 2).

Sekarang, jika kita ingin menggunakan UART1, kita dapat mendefinisikan fungsi init_ser1 kita sendiri:

kekosongan statis init_ser1(batal)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}

Ganti pemanggilan fungsi init_ser0 dengan init_ser1() di fungsi board_early_init_f(). Selanjutnya kita melihat bahwa struktur ser1_pads tidak ditentukan. Di sini perlu diperhatikan pengkabelan UART1. Pada imx8mm, UART1 dapat di-mux ke pad uart1, atau ke pad sai2. Oleh karena itu, ser1_pads dapat didefinisikan sebagai:

statis 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, BATAL
};

Atau yang lain, menggunakan sai2:

statis 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 BATAL };

Sekarang alamat dasar UART harus diubah, alamat tersebut ditentukan dalam konfigurasi header papan file.

Target file: ruang kerja/sources/u-boot-imx/include/configs/msc_sm2s_imx8mm.h

Ubah definisi CONFIG_MXC_UART_BASE. Untuk UART1 ini akan menjadi: 

  • // #definisikan CONFIG_MXC_UART_BASE
  • UART2_BASE_ADDR
  • #tentukan CONFIG_MXC_UART_BASE
  • UART1_BASE_ADDR

Terakhir, argumen kernel konsol harus diubah. Nilainya dapat ditemukan di header yang sama file. Pencarian untuk “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..

Memodifikasi Firmware Tepercaya ARM

Arm Trusted Firmware (imx-atf) tidak memiliki rutinitas inisialisasi UART sendiri, namun memiliki alamat dasar UART yang dikodekan secara hardcode, dan bergantung pada inisialisasi UART yang tepat dari u-boot. Konfigurasi alamat dasar yang berbeda di u-boot dan imx-atf kemungkinan besar akan membuat prosesor terjebak dalam pengendali pengecualian, dan tidak akan ada yang terlihat di UART (CPU sepertinya macet tanpa alasan yang jelas). Ketika port UART diubah, perubahan ini juga harus terjadi di imx-atf! Mengubah port UART di imx-atf memerlukan modifikasi alamat dasar. Nilai ini ditetapkan di platform.mk file dari prosesor.

Target file: ruang kerja/sources/imx-atf/plat/imx/imx8m/imx8mm/platform.mk 

Alamat basis UART yang benar dapat ditemukan di manual referensi imx8. Dalam mantan iniample kita ubah dari UART2 ke UART1 di imx8mm:

# IMX_BOOT_UART_BASE ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000

Memodifikasi optee-os

Optee OS biasanya dimuat ketika kriptografi modul CAAM digunakan pada sistem. Optee berjalan pada inti ARM Cortex-A53 yang sama, tetapi dalam contoh lain yang benar-benar independen sebagai kernel. Optee juga memerlukan akses UART dan dalam hal ini berarti modifikasi alamat dasar.

Target file: ruang kerja/sources/optee-os/core/arch/arm/plat-imx/conf.mk

Mantan iniample akan mengatur alamat dasar UART dari UART2 ke UART1: 

#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE

Memodifikasi Kernel

Kernel hanya memerlukan sedikit modifikasi pohon perangkat, dan hanya jika UART belum tersedia di kernel. Dalam banyak kasus, tidak diperlukan modifikasi sama sekali. Namun, harap verifikasi apakah instance tty yang ingin Anda gunakan ada! Periksa keberadaan tty dengan perintah shell:

$ ls /dev/ttymxc*

Jika ttymxc sudah tersedia, tidak diperlukan modifikasi. Misalnyaample, untuk UART2 ini adalah /dev/ttymxc1. Seperti yang telah kita ketahui, indeks tty selalu merupakan indeks UART fisik dikurangi 1. Jika tty yang diperlukan tidak tersedia, ikuti prosedur integrasi UART seperti biasa.

Bangun & Uji

Untuk pembangunan kembali yang aman, pembersihan menyeluruh harus diterapkan:

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

Bangun kembali gambar dengan perintah build default, misalnyaampsaya:

$ ./bitbake msc-image-base

Untuk tujuan pengujian, adaptor UART harus dihubungkan ke UART lama. Seharusnya tidak ada lagi keluaran pada UART lama! UART baru harus berfungsi penuh, untuk itu harap verifikasi koneksi dengan menggunakan shell UART u-boot dan konsol linux.

Dukungan Produk

Insinyur dan teknisi Avnet Embedded berkomitmen untuk memberikan dukungan kepada pelanggan kami kapan pun dibutuhkan. Sebelum menghubungi Dukungan Teknis Avnet Embedded, silakan lihat halaman masing-masing di kami websitus di
https://embedded.avnet.com/support/
untuk dokumentasi terbaru, unduhan driver dan perangkat lunak.

Jika informasi yang diberikan di sana tidak menyelesaikan masalah Anda, silakan hubungi tim Dukungan Teknis Tertanam Avnet kami sebagai berikut:

E-mail: support.boards@avnet.eu
Telepon: +49 (0)8165 906-200

Logo Tertanam AVNET

Dokumen / Sumber Daya

AVNET Tertanam MSC SM2S-IMX8M Debug UART Port Komputer Berbasis ARM pada Modul [Bahasa Indonesia:] Instruksi
MSC SM2S-IMX8M, MSC SM2S-IMX8M Debug Port UART Komputer Berbasis ARM pada Modul, Debug Komputer Berbasis ARM Port UART pada Modul, Komputer Berbasis ARM Port UART pada Modul, Komputer Berbasis ARM Port pada Modul, Komputer Berbasis ARM pada Modul, Komputer Berbasis pada Modul, Komputer pada Modul, Modul

Referensi

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang wajib diisi ditandai *