Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1518739

Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced

From "zhichang.yuan" <yuanzhichang@hisilicon.com>
Newsgroups linux.kernel
Subject Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced
Date 2016-11-10 09:40 +0100
Message-ID <sBT3P-3a8-5@gated-at.bofh.it> (permalink)
References <sB5gJ-3TL-9@gated-at.bofh.it> <sB5gJ-3TL-13@gated-at.bofh.it> <sBdnX-Jq-17@gated-at.bofh.it> <sBnQm-7DS-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Hi, Ben,


On 2016/11/9 7:16, Benjamin Herrenschmidt wrote:
> On Tue, 2016-11-08 at 12:03 +0000, Mark Rutland wrote:
>> On Tue, Nov 08, 2016 at 11:47:07AM +0800, zhichang.yuan wrote:
>>>
>>> For arm64, there is no I/O space as other architectural platforms, such as
>>> X86. Most I/O accesses are achieved based on MMIO. But for some arm64 SoCs,
>>> such as Hip06, when accessing some legacy ISA devices connected to LPC, those
>>> known port addresses are used to control the corresponding target devices, for
>>> example, 0x2f8 is for UART, 0xe4 is for ipmi-bt. It is different from the
>>> normal MMIO mode in using.
>>
>> This has nothing to do with arm64. Hardware with this kind of indirect
>> bus access could be integrated with a variety of CPU architectures. It
>> simply hasn't been, yet.
> 
> On some ppc's we also use similar indirect access methods for IOs. We
> have a generic infrastructure for re-routing some memory or IO regions
> to hooks.
> 
I am interested on the generic infrastructure on PPC.
Could you point out where those drivers are?
want to take a look..

Thanks,
Zhichang

> On POWER8, our PCIe doesn't do IO at all, but we have an LPC bus behind
> firmware calls ;-) We use that infrastructure to plumb in the LPC bus.
> 
>>> To drive these devices, this patch introduces a method named indirect-IO.
>>> In this method the in/out pair in arch/arm64/include/asm/io.h will be
>>> redefined. When upper layer drivers call in/out with those known legacy port
>>> addresses to access the peripherals, the hooking functions corrresponding to
>>> those target peripherals will be called. Through this way, those upper layer
>>> drivers which depend on in/out can run on Hip06 without any changes.
>>
>> As above, this has nothing to do with arm64, and as such, should live in
>> generic code, exactly as we would do if we had higher-level ISA
>> accessor ops.
>>
>> Regardless, given the multi-instance case, I don't think this is
>> sufficient in general (and I think we need higher-level ISA accessors
>> to handle the indirection).
> 
> Multi-instance with IO is tricky to do generically because archs already
> have all sort of hacks to deal with the fact that inb/outb don't require
> an explicit ioremap, so an IO resource can take all sort of shape depending
> on the arch.
> 
> Overall it boils down to applying some kind of per-instance "offset" to
> the IO port number though.
> 

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced "zhichang.yuan" <yuanzhichang@hisilicon.com> - 2016-11-08 04:30 +0100
  Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Mark Rutland <mark.rutland@arm.com> - 2016-11-08 13:10 +0100
    Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Arnd Bergmann <arnd@arndb.de> - 2016-11-08 17:20 +0100
      Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Arnd Bergmann <arnd@arndb.de> - 2016-11-08 17:20 +0100
    Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Benjamin Herrenschmidt <benh@kernel.crashing.org> - 2016-11-09 00:20 +0100
      Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced "zhichang.yuan" <yuanzhichang@hisilicon.com> - 2016-11-10 09:40 +0100
      Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Mark Rutland <mark.rutland@arm.com> - 2016-11-10 12:30 +0100
        Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Benjamin Herrenschmidt <benh@kernel.crashing.org> - 2016-11-10 20:40 +0100
          Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced "zhichang.yuan" <yuanzhichang@hisilicon.com> - 2016-11-11 11:10 +0100
  Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Will Deacon <will.deacon@arm.com> - 2016-11-08 17:20 +0100
    Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced John Garry <john.garry@huawei.com> - 2016-11-08 17:50 +0100
      Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Will Deacon <will.deacon@arm.com> - 2016-11-08 17:50 +0100
        Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced John Garry <john.garry@huawei.com> - 2016-11-08 18:10 +0100
        Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Arnd Bergmann <arnd@arndb.de> - 2016-11-08 23:40 +0100
          Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced John Garry <john.garry@huawei.com> - 2016-11-09 12:40 +0100
            Re: [PATCH V5 1/3] ARM64 LPC: Indirect ISA port IO introduced Arnd Bergmann <arnd@arndb.de> - 2016-11-09 22:40 +0100

csiph-web