lkml.org 
[lkml]   [2006]   [May]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: memcpy_toio on i386 using byte writes even when n%2==0
Chris Lesiak wrote:
> I'm working on a driver for a custom PCI card on the i386 architecture.
> The card uses a PLX9030 pci bridge to link an FPGA to the PCI bus using
> a 16 bit bus. I found that something broke when moving from 2.6.10 to
> 2.6.17-rc4. In the driver, I use memcpy_toio to write 14 bytes to a
> memory region in the FPGA.
>
> To copy the 14 bytes, 2.6.10 does three 32 bit writes followed by one 16
> bit write. 2.6.10 does three 32 bit writes followed by two 8 bit write.
>
> The PLX9030 breaks the 32 bit writes into 16 bit writes for its local
> bus just fine. The problem is that my board doesn't handle byte
> enables. It was assumed that if all memory transfers were a multiple of
> 2 bytes, then byte accesses wouldn't be used. This is no longer true in
> 2.6.7-rc4.
>
> I've solved the problem by padding to 16 bytes, but should this be
> considered a bug in the kernel?

It does seem a little bit less efficient, but I don't know think it's
necessarily a bug. There's no guarantee of what size writes will be used
with the memcpy_to/fromio functions.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@nospamshaw.ca
Home Page: http://www.roberthancock.com/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-05-27 01:51    [W:0.084 / U:0.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site