Conflict with the M33 kernel on Linux version fsimx8ulp-Y2025.09-pre

  • Hello everyone,


    I ran into an issue after installing Linux version fsimx8ulp-Y2025.09-pre on the A35. When debugging applications for the M33 core via VS Code, I consistently hit a HardFault. This happens not only with projects that previously worked under the older Linux release, but also with the standard example projects.


    The HardFault occurs during the call from BOARD_BootClockRun → UPOWER_Init(NULL) (clock_config.c::251), specifically at the line: UPOWER_CheckReqWithArgs(UPWR_SG_EXCEPT, &sgf, &err, &ret, 0); (fsl_upower.c::227).


    I also noticed that if I flash the m33_image of the same test project using uuu, the M33 core debugging works fine. However, in that case new Linux fails to boot, i attached the log as files.


    My suspicion is that I might be using the wrong set of files when building mkimage. According to the Getting Started with MCUXpresso SDK for EVK-MIMX8MP guide (page 9, step 4), it says:


    "Get imx-mkimage, s400 firmware (mx8ulpa2-ahab-container.img), OP-TEE (tee.bin), upower firmware (upower.bin), uboot-spl (u-boot-spl.bin), uboot (u-boot.bin), and TF-A (bl31.bin) from the Linux release package."


    I am using the files from the latest Linux release, except for u-boot-spl.bin and u-boot.bin (since I couldn’t find them in the release package, I kept the older ones). Unfortunately, the behavior remains the same:


    Right after flashing, Linux boots, but M33 debugging fails with the HardFault mentioned above.


    If I flash only the M33 firmware via uuu, debugging works fine, but Linux does not fully start.


    Question: Could this be caused by a mismatch in the files used for mkimage? Or is there another root cause I should be looking into?

  • Hi Saturnion ,


    To me, it looks like another UART device is being configured in the log “fsimx8ulp-Y2025.09-pre Linux startup logs after flashing the M33 firmware (via uuu -b emmc flash.bin).txt”.


    The last lines of the output indicate this:

    Code
    1. 293a0000.serial: ttyLP0 at MMIO 0x293a0010 (irq = 17, base_baud = 1500000) is a FSL_LPUART
    2. 29860000.serial: ttyLP1 at MMIO 0x29860010 (irq = 18, base_baud = 3000000) is a FSL_LPUART
    3. printk: console [ttyLP1] enabled
    4. printk: bootconsole [lpuart32] disabled

    I would suggest checking the bootargs (Linux cmdline) in your U-Boot environment. For the console, it should look something like this:

    Code
    1. console=ttyLP0,115200


    Booth logs shows different configurations:


    Code
    1. Kernel command line: console=ttyLP0,115200 login_tty=ttyLP0,115200 root=/dev/mmc blk0p2 rootwait ro


    and

    Code
    1. Kernel command line: console=ttyLP1,115200 earlycon root=/dev/mmcblk0p2 rootwait


    I would also recommend to use the files nboot.fs und uboot.fs as bootfw of our release.
    You can use the Tool FSInstaller to flash the Images.


    With our Boot-FW, you would have the correct U-Boot environments per default.


    And also i would recommend to use our production-ready release fsimx8ulp-Y2025.11 😊

    The HardFault occurs during the call from BOARD_BootClockRun → UPOWER_Init(NULL) (clock_config.c::251), specifically at the line: UPOWER_CheckReqWithArgs(UPWR_SG_EXCEPT, &sgf, &err, &ret, 0); (fsl_upower.c::227).

    I am not aware of any problems with the M33 image in combination with upower_init().


    However, I had the same problem with the UPOWER_PowerOnADInPDMode() call, more specifically with the upwr_xcp_set_rtd_apd_llwu() API call.

    Here, I also got no response with UPOWER_CheckReqWithArgs() and encountered a DEADLOCK.


    In my case, I was able to solve the problem by setting a timeout (number of attempts).

    Perhaps this solution could help you as a workaround for your problem.


    Feel free to use my patch as a guide:

    https://github.com/FSEmbedded/…er-prevent-deadlock.patch

    I would also recommend to use the FW-Files comming with our Yocto-Build. If you bould our Yocto, you will find all Bootfiles like UPOWER, ELE-FW, etc in your deploy dir:

    <yocto-build-dir>/tmp/deploy/fsimx8ulp/images/Firmware/NXP-Firmware



    I hope I've been able to help you so far. Should you have any further questions, please do not hesitate to contact us :).

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.