diff options
author | gibbs <gibbs@FreeBSD.org> | 1998-10-15 18:21:50 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1998-10-15 18:21:50 +0000 |
commit | 9ede5f09d8b8ef6b5832bf78abf3b2c68b93f84f (patch) | |
tree | 5e1710999e6bbb205761d38158ab46421045e3aa /sys/i386/eisa/ahc_eisa.c | |
parent | 8c808a1f97e6f7f7790aa7f3b9d3dbc299319057 (diff) | |
download | FreeBSD-src-9ede5f09d8b8ef6b5832bf78abf3b2c68b93f84f.zip FreeBSD-src-9ede5f09d8b8ef6b5832bf78abf3b2c68b93f84f.tar.gz |
Bring back support for honoring the primary channel setting for twin channel
EISA adapters. This could have caused the system to find the wrong root
disk.
Reviewed by: J Wunsch <j@ida.interface-business.de>
Diffstat (limited to 'sys/i386/eisa/ahc_eisa.c')
-rw-r--r-- | sys/i386/eisa/ahc_eisa.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/i386/eisa/ahc_eisa.c b/sys/i386/eisa/ahc_eisa.c index e298bc2..d69159e 100644 --- a/sys/i386/eisa/ahc_eisa.c +++ b/sys/i386/eisa/ahc_eisa.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ahc_eisa.c,v 1.1 1998/09/15 07:24:58 gibbs Exp $ + * $Id: ahc_eisa.c,v 1.2 1998/10/09 17:42:28 gibbs Exp $ */ #include "eisa.h" @@ -252,12 +252,15 @@ aic7770_attach(struct eisa_device *e_dev) u_int biosctrl; u_int scsiconf; u_int scsiconf1; +#if DEBUG + int i; +#endif biosctrl = ahc_inb(ahc, HA_274_BIOSCTRL); scsiconf = ahc_inb(ahc, SCSICONF); scsiconf1 = ahc_inb(ahc, SCSICONF + 1); -#if 0 +#if DEBUG for (i = TARG_SCSIRATE; i <= HA_274_BIOSCTRL; i+=8) { printf("0x%x, 0x%x, 0x%x, 0x%x, " "0x%x, 0x%x, 0x%x, 0x%x\n", @@ -273,7 +276,8 @@ aic7770_attach(struct eisa_device *e_dev) #endif /* Get the primary channel information */ - ahc->flags |= (biosctrl & CHANNEL_B_PRIMARY); + if ((biosctrl & CHANNEL_B_PRIMARY) != 0) + ahc->flags |= AHC_CHANNEL_B_PRIMARY; if ((biosctrl & BIOSMODE) == BIOSDISABLED) { ahc->flags |= AHC_USEDEFAULTS; @@ -291,6 +295,11 @@ aic7770_attach(struct eisa_device *e_dev) ahc->flags |= AHC_TERM_ENB_B; } } + /* + * We have no way to tell, so assume extended + * translation is enabled. + */ + ahc->flags |= AHC_EXTENDED_TRANS_A|AHC_EXTENDED_TRANS_B; break; } case AHC_VL: |