Hi ,all In the progress of UEFI porting, I had a big problem. The function GicV2DxeInitialize in ArmGicDxe.inf module produced a Synchronous Exception, when it executed MmioRead32 (mGicDistributorBase + ARM_GIC_ICDICTR). And I am also using GIC400. The GICD&GICC register base have been set correctly. Strangely enough, the MmioRead32 (mGicDistributorBase + ARM_GIC_ICDICTR) code can be executed successfully in Arm trusted firmware which is the previous stage of UEFI. And also, I tried to use a evaluation to analysis the exception and got the following error message.
[cid:image001.png@01D25C42.2B95A4F0] I don't know whether the ArmGicDxe.inf module must be executed in a particular environment which have not been set correctly in the previous module of UEFI? By the way, I'm using dependency expression way to dispatch the DXE drivers on Poplar board. I don't know the main cause of this problem and how to solve it. Can you give me some advises?
Best Regards, Wengang
On 23 December 2016 at 03:01, zhufuwengang zhufuwengang@hisilicon.com wrote:
Hi ,all
In the progress of UEFI porting, I had a big problem. The function GicV2DxeInitialize in ArmGicDxe.inf module produced a Synchronous Exception, when it executed MmioRead32 (mGicDistributorBase + ARM_GIC_ICDICTR). And I am also using GIC400. The GICD&GICC register base have been set correctly. Strangely enough, the MmioRead32 (mGicDistributorBase + ARM_GIC_ICDICTR) code can be executed successfully in Arm trusted firmware which is the previous stage of UEFI. And also, I tried to use a evaluation to analysis the exception and got the following error message.
I don’t know whether the ArmGicDxe.inf module must be executed in a particular environment which have not been set correctly in the previous module of UEFI? By the way, I'm using dependency expression way to dispatch the DXE drivers on Poplar board. I don’t know the main cause of this problem and how to solve it. Can you give me some advises?
Is the GIC region covered by the page tables?