ioremap problem with kernel 2.6.11 on mpc8270

clasu at clasu at
Sun Apr 24 01:07:19 EST 2005

Hi there,

I'm porting kernel version 2.6.11 to a custom board with an MPC8270 controller.
The kernel is booting and when it runs the init routine of a custom nand driver it
generates a machine check exception.

The call to ioremap(0x40000000, 0x2000000) returns an address of
0xe1000000 and the exception is caused by an iowrite8() call to the address
returned by ioremap(). The same happens if the memory address is read.

In further investigations I have found out that the writes and reads are not
mapped to the physical address 0x40000000. ioremap() returned 0xe1000000
and that is also the physical address where the writes and reads are mapped to.
(=no mapping).

The same driver (minor changes to struct names) works on the same board in
a linux kernel 2.6.7-rc1. In this kernel ioremap returns the same address
(0xe1000000) as in version 2.6.11 but all accesses are mapped to 0x40000000
as they should be.

I use the same board and same u-boot (1.1.2) to start both kernels.

It seems to me that the ioremap call fails somehow in 2.6.11 and that the page
tables are not updated correctly.

I have not been able to find out what causes this but it would make may day if
someone could help me a bit.

Best regards,


Luukku Plus paketilla pääset eroon tila- ja turvallisuusongelmista.
Hanki Luukku Plus ja helpotat elämääsi.

More information about the Linuxppc-embedded mailing list