map iomem in linux_2_4_dev

Sangmoon Kim dogoil at etinsys.com
Wed May 29 14:57:34 EST 2002


Hi,
>
> You don't need io_block_mapping.  Follow one of the many examples to
> use early_serial_init with an ioremap call for your UART.
>
> The only reason your method works is that the io_block_mapping is
> actually using a BAT on our classic PPC platform.  ioremap will
> look for an existent BAT mapping and just return the translated
> virtual address in this case.  Relying on this is bad practice
> since it will not work on other PPC systems.
>
Right, I exactly wanted to do that.
I called io_block_mapping() on initialization code.
More precisly on <board name>_map_io(),
which is in arch/ppc/platforms/<board_name>_setup().
It has nothing to do with competibility.
And... Is there any ppc without BAT?
I didn't know that.

> As David correctly pointed out, only use io_block_mapping when
> you absolutely must control the placement of the virtual address.
Than, if the system initialization code is changed,
the driver code should be changed too.

> There are cases when this is necessary since the hardware engineers
> always send us garbage to support.  Mapping a UART at init time is
> not one of these.
>
Actually, I'm a hardware guy.
In most cases, mapping UART is not needed,
but on the hardware I designed, it is needed.
Because its physical addres is 0x78000000.
Don't blame us too much.
It takes much money to change hardware.

- Sangmoon Kim -

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





More information about the Linuxppc-embedded mailing list