iMX8qm Boot Core A72_0

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

iMX8qm Boot Core A72_0

51 Views
kamohan
Contributor I

Hello NXP Forum,

on iMX8qm, can we have the bootup done from A72 core? Does SCUFW permit that.

Thanks

0 Kudos
Reply
3 Replies

25 Views
yipingwang
NXP TechSupport
NXP TechSupport

Yes — on i.MX8QM, the application-processor boot image can be targeted to the Cortex-A72 instead of the Cortex-A53, and SCFW permits that flow. NXP’s imx-mkimage has a flash_ca72 target described as the A72 variant of the normal A53 boot image, intended to bring up the A72 as early as possible for boot-time optimization .

The important distinction is:

  • First code after reset: not the A72. The device boot flow still starts through ROM/SCU/SCFW.
  • AP-side bootloader / OS bring-up: yes, this can be done on the A72. SCFW initializes DDR, loads Cortex-A images, then boots the cores and sets their start addresses.
  • Configuration mechanism: the boot container can specify an AP image for a72 , e.g. examples show -ap ... a72 ... in imx-mkimage usage.

So the answer is: SCFW does allow booting the AP software path from A72, but A72 is not the reset/ROM boot master; it is started by SCFW according to the boot container configuration.

0 Kudos
Reply

18 Views
kamohan
Contributor I
There is a small point we would like to clarify/validate: the `flash_ca72` target currently references `u-boot-atf.bin`, while a separate `u-boot-atf-a72.bin` is also available in the same configuration.

How do we proceed
0 Kudos
Reply

15 Views
yipingwang
NXP TechSupport
NXP TechSupport

Proceed with the existing flash_ca72 target first; do not replace u-boot-atf.bin with u-boot-atf-a72.bin unless you are intentionally using the cockpit / multi-AP image flow.

The evidence points to this distinction:

  • flash_ca72 is described as the same basic boot image as the normal A-core boot target, but loaded to the A72 instead of the A53.
  • u-boot-atf.bin is the combined ATF + U-Boot image: bl31.bin plus u-boot.bin / u-boot-hash.bin .
  • u-boot-atf-a72.bin appears in the flash_cockpit target, where the image contains two AP payloads : one for A53 and a separate one for A72: -ap u-boot-atf.bin a53 0x80000000 ... -ap u-boot-atf-a72.bin a72 0xC0000000 ... .

So the important selector is not only the filename; it is the imx-mkimage -ap ... a72 ... argument in the target. For a single A72 boot image, flash_ca72 using u-boot-atf.bin is consistent with the documented intent: the payload is loaded to A72 by the target rule, even if the filename is not suffixed -a72 .

Recommended path:

  • Build the standard A72-only image using the existing target:

make SOC=iMX8QM flash_ca72

  • Use the CA72 device tree / configuration on the Linux side. NXP documentation notes that the i.MX8QM MEK CA72 DTB supports the two Cortex-A72 cores only and requires the special boot image built with flash_ca72 .
  • Reserve u-boot-atf-a72.bin for flows that explicitly package a second A72 AP image, such as flash_cockpit , unless your BSP’s soc.mak comments or release notes say otherwise.
  • Validate at boot that the image is actually entering the A72 path: check the imx-mkimage command emitted by make V=1 SOC=iMX8QM flash_ca72 or inspect iMX8QM/soc.mak and confirm the AP line uses a72 .

Takeaway: treat the current flash_ca72 reference to u-boot-atf.bin as intentional; u-boot-atf-a72.bin is for the separate A72 payload used in cockpit/multi-partition style images, not automatically the replacement for flash_ca72 .

 

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2407908%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EiMX8qm%20Boot%20Core%20A72_0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2407908%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20NXP%20Forum%2C%3C%2FP%3E%3CP%3Eon%20iMX8qm%2C%26nbsp%3B%3CSPAN%3Ecan%20we%20have%20the%20bootup%20done%20from%20A72%20core%3F%20Does%20SCUFW%20permit%20that.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EThanks%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2408335%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20iMX8qm%20Boot%20Core%20A72_0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2408335%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EProceed%20with%20the%20existing%26nbsp%3Bflash_ca72%26nbsp%3Btarget%20first%3B%20do%26nbsp%3B%3CSTRONG%3Enot%3C%2FSTRONG%3E%26nbsp%3Breplace%26nbsp%3Bu-boot-atf.bin%26nbsp%3Bwith%26nbsp%3Bu-boot-atf-a72.bin%26nbsp%3Bunless%20you%20are%20intentionally%20using%20the%20cockpit%20%2F%20multi-AP%20image%20flow.%3C%2FP%3E%0A%3CP%3EThe%20evidence%20points%20to%20this%20distinction%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3Eflash_ca72%26nbsp%3Bis%20described%20as%20the%20same%20basic%20boot%20image%20as%20the%20normal%20A-core%20boot%20target%2C%20but%20loaded%20to%20the%20A72%20instead%20of%20the%20A53.%3C%2FLI%3E%0A%3CLI%3Eu-boot-atf.bin%26nbsp%3Bis%20the%20combined%20ATF%20%2B%20U-Boot%20image%3A%26nbsp%3Bbl31.bin%26nbsp%3Bplus%26nbsp%3Bu-boot.bin%26nbsp%3B%2F%26nbsp%3Bu-boot-hash.bin%26nbsp%3B.%3C%2FLI%3E%0A%3CLI%3Eu-boot-atf-a72.bin%26nbsp%3Bappears%20in%20the%26nbsp%3Bflash_cockpit%26nbsp%3Btarget%2C%20where%20the%20image%20contains%26nbsp%3B%3CSTRONG%3Etwo%20AP%20payloads%3C%2FSTRONG%3E%26nbsp%3B%3A%20one%20for%20A53%20and%20a%20separate%20one%20for%20A72%3A%26nbsp%3B-ap%20u-boot-atf.bin%20a53%200x80000000%20...%20-ap%20u-boot-atf-a72.bin%20a72%200xC0000000%20...%26nbsp%3B.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3ESo%20the%20important%20selector%20is%20not%20only%20the%20filename%3B%20it%20is%20the%26nbsp%3Bimx-mkimage%26nbsp%3B-ap%20...%20a72%20...%26nbsp%3Bargument%20in%20the%20target.%20For%20a%20single%20A72%20boot%20image%2C%26nbsp%3Bflash_ca72%26nbsp%3Busing%26nbsp%3Bu-boot-atf.bin%26nbsp%3Bis%20consistent%20with%20the%20documented%20intent%3A%20the%20payload%20is%20loaded%20to%20A72%20by%20the%20target%20rule%2C%20even%20if%20the%20filename%20is%20not%20suffixed%26nbsp%3B-a72%26nbsp%3B.%3C%2FP%3E%0A%3CP%3ERecommended%20path%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EBuild%20the%20standard%20A72-only%20image%20using%20the%20existing%20target%3A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3Emake%20SOC%3DiMX8QM%20flash_ca72%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EUse%20the%20CA72%20device%20tree%20%2F%20configuration%20on%20the%20Linux%20side.%20NXP%20documentation%20notes%20that%20the%20i.MX8QM%20MEK%20CA72%20DTB%20supports%20the%20two%20Cortex-A72%20cores%20only%20and%20requires%20the%20special%20boot%20image%20built%20with%26nbsp%3Bflash_ca72%26nbsp%3B.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CUL%3E%0A%3CLI%3EReserve%26nbsp%3Bu-boot-atf-a72.bin%26nbsp%3Bfor%20flows%20that%20explicitly%20package%20a%20second%20A72%20AP%20image%2C%20such%20as%26nbsp%3Bflash_cockpit%26nbsp%3B%2C%20unless%20your%20BSP%E2%80%99s%26nbsp%3Bsoc.mak%26nbsp%3Bcomments%20or%20release%20notes%20say%20otherwise.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CUL%3E%0A%3CLI%3EValidate%20at%20boot%20that%20the%20image%20is%20actually%20entering%20the%20A72%20path%3A%20check%20the%26nbsp%3Bimx-mkimage%26nbsp%3Bcommand%20emitted%20by%26nbsp%3Bmake%20V%3D1%20SOC%3DiMX8QM%20flash_ca72%26nbsp%3Bor%20inspect%26nbsp%3BiMX8QM%2Fsoc.mak%26nbsp%3Band%20confirm%20the%20AP%20line%20uses%26nbsp%3Ba72%26nbsp%3B.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3ETakeaway%3A%20treat%20the%20current%26nbsp%3Bflash_ca72%26nbsp%3Breference%20to%26nbsp%3Bu-boot-atf.bin%26nbsp%3Bas%20intentional%3B%26nbsp%3Bu-boot-atf-a72.bin%26nbsp%3Bis%20for%20the%20separate%20A72%20payload%20used%20in%20cockpit%2Fmulti-partition%20style%20images%2C%20not%20automatically%20the%20replacement%20for%26nbsp%3Bflash_ca72%26nbsp%3B.%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2408323%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20iMX8qm%20Boot%20Core%20A72_0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2408323%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EThere%20is%20a%20small%20point%20we%20would%20like%20to%20clarify%2Fvalidate%3A%20the%20%60flash_ca72%60%20target%20currently%20references%20%60u-boot-atf.bin%60%2C%20while%20a%20separate%20%60u-boot-atf-a72.bin%60%20is%20also%20available%20in%20the%20same%20configuration.%3CBR%20%2F%3E%3CBR%20%2F%3EHow%20do%20we%20proceed%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2408076%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20iMX8qm%20Boot%20Core%20A72_0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2408076%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EYes%20%E2%80%94%20on%20i.MX8QM%2C%20the%20application-processor%20boot%20image%20can%20be%20targeted%20to%20the%20Cortex-A72%20instead%20of%20the%20Cortex-A53%2C%20and%20SCFW%20permits%20that%20flow.%20NXP%E2%80%99s%26nbsp%3Bimx-mkimage%26nbsp%3Bhas%20a%26nbsp%3Bflash_ca72%26nbsp%3Btarget%20described%20as%20the%20A72%20variant%20of%20the%20normal%20A53%20boot%20image%2C%20intended%20to%20bring%20up%20the%20A72%20as%20early%20as%20possible%20for%20boot-time%20optimization%26nbsp%3B.%3C%2FP%3E%0A%3CP%3EThe%20important%20distinction%20is%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CSTRONG%3EFirst%20code%20after%20reset%3A%3C%2FSTRONG%3E%26nbsp%3Bnot%20the%20A72.%20The%20device%20boot%20flow%20still%20starts%20through%20ROM%2FSCU%2FSCFW.%3C%2FLI%3E%0A%3CLI%3E%3CSTRONG%3EAP-side%20bootloader%20%2F%20OS%20bring-up%3A%3C%2FSTRONG%3E%26nbsp%3Byes%2C%20this%20can%20be%20done%20on%20the%20A72.%20SCFW%20initializes%20DDR%2C%20loads%20Cortex-A%20images%2C%20then%20boots%20the%20cores%20and%20sets%20their%20start%20addresses.%3C%2FLI%3E%0A%3CLI%3E%3CSTRONG%3EConfiguration%20mechanism%3A%3C%2FSTRONG%3E%26nbsp%3Bthe%20boot%20container%20can%20specify%20an%20AP%20image%20for%26nbsp%3Ba72%26nbsp%3B%2C%20e.g.%20examples%20show%26nbsp%3B-ap%20...%20a72%20...%26nbsp%3Bin%26nbsp%3Bimx-mkimage%26nbsp%3Busage.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3ESo%20the%20answer%20is%3A%26nbsp%3B%3CSTRONG%3ESCFW%20does%20allow%20booting%20the%20AP%20software%20path%20from%20A72%2C%20but%20A72%20is%20not%20the%20reset%2FROM%20boot%20master%3B%20it%20is%20started%20by%20SCFW%20according%20to%20the%20boot%20container%20configuration.%3C%2FSTRONG%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E