Closed chiunyi23 closed 1 month ago
It looks like a data abort, a few lines further up in the log you will probably see that. I suspect that itr_chip
is NULL, you can check in the disassembly exactly which instruction causes the data abort.
Perhaps you haven't called itr_init()
?
@jenswi-linaro Thank you for the quick response.
I haven't called itr_init()
because I saw it need a struct itr_chip
parameter. And I am not sure where should I get this parameter from, or maybe I can just declare a itr_chip
as the parameter?
Also I'm not sure where is the proper place to put itr_init()
.
Thanks for the suggestion. I'll try adding itr_init()
and itr_chip
first.
Look in one of the other platforms calling itr_init()
and it will become clearer.
I referred to zynq7000 platform(link) and added itr_init(&gic_data.chip)
in zynqmp platform(link) as follows.
file: optee_os/core/arch/arm/plat-zynqmp/main.c
void main_init_gic(void)
{
vaddr_t gicc_base, gicd_base;
gicc_base = (vaddr_t)phys_to_virt(GIC_BASE + GICC_OFFSET,
MEM_AREA_IO_SEC, 1);
gicd_base = (vaddr_t)phys_to_virt(GIC_BASE + GICD_OFFSET,
MEM_AREA_IO_SEC, 1);
/* On ARMv8, GIC configuration is initialized in ARM-TF */
gic_init_base_addr(&gic_data, gicc_base, gicd_base);
itr_init(&gic_data.chip);
}
And it seems to solve some problems, but it stopped at Copied FSBL image to DDR
, and no E/TC logs were shown this time.
Before this modification, the program would stop at INFO: BL31: Initializing BL32
and shown the E/TC logs.
There is the booting log.
XPFW: Calling ROM PWRUP Handler..Done
XPFW: Calling ROM Isolation Handler..Done
XPFW: Calling ROM PWRUP Handler..Done
NOTICE: ATF running on XCZU9EG/silicon v4/RTL5.1 at 0x1000
NOTICE: BL31: v2.2(release):xilinx-v2020.2
NOTICE: BL31: Built : 16:32:51, Jun 25 2024
INFO: ARM GICv2 driver initialized
INFO: BL31: Initializing runtime services
INFO: BL31: PM Service Init Complete: API v1.1
INFO: BL31: Initializing BL32
INFO: BL31: Preparing for EL3 exit to normal world
INFO: Entry point address = 0x8000000
INFO: SPSR = 0x3c9
Copied FSBL image to DDR
The line
INFO: SPSR = 0x3c9
Looks like a TF-A log entry, but
Copied FSBL image to DDR
looks like something else. It's probably from the normal world boot loader. I can't help you any further.
This issue has been marked as a stale issue because it has been open (more than) 30 days with no activity. Remove the stale label or add a comment, otherwise this issue will automatically be closed in 5 days. Note, that you can always re-open a closed issue at any time.
Hello, I am working on adding a secure timer interrupt in OP-TEE OS on ZCU102 development board. I've see the issues #6570, #2925, and #1701. I followed the codes from #6570, but it seems I missed something to let it work correctly.
[Prerequisites] optee os: commit d0b74 Development Environment: Xilinx MPSoC UltraScale+ ZCU102
file: /optee_os/core/kernel/sub.mk
file: /optee_os/core/kernel/timer_interrupt.c
This is the result I got after running script/symbolize.py with the Call statck.
It seems like the problem is at interrupt.c line 107:
itr_chip->ops->add(itr_chip, h->it, type, prio);
The complete function is shown below
I can't figure out why this is happening; could anyone help with this?