07/09/21 00:04:48 TbjlK3fc
スレ違いかもしれませんが質問よろしくお願いします。
PCI-XデバイスのDMA転送によってメインメモリへのデータ転送行わせました。
_____________________ ________________
|PCI-Xデバイス| → |メインメモリ|
~~~~~~~~~~~~~~~ ~~~~~~~~~~~
DMA転送
しかし、メインメモリから期待しているデータを読み出すことができませんでした。
そこで、DMA転送によって書き込まれるメモリ空間のキャッシュをMTRRで無効化しました。
そうしたら、期待しているデータを読み出すことができました。
これはPCI-Xデバイス側の問題でしょうか?
つまり、キャッシュに反映するようにPCI-Xデバイス側を設計する必要があるのでしょうか?
それともDMA転送のためのメモリ空間の取り方に問題があるのでしょうか?
現在、__get_free_pagesによってメモリ空間を取っています。
ちなみにPCIデバイスでは問題がありませんでした。