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