> > > > >I create a pci device which I want to interact with Linux for a user > > >application. This pci device is a FPGA. I create a kernel module for > > >communication kernel - user space and now I want to send settings > > >information to this pci device. > > > > > > > > > > > Ive been looking for a PCI card with a user-programmable FPGA, tell us more. > > > > does it have a hardwired PCI interface (ie already in silicon) > > if so, it should have a pci-config-space (64 bytes, i think), and > > could be programmable thru that. > > > yes, I can't config it. oups, i can config it, sorry :) > The problem is to interact with the device. The FPGA do some calcul > and I need to change some value (register) of the algo that it > perform. > > Here a partial code : > > u32 io_addr; > #define SLOPE_REGISTER 0x04 > ... > pci_read_config_dword(dev, PCI_BASE_ADDRESS_0, &io_addr); > ... > if(PCI_BASE_ADDRESS_SPACE_IO& io_addr) > { > //here I want set a register > u8 slope = 10; > outb(slope , io_addr + SLOPE_REGISTER ); //can I do that ?? > } > > > >I need to use (I/O memory) to do that. But I don't how. I can't get > > >the base address with pci_read_config and after that I am confuse. > > > > > yeah - something doesnt add up. Does it appear in /sys ? > > > > $> file /sys/bus/pci/devices/0000\:00\:00.0/config > > /sys/bus/pci/devices/0000:00:00.0/config: data > > > > > I > > >think I can use both function outb or writeb to send information but I > > >don't know which is better. > > > > > > > > > > > Read LDD-3, both ch 3(chr-driver), 8-(mem) IIRC. > > > > The choice between them is basically ioport or iomem, > > and I think its somewhat dicated by the processor. > > x86 has a separate IO-addr-space so inb, outb just work, > > 68k does not, so those boards must map IO ops into memory, > > and U must use ioremap to tell the kernel where the IO-space is. > > > > But I dont have one of these, and U shouldnt just take my word for it. > > > > what kind of board are u using. > > > > >outb seem to be Intel specific and writeb need to map I/0 memory with ioremap > > > > > > > > > > > I think youve got ioremap usage backwards. > > I have intel board, im using inb,outb, and have no ioremap, > > and Im getting expected results. > > > > >Which method is more standard for a pci device (portable)? > > > > > >On 6/22/05, Christophe Lucas <clucas@xxxxxxxxxxxxx> wrote: > > > > > > > > >>Eric Clément (clement.eric@xxxxxxxxx) wrote: > > >> > > >> > > >>>Hi, > > >>> > > >>>I know the base address (I/O memory) of my device, but I don't know > > >>>how to write information to the device. > > >>> > > >>>Which fonction shoud I use : > > >>> > > >>>outb, writeb or ... ? > > >>> > > >>> > > >>I think you should use outb(); > > >>You can see how is declared writeb() for x86 : > > >> > > >> http://lxr.linux.no/source/include/asm-i386/io.h#L165 > > >> > > >>But I think you should give more information to us to be able to help > > >>you. > > >> > > >> - Christophe > > >> > > >> > > >> > > > > > >-- > > >Kernelnewbies: Help each other learn about the Linux kernel. > > >Archive: http://mail.nl.linux.org/kernelnewbies/ > > >FAQ: http://kernelnewbies.org/faq/ > > > > > > > > > > > > > > -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/