summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1998-10-15 18:21:50 +0000
committergibbs <gibbs@FreeBSD.org>1998-10-15 18:21:50 +0000
commit9ede5f09d8b8ef6b5832bf78abf3b2c68b93f84f (patch)
tree5e1710999e6bbb205761d38158ab46421045e3aa /sys/i386
parent8c808a1f97e6f7f7790aa7f3b9d3dbc299319057 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/i386/eisa/ahc_eisa.c15
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:
OpenPOWER on IntegriCloud