1 1.5 isaki /* $NetBSD: properties.c,v 1.5 2015/09/21 08:04:43 isaki Exp $ */ 2 1.1 minoura 3 1.1 minoura /*- 4 1.1 minoura * Copyright (c) 1999 The NetBSD Foundation, Inc. 5 1.1 minoura * All rights reserved. 6 1.1 minoura * 7 1.1 minoura * This code is derived from software contributed to The NetBSD Foundation 8 1.1 minoura * by Minoura Makoto. 9 1.1 minoura * 10 1.1 minoura * Redistribution and use in source and binary forms, with or without 11 1.1 minoura * modification, are permitted provided that the following conditions 12 1.1 minoura * are met: 13 1.1 minoura * 1. Redistributions of source code must retain the above copyright 14 1.1 minoura * notice, this list of conditions and the following disclaimer. 15 1.1 minoura * 2. Redistributions in binary form must reproduce the above copyright 16 1.1 minoura * notice, this list of conditions and the following disclaimer in the 17 1.1 minoura * documentation and/or other materials provided with the distribution. 18 1.1 minoura * 19 1.1 minoura * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 1.1 minoura * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 1.1 minoura * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 1.1 minoura * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 1.1 minoura * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 1.1 minoura * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 1.1 minoura * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 1.1 minoura * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 1.1 minoura * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 1.1 minoura * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 1.1 minoura * POSSIBILITY OF SUCH DAMAGE. 30 1.1 minoura */ 31 1.1 minoura 32 1.1 minoura 33 1.1 minoura #include <sys/types.h> 34 1.1 minoura 35 1.1 minoura #include "memswitch.h" 36 1.1 minoura #include "methods.h" 37 1.1 minoura 38 1.1 minoura 39 1.1 minoura /* 40 1.1 minoura * XXX: gcc extension is used. 41 1.1 minoura */ 42 1.1 minoura struct property properties[] = { 43 1.1 minoura { 44 1.1 minoura "special", "magic1", 45 1.1 minoura 0, 4, 0, {longword:0}, 0, {longword:0}, {longword:MAGIC1}, 46 1.1 minoura parse_dummy, 0, 0, 47 1.1 minoura print_magic, 48 1.2 minoura fill_ulong, flush_ulong, 49 1.2 minoura " Magic. Must be 0x82773638\n" 50 1.1 minoura }, 51 1.1 minoura { 52 1.1 minoura "special", "magic2", 53 1.1 minoura 4, 4, 0, {longword:0}, 0, {longword:0}, {longword:MAGIC2}, 54 1.1 minoura parse_dummy, 0, 0, 55 1.1 minoura print_magic, 56 1.2 minoura fill_ulong, flush_ulong, 57 1.1 minoura " Magic. Must be 0x30303057\n" 58 1.1 minoura }, 59 1.1 minoura { 60 1.1 minoura "alarm", "bootmode", 61 1.1 minoura 30, 4, 0, {longword:0}, 0, {longword:0}, {longword:0}, 62 1.1 minoura parse_ulong, 0, 0xff0000, 63 1.1 minoura print_ulongh, 64 1.1 minoura fill_ulong, flush_ulong, 65 1.1 minoura " What to do on RTC alarm boot.\n" 66 1.1 minoura }, 67 1.1 minoura { 68 1.1 minoura "alarm", "boottime", 69 1.1 minoura 34, 4, 0, {longword:0}, 0, {longword:0}, {longword:0xffff0000}, 70 1.1 minoura parse_ulong, 0, 0xffffffff, 71 1.1 minoura print_ulongh, 72 1.1 minoura fill_ulong, flush_ulong, 73 1.1 minoura " Alarm.\n" 74 1.1 minoura }, 75 1.1 minoura { 76 1.1 minoura "alarm", "enabled", 77 1.1 minoura 38, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 0}}, 78 1.1 minoura parse_uchar, 0, 7, 79 1.1 minoura print_uchar, 80 1.1 minoura fill_uchar, flush_uchar, 81 1.1 minoura " 0 to enable alarm, 7 to disable.\n" 82 1.1 minoura }, 83 1.1 minoura { 84 1.1 minoura "alarm", "timetodown", 85 1.1 minoura 20, 4, 0, {longword:0}, 0, {longword:0}, {longword:-1}, 86 1.1 minoura parse_time, -1, 0x7fffffff, 87 1.1 minoura print_timesec, 88 1.1 minoura fill_ulong, flush_ulong, 89 1.1 minoura " When boot on alarm, time to shutdown is stored in second.\n" 90 1.1 minoura " Can be specified in minite with suffix minute.\n" 91 1.1 minoura }, 92 1.1 minoura { 93 1.1 minoura "boot", "device", 94 1.1 minoura 24, 2, 0, {word:{[0] 0}}, 0, {word:{[0] 0}}, {word:{[0] -1}}, 95 1.1 minoura parse_bootdev, 0, 0, 96 1.1 minoura print_bootdev, 97 1.1 minoura fill_ushort, flush_ushort, 98 1.1 minoura " Boot device.\n" 99 1.1 minoura " STD for standard, HDn for the nth harddisk, FDn for the nth floppy drive,\n" 100 1.3 minoura " ROM for the ROM firmware, RAM for the non-volatile SRAM,\n" 101 1.3 minoura " INSCSIn for the SCSI device ID n which is attached to the built-in adaptor,\n" 102 1.3 minoura " EXSCSIn for the SCSI device ID n which is attached to the external adaptor.\n" 103 1.1 minoura }, 104 1.1 minoura { 105 1.1 minoura "boot", "ramaddr", 106 1.1 minoura 16, 4, 0, {longword:0}, 0, {longword:0}, {longword:0xed0100}, 107 1.1 minoura parse_ulong, 0xed0000, 0xed3fff, 108 1.1 minoura print_ulongh, 109 1.1 minoura fill_ulong, flush_ulong, 110 1.1 minoura " If boot.device specifies to boot from RAM, the start address is stored.\n" 111 1.1 minoura }, 112 1.1 minoura { 113 1.1 minoura "boot", "romaddr", 114 1.1 minoura 12, 4, 0, {longword:0}, 0, {longword:0}, {longword:0xbffffc}, 115 1.1 minoura parse_ulong, 0xe80000, 0xffffff, 116 1.1 minoura print_ulongh, 117 1.1 minoura fill_ulong, flush_ulong, 118 1.1 minoura " If boot.device specifies to boot from ROM, the start address is stored.\n" 119 1.1 minoura }, 120 1.1 minoura { 121 1.1 minoura "display", "contrast", 122 1.1 minoura 40, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 14}}, 123 1.5 isaki parse_uchar, 0, 15, 124 1.1 minoura print_uchar, 125 1.1 minoura fill_uchar, flush_uchar, 126 1.1 minoura " Display contrast (0-15).\n" 127 1.1 minoura }, 128 1.1 minoura { 129 1.1 minoura "display", "dentakufont", 130 1.1 minoura 44, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 0}}, 131 1.1 minoura parse_uchar, 0, 1, 132 1.1 minoura print_uchar, 133 1.1 minoura fill_uchar, flush_uchar, 134 1.1 minoura " In-line calculator font. 0 for LCD-like, 1 for normal.\n" 135 1.1 minoura " Note on NetBSD in-line calculator is not supported.\n" 136 1.1 minoura }, 137 1.1 minoura { 138 1.1 minoura "display", "glyphmode", 139 1.1 minoura 89, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 0}}, 140 1.1 minoura parse_uchar, 0, 0x7, 141 1.1 minoura print_ucharh, 142 1.1 minoura fill_uchar, flush_uchar, 143 1.1 minoura " Glyph mode for ASCII/JIS ROMAN characters (bitmap).\n" 144 1.1 minoura " Bit 0 (LSB) is for codepoint 0x5c (\\), bit 1 for 0x7e (~),\n" 145 1.1 minoura " bit 2 for 0x7c (|).\n" 146 1.1 minoura " 0 for JIS ROMAN, 1 for ASCII.\n" 147 1.1 minoura }, 148 1.1 minoura { 149 1.1 minoura "display", "resolution", 150 1.1 minoura 29, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 16}}, 151 1.1 minoura parse_uchar, 0, 18, 152 1.1 minoura print_ucharh, 153 1.1 minoura fill_uchar, flush_uchar, 154 1.1 minoura " Initial display resolution.\n" 155 1.1 minoura }, 156 1.1 minoura { 157 1.1 minoura "display", "tcolor0", 158 1.1 minoura 46, 2, 0, {word:{[0] 0}}, 0, {word:{[0] 0}}, {word:{[0] 0}}, 159 1.1 minoura parse_ushort, 0, 0xffff, 160 1.1 minoura print_ushorth, 161 1.1 minoura fill_ushort, flush_ushort, 162 1.1 minoura " Initial RGB value for color cell #0.\n" 163 1.1 minoura " Note on NetBSD the value is ignored.\n" 164 1.1 minoura }, 165 1.1 minoura { 166 1.1 minoura "display", "tcolor1", 167 1.1 minoura 48, 2, 0, {word:{[0] 0}}, 0, {word:{[0] 0}}, {word:{[0] 0xf83e}}, 168 1.1 minoura parse_ushort, 0, 0xffff, 169 1.1 minoura print_ushorth, 170 1.1 minoura fill_ushort, flush_ushort, 171 1.1 minoura " Initial RGB value for color cell #1.\n" 172 1.1 minoura " Note on NetBSD the value is ignored.\n" 173 1.1 minoura }, 174 1.1 minoura { 175 1.1 minoura "display", "tcolor2", 176 1.1 minoura 50, 2, 0, {word:{[0] 0}}, 0, {word:{[0] 0}}, {word:{[0] 0xffc0}}, 177 1.1 minoura parse_ushort, 0, 0xffff, 178 1.1 minoura print_ushorth, 179 1.1 minoura fill_ushort, flush_ushort, 180 1.1 minoura " Initial RGB value for color cell #2.\n" 181 1.1 minoura " Note on NetBSD the value is ignored.\n" 182 1.1 minoura }, 183 1.1 minoura { 184 1.1 minoura "display", "tcolor3", 185 1.1 minoura 52, 2, 0, {word:{[0] 0}}, 0, {word:{[0] 0}}, {word:{[0] 0xfffe}}, 186 1.1 minoura parse_ushort, 0, 0xffff, 187 1.1 minoura print_ushorth, 188 1.1 minoura fill_ushort, flush_ushort, 189 1.1 minoura " Initial RGB value for color cell #3.\n" 190 1.1 minoura " Note on NetBSD the value is ignored.\n" 191 1.1 minoura }, 192 1.1 minoura { 193 1.1 minoura "display", "tcolor47", 194 1.1 minoura 54, 2, 0, {word:{[0] 0}}, 0, {word:{[0] 0}}, {word:{[0] 0xde6c}}, 195 1.1 minoura parse_ushort, 0, 0xffff, 196 1.1 minoura print_ushorth, 197 1.1 minoura fill_ushort, flush_ushort, 198 1.1 minoura " Initial RGB value for color cell #4-7.\n" 199 1.1 minoura " Note on NetBSD the value is ignored.\n" 200 1.1 minoura }, 201 1.1 minoura { 202 1.1 minoura "display", "tcolor8f", 203 1.1 minoura 56, 2, 0, {word:{[0] 0}}, 0, {word:{[0] 0}}, {word:{[0] 0}}, 204 1.1 minoura parse_ushort, 0, 0xffff, 205 1.1 minoura print_ushorth, 206 1.1 minoura fill_ushort, flush_ushort, 207 1.1 minoura " Initial RGB value for color cell #8-15.\n" 208 1.1 minoura " Note on NetBSD the value is ignored.\n" 209 1.1 minoura }, 210 1.1 minoura { 211 1.1 minoura "hw", "harddrive", 212 1.1 minoura 90, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 0}}, 213 1.1 minoura parse_uchar, 0, 15, 214 1.1 minoura print_ucharh, 215 1.1 minoura fill_uchar, flush_uchar, 216 1.1 minoura " Number of old, SASI-compatible hard disks connected.\n" 217 1.1 minoura " Note they are not supported on NetBSD.\n" 218 1.1 minoura }, 219 1.1 minoura { 220 1.1 minoura "hw", "memory", 221 1.1 minoura 8, 4, 0, {longword:0}, 0, {longword:0}, {longword:1024*1024}, 222 1.1 minoura parse_byte, 1024*1024, 12*1024*1024, 223 1.1 minoura print_ulongh, 224 1.1 minoura fill_ulong, flush_ulong, 225 1.1 minoura " Memory size in byte.\n" 226 1.1 minoura " Can be specified by Kilobyte and Megabyte with suffix KB and MB respectively.\n" 227 1.1 minoura }, 228 1.1 minoura { 229 1.1 minoura "hw", "serial", 230 1.1 minoura 26, 2, 0, {word:{[0] 0}}, 0, {word:{[0] 0}}, {word:{[0] 0x4e07}}, 231 1.1 minoura parse_serial, 0, 0, 232 1.1 minoura print_serial, 233 1.1 minoura fill_ushort, flush_ushort, 234 1.2 minoura " Serial mode.\n" 235 1.2 minoura " Consist of comma-separated 5 specs. The first value means speed in bps,\n" 236 1.2 minoura " second means the bit width (5-8), third means parity (n for non parity,\n" 237 1.2 minoura " o for odd parity, e for even parity), fourth means stop bit (2, 1 or 1.5),\n" 238 1.2 minoura " fifth for software flow control (`-' or `s').\n" 239 1.2 minoura " Note that the value is ignored on NetBSD.\n" 240 1.1 minoura }, 241 1.1 minoura { 242 1.1 minoura "hw", "srammode", 243 1.1 minoura 45, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 0}}, 244 1.2 minoura parse_srammode, 0, 1, 245 1.2 minoura print_srammode, 246 1.1 minoura fill_uchar, flush_uchar, 247 1.1 minoura " Usage of the user area of non-volatile static RAM.\n" 248 1.1 minoura " 0 for unused, 1 for SRAMDISK, 2 for user program.\n" 249 1.1 minoura }, 250 1.1 minoura { 251 1.1 minoura "hw", "upcount", 252 1.1 minoura 84, 4, 0, {longword:0}, 0, {longword:0}, {longword:0}, 253 1.1 minoura parse_dummy, 0, 0xffffffff, 254 1.1 minoura print_ulong, 255 1.1 minoura fill_ulong, flush_dummy, 256 1.1 minoura " Boot count since the SRAM is initialized.\n" 257 1.1 minoura }, 258 1.1 minoura { 259 1.1 minoura "hw", "uptime", 260 1.1 minoura 76, 4, 0, {longword:0}, 0, {longword:0}, {longword:0}, 261 1.1 minoura parse_dummy, 0, 0xffffffff, 262 1.1 minoura print_ulong, 263 1.1 minoura fill_ulong, flush_dummy, 264 1.1 minoura " Total uptime since the SRAM is initialized.\n" 265 1.1 minoura }, 266 1.1 minoura { 267 1.1 minoura "keyboard", "delay", 268 1.1 minoura 58, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 3}}, 269 1.1 minoura parse_uchar, 0, 0xff, 270 1.1 minoura print_uchar, 271 1.1 minoura fill_uchar, flush_uchar, 272 1.1 minoura " Delay for start keyboard autorepeat. (200+100*n) ms.\n" 273 1.1 minoura }, 274 1.1 minoura { 275 1.1 minoura "keyboard", "kanalayout", 276 1.1 minoura 43, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 0}}, 277 1.1 minoura parse_uchar, 0, 1, 278 1.1 minoura print_uchar, 279 1.1 minoura fill_uchar, flush_uchar, 280 1.1 minoura " Layout of kana keys. 0 for JIS, 1 for AIUEO order.\n" 281 1.1 minoura " Note on NetBSD kana input is not supported.\n" 282 1.1 minoura }, 283 1.1 minoura { 284 1.1 minoura "keyboard", "ledstat", 285 1.1 minoura 28, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 0}}, 286 1.1 minoura parse_uchar, 0, 0x7f, 287 1.1 minoura print_uchar, 288 1.1 minoura fill_uchar, flush_uchar, 289 1.1 minoura " Initial keyboard LED status (bitmap).\n" 290 1.1 minoura " Each bit means KANA, ROMAJI, CODE, CAPS, INS, HIRAGANA, ZENKAKU from LSB.\n" 291 1.1 minoura }, 292 1.1 minoura { 293 1.1 minoura "keyboard", "opt2", 294 1.1 minoura 39, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 0}}, 295 1.1 minoura parse_uchar, 0, 1, 296 1.1 minoura print_uchar, 297 1.1 minoura fill_uchar, flush_uchar, 298 1.1 minoura " 1 for normal, 0 for TV control.\n" 299 1.1 minoura }, 300 1.1 minoura { 301 1.1 minoura "keyboard", "repeat", 302 1.1 minoura 59, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 3}}, 303 1.1 minoura parse_uchar, 0, 0xff, 304 1.1 minoura print_uchar, 305 1.1 minoura fill_uchar, flush_uchar, 306 1.1 minoura " Time elapsed between the keyboard autorepeat. (30+5*n^2 ms.\n" 307 1.1 minoura }, 308 1.1 minoura { 309 1.1 minoura "poweroff", "ejectfloppy", 310 1.1 minoura 41, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 0}}, 311 1.1 minoura parse_uchar, 0, 1, 312 1.1 minoura print_uchar, 313 1.1 minoura fill_uchar, flush_uchar, 314 1.1 minoura " 1 to eject floppy disks at shutdown.\n" 315 1.1 minoura }, 316 1.1 minoura { 317 1.1 minoura "poweroff", "tvctrl", 318 1.1 minoura 42, 1, 0, {byte:{[0] 0}}, 0, {byte:{[0] 0}}, {byte:{[0] 13}}, 319 1.1 minoura parse_uchar, 0, 0xff, 320 1.1 minoura print_uchar, 321 1.1 minoura fill_uchar, flush_uchar, 322 1.1 minoura " What to do at shutdown for display TV.\n" 323 1.1 minoura }, 324 1.1 minoura { 325 1.1 minoura "printer", "timeout", 326 1.1 minoura 60, 4, 0, {longword:0}, 0, {longword:0}, {longword:0x80000}, 327 1.1 minoura parse_ulong, 0, 0xffffffff, 328 1.1 minoura print_ulong, 329 1.1 minoura fill_ulong, flush_ulong, 330 1.1 minoura " Printer timeout in second.\n" 331 1.1 minoura }, 332 1.1 minoura }; 333 1.1 minoura 334 1.1 minoura int number_of_props = sizeof (properties) / sizeof (struct property); 335