Hi. I'm trying to run on our new platform Linux as BL33, preloaded to DDR. currently simulated over QEMU. I think that BL31 started BL33 in EL0, which cause problems: QEMU outputs this message: (complete log below) Exception return from AArch64 EL3 to AArch64 EL0 PC 0x800080000
What could I have done wrong in the configuration that caused it ? What should I check ? Thanks ! Ramon.
NOTICE: Booting Trusted Firmware NOTICE: BL1: v2.5(debug):v2.5-61-g84d7d6a30-dirty NOTICE: BL1: Built : 14:53:02, Nov 21 2021 INFO: BL1: RAM 0x15500000 - 0x15513000 WARNING: BL1: neoverse_n1: CPU workaround for 1946160 was missing! INFO: BL1: Loading BL2 INFO: Using mmap INFO: Using FIP INFO: Loading image id=1 at address 0x14300000 INFO: Image id=1 loaded: 0x14300000 - 0x143052d1 INFO: bl1_mem_layout->total_base = 0x14000000x NOTICE: BL1: Booting BL2 INFO: Entry point address = 0x14300000 INFO: SPSR = 0x3c5 Exception return from AArch64 EL3 to AArch64 EL1 PC 0x14300000 INFO: BL1 inherited memory layout: 0x14000000 [size = 22020096] NOTICE: BL2: v2.5(debug):v2.5-61-g84d7d6a30-dirty NOTICE: BL2: Built : 14:53:02, Nov 21 2021 INFO: BL2: Skip loading image id 23 INFO: BL2: Doing platform setup INFO: BL2: Loading image id 3 INFO: Using mmap INFO: Using FIP INFO: Loading image id=3 at address 0x800000000 INFO: Image id=3 loaded: 0x800000000 - 0x8000080a9 INFO: BL2: Skip loading image id 5 Taking exception 13 [Secure Monitor Call] ...from EL1 to EL3 ...with ESR 0x17/0x5e000000 ...with ELR 0x14302a04 ...to EL3 PC 0x5400 PSTATE 0x3cd NOTICE: BL1: Booting BL31 INFO: Entry point address = 0x800000000 INFO: SPSR = 0x3cd Exception return from AArch64 EL3 to AArch64 EL3 PC 0x800000000 INFO: Boot BL33 from 0x800080000 for 0 Bytes NOTICE: BL31: v2.5(debug):v2.5-61-g84d7d6a30-dirty NOTICE: BL31: Built : 14:53:04, Nov 21 2021 INFO: GICv3 without legacy support detected. INFO: ARM GICv3 driver initialized in EL3 INFO: Maximum SPI INTID supported: 63 INFO: BL31: Initializing runtime services WARNING: BL31: neoverse_n1: CPU workaround for 1946160 was missing! INFO: BL31: Preparing for EL3 exit to normal world INFO: Entry point address = 0x800080000 INFO: SPSR = 0x0 Exception return from AArch64 EL3 to AArch64 EL0 PC 0x800080000 Taking exception 1 [Undefined Instruction] ...from EL0 to EL1 ...with ESR 0x18/0x6232c061 ...with ELR 0x8000b7164 ...to EL1 PC 0x400 PSTATE 0x3c5 Taking exception 4 [Data Abort]
Hi Ramon,
I can't help with the specific messages. That said from my experience with doing similar thing on the Macchiatobin board ( https://docs.google.com/document/d/1gSbeZ8rNr5Il3ioC640Jt-ZVG6CE3ZOZBeGb9IfS...) that many memory map things have to be carefully adjusted in addition to making sure that BL33 is called with x0=DTB (Linux ABI).
Good luck
On Sun, 21 Nov 2021 at 14:17, Ramon Fried via TF-A < tf-a@lists.trustedfirmware.org> wrote:
Hi. I'm trying to run on our new platform Linux as BL33, preloaded to DDR. currently simulated over QEMU. I think that BL31 started BL33 in EL0, which cause problems: QEMU outputs this message: (complete log below) Exception return from AArch64 EL3 to AArch64 EL0 PC 0x800080000
What could I have done wrong in the configuration that caused it ? What should I check ? Thanks ! Ramon.
NOTICE: Booting Trusted Firmware NOTICE: BL1: v2.5(debug):v2.5-61-g84d7d6a30-dirty NOTICE: BL1: Built : 14:53:02, Nov 21 2021 INFO: BL1: RAM 0x15500000 - 0x15513000 WARNING: BL1: neoverse_n1: CPU workaround for 1946160 was missing! INFO: BL1: Loading BL2 INFO: Using mmap INFO: Using FIP INFO: Loading image id=1 at address 0x14300000 INFO: Image id=1 loaded: 0x14300000 - 0x143052d1 INFO: bl1_mem_layout->total_base = 0x14000000x NOTICE: BL1: Booting BL2 INFO: Entry point address = 0x14300000 INFO: SPSR = 0x3c5 Exception return from AArch64 EL3 to AArch64 EL1 PC 0x14300000 INFO: BL1 inherited memory layout: 0x14000000 [size = 22020096] NOTICE: BL2: v2.5(debug):v2.5-61-g84d7d6a30-dirty NOTICE: BL2: Built : 14:53:02, Nov 21 2021 INFO: BL2: Skip loading image id 23 INFO: BL2: Doing platform setup INFO: BL2: Loading image id 3 INFO: Using mmap INFO: Using FIP INFO: Loading image id=3 at address 0x800000000 INFO: Image id=3 loaded: 0x800000000 - 0x8000080a9 INFO: BL2: Skip loading image id 5 Taking exception 13 [Secure Monitor Call] ...from EL1 to EL3 ...with ESR 0x17/0x5e000000 ...with ELR 0x14302a04 ...to EL3 PC 0x5400 PSTATE 0x3cd NOTICE: BL1: Booting BL31 INFO: Entry point address = 0x800000000 INFO: SPSR = 0x3cd Exception return from AArch64 EL3 to AArch64 EL3 PC 0x800000000 INFO: Boot BL33 from 0x800080000 for 0 Bytes NOTICE: BL31: v2.5(debug):v2.5-61-g84d7d6a30-dirty NOTICE: BL31: Built : 14:53:04, Nov 21 2021 INFO: GICv3 without legacy support detected. INFO: ARM GICv3 driver initialized in EL3 INFO: Maximum SPI INTID supported: 63 INFO: BL31: Initializing runtime services WARNING: BL31: neoverse_n1: CPU workaround for 1946160 was missing! INFO: BL31: Preparing for EL3 exit to normal world INFO: Entry point address = 0x800080000 INFO: SPSR = 0x0 Exception return from AArch64 EL3 to AArch64 EL0 PC 0x800080000 Taking exception 1 [Undefined Instruction] ...from EL0 to EL1 ...with ESR 0x18/0x6232c061 ...with ELR 0x8000b7164 ...to EL1 PC 0x400 PSTATE 0x3c5 Taking exception 4 [Data Abort] -- TF-A mailing list TF-A@lists.trustedfirmware.org https://lists.trustedfirmware.org/mailman/listinfo/tf-a
On Mon, Nov 22, 2021 at 10:26 AM François Ozog francois.ozog@linaro.org wrote:
Hi Ramon,
I can't help with the specific messages. That said from my experience with doing similar thing on the Macchiatobin board ( https://docs.google.com/document/d/1gSbeZ8rNr5Il3ioC640Jt-ZVG6CE3ZOZBeGb9IfS...) that many memory map things have to be carefully adjusted in addition to making sure that BL33 is called with x0=DTB (Linux ABI).
Good luck
Hi, I just found the problem, I didn't set the SPSR register in BL31, after setting it everything is working fine. Thanks !
tf-a@lists.trustedfirmware.org