|
@@ -148,3 +148,175 @@ struct bi_record {
|
|
|
* reasonable type values
|
|
|
*/
|
|
|
|
|
|
+#define BI_MAC_VIA1BASE 0x8010 /* Mac VIA1 base address (always present) */
|
|
|
+#define BI_MAC_VIA2BASE 0x8011 /* Mac VIA2 base address (type varies) */
|
|
|
+#define BI_MAC_VIA2TYPE 0x8012 /* Mac VIA2 type (VIA, RBV, OSS) */
|
|
|
+#define BI_MAC_ADBTYPE 0x8013 /* Mac ADB interface type */
|
|
|
+#define BI_MAC_ASCBASE 0x8014 /* Mac Apple Sound Chip base address */
|
|
|
+#define BI_MAC_SCSI5380 0x8015 /* Mac NCR 5380 SCSI (base address, multi) */
|
|
|
+#define BI_MAC_SCSIDMA 0x8016 /* Mac SCSI DMA (base address) */
|
|
|
+#define BI_MAC_SCSI5396 0x8017 /* Mac NCR 53C96 SCSI (base address, multi) */
|
|
|
+#define BI_MAC_IDETYPE 0x8018 /* Mac IDE interface type */
|
|
|
+#define BI_MAC_IDEBASE 0x8019 /* Mac IDE interface base address */
|
|
|
+#define BI_MAC_NUBUS 0x801a /* Mac Nubus type (none, regular, pseudo) */
|
|
|
+#define BI_MAC_SLOTMASK 0x801b /* Mac Nubus slots present */
|
|
|
+#define BI_MAC_SCCTYPE 0x801c /* Mac SCC serial type (normal, IOP) */
|
|
|
+#define BI_MAC_ETHTYPE 0x801d /* Mac builtin ethernet type (Sonic, MACE */
|
|
|
+#define BI_MAC_ETHBASE 0x801e /* Mac builtin ethernet base address */
|
|
|
+#define BI_MAC_PMU 0x801f /* Mac power management / poweroff hardware */
|
|
|
+#define BI_MAC_IOP_SWIM 0x8020 /* Mac SWIM floppy IOP */
|
|
|
+#define BI_MAC_IOP_ADB 0x8021 /* Mac ADB IOP */
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Mac: compatibility with old booter data format (temporarily)
|
|
|
+ * Fields unused with the new bootinfo can be deleted now; instead of
|
|
|
+ * adding new fields the struct might be splitted into a hardware address
|
|
|
+ * part and a hardware type part
|
|
|
+ */
|
|
|
+
|
|
|
+#ifndef __ASSEMBLY__
|
|
|
+
|
|
|
+struct mac_booter_data
|
|
|
+{
|
|
|
+ unsigned long videoaddr;
|
|
|
+ unsigned long videorow;
|
|
|
+ unsigned long videodepth;
|
|
|
+ unsigned long dimensions;
|
|
|
+ unsigned long args;
|
|
|
+ unsigned long boottime;
|
|
|
+ unsigned long gmtbias;
|
|
|
+ unsigned long bootver;
|
|
|
+ unsigned long videological;
|
|
|
+ unsigned long sccbase;
|
|
|
+ unsigned long id;
|
|
|
+ unsigned long memsize;
|
|
|
+ unsigned long serialmf;
|
|
|
+ unsigned long serialhsk;
|
|
|
+ unsigned long serialgpi;
|
|
|
+ unsigned long printmf;
|
|
|
+ unsigned long printhsk;
|
|
|
+ unsigned long printgpi;
|
|
|
+ unsigned long cpuid;
|
|
|
+ unsigned long rombase;
|
|
|
+ unsigned long adbdelay;
|
|
|
+ unsigned long timedbra;
|
|
|
+};
|
|
|
+
|
|
|
+extern struct mac_booter_data
|
|
|
+ mac_bi_data;
|
|
|
+
|
|
|
+#endif
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Apollo-specific tags
|
|
|
+ */
|
|
|
+
|
|
|
+#define BI_APOLLO_MODEL 0x8000 /* model (u_long) */
|
|
|
+
|
|
|
+ /*
|
|
|
+ * HP300-specific tags
|
|
|
+ */
|
|
|
+
|
|
|
+#define BI_HP300_MODEL 0x8000 /* model (u_long) */
|
|
|
+#define BI_HP300_UART_SCODE 0x8001 /* UART select code (u_long) */
|
|
|
+#define BI_HP300_UART_ADDR 0x8002 /* phys. addr of UART (u_long) */
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Stuff for bootinfo interface versioning
|
|
|
+ *
|
|
|
+ * At the start of kernel code, a 'struct bootversion' is located.
|
|
|
+ * bootstrap checks for a matching version of the interface before booting
|
|
|
+ * a kernel, to avoid user confusion if kernel and bootstrap don't work
|
|
|
+ * together :-)
|
|
|
+ *
|
|
|
+ * If incompatible changes are made to the bootinfo interface, the major
|
|
|
+ * number below should be stepped (and the minor reset to 0) for the
|
|
|
+ * appropriate machine. If a change is backward-compatible, the minor
|
|
|
+ * should be stepped. "Backwards-compatible" means that booting will work,
|
|
|
+ * but certain features may not.
|
|
|
+ */
|
|
|
+
|
|
|
+#define BOOTINFOV_MAGIC 0x4249561A /* 'BIV^Z' */
|
|
|
+#define MK_BI_VERSION(major,minor) (((major)<<16)+(minor))
|
|
|
+#define BI_VERSION_MAJOR(v) (((v) >> 16) & 0xffff)
|
|
|
+#define BI_VERSION_MINOR(v) ((v) & 0xffff)
|
|
|
+
|
|
|
+#ifndef __ASSEMBLY__
|
|
|
+
|
|
|
+struct bootversion {
|
|
|
+ unsigned short branch;
|
|
|
+ unsigned long magic;
|
|
|
+ struct {
|
|
|
+ unsigned long machtype;
|
|
|
+ unsigned long version;
|
|
|
+ } machversions[0];
|
|
|
+};
|
|
|
+
|
|
|
+#endif /* __ASSEMBLY__ */
|
|
|
+
|
|
|
+#define AMIGA_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
|
|
|
+#define ATARI_BOOTI_VERSION MK_BI_VERSION( 2, 1 )
|
|
|
+#define MAC_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
|
|
|
+#define MVME147_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
|
|
|
+#define MVME16x_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
|
|
|
+#define BVME6000_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
|
|
|
+#define Q40_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
|
|
|
+#define HP300_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
|
|
|
+
|
|
|
+#ifdef BOOTINFO_COMPAT_1_0
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Backwards compatibility with bootinfo interface version 1.0
|
|
|
+ */
|
|
|
+
|
|
|
+#define COMPAT_AMIGA_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
|
|
|
+#define COMPAT_ATARI_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
|
|
|
+#define COMPAT_MAC_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
|
|
|
+
|
|
|
+#include <linux/zorro.h>
|
|
|
+
|
|
|
+#define COMPAT_NUM_AUTO 16
|
|
|
+
|
|
|
+struct compat_bi_Amiga {
|
|
|
+ int model;
|
|
|
+ int num_autocon;
|
|
|
+ struct ConfigDev autocon[COMPAT_NUM_AUTO];
|
|
|
+ unsigned long chip_size;
|
|
|
+ unsigned char vblank;
|
|
|
+ unsigned char psfreq;
|
|
|
+ unsigned long eclock;
|
|
|
+ unsigned long chipset;
|
|
|
+ unsigned long hw_present;
|
|
|
+};
|
|
|
+
|
|
|
+struct compat_bi_Atari {
|
|
|
+ unsigned long hw_present;
|
|
|
+ unsigned long mch_cookie;
|
|
|
+};
|
|
|
+
|
|
|
+#ifndef __ASSEMBLY__
|
|
|
+
|
|
|
+struct compat_bi_Macintosh
|
|
|
+{
|
|
|
+ unsigned long videoaddr;
|
|
|
+ unsigned long videorow;
|
|
|
+ unsigned long videodepth;
|
|
|
+ unsigned long dimensions;
|
|
|
+ unsigned long args;
|
|
|
+ unsigned long boottime;
|
|
|
+ unsigned long gmtbias;
|
|
|
+ unsigned long bootver;
|
|
|
+ unsigned long videological;
|
|
|
+ unsigned long sccbase;
|
|
|
+ unsigned long id;
|
|
|
+ unsigned long memsize;
|
|
|
+ unsigned long serialmf;
|
|
|
+ unsigned long serialhsk;
|
|
|
+ unsigned long serialgpi;
|
|
|
+ unsigned long printmf;
|
|
|
+ unsigned long printhsk;
|
|
|
+ unsigned long printgpi;
|
|
|
+ unsigned long cpuid;
|
|
|
+ unsigned long rombase;
|
|
|
+ unsigned long adbdelay;
|
|
|
+ unsigned long timedbra;
|