From: Fu Wei <fu.wei(a)linaro.org>
This patchset add xen_boot support into grup-mkconfig for
generating xen boot entrances automatically
Also update the docs/grub.texi for new xen_boot commands.
This patchset has been tested on Foudation model with a bug fix:
http://lists.gnu.org/archive/html/grub-devel/2016-02/msg00205.html
ChangeLog:
v3: reorder the patches
update the introduction of xen_module commands in docs/grub.texi
v2: http://lists.gnu.org/archive/html/grub-devel/2016-02/msg00282.html
add "--nounzip" option support in xen_module
use "feature_xen_boot" instead of "grub_xen_boot"
update the introduction of xen boot commands in docs/grub.texi
v1 :first upstream patchset:
http://lists.gnu.org/archive/html/grub-devel/2016-02/msg00264.html
Fu Wei (4):
i386,xen: Add xen_hypervisor and xen_module aliases for i386
arm64: add "--nounzip" option support in xen_module command
* util/grub.d/20_linux_xen.in: Add xen_boot command support
arm64: update the introduction of xen boot commands in
docs/grub.texi
docs/grub.texi | 33 ++++++++++-----------------------
grub-core/loader/arm64/xen_boot.c | 17 +++++++++++++++++
grub-core/loader/i386/xen.c | 7 +++++++
grub-core/normal/main.c | 2 +-
util/grub.d/20_linux_xen.in | 13 ++++++++++---
5 files changed, 45 insertions(+), 27 deletions(-)
--
2.5.0
Since my KASLR implementation for arm64 Linux is based on the EFI_RNG_PROTOCOL
(at least for UEFI systems), which is not yet widely available on systems that
are under developement currently, this implements a pseudo-random version for
ARM Juno. This code is not suitable for production, but since Juno is strictly
a development platform, that concern does not apply here. Note that the library
is delivered as a binary which prints a warning to the console the first time
it is called.
Ard Biesheuvel (2):
Platforms/ARM: implement a pseudo-random version of RngLib
Platforms/ArmJuno: add RngDxe based on PseudoRngLib
Platforms/ARM/Drivers/PseudoRngLib/License.txt | 19 ++++++++++
Platforms/ARM/Drivers/PseudoRngLib/PseudoRngLib.inf | 38 ++++++++++++++++++++
Platforms/ARM/Drivers/PseudoRngLib/PseudoRngLib.lib | Bin 0 -> 29610 bytes
Platforms/ARM/Drivers/PseudoRngLib/README | 8 +++++
Platforms/ARM/Juno/ArmJuno.dsc | 8 +++++
Platforms/ARM/Juno/ArmJuno.fdf | 5 +++
6 files changed, 78 insertions(+)
create mode 100644 Platforms/ARM/Drivers/PseudoRngLib/License.txt
create mode 100644 Platforms/ARM/Drivers/PseudoRngLib/PseudoRngLib.inf
create mode 100644 Platforms/ARM/Drivers/PseudoRngLib/PseudoRngLib.lib
create mode 100644 Platforms/ARM/Drivers/PseudoRngLib/README
--
2.5.0
Hi Ard/Leif/anyone who cares,
So I was trying to work out who broke MMC support in TC2 in the
upstream EDK2 tree. It was difficult because the tree is borked on
TC2 in so many interesting ways throughout history, but I eventually
bisected down to this patch:
300fc77 2015-08-25 ArmPlatformPkg/PL180MciDxe: check PrimeCell ID
before initializing [Ard Biesheuvel]
Basically, TC2 reads 0x02 for MCI_PERIPH_ID_REG3, when, according to
the spec, the register is supposed to read 0x00 in all cases. So the
driver doesn't probe and is never initialised. I guess this is an
FPGA bug in TC2? It's probably known about, but not to me ;-)
Anyway, how to fix it??
We could mask off the "stuck" bit, we could not check ID_REG3, there
are other things we could do.
I decided to mask off the bit rather than discard the register check
in my patch below, just to get things working
But would you like to do?
For extra point.... this was extra fun to track down due to other
problems. TC2 stopped booting since this patch was submitted
d340ef7 2014-08-26 ArmPkg/ArmArchTimerLib: Remove non required
[depex] and IoLib [Olivier Martin]
I've always carried a revert patch in my tree because I was previously
told I was wrong and that it wasn't a problem, even though it clearly
is. TC2 is spewing out a constant stream of this message:
IRQ Exception PC at 0xBFB74C20 CPSR 0x60000133
It wasn't fixed until Ard's patch that broke MMC support. Ugh!
I'm suspecting that the MMC support has a dependency on IoLib - for
that is the part of the patch that broke TC2 in the first place. But
I have yet to investigate that problem; I don't even know what IoLib
is.
So until this 2nd problem is fixed, I really don't want to submit a
fix to the PL180 problem or I'll have a dead TC2 port again :-/
Cheers,
Ryan.
---
ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.h | 3 +++
ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.c | 26 +++++++++++++++++++++++++-
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.h
b/ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.h
index ce38a9e..8d36456 100644
--- a/ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.h
+++ b/ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.h
@@ -64,11 +64,14 @@
#define MCI_PERIPH_ID1 0x11
#define MCI_PERIPH_ID2 0x04
#define MCI_PERIPH_ID3 0x00
+#define MCI_PERIPH_ID3_TC2 0x02
#define MCI_PCELL_ID0 0x0D
#define MCI_PCELL_ID1 0xF0
#define MCI_PCELL_ID2 0x05
#define MCI_PCELL_ID3 0xB1
+#define MCI_PERIPH_ID3_MASK (~0x02)
+
#define MCI_POWER_OFF 0
#define MCI_POWER_UP BIT1
#define MCI_POWER_ON (BIT1 | BIT0)
diff --git a/ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.c
b/ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.c
index 688cd8a..8ae88b3 100644
--- a/ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.c
+++ b/ArmPlatformPkg/Drivers/PL180MciDxe/PL180Mci.c
@@ -520,6 +520,14 @@ PL180MciDxeInitialize (
{
EFI_STATUS Status;
EFI_HANDLE Handle;
+ UINT8 r1 = MmioRead8 (MCI_PERIPH_ID_REG0);
+ UINT8 r2 = MmioRead8 (MCI_PERIPH_ID_REG1);
+ UINT8 r3 = MmioRead8 (MCI_PERIPH_ID_REG2);
+ UINT8 r4 = MmioRead8 (MCI_PERIPH_ID_REG3);
+ UINT8 r5 = MmioRead8 (MCI_PCELL_ID_REG0);
+ UINT8 r6 = MmioRead8 (MCI_PCELL_ID_REG1);
+ UINT8 r7 = MmioRead8 (MCI_PCELL_ID_REG2);
+ UINT8 r8 = MmioRead8 (MCI_PCELL_ID_REG3);
DEBUG ((EFI_D_WARN, "Probing ID registers at 0x%lx for a PL180\n",
MCI_PERIPH_ID_REG0));
@@ -528,14 +536,30 @@ PL180MciDxeInitialize (
if (MmioRead8 (MCI_PERIPH_ID_REG0) != MCI_PERIPH_ID0 ||
MmioRead8 (MCI_PERIPH_ID_REG1) != MCI_PERIPH_ID1 ||
MmioRead8 (MCI_PERIPH_ID_REG2) != MCI_PERIPH_ID2 ||
- MmioRead8 (MCI_PERIPH_ID_REG3) != MCI_PERIPH_ID3 ||
+ (MmioRead8 (MCI_PERIPH_ID_REG3) & MCI_PERIPH_ID3_MASK) !=
MCI_PERIPH_ID3 ||
MmioRead8 (MCI_PCELL_ID_REG0) != MCI_PCELL_ID0 ||
MmioRead8 (MCI_PCELL_ID_REG1) != MCI_PCELL_ID1 ||
MmioRead8 (MCI_PCELL_ID_REG2) != MCI_PCELL_ID2 ||
MmioRead8 (MCI_PCELL_ID_REG3) != MCI_PCELL_ID3) {
+ DEBUG ((EFI_D_ERROR, "PL180MciDxeInitialize(): Failed to probe PL180\n"));
+ DEBUG ((EFI_D_ERROR, "PL180MciDxeInitialize(): want:
%x,%x,%x,%x,%x,%x,%x,%x\n",
+ MCI_PERIPH_ID0,
+ MCI_PERIPH_ID1,
+ MCI_PERIPH_ID2,
+ MCI_PERIPH_ID3,
+ MCI_PCELL_ID0,
+ MCI_PCELL_ID1,
+ MCI_PCELL_ID2,
+ MCI_PCELL_ID3
+ ));
+
+ DEBUG ((EFI_D_ERROR, "PL180MciDxeInitialize(): read:
%x,%x,%x,%x,%x,%x,%x,%x\n", r1, r2, r3, r4, r5, r6, r7, r8));
return EFI_NOT_FOUND;
}
+ else {
+ DEBUG ((EFI_D_ERROR, "PL180MciDxeInitialize(): Probe succeeded\n"));
+ }
Handle = NULL;
--
2.5.0
From: Fu Wei <fu.wei(a)linaro.org>
This patchset add xen_boot support into grup-mkconfig for
generating xen boot entrances automatically
ChangeLog:
v1 :first upstream patchset.
Fu Wei (3):
arm64: add grub_xen_boot env to indicate that we have xen_* commands
* util/grub.d/20_linux_xen.in: Add support of the xen_boot command
i386,xen: Add xen_hypervisor and xen_module aliases for i386
grub-core/loader/arm64/xen_boot.c | 8 ++++++++
grub-core/loader/i386/xen.c | 7 +++++++
util/grub.d/20_linux_xen.in | 18 +++++++++++++++---
3 files changed, 30 insertions(+), 3 deletions(-)
--
2.5.0
From: Fu Wei <fu.wei(a)linaro.org>
This patchset add xen_boot support into grup-mkconfig for
generating xen boot entrances automatically
Also update the docs/grub.texi for new xen_boot commands.
This patchset has been tested on Foudation model with a bug fix:
http://lists.gnu.org/archive/html/grub-devel/2016-02/msg00205.html
ChangeLog:
v2: add "--nounzip" option support in xen_module
use "feature_xen_boot" instead of "grub_xen_boot"
update the introduction of xen boot commands in docs/grub.texi
v1 :first upstream patchset:
http://lists.gnu.org/archive/html/grub-devel/2016-02/msg00264.html
Fu Wei (4):
arm64: add "--nounzip" option support in xen_module command
* util/grub.d/20_linux_xen.in: Add xen_boot command support
i386,xen: Add xen_hypervisor and xen_module aliases for i386
arm64: update the introduction of xen boot commands in
docs/grub.texi
docs/grub.texi | 32 +++++++++-----------------------
grub-core/loader/arm64/xen_boot.c | 17 +++++++++++++++++
grub-core/loader/i386/xen.c | 7 +++++++
grub-core/normal/main.c | 2 +-
util/grub.d/20_linux_xen.in | 13 ++++++++++---
5 files changed, 44 insertions(+), 27 deletions(-)
--
2.5.0
Hi all,
I have just done something horrid, and I apologise, but it's for the
greater good.
Turn out the commit I set as the upstream baseline commit for 2016.02
ended up smack bang in the middle of an "incident" related to the edk2
maintainers getting used to looking after a git tree rather than a
subversion repository.
As a result, I have *moved* the tag in the linaro-edk2 tree, to the
commit just before the breakage.
If anyone has been using the tag linaro-edk2-baseline-2016.02 for
their development, I would recommend that you cherry-pick your work
across to a new branch based on the _current_ version,
8de84d4242215252af9d2afecd45e2419689ee5f.
Apologies for this - in future I'll use gitk before picking a starting point :|
/
Leif