Subject: Re:Q605
To: Bob Nestor <rnestor@metronet.com>
From: None <omar@webnetmktg.com>
List: port-mac68k
Date: 09/01/1996 10:13:45
>>Logging to bootlog
>>Booting...MID_M68K executable: entry 0x3356.
>> + 48244
>>
>>Set _boothowto to 0x2.
>>  Bye-bye...
>>        So I sez to him...  The real way
>>        that it should be done is to...
>>Ser Console = 0
>>
>>Set _mac68k_vrsrc_cnt to 0x0.
>>
>>Set _mac68k_vrsrc_vec to {0x0 0x0 0x0 0x0 0x0 0x0 }.
>
>Hi,
>
>Hope you haven't given up hope on getting MacBSD up and running on your
>Q605 yet.  I've been digging around trying to find some reason and/or
>pattern.  Seems the LC575 and the Q605 act the same way on boot and we
>might have made an "Ah-Ha" breakthrough.  We discovered the LC575 uses a
>new Class of hardware map for I/O that we hadn't seen before. I'm in the
>process of putting together a Kernel that may boot on that system, and
>I'd like to verify that's the same thing that's happening on the Q605.
>To do that I've added some code to the ROM Sniffer to try to map out the
>Hardware I/O map.  If you'd like to try running it again on your system
>and send me the results, I'd sure appreciate it.  The program is at:
>
><ftp://members.aol.com/bobnestor/NetBSD_ROM.sit.hqx>
>
>Thanks,
>-bob

Here you go bob. I kind of almost given up hope but not completley, here
are the results.
The Mac ROM values needed by NetBSD/mac68k for this Mac are:

/*
 * Vectors sniffed out for MacQuadra605, a MACH_CLASS?? machine
 *  Zero values are not required by NetBSD for this system, but values shown as
 *   "Not_Found" must be provided before NetBSD can hope to run.  The values
 *    shown in parenthesis in the comment field are thought to be machine
 *    independent and valid for this system based on the ROM Version ID.
 */
{                /* ?? */
    "MacQuadra605 ROMs",    /* Gestalt Id: 94 */
    (caddr_t) 0x408a9b56,   /*              ADB interrupt */
    (caddr_t) 0x0,          /*              PM ADB interrupt */
    (caddr_t) 0x408b2f94,   /*              ADBBase + 130 interupt */
    (caddr_t) 0x4080a360,   /* (0x4080a360) CountADBs */
    (caddr_t) 0x4080a37a,   /* (0x4080a37a) GetIndADB */
    (caddr_t) 0x4080a3a6,   /* (0x4080a3a6) GetADBInfo */
    (caddr_t) 0x4080a3ac,   /* (0x4080a3ac) SetADBInfo */
    (caddr_t) 0x4080a752,   /* (0x4080a752) ADBReInit */
    (caddr_t) 0x4080a3dc,   /* (0x4080a3dc) ADBOp */
    (caddr_t) 0x0,          /*              PMgrOp */
    (caddr_t) 0x4080c05c,   /* (0x4080c05c) WriteParam */
    (caddr_t) 0x4080c086,   /* (0x4080c086) SetDateTime */
    (caddr_t) 0x4080c5cc,   /* (0x4080c5cc) InitUtil */
    (caddr_t) 0x4080b186,   /* (0x4080b186) ReadXPRam */
    (caddr_t) 0x4080b190,   /* (0x4080b190) WriteXPRam */
    (caddr_t) 0x408b3bf8,   /*              jClkNoMem */
    (caddr_t) 0x4080a818,   /* (0x40801818) ADBAlternateInit */
    (caddr_t) 0x408a99c0,   /* (0x40814800) Egret */
    (caddr_t) 0x408147c4,   /*              InitEgret */
    (caddr_t) 0x408a82c0,   /*              ADBReInit_JTBL */
    (caddr_t) 0x4087eb90,   /* (0x4087eb90) ROMResourceMap List Head */
    (caddr_t) 0x4081c406,   /* (0x4081c406) FixDiv */
    (caddr_t) 0x4081c312,   /* (0x4081c312) FixMul */
},

/*
 * This machine is of an unknown Class and should be defined as follows.
 * The following information is needed to properly classify this system
 *  for processing I/O.  This goes into the "setmachdep()" routine
 *  located in the "machdep.c" source file.
 */
 case MACH_CLASS##
   VIA2 = 0x1;
   IOBase = 0x50f00000;
   Via1Base = (volatile u_char *) IOBase;
   mac68k_machine.scsi96 = 1;
   mac68k_machine.sccClkConst = 115200;
   via_reg(VIA1, vIER) = 0x7f;  /* disable VIA1 int */
   via_reg(VIA2, rIER) = 0x7f;  /* disable RBV int */
   break;

/*
 * The following information is needed to setup the I/O Base addresses
 *  pointing to the appropiate memory mapped hardware on this system.
 * This information goes into the "mac68k_set_io_offsets(base)" routine
 *  located in the "machdep.c" source file.
 */
 case MACH_CLASS##
   Via1Base = volatile u_char *) base;
   sccA = (volatile u_char *) base + 0xc020;
   ASCBase = (volatile u_char *) base + 0x14000;
   SCSIBase = base;
   break;

This machine is a 68k machine using a 68RC040/68LC040 CPU, FPU: optional
68881 installed MMU: integrated in 68040
Gestalt Manager reports hardware attributes (0x01a0081b) of:
   VIA1 exists
   VIA2 esists
   ASC - Apple Sound Chip
   SCC exists
   Internal IDE disk, not currently supported by NetBSD/mac68k
   Universal ROM
Basic hardware required for NetBSD/mac68k is present, but the following
 things might be problems that need to be considered:
    Internal disk is an IDE, not currently supported
If you are not currently able to build a Kernel with this information and
 need one built that you can test, please send the information to me,
    Bob Nestor at rnestor@metronet.com
I'll build a Kernel, put it on an FTP Site and let you know where. If it
 runs on your system, I'll forward the information to the Maintainers.