kern/101045: PATCH: Updates to arcmsr(4)
Nikolas Britton
nikolas.britton at gmail.com
Sun Jul 30 10:50:16 UTC 2006
>Number: 101045
>Category: kern
>Synopsis: PATCH: Updates to arcmsr(4)
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Sun Jul 30 10:50:15 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Nikolas Britton
>Release: FreeBSD 6.1-STABLE
>Organization:
N/A
>Environment:
FreeBSD infomatic.local 6.1-STABLE FreeBSD 6.1-STABLE #0: Fri Jun 16 23:16:52 CDT 2006 nbritton at infomatic.local:/usr/src/sys/i386/compile/INFOMATIC i386
>Description:
These are patches to update the Areca driver in FreeBSD with most current driver provided by Areca, v1.20.00.12.
* New support for ARC-1170 and ARC-1270 24port RAID controllers.
* Bug fixes and code cleanup.
* Bug fix with abort command handling.
* Firmware version check.
* Firmware update notify for hardware bug fix handling if none zero high part physical address of srb resource.
>How-To-Repeat:
N/A
>Fix:
*** Here is the new arcmsr.c ready for import into FreeBSD: ***
http://www.nbritton.org/uploads/areca/arcmsr.c.freebsd.new
Here is the new arcmsr.c that the new FreeBSD driver is based on:
http://www.nbritton.org/uploads/areca/arcmsr.c.1200012
Here is the old arcmsr.c from FreeBSD -CURRENT:
http://www.nbritton.org/uploads/areca/arcmsr.c.freebsd.old
Here is the old arcmsr.c that the old FreeBSD driver was based on:
http://www.nbritton.org/uploads/areca/arcmsr.c.1200002
*** Here is the new arcmsr.h patch: ***
http://www.nbritton.org/uploads/areca/arcmsr.h.patch
*** Here is the new man page: ***
http://www.nbritton.org/uploads/areca/arcmsr.4.new
Other files can be found here:
http://www.nbritton.org/uploads/areca/
------------------------------------------------
Below are merges I did manualy from the old FreeBSD driver to the new Areca driver... CHECK MY WORK, I don't know what I'm doing! I was not able to merge all of the changes made on the old FreeBSD code because the new code was different, here is the stuff I changed that needs to be checked:
diff arcmsr.c.1200012 arcmsr.c.freebsd.new
48a49
> ** $FreeBSD$
76d76
< #include <machine/clock.h>
1363c1363
< if(pccb->ccb_h.status != CAM_REQ_INPROG)
---
> if((pccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_INPROG)
1687,1691c1687
< struct bus_dma_segment seg;
<
< seg.ds_addr=(bus_addr_t)pccb->csio.data_ptr;
< seg.ds_len=pccb->csio.dxfer_len;
< arcmsr_executesrb(pSRB,&seg,1,0);
---
> panic("arcmsr: CAM_DATA_PHYS not supported");
2166c2162
< /*lowaddr*/BUS_SPACE_MAXADDR_32BIT,
---
> /*lowaddr*/BUS_SPACE_MAXADDR,
2181c2177
< /*lowaddr*/BUS_SPACE_MAXADDR_32BIT,
---
> /*lowaddr*/BUS_SPACE_MAXADDR,
2242c2238
< /*flags*/BUS_DMA_ALLOCNOW,
---
> /*flags*/0,
2257c2253
< /*flags*/BUS_DMA_ALLOCNOW,
---
> /*flags*/0,
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list