semakin jelas pak sekarang....

untuk mengawasi status buffer descriptor (BD) ini biasanya dilakukan
software yang secara terus menerus mengecek status BD atau ada semacam
hardware callback/interrupt pak?

Untuk bootloader saya memakai uBoot, nanti bisa saya re-compile untuk
mengakomodasi non cache able memory. Sekarang ini saya memakai fungsi
virt_to_phys() di kernel driver untuk mengetahui alamat physical dari
hasil kmalloc(). Memang saat ini masih ada perbedaan sebesar kira2 20
MBps antara kmalloc() dan non cacheable pak, yaitu 70Mbps tanpa
kmalloc() dengan 55.5 Mbps dengan kmalloc() pada 32-bit data bus.

Thanks


2009/7/11 Eko Prasetya <eprase...@gmail.com>:
> Ring buffer / buffer descriptor, merupakan kumpulan descriptor yang menentukan
> di mana NIC akan menulis ke memory apabila ada data yang diterima.
>
> Yang perlu diingat, memory yang digunakan untuk DMA adalah physical memory,
> bukan virtual/logical. Biasanya, karena saya sendiri yang kontrol
> alokasi memory,
> di boot-loader, kita bisa tentukan memory mana yang "non-cache-able". Kalau 
> Anda
> tidak punya akses ke boot-loader, berarti alokasi memory harus
> menggunakan kmalloc
> dengan DMA flag. Masalahnya, dengan kmalloc, berarti Anda harus
> menggunakan barrier
> untuk read/write, dan barrier is expensive.
>
>
> KOkon.
>

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis

Kirim email ke