Leif and Ard,
I have the branch "rfranz-backspace" on
http://git.linaro.org/people/roy.franz/uefi-next.git
that I'd like to get you to try to make sure it works with other
setups. This should also fix
the delete key.
I still need to look more at how EDK2 determines which console type to
use, and if I need
to conditionalize any of this based on terminal type.
The backspace 'fix' is to treat both 0x8(^H) and 0x7f(^?) as
backspace. This is done by changing
0x7f values to 0x8 during the console input processing. This is
similar to how u-boot treats both
values as backspace - delete doesn't work.
Fixing the delete key is a big more involved, many (most?) linux
terminals use the vt220 escape
sequence [3~ to do delete. Right now EDK2 only handlings 2 byte
escape sequences, so the
state machine needed to be extended. This is a very 'linuxy' change,
so I don't know how popular
it will be.
I need to try the patches with a windows based terminal emulator, and
I suspect I'll end up with
the delete key being backspace, and there really being no delete.
Thanks,
Roy
- This multiboot support is built into linux module for aarch64.
- The implementation for Xen is following <Multiboot on ARM Specification>:
http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Multiboot
and xen/docs/misc/arm/device-tree/booting.txt in Xen source code.
- 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…
- This adds support for the Xen Multiboot on ARM specification for arm64,
enabling config file portability across the architectures.
- The multiboot command is currently x86-only, so reusing these command names
should not conflict with any future additions of ARM support to multiboot2.
- The reason of adding this functionality to the existing "linux" module
rather than "multiboot(2)"
(1)multiboot is x86 only
(2)Multiboot is added to "linux" module because it reuses existing code.
- Some changes in original linux module code
Move some #define from grub-core/loader/arm64/linux.c to include/grub/arm64/linux.h
Make some shared functions for multiboot.c
Remove "loaded" checking in the grub_cmd_devicetree of linux.c
- Add grub_fdt_set_reg64 macro into fdt.h header file for inserting "reg" properiy,
while #address-cells = <0x2> and #size-cells = <0x2>
- Add the introduction of multiboot/module command in docs/grub.texi
This multiboot support will be built in linux module for aarch64,
and can not be used alone.
docs/grub.texi | 10 +
grub-core/Makefile.core.def | 1 +
grub-core/loader/arm64/linux.c | 72 ++---
grub-core/loader/arm64/multiboot.c | 593 +++++++++++++++++++++++++++++++++++++
include/grub/arm64/linux.h | 11 +
include/grub/arm64/multiboot.h | 115 +++++++
include/grub/fdt.h | 12 +
7 files changed, 778 insertions(+), 36 deletions(-)
create mode 100644 grub-core/loader/arm64/multiboot.c
create mode 100644 include/grub/arm64/multiboot.h
Signed-off-by: Fu Wei <fu.wei(a)linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm(a)linaro.org>
--
1.8.3.1