Ben,

I tried:

/* Workaround for lack of device tree */
                       if (primary) {
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
                               range.size, pgprot_noncached(PAGE_KERNEL));
                       hose->io_base_virt = (void *)_IO_BASE;
printk("Initialised io_base_virt 0x%lx _IO_BASE 0x%llx\n", (unsigned long)hose->io_base_virt, (unsigned long long)_IO_BASE);
                    }

Unfortunately I got some error messages:

arch/powerpc/kernel/pci-common.c: In function ‘pci_process_bridge_OF_ranges’: arch/powerpc/kernel/pci-common.c:731:32: error: incompatible type for argument 4 of ‘__ioremap_at’ __ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
                                ^
In file included from include/linux/io.h:25:0,
                 from include/linux/pci.h:31,
                 from arch/powerpc/kernel/pci-common.c:20:
./arch/powerpc/include/asm/io.h:746:23: note: expected ‘long unsigned int’ but argument is of type ‘pgprot_t’
 extern void __iomem * __ioremap_at(phys_addr_t pa, void *ea,

Cheers,

Christian


On 24 May 2016 at 1:16 PM, Benjamin Herrenschmidt wrote:
Actually, can you try pgprot_noncached(PAGE_KERNEL) ? If that works,
then I wonder what that's going on in pci_64.c ...

Cheers,
Ben.

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to