From: Claude Lecommandeur (lecom@slhp1.epfl.ch)
Date: 07/21/92


From: lecom@slhp1.epfl.ch (Claude Lecommandeur)
Subject: Re: Help -- SCSI, Future Domain TMC-950
Date: 21 Jul 1992 07:34:14 GMT

In article <1992Jul20.183355.34976@uservx.plk.af.mil>, simonich@uservx.plk.af.mil writes:
|> I saw a message go by reciently about a patch to
|> support the Future Domain SCSI card with the TMC-950
|> chip. Does anyone know where I can find the patch?
|>
|> Also, since I can't compile without a hard drive,
|> how about a boot.z file?
|>
|> All help is appreciated.

  I'm not sure it's good or not, but i did just a few patch in scsi.c and seagate.c
and it works for me. (i have a SyQuest on my TMC-950).

in scsi.c :
=======================================================
static void scan_scsis (void)
        {
        int host_nr , dev, lun, type, maxed;
        static unsigned char scsi_cmd [12];
        static unsigned char scsi_result [256];

        for (host_nr = 0; host_nr < MAX_SCSI_HOSTS; ++host_nr)
                if (scsi_hosts[host_nr].present)
                        {
#ifdef FUTURE_DOMAIN_TMC_950
                        for (dev = 0; dev < 6; ++dev)
#else
                        for (dev = 0; dev < 7; ++dev)
#endif
                                if (scsi_hosts[host_nr].this_id != dev)
                                #ifdef MULTI_LUN
                                for (lun = 0; lun < 8; ++lun)
                                        {
                                #else
=======================================================
in seagate.c :
=======================================================
        if (base_address)
                {
#ifdef FUTURE_DOMAIN_TMC_950
                st0x_cr_sr =(void *) (((unsigned char *) base_address) + 0x1c00);
                st0x_dr = (void *) (((unsigned char *) base_address )+ 0x1e00);
#else
                st0x_cr_sr =(void *) (((unsigned char *) base_address) + 0x1a00);
                st0x_dr = (void *) (((unsigned char *) base_address )+ 0x1c00);
#endif
                #ifdef DEBUG
                        printk("ST0x detected. Base address = %x, cr = %x, dr = %x\n", base_address, st0x_cr_sr, st0x_dr);
                #endif
                return -1;
                }
        else
=====================
        #if (DEBUG & PRINT_COMMAND)
                printk ("seagate_st0x_command, target = %d, command = ", target);
                for (i = 0; i < COMMAND_SIZE(((unsigned char *)cmnd)[0]); ++i)
                        printk("%02x ", ((unsigned char *) cmnd)[i]);
                printk("\n");
        #endif
        
#ifdef FUTURE_DOMAIN_TMC_950
        if (target > 5)
#else
        if (target > 6)
#endif
                return DID_BAD_TARGET;

=======================================================

    This is from Linux0.96bPl2. Of course you have to define FUTURE_DOMAIN_TMC_950
somewhere along with CONFIG_SCSI_SEAGATE.
    I know nothing of drivers and SCSI, so take this with care.

  Hope it helps.

-- 

Claude Lecommandeur Service Informatique Central Ecole Polytechnique Federale de Lausanne 1015 LAUSANNE (SWITZERLAND) E-Mail : lecom@sic.epfl.ch Tel : (41 21) 693-22-97