[linux-programming] Offload DMA driver
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 dilakukan oleh DMA controller NIC, bukan main processor. Yang saya belum paham, bagaimana cara kerja DMA di sisi NIC ini? Konfigurasi mesin: prosesor MPC8349ERM, board MPX8349GC, embedded linux (kernel 2.6.27), PCI bus 32-bit Thanks -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] Offload DMA driver
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 NIC juga punya memory tersendiri (yang disebut dengan ring buffer?) Kalau ring buffer = main memory, bagaimana kita menggunakan DMA nya pak pada mmap() ini? Saya membaca tentang struktur VMA, tetapi tidak yakin apakah ada hubungan antara handler mmap() dengan VMA ini... mohon petunjuknya pak thanks 2009/7/11 Eko Prasetya eprase...@gmail.com: 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 langsung ke memory, dan men-generate interrupt ke processor. KOkon. -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] Offload DMA driver
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
Re: [linux-programming] [Java] membuat widget secara runtime
di versi c++ parentnya mesti dijelaskan, soalnya secara default akan dianggap bahwa parentnya adalah system. juga geometrynya mesti secara explisit di set. QLabel* lb=new QLabel(this); lb-setText(abcdefg); lb-setGeometry(10,10,100,100); lb-setVisible(true); -sas- 2009/7/31 Wirasto S. Karim wirastoka...@gmail.com: 2009/7/31 Wirasto S. Karim wirastoka...@gmail.com: Saya mencoba membuat widget secara runtime, tapi tidak bisa tampil. Prosesnya, apabila tombol di klik maka akan dibuatkan sebuah label. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { JLabel labelku=new JLabel(Hai); labelku.setVisible(true); } setelah sebuah widget dibuat, widget tersebut harus dipasang. jadi jangan lupa memasukkannya ke sebuah container. Saya memprogram dengan menggunakan netbeans. Kali ini saya memasukkan jpanel kedalam form. dan mencoba menambahkan labelnya ka dalam jpanel tersebut. Tetapi tidak bisa juga private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: JLabel labelku=new JLabel(Hai); jPanel1.add(labelku); labelku.setVisible(true); } -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: [linux-programming] opengl programming ??
check this out: http://supersnippets.googlecode.com/svn/trunk/demoscene/templates/linux_opengl/main.cpp regards, -sas- 2009/10/2 Kristophorus setipen...@gmail.com: Hi guys... Mo tanya nih, kalo mo bikin program pake opengl toolnya pake apa ya ?? -- Regards, Kris -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis
Re: Bls: [linux-programming] Linux untuk keperluan khusus
Kebetulan perusahaan saya juga mengembangkan peralatan navigasi pesawat terbang dan satellite communication untuk kapal memakai embedded linux. Sejauh ini lumayan, hanya sedikit lambat dalam hal performance gitu aja. -sas- 2010/1/27 Eko Prasetya eprase...@gmail.com: Saya menggunakan MotoDroid. Sejauh ini, sangat memuaskan. Apalagi saya bisa buat aplikasinya dengan Python/Ruby/Lua. Jalannya di Linux + JVM. KOkon. 2010/1/26 Dichi Al Faridi di...@alfaridi.info: Kalo ga salah Android mahal ya.. :D oiya, selain HTC, vendor seperti Sony Ericsson juga ada yang pake Android (Xperia berapa gitu).. Btw, dah ada yang pake android? -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis -- Berhenti langganan: linux-programming-unsubscr...@linux.or.id Arsip dan info: http://linux.or.id/milis