Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Areca 1200 rev. B not recognised?



thorpej%me.com@localhost:
> The fact that it's in the same driver implies that this won't be very
> hard at all. Although it looks to me like the OpenBSD driver doesn't
> actually support the 1200 rev B, because it call it a "type B"
> controller, but then fails to have any code to handle "type B"
> controllers in the places where different controller types need
> different handling.

Heh! :-) That would possibly explain why the $latest version of OpenBSD
crashed(!) on me, when I tried booting the system with that. :-)

I started to look at the FreeBSD driver two hours ago, and, after a hint
from Håvard, diffing "before" and "after" support for 1200_B (a.k.a.
1201) was added. Håvard hinted about this link:

https://svnweb.freebsd.org/base/head/sys/dev/arcmsr/arcmsr.c?r1=171676&r2=174451

Thanks for that! Brilliant idea!

My problems are that while I _do_ speak C in general and very old
(1908s) terms, I'm not a C programmer, nor a kernel programmer, nor am I
familiar with the subtle(?) differences between (Free|Open|Net)BSD. Any
assistance here - including hints to where to look for a crash course in
NetBSD disk driver design, or comparative studies in *BSD kernel code -
would be more than appreciated.

BTW, the "type B" terminology stems from the original FreeBSD driver
provided by Areca themselves - where there _is_ different code to handle
different board types. :-)

#define ACB_ADAPTER_TYPE_A 0x00000001 /* hba I IOP */
#define ACB_ADAPTER_TYPE_B 0x00000002 /* hbb M IOP */
#define ACB_ADAPTER_TYPE_C 0x00000004 /* hbc P IOP */
#define ACB_ADAPTER_TYPE_D 0x00000008 /* hbd A IOP */

	switch (acb->adapter_type) {
	case ACB_ADAPTER_TYPE_A: {
	... ... ...
	case ACB_ADAPTER_TYPE_B: {

				Cheers,
				  /Liman


Home | Main Index | Thread Index | Old Index