public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] ArmPkg: Fix the GIC base address variables as 64-bit
@ 2016-10-17  8:54 Dennis Chen
  2016-10-17 17:09 ` Ard Biesheuvel
  0 siblings, 1 reply; 5+ messages in thread
From: Dennis Chen @ 2016-10-17  8:54 UTC (permalink / raw)
  To: edk2-devel; +Cc: nd, Dennis Chen, Ard Biesheuvel, Leif Lindholm

Since ACPI spec defines the GIC base addresses (CPU interface,
Distributor and Redistributor*GICv3 only*) as 64-bit, so we should
define these corresponding base address variables as 64-bit instead of
32-bit. This patch redefines them according to the ACPI spec.

Contributed-under: TianoCore Contribution Agreement 1.0
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Signed-off-by: Dennis Chen <dennis.chen@arm.com>
---
 ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c b/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
index b9ecd55..c7c5af1 100644
--- a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
+++ b/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
@@ -30,8 +30,8 @@ Abstract:
 
 extern EFI_HARDWARE_INTERRUPT_PROTOCOL gHardwareInterruptV2Protocol;
 
-STATIC UINT32 mGicInterruptInterfaceBase;
-STATIC UINT32 mGicDistributorBase;
+STATIC UINT64 mGicInterruptInterfaceBase;
+STATIC UINT64 mGicDistributorBase;
 
 /**
   Enable interrupt source Source.
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] ArmPkg: Fix the GIC base address variables as 64-bit
  2016-10-17  8:54 [PATCH] ArmPkg: Fix the GIC base address variables as 64-bit Dennis Chen
@ 2016-10-17 17:09 ` Ard Biesheuvel
  2016-10-18  2:50   ` Dennis Chen
  0 siblings, 1 reply; 5+ messages in thread
From: Ard Biesheuvel @ 2016-10-17 17:09 UTC (permalink / raw)
  To: Dennis Chen; +Cc: edk2-devel-01, nd, Leif Lindholm

On 17 October 2016 at 09:54, Dennis Chen <dennis.chen@arm.com> wrote:
> Since ACPI spec defines the GIC base addresses (CPU interface,
> Distributor and Redistributor*GICv3 only*) as 64-bit, so we should
> define these corresponding base address variables as 64-bit instead of
> 32-bit. This patch redefines them according to the ACPI spec.
>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Leif Lindholm <leif.lindholm@linaro.org>
> Signed-off-by: Dennis Chen <dennis.chen@arm.com>

After a closer look, I noticed the following:

ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN         GicDistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
GicInterruptInterfaceBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
GicInterruptInterfaceBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN
GicInterruptInterfaceBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
GicDistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
GicRedistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
GicDistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
GicRedistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
GicDistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
GicRedistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
GicInterruptInterfaceBase
ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
GicInterruptInterfaceBase,

so I think we need to clean up the use of these values more widely
than we have done up till now

Leif: I was wondering if EFI_PHYSICAL_ADDRESS would be more
appropriate for MMIO base addresses?


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ArmPkg: Fix the GIC base address variables as 64-bit
  2016-10-17 17:09 ` Ard Biesheuvel
@ 2016-10-18  2:50   ` Dennis Chen
  2016-10-18  8:40     ` Ard Biesheuvel
  0 siblings, 1 reply; 5+ messages in thread
From: Dennis Chen @ 2016-10-18  2:50 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: edk2-devel-01, nd, Leif Lindholm

Hello Ard,

On Mon, Oct 17, 2016 at 06:09:00PM +0100, Ard Biesheuvel wrote:
> On 17 October 2016 at 09:54, Dennis Chen <dennis.chen@arm.com> wrote:
> > Since ACPI spec defines the GIC base addresses (CPU interface,
> > Distributor and Redistributor*GICv3 only*) as 64-bit, so we should
> > define these corresponding base address variables as 64-bit instead of
> > 32-bit. This patch redefines them according to the ACPI spec.
> >
> > Contributed-under: TianoCore Contribution Agreement 1.0
> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > Cc: Leif Lindholm <leif.lindholm@linaro.org>
> > Signed-off-by: Dennis Chen <dennis.chen@arm.com>
> 
> After a closer look, I noticed the following:
> 
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN         GicDistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
> GicInterruptInterfaceBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
> GicInterruptInterfaceBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN
> GicInterruptInterfaceBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> GicDistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> GicRedistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> GicDistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> GicRedistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> GicDistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> GicRedistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
> GicInterruptInterfaceBase
> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> GicInterruptInterfaceBase,
> 
> so I think we need to clean up the use of these values more widely
> than we have done up till now
>
I am not very sure if we still need to support UEFI on 32-bit ARM platform, as Leif mentioned
if we use INTN or UINTN that will be more generic to embrace both 32 &64-bit platform, at least
in form of. Currently we are only focused on 64-bit platform, let's wait for Leif's comment then
I can re-work my patch to adapt it after we have reached a wider agreement.

Thanks,
Dennis 
> 
> Leif: I was wondering if EFI_PHYSICAL_ADDRESS would be more
> appropriate for MMIO base addresses?
> 



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ArmPkg: Fix the GIC base address variables as 64-bit
  2016-10-18  2:50   ` Dennis Chen
@ 2016-10-18  8:40     ` Ard Biesheuvel
  2016-10-18  9:26       ` Dennis Chen
  0 siblings, 1 reply; 5+ messages in thread
From: Ard Biesheuvel @ 2016-10-18  8:40 UTC (permalink / raw)
  To: Dennis Chen; +Cc: edk2-devel-01, nd, Leif Lindholm

On 18 October 2016 at 03:50, Dennis Chen <dennis.chen@arm.com> wrote:
> Hello Ard,
>
> On Mon, Oct 17, 2016 at 06:09:00PM +0100, Ard Biesheuvel wrote:
>> On 17 October 2016 at 09:54, Dennis Chen <dennis.chen@arm.com> wrote:
>> > Since ACPI spec defines the GIC base addresses (CPU interface,
>> > Distributor and Redistributor*GICv3 only*) as 64-bit, so we should
>> > define these corresponding base address variables as 64-bit instead of
>> > 32-bit. This patch redefines them according to the ACPI spec.
>> >
>> > Contributed-under: TianoCore Contribution Agreement 1.0
>> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> > Cc: Leif Lindholm <leif.lindholm@linaro.org>
>> > Signed-off-by: Dennis Chen <dennis.chen@arm.com>
>>
>> After a closer look, I noticed the following:
>>
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN         GicDistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
>> GicInterruptInterfaceBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
>> GicInterruptInterfaceBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN
>> GicInterruptInterfaceBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
>> GicDistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
>> GicRedistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
>> GicDistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
>> GicRedistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
>> GicDistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
>> GicRedistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
>> GicInterruptInterfaceBase
>> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
>> GicInterruptInterfaceBase,
>>
>> so I think we need to clean up the use of these values more widely
>> than we have done up till now
>>
> I am not very sure if we still need to support UEFI on 32-bit ARM platform, as Leif mentioned
> if we use INTN or UINTN that will be more generic to embrace both 32 &64-bit platform, at least
> in form of. Currently we are only focused on 64-bit platform, let's wait for Leif's comment then
> I can re-work my patch to adapt it after we have reached a wider agreement.
>

Hi Dennis,

My primary concern is the sloppiness regarding INTN/UINTN, so it seem
a major cleanup is due. I'd prefer using UINT64 everywhere: we can
still assert that an UINT64 *value* does not exceed MAX_UINTN if we
want to

-- 
Ard.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ArmPkg: Fix the GIC base address variables as 64-bit
  2016-10-18  8:40     ` Ard Biesheuvel
@ 2016-10-18  9:26       ` Dennis Chen
  0 siblings, 0 replies; 5+ messages in thread
From: Dennis Chen @ 2016-10-18  9:26 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: edk2-devel-01, nd, Leif Lindholm

Hello Ard,

On Tue, Oct 18, 2016 at 09:40:42AM +0100, Ard Biesheuvel wrote:
> On 18 October 2016 at 03:50, Dennis Chen <dennis.chen@arm.com> wrote:
> > Hello Ard,
> >
> > On Mon, Oct 17, 2016 at 06:09:00PM +0100, Ard Biesheuvel wrote:
> >> On 17 October 2016 at 09:54, Dennis Chen <dennis.chen@arm.com> wrote:
> >> > Since ACPI spec defines the GIC base addresses (CPU interface,
> >> > Distributor and Redistributor*GICv3 only*) as 64-bit, so we should
> >> > define these corresponding base address variables as 64-bit instead of
> >> > 32-bit. This patch redefines them according to the ACPI spec.
> >> >
> >> > Contributed-under: TianoCore Contribution Agreement 1.0
> >> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> >> > Cc: Leif Lindholm <leif.lindholm@linaro.org>
> >> > Signed-off-by: Dennis Chen <dennis.chen@arm.com>
> >>
> >> After a closer look, I noticed the following:
> >>
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN         GicDistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
> >> GicInterruptInterfaceBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
> >> GicInterruptInterfaceBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN
> >> GicInterruptInterfaceBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> >> GicDistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> >> GicRedistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> >> GicDistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> >> GicRedistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> >> GicDistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> >> GicRedistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicDistributorBase,
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  INTN          GicInterruptInterfaceBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN  UINTN
> >> GicInterruptInterfaceBase
> >> ArmPkg/Include/Library/ArmGicLib.h:  IN UINTN
> >> GicInterruptInterfaceBase,
> >>
> >> so I think we need to clean up the use of these values more widely
> >> than we have done up till now
> >>
> > I am not very sure if we still need to support UEFI on 32-bit ARM platform, as Leif mentioned
> > if we use INTN or UINTN that will be more generic to embrace both 32 &64-bit platform, at least
> > in form of. Currently we are only focused on 64-bit platform, let's wait for Leif's comment then
> > I can re-work my patch to adapt it after we have reached a wider agreement.
> >
> 
> Hi Dennis,
> 
> My primary concern is the sloppiness regarding INTN/UINTN, so it seem
> a major cleanup is due. I'd prefer using UINT64 everywhere: we can
> still assert that an UINT64 *value* does not exceed MAX_UINTN if we
> want to
>
Indeed, INTN/UINTN usage is very inconsistent in that header file. I suppose you have
considered the 32-bit case when you say you prefer using UNIT64 everywhere, thus I have
no objection for that since I always work on 64-bit area. I will hold on this patch for a 
while and resend the revised patch if no more comments inputted.

Thanks,
Dennis
> 
> -- 
> Ard.
> 



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-10-18  9:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-17  8:54 [PATCH] ArmPkg: Fix the GIC base address variables as 64-bit Dennis Chen
2016-10-17 17:09 ` Ard Biesheuvel
2016-10-18  2:50   ` Dennis Chen
2016-10-18  8:40     ` Ard Biesheuvel
2016-10-18  9:26       ` Dennis Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox