i.MX93 Cortex-M33 DDR example

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

i.MX93 Cortex-M33 DDR example

i.MX93 Cortex-M33 DDR example

Hello everyone!

In this document you'll find an example on how to build your Cortex-M33 code where some parts of the code runs from DDR, for this changes on ATF where the M33 core can visit DRAM in early stage.

For this we will take advantage of RPROC framework, RPROC (Remote Processor Framework) is a Linux kernel and U-Boot subsystem that manages secondary, embedded processors (like Cortex-M cores), where we will use the A55 to load the M33 firmware.

This will require changes on Linux device tree, ATF and M33 linker file.

Requirements:
Ubuntu 20.04 or later host PC
i.MX93 QSB
UUU Tool
ARM GNU Toolchain (arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu)
SDK package (SDK_25_09_00_MCIMX93-QSB)
Prebuild Linux Image (LF_v6.12.34-2.1.0_images_IMX93EVK)

### Clone imx-mkimage, it is better to download the same version of the sw we are working with ###
$ git clone https://github.com/nxp-imx/imx-mkimage -b lf-6.12.34-2.1.0

### Decompress the GNU toolchain into a path in local disk, in this test would be /opt/ ###
$ sudo tar -xvJf arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz -C /opt

### Clone and build Uboot ###
$ git clone https://github.com/nxp-imx/uboot-imx -b lf-6.12.34-2.1.0
$ cd uboot-imx
$ make -j $(nproc --all) clean
$ make -j$(nproc --all) ARCH=arm CROSS_COMPILE=/opt/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- imx93_11x11_evk_defconfig
$ make -j $(nproc --all) ARCH=arm CROSS_COMPILE=/opt/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-

### Download and extract ELE firmware ###
$ cd ..
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-2.0.3-286c884.bin
$ chmod +x firmware-ele-imx-2.0.3-286c884.bin
$ ./firmware-ele-imx-2.0.3-286c884.bin --auto-accept

### Optional if using i.MX FW ###
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.29-8741a3b.bin
$ chmod +x firmware-imx-8.29-8741a3b.bin
$ ./firmware-imx-8.29-8741a3b.bin --auto-accept

### Clone ATF ###
$ git clone https://github.com/nxp-imx/imx-atf -b lf-6.12.34-2.1.0
$ cd imx-atf

### Modify ATF for the M33 to be able to access DDR ###

 

破坏者

--- a/plat/imx/imx93/trdc_config.h
+++ b/plat/imx/imx93/trdc_config.h

struct trdc_mrc_config trdc_n_mrc[] = {
{ 0, 0, 0, 0x80000000, 0x80000000, 0, false }, /* MRC0 DRAM for S400 DID0 */
{ 0, 1, 0, 0x80000000, 0x80000000, 0, false }, /* MRC0 DRAM for MTR DID1 */
- { 0, 2, 0, 0x80000000, 0x80000000, 0, true }, /* MRC0 DRAM for M33 DID2 */
+ { 0, 2, 0, 0x80000000, 0x80000000, 1, true }, /* MRC0 DRAM for M33 DID2 */
{ 0, 3, 0, 0x80000000, 0x80000000, 1, false }, /* MRC0 DRAM for A55 DID3 */
{ 0, 5, 0, 0x80000000, 0x80000000, 0, false }, /* MRC0 DRAM for USDHC1 DID5 */
{ 0, 6, 0, 0x80000000, 0x80000000, 0, false }, /* MRC0 DRAM for USDHC2 DID6 */

### Build modified ATF ###
$ make -j $(nproc --all) PLAT=imx93 bl31 CROSS_COMPILE=/opt/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-

### Modify linker file and build M33 code, in this example we are using hello world SDK example ###
$ cd ..
$ tar -xvzf SDK_25_09_00_MCIMX93-QSB.tar.gz
$ cd SDK_25_09_00_MCIMX93-QSB/boards/mcimx93qsb/demo_apps/hello_world/armgcc

破坏者

--- a/boards/mcimx93autoevk/demo_apps/hello_world/armgcc/MIMX9352_cm33_ram.ld
+++ b/boards/mcimx93autoevk/demo_apps/hello_world/armgcc/MIMX9352_cm33_ram.ld

m_a55_suspend_ram (RW) : ORIGIN = 0x20002000, LENGTH = 0x00001000
m_data (RW) : ORIGIN = 0x20003000, LENGTH = 0x0001B000
m_rsc_tbl (RW) : ORIGIN = 0x2001E000, LENGTH = 0x00001000
+ m_text_dram (RW) : ORIGIN = 0x8F000000, LENGTH = 0x00001000
+ m_data_dram (RW) : ORIGIN = 0x8F001000, LENGTH = 0x00001000
}

/* Define output sections */


. = ALIGN(4);
} > m_text

+ .dram_text :
+ {
+ . = ALIGN(32);
+ *(.myDRAM)
+ . = ALIGN(32);
+ } > m_text_dram
+
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)


.ARM.attributes 0 : { *(.ARM.attributes) }

ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
+
+ .dram_data :
+ {
+ . = ALIGN(32);
+ *(.myDRAM_data)
+ . = ALIGN(32);
+ } > m_data_dram
}

a/boards/mcimx93autoevk/demo_apps/hello_world/hello_world.c
+++ b/boards/mcimx93autoevk/demo_apps/hello_world/hello_world.c

* Definitions
******************************************************************************/

+#define _RET_IP_ (unsigned long)__builtin_return_address(0)
+#define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; })

/*******************************************************************************
* Prototypes


/*******************************************************************************
* Variables
******************************************************************************/
-
+const char myString[] __attribute__((section(".myDRAM_data"))) = "Hello, World!";
/*******************************************************************************
* Code
******************************************************************************/
+__attribute__ ((section(".myDRAM")))
+void Dram_test(void) {
+ PRINTF("Dram_test!!\r\n");
+
+ PRINTF("%s!!\r\n", myString);
+
+ PRINTF("function %p\n",_THIS_IP_);
+}
+
/*!
* @brief Main function
*/


BOARD_BootClockRUN();
BOARD_InitDebugConsole();

- PRINTF("hello world.\r\n");
+ PRINTF("hello world from DRAM.\r\n");

while (1)
{
ch = GETCHAR();
PUTCHAR(ch);
+ if(ch == 'a'){
+ Dram_test();
+ }
}
}

$ export ARMGCC_DIR=~/gcc-arm-none-eabi-10.3-2021.10
$ export PATH=$PATH:~/gcc-arm-none-eabi-10.3-2021.10
$ ./build_release.sh

### Copy the resulting binaries to imx-mkimage ###
$ cp ~/imx-atf/build/imx93/release/bl31.bin ~/imx-mkimage/iMX93
$ cp ~/uboot-imx/u-boot.bin ~/imx-mkimage/iMX93
$ cp ~/uboot-imx/spl/u-boot-spl.bin ~/imx-mkimage/iMX93

### Copy i.MX firmware ###
$ cd ..
$ cp firmware-imx-8.29-8741a3b/firmware/ddr/synopsys/lpddr4_dmem_* ~/imx-mkimage/iMX93
$ cp firmware-imx-8.29-8741a3b/firmware/ddr/synopsys/lpddr4_imem_* ~/imx-mkimage/iMX93
$ cpfirmware-ele-imx-2.0.3-286c884/mx93a1-ahab-container.img ~/imx-mkimage/iMX93

### Build the flash.bin using mkimage
$ cd imx-mkimage
$ make SOC=iMX93 flash_singleboot

### Clone, modify and build device tree for Linux to be able to use RPROC to load M33 Firmware ###
$ git clone https://github.com/nxp-imx/linux-imx -b lf-6.12.34-2.1.0

破坏者

--- a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts

no-map;
};

+ dram: dram@20480000 {
+ reg = <0 0x8f000000 0 0x20000>;
+ no-map;
+ };
+
rsc_table: rsc-table@2021e000 {
reg = <0 0x2021e000 0 0x1000>;
no-map;


<&mu1 1 1>,
<&mu1 3 1>;
- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ memory-region = <&dram>, <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
fsl,startup-delay-ms = <500>;
status = "okay";

$ export ARCH=arm64
$ export CROSS_COMPILE=/opt/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
$ make imx_v8_defconfig
$ make freescale/imx93-9x9-qsb.dtb

Set SW for serial download on the QSB (0001), connect debug, download and power cables and turn on the QSB, for this test we will flash the demo image and just replace Linux device tree, flash.bin and M33 firmware into the QSB board.

$ uuu -b sd_all flash.bin imx-image-full-imx93evk.wic


Once it is done change SW to the respective bootmedia
SD boot (0011) and boot the board and stop at uboot, to enter fastboot mode to load modified device tree and M33 firmware

> fastboot 1

After this just run UUU tool on the host computer and fatload the files

$ uuu -b fat_write imx93-9x9-qsb.dtb mmc 1:1
$ uuu -b fat_write hello_world.elf mmc 1:1

When the tool finish, stop fastboot mode by typing CTRL+C and then boot into Linux
> boot

Login with default password "root" and run the following commands to load M33 firmware
$ root
$ modprobe imx_rpmsg_tty
$ cp /run/media/boot-mmcblk1p1/hello_world.elf /lib/firmware/
$ echo hello_world.elf > /sys/class/remoteproc/remoteproc0/firmware
$ echo start >/sys/class/remoteproc/remoteproc0/state

M33_DDR.png


Once done we can verify that the M33 firmware is running on DDR

hello_world.png


Hope everyone finds this useful!

For any question regarding this document, please create a community thread and tag me if needed.

Saludos/Regards,
Aldo.

%3CLINGO-SUB%20id%3D%22lingo-sub-2259696%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Ei.MX93%20Cortex-M33%20DDR%20%E7%A4%BA%E4%BE%8B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2259696%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%0A%3CP%3E%E5%A4%A7%E5%AE%B6%E5%A5%BD%3C%2FP%3E%0A%3CP%3E%E5%9C%A8%E6%9C%AC%E6%96%87%E6%A1%A3%E4%B8%AD%EF%BC%8C%E6%82%A8%E5%B0%86%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E7%A4%BA%E4%BE%8B%EF%BC%8C%E8%AF%B4%E6%98%8E%E5%A6%82%E4%BD%95%E6%9E%84%E5%BB%BA%20Cortex-M33%20%E4%BB%A3%E7%A0%81%EF%BC%8C%E5%85%B6%E4%B8%AD%E6%9F%90%E4%BA%9B%E9%83%A8%E5%88%86%E4%BB%A3%E7%A0%81%E4%BB%8E%20DDR%20%E8%BF%90%E8%A1%8C%EF%BC%8C%E8%BF%99%E6%98%AF%E5%9C%A8%20ATF%20%E4%B8%8A%E8%BF%9B%E8%A1%8C%E7%9A%84%EF%BC%8C%E5%85%B6%E4%B8%AD%20M33%20%E5%86%85%E6%A0%B8%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%97%A9%E6%9C%9F%E9%98%B6%E6%AE%B5%E8%AE%BF%E9%97%AE%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%E3%80%82%3C%2FP%3E%0A%3CP%3E%E4%B8%BA%E6%AD%A4%EF%BC%8C%E6%88%91%E4%BB%AC%E5%B0%86%E5%88%A9%E7%94%A8RPROC%E6%A1%86%E6%9E%B6%EF%BC%8CRPROC%EF%BC%88%E8%BF%9C%E7%A8%8B%E5%A4%84%E7%90%86%E5%99%A8%E6%A1%86%E6%9E%B6%EF%BC%89%E6%98%AF%E4%B8%80%E4%B8%AALinux%E5%86%85%E6%A0%B8%E5%92%8CU-%E5%90%AF%E5%8A%A8%E5%AD%90%E7%B3%BB%E7%BB%9F%EF%BC%8C%E7%94%A8%E4%BA%8E%E7%AE%A1%E7%90%86%E8%BE%85%E5%8A%A9%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%A4%84%E7%90%86%E5%99%A8%EF%BC%88%E5%A6%82Cortex-M%E5%86%85%E6%A0%B8%EF%BC%89%EF%BC%8C%E6%88%91%E4%BB%AC%E5%B0%86%E4%BD%BF%E7%94%A8A55%E6%9D%A5%E5%8A%A0%E8%BD%BDM33%E5%9B%BA%E4%BB%B6%E3%80%82%3C%2FP%3E%0A%3CP%3E%E8%BF%99%E5%B0%86%E9%9C%80%E8%A6%81%E6%9B%B4%E6%94%B9%20Linux%20%E8%AE%BE%E5%A4%87%E6%A0%91%E3%80%81ATF%20%E5%92%8C%20M33%20%E9%93%BE%E6%8E%A5%E5%99%A8%E6%96%87%E4%BB%B6%E3%80%82%3C%2FP%3E%0A%3CP%3E%E8%A6%81%E6%B1%82%EF%BC%9A%3CBR%20%2F%3EUbuntu%2020.04%20%E6%88%96%E6%9B%B4%E9%AB%98%E7%89%88%E6%9C%AC%E7%9A%84%E4%B8%BB%E6%9C%BA%20PC%20%3CBR%20%2F%3E%20i.mx93%20QSB%20UUU%20%E5%B7%A5%E5%85%B7%20ARM%20GN%20%3CBR%20%2F%3E%20U%20%E5%B7%A5%E5%85%B7%3CBR%20%2F%3E%E9%93%BE%EF%BC%88arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu%EF%BC%89%3CBR%20%2F%3ESDK%20%E8%BD%AF%E4%BB%B6%E5%8C%85%20(SDK_25_09_00_MCIMX93-QSB)%3CBR%20%2F%3E%E9%A2%84%E6%9E%84%E5%BB%BA%20Linux%20%E9%95%9C%E5%83%8F%20(LF_v6.12.34-2.1.0_images_IMX93EVK)%3C%2FP%3E%0A%3CP%3E%23%23%23%20Clone%20imx-mkimage%2C%20it%20is%20better%20to%20download%20the%20same%20version%20of%20the%20sw%20we%20are%20working%20with%20%23%23%23%3CBR%20%2F%3E%24%20git%20clone%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Fimx-mkimage%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-imx%2Fimx-mkimage%3C%2FA%3E-b%20lf-6.12.34-2.1.0%3CBR%20%2F%3E%3CBR%20%2F%3E%23%20%23%23%20Decompress%20the%20GNU%20toolchain%20into%20a%20path%20in%20local%20disk%2C%20in%20this%20test%20would%20be%20%2Fopt%2F%20%23%23%20%23%20%3CBR%20%2F%3E%20%24%20sudo%20tar-xVJF%20arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz-C%20%2Fopt%3C%2FP%3E%0A%3CP%3E%23%23%23%20Clone%20and%20build%20Uboot%20%23%23%23%3CBR%20%2F%3E%24%20git%20clone%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Fuboot-imx%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-imx%2Fuboot-imx%3C%2FA%3E-b%20lf-6.12.34-2.1.0%3CBR%20%2F%3E%24%20cd%20uboot-imx%20%24%20make-j%20%24%20(nproc--all)%20clean%20%3CBR%20%2F%3E%20%24%20make-j%20%3CBR%20%2F%3E%20%24%20(nproc--all)%20arch%3Darm%20cross_compile%3D%2Fopt%2Farm-GNU-Toolchain-12.3.rel1-x86_64-aarch64-none-none-linux-GNU-imx93_11x11_evk_defconfig%20%24%20make-j%20%24%20(nproc--all)%20arch%3Darm%20cross_compile%3D%2Fopt%2Farm-GNU-Toolchain-12.3.rel1-x86_64-aarch64-none-64-none-x864-none%20%3CBR%20%2F%3E-linux-GNU-%3CBR%20%2F%3E%20%3CBR%20%2F%3E%23%23%23%20Download%20and%20extract%20ELE%20firmware%20%23%23%23%3CBR%20%2F%3E%24%20cd%20...%3CBR%20%2F%3E%24%20wget%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Flgfiles%2FNMG%2FMAD%2FYOCTO%2Ffirmware-ele-imx-2.0.3-286c884.bin%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.nxp.com%2Flgfiles%2FNMG%2FMAD%2FYOCTO%2Ffirmware-ele-imx-2.0.3-286c884.bin%3C%2FA%3E%3CBR%20%2F%3E%24%20chmod%20%2Bx%20firmware-ele-imx-2.0.3-286c884.bin%3CBR%20%2F%3E%24%20.%2Ffirmware-ele-imx-2.0.3-286c884.bin%20--auto-accept%3CBR%20%2F%3E%3CBR%20%2F%3E%23%23%23%20Optional%20if%20using%20i.MX%20FW%20%23%23%23%3CBR%20%2F%3E%24%20wget%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Flgfiles%2FNMG%2FMAD%2FYOCTO%2Ffirmware-imx-8.29-8741a3b.bin%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.nxp.com%2Flgfiles%2FNMG%2FMAD%2FYOCTO%2Ffirmware-imx-8.29-8741a3b.bin%3C%2FA%3E%3CBR%20%2F%3E%24%20chmod%20%2Bx%20firmware-imx-8.29-8741a3b.bin%3CBR%20%2F%3E%24%20.%2Ffirmware-imx-8.29-8741a3b.bin%20--auto-accept%3CBR%20%2F%3E%3CBR%20%2F%3E%23%23%23%20Clone%20ATF%20%23%23%23%3CBR%20%2F%3E%24%20git%20clone%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Fimx-atf%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-imx%2Fimx-atf%3C%2FA%3E-b%20lf-6.12.34-2.1.0%3CBR%20%2F%3E%24%20cd%20imx-atf%3CBR%20%2F%3E%3CBR%20%2F%3E%23%23%23%20Modify%20ATF%20for%20the%20M33%20to%20be%20able%20to%20access%20DDR%20%23%23%23%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CDIV%20class%3D%22lia-spoiler-container%22%3E%3CA%20class%3D%22lia-spoiler-link%22%20href%3D%22%23%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3E%E5%89%A7%E9%80%8F%3C%2FA%3E%3CNOSCRIPT%3E%20%EF%BC%88%E9%AB%98%E4%BA%AE%E9%83%A8%E5%88%86%E5%8F%AF%E4%BE%9B%E9%98%85%E8%AF%BB%EF%BC%89%3C%2FNOSCRIPT%3E%3CDIV%20class%3D%22lia-spoiler-border%22%3E%3CDIV%20class%3D%22lia-spoiler-content%22%3E%0A%3CP%3E---%20a%2Fplat%2Fimx%2Fimx93%2Ftrdc_config.h%3CBR%20%2F%3E%2B%2B%2B%20b%2Fplat%2Fimx%2Fimx93%2Ftrdc_config.h%3C%2FP%3E%0A%3CP%3Estruct%20trdc_mrc_config%20trdc_n_mrc%20%5B%5D%20%3D%20%7B%3CBR%20%2F%3E%7B%200%2C%200%2C%200%2C%200x80000000%2C%200x80000000%2C%200%2C%20false%20%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20S400%20DID0%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%3CBR%20%2F%3E%7B%200%2C%201%2C%200%2C%200x80000000%2C%200x80000000%2C%200%2C%20false%20%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20MTR%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%3CBR%20%2F%3E-%20%7B%200%2C%202%2C%200%2C%200x80000000%2C%200x80000000%2C%200%2C%20true%20%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20M33%20DID2%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%3CBR%20%2F%3E%2B%20%7B%200%2C%202%2C%200%2C%200x80000000%2C%200x80000000%2C%201%2C%20true%20%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20M33%20DID2%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%3CBR%20%2F%3E%7B%200%2C%203%2C%200%2C%200x80000000%2C%200x80000000%2C%201%2C%20false%20%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20A55%20DID3%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%3CBR%20%2F%3E%7B%200%2C%205%2C%200%2C%200x80000000%2C%200x80000000%2C%200%2C%20false%20%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20USDHC1%20DID5%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%3CBR%20%2F%3E%7B%200%2C%206%2C%200%2C%200x80000000%2C%200x80000000%2C%200%2C%20false%20%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20USDHC2%20DID6%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%3C%2FP%3E%0A%3C%2FDIV%3E%3CNOSCRIPT%3E%3CDIV%20class%3D%22lia-spoiler-noscript-container%22%3E%3CDIV%20class%3D%22lia-spoiler-noscript-content%22%3E%0A---%20a%2Fplat%2Fimx%2Fimx93%2Ftrdc_config.h%2B%2B%2Bb%2Fplat%2Fimx%2Fimx93%2Ftrdc_config.hstruct%20trdc_mrc_config%20trdc_n_mrc%20%5B%5D%20%3D%20%7B%7B%7B0%2C%200%2C%200%2C%200x80000000%2C%200%2C%20false%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20S400%20DID0%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%20%7B0%2C%201%2C%200%2C%200x80000000%2C%200%2C%20false%7D%2C%20%2F*%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20%E7%94%A8%E4%BA%8E%20MTR%201%20*%2F-%7B0%E3%80%812%E3%80%810%E3%80%810x80000000%E3%80%810x80000000%E3%80%810%E3%80%81true%7D%EF%BC%8C%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20M33%20DID2%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%2B%20%7B0%E3%80%812%E3%80%810%E3%80%810x80000000%E3%80%810x80000000%E3%80%811%E3%80%81true%7D%EF%BC%8C%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20M33%20DID2%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%20%7B0%E3%80%813%E3%80%810%E3%80%810x80000000%E3%80%810x80000000%20000%2C%200x80000000%2C%201%2C%20false%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20A55%20DID3%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%20%7B0%2C%205%2C%200%2C%200x80000000%2C%200x80000000%2C%200%2C%20false%7D%2C%20%2F*%20%E9%80%82%E7%94%A8%E4%BA%8E%20USDHC1%20DID5%20%E7%9A%84%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20*%2F%20%7B0%2C%206%2C%200%2C%200x80000000%2C%200%2C%20false%7D%2C%20%2F*%20MRC0%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%E9%80%82%E7%94%A8%E4%BA%8E%20USDHC2%20DID6%20*%2F%0A%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FNOSCRIPT%3E%3C%2FDIV%3E%3C%2FDIV%3E%0A%3CP%3E%23%20%23%23%20Build%20modified%20ATF%20%23%23%20%23%20%3CBR%20%2F%3E%20%24%20make-j%20%24%20(nproc--all)%20plat%3Dimx93%20bl31%20cross_compile%3D%2Fopt%2Farm-GNU-Toolchain-12.3.rel1-x86_64-aarch64-none-linux-none-64-none-Linux-GNU-%3C%2FP%3E%0A%3CP%3E%23%23%23%20Modify%20linker%20file%20and%20build%20M33%20code%2C%20in%20this%20example%20we%20are%20using%20hello%20world%20SDK%20example%20%23%23%23%3CBR%20%2F%3E%24%20cd%20...%3CBR%20%2F%3E%24%20tar%20-xvzf%20SDK_25_09_00_MCIMX93-QSB.tar.gz%3CBR%20%2F%3E%24%20cd%20sdk_25_09_00_mcimx93-qsb%2Fboards%2Fmcimx93qsb%2Fdemo_apps%2FHello_world%2Farmgcc%3C%2FP%3E%0A%3CDIV%20class%3D%22lia-spoiler-container%22%3E%3CA%20class%3D%22lia-spoiler-link%22%20href%3D%22%23%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3E%E5%89%A7%E9%80%8F%3C%2FA%3E%3CNOSCRIPT%3E%20%EF%BC%88%E9%AB%98%E4%BA%AE%E9%83%A8%E5%88%86%E5%8F%AF%E4%BE%9B%E9%98%85%E8%AF%BB%EF%BC%89%3C%2FNOSCRIPT%3E%3CDIV%20class%3D%22lia-spoiler-border%22%3E%3CDIV%20class%3D%22lia-spoiler-content%22%3E%0A%3CP%3E---a%2F%E6%9D%BF%2Fmcimx93autoevk%2Fdemo_apps%2FHello_world%2Farmgcc%2Fmimx9352_cm33_ram.ld%20%3CBR%20%2F%3E%2B%2B%2B%20b%2Fboards%2Fmcimx93autoevk%2Fdemo_apps%2FHello_world%2Farmgcc%2Fmimx9352_cm33_ram.ld%3C%2FP%3E%0A%3CP%3Em_a55_suspend_ram%20(RW)%20%EF%BC%9AORIGIN%20%3D%200x20002000%EF%BC%8CLENGTH%20%3D%200x00001000%3CBR%20%2F%3Em_data%20(RW)%20%EF%BC%9AORIGIN%20%3D%200x20003000%EF%BC%8CLENGTH%20%3D%200x0001B000%3CBR%20%2F%3Em_rsc_tbl%20(RW)%20%EF%BC%9AORIGIN%20%3D%200x2001E000%EF%BC%8CLENGTH%20%3D%200x00001000%3CBR%20%2F%3E%2B%20m_text_dram%20(RW)%20%EF%BC%9AORIGIN%20%3D%200x8F000000%2C%20LENGTH%20%3D%200x00001000%3CBR%20%2F%3E%2B%20m_data_dram%20(RW)%20%EF%BC%9AORIGIN%20%3D%200x8F001000%2C%20LENGTH%20%3D%200x00001000%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%2F*%20%E5%AE%9A%E4%B9%89%E8%BE%93%E5%87%BA%E9%83%A8%E5%88%86%20*%2F%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3E.%3D%20ALIGN(4)%3B%3CBR%20%2F%3E%7D%26gt%3B%20m_text%3CBR%20%2F%3E%3CBR%20%2F%3E%2B%20.dram_text%3A%3CBR%20%2F%3E%2B%20%7B%3CBR%20%2F%3E%2B%20.%3D%20ALIGN(32)%3B%3CBR%20%2F%3E%2B%20*(.myDRAM)%3CBR%20%2F%3E%2B%20.%3D%20ALIGN%20(32)%3B%20%3CBR%20%2F%3E%20%2B%7D%20%26gt%3B%20m_text_dram%20%2B%20.arm.ext%20%3CBR%20%2F%3E%20ab%3A%20%7B*%20(%3CBR%20%2F%3E.arm.extab*)%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E.gnu.linkonce.armextab.*)%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3E.arm.Attributes%200%3A%20%7B*%20(.arm.Attributes)%7D%3CBR%20%2F%3E%3CBR%20%2F%3EASSERT(__StackLimit%20%26gt%3B%3D%20__HeapLimit%2C%22region%20m_data%20overflowed%20with%20stack%20and%20heap%22)%3CBR%20%2F%3E%2B%3CBR%20%2F%3E%2B%20.dram_data%3A%3CBR%20%2F%3E%2B%20%7B%3CBR%20%2F%3E%2B%20.%3D%20ALIGN(32)%3B%3CBR%20%2F%3E%2B%20*(.myDRAM_data)%3CBR%20%2F%3E%2B%20.%3D%20ALIGN%20(32)%3B%20%3CBR%20%2F%3E%20%2B%7D%20%26gt%3B%20m_data_dram%7D%20a%2F%E6%9D%BF%2Fmcimx93autoevk%2Fdemo_apps%2Fhello_world%2Fhello_world%2Fhello_w%20%3CBR%20%2F%3E%20orld.c%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%2B%2B%2B%20%E6%9D%BF%2Fmcimx93autoevk%2Fdemo_apps%2Fhello_world%2Fhello_world%2Fhello_world%3C%2FP%3E%0A%3CP%3E*%20%E5%AE%9A%E4%B9%89%3CBR%20%2F%3E******************************************************************************%2F%3CBR%20%2F%3E%3CBR%20%2F%3E%2B%23define%20_RET_IP_%20(unsigned%20long)__builtin_return_address(0)%3CBR%20%2F%3E%2B%23define%20_THIS_IP_%20(%7B%20__label__%20__here%3B%20__%20here%EF%BC%9A(unsigned%20long)%26amp%3B%26amp%3B%20__here%3B%20%7D)%3CBR%20%2F%3E%3CBR%20%2F%3E%2F*******************************************************************************%3CBR%20%2F%3E*%20%E5%8E%9F%E5%9E%8B%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3E%2F*******************************************************************************%3CBR%20%2F%3E*%20%E5%8F%98%E9%87%8F%3CBR%20%2F%3E******************************************************************************%2F%3CBR%20%2F%3E-%3CBR%20%2F%3E%2Bconst%20char%20myString%5B%5D__attribute__((section(%22.myDRAM_data%22)))%20%3D%22Hello%2C%20World!%22%3B%3CBR%20%2F%3E%2F*******************************************************************************%3CBR%20%2F%3E*%20%E4%BB%A3%E7%A0%81%3CBR%20%2F%3E******************************************************************************%2F%3CBR%20%2F%3E%2B__attribute__%20((section(%22.myDRAM%22))))%3CBR%20%2F%3E%2Bvoid%20Dram_test(void)%20%7B%3CBR%20%2F%3E%2B%20PRINTF(%22Dram_test!!%5Cr%5Cn%22)%3B%3CBR%20%2F%3E%2B%3CBR%20%2F%3E%2B%20PRINTF(%22%25%20s!!%5Cr%5Cn%22%2C%20myString)%3B%3CBR%20%2F%3E%2B%3CBR%20%2F%3E%2B%20PRINTF(%22function%25p%5Cn%22%2C_THIS_IP_)%3B%3CBR%20%2F%3E%2B%7D%3CBR%20%2F%3E%2B%3CBR%20%2F%3E%2F*!%3CBR%20%2F%3E*%20%40brief%20Main%20function%3CBR%20%2F%3E*%2F%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3EBOARD_BootClockRUN()%3B%3CBR%20%2F%3EBOARD_InitDebugConsole()%3B%3CBR%20%2F%3E%3CBR%20%2F%3E-%20PRINTF(%22hello%20world.%5Cr%5Cn%22)%EF%BC%9B%3CBR%20%2F%3E%2B%20PRINTF(%22%E6%9D%A5%E8%87%AA%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20%E7%9A%84%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C%E3%80%82%5Cr%5Cn%22)%3B%3CBR%20%2F%3E%3CBR%20%2F%3Ewhile%20(1)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ech%20%3D%20GETCHAR()%3B%3CBR%20%2F%3EPUTCHAR(ch)%3B%3CBR%20%2F%3E%2B%20if(ch%20%3D%3D%20'a')%7B%3CBR%20%2F%3E%2B%20Dram_test()%3B%3CBR%20%2F%3E%2B%20%7D%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%0A%3C%2FDIV%3E%3CNOSCRIPT%3E%3CDIV%20class%3D%22lia-spoiler-noscript-container%22%3E%3CDIV%20class%3D%22lia-spoiler-noscript-content%22%3E%0A---a%2Fboards%2Fmcimx93autoevk%2Fdemo_apps%2FHello_world%2Farmgcc%2Fmimx9352_cm33_ram.ld%2B%2Bb%2F%E6%9D%BF%2Fmcimx93autoevk%2Fdemo_apps%2FHello_world%2Farmgcc%2Fmimx9352_cm33_ram.ld%0Am_a55_suspend_ram%20(RW)%EF%BC%9AORIGIN%20%3D%200x20002000%EF%BC%8C%E9%95%BF%E5%BA%A6%20%3D%200x00001000m_data%20(RW)%EF%BC%9AORIGIN%20%3D%200x20003000%EF%BC%8C%E9%95%BF%E5%BA%A6%20%3D%200x0001b000m_rsc_TBL%20(RW)%EF%BC%9AORIGIN%20%3D%200x2001E000%EF%BC%8C%E9%95%BF%E5%BA%A6%20%3D%200x00001000%2B%20m_text_dram%20(RW)%EF%BC%9AORIGIN%20%3D%200x8F00000000%2B%2000%EF%BC%8C%E9%95%BF%E5%BA%A6%20%3D%200x00001000%2B%20m_data_dram%20(RW)%EF%BC%9AORIGIN%20%3D%200x8F001000%EF%BC%8C%E9%95%BF%E5%BA%A6%20%3D%200x00001000%7D%20%2F*%20%E5%AE%9A%E4%B9%89%E8%BE%93%E5%87%BA%E9%83%A8%E5%88%86%20*%2F%0A%E3%80%82%3D%20ALIGN(4)%3B%7D%26gt%3B%20m_text%2B%20.dram_text%3A%2B%20%7B%2B%20.%3D%20ALIGN(32)%3B%2B%20*(.myDRAM)%2B%20.%3D%20ALIGN%20(32)%3B%20%2B%7D%20%26gt%3B%20m_text_dram%2B.arm.extab%3A%20%7B*%20(.arm.extab*).gnu.linkonce.armextab.*).arm.Attributes%200%3A%20%7B*%20(.arm.Attributes)%7DASSERT(__StackLimit%20%26gt%3B%3D%20__HeapLimit%2C%22%E5%8C%BA%E5%9F%9F%20m_data%20%E5%A0%86%E6%A0%88%E5%92%8C%E5%A0%86%E6%BA%A2%E5%87%BA%22)%2B%2B%20.dram_data%3A%2B%20%7B%2B%20.%3D%20ALIGN(32)%3B%2B%20*(.myDRAM_data)%2B%20.%3D%20ALIGN%20(32)%3B%20%2B%7D%20%26gt%3B%20m_data_dram%7D%20a%2F%E6%9D%BF%2Fmcimx93autoevk%2Fdemo_apps%2Fhello_world%2Fhello_world%2Fhello_world.c%2B%2Bb%2Fboards%2Fmcimx93autoevk%2Fdemo_apps%2Fhello_world%2Fhello_world%2Fhello_w*%20%E5%AE%9A%E4%B9%89******************************************************************************%2F%2B%23define%20_RET_IP_%20(unsigned%20long)__builtin_return_address(0)%2B%23define%20_THIS_IP_%20(%7B%20__label__%20__here%3B%20__%20here%EF%BC%9A(unsigned%20long)%26amp%3B%26amp%3B%20__here%3B%20%7D)%2F********************************************************************************%20Prototypes%0A%2F********************************************************************************%20Variables******************************************************************************%2F-%2Bconst%20char%20myString%5B%5D%20__%20attribute__((section(%22.myDRAM_data%22)))%3D%22Hello%2C%20World!%22%3B%2F********************************************************************************%20Code******************************************************************************%2F%2B__attribute__%20((section(%22.myDRAM%22)))%2BvoidDram_test(void)%20%7B%2B%20PRINTF(%22Dram_test!!%5Cr%5Cn%22)%3B%2B%2B%20PRINTF(%22%25%20s!!%5Cr%5Cn%22%2C%20myString)%3B%2B%2B%20PRINTF(%22function%25p%5Cn%22%2C_THIS_IP_)%3B%2B%7D%2B%2F*%EF%BC%81*%20%40brief%20Main%20function*%2F%0ABOARD_BootClockRUN()%3BBOARD_InitDebugConsole()%3B-%20PRINTF(%22hello%20world.%5Cr%5Cn%22)%3B%2BPRINTF%20(%22%20%E6%9D%A5%E8%87%AA%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8%5C%5C(DRAM%5C%5C)%20%E7%9A%84%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C%E3%80%82%5C%20r%5Cn%20%22)%3B%20while%20(1)%20%7Bch%20%3D%20GETCHAR%20()%3B%20PUTCHAR%20(ch)%3B%20%2B%20if%20(ch%20%3D%3D%20'a')%20%7B%2B%20dram_test%20()%3B%20%2B%7D%7D%0A%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FNOSCRIPT%3E%3C%2FDIV%3E%3C%2FDIV%3E%0A%3CP%3E%24%20export%20armgcc_dir%3D~%2Fgcc-arm-none-eabi-10.3-2021.10%20%3CBR%20%2F%3E%24%20export%20PATH%3D%24PATH%3A%20~%2Fgcc-arm-none-eabi-10.3-2021.10%20%3CBR%20%2F%3E%24%20.%2Fbuild_release.sh%3C%2FP%3E%0A%3CP%3E%23%20%23%23%20Copy%20the%20resulting%20binaries%20to%20imx-mkimage%20%23%23%20%23%20%3CBR%20%2F%3E%20%24%20cp%20~%2Fimx-atf%2F%E7%89%88%E6%9C%AC%2Fimx93%2F%E7%89%88%E6%9C%AC%2Fbl31.bin%20~%2Fimx-mkimage%2Fimx93%20%24%20cp%20~%2Fuboot-imx%2Fu-%E5%90%AF%E5%8A%A8.bin%20~%2Fimx-mkimage%2Fimx93%20%E7%BE%8E%E5%85%83%20cp%20~%2Fuboot-imx%2Fspl%2Fu-%E5%90%AF%E5%8A%A8-spl.bin%20~%2Fimx93%20%E7%BE%8E%E5%85%83%20cp%20~%2Fimxmikage%2Fimx93%20%E7%BE%8E%E5%85%83%20cp%20~%2Fimxmikage%2Fimx93%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%3C%2FP%3E%0A%3CP%3E%23%23%23%20Copy%20i.MX%20firmware%20%23%23%23%3CBR%20%2F%3E%24%20cd%20...%3CBR%20%2F%3E%24%20cp%20firmware-imx-8.29-8741a3b%2Ffirmware%2Fddr%2Fsynopsys%2Flpddr4_dmem_*~%2Fimx-mkimage%2FiMX93%3CBR%20%2F%3E%24%20cp%20firmware-imx-8.29-8741a3b%2Ffirmware%2Fddr%2Fsynopsys%2Flpddr4_imem_*~%2Fimx-mkimage%2FiMX93%3CBR%20%2F%3E%24%20cpfirmware-ele-imx-2.0.3-286c884%2Fmx93a1-ahab-container.img%20~%2Fimx-mkimage%2FiMX93%3C%2FP%3E%0A%3CP%3E%23%23%23%20%E4%BD%BF%E7%94%A8%20mkimage%20%E6%9E%84%E5%BB%BA%20flash.bin%20%3CBR%20%2F%3E%20%24%20cd%20imx-mkimage%20%3CBR%20%2F%3E%20%24%20make%20SOC%3DiMX93%20flash_singleboot%3C%2FP%3E%0A%3CP%3E%23%23%23%20Clone%2C%20modify%20and%20build%20device%20tree%20for%20Linux%20to%20be%20able%20to%20use%20RPROC%20to%20load%20M33%20Firmware%20%23%23%23%3CBR%20%2F%3E%24%20git%20clone%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx%3C%2FA%3E-b%20lf-6.12.34-2.1.0%3C%2FP%3E%0A%3CDIV%20class%3D%22lia-spoiler-container%22%3E%3CA%20class%3D%22lia-spoiler-link%22%20href%3D%22%23%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3E%E5%89%A7%E9%80%8F%3C%2FA%3E%3CNOSCRIPT%3E%20%EF%BC%88%E9%AB%98%E4%BA%AE%E9%83%A8%E5%88%86%E5%8F%AF%E4%BE%9B%E9%98%85%E8%AF%BB%EF%BC%89%3C%2FNOSCRIPT%3E%3CDIV%20class%3D%22lia-spoiler-border%22%3E%3CDIV%20class%3D%22lia-spoiler-content%22%3E%0A%3CP%3E---a%2Farch%2Farm64%2F%E5%90%AF%E5%8A%A8%2Fdts%2Ffreescale%2Fimx93-9x9-qsb.dts%20%3CBR%20%2F%3E%2B%2B%2B%20b%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx93-9x9-qsb.dts%3C%2FP%3E%0A%3CP%3Eno-map%3B%7D%3B%3CBR%20%2F%3E%20%3CBR%20%2F%3E%3CBR%20%2F%3E%2B%20dram%3A%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20%4020480000%20%7B%3CBR%20%2F%3E%20%2B%20reg%20%3D%3B%26lt%3B0%200x8f000000%200%200x20000%26gt%3B%20%3CBR%20%2F%3E%2B%20%E6%B2%A1%E6%9C%89%E5%9C%B0%E5%9B%BE%3B%3CBR%20%2F%3E%20%2B%7D%3B%3CBR%20%2F%3E%20%2B%3CBR%20%2F%3E%20rsc_table%3A%20rsc-table%20%402021e000%20%7Breg%3CBR%20%2F%3E%20%3D%3B%26lt%3B0%200x2021e000%200%200x1000%26gt%3B%20%3CBR%20%2F%3E%E6%B2%A1%E6%9C%89%E5%9C%B0%E5%9B%BE%3B%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3E%26lt%3B%26amp%3B%20%26lt%3B%26amp%3B%26gt%3B%20%26lt%3B%26amp%3B%26gt%3Bmu1%201%201%26gt%3B%2C%3CBR%20%2F%3E%26lt%3B%20%26amp%3B%20mu1%203%201%26gt%3B%3B%3CBR%20%2F%3E-%20memory-region%20%3D%26lt%3B%26amp%3B%20vdevbuffer%26gt%3B%2C%26lt%3B%26amp%3B%20vdev0vring0%26gt%3B%2C%26lt%3B%26amp%3B%20vdev0vring1%26gt%3B%2C%3CBR%20%2F%3E%2B%20memory-region%20%3D%26lt%3B%26amp%3B%20dram%26gt%3B%2C%26lt%3B%26amp%3B%20vdevbuffer%26gt%3B%2C%26lt%3B%26amp%3B%20vdev0vring0%26gt%3B%2C%26lt%3B%26amp%3B%20vdev0vring1%26gt%3B%2C%3CBR%20%2F%3E%26lt%3B%20%26amp%3B%20vdev1vring0%26gt%3B%2C%20x%3CBR%20%2F%3Efsl%EF%BC%8Cstartup-delay-ms%20%3D%26lt%3B500%26gt%3B%3B%3CBR%20%2F%3Estatus%20%3D%22okay%22%20%EF%BC%9B%3C%2FP%3E%0A%3C%2FDIV%3E%3CNOSCRIPT%3E%3CDIV%20class%3D%22lia-spoiler-noscript-container%22%3E%3CDIV%20class%3D%22lia-spoiler-noscript-content%22%3E%0A---a%2Farch%2Farm64%2F%E5%90%AF%E5%8A%A8%2Fdts%2Ffreescale%2Fimx93-9x9-qsb.dts%2B%2B%2Bb%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx93-9x9-qsb.dts%0Ano-map%3B%7D%3B%20%2B%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%3A%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20%4020480000%20%7B%2B%20reg%20%3D%20%26lt%3B0%200x8f000000%200%200x20000%26gt%3B%3B%20%2B%20%E6%B2%A1%E6%9C%89%E5%9C%B0%E5%9B%BE%3B%20%2B%7D%3B%20%2Brsc_table%3A%20rsc-table%20%402021e000%20%7Breg%20%3D%20%26lt%3B0%200x2021e000%200%200x1000%26gt%3B%3B%20%E6%B2%A1%E6%9C%89%E5%9C%B0%E5%9B%BE%3B%0A%26lt%3B%20%26amp%3B%20mu1%201%201%20%26gt%3B%2C%20%26lt%3B%20%26amp%3B%20mu1%203%201%20%26gt%3B%3B-%E5%86%85%E5%AD%98%E5%8C%BA%E5%9F%9F%20%3D%20%26lt%3B%20%26amp%3B%20vdevbuffer%20%26gt%3B%2C%20%26lt%3B%20%26amp%3B%20vdev0vring0%20%26gt%3B%EF%BC%8CGEMASKT%20%26lt%3B%26amp%3B%20vdev0vring1%20%26gt%3B%EF%BC%8C%2B%20%E5%86%85%E5%AD%98%E5%8C%BA%E5%9F%9F%20%3D%20%26lt%3B%20%26amp%3B%20%E5%8A%A8%E6%80%81%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8(DRAM)%20%26gt%3B%EF%BC%8C%26lt%3B%20%26amp%3B%20vdevbuffer%20%26gt%3B%EF%BC%8C%26lt%3B%20%26amp%3B%20vdev0vring0%20%26gt%3B%EF%BC%8C%26lt%3B%20%26amp%3B%20vdev0vring1%26gt%3B%2C%20%26lt%3B%20%26amp%3B%20vdev1vring0%20%26gt%3B%2C%20%26lt%3B%20%26amp%3B%20vdev1vring1%20%26gt%3B%2C%20%26lt%3B%20%26amp%3B%20rsc_table%20%26gt%3B%3B%20fsl%EF%BC%8Cstartup-delay-ms%20%3D%20%26lt%3B500%26gt%3B%3B%20%E7%8A%B6%E6%80%81%20%3D%20GEMAST%20%22%E5%A5%BD%E5%90%A7%20%22%3B%0A%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FNOSCRIPT%3E%3C%2FDIV%3E%3C%2FDIV%3E%0A%3CP%3E%24%20export%20arch%3Darm64%20%24%20export%20cross_compile%3D%2Fopt%2Farm-GNU-Toolchain-12.3.rel1-x86_64-aarch64-none-linux-GNU-bin%2Faarch64-none-Linu%20%3CBR%20%2F%3E%20x-GNU-%3CBR%20%2F%3E%24%20make%20imx_v8_defconfig%3CBR%20%2F%3E%24%20make%20freescale%2Fimx93-9x9-qsb.dtb%3C%2FP%3E%0A%3CP%3E%E5%9C%A8%20QSB%20(0001)%20%E4%B8%8A%E8%AE%BE%E7%BD%AE%E8%BD%AF%E4%BB%B6%E4%BB%A5%E4%BE%9B%E4%B8%B2%E8%A1%8C%E4%B8%8B%E8%BD%BD%EF%BC%8C%E8%BF%9E%E6%8E%A5%E8%B0%83%E8%AF%95%E3%80%81%E4%B8%8B%E8%BD%BD%E5%92%8C%E7%94%B5%E6%BA%90%E7%BA%BF%EF%BC%8C%E7%84%B6%E5%90%8E%E6%89%93%E5%BC%80%20QSB%EF%BC%8C%E5%9C%A8%E8%BF%99%E6%AC%A1%E6%B5%8B%E8%AF%95%E4%B8%AD%EF%BC%8C%E6%88%91%E4%BB%AC%E5%B0%86%E5%88%B7%E6%96%B0%E6%BC%94%E7%A4%BA%E6%98%A0%E5%83%8F%EF%BC%8C%E7%84%B6%E5%90%8E%E5%B0%86%20Linux%20%E8%AE%BE%E5%A4%87%E6%A0%91%E3%80%81flash.bin%20%E5%92%8C%20M33%20%E5%9B%BA%E4%BB%B6%E6%9B%BF%E6%8D%A2%E5%88%B0%20QSB%20%E6%9D%BF%E4%B8%AD%E3%80%82%3C%2FP%3E%0A%3CP%3E%24%20uuu%20-b%20sd_all%20flash.bin%20imx-image-full-imx93evk.wic%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3E%E5%AE%8C%E6%88%90%E5%90%8E%EF%BC%8C%E5%B0%86%20SW%20%E6%9B%B4%E6%94%B9%E4%B8%BA%E7%9B%B8%E5%BA%94%E7%9A%84%E5%90%AF%E5%8A%A8%E4%BB%8B%E8%B4%A8%3CBR%20%2F%3ESD%20%E5%90%AF%E5%8A%A8%20(0011)%EF%BC%8C%E5%90%AF%E5%8A%A8%E6%9D%BF%E5%B9%B6%E5%9C%A8%20uboot%20%E5%A4%84%E5%81%9C%E6%AD%A2%EF%BC%8C%E8%BF%9B%E5%85%A5%E5%BF%AB%E9%80%9F%E5%90%AF%E5%8A%A8%E6%A8%A1%E5%BC%8F%E5%8A%A0%E8%BD%BD%E4%BF%AE%E6%94%B9%E5%90%8E%E7%9A%84%E8%AE%BE%E5%A4%87%E6%A0%91%E5%92%8C%20M33%20%E5%9B%BA%E4%BB%B6%3C%2FP%3E%0A%3CP%3E%26gt%3B%20fastboot%201%3C%2FP%3E%0A%3CP%3E%E4%B9%8B%E5%90%8E%EF%BC%8C%E5%8F%AA%E9%9C%80%E5%9C%A8%E4%B8%BB%E6%9C%BA%E4%B8%8A%E8%BF%90%E8%A1%8C%20UUU%20%E5%B7%A5%E5%85%B7%E5%B9%B6%E5%8A%A0%E8%BD%BD%E6%96%87%E4%BB%B6%E5%8D%B3%E5%8F%AF%3C%2FP%3E%0A%3CP%3E%24%20uuu%20-b%20fat_write%20imx93-9x9-qsb.dtb%20mmc%201%3A1%3CBR%20%2F%3E%24%20uuu%20-b%20fat_write%20hello_world.elf%20mmc%201%3A1%3C%2FP%3E%0A%3CP%3E%E5%B7%A5%E5%85%B7%E5%AE%8C%E6%88%90%E5%90%8E%EF%BC%8C%E9%94%AE%E5%85%A5%20CTRL%2BC%20%E5%81%9C%E6%AD%A2%E5%BF%AB%E9%80%9F%E5%90%AF%E5%8A%A8%E6%A8%A1%E5%BC%8F%EF%BC%8C%E7%84%B6%E5%90%8E%E5%90%AF%E5%8A%A8%E5%88%B0%20Linux%20%26gt%3B%20boot%20%3CBR%20%2F%3E%3C%2FP%3E%0A%3CP%3E%E4%BD%BF%E7%94%A8%E9%BB%98%E8%AE%A4%E5%AF%86%E7%A0%81%E7%99%BB%E5%BD%95%20%22%20root%20%22%20%E7%84%B6%E5%90%8E%E8%BF%90%E8%A1%8C%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%E5%8A%A0%E8%BD%BD%20M33%20%E5%9B%BA%E4%BB%B6%3CBR%20%2F%3E%20%24%20root%3CBR%20%2F%3E%20%24%20modprobe%20imx_rpmsg_tty%3CBR%20%2F%3E%20%24%20cp%20%2Frun%2Fmedia%2F%E5%90%AF%E5%8A%A8-mmcblk1p1%2Fhello_world.elf%20%2Flib%2Ffirmware%2F%3CBR%20%2F%3E%20%24%20echo%20hello_world.elf%20%26gt%3B%20%2Fsys%2Fclass%2Fremoteproc%2Fremoteproc0%2Ffirmware%3CBR%20%2F%3E%20%24%20echo%20start%20%26gt%3B%2Fsys%2Fclass%2Fremoteproc%2Fremoteproc0%2Fstate%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22M33_DDR.png%22%20style%3D%22width%3A%20633px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22M33_DDR.png%22%20style%3D%22width%3A%20633px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F369449i1B28CC56842A316B%2Fimage-dimensions%2F633x163%3Fv%3Dv2%22%20width%3D%22633%22%20height%3D%22163%22%20role%3D%22button%22%20title%3D%22M33_DDR.png%22%20alt%3D%22M33_DDR.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CP%3E%3CBR%20%2F%3E%E4%B8%80%E6%97%A6%E5%AE%8C%E6%88%90%EF%BC%8C%E6%88%91%E4%BB%AC%E5%B0%B1%E5%8F%AF%E4%BB%A5%E9%AA%8C%E8%AF%81%20M33%20%E5%9B%BA%E4%BB%B6%E6%98%AF%E5%90%A6%E5%9C%A8%20DDR%20%E4%B8%8A%E8%BF%90%E8%A1%8C%E3%80%82%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22hello_world.png%22%20style%3D%22width%3A%20630px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22hello_world.png%22%20style%3D%22width%3A%20630px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F369450i3B8479D80BC168B5%2Fimage-dimensions%2F630x132%3Fv%3Dv2%22%20width%3D%22630%22%20height%3D%22132%22%20role%3D%22button%22%20title%3D%22hello_world.png%22%20alt%3D%22hello_world.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CP%3E%3CBR%20%2F%3E%E5%B8%8C%E6%9C%9B%E5%AF%B9%E5%A4%A7%E5%AE%B6%E6%9C%89%E7%94%A8%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E5%A6%82%E5%AF%B9%E6%9C%AC%E6%96%87%E6%A1%A3%E6%9C%89%E4%BB%BB%E4%BD%95%E7%96%91%E9%97%AE%EF%BC%8C%E8%AF%B7%E5%88%9B%E5%BB%BA%E7%A4%BE%E5%8C%BA%E4%B8%BB%E9%A2%98%EF%BC%8C%E5%B9%B6%E5%9C%A8%E9%9C%80%E8%A6%81%E6%97%B6%E6%A0%87%E8%AE%B0%E6%88%91%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%97%AE%E5%80%99%EF%BC%8C%3CBR%20%2F%3E%E9%98%BF%E5%B0%94%E5%A4%9A%E3%80%82%3C%2FP%3E%0A%3C%2FLINGO-BODY%3E
100% 有帮助 (1/1)
版本历史
最后更新:
‎12-10-2025 11:50 PM
更新人: