Gabe Black has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/55807 )
Change subject: dev: Implement PS/2 keyboard echo and set scan code
commands.
......................................................................
dev: Implement PS/2 keyboard echo and set scan code commands.
Don't actually let anyone set a scan code set other than 2, since that's
all our converter knows about. It's probably all anyone will want
anyway.
Change-Id: Ief2f35448adc80e30e8fdf13ef9d64d6f19447eb
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/55807
Reviewed-by: Matthew Poremba <matthew.pore...@amd.com>
Maintainer: Gabe Black <gabe.bl...@gmail.com>
Tested-by: kokoro <noreply+kok...@google.com>
---
M src/dev/ps2/keyboard.cc
1 file changed, 36 insertions(+), 2 deletions(-)
Approvals:
Matthew Poremba: Looks good to me, approved
Gabe Black: Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/dev/ps2/keyboard.cc b/src/dev/ps2/keyboard.cc
index fb63d48..e3b13ac 100644
--- a/src/dev/ps2/keyboard.cc
+++ b/src/dev/ps2/keyboard.cc
@@ -128,9 +128,26 @@
return true;
}
case keyboard::DiagnosticEcho:
- panic("Keyboard diagnostic echo unimplemented.\n");
+ send(keyboard::DiagnosticEcho);
+ return true;
case keyboard::AlternateScanCodes:
- panic("Accessing alternate scan codes unimplemented.\n");
+ if (data.size() == 1) {
+ DPRINTF(PS2, "Got scan code set command.\n");
+ sendAck();
+ return false;
+ } else {
+ sendAck();
+ uint8_t scan_code = data[1];
+ if (scan_code == 0) {
+ DPRINTF(PS2, "Sending hard coded current scan code set
2.\n");
+ send(0x2);
+ } else {
+ DPRINTF(PS2, "Setting scan code set to %d.\n", scan_code);
+ panic_if(scan_code != 0x2,
+ "PS/2 scan code set %d not supported.", scan_code);
+ }
+ }
+ return true;
case keyboard::TypematicInfo:
if (data.size() == 1) {
DPRINTF(PS2, "Setting typematic info.\n");
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/55807
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Ief2f35448adc80e30e8fdf13ef9d64d6f19447eb
Gerrit-Change-Number: 55807
Gerrit-PatchSet: 13
Gerrit-Owner: Gabe Black <gabe.bl...@gmail.com>
Gerrit-Reviewer: Bradford Beckmann <bradford.beckm...@gmail.com>
Gerrit-Reviewer: Gabe Black <gabe.bl...@gmail.com>
Gerrit-Reviewer: Matt Sinclair <mattdsincl...@gmail.com>
Gerrit-Reviewer: Matthew Poremba <matthew.pore...@amd.com>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s