LS1043ARDB: Can I boot LS1043ARDB directly into AArch32 state from Power-On-Reset?

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

LS1043ARDB: Can I boot LS1043ARDB directly into AArch32 state from Power-On-Reset?

1,551 Views
sempori
Contributor II

I expected that LS1043ARDB would have some switch settings to configure its execution state on Power-On-Reset so that it can be directly boot in either AArch64 or AArch32 state. But, it does not have any such switch settings.

Also, I checked "Reset configuration word (RCW)" in "QorIQ LS1043A Reference Manual". But, it also does not have any configuration to boot the CPU in AArch32 execution state.

But, Cortex-A53 core provides the option to configure the execution state during Power-On-Reset as explained below. Could you please teach me how LS1043A CPU treats this option? Is it hard coded to boot in AArch64? Or, is there any way to boot in AArch32? Please help me as I have to run a single Cortex-A7 compatible image in LS1043A.

----- ARM Cortex-A53 MPCore Processor Technical Reference Manual ------

4.3.76 Reset Management Register

Purpose    Controls the execution state that the processor boots into and allows request of a warm reset.

AA64a       Determines which execution state the processor boots into after a warm reset. The possible values are:
            0    AArch32 Execution state.
            1    AArch64 Execution state.

a. The cold reset value depends on the AA64nAA32 signal.

-----

Thank you in advance.

Labels (1)
Tags (1)
0 Kudos
4 Replies

1,239 Views
michelle
NXP Pro Support
NXP Pro Support

Hi

 

This is controlled by an interrupt and modification of the return and CPSR inside the handler.  AArch32 instructions

From the ARMV8a reference manual:

 

The Execution state can change only on a change of Exception level. This means that the Execution state can change
only on taking an exception to a higher Exception level, or returning from an exception to a lower Exception level.
On taking an exception to a higher Exception level, the Execution state either:
• Remains unchanged.
• Changes from AArch32 state to AArch64 state.
On returning from an exception to a lower Exception level, the Execution state either:
• Remains unchanged.
• Changes from AArch64 state to AArch32 state.

More details are provide in section G.1.11.8

 

BR,

Michelle

0 Kudos

1,239 Views
sempori
Contributor II

Thank you for your reply.

But, I think my question is not well understood. My question is that "Is it possible to boot LS1043A in AArch32 from Power-On-Reset itself?"

It can be assumed that my executable image has only AArch32 instructions and it has to be executed from Power-On-Reset. The executable image does not have AArch64 instructions at all.

0 Kudos

1,239 Views
Pavel
NXP Employee
NXP Employee

Look at also the following pages:

32bit 64bit - Running 32 bits and 64 bits OS with arm v8 - Stack Overflow 

and

https://community.arm.com/thread/6259

Have a great day,
Pavel Chubakov

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,239 Views
Pavel
NXP Employee
NXP Employee

It is not possible. See the following page:

http://www.realworldtech.com/arm64/2/

"Transitions between AArch32 and AArch64 can only occur at exceptions and exception returns. For backwards compatibility, AArch32 still retains the rather complicated ARMv7 exception model which features 8 different privilege modes."

NXP SDK for the LS1043RDB board supports only 64-bit mode. NXP CodeWarrior supports Linux Application for 32-bit mode.


Have a great day,
Pavel Chubakov

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos