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

Jean-Denis Boyer jdboyer at
Thu Aug 14 04:05:09 EST 2003

> 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?

A BAT is configured to map this region with addressing virtual == physical.
See function m8260_map_io in arch/ppc/kernel/m8260_setup.c

> When passing a logical address pointer to BD's address
> pointer that allocated by function kmalloc().

Memory should probably be uncached (as the IMMR is).
Use function m8260_cpm_hostalloc instead of kmalloc, then use __pa.
See for example arch/ppc/8260_io/fcc_enet.c

 Jean-Denis Boyer, Eng.
 Software Designer
 M5T Centre d'Excellence en Télécom Inc.
 4283 Garlock Street
 Sherbrooke (Québec)
 (819)829-3972 x241

** Sent via the linuxppc-embedded mail list. See

More information about the Linuxppc-embedded mailing list