17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * CDDL HEADER START 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 5*ae115bc7Smrj * Common Development and Distribution License (the "License"). 6*ae115bc7Smrj * You may not use this file except in compliance with the License. 77c478bd9Sstevel@tonic-gate * 87c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 97c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 107c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 117c478bd9Sstevel@tonic-gate * and limitations under the License. 127c478bd9Sstevel@tonic-gate * 137c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 147c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 157c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 167c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 177c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 187c478bd9Sstevel@tonic-gate * 197c478bd9Sstevel@tonic-gate * CDDL HEADER END 207c478bd9Sstevel@tonic-gate */ 217c478bd9Sstevel@tonic-gate /* 22*ae115bc7Smrj * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 23*ae115bc7Smrj * Use is subject to license terms. 247c478bd9Sstevel@tonic-gate */ 257c478bd9Sstevel@tonic-gate 267c478bd9Sstevel@tonic-gate /* 27*ae115bc7Smrj * Keyboard table for bootstrap's simple keyboard driver. 287c478bd9Sstevel@tonic-gate */ 297c478bd9Sstevel@tonic-gate 30*ae115bc7Smrj #include "boot_keyboard_table.h" 317c478bd9Sstevel@tonic-gate 327c478bd9Sstevel@tonic-gate #define A | KBTYPE_ALPHA 337c478bd9Sstevel@tonic-gate #define C & 0x1f 347c478bd9Sstevel@tonic-gate #define F | KBTYPE_FUNC 357c478bd9Sstevel@tonic-gate #define N | KBTYPE_NUMPAD 367c478bd9Sstevel@tonic-gate 377c478bd9Sstevel@tonic-gate #define ALT KBTYPE_SPEC_ALT 387c478bd9Sstevel@tonic-gate #define CTRL KBTYPE_SPEC_CTRL 397c478bd9Sstevel@tonic-gate #define LSHIFT KBTYPE_SPEC_LSHIFT 407c478bd9Sstevel@tonic-gate #define NOP KBTYPE_SPEC_NOP 417c478bd9Sstevel@tonic-gate #define NUMLK KBTYPE_SPEC_NUM_LOCK 427c478bd9Sstevel@tonic-gate #define SCRLLK KBTYPE_SPEC_SCROLL_LOCK 437c478bd9Sstevel@tonic-gate #define CAPSLK KBTYPE_SPEC_CAPS_LOCK 447c478bd9Sstevel@tonic-gate #define RSHIFT KBTYPE_SPEC_RSHIFT 457c478bd9Sstevel@tonic-gate #define REBOOT KBTYPE_SPEC_MAYBE_REBOOT 467c478bd9Sstevel@tonic-gate #define UNDEF KBTYPE_SPEC_UNDEF 477c478bd9Sstevel@tonic-gate 487c478bd9Sstevel@tonic-gate struct keyboard_translate keyboard_translate[128] = { 497c478bd9Sstevel@tonic-gate /* Normal Shifted Ctrled Alted */ 507c478bd9Sstevel@tonic-gate /* 00 */ UNDEF, UNDEF, UNDEF, UNDEF, 517c478bd9Sstevel@tonic-gate /* 01 */ '['C, '['C, NOP, NOP, 527c478bd9Sstevel@tonic-gate /* 02 */ '1', '!', NOP, 0x78 F, 537c478bd9Sstevel@tonic-gate /* 03 */ '2', '@', NOP, 0x79 F, 547c478bd9Sstevel@tonic-gate /* 04 */ '3', '#', NOP, 0x7a F, 557c478bd9Sstevel@tonic-gate /* 05 */ '4', '$', NOP, 0x7b F, 567c478bd9Sstevel@tonic-gate /* 06 */ '5', '%', NOP, 0x7c F, 577c478bd9Sstevel@tonic-gate /* 07 */ '6', '^', '^'C, 0x7d F, 587c478bd9Sstevel@tonic-gate /* 08 */ '7', '&', NOP, 0x7e F, 597c478bd9Sstevel@tonic-gate /* 09 */ '8', '*', NOP, 0x7f F, 607c478bd9Sstevel@tonic-gate /* 0a */ '9', '(', NOP, 0x80 F, 617c478bd9Sstevel@tonic-gate /* 0b */ '0', ')', NOP, 0x81 F, 627c478bd9Sstevel@tonic-gate /* 0c */ '-', '_', NOP, 0x82 F, 637c478bd9Sstevel@tonic-gate /* 0d */ '=', '+', NOP, 0x83 F, 647c478bd9Sstevel@tonic-gate /* 0e */ 'h'C, 0x0e F, 0x7f, NOP, 657c478bd9Sstevel@tonic-gate /* 0f */ 'i'C, 0x0f F, NOP, NOP, 667c478bd9Sstevel@tonic-gate /* 10 */ 'q'A, 'Q', 'q'C, 0x10 F, 677c478bd9Sstevel@tonic-gate /* 11 */ 'w'A, 'W', 'w'C, 0x11 F, 687c478bd9Sstevel@tonic-gate /* 12 */ 'e'A, 'E', 'e'C, 0x12 F, 697c478bd9Sstevel@tonic-gate /* 13 */ 'r'A, 'R', 'r'C, 0x13 F, 707c478bd9Sstevel@tonic-gate /* 14 */ 't'A, 'T', 't'C, 0x14 F, 717c478bd9Sstevel@tonic-gate /* 15 */ 'y'A, 'Y', 'y'C, 0x15 F, 727c478bd9Sstevel@tonic-gate /* 16 */ 'u'A, 'U', 'u'C, 0x16 F, 737c478bd9Sstevel@tonic-gate /* 17 */ 'i'A, 'I', 'i'C, 0x17 F, 747c478bd9Sstevel@tonic-gate /* 18 */ 'o'A, 'O', 'o'C, 0x18 F, 757c478bd9Sstevel@tonic-gate /* 19 */ 'p'A, 'P', 'p'C, 0x19 F, 767c478bd9Sstevel@tonic-gate /* 1a */ '[', '{', '['C, NOP, 777c478bd9Sstevel@tonic-gate /* 1b */ ']', '}', ']'C, NOP, 787c478bd9Sstevel@tonic-gate /* 1c */ 'm'C, 'm'C, NOP, NOP, 797c478bd9Sstevel@tonic-gate /* 1d */ CTRL, CTRL, CTRL, CTRL, 807c478bd9Sstevel@tonic-gate /* 1e */ 'a'A, 'A', 'a'C, 0x1e F, 817c478bd9Sstevel@tonic-gate /* 1f */ 's'A, 'S', 's'C, 0x1f F, 827c478bd9Sstevel@tonic-gate /* 20 */ 'd'A, 'D', 'd'C, 0x20 F, 837c478bd9Sstevel@tonic-gate /* 21 */ 'f'A, 'F', 'f'C, 0x21 F, 847c478bd9Sstevel@tonic-gate /* 22 */ 'g'A, 'G', 'g'C, 0x22 F, 857c478bd9Sstevel@tonic-gate /* 23 */ 'h'A, 'H', 'h'C, 0x23 F, 867c478bd9Sstevel@tonic-gate /* 24 */ 'j'A, 'J', 'j'C, 0x24 F, 877c478bd9Sstevel@tonic-gate /* 25 */ 'k'A, 'K', 'k'C, 0x25 F, 887c478bd9Sstevel@tonic-gate /* 26 */ 'l'A, 'L', 'l'C, 0x26 F, 897c478bd9Sstevel@tonic-gate /* 27 */ ';', ':', NOP, NOP, 907c478bd9Sstevel@tonic-gate /* 28 */ '\'', '"', NOP, NOP, 917c478bd9Sstevel@tonic-gate /* 29 */ '`', '~', NOP, NOP, 927c478bd9Sstevel@tonic-gate /* 2a */ LSHIFT, LSHIFT, LSHIFT, LSHIFT, 937c478bd9Sstevel@tonic-gate /* 2b */ '\\', '|', '\\'C, NOP, 947c478bd9Sstevel@tonic-gate /* 2c */ 'z'A, 'Z', 'z'C, 0x2c F, 957c478bd9Sstevel@tonic-gate /* 2d */ 'x'A, 'X', 'x'C, 0x2d F, 967c478bd9Sstevel@tonic-gate /* 2e */ 'c'A, 'C', 'c'C, 0x2e F, 977c478bd9Sstevel@tonic-gate /* 2f */ 'v'A, 'V', 'v'C, 0x2f F, 987c478bd9Sstevel@tonic-gate /* 30 */ 'b'A, 'B', 'b'C, 0x30 F, 997c478bd9Sstevel@tonic-gate /* 31 */ 'n'A, 'N', 'n'C, 0x31 F, 1007c478bd9Sstevel@tonic-gate /* 32 */ 'm'A, 'M', 'm'C, 0x32 F, 1017c478bd9Sstevel@tonic-gate /* 33 */ ',', '<', NOP, NOP, 1027c478bd9Sstevel@tonic-gate /* 34 */ '.', '>', NOP, NOP, 1037c478bd9Sstevel@tonic-gate /* 35 */ '/', '?', NOP, NOP, 1047c478bd9Sstevel@tonic-gate /* 36 */ RSHIFT, RSHIFT, RSHIFT, RSHIFT, 1057c478bd9Sstevel@tonic-gate /* 37 */ '*', NOP, NOP, NOP, /* * PrtSc */ 1067c478bd9Sstevel@tonic-gate /* 38 */ ALT, ALT, ALT, ALT, 1077c478bd9Sstevel@tonic-gate /* 39 */ ' ', ' ', NOP, NOP, 1087c478bd9Sstevel@tonic-gate /* 3a */ CAPSLK, CAPSLK, CAPSLK, CAPSLK, 1097c478bd9Sstevel@tonic-gate /* 3b */ 0x3b F, 0x54 F, 0x5e F, 0x68 F, 1107c478bd9Sstevel@tonic-gate /* 3c */ 0x3c F, 0x55 F, 0x5f F, 0x69 F, 1117c478bd9Sstevel@tonic-gate /* 3d */ 0x3d F, 0x56 F, 0x60 F, 0x6a F, 1127c478bd9Sstevel@tonic-gate /* 3e */ 0x3e F, 0x57 F, 0x61 F, 0x6b F, 1137c478bd9Sstevel@tonic-gate /* 3f */ 0x3f F, 0x58 F, 0x62 F, 0x6c F, 1147c478bd9Sstevel@tonic-gate /* 40 */ 0x40 F, 0x59 F, 0x63 F, 0x6d F, 1157c478bd9Sstevel@tonic-gate /* 41 */ 0x41 F, 0x5a F, 0x64 F, 0x6e F, 1167c478bd9Sstevel@tonic-gate /* 42 */ 0x42 F, 0x5b F, 0x65 F, 0x6f F, 1177c478bd9Sstevel@tonic-gate /* 43 */ 0x43 F, 0x5c F, 0x66 F, 0x70 F, 1187c478bd9Sstevel@tonic-gate /* 44 */ 0x44 F, 0x5d F, 0x67 F, 0x71 F, 1197c478bd9Sstevel@tonic-gate /* 45 */ NUMLK, NUMLK, NUMLK, NUMLK, 1207c478bd9Sstevel@tonic-gate /* 46 */ SCRLLK, SCRLLK, SCRLLK, SCRLLK, 1217c478bd9Sstevel@tonic-gate /* 47 */ 0x47 N, '7', NOP, NOP, 1227c478bd9Sstevel@tonic-gate /* 48 */ 0x48 N, '8', NOP, NOP, 1237c478bd9Sstevel@tonic-gate /* 49 */ 0x49 N, '9', NOP, NOP, 1247c478bd9Sstevel@tonic-gate /* 4a */ '-', '-', NOP, NOP, 1257c478bd9Sstevel@tonic-gate /* 4b */ 0x4b N, '4', NOP, NOP, 1267c478bd9Sstevel@tonic-gate /* 4c */ NOP, '5', NOP, NOP, 1277c478bd9Sstevel@tonic-gate /* 4d */ 0x4d N, '6', NOP, NOP, 1287c478bd9Sstevel@tonic-gate /* 4e */ '+', '+', NOP, NOP, 1297c478bd9Sstevel@tonic-gate /* 4f */ 0x4f N, '1', NOP, NOP, 1307c478bd9Sstevel@tonic-gate /* 50 */ 0x50 N, '2', NOP, NOP, 1317c478bd9Sstevel@tonic-gate /* 51 */ 0x51 N, '3', NOP, NOP, 1327c478bd9Sstevel@tonic-gate /* 52 */ 0x52 N, '0', NOP, NOP, 1337c478bd9Sstevel@tonic-gate /* 53 */ 0x53 N, '.', REBOOT, REBOOT, 1347c478bd9Sstevel@tonic-gate /* 54 */ NOP, NOP, NOP, NOP, /* SysReq */ 1357c478bd9Sstevel@tonic-gate /* 55 */ UNDEF, UNDEF, UNDEF, UNDEF, 1367c478bd9Sstevel@tonic-gate /* 56 */ UNDEF, UNDEF, UNDEF, UNDEF, 1377c478bd9Sstevel@tonic-gate /* 57 */ UNDEF, UNDEF, UNDEF, UNDEF, 1387c478bd9Sstevel@tonic-gate /* 58 */ UNDEF, UNDEF, UNDEF, UNDEF, 1397c478bd9Sstevel@tonic-gate /* 59 */ UNDEF, UNDEF, UNDEF, UNDEF, 1407c478bd9Sstevel@tonic-gate /* 5a */ UNDEF, UNDEF, UNDEF, UNDEF, 1417c478bd9Sstevel@tonic-gate /* 5b */ UNDEF, UNDEF, UNDEF, UNDEF, 1427c478bd9Sstevel@tonic-gate /* 5c */ UNDEF, UNDEF, UNDEF, UNDEF, 1437c478bd9Sstevel@tonic-gate /* 5d */ UNDEF, UNDEF, UNDEF, UNDEF, 1447c478bd9Sstevel@tonic-gate /* 5e */ UNDEF, UNDEF, UNDEF, UNDEF, 1457c478bd9Sstevel@tonic-gate /* 5f */ UNDEF, UNDEF, UNDEF, UNDEF, 1467c478bd9Sstevel@tonic-gate /* 60 */ UNDEF, UNDEF, UNDEF, UNDEF, 1477c478bd9Sstevel@tonic-gate /* 61 */ UNDEF, UNDEF, UNDEF, UNDEF, 1487c478bd9Sstevel@tonic-gate /* 62 */ UNDEF, UNDEF, UNDEF, UNDEF, 1497c478bd9Sstevel@tonic-gate /* 63 */ UNDEF, UNDEF, UNDEF, UNDEF, 1507c478bd9Sstevel@tonic-gate /* 64 */ UNDEF, UNDEF, UNDEF, UNDEF, 1517c478bd9Sstevel@tonic-gate /* 65 */ UNDEF, UNDEF, UNDEF, UNDEF, 1527c478bd9Sstevel@tonic-gate /* 66 */ UNDEF, UNDEF, UNDEF, UNDEF, 1537c478bd9Sstevel@tonic-gate /* 67 */ UNDEF, UNDEF, UNDEF, UNDEF, 1547c478bd9Sstevel@tonic-gate /* 68 */ UNDEF, UNDEF, UNDEF, UNDEF, 1557c478bd9Sstevel@tonic-gate /* 69 */ UNDEF, UNDEF, UNDEF, UNDEF, 1567c478bd9Sstevel@tonic-gate /* 6a */ UNDEF, UNDEF, UNDEF, UNDEF, 1577c478bd9Sstevel@tonic-gate /* 6b */ UNDEF, UNDEF, UNDEF, UNDEF, 1587c478bd9Sstevel@tonic-gate /* 6c */ UNDEF, UNDEF, UNDEF, UNDEF, 1597c478bd9Sstevel@tonic-gate /* 6d */ UNDEF, UNDEF, UNDEF, UNDEF, 1607c478bd9Sstevel@tonic-gate /* 6e */ UNDEF, UNDEF, UNDEF, UNDEF, 1617c478bd9Sstevel@tonic-gate /* 6f */ UNDEF, UNDEF, UNDEF, UNDEF, 1627c478bd9Sstevel@tonic-gate /* 70 */ UNDEF, UNDEF, UNDEF, UNDEF, 1637c478bd9Sstevel@tonic-gate /* 71 */ UNDEF, UNDEF, UNDEF, UNDEF, 1647c478bd9Sstevel@tonic-gate /* 72 */ UNDEF, UNDEF, UNDEF, UNDEF, 1657c478bd9Sstevel@tonic-gate /* 73 */ UNDEF, UNDEF, UNDEF, UNDEF, 1667c478bd9Sstevel@tonic-gate /* 74 */ UNDEF, UNDEF, UNDEF, UNDEF, 1677c478bd9Sstevel@tonic-gate /* 75 */ UNDEF, UNDEF, UNDEF, UNDEF, 1687c478bd9Sstevel@tonic-gate /* 76 */ UNDEF, UNDEF, UNDEF, UNDEF, 1697c478bd9Sstevel@tonic-gate /* 77 */ UNDEF, UNDEF, UNDEF, UNDEF, 1707c478bd9Sstevel@tonic-gate /* 78 */ UNDEF, UNDEF, UNDEF, UNDEF, 1717c478bd9Sstevel@tonic-gate /* 79 */ UNDEF, UNDEF, UNDEF, UNDEF, 1727c478bd9Sstevel@tonic-gate /* 7a */ UNDEF, UNDEF, UNDEF, UNDEF, 1737c478bd9Sstevel@tonic-gate /* 7b */ UNDEF, UNDEF, UNDEF, UNDEF, 1747c478bd9Sstevel@tonic-gate /* 7c */ UNDEF, UNDEF, UNDEF, UNDEF, 1757c478bd9Sstevel@tonic-gate /* 7d */ UNDEF, UNDEF, UNDEF, UNDEF, 1767c478bd9Sstevel@tonic-gate /* 7e */ UNDEF, UNDEF, UNDEF, UNDEF, 1777c478bd9Sstevel@tonic-gate /* 7f */ UNDEF, UNDEF, UNDEF, UNDEF, 1787c478bd9Sstevel@tonic-gate }; 179