Matt Delco has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/32717
Change subject: libpayload: classify all keyboards
......................................................................
libpayload: classify all keyboards
Gets rid of 'unknown' and classifies all keyboards.
Depthcharge uses the keyboard type to help determine whether
it can trust the keyboard for security-sensitive confirmations.
Currently it trusts anything except usb, but now there's a need
to distrust ps/2 keyboards that are associated with untrusted
ECs. To help facilitate this, coreboot needs to report more
details about non-usb keyboards, so this change replaces unknown
with enum values that distinguish uart from ps/2. After this change
there are no unknown keyboards left, so I've removed the enum.
BUG=b:129471321
BRANCH=None
TEST=Local compile and flash to systems with trusted and non-trusted
ECs. Confirmed that security confirmation can't be performed via
keyboard on a system with an untrusted EC but can still be performed
on a system with a trusted EC.
Change-Id: Iee6295dafadf7cb3da98b62f43b0e184b2b69b1e
Signed-off-by: Matt Delco <delco(a)chromium.org>
---
M payloads/libpayload/drivers/i8042/keyboard.c
M payloads/libpayload/drivers/serial/8250.c
M payloads/libpayload/drivers/serial/ipq40xx.c
M payloads/libpayload/drivers/serial/ipq806x.c
M payloads/libpayload/drivers/serial/s5p.c
M payloads/libpayload/include/libpayload.h
6 files changed, 11 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/17/32717/1
diff --git a/payloads/libpayload/drivers/i8042/keyboard.c b/payloads/libpayload/drivers/i8042/keyboard.c
index 1035bf2..92a4146 100644
--- a/payloads/libpayload/drivers/i8042/keyboard.c
+++ b/payloads/libpayload/drivers/i8042/keyboard.c
@@ -296,7 +296,8 @@
static struct console_input_driver cons = {
.havekey = keyboard_havechar,
- .getchar = keyboard_getchar
+ .getchar = keyboard_getchar,
+ .input_type = CONSOLE_INPUT_TYPE_I8042,
};
void keyboard_init(void)
diff --git a/payloads/libpayload/drivers/serial/8250.c b/payloads/libpayload/drivers/serial/8250.c
index f503bdb..9502d4b 100644
--- a/payloads/libpayload/drivers/serial/8250.c
+++ b/payloads/libpayload/drivers/serial/8250.c
@@ -98,7 +98,8 @@
static struct console_input_driver consin = {
.havekey = &serial_havechar,
- .getchar = &serial_getchar
+ .getchar = &serial_getchar,
+ .input_type = CONSOLE_INPUT_TYPE_UART,
};
static struct console_output_driver consout = {
diff --git a/payloads/libpayload/drivers/serial/ipq40xx.c b/payloads/libpayload/drivers/serial/ipq40xx.c
index 52d71b8..7656ad7 100644
--- a/payloads/libpayload/drivers/serial/ipq40xx.c
+++ b/payloads/libpayload/drivers/serial/ipq40xx.c
@@ -560,6 +560,7 @@
consin.havekey = serial_havechar;
consin.getchar = serial_getchar;
+ consin.input_type = CONSOLE_INPUT_TYPE_UART;
consout.putchar = serial_putchar;
diff --git a/payloads/libpayload/drivers/serial/ipq806x.c b/payloads/libpayload/drivers/serial/ipq806x.c
index 912893d..183ada6 100644
--- a/payloads/libpayload/drivers/serial/ipq806x.c
+++ b/payloads/libpayload/drivers/serial/ipq806x.c
@@ -352,6 +352,7 @@
consin.havekey = serial_havechar;
consin.getchar = serial_getchar;
+ consin.input_type = CONSOLE_INPUT_TYPE_UART;
consout.putchar = serial_putchar;
diff --git a/payloads/libpayload/drivers/serial/s5p.c b/payloads/libpayload/drivers/serial/s5p.c
index 1d23352..6ca5dc4 100644
--- a/payloads/libpayload/drivers/serial/s5p.c
+++ b/payloads/libpayload/drivers/serial/s5p.c
@@ -84,7 +84,8 @@
static struct console_input_driver s5p_serial_input =
{
.havekey = &serial_havechar,
- .getchar = &serial_getchar
+ .getchar = &serial_getchar,
+ .input_type = CONSOLE_INPUT_TYPE_UART,
};
void serial_init(void)
diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h
index 3a84b3b..3fdb096 100644
--- a/payloads/libpayload/include/libpayload.h
+++ b/payloads/libpayload/include/libpayload.h
@@ -348,8 +348,10 @@
* @{
*/
typedef enum {
- CONSOLE_INPUT_TYPE_UNKNOWN = 0,
+ /* UNKNOWN was zero, but currently all are known */
CONSOLE_INPUT_TYPE_USB,
+ CONSOLE_INPUT_TYPE_I8042,
+ CONSOLE_INPUT_TYPE_UART,
} console_input_type;
void console_init(void);
--
To view, visit https://review.coreboot.org/c/coreboot/+/32717
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Iee6295dafadf7cb3da98b62f43b0e184b2b69b1e
Gerrit-Change-Number: 32717
Gerrit-PatchSet: 1
Gerrit-Owner: Matt Delco <delco(a)chromium.org>
Gerrit-MessageType: newchange
Jett Rink has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/32738
Change subject: mb/google/sarien: config ISH_GP6 with NF2
......................................................................
mb/google/sarien: config ISH_GP6 with NF2
A12 is not current set for ISH_GP6 so the ISH_LID_CL#_TAB
signal is not making it to the ISH properly. Enable the second native
function instead of the first.
BRANCH=none
BUG=b:131785573
TEST=gpioget on ISH now shows the correct gpio level
Change-Id: Ib3a654ae659037263aa9aa29d45b42ca67b7955b
Signed-off-by: Jett Rink <jettrink(a)chromium.org>
---
M src/mainboard/google/sarien/variants/arcada/gpio.c
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/38/32738/1
diff --git a/src/mainboard/google/sarien/variants/arcada/gpio.c b/src/mainboard/google/sarien/variants/arcada/gpio.c
index da95497..ea0601b 100644
--- a/src/mainboard/google/sarien/variants/arcada/gpio.c
+++ b/src/mainboard/google/sarien/variants/arcada/gpio.c
@@ -31,7 +31,7 @@
/* CLKOUT_LPC1 */ PAD_NC(GPP_A10, NONE),
/* PME# */ PAD_NC(GPP_A11, NONE),
/* ISH_LID_CL#_TAB */
-/* BM_BUSY# */ PAD_CFG_NF(GPP_A12, NONE, DEEP, NF1),
+/* ISH_GP6 */ PAD_CFG_NF(GPP_A12, NONE, DEEP, NF2),
/* SUSWARN# */ PAD_NC(GPP_A13, NONE),
/* ESPI_RESET# */
/* SUSACK# */ PAD_NC(GPP_A15, NONE),
--
To view, visit https://review.coreboot.org/c/coreboot/+/32738
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ib3a654ae659037263aa9aa29d45b42ca67b7955b
Gerrit-Change-Number: 32738
Gerrit-PatchSet: 1
Gerrit-Owner: Jett Rink <jettrink(a)chromium.org>
Gerrit-MessageType: newchange