LS1046A Custom Board -image built with FlexBuild hangs at psci: probing for conduit method from DT.

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

LS1046A Custom Board -image built with FlexBuild hangs at psci: probing for conduit method from DT.

496 Views
muslum11
Contributor I

Hello,

I am working on a custom board based on the LS1046A and I am experiencing a boot issue with a Debian image generated using FlexBuild.

As a first step, I built the default LS1046AFRWY BSP without making any modifications and tested it on my custom board. During kernel boot, the system always hangs after printing:

psci: probing for conduit method from DT.

There is no kernel panic or exception; the system simply stops at this point.

I found the following NXP forum thread describing a very similar issue:

https://community.nxp.com/t5/Layerscape/LS1043A-RDB-Linux-Hangs-At-PSCI/td-p/750075

As a temporary workaround, I can boot Linux manually from U-Boot using the following commands. However, the kernel only boots successfully when I limit the available memory to 1982 MB using the "mem=" boot argument. If I increase this value, the kernel hangs again (sometimes at different points during boot).

mmc dev 0

part uuid mmc 0:3 partuuidr

load mmc 0:1 0x81000000 Image

load mmc 0:1 0x90000000 fsl-ls1046a-frwy-sdk.dtb

setenv bootargs "console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 root=PARTUUID=${partuuidr} rw rootwait mem=1982M"

booti 0x81000000 - 0x90000000

Test environment:

  • SoC: LS1046A
  • DDR: IS43/46QR16512A (4 GB DDR4)
  • Boot media: SD Card
  • BSP: FlexBuild (LSDK 25.12)

To rule out a FlexBuild-specific issue, I also built a completely new BSP using Yocto (YP 6.0 / lf-6.18.20) and tested it on the same hardware.

The result is exactly the same. The kernel again hangs after printing:

psci: probing for conduit method from DT.

The relevant part of the bdinfo output is shown below:

DRAM bank 0

  • Start: 0x80000000
  • Size : 0x7be00000

DRAM bank 1

  • Start: 0x880000000
  • Size : 0x80000000

LMB memory regions:

memory[0] : 0x80000000 - 0xfbdfffff

memory[1] : 0x880000000 - 0x8ffffffff

reserved[0] : 0xfac154c0 - 0xfbdfffff

reserved[1] : 0x8ffff5000 - 0x8ffffffff

Has anyone encountered a similar issue or have any suggestions on what I should investigate next?

Any advice would be greatly appreciated.

Labels (1)
0 Kudos
Reply
2 Replies

469 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

Root Cause — BL31 Memory Collision

The LS1046A boot flow is:

Boot ROM → BL2 (DDR Init) → BL31 (stays resident in DRAM) → U-Boot → Linux
 
 

BL31 remains permanently resident in DRAM and handles all SMC calls (PSCI: psci_get_version, CPU on/off, etc.). Its typical placement is near top-of-RAM minus ~10 MiB, with a size of up to 2 MiB.

 

When Linux boots with the full 4 GB DDR map, it allocates pages that physically overlap BL31's region. The first PSCI SMC call (psci_get_version) jumps into now-corrupted memory and the system hangs — with no panic, no exception, just silence.

Your bdinfo output confirms the exact pattern — DDR Bank 1 ends at 0x8FFFFFFFF, and BL31 is at approximately RAM_END - 10 MiB = 0x8FF600000:

DDR Bank Start End Notes
Bank 0 0x80000000 0xFBDFFFFF ~1982 MiB — your working mem= limit
Bank 1 0x880000000 0x8FFFFFFFF 2 GB high bank — BL31 lives here

The mem=1982M workaround keeps Linux within Bank 0, never touching Bank 1 where BL31 resides — which is precisely why it works.


Fix — Reserve BL31 Memory in the Device Tree

The correct permanent fix is to add a reserved-memory node to your DTS marking BL31's region as off-limits to the Linux memory allocator.

Step 1: Find where BL31 is loaded

Check your ATF build configuration (plat/nxp/soc-ls1046a/.../platform_def.h) for BL31_BASE and BL31_SIZE. For LSDK/lf-6.x with the FRWY BSP, the typical placement is:

BL31_BASE = 0x8FF80000   (top of high DDR bank minus ~512 KB to 2 MB)
BL31_SIZE = max 2 MiB
 
 

You can confirm at runtime by checking U-Boot output or the ATF build log for BL31: v2.x... Entry point address = ....

Step 2: Add the reserved-memory node to your DTS

In your board DTS file (based on fsl-ls1046a-frwy-sdk.dts), add:

/ {
    reserved-memory {
        #address-cells = <2>;
        #size-cells = <2>;
        ranges;

        /* Reserve BL31 runtime region — adjust addresses to match your ATF build */
        bl31_reserved: bl31@8ff600000 {
            reg = <0x8 0xff600000 0x0 0x00200000>; /* 2 MiB at RAM_END - 10 MiB */
            no-map;
        };
    };
};
dts
 

Adjust 0x8ff600000 and size 0x200000 to match your actual BL31 load address from the ATF build.

Step 3: Rebuild and test with full memory

After adding the reservation, rebuild the DTB and boot without the mem= workaround. The kernel will skip that region, BL31 remains intact, and PSCI will function correctly.


 

Regards


412 Views
muslum11
Contributor I
Hello,

I tried the suggested solution, but unfortunately it did not resolve the issue.

First, I verified the BL31 address from the TF-A (ATF) build:

- BL31_BASE = 0xFBE00000
- BL31_SIZE = 0x200000 (2 MiB)

Next, I added a "reserved-memory" node to the Device Tree to reserve the BL31 runtime region and rebuilt the DTB.

After that, I booted the system again without the "mem=1982M" boot parameter. However, the system still hangs at the same point.
0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2400525%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ELS1046A%20Custom%20Board%20-image%20built%20with%20FlexBuild%20hangs%20at%20psci%3A%20probing%20for%20conduit%20method%20from%20DT.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2400525%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EHello%2C%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EI%20am%20working%20on%20a%20custom%20board%20based%20on%20the%20LS1046A%20and%20I%20am%20experiencing%20a%20boot%20issue%20with%20a%20Debian%20image%20generated%20using%20FlexBuild.%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EAs%20a%20first%20step%2C%20I%20built%20the%20default%20LS1046AFRWY%20BSP%20without%20making%20any%20modifications%20and%20tested%20it%20on%20my%20custom%20board.%20During%20kernel%20boot%2C%20the%20system%20always%20hangs%20after%20printing%3A%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Epsci%3A%20probing%20for%20conduit%20method%20from%20DT.%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EThere%20is%20no%20kernel%20panic%20or%20exception%3B%20the%20system%20simply%20stops%20at%20this%20point.%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EI%20found%20the%20following%20NXP%20forum%20thread%20describing%20a%20very%20similar%20issue%3A%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FLayerscape%2FLS1043A-RDB-Linux-Hangs-At-PSCI%2Ftd-p%2F750075%22%20target%3D%22_blank%22%3E%3CSPAN%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2FLayerscape%2FLS1043A-RDB-Linux-Hangs-At-PSCI%2Ftd-p%2F750075%3C%2FSPAN%3E%3C%2FA%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EAs%20a%20temporary%20workaround%2C%20I%20can%20boot%20Linux%20manually%20from%20U-Boot%20using%20the%20following%20commands.%20However%2C%20the%20kernel%20only%20boots%20successfully%20when%20I%20limit%20the%20available%20memory%20to%201982%20MB%20using%20the%20%22mem%3D%22%20boot%20argument.%20If%20I%20increase%20this%20value%2C%20the%20kernel%20hangs%20again%20(sometimes%20at%20different%20points%20during%20boot).%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Emmc%20dev%200%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Epart%20uuid%20mmc%200%3A3%20partuuidr%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Eload%20mmc%200%3A1%200x81000000%20Image%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Eload%20mmc%200%3A1%200x90000000%20fsl-ls1046a-frwy-sdk.dtb%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Esetenv%20bootargs%20%22console%3DttyS0%2C115200%20earlycon%3Duart8250%2Cmmio%2C0x21c0500%20root%3DPARTUUID%3D%24%7Bpartuuidr%7D%20rw%20rootwait%20mem%3D1982M%22%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Ebooti%200x81000000%20-%200x90000000%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3ETest%20environment%3A%3C%2FSPAN%3E%3C%2FP%3E%3CUL%3E%3CLI%3E%3CSPAN%3ESoC%3A%20LS1046A%3C%2FSPAN%3E%3C%2FLI%3E%3CLI%3E%3CSPAN%3EDDR%3A%20IS43%2F46QR16512A%20(4%20GB%20DDR4)%3C%2FSPAN%3E%3C%2FLI%3E%3CLI%3E%3CSPAN%3EBoot%20media%3A%20SD%20Card%3C%2FSPAN%3E%3C%2FLI%3E%3CLI%3E%3CSPAN%3EBSP%3A%20FlexBuild%20(LSDK%2025.12)%3C%2FSPAN%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%20class%3D%22%22%3E%3CSPAN%3ETo%20rule%20out%20a%20FlexBuild-specific%20issue%2C%20I%20also%20built%20a%20completely%20new%20BSP%20using%20Yocto%20(YP%206.0%20%2F%20lf-6.18.20)%20and%20tested%20it%20on%20the%20same%20hardware.%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EThe%20result%20is%20exactly%20the%20same.%20The%20kernel%20again%20hangs%20after%20printing%3A%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Epsci%3A%20probing%20for%20conduit%20method%20from%20DT.%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EThe%20relevant%20part%20of%20the%20%3C%2FSPAN%3E%3CSPAN%3Ebdinfo%3C%2FSPAN%3E%3CSPAN%3E%20output%20is%20shown%20below%3A%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EDRAM%20bank%200%3C%2FSPAN%3E%3C%2FP%3E%3CUL%3E%3CLI%3E%3CSPAN%3EStart%3A%200x80000000%3C%2FSPAN%3E%3C%2FLI%3E%3CLI%3E%3CSPAN%3ESize%20%3A%200x7be00000%3C%2FSPAN%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EDRAM%20bank%201%3C%2FSPAN%3E%3C%2FP%3E%3CUL%3E%3CLI%3E%3CSPAN%3EStart%3A%200x880000000%3C%2FSPAN%3E%3C%2FLI%3E%3CLI%3E%3CSPAN%3ESize%20%3A%200x80000000%3C%2FSPAN%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%20class%3D%22%22%3E%3CSPAN%3ELMB%20memory%20regions%3A%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Ememory%3CSPAN%20class%3D%22%22%3E%5B0%5D%3C%2FSPAN%3E%20%3A%200x80000000%20-%200xfbdfffff%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Ememory%3CSPAN%20class%3D%22%22%3E%5B1%5D%3C%2FSPAN%3E%20%3A%200x880000000%20-%200x8ffffffff%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Ereserved%3CSPAN%20class%3D%22%22%3E%5B0%5D%3C%2FSPAN%3E%20%3A%200xfac154c0%20-%200xfbdfffff%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3Ereserved%3CSPAN%20class%3D%22%22%3E%5B1%5D%3C%2FSPAN%3E%20%3A%200x8ffff5000%20-%200x8ffffffff%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3E%3CSPAN%3EHas%20anyone%20encountered%20a%20similar%20issue%20or%20have%20any%20suggestions%20on%20what%20I%20should%20investigate%20next%3F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EAny%20advice%20would%20be%20greatly%20appreciated.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2400525%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EQorIQ%20LS1%20Devices%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2400614%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20LS1046A%20Custom%20Board%20-image%20built%20with%20FlexBuild%20hangs%20at%20psci%3A%20probing%20for%20conduit%20method%20from%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2400614%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%2C%3C%2FP%3E%0A%3CH3%20class%3D%22_9k2iva0%20p8i6j0c%20_1ibi0s314%20heading3%20_9k2iva1%22%20id%3D%22toc-hId-2054946488%22%20id%3D%22toc-hId-2054947670%22%20id%3D%22toc-hId-2054947670%22%3ERoot%20Cause%20%E2%80%94%20BL31%20Memory%20Collision%3C%2FH3%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3EThe%20LS1046A%20boot%20flow%20is%3A%3C%2FP%3E%0A%3CDIV%20class%3D%22l8rrz21%20_1ibi0s3en%22%20data-ui-element%3D%22code-block-container%22%3E%0A%3CPRE%3E%3CCODE%20class%3D%22p8i6j0e%20hljs%20_12n1b832%22%3EBoot%20ROM%20%E2%86%92%20BL2%20(DDR%20Init)%20%E2%86%92%20BL31%20(stays%20resident%20in%20DRAM)%20%E2%86%92%20U-Boot%20%E2%86%92%20Linux%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CDIV%20class%3D%22l8rrz23%20_1ibi0s3dp%20_1ibi0s332%20_1ibi0s3eo%20_1ibi0s3bm%20_1ibi0s3ce%22%3E%0A%3CDIV%20class%3D%22l8rrz25%20_1ibi0s3eb%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%20class%3D%22lqznwq0%22%20style%3D%22mask-image%3A%20url('%2Fimages%2Fcopy.svg')%3B%20vertical-align%3A%20text-bottom%3B%20height%3A%2014px%3B%20min-width%3A%2014px%3B%20width%3A%2014px%3B%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3E%3CSTRONG%3EBL31%20remains%20permanently%20resident%20in%20DRAM%3C%2FSTRONG%3E%20and%20handles%20all%20SMC%20calls%20(PSCI%3A%20%3CCODE%20class%3D%22p8i6j0f%22%3Epsci_get_version%3C%2FCODE%3E%2C%20CPU%20on%2Foff%2C%20etc.).%20Its%20typical%20placement%20is%20near%20%3CSTRONG%3Etop-of-RAM%20minus%20~10%20MiB%3C%2FSTRONG%3E%2C%20with%20a%20size%20of%20up%20to%20%3CSTRONG%3E2%20MiB%3C%2FSTRONG%3E.%3C%2FP%3E%0A%3CDIV%20class%3D%22tk0j8o1%20_1ibi0s31a%20_1ibi0s3en%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3EWhen%20Linux%20boots%20with%20the%20full%204%20GB%20DDR%20map%2C%20it%20allocates%20pages%20that%20physically%20overlap%20BL31's%20region.%20The%20first%20PSCI%20SMC%20call%20(%3CCODE%20class%3D%22p8i6j0f%22%3Epsci_get_version%3C%2FCODE%3E)%20jumps%20into%20now-corrupted%20memory%20and%20the%20system%20hangs%20%E2%80%94%20with%20no%20panic%2C%20no%20exception%2C%20just%20silence.%3C%2FP%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3EYour%20%3CCODE%20class%3D%22p8i6j0f%22%3Ebdinfo%3C%2FCODE%3E%20output%20confirms%20the%20exact%20pattern%20%E2%80%94%20DDR%20Bank%201%20ends%20at%20%3CCODE%20class%3D%22p8i6j0f%22%3E0x8FFFFFFFF%3C%2FCODE%3E%2C%20and%20BL31%20is%20at%20approximately%20%3CCODE%20class%3D%22p8i6j0f%22%3ERAM_END%20-%2010%20MiB%20%3D%200x8FF600000%3C%2FCODE%3E%3A%3C%2FP%3E%0A%3CDIV%20class%3D%22_1ibi0s34s%20_1ibi0s342%20_1ibi0s3en%22%20data-ui-element%3D%22chat-assistant-markdown-table%22%3E%0A%3CDIV%20class%3D%22_1p3yljh0%20_5zr0qv3%20_1ibi0s3db%20_1ibi0s3eg%22%3E%0A%3CDIV%20class%3D%22_1p3yljh3%22%3E%0A%3CTABLE%20class%3D%22_1p3yljh2%20_1p3yljh1%22%3E%0A%3CTHEAD%3E%0A%3CTR%3E%0A%3CTH%20class%3D%22_1p3yljh5%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3EDDR%20Bank%3C%2FTH%3E%0A%3CTH%20class%3D%22_1p3yljh5%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3EStart%3C%2FTH%3E%0A%3CTH%20class%3D%22_1p3yljh5%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3EEnd%3C%2FTH%3E%0A%3CTH%20class%3D%22_1p3yljh5%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3ENotes%3C%2FTH%3E%0A%3C%2FTR%3E%0A%3C%2FTHEAD%3E%0A%3CTBODY%3E%0A%3CTR%3E%0A%3CTD%20class%3D%22_1p3yljh6%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3EBank%200%3C%2FTD%3E%0A%3CTD%20class%3D%22_1p3yljh6%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3E%3CCODE%20class%3D%22p8i6j0f%22%3E0x80000000%3C%2FCODE%3E%3C%2FTD%3E%0A%3CTD%20class%3D%22_1p3yljh6%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3E%3CCODE%20class%3D%22p8i6j0f%22%3E0xFBDFFFFF%3C%2FCODE%3E%3C%2FTD%3E%0A%3CTD%20class%3D%22_1p3yljh6%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3E~1982%20MiB%20%E2%80%94%20%3CSTRONG%3Eyour%20working%20%3CCODE%20class%3D%22p8i6j0f%22%3Emem%3D%3C%2FCODE%3E%20limit%3C%2FSTRONG%3E%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%20class%3D%22_1p3yljh6%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3EBank%201%3C%2FTD%3E%0A%3CTD%20class%3D%22_1p3yljh6%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3E%3CCODE%20class%3D%22p8i6j0f%22%3E0x880000000%3C%2FCODE%3E%3C%2FTD%3E%0A%3CTD%20class%3D%22_1p3yljh6%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3E%3CCODE%20class%3D%22p8i6j0f%22%3E0x8FFFFFFFF%3C%2FCODE%3E%3C%2FTD%3E%0A%3CTD%20class%3D%22_1p3yljh6%20_1p3yljh4%22%20style%3D%22text-align%3A%20initial%3B%22%3E2%20GB%20high%20bank%20%E2%80%94%20BL31%20lives%20here%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3C%2FTBODY%3E%0A%3C%2FTABLE%3E%0A%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3EThe%20%3CCODE%20class%3D%22p8i6j0f%22%3Emem%3D1982M%3C%2FCODE%3E%20workaround%20keeps%20Linux%20within%20Bank%200%2C%20never%20touching%20Bank%201%20where%20BL31%20resides%20%E2%80%94%20which%20is%20precisely%20why%20it%20works.%3C%2FP%3E%0A%3CHR%20%2F%3E%0A%3CH3%20class%3D%22_9k2iva0%20p8i6j0c%20_1ibi0s314%20heading3%20_9k2iva1%22%20id%3D%22toc-hId-247492025%22%20id%3D%22toc-hId-247493207%22%20id%3D%22toc-hId-247493207%22%3EFix%20%E2%80%94%20Reserve%20BL31%20Memory%20in%20the%20Device%20Tree%3C%2FH3%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3E%3CSTRONG%3EThe%20correct%20permanent%20fix%20is%20to%20add%20a%20%3CCODE%20class%3D%22p8i6j0f%22%3Ereserved-memory%3C%2FCODE%3E%20node%20to%20your%20DTS%3C%2FSTRONG%3E%20marking%20BL31's%20region%20as%20off-limits%20to%20the%20Linux%20memory%20allocator.%3C%2FP%3E%0A%3CH4%20class%3D%22_9k2iva0%20p8i6j0c%20_1ibi0s314%20heading4%20_9k2iva1%22%20id%3D%22toc-hId-938053499%22%20id%3D%22toc-hId-938054681%22%20id%3D%22toc-hId-938054681%22%3EStep%201%3A%20Find%20where%20BL31%20is%20loaded%3C%2FH4%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3ECheck%20your%20ATF%20build%20configuration%20(%3CCODE%20class%3D%22p8i6j0f%22%3Eplat%2Fnxp%2Fsoc-ls1046a%2F...%2Fplatform_def.h%3C%2FCODE%3E)%20for%20%3CCODE%20class%3D%22p8i6j0f%22%3EBL31_BASE%3C%2FCODE%3E%20and%20%3CCODE%20class%3D%22p8i6j0f%22%3EBL31_SIZE%3C%2FCODE%3E.%20For%20LSDK%2Flf-6.x%20with%20the%20FRWY%20BSP%2C%20the%20typical%20placement%20is%3A%3C%2FP%3E%0A%3CDIV%20class%3D%22l8rrz21%20_1ibi0s3en%22%20data-ui-element%3D%22code-block-container%22%3E%0A%3CPRE%3E%3CCODE%20class%3D%22p8i6j0e%20hljs%20language-makefile%20_12n1b832%22%3EBL31_BASE%20%3D%200x8FF80000%20%20%20(top%20of%20high%20DDR%20bank%20minus%20~512%20KB%20to%202%20MB)%0ABL31_SIZE%20%3D%20max%202%20MiB%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CDIV%20class%3D%22l8rrz23%20_1ibi0s3dp%20_1ibi0s332%20_1ibi0s3eo%20_1ibi0s3bm%20_1ibi0s3ce%22%3E%0A%3CDIV%20class%3D%22l8rrz25%20_1ibi0s3eb%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%20class%3D%22lqznwq0%22%20style%3D%22mask-image%3A%20url('%2Fimages%2Fcopy.svg')%3B%20vertical-align%3A%20text-bottom%3B%20height%3A%2014px%3B%20min-width%3A%2014px%3B%20width%3A%2014px%3B%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3EYou%20can%20confirm%20at%20runtime%20by%20checking%20U-Boot%20output%20or%20the%20ATF%20build%20log%20for%20%3CCODE%20class%3D%22p8i6j0f%22%3EBL31%3A%20v2.x...%20Entry%20point%20address%20%3D%20...%3C%2FCODE%3E.%3C%2FP%3E%0A%3CH4%20class%3D%22_9k2iva0%20p8i6j0c%20_1ibi0s314%20heading4%20_9k2iva1%22%20id%3D%22toc-hId--869400964%22%20id%3D%22toc-hId--869399782%22%20id%3D%22toc-hId--869399782%22%3EStep%202%3A%20Add%20the%20reserved-memory%20node%20to%20your%20DTS%3C%2FH4%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3EIn%20your%20board%20DTS%20file%20(based%20on%20%3CCODE%20class%3D%22p8i6j0f%22%3Efsl-ls1046a-frwy-sdk.dts%3C%2FCODE%3E)%2C%20add%3A%3C%2FP%3E%0A%3CDIV%20class%3D%22l8rrz21%20_1ibi0s3en%22%20data-ui-element%3D%22code-block-container%22%3E%0A%3CPRE%3E%3CCODE%20class%3D%22markdown-code-dts%20p8i6j0e%20hljs%20language-dts%20_12n1b832%22%3E%2F%20%7B%0A%20%20%20%20reserved-memory%20%7B%0A%20%20%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-meta%22%3E%23address-cells%20%3D%20%3CSPAN%20class%3D%22hljs-string%22%3E%26lt%3B2%26gt%3B%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%0A%20%20%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-meta%22%3E%23size-cells%20%3D%20%3CSPAN%20class%3D%22hljs-string%22%3E%26lt%3B2%26gt%3B%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%0A%20%20%20%20%20%20%20%20ranges%3B%0A%0A%20%20%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-comment%22%3E%2F*%20Reserve%20BL31%20runtime%20region%20%E2%80%94%20adjust%20addresses%20to%20match%20your%20ATF%20build%20*%2F%3C%2FSPAN%3E%0A%20%20%20%20%20%20%20%20bl31_reserved%3A%20bl31%40%3CSPAN%20class%3D%22hljs-number%22%3E8%3C%2FSPAN%3Eff600000%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20reg%20%3D%20%26lt%3B%3CSPAN%20class%3D%22hljs-number%22%3E0x8%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22hljs-number%22%3E0xff600000%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22hljs-number%22%3E0x0%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22hljs-number%22%3E0x00200000%3C%2FSPAN%3E%26gt%3B%3B%20%3CSPAN%20class%3D%22hljs-comment%22%3E%2F*%202%20MiB%20at%20RAM_END%20-%2010%20MiB%20*%2F%3C%2FSPAN%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20no-map%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%3B%0A%7D%3B%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CDIV%20class%3D%22l8rrz23%20_1ibi0s3dp%20_1ibi0s332%20_1ibi0s3eo%20_1ibi0s3bm%20_1ibi0s3ce%22%3E%0A%3CDIV%20class%3D%22l8rrz25%20_1ibi0s3eb%22%3Edts%3C%2FDIV%3E%0A%3CDIV%20class%3D%22lqznwq0%22%20style%3D%22mask-image%3A%20url('%2Fimages%2Fcopy.svg')%3B%20vertical-align%3A%20text-bottom%3B%20height%3A%2014px%3B%20min-width%3A%2014px%3B%20width%3A%2014px%3B%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3CBLOCKQUOTE%20class%3D%22p8i6j03%22%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3EAdjust%20%3CCODE%20class%3D%22p8i6j0f%22%3E0x8ff600000%3C%2FCODE%3E%20and%20size%20%3CCODE%20class%3D%22p8i6j0f%22%3E0x200000%3C%2FCODE%3E%20to%20match%20your%20actual%20BL31%20load%20address%20from%20the%20ATF%20build.%3C%2FP%3E%0A%3C%2FBLOCKQUOTE%3E%0A%3CH4%20class%3D%22_9k2iva0%20p8i6j0c%20_1ibi0s314%20heading4%20_9k2iva1%22%20id%3D%22toc-hId-1618111869%22%20id%3D%22toc-hId-1618113051%22%20id%3D%22toc-hId-1618113051%22%3EStep%203%3A%20Rebuild%20and%20test%20with%20full%20memory%3C%2FH4%3E%0A%3CP%20class%3D%22p8i6j01%20paragraph%22%3EAfter%20adding%20the%20reservation%2C%20rebuild%20the%20DTB%20and%20boot%20%3CSTRONG%3Ewithout%3C%2FSTRONG%3E%20the%20%3CCODE%20class%3D%22p8i6j0f%22%3Emem%3D%3C%2FCODE%3E%20workaround.%20The%20kernel%20will%20skip%20that%20region%2C%20BL31%20remains%20intact%2C%20and%20PSCI%20will%20function%20correctly.%3C%2FP%3E%0A%3CHR%20%2F%3E%0A%3CDIV%20class%3D%22tk0j8o1%20_1ibi0s31a%20_1ibi0s3en%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3ERegards%3C%2FP%3E%0A%3CHR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2402073%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20LS1046A%20Custom%20Board%20-image%20built%20with%20FlexBuild%20hangs%20at%20psci%3A%20probing%20for%20conduit%20method%20from%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2402073%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EHello%2C%3CBR%20%2F%3E%3CBR%20%2F%3EI%20tried%20the%20suggested%20solution%2C%20but%20unfortunately%20it%20did%20not%20resolve%20the%20issue.%3CBR%20%2F%3E%3CBR%20%2F%3EFirst%2C%20I%20verified%20the%20BL31%20address%20from%20the%20TF-A%20(ATF)%20build%3A%3CBR%20%2F%3E%3CBR%20%2F%3E-%20BL31_BASE%20%3D%200xFBE00000%3CBR%20%2F%3E-%20BL31_SIZE%20%3D%200x200000%20(2%20MiB)%3CBR%20%2F%3E%3CBR%20%2F%3ENext%2C%20I%20added%20a%20%22reserved-memory%22%20node%20to%20the%20Device%20Tree%20to%20reserve%20the%20BL31%20runtime%20region%20and%20rebuilt%20the%20DTB.%3CBR%20%2F%3E%3CBR%20%2F%3EAfter%20that%2C%20I%20booted%20the%20system%20again%20without%20the%20%22mem%3D1982M%22%20boot%20parameter.%20However%2C%20the%20system%20still%20hangs%20at%20the%20same%20point.%3C%2FLINGO-BODY%3E