Reading through the pcie-ti816x.c file I see a "todo" section that says "Add prefetchable memory". Does this mean that prefetchable memory is unusable with this driver? Are there any "quirks" I should be aware of?
Thanks,
Ralph
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Ralph,
There is no dedicated memory reserved as "prefetchable", instead the whole 256MB outbound is marked as "non-prefetchable" which also means chunks from this space can be used for prefetchable BARs too.
The TODO mentioned the possibility of breaking the 256MB region into prefetchable & non-prefetchable.
Hemant
It is not the driver, rather the h/w which could do prefetching if the BAR region is not non-prefetchable,
The TODO refers the option that the driver could *designate* some region from the total address space for PCIe to be marked as non-prefetchable and other as prefetchable instead of telling the kernel as complete region can be used for non-prefetch BARs (which also means it can be used for prefetchable BARs too).
This could help to:
1) Have clearly marked separate regions for non-/prefetch BARs
2) Not end up eating non-prefetch region (till we exhaust prefetch region) when assigning to prefetch BARs
3) Non-prefetch BARs don't eat up space allotted to prefetch
Note that in later 2 cases it is most likely possible that you may anyway end up having issues with or without the TODO being taken care of as there will be some BARs in the system which may not be allotted space. Thus the gains of having separate space are not much, especially when we are just partitioning the same 256MB region.
Hemant