[yocto] (no subject)

Anders Darander anders at chargestorm.se
Fri Oct 4 10:55:57 PDT 2013



Jack <jackrubby2010 at gmail.com> wrote:
>Anders Darander <anders at ...> writes:
>
>Thanks Anders,
>
>But I have this problem not only for GPIOs, but also for other
>registers.

Well, my comment about dereferencing physical addresses using *-only, wasn't restricted to GPIO's only. It was regarding physical addresses in general... 

Once again, I've not used this platform, this I'm not able to be too specific. 

>For example, I tried to change DTW bits of PROCTL register in eSDH but
>I get
>"Kernel access of bad area" again. My simple code is here :

>int init_module(void)
>{
>	
>	// e500 Core View To Power Architecture CCSR: 0x0_FF70_0000
>	
>	volatile uint32_t * eSDH_PROCTL = (volatile uint32_t *)(0xFF72E028);
>
>	*(eSDH_PROCTL) = 0x00000002;

I think that you should try to look at some code from the kernel that accesses registers on your platform. For instance http://lxr.free-electrons.com/source/sound/soc/fsl/p1022_ds.c?v=3.4 (this is just a randomly chosen file that relates to P1022. 

Have a look at how guts_phys is declared, as well as how guts later on is both declared and initialized from guts_phys. 
When the registers are actually read / written, this driver uses the clrsetbits_XX. These functions then implements the actual reading and writing of the registers. 

(Note again, I've just looked at this file and p1022 for a couple of minutes). 

Cheers, 
Anders 

-- 
ChargeStorm AB / eStorm 



More information about the yocto mailing list