/usr/powerpc64le-linux-gnu/include/linux/nubus.h is in linux-libc-dev-ppc64el-cross 3.13.0-13.33cross0.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 | /*
nubus.h: various definitions and prototypes for NuBus drivers to use.
Originally written by Alan Cox.
Hacked to death by C. Scott Ananian and David Huggins-Daines.
Some of the constants in here are from the corresponding
NetBSD/OpenBSD header file, by Allen Briggs. We figured out the
rest of them on our own. */
#ifndef LINUX_NUBUS_H
#define LINUX_NUBUS_H
#include <linux/types.h>
enum nubus_category {
NUBUS_CAT_BOARD = 0x0001,
NUBUS_CAT_DISPLAY = 0x0003,
NUBUS_CAT_NETWORK = 0x0004,
NUBUS_CAT_COMMUNICATIONS = 0x0006,
NUBUS_CAT_FONT = 0x0009,
NUBUS_CAT_CPU = 0x000A,
/* For lack of a better name */
NUBUS_CAT_DUODOCK = 0x0020
};
enum nubus_type_network {
NUBUS_TYPE_ETHERNET = 0x0001,
NUBUS_TYPE_RS232 = 0x0002
};
enum nubus_type_display {
NUBUS_TYPE_VIDEO = 0x0001
};
enum nubus_type_cpu {
NUBUS_TYPE_68020 = 0x0003,
NUBUS_TYPE_68030 = 0x0004,
NUBUS_TYPE_68040 = 0x0005
};
/* Known <Cat,Type,SW,HW> tuples: (according to TattleTech and Slots)
* 68030 motherboards: <10,4,0,24>
* 68040 motherboards: <10,5,0,24>
* DuoDock Plus: <32,1,1,2>
*
* Toby Frame Buffer card: <3,1,1,1>
* RBV built-in video (IIci): <3,1,1,24>
* Valkyrie built-in video (Q630): <3,1,1,46>
* Macintosh Display Card: <3,1,1,25>
* Sonora built-in video (P460): <3,1,1,34>
* Jet framebuffer (DuoDock Plus): <3,1,1,41>
*
* SONIC comm-slot/on-board and DuoDock Ethernet: <4,1,1,272>
* SONIC LC-PDS Ethernet (Dayna, but like Apple 16-bit, sort of): <4,1,1,271>
* Apple SONIC LC-PDS Ethernet ("Apple Ethernet LC Twisted-Pair Card"): <4,1,0,281>
* Sonic Systems Ethernet A-Series Card: <4,1,268,256>
* Asante MacCon NuBus-A: <4,1,260,256> (alpha-1.0,1.1 revision)
* ROM on the above card: <2,1,0,0>
* Cabletron ethernet card: <4,1,1,265>
* Farallon ethernet card: <4,1,268,256> (identical to Sonic Systems card)
* Kinetics EtherPort IIN: <4,1,259,262>
* API Engineering EtherRun_LCa PDS enet card: <4,1,282,256>
*
* Add your devices to the list! You can obtain the "Slots" utility
* from Apple's FTP site at:
* ftp://dev.apple.com/devworld/Tool_Chest/Devices_-_Hardware/NuBus_Slot_Manager/
*
* Alternately, TattleTech can be found at any Info-Mac mirror site.
* or from its distribution site: ftp://ftp.decismkr.com/dms
*/
/* DrSW: Uniquely identifies the software interface to a board. This
is usually the one you want to look at when writing a driver. It's
not as useful as you think, though, because as we should know by
now (duh), "Apple Compatible" can mean a lot of things... */
/* Add known DrSW values here */
enum nubus_drsw {
/* NUBUS_CAT_DISPLAY */
NUBUS_DRSW_APPLE = 0x0001,
NUBUS_DRSW_APPLE_HIRES = 0x0013, /* MacII HiRes card driver */
/* NUBUS_CAT_NETWORK */
NUBUS_DRSW_3COM = 0x0000,
NUBUS_DRSW_CABLETRON = 0x0001,
NUBUS_DRSW_SONIC_LC = 0x0001,
NUBUS_DRSW_KINETICS = 0x0103,
NUBUS_DRSW_ASANTE = 0x0104,
NUBUS_DRSW_TECHWORKS = 0x0109,
NUBUS_DRSW_DAYNA = 0x010b,
NUBUS_DRSW_FARALLON = 0x010c,
NUBUS_DRSW_APPLE_SN = 0x010f,
NUBUS_DRSW_DAYNA2 = 0x0115,
NUBUS_DRSW_FOCUS = 0x011a,
NUBUS_DRSW_ASANTE_CS = 0x011d, /* use asante SMC9194 driver */
NUBUS_DRSW_DAYNA_LC = 0x011e,
/* NUBUS_CAT_CPU */
NUBUS_DRSW_NONE = 0x0000,
};
/* DrHW: Uniquely identifies the hardware interface to a board (or at
least, it should... some video cards are known to incorrectly
identify themselves as Toby cards) */
/* Add known DrHW values here */
enum nubus_drhw {
/* NUBUS_CAT_DISPLAY */
NUBUS_DRHW_APPLE_TFB = 0x0001, /* Toby frame buffer card */
NUBUS_DRHW_APPLE_WVC = 0x0006, /* Apple Workstation Video Card */
NUBUS_DRHW_SIGMA_CLRMAX = 0x0007, /* Sigma Design ColorMax */
NUBUS_DRHW_APPLE_SE30 = 0x0009, /* Apple SE/30 video */
NUBUS_DRHW_APPLE_HRVC = 0x0013, /* Mac II High-Res Video Card */
NUBUS_DRHW_APPLE_PVC = 0x0017, /* Mac II Portrait Video Card */
NUBUS_DRHW_APPLE_RBV1 = 0x0018, /* IIci RBV video */
NUBUS_DRHW_APPLE_MDC = 0x0019, /* Macintosh Display Card */
NUBUS_DRHW_APPLE_SONORA = 0x0022, /* Sonora built-in video */
NUBUS_DRHW_APPLE_24AC = 0x002b, /* Mac 24AC Video Card */
NUBUS_DRHW_APPLE_VALKYRIE = 0x002e,
NUBUS_DRHW_APPLE_JET = 0x0029, /* Jet framebuffer (DuoDock) */
NUBUS_DRHW_SMAC_GFX = 0x0105, /* SuperMac GFX */
NUBUS_DRHW_RASTER_CB264 = 0x013B, /* RasterOps ColorBoard 264 */
NUBUS_DRHW_MICRON_XCEED = 0x0146, /* Micron Exceed color */
NUBUS_DRHW_RDIUS_GSC = 0x0153, /* Radius GS/C */
NUBUS_DRHW_SMAC_SPEC8 = 0x017B, /* SuperMac Spectrum/8 */
NUBUS_DRHW_SMAC_SPEC24 = 0x017C, /* SuperMac Spectrum/24 */
NUBUS_DRHW_RASTER_CB364 = 0x026F, /* RasterOps ColorBoard 364 */
NUBUS_DRHW_RDIUS_DCGX = 0x027C, /* Radius DirectColor/GX */
NUBUS_DRHW_RDIUS_PC8 = 0x0291, /* Radius PrecisionColor 8 */
NUBUS_DRHW_LAPIS_PCS8 = 0x0292, /* Lapis ProColorServer 8 */
NUBUS_DRHW_RASTER_24XLI = 0x02A0, /* RasterOps 8/24 XLi */
NUBUS_DRHW_RASTER_PBPGT = 0x02A5, /* RasterOps PaintBoard Prism GT */
NUBUS_DRHW_EMACH_FSX = 0x02AE, /* E-Machines Futura SX */
NUBUS_DRHW_RASTER_24XLTV = 0x02B7, /* RasterOps 24XLTV */
NUBUS_DRHW_SMAC_THUND24 = 0x02CB, /* SuperMac Thunder/24 */
NUBUS_DRHW_SMAC_THUNDLGHT = 0x03D9, /* SuperMac ThunderLight */
NUBUS_DRHW_RDIUS_PC24XP = 0x0406, /* Radius PrecisionColor 24Xp */
NUBUS_DRHW_RDIUS_PC24X = 0x040A, /* Radius PrecisionColor 24X */
NUBUS_DRHW_RDIUS_PC8XJ = 0x040B, /* Radius PrecisionColor 8XJ */
/* NUBUS_CAT_NETWORK */
NUBUS_DRHW_INTERLAN = 0x0100,
NUBUS_DRHW_SMC9194 = 0x0101,
NUBUS_DRHW_KINETICS = 0x0106,
NUBUS_DRHW_CABLETRON = 0x0109,
NUBUS_DRHW_ASANTE_LC = 0x010f,
NUBUS_DRHW_SONIC = 0x0110,
NUBUS_DRHW_TECHWORKS = 0x0112,
NUBUS_DRHW_APPLE_SONIC_NB = 0x0118,
NUBUS_DRHW_APPLE_SONIC_LC = 0x0119,
NUBUS_DRHW_FOCUS = 0x011c,
NUBUS_DRHW_SONNET = 0x011d,
};
/* Resource IDs: These are the identifiers for the various weird and
wonderful tidbits of information that may or may not reside in the
NuBus ROM directory. */
enum nubus_res_id {
NUBUS_RESID_TYPE = 0x0001,
NUBUS_RESID_NAME = 0x0002,
NUBUS_RESID_ICON = 0x0003,
NUBUS_RESID_DRVRDIR = 0x0004,
NUBUS_RESID_LOADREC = 0x0005,
NUBUS_RESID_BOOTREC = 0x0006,
NUBUS_RESID_FLAGS = 0x0007,
NUBUS_RESID_HWDEVID = 0x0008,
NUBUS_RESID_MINOR_BASEOS = 0x000a,
NUBUS_RESID_MINOR_LENGTH = 0x000b,
NUBUS_RESID_MAJOR_BASEOS = 0x000c,
NUBUS_RESID_MAJOR_LENGTH = 0x000d,
NUBUS_RESID_CICN = 0x000f,
NUBUS_RESID_ICL8 = 0x0010,
NUBUS_RESID_ICL4 = 0x0011,
};
/* Category-specific resources. */
enum nubus_board_res_id {
NUBUS_RESID_BOARDID = 0x0020,
NUBUS_RESID_PRAMINITDATA = 0x0021,
NUBUS_RESID_PRIMARYINIT = 0x0022,
NUBUS_RESID_TIMEOUTCONST = 0x0023,
NUBUS_RESID_VENDORINFO = 0x0024,
NUBUS_RESID_BOARDFLAGS = 0x0025,
NUBUS_RESID_SECONDINIT = 0x0026,
/* Not sure why Apple put these next two in here */
NUBUS_RESID_VIDNAMES = 0x0041,
NUBUS_RESID_VIDMODES = 0x007e
};
/* Fields within the vendor info directory */
enum nubus_vendor_res_id {
NUBUS_RESID_VEND_ID = 0x0001,
NUBUS_RESID_VEND_SERIAL = 0x0002,
NUBUS_RESID_VEND_REV = 0x0003,
NUBUS_RESID_VEND_PART = 0x0004,
NUBUS_RESID_VEND_DATE = 0x0005
};
enum nubus_net_res_id {
NUBUS_RESID_MAC_ADDRESS = 0x0080
};
enum nubus_cpu_res_id {
NUBUS_RESID_MEMINFO = 0x0081,
NUBUS_RESID_ROMINFO = 0x0082
};
enum nubus_display_res_id {
NUBUS_RESID_GAMMADIR = 0x0040,
NUBUS_RESID_FIRSTMODE = 0x0080,
NUBUS_RESID_SECONDMODE = 0x0081,
NUBUS_RESID_THIRDMODE = 0x0082,
NUBUS_RESID_FOURTHMODE = 0x0083,
NUBUS_RESID_FIFTHMODE = 0x0084,
NUBUS_RESID_SIXTHMODE = 0x0085
};
struct nubus_dir
{
unsigned char *base;
unsigned char *ptr;
int done;
int mask;
};
struct nubus_dirent
{
unsigned char *base;
unsigned char type;
__u32 data; /* Actually 24bits used */
int mask;
};
/* We'd like to get rid of this eventually. Only daynaport.c uses it now. */
static __inline__ void *nubus_slot_addr(int slot)
{
return (void *)(0xF0000000|(slot<<24));
}
#endif /* LINUX_NUBUS_H */
|