Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
OpenCorePKG_MOD
提交
fff571f1
O
OpenCorePKG_MOD
项目概览
btwise
/
OpenCorePKG_MOD
通知
26
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
OpenCorePKG_MOD
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fff571f1
编写于
12月 16, 2021
作者:
V
vit9696
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Build: Updated underlying EDK II package to edk2-stable202111
上级
8f85ea91
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
1 addition
and
281 deletion
+1
-281
Changelog.md
Changelog.md
+1
-0
Patches/0001-ShellPkg-Add-support-for-input-with-separately-repor.patch
...hellPkg-Add-support-for-input-with-separately-repor.patch
+0
-221
Patches/0004-OvmfPkg-SioBusDxe-Add-PS2-mouse-support.patch
Patches/0004-OvmfPkg-SioBusDxe-Add-PS2-mouse-support.patch
+0
-23
Patches/0006-Fix-for-NOOPT-CLANG38-compilation-with-clang-13.patch
...006-Fix-for-NOOPT-CLANG38-compilation-with-clang-13.patch
+0
-37
未找到文件。
Changelog.md
浏览文件 @
fff571f1
...
...
@@ -5,6 +5,7 @@ OpenCore Changelog
-
Added
`ProvideCurrentCpuInfo`
support for Intel Alder Lake
-
Fixed typo in
`Cpuid1Data`
recommendations for Intel Rocket Lake and newer
-
Updated builtin firmware versions for SMBIOS and the rest
-
Updated underlying EDK II package to edk2-stable202111
#### v0.7.6
-
Fixed stack canary support when compiling with GCC
...
...
Patches/0001-ShellPkg-Add-support-for-input-with-separately-repor.patch
已删除
100644 → 0
浏览文件 @
8f85ea91
From 3ef5f6fb8cf4649d857f6065a06f0bb2fb8b9d3d Mon Sep 17 00:00:00 2001
From: Vitaly Cheptsov <vit9696@protonmail.com>
Date: Mon, 10 Feb 2020 13:10:40 +0300
Subject: [PATCH 1/1] ShellPkg: Add support for input with separately reported
modifiers
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2510
Some firmwares:
- Report Shift modifier even when they report upper-case unicode letter.
- Report Ctrl modifier with "shifted" UniChar (i.e. X - 'A' + 1).
This change provides support for these firmwares preserving the compatibility
with the previous input handling.
Signed-off-by: Michael Belyaev <usrsse2@icloud.com>
Reviewed-by: Vitaly Cheptsov <vit9696@protonmail.com>
---
ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/MainTextEditor.c | 37 ++++++++++++++------
ShellPkg/Library/UefiShellDebug1CommandsLib/EditInputBar.c | 28 ++++++++++-----
ShellPkg/Library/UefiShellDebug1CommandsLib/EditMenuBar.c | 6 ++++
ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c | 11 +++---
4 files changed, 58 insertions(+), 24 deletions(-)
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/MainTextEditor.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/MainTextEditor.c
index df530f1119..9615a4dfbd 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/MainTextEditor.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/MainTextEditor.c
@@ -1381,8 +1381,8 @@
MainCommandDisplayHelp (
continue;
}
- if (((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) == 0) ||
- (KeyData.KeyState.KeyShiftState == EFI_SHIFT_STATE_VALID)) {
+ if (((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) == 0)
+ || (KeyData.KeyState.KeyShiftState == EFI_SHIFT_STATE_VALID)) {
//
// For consoles that don't support/report shift state,
// CTRL+W is translated to L'W' - L'A' + 1.
@@ -1390,14 +1390,17 @@
MainCommandDisplayHelp (
if (KeyData.Key.UnicodeChar == L'W' - L'A' + 1) {
break;
}
- } else if (((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) != 0) &&
- ((KeyData.KeyState.KeyShiftState & (EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) != 0) &&
- ((KeyData.KeyState.KeyShiftState & ~(EFI_SHIFT_STATE_VALID | EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) == 0)) {
+ } else if (((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) != 0)
+ && ((KeyData.KeyState.KeyShiftState & (EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) != 0)
+ && ((KeyData.KeyState.KeyShiftState & ~(EFI_SHIFT_STATE_VALID | EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) == 0)) {
//
// For consoles that supports/reports shift state,
// make sure that only CONTROL shift key is pressed.
+ // For some consoles that report shift state,
+ // CTRL+W is still translated to L'W' - L'A' + 1.
//
- if ((KeyData.Key.UnicodeChar == 'w') || (KeyData.Key.UnicodeChar == 'W')) {
+ if ((KeyData.Key.UnicodeChar == L'w') || (KeyData.Key.UnicodeChar == L'W')
+ || (KeyData.Key.UnicodeChar == L'w' - L'a' + 1) || (KeyData.Key.UnicodeChar == L'W' - L'A' + 1)) {
break;
}
}
@@ -1834,7 +1837,8 @@
MainEditorKeyInput (
EFI_KEY_DATA KeyData;
EFI_STATUS Status;
EFI_SIMPLE_POINTER_STATE MouseState;
- BOOLEAN NoShiftState;
+ BOOLEAN NoModifierState;
+ BOOLEAN ShiftOnlyState;
do {
@@ -1886,17 +1890,28 @@
MainEditorKeyInput (
//
StatusBarSetRefresh();
//
- // NoShiftState: TRUE when no shift key is pressed.
+ // NoModifierState: TRUE when no modifier key is pressed.
//
- NoShiftState = ((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) == 0) || (KeyData.KeyState.KeyShiftState == EFI_SHIFT_STATE_VALID);
+ NoModifierState = ((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) == 0)
+ || (KeyData.KeyState.KeyShiftState == EFI_SHIFT_STATE_VALID);
+ //
+ // ShiftOnlyState: TRUE when no modifier key except Shift is pressed.
+ //
+ ShiftOnlyState = ((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) == 0)
+ || ((KeyData.KeyState.KeyShiftState
+ & ~(EFI_SHIFT_STATE_VALID | EFI_LEFT_SHIFT_PRESSED | EFI_RIGHT_SHIFT_PRESSED)) == 0);
//
// dispatch to different components' key handling function
//
if (EFI_NOT_FOUND != MenuBarDispatchControlHotKey(&KeyData)) {
Status = EFI_SUCCESS;
- } else if (NoShiftState && ((KeyData.Key.ScanCode == SCAN_NULL) || ((KeyData.Key.ScanCode >= SCAN_UP) && (KeyData.Key.ScanCode <= SCAN_PAGE_DOWN)))) {
+ } else if ((ShiftOnlyState && (KeyData.Key.ScanCode == SCAN_NULL))
+ || (NoModifierState && (KeyData.Key.ScanCode >= SCAN_UP) && (KeyData.Key.ScanCode <= SCAN_PAGE_DOWN))) {
+ //
+ // alphanumeric keys with or without shift, or arrow keys without shift
+ //
Status = FileBufferHandleInput (&KeyData.Key);
- } else if (NoShiftState && (KeyData.Key.ScanCode >= SCAN_F1) && (KeyData.Key.ScanCode <= SCAN_F12)) {
+ } else if (NoModifierState && (KeyData.Key.ScanCode >= SCAN_F1) && (KeyData.Key.ScanCode <= SCAN_F12)) {
Status = MenuBarDispatchFunctionKey (&KeyData.Key);
} else {
StatusBarSetStatusString (L"Unknown Command");
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/EditInputBar.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/EditInputBar.c
index 35b0b701e8..d053059220 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/EditInputBar.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/EditInputBar.c
@@ -130,6 +130,8 @@
InputBarRefresh (
UINTN EventIndex;
UINTN CursorRow;
UINTN CursorCol;
+ BOOLEAN ShiftPressed;
+ BOOLEAN ModifiersPressed;
//
// variable initialization
@@ -180,17 +182,23 @@
InputBarRefresh (
if (EFI_ERROR (Status)) {
continue;
}
- if (((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) != 0) &&
- (KeyData.KeyState.KeyShiftState != EFI_SHIFT_STATE_VALID)) {
- //
- // Shift key pressed.
- //
+ ModifiersPressed = ((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) != 0)
+ && (KeyData.KeyState.KeyShiftState != EFI_SHIFT_STATE_VALID);
+
+ //
+ // TRUE if Shift is pressed and no other modifiers are pressed
+ //
+ ShiftPressed = ModifiersPressed &&
+ ((KeyData.KeyState.KeyShiftState &
+ ~(EFI_SHIFT_STATE_VALID | EFI_LEFT_SHIFT_PRESSED | EFI_RIGHT_SHIFT_PRESSED)) == 0);
+
+ if (ModifiersPressed && !ShiftPressed) {
continue;
}
//
// pressed ESC
//
- if (KeyData.Key.ScanCode == SCAN_ESC) {
+ if (!ModifiersPressed && KeyData.Key.ScanCode == SCAN_ESC) {
Size = 0;
Status = EFI_NOT_READY;
break;
@@ -198,9 +206,10 @@
InputBarRefresh (
//
// return pressed
//
- if (KeyData.Key.UnicodeChar == CHAR_LINEFEED || KeyData.Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {
+ if (!ModifiersPressed
+ && (KeyData.Key.UnicodeChar == CHAR_LINEFEED || KeyData.Key.UnicodeChar == CHAR_CARRIAGE_RETURN)) {
break;
- } else if (KeyData.Key.UnicodeChar == CHAR_BACKSPACE) {
+ } else if (!ModifiersPressed && KeyData.Key.UnicodeChar == CHAR_BACKSPACE) {
//
// backspace
//
@@ -213,7 +222,8 @@
InputBarRefresh (
}
}
- } else if (KeyData.Key.UnicodeChar <= 127 && KeyData.Key.UnicodeChar >= 32) {
+ } else if ((!ModifiersPressed || ShiftPressed)
+ && KeyData.Key.UnicodeChar <= 127 && KeyData.Key.UnicodeChar >= 32) {
//
// VALID ASCII char pressed
//
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/EditMenuBar.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/EditMenuBar.c
index ca8bc506d9..eabbf3c571 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/EditMenuBar.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/EditMenuBar.c
@@ -190,11 +190,17 @@
MenuBarDispatchControlHotKey (
//
// For consoles that supports/reports shift state,
// make sure only CONTROL is pressed.
+ // For some consoles that report shift state,
+ // Ctrl+A is still translated to 1 (UnicodeChar).
//
if ((KeyData->Key.UnicodeChar >= L'A') && (KeyData->Key.UnicodeChar <= L'Z')) {
ControlIndex = KeyData->Key.UnicodeChar - L'A' + 1;
} else if ((KeyData->Key.UnicodeChar >= L'a') && (KeyData->Key.UnicodeChar <= L'z')) {
ControlIndex = KeyData->Key.UnicodeChar - L'a' + 1;
+ } else if ((KeyData->Key.UnicodeChar >= L'A' - L'A' + 1) && (KeyData->Key.UnicodeChar <= L'Z' - L'A' + 1)) {
+ ControlIndex = KeyData->Key.UnicodeChar;
+ } else if ((KeyData->Key.UnicodeChar >= L'a' - L'a' + 1) && (KeyData->Key.UnicodeChar <= L'z' - L'z' + 1)) {
+ ControlIndex = KeyData->Key.UnicodeChar;
}
}
if ((SCAN_CONTROL_Z < ControlIndex)
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c
index a00df49d38..394e531c16 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c
@@ -137,14 +137,17 @@
HMainCommandDisplayHelp (
if (KeyData.Key.UnicodeChar == L'W' - L'A' + 1) {
break;
}
- } else if (((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) != 0) &&
- ((KeyData.KeyState.KeyShiftState & (EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) != 0) &&
- ((KeyData.KeyState.KeyShiftState & ~(EFI_SHIFT_STATE_VALID | EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) == 0)) {
+ } else if (((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) != 0)
+ && ((KeyData.KeyState.KeyShiftState & (EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) != 0)
+ && ((KeyData.KeyState.KeyShiftState & ~(EFI_SHIFT_STATE_VALID | EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) == 0)) {
//
// For consoles that supports/reports shift state,
// make sure that only CONTROL shift key is pressed.
+ // For some consoles that report shift state,
+ // CTRL+W is still translated to L'W' - L'A' + 1.
//
- if ((KeyData.Key.UnicodeChar == 'w') || (KeyData.Key.UnicodeChar == 'W')) {
+ if ((KeyData.Key.UnicodeChar == 'w') || (KeyData.Key.UnicodeChar == 'W')
+ || (KeyData.Key.UnicodeChar == L'w' - L'a' + 1) || (KeyData.Key.UnicodeChar == L'W' - L'A' + 1)) {
break;
}
}
--
2.21.1 (Apple Git-122.3)
Patches/0004-OvmfPkg-SioBusDxe-Add-PS2-mouse-support.patch
已删除
100644 → 0
浏览文件 @
8f85ea91
From: Goldfish64 <goldfishnet@aol.com>
Subject: OvmfPkg/SioBusDxe: Add PS/2 mouse support
SioBusDxe by default does not create a device for PS/2 mice, this patch adds that device.
diff --git a/OvmfPkg/SioBusDxe/SioService.c b/OvmfPkg/SioBusDxe/SioService.c
index 407132ddcd6667498362e122fff6df6677fe6877..d5a87219d7cdd83a30e642cd1e6cad56d6312cff 100644
--- a/OvmfPkg/SioBusDxe/SioService.c
+++ b/OvmfPkg/SioBusDxe/SioService.c
@@ -67,7 +67,12 @@
SIO_DEVICE_INFO mDevicesInfo[] = {
EISA_PNP_ID(0x303),
0,
{ (ACPI_SMALL_RESOURCE_HEADER *) &mPs2KeyboardDeviceResources }
- } // PS/2 Keyboard Controller
+ }, // PS/2 Keyboard Controller
+ {
+ EISA_PNP_ID(0xF13),
+ 0,
+ { (ACPI_SMALL_RESOURCE_HEADER *) &mPs2KeyboardDeviceResources }
+ } // PS/2 Mouse Controller
};
//
Patches/0006-Fix-for-NOOPT-CLANG38-compilation-with-clang-13.patch
已删除
100644 → 0
浏览文件 @
8f85ea91
From 76be193a80051662fe6a83307285e5fdde71be6f Mon Sep 17 00:00:00 2001
From: ocbuild <ocbuild@acidanthera.local>
Date: Fri, 22 Oct 2021 16:20:16 +0300
Subject: [PATCH] Fix for NOOPT CLANG38 compilation with clang-13.
---
BaseTools/Source/C/GenFw/Elf32Convert.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.c b/BaseTools/Source/C/GenFw/Elf32Convert.c
index d917a44..b785998 100644
--- a/BaseTools/Source/C/GenFw/Elf32Convert.c
+++ b/BaseTools/Source/C/GenFw/Elf32Convert.c
@@ -779,6 +779,7 @@
WriteSections32 (
*(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr
+ mCoffSectionsOffset[Sym->st_shndx];
break;
+ case R_386_PLT32:
case R_386_PC32:
//
// Relative relocation: Symbol - Ip + Addend
@@ -900,6 +901,7 @@
WriteRelocations32 (
if (mEhdr->e_machine == EM_386) {
switch (ELF_R_TYPE(Rel->r_info)) {
case R_386_NONE:
+ case R_386_PLT32:
case R_386_PC32:
//
// No fixup entry required.
@@ -1168,5 +1170,3 @@
CleanUp32 (
free (mCoffSectionsOffset);
}
}
-
-
--
2.20.1
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录