Re: [PATCH v14 0/9] LPC: legacy ISA I/O support

From: John Garry
Date: Tue Feb 20 2018 - 10:41:48 EST


On 20/02/2018 14:54, Andy Shevchenko wrote:
On Mon, Feb 19, 2018 at 7:48 PM, John Garry <john.garry@xxxxxxxxxx> wrote:
> This patchset supports the IPMI-bt device attached to the Low-Pin-Count
> interface implemented on Hisilicon Hip06/Hip07 SoC.
> -----------
> | LPC host|
> | |
> -----------
> |
> _____________V_______________LPC
> | |
> V V
> ------------
> | BT(ipmi)|
> ------------
>
> When master accesses those peripherals beneath the Hip06/Hip07 LPC, a specific
> LPC driver is needed to make LPC host generate the standard LPC I/O cycles with
> the target peripherals'I/O port addresses. But on curent arm64 world, there is
> no real I/O accesses. All the I/O operations through in/out accessors are based
> on MMIO ranges; on Hip06/Hip07 LPC the I/O accesses are performed through driver
> specific accessors rather than MMIO.
> To solve this issue and keep the relevant existing peripherals' drivers untouched,
> this patchset:
> - introduces a generic I/O space management framework, logical PIO, to support
> I/O operations on host controllers operating either on MMIO buses or on buses
> requiring specific driver I/O accessors;
> - redefines the in/out accessors to provide a unified interface for both MMIO
> and driver specific I/O operations. Using logical PIO, th call of in/out() from
> the host children drivers, such as ipmi-si, will be redirected to the
> corresponding device-specific I/O hooks to perform the I/O accesses.
>
> Based on this patch-set, all the I/O accesses to Hip06/Hip07 LPC peripherals can
> be supported without any changes on the existing ipmi-si driver.
>
> The whole patchset has been tested on Hip07 D05 board both using DTB and ACPI.
>
> Differences to v13:
> - dropped ACPI scan handler and added patch to not enumerate children
> of indirect IO hosts in ACPI code
> - tidied up logic_pio.c a bit for kerneldoc and made some APIs clearer
> to understand
> - tided (and simplified) hisi_lpc.c and added new ACPI probe code
> (same as previous ACPI scan handler code, so comments from Rafael
> and Andy included)
> - reinstated PCI range upper limit check in pci_pio_to_address()
> - dropped Dann Frazier's "tested-by" tag in light of changes
> - rebase to linuxnext 20180219 (had to fix locally arm64 build issue)
>
Some minor comments per patches, otherwise FWIW

Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>


Thanks, the comments in the other 2 patches I did not reply to are ok.

John