summaryrefslogtreecommitdiffstats
path: root/sys/dev/powermac_nvram/powermac_nvramvar.h
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2006-08-01 22:19:01 +0000
committersobomax <sobomax@FreeBSD.org>2006-08-01 22:19:01 +0000
commita2e1257dac349364bf2162e7c5d187107fcd8725 (patch)
treeaba24c38e600543d1256c6e33ef0efd99bf3900f /sys/dev/powermac_nvram/powermac_nvramvar.h
parenta152234cf9a52766984ecb9a96cc1e5740ae9d78 (diff)
downloadFreeBSD-src-a2e1257dac349364bf2162e7c5d187107fcd8725.zip
FreeBSD-src-a2e1257dac349364bf2162e7c5d187107fcd8725.tar.gz
Add device to access and modify Open Firmware NVRAM settings in
PowerPC-based Apple's machines and small utility to do it from userland modelled after the similar utility in Darwin/OSX. Only tested on 1.25GHz G4 Mac Mini. MFC after: 1 month
Diffstat (limited to 'sys/dev/powermac_nvram/powermac_nvramvar.h')
-rw-r--r--sys/dev/powermac_nvram/powermac_nvramvar.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/sys/dev/powermac_nvram/powermac_nvramvar.h b/sys/dev/powermac_nvram/powermac_nvramvar.h
new file mode 100644
index 0000000..6f4fb26
--- /dev/null
+++ b/sys/dev/powermac_nvram/powermac_nvramvar.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2006 Maxim Sobolev <sobomax@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _POWERPC_POWERMAC_POWERMAC_NVRAMVAR_H_
+#define _POWERPC_POWERMAC_POWERMAC_NVRAMVAR_H_
+
+#define NVRAM_SIZE 0x2000
+
+#define CORE99_SIGNATURE 0x5a
+
+#ifdef _KERNEL
+
+struct powermac_nvram_softc {
+ device_t sc_dev;
+ phandle_t sc_node;
+ vm_offset_t sc_bank;
+ vm_offset_t sc_bank0;
+ vm_offset_t sc_bank1;
+ uint8_t sc_data[NVRAM_SIZE];
+
+ struct cdev * sc_cdev;
+ int sc_isopen;
+ int sc_rpos;
+ int sc_wpos;
+};
+
+#endif /* _KERNEL */
+
+struct chrp_header {
+ uint8_t signature;
+ uint8_t chrp_checksum;
+ uint16_t length;
+ char name[12];
+};
+
+struct core99_header {
+ struct chrp_header chrp_header;
+ uint32_t adler_checksum;
+ uint32_t generation;
+ uint32_t reserved[2];
+};
+
+#endif /* _POWERPC_POWERMAC_POWERMAC_NVRAMVAR_H_ */
OpenPOWER on IntegriCloud