[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 04/62] arm/acpi: Emulate io ports for arm
On Wednesday 18 November 2015 15:01:26 Shannon Zhao wrote: > Hi Arnd, > > On 2015/11/17 17:50, Arnd Bergmann wrote: > > On Tuesday 17 November 2015 17:40:03 shannon.zhao@xxxxxxxxxx wrote: > >> +/* > >> + * Emulate x86 io ports for arm. > >> + */ > >> +#define __armio(addr) ( (void __iomem *)addr ) > >> + > >> +#define inb(c) ( readb( __armio(c) ) ) > >> +#define inw(c) ( readw( __armio(c) ) ) > >> +#define inl(c) ( readl( __armio(c) ) ) > >> + > >> +#define outb(v, c) ( writeb(v, __armio(c) ) ) > >> +#define outw(v, c) ( writew(v, __armio(c) ) ) > >> +#define outl(v, c) ( writel(v, __armio(c) ) ) > >> + > > > > This is almost certainly wrong. There might be I/O port accesses, but they > > won't be in the same place as normal pointers. > > > Sorry, maybe I didn't get what you mean. Here it just wants emulate the > in(b,w,l) and out(b,w,l) which exist on x86 while not on ARM. So it > could introduce less change to the common ACPI codes, for example > acpi_os_write_port(). > > I see there is the same thing in Linux arch/arm/include/asm/io.h The problem is that your definition of __armio() is wrong. If you want to do it right, you need to first find the PCI I/O port ranges and map them into a virtual address, and then define __armio() in a way to add the virtual address you have mapped them to. Alternatively, define the functions so they don't try to access the pointers but instead just print a warning. Arnd _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |