1.\" $OpenBSD: eeprom.8,v 1.22 2020/01/08 14:45:36 kn Exp $ 2.\" $NetBSD: eeprom.8,v 1.2 1996/02/28 01:13:24 thorpej Exp $ 3.\" 4.\" Copyright (c) 1996 The NetBSD Foundation, Inc. 5.\" All rights reserved. 6.\" 7.\" This code is derived from software contributed to The NetBSD Foundation 8.\" by Jason R. Thorpe. 9.\" 10.\" Redistribution and use in source and binary forms, with or without 11.\" modification, are permitted provided that the following conditions 12.\" are met: 13.\" 1. Redistributions of source code must retain the above copyright 14.\" notice, this list of conditions and the following disclaimer. 15.\" 2. Redistributions in binary form must reproduce the above copyright 16.\" notice, this list of conditions and the following disclaimer in the 17.\" documentation and/or other materials provided with the distribution. 18.\" 19.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE 23.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29.\" POSSIBILITY OF SUCH DAMAGE. 30.\" 31.Dd $Mdocdate: January 8 2020 $ 32.Dt EEPROM 8 33.Os 34.Sh NAME 35.Nm eeprom 36.Nd display or modify contents of the EEPROM or OpenPROM 37.Sh SYNOPSIS 38.Nm eeprom 39.Op Fl cipv 40.Op Fl f Ar device 41.Op Fl N Ar system 42.Oo 43.Ar field Ns Op = Ns Ar value 44.Ar ... 45.Oc 46.Sh DESCRIPTION 47.Nm eeprom 48provides an interface for displaying and changing the contents of the 49EEPROM or OpenPROM. 50Without any arguments, 51.Nm eeprom 52will list all of the known fields and their corresponding values. 53When given the name of a specific field, 54.Nm eeprom 55will display that value or set it if the field name is followed by 56.Sq = 57and a value. 58Only the superuser may modify the contents of the EEPROM or OpenPROM. 59.Pp 60The options are as follows: 61.Bl -tag -width Ds 62.It Fl 63Commands are taken from stdin and displayed on stdout. 64.It Fl c 65.Nm eeprom 66will fix incorrect checksum values and exit. 67This flag is quietly ignored on systems with an OpenPROM. 68.It Fl f Ar device 69On systems with an EEPROM, use 70.Ar device 71instead of the default 72.Pa /dev/eeprom . 73On systems with an OpenPROM, use 74.Ar device 75instead of the default 76.Pa /dev/openprom . 77.It Fl i 78If checksum values are incorrect, 79.Nm eeprom 80will ignore them and continue after displaying a warning. 81This flag is quietly ignored on systems with an OpenPROM. 82.It Fl N Ar system 83Use the system image 84.Ar system 85instead of the default 86.Pa /bsd . 87.It Fl p 88On systems with an OpenPROM, display the tree derived from it and exit. 89This flag is quietly ignored on systems with an EEPROM. 90.It Fl v 91On systems with an OpenPROM, be verbose when setting a value. 92Systems with an EEPROM are always verbose. 93.El 94.Sh FIELDS AND VALUES 95The following fields and values are for systems with an EEPROM: 96.Bl -tag -width "watchdog_reboot " 97.It Ar hwupdate 98A valid date, such as 99.Dq 7/12/95 . 100The strings 101.Dq today 102and 103.Dq now 104are also acceptable. 105.It Ar memsize 106How much memory, in megabytes, is installed in the system. 107.It Ar memtest 108How much memory, in megabytes, is to be tested upon power-up. 109.It Ar scrsize 110The size of the screen. 111Acceptable values are 112.Dq 1024x1024 , 113.Dq 1152x900 , 114.Dq 1600x1280 , 115and 116.Dq 1440x1440 . 117.It Ar watchdog_reboot 118If true, the system will reboot upon reset. 119Otherwise, the system will fall into the monitor. 120.It Ar default_boot 121If true, the system will use the boot device stored in 122.Ar bootdev . 123.It Ar bootdev 124Specifies the default boot device in the form cc(x,x,x), where 125.Dq cc 126is a combination of two letters such as 127.Dq sd 128or 129.Dq le 130and each 131.Dq x 132is a hexadecimal number between 0 and ff, less the prepending 133.Dq 0x . 134.It Ar kbdtype 135This value is 136.Dq 0 137for all Sun keyboards. 138.It Ar console 139Specifies the console type. 140Valid values are 141.Dq b&w , 142.Dq ttya , 143.Dq ttyb , 144.Dq color , 145and 146.Dq p4opt . 147.It Ar keyclick 148If true, the keys click annoyingly. 149.It Ar diagdev 150This is a string very similar to that used by 151.Ar bootdev . 152It specifies the default boot device when the diagnostic switch is 153turned on. 154.It Ar diagpath 155A 40-character, NULL-terminated string specifying the kernel or stand-alone 156program to load when the diagnostic switch is turned on. 157.It Ar columns 158An 8-bit integer specifying the number of columns on the console. 159.It Ar rows 160An 8-bit integer specifying the number of rows on the console. 161.It Ar ttya_use_baud 162Use the baud rate stored in 163.Ar ttya_baud 164instead of the default 9600. 165.It Ar ttya_baud 166A 16-bit integer specifying the baud rate to use on ttya. 167.It Ar ttya_no_rtsdtr 168If true, disables RTS/DTR. 169.It Ar ttyb_use_baud 170Similar to 171.Ar ttya_use_baud , 172but for ttyb. 173.It Ar ttyb_baud 174Similar to 175.Ar ttya_baud , 176but for ttyb. 177.It Ar ttyb_no_rtsdtr 178Similar to 179.Ar ttya_no_rtsdtr , 180but for ttyb. 181.It Ar banner 182An 80-character, NULL-terminated string to use at power-up instead 183of the default Sun banner. 184.El 185.Pp 186Note that the 187.Ar secure , 188.Ar bad_login , 189and 190.Ar password 191fields are not currently supported. 192.Pp 193Since the OpenPROM is designed such that the field names are arbitrary, 194explaining them here is dubious. 195Below are field names and values that 196one is likely to see on a system with an OpenPROM. 197NOTE: this list 198may be incomplete or incorrect due to differences between revisions 199of the OpenPROM. 200.Bl -tag -width "last-hardware-update " 201.It Ar sunmon-compat? 202If true, the old EEPROM-style interface will be used while in the monitor, 203rather than the OpenPROM-style interface. 204.It Ar selftest-#megs 205A 32-bit integer specifying the number of megabytes of memory to 206test upon power-up. 207.It Ar oem-logo 208A 64bitx64bit bitmap in Sun Iconedit format. 209To set the bitmap, give the pathname of the file containing the image. 210NOTE: this property is not yet supported. 211.It Ar oem-logo? 212If true, enables the use of the bitmap stored in 213.Ar oem-logo 214rather than the default Sun logo. 215.It Ar oem-banner 216A string to use at power-up, rather than the default Sun banner. 217.It Ar oem-banner? 218If true, enables the use of the banner stored in 219.Ar oem-banner 220rather than the default Sun banner. 221.It Ar ttya-mode 222A string of five comma separated fields in the format 223.Dq 9600,8,n,1,- . 224The first field is the baud rate. 225The second field is the number of data bits. 226The third field is the parity; acceptable values for parity are 227.Dq n 228(none), 229.Dq e 230(even), 231.Dq o 232(odd), 233.Dq m 234(mark), and 235.Dq s 236(space). 237The fourth field is the number of stop bits. 238The fifth field is the 239.Dq handshake 240field; acceptable values are 241.Dq - 242(none), 243.Dq h 244(RTS/CTS), and 245.Dq s 246(XON/XOFF). 247.It Ar ttya-rts-dtr-off 248If true, the system will ignore RTS/DTR. 249.It Ar ttya-ignore-cd 250If true, the system will ignore carrier detect. 251.It Ar ttyb-mode 252Similar to 253.Ar ttya-mode , 254but for ttyb. 255.It Ar ttyb-rts-dtr-off 256Similar to 257.Ar ttya-rts-dtr-off , 258but for ttyb. 259.It Ar ttyb-ignore-cd 260Similar to 261.Ar ttya-ignore-cd , 262but for ttyb. 263.It Ar sbus-probe-list 264Four digits in the format 265.Dq 0123 266specifying which order to probe the SBus at power-up. 267It is unlikely that this value should ever be changed. 268.It Ar screen-#columns 269An 8-bit integer specifying the number of columns on the console. 270.It Ar screen-#rows 271An 8-bit integer specifying the number of rows on the console. 272.It Ar boot-device 273Space separated list of device aliases or device paths to boot from, 274in the given order. 275.It Ar boot-file 276File to boot. 277The empty string lets the second-stage boot program 278.Sy ofwboot 279choose the default. 280.It Ar auto-boot? 281If true, the system will boot automatically at power-up. 282.It Ar watchdog-reboot? 283If true, the system will reboot upon reset. 284Otherwise, the system will fall into the monitor. 285.It Ar input-device 286One of the strings 287.Dq keyboard , 288.Dq ttya , 289or 290.Dq ttyb 291specifying the default console input device. 292.It Ar output-device 293One of the strings 294.Dq screen , 295.Dq ttya , 296or 297.Dq ttyb 298specifying the default console output device. 299.It Ar keyboard-click? 300If true, the keys click annoyingly. 301.It Ar sd-targets 302A string in the format 303.Dq 31204567 304describing the translation of physical to logical target. 305.It Ar st-targets 306Similar to 307.Ar sd-targets , 308but for tapes. 309The default translation is 310.Dq 45670123 . 311.It Ar scsi-initiator-id 312The SCSI ID of the on-board SCSI controller. 313.It Ar hardware-revision 314A 7-character string describing a date, such as 315.Dq 25May95 . 316.It Ar last-hardware-update 317Similar to 318.Ar hardware-revision , 319describing when the CPU was last updated. 320.It Ar diag-switch? 321If true, the system will boot and run in diagnostic mode. 322.It Ar local-mac-address? 323When set to 324.Em false , 325all Ethernet devices will use the same system default MAC address. 326When 327.Em true , 328Ethernet devices which have a unique MAC address will use it 329rather than the system default MAC address. 330This option only really affects FCode-based Ethernet devices. 331On Sparc64, all on-board devices, 332as well as plug-in 333.Xr hme 4 334boards, will respect this setting; 335other hardware will not. 336.El 337.Sh FILES 338.Bl -tag -width "/dev/openprom" -compact 339.It /dev/eeprom 340the EEPROM device on systems with an EEPROM 341.It /dev/openprom 342the OpenPROM device on systems with an OpenPROM 343.El 344.Sh SEE ALSO 345.Xr openprom 4 346.Sh CAVEATS 347The fields and their values are not necessarily well defined on 348systems with an OpenPROM. 349Your mileage may vary. 350.Pp 351There are a few fields known to exist in some revisions of the EEPROM 352and/or OpenPROM that are not yet supported. 353Most notable are those 354relating to password protection of the EEPROM or OpenPROM. 355.Pp 356Avoid gratuitously changing the contents of the EEPROM. 357It has a limited number of write cycles. 358.Pp 359The date parser isn't very intelligent. 360