Da Zheng, le Sun 02 May 2010 20:36:28 +0800, a écrit :
> On 10-4-23 下午7:37, Samuel Thibault wrote:
> > Depends on how you use the mem device. It it ends up using pmap_enter()
> > to actually fill the page table, it will notice whether your physical
> > addresses are within RAM or above, see the cod
On 10-4-23 下午7:37, Samuel Thibault wrote:
> Depends on how you use the mem device. It it ends up using pmap_enter()
> to actually fill the page table, it will notice whether your physical
> addresses are within RAM or above, see the code there.
I think I find the code to do that.
if (ma
Da Zheng, le Sat 24 Apr 2010 19:39:58 +0800, a écrit :
> If a variable doesn't have the volatile qualifier and If it is in a register
> at
> the moment it is modified by DMA, the value in the register is out-of-date.
Yes, that's why the DMA order must use compiler memory barriers to
prevent that:
On 10-4-24 下午6:37, Samuel Thibault wrote:
>>> It does (or should do): such pointers have the __io qualifier.
>> I checked the code of e1000 again. The data for MMIO is qualified by __iomem,
>
> Right, I hadn't checked the precise name :)
>
>> but the data in the transmission or receiving queues (
Da Zheng, le Sat 24 Apr 2010 18:29:50 +0800, a écrit :
> On 10-4-23 下午7:37, Samuel Thibault wrote:
> > Da Zheng, le Fri 23 Apr 2010 14:51:22 +0800, a écrit :
> >> They are not just one or two variables. They are an array of structure
> >> variables. Should I define all fields of the structure with
On 10-4-23 下午7:37, Samuel Thibault wrote:
> Da Zheng, le Fri 23 Apr 2010 14:51:22 +0800, a écrit :
>> They are not just one or two variables. They are an array of structure
>> variables. Should I define all fields of the structure with volatile
>> qualifier?
>
> You can qualify the whole structur
Da Zheng, le Fri 23 Apr 2010 14:51:22 +0800, a écrit :
> They are not just one or two variables. They are an array of structure
> variables. Should I define all fields of the structure with volatile
> qualifier?
You can qualify the whole structure
> It's strange. The Linux driver doesn't do so b
On 10-4-22 下午11:01, Samuel Thibault wrote:
> Samuel Thibault, le Thu 22 Apr 2010 16:51:38 +0200, a écrit :
>> Da Zheng, le Thu 22 Apr 2010 22:37:51 +0800, a écrit :
>>> So does the driver need to consider about cache coherency problems on PC
>>> when
>>> interacting with the external device?
>>
>>
Samuel Thibault, le Thu 22 Apr 2010 16:51:38 +0200, a écrit :
> Da Zheng, le Thu 22 Apr 2010 22:37:51 +0800, a écrit :
> > So does the driver need to consider about cache coherency problems on PC
> > when
> > interacting with the external device?
>
> Yes (since you can not rely on the BIOS), you
Hello,
Da Zheng, le Thu 22 Apr 2010 22:37:51 +0800, a écrit :
> So does the driver need to consider about cache coherency problems on PC when
> interacting with the external device?
Yes (since you can not rely on the BIOS), you need to remap the mmio
range with cache disabled: INTEL_PTE_NCACHE|IN
Hello,
I try to make e1000 work with my porting of DDE Linux26. After I tested the
code, it seems the variables in the transmission queue, which are access by the
device with DMA, are not changed by the device after a packet is transmitted.
antrik suggested that it might be related to cache cohere
11 matches
Mail list logo