I had dowload eTPU function from freescale web site. This eTPU function contains this structure and some function to use eTPU.
For the driver, he provide of a patch ( http://www.mail-archive.com/uclinux-dev@uclinux.org/msg01623.html). But when I strat teh application an error message displayed : "Access Error Exception 12: Error on data read" So I think that I hadn't the access right register in user mode. I had modify the config.c file who is defined the GPACR and PACR. But my changes are not taken into account because when I display the GPACR (at 0x40000030) I see 0x00. 2010/12/9 Jim Donelson <ucli...@jimdonelson.com> > I see, you are trying to figure out access rights, not set up the eTPU. > Well, if there are all really 0, then that means only supervisor mode > can r/w them. Not sure why you would need execute privilege from an > I/O register, so that could be right. > > > On Thu, Dec 9, 2010 at 8:24 AM, Sébastien MENNETRIER > <smennetr...@epsi.fr> wrote: > > I am reading 0x40000030 to see the value of GPACR. > > In the file "arch/m68knommu/platform/523x/config.c", GPACR is defined : > > uint8_t *gpacr = (uint8_t *) (MCF_IPSBAR + MCF523x_GPACR); > > *gpacr = 0x0C; > > And "MCF523x_GPACR" is defined in file "arch/m68k/include/asm/m523xsim.h" > : > > #define MCF523x_GPACR (0x30) > > > > In the file "arch/m68k/include/asm/colfire.h", I see : > > #if defined(CONFIG_M523x) || defined(CONFIG_M527x) || > defined(CONFIG_M528x) > > || \ > > defined(CONFIG_M520x) > > #undef MCF_MBAR > > #define MCF_MBAR MCF_IPSBAR > > And MCF523x_ETPU is define : > > #define MCF523x_ETPU 0x1D0000 > > So I think that "MCF_MBAR + MCF523x_ETPU" = "IPSBAR + 0x1D0000" = > > 0x401D0000. > > And the structure is defined at this adresse. > > > > 2010/12/9 Jim Donelson <ucli...@jimdonelson.com> > >> > >> Well, I'm not sure why you are reading 0x40000030, when the registers > >> start at 0x401D0000. > >> "MCF_MBAR + MCF523x_ETPU sounds wrong as the registers are defined to > >> start at IPSBAR + 0x1D0000, so 0x401D0000 sound correct to me for the > >> first register. > >> > >> > >> On Thu, Dec 9, 2010 at 7:03 AM, Sébastien MENNETRIER > >> <smennetr...@epsi.fr> wrote: > >> > Hello, > >> > Thanks for your help Jim. > >> > The structure seem have the good alignement. > >> > The structure is declaring at the adress : 0x401D0000 > >> > struct eTPU_struct *eTPU = (struct eTPU_struct *)0x401D0000; > >> > And in the kernel code : > >> > In file "./arch/m68k/include/asm/m523xsim.h" : #define MCF523x_ETPU > >> > 0x1D0000 > >> > In the driver file "./drivers/misc/mcfetpu_serial.c", there are > >> > "MCF_MBAR + > >> > MCF523x_ETPU" with MCF_MBAR = MCF_IPSBAR = 0x40000000 > >> > So it's the same adress. > >> > I made a driver to see the GPACR and the PACR* : > >> > uint8_t *gpacr = (uint8_t *) (0x40000030); > >> > uint8_t *pacr0 = (uint8_t *) (0x40000024); > >> > uint8_t *pacr1 = (uint8_t *) (0x40000025); > >> > uint8_t *pacr2 = (uint8_t *) (0x40000026); > >> > uint8_t *pacr3 = (uint8_t *) (0x40000027); > >> > uint8_t *pacr4 = (uint8_t *) (0x40000028); > >> > uint8_t *pacr5 = (uint8_t *) (0x4000002A); > >> > uint8_t *pacr6 = (uint8_t *) (0x4000002B); > >> > uint8_t *pacr7 = (uint8_t *) (0x4000002C); > >> > uint8_t *pacr8 = (uint8_t *) (0x4000002E); > >> > printk(KERN_DEBUG "GPACR : %#x", *gpacr); > >> > printk(KERN_DEBUG "PACR0 : %#x", *pacr0); > >> > printk(KERN_DEBUG "PACR1 : %#x", *pacr1); > >> > printk(KERN_DEBUG "PACR2 : %#x", *pacr2); > >> > printk(KERN_DEBUG "PACR3 : %#x", *pacr3); > >> > printk(KERN_DEBUG "PACR4 : %#x", *pacr4); > >> > printk(KERN_DEBUG "PACR5 : %#x", *pacr5); > >> > printk(KERN_DEBUG "PACR6 : %#x", *pacr6); > >> > printk(KERN_DEBUG "PACR7 : %#x", *pacr7); > >> > printk(KERN_DEBUG "PACR8 : %#x", *pacr8); > >> > But they are all equal at "0x00". > >> > It's very strange, isn't it? > >> > Are they an other security to protect the register? > >> > MENNETRIER Sébastien > >> > FRANCE > >> > > >> > > >> > 2010/12/9 Jim Donelson <ucli...@jimdonelson.com> > >> >> > >> >> Probably has to do with structure alignment. Not sure what the > packing > >> >> options/pragmas are for that situation. > >> >> > >> >> On Thu, Dec 9, 2010 at 4:54 AM, Sébastien MENNETRIER > >> >> <smennetr...@epsi.fr> > >> >> wrote: > >> >>> > >> >>> Hello, > >> >>> I work on a MCF5235 coldfire and with "uClinux-dist-20101026". I try > >> >>> to > >> >>> use the eTPU. > >> >>> I have install the driver and dowload the application to use eTPU on > >> >>> freescale website. > >> >>> When I start the programme, there are an error : "Access Error > >> >>> Exception > >> >>> 12: Error on data read". > >> >>> So I modify the file : > >> >>> "uClinux-dist/linux-2.6.x/arch/m68knommu/platform/523x/config.c". > >> >>> I have modify "*gpacr" and all "*pacrx" to obtain the access to the > >> >>> register. > >> >>> uint8_t *gpacr = (uint8_t *) (MCF_IPSBAR + MCF523x_GPACR); > >> >>> uint8_t *pacr1 = (uint8_t *) (MCF_IPSBAR + MCF523x_PACR1); > >> >>> uint8_t *pacr4 = (uint8_t *) (MCF_IPSBAR + MCF523x_PACR4); > >> >>> uint8_t *pacr7 = (uint8_t *) (MCF_IPSBAR + MCF523x_PACR7); > >> >>> uint8_t *pacr8 = (uint8_t *) (MCF_IPSBAR + MCF523x_PACR8); > >> >>> > >> >>> > >> >>> > //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > >> >>> // *gpacr = 0x04; > >> >>> // *pacr1 = 0x40; /* EIM required for Chip Select access */ > >> >>> // *pacr4 = 0x40; /* I2C */ > >> >>> // *pacr7 = 0x44; /* INTC0 & 1 handy for debug */ > >> >>> // *pacr8 = 0x40; /* FEC MAC */ > >> >>> > >> >>> > >> >>> > //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > >> >>> *gpacr = 0x0C; > >> >>> *pacr1 = 0x44; /* EIM required for Chip Select access */ > >> >>> *pacr4 = 0x44; /* I2C */ > >> >>> *pacr7 = 0x44; /* INTC0 & 1 handy for debug */ > >> >>> *pacr8 = 0x44; /* FEC MAC */ > >> >>> > >> >>> But this change did not solve the problem. > >> >>> Can you help me please? > >> >>> > >> >>> MENNETRIER Sébastien > >> >>> FRANCE > >> >>> _______________________________________________ > >> >>> uClinux-dev mailing list > >> >>> uClinux-dev@uclinux.org > >> >>> http://mailman.uclinux.org/mailman/listinfo/uclinux-dev > >> >>> This message was resent by uclinux-dev@uclinux.org > >> >>> To unsubscribe see: > >> >>> http://mailman.uclinux.org/mailman/options/uclinux-dev > >> >> > >> >> > >> >> _______________________________________________ > >> >> uClinux-dev mailing list > >> >> uClinux-dev@uclinux.org > >> >> http://mailman.uclinux.org/mailman/listinfo/uclinux-dev > >> >> This message was resent by uclinux-dev@uclinux.org > >> >> To unsubscribe see: > >> >> http://mailman.uclinux.org/mailman/options/uclinux-dev > >> > > >> > > >> > _______________________________________________ > >> > uClinux-dev mailing list > >> > uClinux-dev@uclinux.org > >> > http://mailman.uclinux.org/mailman/listinfo/uclinux-dev > >> > This message was resent by uclinux-dev@uclinux.org > >> > To unsubscribe see: > >> > http://mailman.uclinux.org/mailman/options/uclinux-dev > >> > > >> _______________________________________________ > >> uClinux-dev mailing list > >> uClinux-dev@uclinux.org > >> http://mailman.uclinux.org/mailman/listinfo/uclinux-dev > >> This message was resent by uclinux-dev@uclinux.org > >> To unsubscribe see: > >> http://mailman.uclinux.org/mailman/options/uclinux-dev > > > > > > _______________________________________________ > > uClinux-dev mailing list > > uClinux-dev@uclinux.org > > http://mailman.uclinux.org/mailman/listinfo/uclinux-dev > > This message was resent by uclinux-dev@uclinux.org > > To unsubscribe see: > > http://mailman.uclinux.org/mailman/options/uclinux-dev > > > _______________________________________________ > uClinux-dev mailing list > uClinux-dev@uclinux.org > http://mailman.uclinux.org/mailman/listinfo/uclinux-dev > This message was resent by uclinux-dev@uclinux.org > To unsubscribe see: > http://mailman.uclinux.org/mailman/options/uclinux-dev >
_______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev