Uefi assert and broken again

之前提过一个topic :
Device can not boot up ,stuck in uefi:ASSERT [FvbNorFlashStandaloneMm] /out/nvidia/optee.t234-uefi/StandaloneMmOptee_ - Jetson & Embedded Systems / Jetson AGX Orin - NVIDIA Developer Forums

当时反馈说是2024.06的版本已经合入相应patch修复掉assert,目前我们已经更新到最新202408的版本但是仍然出现了该问题,现在我发现之前反馈的日志就是202406的版本,目前的202408的日志如下:

log.txt (47.9 KB)


ASSERT [FvbNorFlashStandaloneMm] /out/nvidia/optee.t234-uefi/StandaloneMmOptee_RELEASE/edk2-nvidia/Silicon/NVIDIA/Drivers/FvbNorFlashDxe/FvbNorFlashStandaloneMm.c(937): ((BOOLEAN)(0==1))

Hi wpceswpces,

We found that is different assertion issue in UEFI.

For this assertion issue, please apply the patch in Varint readfix by gmahadevan · Pull Request #110 · NVIDIA/edk2-nvidia and update tos image to apply the change.

Hello KevinFFF , thank you for your reply.
but i wonder why they are different assertion issues,i found the log the same as before at all …

can i just apply the patch code to my uefi(2024.08)manually ,my l4t version is r36.3.0

Sorry that was our fault that we thought they are the same assertion issue before.

Yes, you can also apply the patch to your r36.3.0 BSP.

Please refer to the following steps to update tos image rather than uefi_jetson.bin
(i.e. the change is included in tos image.)

Step 1. apply the patch(https://github.com/NVIDIA/edk2-nvidia/pull/110/commits/8d0b58c5374f24ebaffe8472a0956354cd725f25) to UEFI source

Step 2. run the following command to build uefi_StandaloneMmOptee_RELEASE.bin
$ edk2_docker edk2-nvidia/Platform/NVIDIA/StandaloneMmOptee/build.sh

Step 3. refer to the steps in atf_and_optee_README.txt to build tos image (<Linux_for_Tegra>/bootloader/tos-optee_t234.img)

Step 4. flash the QSPI only to apply the change
$ sudo ./flash.sh -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit mmcblk0p1
1 Like

Hi,KevinFFF,
i’m glad to receive your reply.
Actually i apply the patch to my uefi source and use the edk2-nvidia/Platform/NVIDIA/JETSON/build.sh to rebuild the uefi_jetson.bin and update it to my device yesterday .
Am i must to rebuild the tos image (only the tos image has the change or uefi_jetshon.bin include tos image)? or they both can take affects ?
i build uefi without docker.

Yes, the fix is included in tos image rather than UEFI binary.
Please refer to the above steps to apply the change.

Hello,KevinFFF
i follow the steps above but when i run the ./nv_public_src_build.sh ,it report a error as follows:

  LD [M]  sound/soc/qcom/snd-soc-sdm845.ko
  LD [M]  sound/soc/qcom/snd-soc-sm8250.ko
  LD [M]  sound/soc/rockchip/snd-soc-rk3399-gru-sound.ko
  LD [M]  sound/soc/rockchip/snd-soc-rockchip-i2s.ko
  LD [M]  sound/soc/rockchip/snd-soc-rockchip-pcm.ko
  LD [M]  sound/soc/rockchip/snd-soc-rockchip-rt5645.ko
  LD [M]  sound/soc/rockchip/snd-soc-rockchip-spdif.ko
  LD [M]  sound/soc/sh/rcar/snd-soc-rcar.ko
  LD [M]  sound/soc/sunxi/sun4i-i2s.ko
  LD [M]  sound/soc/sunxi/sun4i-spdif.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra-audio-graph-card.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra-pcm.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra186-asrc.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra186-dspk.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-admaif.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-adx.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-ahub.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-amx.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-dmic.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-i2s.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-mixer.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-mvc.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-ope.ko
  LD [M]  sound/soc/tegra/snd-soc-tegra210-sfc.ko
================================================================================
Kernel Image: /home/wpces/Downloads/Linux_for_Tegra/source/src_out/kernel_src_build/kernel_out/kernel/kernel-jammy-src/arch/arm64/boot/Image
Kernel sources compiled successfully.
================================================================================
make: Leaving directory '/home/wpces/Downloads/Linux_for_Tegra/source/src_out/kernel_src_build/kernel_out/kernel'
Kernel sources compiled successfully.
Directory "nvethernetrm" is not found, exiting..
root@wpces-virtual-machine:/home/wpces/Downloads/Linux_for_Tegra/source# find src_out/ -name bl31.bin
src_out/atf_src_build/arm-trusted-firmware/t234-t194/tegra/t194/release/bl31.bin
src_out/atf_src_build/arm-trusted-firmware/t234-t234/tegra/t234/release/bl31.bin

i find another topic similar with my:
OP-TEE setup questions for the atf_and_optee_README.txt - Jetson & Embedded Systems / Jetson AGX Orin - NVIDIA Developer Forums


but the difference is i can find the bl31.bin
image

why it report Directory “nvethernetrm” is not found, exiting… ?

otherwise , i find i have these three files which gen_tos_part_img.py needs :


but their directory is different from gen_tos_part_img.py will use(i don not have atf_build directory etc…) ,
Can i just set to my file path ?

./gen_tos_part_img.py
–monitor ./atf_build/arm-trusted-firmware/build/tegra/t/release/bl31.bin
–os ./optee/build/t/core/tee-raw.bin
–dtb ./optee/tegra-optee.dtb
–tostype optee
./tos.img

to like this:

./gen_tos_part_img.py --monitor …/…/source/src_out/atf_src_build/arm-trusted-firmware/t234-t234/tegra/t234/release/bl31.bin --os …/…/source/tegra/optee-src/nv-optee/optee/build/t234/core/tee-raw.bin --dtb …/…/source/tegra/optee-src/nv-optee/optee/tegra234-optee.dtb --tostype optee ./tos.img

and then i got these :


How can i make sure if i have generated the tos.img successfully or not ?

Hi KevinFFF,

Do we need this patch for r36.4.0?

Thank you

Hi Brian:
Yes. Jetpack 6.1 will still hit the issue.

1 Like

hello wpceswpces,

it should be linkage issue,
in my experience, there should be a soft link within nvidia-oot,
please examine the folder as following…

$ ll ~/L4T/t234/r36.x/kernel/nvidia-oot/drivers/net/ethernet/nvidia/nvethernet
total 536
...
lrwxrwxrwx 1 jerry jerry     30 May  3 16:51 nvethernetrm -> ../../../../../../nvethernetrm/

may I know how you sync the source code?
please check the script file if you’re using source_sync.sh,
for instance, did you had this line?
ln -sf ../../../../../../nvethernetrm nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/nvethernetrm

Hello,JerryChang
i use the source_sync.sh, and it has the following line :


i try to do that manually.
i have the nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/nvethernetrm directory
image
but i don not have the direcotry :
…/…/…/…/…/…/nvethernetrm
i find it has beyond the root directory scope(seven level my Linux_for_Tegra/source have only five level)

hello wpceswpces,

may I know what’s blocking now?

although there’s "nvethernetrm" is not found error, it seems kernel has compiled successfully, right?
if yes, let’s ignore that at the moment.

yes , kernel can compiled successfully,but when i make the tos.img with the gen_tos_part_img.py in the directory <Linux_for_Tegra>/nv_tegra/tos-scripts/
i can not find bl31.bin、tee-raw.bin、tegrat234-optee.dtb in the directory of <Linux_for_Tegra>/nv_tegra/tos-scripts/
like this :
./gen_tos_part_img.py
–monitor ./atf_build/arm-trusted-firmware/build/tegra/t/release/bl31.bin
–os ./optee/build/t/core/tee-raw.bin
–dtb ./optee/tegra-optee.dtb
–tostype optee
./tos.img

my file is in other directory like this :

./gen_tos_part_img.py --monitor …/…/source/src_out/atf_src_build/arm-trusted-firmware/t234-t234/tegra/t234/release/bl31.bin --os …/…/source/tegra/optee-src/nv-optee/optee/build/t234/core/tee-raw.bin --dtb …/…/source/tegra/optee-src/nv-optee/optee/tegra234-optee.dtb --tostype optee ./tos.img

and then i can get the tos.img


Am i right ? i can not make sure if i have generated the tos.img successfully or not
or how can i find the log i have apply the patch ?

hello wpceswpces,

I see.
please aware those build steps as mentioned by Topic 294046 were based-on [Driver Package (BSP) Sources] you’ve downloaded from Jetson Linux Archive.

ok ,JerryChang

when i change to use the nv_public_src_build_tos.sh , it runs without errors anymore.



i get the tos-t234.img,i will flash it to device to verify assert issue above. thank you very much .

Hi,
Sorry to ask again.
Could you please clarify if this is required for Jetpack 5.1.4 (R35.6.0)?

Thank you

Yes, this fix has not been included in any release.
Please apply the change manually and it should be included in next release.