[PATCH v2 05/15] ARM: integrator: use fixed PCI i/o mapping

Linus Walleij linus.walleij at linaro.org
Mon Jul 23 10:50:24 EDT 2012


On Mon, Jul 23, 2012 at 4:05 PM, Rob Herring <robherring2 at gmail.com> wrote:

> Now that I have looked at the code. I think it is simply vgacon is
> postcore_init and pci setup of the i/o mapping is in subsys_init.

Makes perfect sense.

> It curious that you don't get an abort and backtrace though.

I never get that either, it just locks up. Probably some other oddity
in these old boards.

> vgacon is only enabled for footbridge and integrator. I guess the only
> way this worked before is if the bootloader has already setup the bus.

Yes that is the case with most of the "V3 PCI" code, without some
bootloader or "BIOS" (boot monitor) poking, nothing works. Some of
the V3 registers are only just poked once, from the boot monitor or
boot loader.

> So I can add back an early mapping function that these 2 platforms can
> call from .map_io. Something like this:
>
> static inline void __init pci_map_io_early(unsigned long pfn)
> {
>         struct map_desc pci_io_desc = {
>                 .virtual        = PCI_IO_VIRT_BASE,
>                 .type           = MT_DEVICE,
>                 .length         = SZ_64K,
>         };
>
>         pci_io_desc.pfn = pfn;
>         create_mapping(&pci_io_desc);
> }

Wouldn't the same kind of thing be necessary for all x86 systems,
and for any other ARM system that wants to use a VGA console?
How do these system handle it?

BTW: in the integrator_defconfig the VGA console is disabled,
for the very reason that it tends to lock things up if ther is no
graphics card in the machine.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list