From: John Garry <john.garry@huawei.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Bjorn Helgaas <helgaas@kernel.org>
Cc: <wangkefeng.wang@huawei.com>, <arnd@arndb.de>,
<rafael@kernel.org>, <linux-pci@vger.kernel.org>,
Will Deacon <will.deacon@arm.com>, <linux-kernel@vger.kernel.org>,
<linuxarm@huawei.com>, <andy.shevchenko@gmail.com>,
<linux-arm-kernel@lists.infradead.org>,
"Catalin Marinas" <catalin.marinas@arm.com>, <bp@suse.de>,
<linux@roeck-us.net>
Subject: Re: [RFC PATCH v2 1/3] resource: Request IO port regions from children of ioport_resource
Date: Fri, 29 Mar 2019 10:42:17 +0000 [thread overview]
Message-ID: <418943e2-19cd-f4b9-b5e1-2a49bce99b66@huawei.com> (raw)
In-Reply-To: <20190328174655.GC19825@red-moon>
On 28/03/2019 17:46, Lorenzo Pieralisi wrote:
> On Tue, Mar 26, 2019 at 05:48:10PM -0500, Bjorn Helgaas wrote:
>
> [...]
>
Hi Lorenzo,
>> I'm not convinced about this last sentence.
>>
>> It's true that on most modern systems, including that Intel PCH, the
>> Super I/O controller is attached via an LPC bridge on a PCI bus.
>>
>> But I don't think it's an actual requirement that PCI be involved.
>> There certainly once were systems, e.g., PC/104, that had ISA devices
>> but no PCI. Maybe Super I/O attached via ISA is obsolete enough that
>> we don't care any more, but I really don't know.
>>
>>>> On x86, I think inb/inw/inl from a port where nothing responds
>>>> probably just returns ~0, and outb/outw/outl just get dropped.
>>>> Shouldn't arm64 do the same, without crashing?
>>>
>>> That would be ideal and we're doing something similar in patch 2/3.
>>>
>>> So on ARM64 we have to IO remap the PCI IO resource. If this mapping is not
>>> done (due to no PCI host), then any inb/inw/inl calls will crash the system.
>>
>> My take is that ARM64 is responsible for implementing inb/inw/inl in
>> such a way that they don't crash. I don't think it's practical to
>> update all the old ISA drivers or even the core code to work around
>> that.
>
> The problem is that those drivers are accessing a resource that does not
> exist in practice, it is taken for granted on x86 systems (and on IA64)
> because that was an actual bus (actual or emulated) and was made part of
> the architecture. The ISA space is not necessarily tied to PCI,
> at least not always.
>
> Side note: these drivers can't be compiled on PPC, it would be
> good to understand why, I have a hunch it can be related.
I mentioned this earlier:
I saw that in commits like 746cdfbf01c0 ("hwmon: Avoid building drivers
forpowerpc that read/write ISA addresses"), PPC would not build these
drivers, as, like arm, it has no native ISA.
However I still don't think just avoiding compiling these drivers for
certain archs solves the problem.
[...]
>>>>> [1] https://www.spinics.net/lists/linux-pci/msg49821.html
>>>>
>>>> Please use a https://lore.kernel.org/ URL instead of spinics.net.
>>>
>>> ok, I hope that I can find this old thread.
>>
>> The beauty of lore.kernel.org is that the URL contains the Message-ID, so
>> it's easy build the URL and it would contain useful information even if
>> lore.kernel.org disappeared:
>>
>> https://lore.kernel.org/linux-pci/56F209A9.4040304@huawei.com
>
> Yes, the bottom line is what Arnd outlined in the thread above.
>
> ISA IO port space is not necessarily PCI but it does not exist
> architecturally on ARM systems.
>
> Taking the example of IA64, the ISA space is memory mapped (like any
> other arch except for x86) but IIUC the virtual mapping for the ISA
> port space _always_ exists on IA64 so this issue won't happen.
>
> Arnd pointed out a solution in the thread above but I need to check
> if that's feasible.
I doubt that it can work now.
Since we when introduced the concept of logical PIO space, this IO space
became sparely populated by 2 regions - MMIO and indirect IO - so we
cannot grow it as we map in regions. I also don't think it works for
when we IO unmap regions.
Thanks,
John
>
> Lorenzo
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
> .
>
next prev parent reply other threads:[~2019-03-29 10:42 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-20 18:14 [PATCH v2 0/3] Fix system crash for accessing unmapped IO port regions John Garry
2019-03-20 18:14 ` [RFC PATCH v2 1/3] resource: Request IO port regions from children of ioport_resource John Garry
2019-03-25 23:32 ` Bjorn Helgaas
2019-03-26 16:33 ` John Garry
2019-03-26 22:48 ` Bjorn Helgaas
2019-03-27 11:24 ` John Garry
2019-03-28 17:46 ` Lorenzo Pieralisi
2019-03-29 10:42 ` John Garry [this message]
2019-03-29 12:22 ` Lorenzo Pieralisi
2019-04-02 9:46 ` John Garry
2019-03-20 18:14 ` [PATCH v2 2/3] lib: logic_pio: Reject access to unregistered CPU MMIO regions John Garry
2019-03-23 19:15 ` Andy Shevchenko
2019-03-25 9:59 ` John Garry
2019-03-20 18:14 ` [PATCH v2 3/3] lib: logic_pio: Make some prints explicitly hex John Garry
2019-03-23 19:12 ` Andy Shevchenko
2019-03-25 9:48 ` John Garry
2019-03-25 15:03 ` Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=418943e2-19cd-f4b9-b5e1-2a49bce99b66@huawei.com \
--to=john.garry@huawei.com \
--cc=andy.shevchenko@gmail.com \
--cc=arnd@arndb.de \
--cc=bp@suse.de \
--cc=catalin.marinas@arm.com \
--cc=helgaas@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=linuxarm@huawei.com \
--cc=lorenzo.pieralisi@arm.com \
--cc=rafael@kernel.org \
--cc=wangkefeng.wang@huawei.com \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).