Unsubscribe Sent from my iPhone
> On Feb 3, 2015, at 11:20 AM, [email protected] wrote: > > Send edk2-devel mailing list submissions to > [email protected] > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/edk2-devel > or, via email, send a message with subject or body 'help' to > [email protected] > > You can reach the person managing the list at > [email protected] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of edk2-devel digest..." > > > Today's Topics: > > 1. Mouse and touchscreen support (Denis Alberto Silverio) > 2. [PATCH v3 01/27] ArmPkg: allow HYP timer interrupt to be > omitted (Ard Biesheuvel) > 3. [PATCH v3 02/27] ArmPkg: allow patchable PCDs for memory, FD > and FV addresses (Ard Biesheuvel) > 4. [PATCH v3 03/27] ArmPlatformPkg: allow patchable PCD for FD > base address (Ard Biesheuvel) > 5. [PATCH v3 04/27] ArmVirtualizationPkg: add GICv3 detection to > VirtFdtDxe (Ard Biesheuvel) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 3 Feb 2015 16:39:45 -0200 > From: Denis Alberto Silverio <[email protected]> > Subject: [edk2] Mouse and touchscreen support > To: [email protected] > Message-ID: > <cagh9m4cj0_fqqe91p1kh_teln7p7h9gz_irgpmwu26gmj6p...@mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Hi guys, > I?m developing an application that may have touchscreen and mouse support. > So, I?m trying to use the SIMPLE_POINTER_PROTOCOL and > ABSOLUTE_POINTER_PROTOCOL to get the pointer events. Some systems, it works > pretty well, but in other system, it have the protocol and when it try to > get the state it only returns EFI_NOT_READY. It can be a firmware/hardware > problem or I need to verify another flag to know if the device is ready to > use? > > Thank you. > > -- > D?nis Alberto Silverio > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > Message: 2 > Date: Tue, 3 Feb 2015 19:19:46 +0000 > From: Ard Biesheuvel <[email protected]> > Subject: [edk2] [PATCH v3 01/27] ArmPkg: allow HYP timer interrupt to > be omitted > To: [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected] > Message-ID: > <[email protected]> > > The DT binding for the ARM generic timer describes the secure, > non-secure, virtual and hypervisor timer interrupts, respectively. > However, under virtualization, only the virtual timer is usable, and > the device tree may omit the hypervisor timer interrupt. (Other timer > interrupts cannot be omitted simply due to the fact that the virtual > timer is listed third) > > Contributed-under: TianoCore Contribution Agreement 1.0 > Reviewed-by: Olivier Martin <[email protected]> > Reviewed-by: Laszlo Ersek <[email protected]> > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > ArmPkg/Drivers/TimerDxe/TimerDxe.c | 14 +++++++++++--- > .../ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c | 6 +++--- > 2 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/ArmPkg/Drivers/TimerDxe/TimerDxe.c > b/ArmPkg/Drivers/TimerDxe/TimerDxe.c > index d0a819fc2729..1169d426b255 100644 > --- a/ArmPkg/Drivers/TimerDxe/TimerDxe.c > +++ b/ArmPkg/Drivers/TimerDxe/TimerDxe.c > @@ -369,7 +369,8 @@ TimerInitialize ( > { > EFI_HANDLE Handle = NULL; > EFI_STATUS Status; > - UINTN TimerCtrlReg; > + UINTN TimerCtrlReg; > + UINT32 TimerHypIntrNum; > > if (ArmIsArchTimerImplemented () == 0) { > DEBUG ((EFI_D_ERROR, "ARM Architectural Timer is not available in the > CPU, hence cann't use this Driver \n")); > @@ -395,8 +396,15 @@ TimerInitialize ( > Status = gInterrupt->RegisterInterruptSource (gInterrupt, PcdGet32 > (PcdArmArchTimerVirtIntrNum), TimerInterruptHandler); > ASSERT_EFI_ERROR (Status); > > - Status = gInterrupt->RegisterInterruptSource (gInterrupt, PcdGet32 > (PcdArmArchTimerHypIntrNum), TimerInterruptHandler); > - ASSERT_EFI_ERROR (Status); > + // > + // The hypervisor timer interrupt may be omitted by implementations that > + // execute under virtualization. > + // > + TimerHypIntrNum = PcdGet32 (PcdArmArchTimerHypIntrNum); > + if (TimerHypIntrNum != 0) { > + Status = gInterrupt->RegisterInterruptSource (gInterrupt, > TimerHypIntrNum, TimerInterruptHandler); > + ASSERT_EFI_ERROR (Status); > + } > > Status = gInterrupt->RegisterInterruptSource (gInterrupt, PcdGet32 > (PcdArmArchTimerSecIntrNum), TimerInterruptHandler); > ASSERT_EFI_ERROR (Status); > diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c > b/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c > index 751864d4db9c..1d44f9ba02b3 100644 > --- a/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c > +++ b/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c > @@ -274,7 +274,7 @@ InitializeVirtFdtDxe ( > // hypervisor timers, in that order. > // > InterruptProp = fdt_getprop (DeviceTreeBase, Node, "interrupts", &Len); > - ASSERT (Len == 48); > + ASSERT (Len == 36 || Len == 48); > > SecIntrNum = fdt32_to_cpu (InterruptProp[0].Number) > + (InterruptProp[0].Type ? 16 : 0); > @@ -282,8 +282,8 @@ InitializeVirtFdtDxe ( > + (InterruptProp[1].Type ? 16 : 0); > VirtIntrNum = fdt32_to_cpu (InterruptProp[2].Number) > + (InterruptProp[2].Type ? 16 : 0); > - HypIntrNum = fdt32_to_cpu (InterruptProp[3].Number) > - + (InterruptProp[3].Type ? 16 : 0); > + HypIntrNum = Len < 48 ? 0 : fdt32_to_cpu (InterruptProp[3].Number) > + + (InterruptProp[3].Type ? 16 : 0); > > DEBUG ((EFI_D_INFO, "Found Timer interrupts %d, %d, %d, %d\n", > SecIntrNum, IntrNum, VirtIntrNum, HypIntrNum)); > -- > 1.8.3.2 > > > > > ------------------------------ > > Message: 3 > Date: Tue, 3 Feb 2015 19:19:47 +0000 > From: Ard Biesheuvel <[email protected]> > Subject: [edk2] [PATCH v3 02/27] ArmPkg: allow patchable PCDs for > memory, FD and FV addresses > To: [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected] > Message-ID: > <[email protected]> > > In order to allow a runtime self relocating PrePi instance, change the > allowable PCD types for the following PCDs: > > gArmTokenSpaceGuid.PcdSystemMemoryBase > gArmTokenSpaceGuid.PcdSystemMemorySize > gArmTokenSpaceGuid.PcdFdBaseAddress > gArmTokenSpaceGuid.PcdFvBaseAddress > > to include PcdsPatchableInModule. This makes the build system correctly > distinguish fixed PCDs from PCDs whose value may be different from the > assigned value at compile time. > > Note that this only affects platforms that explicitly mark these PCDs as > PatchableInModule in the DSC. All existing platforms that use FixedPcd > will not be affected by this change. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Acked-by: Laszlo Ersek <[email protected]> > Reviewed-by: Olivier Martin <[email protected]> > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > ArmPkg/ArmPkg.dec | 25 ++++++++++++++----------- > 1 file changed, 14 insertions(+), 11 deletions(-) > > diff --git a/ArmPkg/ArmPkg.dec b/ArmPkg/ArmPkg.dec > index 215464224c12..c8d7f50d8072 100644 > --- a/ArmPkg/ArmPkg.dec > +++ b/ArmPkg/ArmPkg.dec > @@ -93,14 +93,6 @@ > gArmTokenSpaceGuid.PcdSecureFvSize|0x0|UINT32|0x00000030 > > # > - # ARM Normal (or Non Secure) Firmware PCDs > - # > - gArmTokenSpaceGuid.PcdFdBaseAddress|0|UINT64|0x0000002B > - gArmTokenSpaceGuid.PcdFdSize|0|UINT32|0x0000002C > - gArmTokenSpaceGuid.PcdFvBaseAddress|0|UINT64|0x0000002D > - gArmTokenSpaceGuid.PcdFvSize|0|UINT32|0x0000002E > - > - # > # ARM Hypervisor Firmware PCDs > # > gArmTokenSpaceGuid.PcdHypFdBaseAddress|0|UINT32|0x0000003A > @@ -127,6 +119,15 @@ > # Maximum file size for TFTP servers that do not support 'tsize' extension > gArmTokenSpaceGuid.PcdMaxTftpFileSize|0x01000000|UINT32|0x00000000 > > + # > + # ARM Normal (or Non Secure) Firmware PCDs > + # > + gArmTokenSpaceGuid.PcdFdSize|0|UINT32|0x0000002C > + gArmTokenSpaceGuid.PcdFvSize|0|UINT32|0x0000002E > + > +[PcdsFixedAtBuild.common, PcdsPatchableInModule.common] > + gArmTokenSpaceGuid.PcdFdBaseAddress|0|UINT64|0x0000002B > + gArmTokenSpaceGuid.PcdFvBaseAddress|0|UINT64|0x0000002D > > [PcdsFixedAtBuild.ARM] > # > @@ -207,16 +208,18 @@ > > > # > -# These PCDs are also defined as 'PcdsDynamic' to be redefined when using > UEFI in a > -# context of virtual machine. > +# These PCDs are also defined as 'PcdsDynamic' or 'PcdsPatchableInModule' to > be > +# redefined when using UEFI in a context of virtual machine. > # > -[PcdsFixedAtBuild.common, PcdsDynamic.common] > +[PcdsFixedAtBuild.common, PcdsDynamic.common, PcdsPatchableInModule.common] > + > # System Memory (DRAM): These PCDs define the region of in-built system > memory > # Some platforms can get DRAM extensions, these additional regions will be > declared > # to UEFI by ArmPlatformLib > gArmTokenSpaceGuid.PcdSystemMemoryBase|0|UINT64|0x00000029 > gArmTokenSpaceGuid.PcdSystemMemorySize|0|UINT64|0x0000002A > > +[PcdsFixedAtBuild.common, PcdsDynamic.common] > # > # ARM Architectural Timer > # > -- > 1.8.3.2 > > > > > ------------------------------ > > Message: 4 > Date: Tue, 3 Feb 2015 19:19:48 +0000 > From: Ard Biesheuvel <[email protected]> > Subject: [edk2] [PATCH v3 03/27] ArmPlatformPkg: allow patchable PCD > for FD base address > To: [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected] > Message-ID: > <[email protected]> > > This moves the reference to gArmTokenSpaceGuid.PcdFdBaseAddress > from the [FixedPcd] to the [Pcd] section in the INF file of > PrePiArmPlatformGlobalVariableLib so that its users may choose > to use a patchable PCD instead. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Reviewed-by: Olivier Martin <[email protected]> > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > .../PrePi/PrePiArmPlatformGlobalVariableLib.inf | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git > a/ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf > > b/ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf > index 596f5595412e..37de35e7d00e 100644 > --- > a/ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf > +++ > b/ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf > @@ -34,7 +34,6 @@ > PcdLib > > [FixedPcd] > - gArmTokenSpaceGuid.PcdFdBaseAddress > gArmTokenSpaceGuid.PcdFdSize > > gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize > @@ -43,4 +42,5 @@ > [Pcd] > gArmTokenSpaceGuid.PcdSystemMemoryBase > gArmTokenSpaceGuid.PcdSystemMemorySize > + gArmTokenSpaceGuid.PcdFdBaseAddress > > -- > 1.8.3.2 > > > > > ------------------------------ > > Message: 5 > Date: Tue, 3 Feb 2015 19:19:49 +0000 > From: Ard Biesheuvel <[email protected]> > Subject: [edk2] [PATCH v3 04/27] ArmVirtualizationPkg: add GICv3 > detection to VirtFdtDxe > To: [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected], > [email protected], [email protected] > Message-ID: > <[email protected]> > > This adds support for detecting the presence of a GICv3 interrupt > controller from the device tree, and recording its distributor and > redistributor base addresses in their respective PCDs. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Acked-by: Laszlo Ersek <[email protected]> > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > > Removed Olivier's R-b due to the fact that this patch was changed to > accomodate pending but not yet finalized changes to the GICv3 driver. > I think that recording the distributor and redistributor base addresses > should be sufficient in any case, but we may have to revisit this still > when the GIC dust settles. > > .../ArmVirtualizationPkg/ArmVirtualizationQemu.dsc | 1 + > .../ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c | 31 +++++++++++++++++++++- > .../ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf | 1 + > 3 files changed, 32 insertions(+), 1 deletion(-) > > diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc > b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc > index 32c8deb3b1d6..f38ffd034a59 100644 > --- a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc > +++ b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc > @@ -172,6 +172,7 @@ > # ARM General Interrupt Controller > # > gArmTokenSpaceGuid.PcdGicDistributorBase|0x0 > + gArmTokenSpaceGuid.PcdGicRedistributorBase|0x0 > gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0 > > ## PL031 RealTimeClock > diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c > b/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c > index 1d44f9ba02b3..e8bbea0847c0 100644 > --- a/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c > +++ b/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c > @@ -46,6 +46,7 @@ typedef enum { > PropertyTypeTimer, > PropertyTypePsci, > PropertyTypeFwCfg, > + PropertyTypeGicV3, > } PROPERTY_TYPE; > > typedef struct { > @@ -62,6 +63,7 @@ STATIC CONST PROPERTY CompatibleProperties[] = { > { PropertyTypeTimer, "arm,armv8-timer" }, > { PropertyTypePsci, "arm,psci-0.2" }, > { PropertyTypeFwCfg, "qemu,fw-cfg-mmio" }, > + { PropertyTypeGicV3, "arm,gic-v3" }, > { PropertyTypeUnknown, "" } > }; > > @@ -114,7 +116,7 @@ InitializeVirtFdtDxe ( > VIRTIO_TRANSPORT_DEVICE_PATH *DevicePath; > EFI_HANDLE Handle; > UINT64 RegBase; > - UINT64 DistBase, CpuBase; > + UINT64 DistBase, CpuBase, RedistBase; > CONST INTERRUPT_PROPERTY *InterruptProp; > INT32 SecIntrNum, IntrNum, VirtIntrNum, HypIntrNum; > CONST CHAR8 *PsciMethod; > @@ -256,6 +258,33 @@ InitializeVirtFdtDxe ( > DEBUG ((EFI_D_INFO, "Found GIC @ 0x%Lx/0x%Lx\n", DistBase, CpuBase)); > break; > > + case PropertyTypeGicV3: > + // > + // The GIC v3 DT binding describes a series of at least 3 physical base > + // addresses: the distributor interface (GICD), at least one > redistributor > + // interface (GICR) and the CPU interface (GICC). > + // Under virtualization, we assume that the first redistributor > interface > + // listed covers the boot CPU. Also, our GICv3 driver only supports the > + // system register CPU interface, so we can safely ignore the MMIO > version > + // which is listed after the sequence of redistributor interfaces. > + // This means we are only interested in the first two memory regions > + // supplied, and ignore everything else. > + // > + ASSERT (Len >= 32); > + > + DistBase = fdt64_to_cpu (((UINT64 *)RegProp)[0]); > + ASSERT (DistBase < MAX_UINT32); > + > + RedistBase = fdt64_to_cpu (((UINT64 *)RegProp)[2]); > + ASSERT (RedistBase < MAX_UINT32); > + > + PcdSet32 (PcdGicDistributorBase, (UINT32)DistBase); > + PcdSet32 (PcdGicRedistributorBase, (UINT32)RedistBase); > + > + DEBUG ((EFI_D_INFO, "Found GIC v3 (re)distributor @ 0x%Lx (0x%Lx)\n", > + DistBase, RedistBase)); > + break; > + > case PropertyTypeRtc: > ASSERT (Len == 16); > > diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf > b/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf > index 514ce2fdf658..dbf0f8eb54bc 100644 > --- a/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf > +++ b/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf > @@ -51,6 +51,7 @@ > gArmVirtualizationTokenSpaceGuid.PcdFwCfgSelectorAddress > gArmVirtualizationTokenSpaceGuid.PcdFwCfgDataAddress > gArmTokenSpaceGuid.PcdGicDistributorBase > + gArmTokenSpaceGuid.PcdGicRedistributorBase > gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase > gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum > gArmTokenSpaceGuid.PcdArmArchTimerIntrNum > -- > 1.8.3.2 > > > > > ------------------------------ > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > > ------------------------------ > > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/edk2-devel > > > End of edk2-devel Digest, Vol 62, Issue 24 > ****************************************** ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
