From: | YONETANI Tomokazu <qhwt+dragonfly-submit@xxxxxxxxxx> |
Date: | Mon, 6 Sep 2004 18:52:36 +0900 |
On Mon, Sep 06, 2004 at 10:09:03AM +0200, Toma?Ťö Bor?ŤŢtnar wrote: > YONETANI Tomokazu wrote: > > >Yeah, our ServeRAID driver lacks recent important updates from > >FreeBSD-CURRENT > >including newly supported controllers and a few bug fixes. > not sure if freebsd 5.3 driver is that good. I have open PR > (http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/71087) for it. Hmm, looks to me like later reports are problems related to USB drivers(the one you reported to bugs@). > The update > >in FreeBSD-CURRENT also involves converting some of mutex operations into > >sema_* and bio*, but I haven't managed to rewrite it using our native > >thread APIs. Anyway, I can post a minimal patch(that is, not including my > >experimental code to convert the mutexes and the semaphoe stuffs) to > >support > >newer controllers if you like to try it. > > I did this for FreeBSD 5.2.1 to make it work: > > Index: sys/dev/ips/ips.h > =================================================================== > RCS file: /home/ncvs/src/sys/dev/ips/ips.h,v > retrieving revision 1.5 > diff -u -r1.5 ips.h > --- sys/dev/ips/ips.h 27 Nov 2003 08:37:36 -0000 1.5 > +++ sys/dev/ips/ips.h 30 Aug 2004 14:35:18 -0000 > @@ -52,8 +52,8 @@ > /* > * IPS CONSTANTS > */ > -#define IPS_VENDOR_ID 0x1014 > -#define IPS_MORPHEUS_DEVICE_ID 0x01BD > +#define IPS_VENDOR_ID 0x9005 > +#define IPS_MORPHEUS_DEVICE_ID 0x0250 > #define IPS_COPPERHEAD_DEVICE_ID 0x002E > #define IPS_CSL 0xff > #define IPS_POCL 0x30 > > > It is a hack, but it works fine. > I would say something like this should not go into main Dfly code, but > something close would make Dfly usable for people with new cards. > > Yes, I will gladly test it if you prepare a better patch than my hack. Ok, I assume you have a recent DragonFly snapshot CD to boot your e325 and enable network so that you can build patched ips.ko somewhere else and copy it over the network. As far as I tested, ips driver can be loaded via kldload after booting into multi-user mode. You can also install an IDE disk to e325, install DragonFly on to it, and then hack the driver and replicate the system onto the ServeRAID partitions. There are two patches attached to this message. Please apply it to the recent DragonFly source on a build machine, and compile the driver. $ zcat ips-style.diff | patch -d/sys -p0 $ zcat ips-new.diff | patch -d/sys -p0 $ cd /sys/dev/raid/ips $ make obj && make depend && make $ cp $(make -V .OBJDIR)/ips.ko ~ Now you have the driver in your home directory. Then send it to e325 and kldload it: # kldload ./ips.ko (the screen freezes for a moment) You have to populate the device nodes, as they are not there on LiveCD by default. # cd /dev # ./MAKEDEV ipsd0 The rest of the operation is the same as written in /README, except that you have to replace every occurence of ad0 with ipsd0. Also please make sure that your /mnt/etc/fstab has correct device name, and that you populated your /mnt/dev/ipsd0* . If you forgot polupating the device nodes on installed system, the boot procedure stops unexpectedly and waste your time figuring out what went wrong. Thanks in advance for testing the patch on your newer controller. Changes include: - style fix(ips-style.diff.gz) - add support for newer controller - use unique malloc type rather than M_DEVBUF - bus_alloc_resource() -> bus_alloc_resource_any() Changes not included: - use of sema_* and bio* functions - dev_t -> struct cdev * - dump support(this is not even in FreeBSD-CURRENT, but being worked-on)
Attachment:
ips-style.diff.gz
Description: application/gunzip
Attachment:
ips-new.diff.gz
Description: application/gunzip