Changelog:
v4:
* Use 64-bit value on PL061 register base address.
* Use fallback to be compatible with current PcdPL061GpioBase value
when platform gpio driver isn't present.
* Remove the dependancy on PL061. Move the dependancy to platform
gpio driver instead.
v3:
* Remove GPIO_PIN_MASK_HIGH_8BIT() and GPIO_PIN_MASK_LOW_8BIT().
* Avoid to use MmioAnd8() on updating GPIO DATA register, since PL061
could access each bit by specified register offset.
* Add PLATFORM_GPIO_CONTROLLER structure in embedded gpio.
* Support multiple PL061 gpio controllers in one platform.
v2:
* Append the patch to fix gpio pin mask macro.
Haojian Zhuang (3):
ArmPlatformPkg: PL061: fix accessing GPIO DATA
EmbeddedPkg: enhance for multiple gpio controllers
ArmPlatformPkg: PL061: support multiple controller
ArmPlatformPkg/Drivers/PL061GpioDxe/PL061Gpio.c | 137 +++++++++++++++------
.../Drivers/PL061GpioDxe/PL061GpioDxe.inf | 1 +
ArmPlatformPkg/Include/Drivers/PL061Gpio.h | 51 ++++----
EmbeddedPkg/EmbeddedPkg.dec | 1 +
EmbeddedPkg/Include/Protocol/EmbeddedGpio.h | 17 +++
5 files changed, 143 insertions(+), 64 deletions(-)
--
2.1.4
From: Fu Wei <fu.wei(a)linaro.org>
- This adds support for the Xen boot on ARM specification for arm64.
- Add and export some accessor functions of "loaded" flag and
grub_linux_get_fdt function in include/grub/arm64/linux.h for xen boot.
- Introduce xen_hypervisor, xen_linux, xen_initrd and xen_xsm
to load different binaries for xen boot.
Introduce xen_module to load common or custom module for xen boot.
- This Xen boot support is a separated module for aarch64,
but reuse the existing code of devicetree in linux module.
- Add the support of xen_hypervisor, xen_linux and xen_initrd
in util/grub.d/20_linux_xen.in
- Add the introduction of all xen boot commands in docs/grub.texi
- The example of this support is <How to boot Xen with GRUB on AArch64 the Foundation FVP model>
https://wiki.linaro.org/LEG/Engineering/Grub2/Xen_booting_on_Foundation_FVP…
Changelog:
v3: create separate module for xen boot: xen_boot
create separate commands for different types of module
delete order-dependent for commands of xen module
simplify the code
v2: remove the patches which have been accepted.
according to Vladimir's suggestion, change the command manes
and relevant code:
multiboot-->xen_hypervisor
module-->xen_module
improve the option parsing support for xen_hypervisor/xen_module commands.
add a patch for adding xen_hypervisor/xen_module support
in util/grub.d/20_linux_xen.in.
update docs/grub.texi patch for the new command names.
v1: The first version upstream patchset to grub-devel mailing list
Fu Wei (4):
arm64: Add and export some accessor functions for xen boot
arm64: Add xen_boot module file
* util/grub.d/20_linux_xen.in: Add support of the XEN boot on aarch64
arm64: Add the introduction of xen boot commands in docs/grub.texi
docs/grub.texi | 56 ++++
grub-core/Makefile.core.def | 7 +
grub-core/loader/arm64/linux.c | 13 +
grub-core/loader/arm64/xen_boot.c | 685 ++++++++++++++++++++++++++++++++++++++
include/grub/arm64/linux.h | 6 +-
util/grub.d/20_linux_xen.in | 16 +-
6 files changed, 779 insertions(+), 4 deletions(-)
create mode 100644 grub-core/loader/arm64/xen_boot.c
--
1.8.3.1
Fix the wrong return value of both InternalSyncIncrement()
and InternalSyncDecrement(). The return value shouldn't
be the address of input parameter. It should be the updated
value of input parameter instead.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Haojian Zhuang <haojian.zhuang(a)linaro.org>
---
MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S b/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S
index ecb87fc..830ea5b 100644
--- a/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S
+++ b/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S
@@ -171,6 +171,7 @@ TryInternalSyncIncrement:
add w1, w1, #1
stxr w2, w1, [x0]
cbnz w2, TryInternalSyncIncrement
+ mov x0, x1
dmb sy
ret
@@ -199,5 +200,6 @@ TryInternalSyncDecrement:
sub w1, w1, #1
stxr w2, w1, [x0]
cbnz w2, TryInternalSyncDecrement
+ mov x0, x1
dmb sy
ret
--
1.9.1
Hi folks,
In MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf, the
polling interval is fixed by macro:
#define KEYBOARD_TIMER_INTERVAL 200000 // 0.02s
However, this may cause fast input truncation on some platform. For
example, we have a serial console with below features:
1. Baud rate: 115200
2. FIFO depth of UART device: 32
If we want to capture all input, we need to poll with the interval of 32
/ (115200 / (8 + 1 + 1)) = 2.8 ms, 8 + 1 + 1 for data bits + start bit +
stop bit.
So, I suppose to use a PCD to set the interval statically, or calculate
from serial IO protocol IO Mode data dynamically, which contains FIFO
depth and data bits, etc.
Please let me know your comments.
Thanks.
(If you see my another mail like this, please ignore that; this one is
the final version; sorry for the noise)