Thread (16 messages) 16 messages, 3 authors, 2021-09-25

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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help