[linux-programming] Offload DMA driver

2009-07-10 Terurut Topik dian sastro
Halo, Apakah diantara rekan2 ada yang mengetahui arsitektur/cara Network card offload DMA? Saya sudah berhasil membuat kernel driver untuk transfer dari main memory ke PCI memory memakai DMA main processor. Nah untuk network card, NIC ini mempunyai DMA controller sendiri. Berarti operasinya

Re: [linux-programming] Offload DMA driver

2009-07-10 Terurut Topik Eko Prasetya
Dian, Kamu menggunakan freescale kan? Freescale punya DMA master yang seharusnya bisa authenticate dengan DMA slave di NIC. DMA master dari freescale akan memberikan daftar physical memory yang bisa diakses oleh DMA slave. Apabila NIC menerima data di ring buffer-nya, dia akan mengirimnya

Re: [linux-programming] Offload DMA driver

2009-07-10 Terurut Topik dian sastro
Thanks pak Eko atas tanggapannya. Ring buffer nya itu ada dimana pak? Saya baca2 di google kok ring buffer itu adalah main memory . Juga saya baca di hardware manual MPC8349 juga tidak disebutkan adanya buffer di sisi NIC. Saya membandingkan dengan grafik card yang mempunyai memory sendiri, apa

Re: [linux-programming] Offload DMA driver

2009-07-10 Terurut Topik Eko Prasetya
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

Re: [linux-programming] Offload DMA driver

2009-07-10 Terurut Topik dian sastro
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

Re: [linux-programming] Offload DMA driver

2009-07-10 Terurut Topik Eko Prasetya
Harus ada interrupt. Biasanya untuk ethernet, interrupt ini biasanya diproses cepat, kemudian invoke soft-interrupt/tasklet. Di freescale, kalau tidak salah ada flag di BAR register untuk enable/disable cache-nya. Good luck. KOkon. 2009/7/10 dian sastro maeje...@gmail.com: semakin jelas pak