This question may be simple for you, but it doesn't let me sleeping.

John Zhou zjzhou at newrocktech.com
Wed Feb 13 17:32:44 EST 2002


Dear all,

This question may be simple for you, but it doesn't let me sleeping.

I have linux2.4.1 from Lineo runing on ppc8250, IMMR = 0xF0000000, in my driver function, I can directly access 0xF00xxxxx( internal memory area on PPC's chip), why? I think , in device driver, we also use logical memory, when accessing physical address, it should first map this address to be accessed by hardware. Is it right?

Another, I write a character driver to operate I2C device. When passing a logical address pointer to BD's address pointer that allocated by function kmalloc().  I can't correctly operate I2C device, But when I used free memory located in IMM ( 0xF00037C0 ~ 0xF00037F0  ) and directly pass this address to BD's buffer pointer, I can correctly operate I2C device. I also try to use function __pa() and virt_to_phys()  to map logical address to physical address, The driver still can't work OK.

Any comments and suggestions are appreciated!

John Zhou

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list