Subject: Re: Adaptec SATA RAID 2410SA driver
To: D'Arcy J.M. Cain <darcy@NetBSD.org>
From: Frank van der Linden <fvdl@netbsd.org>
List: port-amd64
Date: 03/10/2005 20:07:19
On Thu, Mar 10, 2005 at 01:49:22PM -0500, D'Arcy J.M. Cain wrote:
> The config file says this:
>
> GENERIC:#aac* at pci? dev ? function ? # Broken -- 32bit assumptions.
>
> Is this still true? Does anyone have any idea what it would take to fix
> this? Dow badly broken is it? Will it run with smaller drives or will
> it just fail altogether if I try?
I compiled it for amd64, and noticed it was assigning virtual addresses
to 32bit values. So I marked it broken for 64bit architectures.
I don't know the details of the interface to the card, so it might be
that these assignments can be avoided. For example, one such line is:
fib->Header.SenderFibAddress = htole32((u_int32_t)fib); /* XXX */
..in aac_sync_fib().
However, in the FreeBSD version, this line is now:
fib->Header.SenderFibAddress = 0; /* Not needed */
So it may be that you can simply avoid all the assignments. Look at
the differences between rev 1.4 and 1.5 of aac.c (which I later backed out),
and see if these unsafe assignments are actually needed by comparing
it to the FreeBSD version.
NetBSD file: src/sys/dev/ic/aac.c
FreeBSD files: src/sys/dev/aac/*
It may be that everything turns out to be safe, and things could just work.
- Frank