Subject: Thinwire Port on Multias
To: NetBSD/Alpha Users <port-alpha@NetBSD.ORG>
From: Curt Sampson <cjs@portal.ca>
List: port-alpha
Date: 11/17/1996 22:38:06
Well, I can't get that darn thinwire port on my Multia to work.
I've been through the Linux device driver, and it doesn't seem to
be doing anything special to select it. The entire relevant chunk
of Linux code is as follows:

-----------------------------------
/* This is a mysterious value that can be written to CSR11 in the 21040
   to detect a full-duplex frame.  No one knows what it should be, but if
   left at its default value some 10base2(!) packets trigger a
   full-duplex-request interrupt. */
#define FULL_DUPLEX_MAGIC       0x6969

#define TSIAC_NO10TP            0x00000008      /* 10baseT(0) or not(1) */
#define TSIAC_CONFIG            0x00000004      /* Configuration */
#define TSIAC_SWRESET           0x00000001      /* 21041: software reset */
#define TSIAC_RESET                     0x00000000      /* reset */
#define TSIAC_C21041            (TSIAC_OUTEN|TSIAC_SELED|TSIAC_SWRESET)
#define TSIAC_C21040            TSIAC_CONFIG

static void     
generic21040_select(struct device *dev) 
{
        int ioaddr = dev->base_addr;
        const char *media;
                        
        dev->if_port &= 3;
        switch (dev->if_port)
        {               
        case TULIP_10TP_PORT:
                media = "10baseT";  
                break;  
        case TULIP_AUI_PORT:
                media = "AUI";
                break;
        case TULIP_BNC_PORT:
                media = "BNC"; 
                break;  
        default:        
                media = "unknown type"; 
                break;          
        }
        printk("%s: enabling %s port.\n", dev->name, media);
        /* Set the full duplex match frame. */
        tio_write(FULL_DUPLEX_MAGIC, CSR11);
        tio_write(TSIAC_RESET, CSR13);
        /* Reset the serial interface */
        tio_write((dev->if_port ? TSIAC_NO10TP: 0) | TSIAC_C21040, CSR13);
}               
-----------------------------------

Not too tricky.

I have converted our driver to send the full duplex magic, and to
output exactly the same thing (0x0c) to CR13 as the Linux driver
does (ours adds the software reset bit), and still no joy.

If anyone out there has access to an alpha running Linux, would
you mind checking to see that this interface really does work, and
sending me a copy of the startup messages related to this interface?

cjs

Curt Sampson    cjs@portal.ca		Info at http://www.portal.ca/
Internet Portal Services, Inc.	
Vancouver, BC   (604) 257-9400		De gustibus, aut bene aut nihil.