2

2 種類の RAM を搭載した ARM プラットフォームを使用しています。いくつかの SDRAM と内部 SRAM があります。プラットフォーム上の USB コントローラーは、内部 SRAM にのみ存在する DMA アドレスを必要とします。現時点では、呼び出しから使用可能な DMA アドレスを取得する汎用ドライバーを使用していますdma_pool_alloc

SDRAM ではなく内部 SRAM にある DMA アドレスのみを USB ドライバに与えるようにカーネルに指示する方法はありますか?

4

1 に答える 1

0

別のアロケータを使用する必要があります。たとえばiram_alloc.cは、内部 SRAM からメモリを取得するためにIMXデバイスによって使用されます。DMA コントローラーが必要とする境界上にあるメモリを取得するには、過剰な割り当てが必要になる場合があります。

メモリが汎用カーネル プールに入ると、区別する方法がありません。通常、メモリに特別なプロパティがある場合、プラットフォームはそれにアクセスするための代替手段を提供します。

于 2013-05-10T22:00:47.550 に答える