|
@@ -22,6 +22,7 @@
|
|
|
/* keyb */
|
|
|
#include <linux/init.h>
|
|
|
#include <linux/vt_kern.h>
|
|
|
+#include <linux/platform_device.h>
|
|
|
|
|
|
#define BOOTINFO_COMPAT_1_0
|
|
|
#include <asm/setup.h>
|
|
@@ -43,6 +44,10 @@
|
|
|
#include <asm/mac_oss.h>
|
|
|
#include <asm/mac_psc.h>
|
|
|
|
|
|
+/* platform device info */
|
|
|
+
|
|
|
+#define SWIM_IO_SIZE 0x2000 /* SWIM IO resource size */
|
|
|
+
|
|
|
/* Mac bootinfo struct */
|
|
|
|
|
|
struct mac_booter_data mac_bi_data;
|
|
@@ -224,7 +229,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_II,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_IWM
|
|
|
},
|
|
|
|
|
|
/*
|
|
@@ -239,7 +245,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_II,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_IWM
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_IIX,
|
|
|
.name = "IIx",
|
|
@@ -247,7 +254,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_II,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_IICX,
|
|
|
.name = "IIcx",
|
|
@@ -255,7 +263,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_II,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_SE30,
|
|
|
.name = "SE/30",
|
|
@@ -263,7 +272,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_II,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
},
|
|
|
|
|
|
/*
|
|
@@ -280,7 +290,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_IIFX,
|
|
|
.name = "IIfx",
|
|
@@ -288,7 +299,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_IOP,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_IOP
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_IISI,
|
|
|
.name = "IIsi",
|
|
@@ -296,7 +308,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_IIVI,
|
|
|
.name = "IIvi",
|
|
@@ -304,7 +317,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_IIVX,
|
|
|
.name = "IIvx",
|
|
@@ -312,7 +326,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
},
|
|
|
|
|
|
/*
|
|
@@ -326,7 +341,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_CCL,
|
|
|
.name = "Color Classic",
|
|
@@ -334,7 +350,9 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS},
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
+ },
|
|
|
|
|
|
/*
|
|
|
* Some Mac LC machines. Basically the same as the IIci, ADB like IIsi
|
|
@@ -347,7 +365,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_LCII,
|
|
|
.name = "LC II",
|
|
@@ -355,7 +374,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_LCIII,
|
|
|
.name = "LC III",
|
|
@@ -363,7 +383,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
},
|
|
|
|
|
|
/*
|
|
@@ -383,7 +404,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_Q605_ACC,
|
|
|
.name = "Quadra 605",
|
|
@@ -391,7 +413,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_Q610,
|
|
|
.name = "Quadra 610",
|
|
@@ -400,7 +423,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_Q630,
|
|
|
.name = "Quadra 630",
|
|
@@ -410,7 +434,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.ide_type = MAC_IDE_QUADRA,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_Q650,
|
|
|
.name = "Quadra 650",
|
|
@@ -419,7 +444,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
},
|
|
|
/* The Q700 does have a NS Sonic */
|
|
|
{
|
|
@@ -430,7 +456,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA2,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_Q800,
|
|
|
.name = "Quadra 800",
|
|
@@ -439,7 +466,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_Q840,
|
|
|
.name = "Quadra 840AV",
|
|
@@ -448,7 +476,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA3,
|
|
|
.scc_type = MAC_SCC_PSC,
|
|
|
.ether_type = MAC_ETHER_MACE,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_AV
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_Q900,
|
|
|
.name = "Quadra 900",
|
|
@@ -457,7 +486,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA2,
|
|
|
.scc_type = MAC_SCC_IOP,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_IOP
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_Q950,
|
|
|
.name = "Quadra 950",
|
|
@@ -466,7 +496,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA2,
|
|
|
.scc_type = MAC_SCC_IOP,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_IOP
|
|
|
},
|
|
|
|
|
|
/*
|
|
@@ -480,7 +511,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_P475,
|
|
|
.name = "Performa 475",
|
|
@@ -488,7 +520,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_P475F,
|
|
|
.name = "Performa 475",
|
|
@@ -496,7 +529,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_P520,
|
|
|
.name = "Performa 520",
|
|
@@ -504,7 +538,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_P550,
|
|
|
.name = "Performa 550",
|
|
@@ -512,7 +547,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
},
|
|
|
/* These have the comm slot, and therefore the possibility of SONIC ethernet */
|
|
|
{
|
|
@@ -523,7 +559,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_P588,
|
|
|
.name = "Performa 588",
|
|
@@ -533,7 +570,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.ide_type = MAC_IDE_QUADRA,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_TV,
|
|
|
.name = "TV",
|
|
@@ -541,7 +579,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_P600,
|
|
|
.name = "Performa 600",
|
|
@@ -549,7 +588,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_II,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
},
|
|
|
|
|
|
/*
|
|
@@ -565,7 +605,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_C650,
|
|
|
.name = "Centris 650",
|
|
@@ -574,7 +615,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR1
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_C660,
|
|
|
.name = "Centris 660AV",
|
|
@@ -583,7 +625,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_QUADRA3,
|
|
|
.scc_type = MAC_SCC_PSC,
|
|
|
.ether_type = MAC_ETHER_MACE,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_AV
|
|
|
},
|
|
|
|
|
|
/*
|
|
@@ -599,7 +642,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB145,
|
|
|
.name = "PowerBook 145",
|
|
@@ -607,7 +651,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB150,
|
|
|
.name = "PowerBook 150",
|
|
@@ -616,7 +661,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.ide_type = MAC_IDE_PB,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB160,
|
|
|
.name = "PowerBook 160",
|
|
@@ -624,7 +670,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB165,
|
|
|
.name = "PowerBook 165",
|
|
@@ -632,7 +679,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB165C,
|
|
|
.name = "PowerBook 165c",
|
|
@@ -640,7 +688,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB170,
|
|
|
.name = "PowerBook 170",
|
|
@@ -648,7 +697,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB180,
|
|
|
.name = "PowerBook 180",
|
|
@@ -656,7 +706,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB180C,
|
|
|
.name = "PowerBook 180c",
|
|
@@ -664,7 +715,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_QUADRA,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB190,
|
|
|
.name = "PowerBook 190",
|
|
@@ -673,7 +725,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.ide_type = MAC_IDE_BABOON,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB520,
|
|
|
.name = "PowerBook 520",
|
|
@@ -682,7 +735,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
.ether_type = MAC_ETHER_SONIC,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
},
|
|
|
|
|
|
/*
|
|
@@ -702,7 +756,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB230,
|
|
|
.name = "PowerBook Duo 230",
|
|
@@ -710,7 +765,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB250,
|
|
|
.name = "PowerBook Duo 250",
|
|
@@ -718,7 +774,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB270C,
|
|
|
.name = "PowerBook Duo 270c",
|
|
@@ -726,7 +783,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB280,
|
|
|
.name = "PowerBook Duo 280",
|
|
@@ -734,7 +792,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
}, {
|
|
|
.ident = MAC_MODEL_PB280C,
|
|
|
.name = "PowerBook Duo 280c",
|
|
@@ -742,7 +801,8 @@ static struct mac_model mac_data_table[] = {
|
|
|
.via_type = MAC_VIA_IIci,
|
|
|
.scsi_type = MAC_SCSI_OLD,
|
|
|
.scc_type = MAC_SCC_QUADRA,
|
|
|
- .nubus_type = MAC_NUBUS
|
|
|
+ .nubus_type = MAC_NUBUS,
|
|
|
+ .floppy_type = MAC_FLOPPY_SWIM_ADDR2
|
|
|
},
|
|
|
|
|
|
/*
|
|
@@ -815,3 +875,42 @@ static void mac_get_model(char *str)
|
|
|
strcpy(str, "Macintosh ");
|
|
|
strcat(str, macintosh_config->name);
|
|
|
}
|
|
|
+
|
|
|
+static struct resource swim_resources[1];
|
|
|
+
|
|
|
+static struct platform_device swim_device = {
|
|
|
+ .name = "swim",
|
|
|
+ .id = -1,
|
|
|
+ .num_resources = ARRAY_SIZE(swim_resources),
|
|
|
+ .resource = swim_resources,
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device *mac_platform_devices[] __initdata = {
|
|
|
+ &swim_device
|
|
|
+};
|
|
|
+
|
|
|
+int __init mac_platform_init(void)
|
|
|
+{
|
|
|
+ u8 *swim_base;
|
|
|
+
|
|
|
+ switch (macintosh_config->floppy_type) {
|
|
|
+ case MAC_FLOPPY_SWIM_ADDR1:
|
|
|
+ swim_base = (u8 *)(VIA1_BASE + 0x1E000);
|
|
|
+ break;
|
|
|
+ case MAC_FLOPPY_SWIM_ADDR2:
|
|
|
+ swim_base = (u8 *)(VIA1_BASE + 0x16000);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ swim_resources[0].name = "swim-regs";
|
|
|
+ swim_resources[0].start = (resource_size_t)swim_base;
|
|
|
+ swim_resources[0].end = (resource_size_t)(swim_base + SWIM_IO_SIZE);
|
|
|
+ swim_resources[0].flags = IORESOURCE_MEM;
|
|
|
+
|
|
|
+ return platform_add_devices(mac_platform_devices,
|
|
|
+ ARRAY_SIZE(mac_platform_devices));
|
|
|
+}
|
|
|
+
|
|
|
+arch_initcall(mac_platform_init);
|