Messages in this thread | | | Date | Wed, 14 Oct 1998 14:58:37 +0200 (MET DST) | From | Davide Rossetti <> | Subject | Re: How to invoke burst-read on PCI mapped memory area |
| |
On Wed, 14 Oct 1998, Hiroshi Kawashima wrote:
> Many thanks for much reply! > > > > If I believe word of my colleague (I believe), 440BX chipset must have such > > > capability. (To convert burst-read (aka cache line fill) on host bus > > > to burst-read transaction on PCI) > > > I do not have enough time to validate his word right now, but does this > > > behavior sounds so strange ? > > > > not so much. I have no trouble to believe that BX's have such a cabability > > (at last !!) but the point is that it's not a WinNT feature, but a BX one. > Of course, I know. > But from my understanding, Linux (at least v2.0.X) does not have such > feature (vremap() with cache attribute control). > I dislike Windoze, but WinNT has it. > > > If you could 'track' your colleague to get some information on the > > register to tweek, you'd be useful to a lot of people. > > In the mean time, i'll try to download BX specs from Intel site. > > regards. > He do not touch anything about chipset/cpu register setting. > > He just use following WinNT system call: > MmMapIoSpace( > mappedAddr, // Physical Address > memCount[i], // Number of Bytes (Memory map size) > cacheEnable); // CacheEnable > Rest of jobs are done by WinNT executive.
ok. so there is nothing important. all the work is really done by BX.
> By the way, I'm porting device driver written for 2.0.X to 2.1.X to > use __ioremap() call.
ok.
> Almost completed, other than one point. > > In mmap_xxxx() function, I use vma->vm_inode like this: > > int chigasaki_mmap(struct inode *inode, struct file *filp, > struct vm_area_struct *vma) > { > ...... > vma->vm_inode = inode; > inode->i_count++; > } > > But on v2.1.X, vm_inode member is missing from struct vm_area_struct. > Would anyone help me how should I rewrite this ?
have a look at driver/char/mem.c:
static int mmap_mem(struct file * file, struct vm_area_struct * vma) { unsigned long offset = vma->vm_offset; .... if (remap_page_range(vma->vm_start, offset, vma->vm_end-vma->vm_start, vma->vm_page_prot)) return -EAGAIN; vma->vm_file = file; file->f_count++; return 0; }
regards.
+------------------------------------------------------------------+ |Rossetti Davide INFN - Sezione Roma I - gruppo V, prog. APEmille| | web : http://apemaia.roma1.infn.it/~rossetti | | """"" E-mail : davide.rossetti@roma1.infn.it | | |o o| phone : (+39)-6-49914412 | |--o00O-O00o-- fax : (+39)-6-4957697 | | address: Dipartimento di Fisica (V.E.) | | Universita' di Roma "La Sapienza" | | P.le Aldo Moro,5 I - 00185 Roma - Italy| | pgp pub. key: finger rossetti@apemaia.roma1.infn.it | | | |"Most people think about twice a year. I got famous by thinking | | once a week." - George B. Shaw (see Appendix A) | +------------------------------------------------------------------+
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |