1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2 /* 3 * NVRAM definitions and access functions. 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License 7 * as published by the Free Software Foundation; either version 8 * 2 of the License, or (at your option) any later version. 9 */ 10 11 #ifndef _UAPI_ASM_POWERPC_NVRAM_H 12 #define _UAPI_ASM_POWERPC_NVRAM_H 13 14 /* Signatures for nvram partitions */ 15 #define NVRAM_SIG_SP 0x02 /* support processor */ 16 #define NVRAM_SIG_OF 0x50 /* open firmware config */ 17 #define NVRAM_SIG_FW 0x51 /* general firmware */ 18 #define NVRAM_SIG_HW 0x52 /* hardware (VPD) */ 19 #define NVRAM_SIG_FLIP 0x5a /* Apple flip/flop header */ 20 #define NVRAM_SIG_APPL 0x5f /* Apple "system" (???) */ 21 #define NVRAM_SIG_SYS 0x70 /* system env vars */ 22 #define NVRAM_SIG_CFG 0x71 /* config data */ 23 #define NVRAM_SIG_ELOG 0x72 /* error log */ 24 #define NVRAM_SIG_VEND 0x7e /* vendor defined */ 25 #define NVRAM_SIG_FREE 0x7f /* Free space */ 26 #define NVRAM_SIG_OS 0xa0 /* OS defined */ 27 #define NVRAM_SIG_PANIC 0xa1 /* Apple OSX "panic" */ 28 29 30 /* PowerMac specific nvram stuffs */ 31 32 enum { 33 pmac_nvram_OF, /* Open Firmware partition */ 34 pmac_nvram_XPRAM, /* MacOS XPRAM partition */ 35 pmac_nvram_NR /* MacOS Name Registry partition */ 36 }; 37 38 39 /* Some offsets in XPRAM */ 40 #define PMAC_XPRAM_MACHINE_LOC 0xe4 41 #define PMAC_XPRAM_SOUND_VOLUME 0x08 42 43 /* Machine location structure in PowerMac XPRAM */ 44 struct pmac_machine_location { 45 unsigned int latitude; /* 2+30 bit Fractional number */ 46 unsigned int longitude; /* 2+30 bit Fractional number */ 47 unsigned int delta; /* mix of GMT delta and DLS */ 48 }; 49 50 /* 51 * /dev/nvram ioctls 52 * 53 * Note that PMAC_NVRAM_GET_OFFSET is still supported, but is 54 * definitely obsolete. Do not use it if you can avoid it 55 */ 56 57 #define OBSOLETE_PMAC_NVRAM_GET_OFFSET \ 58 _IOWR('p', 0x40, int) 59 60 #define IOC_NVRAM_GET_OFFSET _IOWR('p', 0x42, int) /* Get NVRAM partition offset */ 61 #define IOC_NVRAM_SYNC _IO('p', 0x43) /* Sync NVRAM image */ 62 63 #endif /* _UAPI_ASM_POWERPC_NVRAM_H */ 64