What is the proper Linux image to load on an MCIMX8M-AUD with and i.MX8M Mini processor board?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

What is the proper Linux image to load on an MCIMX8M-AUD with and i.MX8M Mini processor board?

2,395 Views
stomczak
Contributor II

I have a MCIMX8M-AUD eval kit with an i.MX8M Mini processor board on an Interposer.  I tried the following command to load the imx8mmevk image from LF_v5.15.52-2.1.0_images_IMX8MMEVK.zip to the board in serial download mode:

$ sudo uuu -b emmc_all imx-boot-imx8mmevk-sd.bin-flash_evk imx-image-full-imx8mmevk.tar.zst

The download was successful but the board will not boot and is stuck at the u-boot prompt.  I am thinking that this might not have been the proper Linux image for the board.  What Linux image should I be loading on this board?

0 Kudos
12 Replies

2,350 Views
stomczak
Contributor II

Hi Jorge,

I apologize for the delay in responding and thank you for directing me to the above page it was very helpful.  I was able to load the image and see that Linux starts to boot.  However it hangs at this point:

[ 2.204155] pps pps0: new PPS source ptp0

The next line from previous boots with the preloaded image is the "libphy: fec_enet_mii_bus: probed" message, so I assume it is ether the PPS or Ethernet phy driver that is hanging.  Are you familiar with this problem?  Is this hardware configuration related?  Any help would be greatly appreciated.

Thanks,

Steve

0 Kudos

2,343 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

Got it, I did not see this behavior before. You should be able to flash the image and boot Linux without any problem following the steps on the last post. Could you please share me the command that you used on uuu?

Best regards.

0 Kudos

2,335 Views
stomczak
Contributor II

The last command I tried to load was "$ sudo uuu uuu.auto"

The load seemed to go fine.  I did notice that the u-boot environment varlables seem to be different.  My colleague has the same board, booting the factory installed image.  I compared his u-boot environment variables to mine.  Below are the differences. 

The first thing I noticed is that the board and board name differences.  Mine is labeled imx8mm_evk, EVK versus his which is imx8mm_ab2, AB2.  I did load the imx8mm_evk image and I haven't found an "AB2" image in the prebuilt software I downloaded.

4,5c4,5
< board=imx8mm_evk
< board_name=EVK
---
> board=imx8mm_ab2
> board_name=AB2
8c8
< boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr ${fdt_i
---
> boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr ${fdt_addr_r}; then bootefi $i
19c19
< bootcmd_mfg=run mfgtool_args;if iminfo ${initrd_addr}; then if test ${tee} = yes; then bootm ${tee_addr} ${initrd_addr};
---
> bootcmd_mfg=run mfgtool_args;if iminfo ${initrd_addr}; then if test ${tee} = yes; then bootm ${tee_addr} ${initrd_addr} ${fdt_addr}; else boot;
26c26
< bsp_bootcmd=echo Running BSP bootcmd ...; mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootsc;
---
> bsp_bootcmd=echo Running BSP bootcmd ...; mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadi;
32a33
> ethaddr=00:04:9f:06:75:26
38,39c39,40
< fdtcontroladdr=bacdaa90
< fdtfile=imx8mm-evk.dtb
---
> fdtcontroladdr=bdef45f0
> fdtfile=imx8mm-ab2-af-rpc.dtb
44,46c45,46
< jh_mmcboot=mw 0x303d0518 0xff; setenv fdtfile ${jh_root_dtb};setenv jh_clk clk_ignore_unused mem=1212MB; if run loadima
< jh_netboot=mw 0x303d0518 0xff; setenv fdtfile ${jh_root_dtb}; setenv jh_clk clk_ignore_unused mem=1212MB; run netboot;
< jh_root_dtb=imx8mm-evk-root.dtb
---
> jh_mmcboot=mw 0x303d0518 0xff;setenv jh_clk clk_ignore_unused mem=1340MB; if run loadimage; then run mmcboot; else run jh_netboot; fi;
> jh_netboot=run mii_100m; mw 0x303d0518 0xff; setenv jh_clk clk_ignore_unused mem=1340MB; run netboot;
48c48
< kernel_addr_r=0x40400000
---
> kernel_addr_r=0x40480000
50c50
< loadaddr=0x40400000
---
> loadaddr=0x40480000
53a54,72
> loadm4image=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${m4_image}
> loadm4nxhfw=imxtract ${loadaddr} ${m4_nxh_bin} ${m4_loadaddr}; imxtract ${loadaddr} ${m4_nxh_app} ${m4_nxh_app_loadaddr}; imxtract ${loadaddr}}
> m4_boot=no
> m4_fdt_file=imx8mm-ab2-m4.dtb
> m4_image=nxh3670.itb
> m4_loadaddr=0x80000000
> m4_nxh_app=app@1
> m4_nxh_app_loadaddr=0x81000000
> m4_nxh_bin=main@1
> m4_nxh_cf=cf@1
> m4_nxh_cf_loadaddr=0x81016000
> m4_nxh_data=data@1
> m4_nxh_data_loadaddr=0x8101E000
> m4_nxh_rfmac=rfmac@1
> m4_nxh_rfmac_loadaddr=0x81012000
> m4_sf_loadaddr=0x08100000
> m4boot=run loadm4image; run loadm4nxhfw; dcache flush; bootaux ${m4_loadaddr}
> m4boot_sf=sf probe 0:0; dcache flush; bootaux ${m4_sf_loadaddr}
> m4netboot=${get_cmd} ${loaddadr} ${m4_image}; run loadm4nxhfw; dcache flush; bootaux ${m4_loadaddr};
54a74
> mii_100m=mii write 0 9 0; mii write 0 0 1200; sleep 5
56c76
< mmcargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot}
---
> mmcargs=setenv bootargs ${jh_clk} console=${console} root=${mmcroot}
58c78
< mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fit} = yes || test ${boot_fit} = try; then bootm ${loada;
---
> mmcboot=echo Booting from mmc ...; run mmcargs; if test ${m4_boot} = yes || test ${m4_boot} = try; then echo Booting M4 aux core...; run m4boo;
63,70c83,89
< netargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},p
< netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd;
< prepare_mcore=setenv mcore_clk clk-imx8mm.mcore_booted;
< scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan;
< scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; fort
< scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:$e
< scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Founi
< scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${sce
---
> netargs=setenv bootargs ${jh_clk} console=${console} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
> netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; if test ${m4;
> scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run ;
> scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${dt
> scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${pree
> scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslii
> scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found e
73c92
< serial#=1d251a09dab44eb9
---
> serial#=17141209dab44eb9
76a96
> update_m4_from_sd=if sf probe 0:0; then if run loadm4image; then setexpr fw_sz ${filesize} + 0xffff; setexpr fw_sz ${fw_sz} / 0x10000; setexpri
80c100,101
< Environment size: 5266/16380 bytes
---
> Environment size: 6592/16380 bytes
> u-boot=>

0 Kudos

2,312 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

As you can see on i.MX Audio Board Hardware User's Guide, to update SOM it is with the corresponding EVK software, in this case with i.MX8M mini, the next we could debug is SOM ID Switches, MPU Boot Switches and CPLD Mode switches. Could you please send me your configurations? Meanwhile I am going to check your logs.

Best regards.

0 Kudos

2,300 Views
stomczak
Contributor II

Hi Jorge,

It looks like the DTB file is incorrect.  The one that got loaded in flash by the uuu.auto script was "imx8mm-evk.dtb" bu the original was "imx8mm-ab2-af-rpc.dtb".

The "fdtfile=imx8mm-ab2-af-rpc.dtb" file is not included in the prebuilt image package that I downloaded.  Can I download this device tree file seperately?

Thanks,

Steve

0 Kudos

2,277 Views
stomczak
Contributor II

Please find the Interposer board switch settings attached.  As for the CPLD dip switches, they are set to all OFF.

I discovered that there is a "imx8mm-lpddr4-ab2" machine configuration, that looks like it might be more appropriate for this audio board.  However, u-boot fails to build with this MACHINE name definition.  The following is the build error log:

| /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/scripts/check-of.sh .config /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/scripts/of_allowlist.txt
| aarch64-poky-linux-ld.bfd: lib/efi_loader/efi_firmware.o: in function `efi_fill_image_desc_array':
| /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:133: undefined reference to `update_info'
| aarch64-poky-linux-ld.bfd: lib/efi_loader/efi_firmware.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `update_info' which may bind externally can not be used when making a shared object; recompile with -fPIC
| /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:133:(.text.efi_firmware_raw_get_image_info+0x98): dangerous relocation: unsupported relocation
| aarch64-poky-linux-ld.bfd: /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:134: undefined reference to `num_image_type_guids'
| aarch64-poky-linux-ld.bfd: lib/efi_loader/efi_firmware.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `num_image_type_guids' which may bind externally can not be used when making a shared object; recompile with -fPIC
| /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:134:(.text.efi_firmware_raw_get_image_info+0x9c): dangerous relocation: unsupported relocation
| aarch64-poky-linux-ld.bfd: /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:133: undefined reference to `update_info'
| aarch64-poky-linux-ld.bfd: /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:134: undefined reference to `num_image_type_guids'
| aarch64-poky-linux-ld.bfd: /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:150: undefined reference to `num_image_type_guids'
| aarch64-poky-linux-ld.bfd: lib/efi_loader/efi_firmware.o: in function `set_dfu_alt_info':
| /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:40: undefined reference to `update_info'
| aarch64-poky-linux-ld.bfd: lib/efi_loader/efi_firmware.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `update_info' which may bind externally can not be used when making a shared object; recompile with -fPIC
| /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:40:(.text.set_dfu_alt_info+0x4): dangerous relocation: unsupported relocation
| aarch64-poky-linux-ld.bfd: /scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/lib/efi_loader/efi_firmware.c:40: undefined reference to `update_info'
| make[1]: Leaving directory '/scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/build/imx8mm_ab2_defconfig'
| make[1]: *** [/scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git/Makefile:1802: u-boot] Error 1
| make: *** [Makefile:177: sub-make] Error 2
| make: Leaving directory '/scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/bld-wayland/tmp/work/imx8mm_lpddr4_ab2-poky-linux/u-boot-imx/2022.04-r0/git'
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
ERROR: Task (/scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/sources/meta-imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2022.04.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3275 tasks of which 3230 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
/scratch/Oakhill-HSP/HSP/imx-5.15.52-2.1.0/sources/meta-imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2022.04.bb:do_compile
Summary: There were 2 ERROR messages, returning a non-zero exit code.

0 Kudos

2,266 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

Ok, some of your switch configurations are wrong if you are trying to boot with an iMX8M mini, please check attached images to use the correct one:

Note: 0 is off, 1 is on, x means don’t care (you are using the marked switch configurations).

Jorge7u7_0-1677281786645.png

CPLD Mode:

Jorge7u7_1-1677281809262.png

ID switches:

Jorge7u7_0-1677281838404.png

I researched for imx8mm-ab2-af-rpc.dtb and it is not provided by NXPs page, please share me your results after the modifications on switch configurations to see if we need to ask internally for an specific BSP for your board.

Best regards.

0 Kudos

2,244 Views
stomczak
Contributor II

Hi Jorge, I went through the switch settings and they all look correct to me according to what you sent.  However, there is no difference in the booting of the board.

Thanks,

Steve

0 Kudos

2,222 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello, 

Could you please share me the BSP version of the working board?

Best regards.

0 Kudos

2,220 Views
stomczak
Contributor II

[ 0.000000] Linux version 5.15.5-lts-next+g7864397f5c6b (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37.2]

"Welcome to NXP i.MX Release Distro 5.15-honister (honister)!"

"NXP i.MX Release Distro 5.15-honister imx8mmab2af ttymxc1"

2,209 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

Researching, imx8mm-ab2-af-rpc.dtb is for configure codec on audio board but, it is not on pre-build BSP image, maybe the name was changed, the next we can try is use someone of the next .dtb files:

- imx8mm-evk-ak4497.dtb: audio board ak4497 codec 

- imx8mm-evk-ak5558.dtb: audio board ak5558 codec 

- imx8mm-evk-audio-tdm.dtb: audio board TDM

Best regards.

0 Kudos

2,383 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello, 

Yes, that is the correct image.

Do you follow this post?

Flashing Linux BSP using UUU - NXP Community

Please try with the steps of the post.

Best regards.