Date: Tue, 29 Aug 2000 21:17:29 +0200 (CEST) From: =?ISO-8859-1?Q?G=E9rard_Roudier?= <groudier@club-internet.fr> To: Hisashi Hiramoto <hiramoto@phys.chs.nihon-u.ac.jp> Cc: FreeBSD-bugs@FreeBSD.ORG Subject: Re: kern/20895: sym driver doesn't work for SYM53C895A Message-ID: <Pine.LNX.4.10.10008292055380.216-100000@linux.local> In-Reply-To: <200008290332.e7T3WSm02626@march.phys.chs.nihon-u.ac.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 29 Aug 2000, Hisashi Hiramoto wrote: > Thanks for your quick response. > > On Mon, 28 Aug 2000 22:51:01 +0200, =?ISO-8859-1?Q?G=E9rard_Roudier?= wrote in > message-id <Pine.LNX.4.10.10008282234100.431-100000@linux.local>: > > > > I just checked the docs and, indeed, the SYM53C895A is described as having > > a PCI 32 bit interface, but supporting DAC access cycles. The patch above > > I should have mentioned in the first bug report that 53c895a supports > 32-bit PCI interface with 64-bit addressing. Sorry to have forgotten > to mention that. No problem. It is maintainer's fault, so it is mine. > # sym53c895a vs sym53c896 = i8088 vs i8086 ? sym53c895a vs sym53c896/2 = i8088 vs i8086 ? seems more correct :-) ^^ The patch below adds a new feature bit (FE_DAC) for 64 bit addressing capability and fixes the chip descriptions accordingly, plus some minor changes in the code (mostly FE_64BIT changed to FE_DAC). You may check it (you seem to know well Symbios chips), do any additionnal change I missed (if any), and report me if it works for you. Thanks in advance, Gerard. --- sym_defs.h.orig Tue Aug 29 20:39:43 2000 +++ sym_defs.h Tue Aug 29 20:40:02 2000 @@ -113,18 +113,19 @@ #define FE_RAM (1<<14) /* On chip RAM present */ #define FE_CLK80 (1<<15) /* Board clock is 80 MHz */ #define FE_RAM8K (1<<16) /* On chip RAM sized 8Kb */ -#define FE_64BIT (1<<17) /* Supports 64-bit addressing */ +#define FE_64BIT (1<<17) /* 64-bit PCI BUS interface */ #define FE_IO256 (1<<18) /* Requires full 256 bytes in PCI space */ #define FE_NOPM (1<<19) /* Scripts handles phase mismatch */ #define FE_LEDC (1<<20) /* Hardware control of LED */ #define FE_ULTRA3 (1<<21) /* Ultra 3 - 80 Mtrans/sec DT */ -#define FE_PCI66 (1<<22) /* 66MHz PCI support */ +#define FE_66MHZ (1<<22) /* 66MHz PCI support */ #define FE_CRC (1<<23) /* CRC support */ #define FE_DIFF (1<<24) /* SCSI HVD support */ #define FE_DFBC (1<<25) /* Have DFBC register */ #define FE_LCKFRQ (1<<26) /* Have LCKFRQ */ #define FE_C10 (1<<27) /* Various C10 core (mis)features */ #define FE_U3EN (1<<28) /* U3EN bit usable */ +#define FE_DAC (1<<29) /* Support PCI DAC (64 bit addressing) */ #define FE_CACHE_SET (FE_ERL|FE_CLSE|FE_WRIE|FE_ERMP) #define FE_CACHE0_SET (FE_CACHE_SET & ~FE_ERL) --- sym_hipd.c.orig Tue Aug 29 20:39:43 2000 +++ sym_hipd.c Tue Aug 29 20:40:02 2000 @@ -2211,7 +2211,7 @@ if (chip->features & FE_LDSTR) return &sym_fw2; #ifdef SYM_CONF_GENERIC_SUPPORT - else if (!(chip->features & (FE_PFEN|FE_NOPM|FE_64BIT))) + else if (!(chip->features & (FE_PFEN|FE_NOPM|FE_DAC))) return &sym_fw1; #endif else @@ -2787,9 +2787,9 @@ } /* - * 64 bit (53C895A or 53C896) ? + * 64 bit addressing (895A/896/1010) ? */ - if (np->features & FE_64BIT) + if (np->features & FE_DAC) #if BITS_PER_LONG > 32 np->rv_ccntl1 |= (XTIMOD | EXTIBMV); #else @@ -3438,12 +3438,11 @@ np->rv_ccntl0 |= DPR; /* - * If 64 bit (895A/896/1010) write CCNTL1 to enable 40 bit - * address table indirect addressing for MOVE. - * Also write CCNTL0 if 64 bit chip, since this register seems - * to only be used by 64 bit cores. + * Write CCNTL0/CCNTL1 for chips capable of 64 bit addressing + * and/or hardware phase mismatch, since only such chips + * seem to support those IO registers. */ - if (np->features & FE_64BIT) { + if (np->features & (FE_DAC|FE_NOPM)) { OUTB (nc_ccntl0, np->rv_ccntl0); OUTB (nc_ccntl1, np->rv_ccntl1); } @@ -8717,25 +8716,25 @@ #endif {PCI_ID_SYM53C896, 0xff, "896", 6, 31, 7, 4, FE_WIDE|FE_ULTRA2|FE_QUAD|FE_CACHE_SET|FE_BOF|FE_DFS|FE_LDSTR|FE_PFEN| - FE_RAM|FE_RAM8K|FE_64BIT|FE_IO256|FE_NOPM|FE_LEDC|FE_LCKFRQ} + FE_RAM|FE_RAM8K|FE_64BIT|FE_DAC|FE_IO256|FE_NOPM|FE_LEDC|FE_LCKFRQ} , {PCI_ID_SYM53C895A, 0xff, "895a", 6, 31, 7, 4, FE_WIDE|FE_ULTRA2|FE_QUAD|FE_CACHE_SET|FE_BOF|FE_DFS|FE_LDSTR|FE_PFEN| - FE_RAM|FE_RAM8K|FE_64BIT|FE_IO256|FE_NOPM|FE_LEDC|FE_LCKFRQ} + FE_RAM|FE_RAM8K|FE_DAC|FE_IO256|FE_NOPM|FE_LEDC|FE_LCKFRQ} , {PCI_ID_LSI53C1010, 0x00, "1010-33", 6, 31, 7, 8, FE_WIDE|FE_ULTRA3|FE_QUAD|FE_CACHE_SET|FE_BOF|FE_DFBC|FE_LDSTR|FE_PFEN| - FE_RAM|FE_RAM8K|FE_64BIT|FE_IO256|FE_NOPM|FE_LEDC|FE_PCI66|FE_CRC| + FE_RAM|FE_RAM8K|FE_64BIT|FE_DAC|FE_IO256|FE_NOPM|FE_LEDC|FE_66MHZ|FE_CRC| FE_C10} , {PCI_ID_LSI53C1010, 0xff, "1010-33", 6, 31, 7, 8, FE_WIDE|FE_ULTRA3|FE_QUAD|FE_CACHE_SET|FE_BOF|FE_DFBC|FE_LDSTR|FE_PFEN| - FE_RAM|FE_RAM8K|FE_64BIT|FE_IO256|FE_NOPM|FE_LEDC|FE_CRC| + FE_RAM|FE_RAM8K|FE_64BIT|FE_DAC|FE_IO256|FE_NOPM|FE_LEDC|FE_CRC| FE_C10|FE_U3EN} , {PCI_ID_LSI53C1010_2, 0xff, "1010-66", 6, 31, 7, 8, FE_WIDE|FE_ULTRA3|FE_QUAD|FE_CACHE_SET|FE_BOF|FE_DFBC|FE_LDSTR|FE_PFEN| - FE_RAM|FE_RAM8K|FE_64BIT|FE_IO256|FE_NOPM|FE_LEDC|FE_PCI66|FE_CRC| + FE_RAM|FE_RAM8K|FE_64BIT|FE_DAC|FE_IO256|FE_NOPM|FE_LEDC|FE_66MHZ|FE_CRC| FE_C10|FE_U3EN} , {PCI_ID_LSI53C1510D, 0xff, "1510d", 6, 31, 7, 4, ----------------------------- Cut here ----------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.10.10008292055380.216-100000>