From: Demetris <fgc...@cy...> - 2006-12-28 17:30:27
|
We are writing a driver to access the memory area of CS2 0x0800_0000. I'm using the pxa_gpio_mode(GPIO78_nCS_2) to set the gpio mode for CS2 = and=20 for base address PXA_CS2_PHYS.=20 When I run the a test user program I don't see any activity on the pin = with the osciloscop. According to the intel timing diagram CS is high and should transition = low when active. I'm not sure if there is anything else I need to configure to enable = this memory range. |
From: <pa...@pa...> - 2006-12-28 17:51:43
|
Demetris wrote: > I'm using the pxa_gpio_mode(GPIO78_nCS_2) to set the gpio mode for CS2 and > for base address PXA_CS2_PHYS. > When I run the a test user program I don't see any activity on the pin > with the osciloscop. You may need to configure MSC1 and/or SXNCFG too so that the memory controller knows the type of bus cycle and timings of your device. Also, of course, you must map PXA_CS2_PHYS to virtual address space (unless you are accessing it with DMA). Pascal |
From: Demetris <fgc...@cy...> - 2007-01-03 14:58:19
|
Register the memory space for chip select 2 I use the following code. int BaseAddr = PXA_CS2_PHYS; In init function I do the following: pxa_gpio_mode(GPIO49_nPWE_MD); pxa_gpio_mode(GPIO78_nCS_2_MD); /* Registering device */ register_chrdev(major_num, "driver_name",&driver_fops); In the write function I do the following: unsigned *device_buffer; void *ioaddr; copy_from_user(device_buffer,buf,2); ioaddr = ioremap(BaseAddr,2); iowrite16(device__buffer,ioaddr); wmb(); iounmap(ioaddr); return 0; Is this the proper way to map PXA_CS2_PHYS if not is there example or link you can refer me to. No DMA. ----- Original Message ----- From: <pa...@pa...> To: <gum...@li...> Sent: Thursday, December 28, 2006 7:51 PM Subject: Re: [Gumstix-users] Chip Select 2 CS2 > Demetris wrote: >> I'm using the pxa_gpio_mode(GPIO78_nCS_2) to set the gpio mode for CS2 >> and >> for base address PXA_CS2_PHYS. >> When I run the a test user program I don't see any activity on the pin >> with the osciloscop. > > You may need to configure MSC1 and/or SXNCFG too so that the memory > controller knows the type of bus cycle and timings of your device. > > Also, of course, you must map PXA_CS2_PHYS to virtual address space > (unless you are accessing it with DMA). > > Pascal > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Dave H. <dhy...@gm...> - 2007-01-03 15:22:06
|
Hi Demetris, On 1/3/07, Demetris <fgc...@cy...> wrote: > Register the memory space for chip select 2 I use the following code. Take a look at build_arm_nofpu/linux-2.6.18gum/drivers/net/gumstix-smc91x.c for an example of how to properly register the memory space from within your driver. So far, your example doesn't do anything which would cause the appropriate virtual-to-physical mappings to get setup correctly. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Pascal <pa...@pa...> - 2007-01-03 15:42:09
|
Demetris wrote: > ioaddr = ioremap(BaseAddr,2); You could try ioremap_nocache() here. > iowrite16(device__buffer,ioaddr); I'm not familiar with this macro, but doesn't it expect a short as first argument ? > wmb(); I'm not sure this does anything on the PXA255 (but maybe you have a prototype PX270 board :-). I use dma_sync_single_for_cpu() to flush caches. Also as I mentioned earlier you really need to configure MSC1. On my board, u-boot configures bank 2 as VLIO, which uses nPCE/nPOE/nPWE/nPIOW/nPIOR and maybe not drive nCS2 at all. # pxaregs MSC1_RT2 nCS[2] ROM Type MSC1_RT2 0x0000128c 00000000 00000000 00010010 10001100 MSC1_RT2 4 nCS[2] ROM Type Pascal |
From: Dave H. <dhy...@gm...> - 2007-01-03 15:49:22
|
Hi Pascal, > > wmb(); > > I'm not sure this does anything on the PXA255 (but maybe > you have a prototype PX270 board :-). Here's a page that describes wmb and when it is needed. <http://people.netfilter.org/~rusty/unreliable-guides/kernel-locking/kernel-locking.docbook/lock-avoidance-rw.html> The wmb call itself doesn't do anything. It's just a function call to a function that does nothing. What's important, is that the compiler will not reorder statements across a function call. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Pascal <pa...@pa...> - 2007-01-03 16:16:22
|
Dave Hylands wrote: > The wmb call itself doesn't do anything. It's just a function call to > a function that does nothing. What's important, is that the compiler > will not reorder statements across a function call. Thanks Dave, I didn't know that one. I was confused because asm/system.h suggests that wmb() actually does something on some ARM CPUs (probably the ones which try to reorder writes regardless of what the compiler does). #if __LINUX_ARM_ARCH__ >= 6 #define mb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \ : : "r" (0) : "memory") #else #define mb() __asm__ __volatile__ ("" : : : "memory") #endif #define rmb() mb() #define wmb() mb() Pascal |
From: Demetris <fgc...@cy...> - 2007-01-05 10:28:55
|
We are trying to write a device driver to access the memory area of SRAM (Static RAM). We have a code where we try to access the static ship select. The driver loads and we can see that is registered. This is shown in the files /proc/iomem, /proc/modules and /proc/devices. A test user program is used to test read and write to the device. It is expected that when the device is accessed that the chip select transitions High to Low. Nothing is observed on the pin of chip select. The wiring is tested using the gpio mode of the pin. It is not clear that the device address is mapped correctly. What is the proper steps to map the device address to the system memory? How can it can be checked. |
From: Craig H. <cr...@gu...> - 2007-01-05 21:40:49
|
On Jan 5, 2007, at 5:28 AM, Demetris wrote: > The wiring is tested using the gpio mode of the pin. If by this you mean that you have the pin in GPIO mode, then it won't transition as a chip select, since you've told it to not be in "chip select 2" mode. Change it to CS2 mode, and then you should see it toggling when it's supposed to. C |
From: Demetris Z. <fgc...@cy...> - 2007-01-05 23:12:58
|
Hi Craig. What we are trying to do is communicate Gumstix with the Spartan 3 FPGA We are 90% done with the code but we are stuck with a problem of connecting physical and virtual memory of gumstix to make the connection. Are there any suggestions that you could give on that. I noticed that the Etherstix Driver was written by you. The way we are connecting the FPGA is less advanced than that by a long shot. We are connecting the FPGA that sends a RAW image from a readout of a CCD Camera sensor of 1.3 Megapixel image. The FPGA part is done and we are stuck on the driver for Gumstix. The connection goes through the 92 Pin connector as the etherstix does but it's very hard to make sence of the Ethernet driver, it's just too big. Could you please help out on this part? It would really help us. Demetris Z. ----- Original Message ----- From: "Craig Hughes" <cr...@gu...> To: "General mailing list for gumstix users." <gum...@li...> Sent: Friday, January 05, 2007 11:40 PM Subject: Re: [Gumstix-users] Technical Help Needed > On Jan 5, 2007, at 5:28 AM, Demetris wrote: > >> The wiring is tested using the gpio mode of the pin. > > If by this you mean that you have the pin in GPIO mode, then it won't > transition as a chip select, since you've told it to not be in "chip > select 2" mode. Change it to CS2 mode, and then you should see it > toggling when it's supposed to. > > C > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Pascal <pa...@pa...> - 2007-01-06 02:01:59
|
Demetris Zavorotnichenko wrote: > We are connecting the FPGA that sends a RAW image from > a readout of a CCD Camera sensor of 1.3 Megapixel image. pxa_cfcam.c in my pxaRC package supports a similar camera (except that it uses VLIO instead of SRAM bus cycles). It does a lot of things in software that you probably do in the FPGA, so maybe you would prefer to look at the simpler pxa_dmacap.c which I wrote to debug the hardware. http://www.pabr.org/pxarc/doc/pxarc.en.html#sw_install http://www.pabr.org/cfcam/pxa_dmacap.c Feel free to look at the code (and reuse it if your project is GPL-friendly). But note that it does not implement resource management as nicely as the smc91x driver does. Pascal |
From: Demetris Z. <fgc...@cy...> - 2007-01-06 15:54:34
|
This file is a driver that communicates with the FPGA as adriver on gumstix ? Demetris Z. ----- Original Message ----- From: "Pascal" <pa...@pa...> To: <gum...@li...> Sent: Saturday, January 06, 2007 4:01 AM Subject: Re: [Gumstix-users] Technical Help Needed > Demetris Zavorotnichenko wrote: >> We are connecting the FPGA that sends a RAW image from >> a readout of a CCD Camera sensor of 1.3 Megapixel image. > > pxa_cfcam.c in my pxaRC package supports a similar camera > (except that it uses VLIO instead of SRAM bus cycles). > It does a lot of things in software that you probably do > in the FPGA, so maybe you would prefer to look at the > simpler pxa_dmacap.c which I wrote to debug the hardware. > > http://www.pabr.org/pxarc/doc/pxarc.en.html#sw_install > http://www.pabr.org/cfcam/pxa_dmacap.c > > Feel free to look at the code (and reuse it if your project > is GPL-friendly). But note that it does not implement > resource management as nicely as the smc91x driver does. > > Pascal > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Pascal <pa...@pa...> - 2007-01-06 16:59:16
|
Demetris Zavorotnichenko wrote: > This file is a driver that communicates with the FPGA as adriver on gumstix > ? It does not use a FPGA, but the requirements are probably similar to yours (i.e. reading raw data from a CMOS sensor at the highest possible rate through the 92-pin connector). See http://www.pabr.org/cfcam/doc/cfcam.en.html I'd like to hear how your project performs. With a FPGA you should be able to achieve at least 4x higher bandwidth. Pascal |
From: Demetris Z. <fgc...@cy...> - 2007-01-06 19:49:25
|
Tnx for the info Pascal, i really appriciate this. Demetris Z. ----- Original Message ----- From: "Pascal" <pa...@pa...> To: <gum...@li...> Sent: Saturday, January 06, 2007 6:58 PM Subject: Re: [Gumstix-users] Technical Help Needed > Demetris Zavorotnichenko wrote: >> This file is a driver that communicates with the FPGA as adriver on >> gumstix >> ? > > It does not use a FPGA, but the requirements are probably > similar to yours (i.e. reading raw data from a CMOS sensor > at the highest possible rate through the 92-pin connector). > See http://www.pabr.org/cfcam/doc/cfcam.en.html > > I'd like to hear how your project performs. With a FPGA > you should be able to achieve at least 4x higher bandwidth. > > Pascal > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Demetris <fgc...@cy...> - 2007-01-04 09:40:15
|
I looked at the gumstix-smc91x.c all and all boils down to the magic function platform_add_devices(smc91x-device,num_device). What about reading and writing to the address of the device? How is this linked to a user program? ----- Original Message ----- From: "Dave Hylands" <dhy...@gm...> To: "General mailing list for gumstix users." <gum...@li...> Sent: Wednesday, January 03, 2007 5:22 PM Subject: Re: [Gumstix-users] Chip Select 2 CS2 > Hi Demetris, > > On 1/3/07, Demetris <fgc...@cy...> wrote: >> Register the memory space for chip select 2 I use the following code. > > Take a look at > build_arm_nofpu/linux-2.6.18gum/drivers/net/gumstix-smc91x.c > for an example of how to properly register the memory space from > within your driver. > > So far, your example doesn't do anything which would cause the > appropriate virtual-to-physical mappings to get setup correctly. > > -- > Dave Hylands > Vancouver, BC, Canada > http://www.DaveHylands.com/ > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |