Re: [PATCH 5/6] MIPS: implement architecture dependent 'pci_remap_iospace()'
From: Arnd Bergmann <arnd@arndb.de>
Date: 2021-09-25 17:32:33
Also in:
linux-mips, linux-pci, lkml
From: Arnd Bergmann <arnd@arndb.de>
Date: 2021-09-25 17:32:33
Also in:
linux-mips, linux-pci, lkml
On Fri, Sep 24, 2021 at 11:11 PM Sergio Paracuellos [off-list ref] wrote:
To make PCI IO work we need to properly virtually map IO cpu physical address and set this virtual address as the address of the first PCI IO port which is set using function 'set_io_port_base()'. Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
+int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)
+{
+ size_t size = (res->end - res->start) + 1;
+ unsigned long vaddr = (unsigned long)ioremap(phys_addr, size);
+
+ set_io_port_base(vaddr);
+ return 0;
+}
It might be good to check that res->start is zero here, otherwise
the io_port_base would be off. That could happen if you ever have more
than one bridge.
Arnd