Christian Zigotzky chzigotzky at
Tue May 24 23:37:58 AEST 2016


I tried:

/* Workaround for lack of device tree */
                        if (primary) {
                                __ioremap_at(range.cpu_addr, (void 
                                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 
arch/powerpc/kernel/pci-common.c:731:32: error: incompatible type for 
argument 4 of ‘__ioremap_at’
                                 __ioremap_at(range.cpu_addr, (void 
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,



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.

More information about the Linuxppc-dev mailing list