diff options
author | imp <imp@FreeBSD.org> | 2005-01-11 01:17:07 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2005-01-11 01:17:07 +0000 |
commit | 3fba2d8bb33bb85c7359fa9087c8cae7ae40ce99 (patch) | |
tree | d9c503660176819f41671dc63d86053c8feaa5f1 /sys/dev/aha/aha_isa.c | |
parent | 66b769150f0ef4785bd03079a94eccdadd165fcb (diff) | |
download | FreeBSD-src-3fba2d8bb33bb85c7359fa9087c8cae7ae40ce99.zip FreeBSD-src-3fba2d8bb33bb85c7359fa9087c8cae7ae40ce99.tar.gz |
Final attempt to make aha 1542A working. If not, oh well, I don't
have the card and no way to reproduce problems. We do this by
applying the workaround to firmware revsion 0.
PR: 14334
Diffstat (limited to 'sys/dev/aha/aha_isa.c')
-rw-r--r-- | sys/dev/aha/aha_isa.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/dev/aha/aha_isa.c b/sys/dev/aha/aha_isa.c index ba27bc5..a9a36ca 100644 --- a/sys/dev/aha/aha_isa.c +++ b/sys/dev/aha/aha_isa.c @@ -265,8 +265,18 @@ aha_isa_attach(device_t dev) bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq); aha_free(aha); return (ENOMEM); + } + /* + * The 1542A and B look the same. So we guess based on + * the firmware revision. It appears that only rev 0 is on + * the A cards. + */ + if (aha->boardid <= BOARD_1542 && aha->fw_major == 0) { + device_printf(dev, "154xA may not work\n"); + aha->ccb_sg_opcode = INITIATOR_SG_CCB; + aha->ccb_ccb_opcode = INITIATOR_CCB; } - + error = aha_attach(aha); if (error) { device_printf(dev, "attach failed\n"); |