[RFC][TRUSTY] X-Gene platform support

Tim Gardner tim.gardner at canonical.com
Fri Mar 14 14:29:52 UTC 2014


On 03/13/2014 08:02 PM, Ming Lei wrote:
> On Fri, Mar 14, 2014 at 6:17 AM, Tim Gardner <tim.gardner at canonical.com> wrote:
>> On 03/13/2014 02:13 PM, Tim Gardner wrote:
>>>
>>> On 03/13/2014 10:07 AM, Ming Lei wrote:
>>>>
>>>> Hi Tim,
>>>>
>>>> On Thu, Mar 13, 2014 at 10:22 PM, Tim Gardner
>>>> <tim.gardner at canonical.com> wrote:
>>>>>
>>>>> On 03/11/2014 12:15 PM, Dann Frazier wrote:
>>>>>>
>>>>>>
>>>>>> Hi,
>>>>>>     I've assembled a git tree with support for the X-Gene platform:
>>>>>>
>>>>>> git://kernel.ubuntu.com/dannf/trusty-xgene.git for-ubuntu-20140310
>>>>>>
>>>>>> The PCI changes in the above are fairly significant and still under
>>>>>> upstream review. I've therefore provided a separate branch with these
>>>>>> changes backed out and replaced with an earlier version of the host
>>>>>> controller driver, with fewer dependencies:
>>>>>>
>>>>>> git://kernel.ubuntu.com/dannf/trusty-xgene.git
>>>>>> for-ubuntu-20140310-oldpci
>>>>>>
>>>>>
>>>>> Ugh! Even with the PCI reverts there are some questionable patches
>>>>> wrt to
>>>>> maintenance and stability.
>>>>>
>>>>> I could _probably_ accept the ahci_platform patches since they are
>>>>> already
>>>>> in linux-next and will likely make it into 3.15 (though I'll remind
>>>>> you that
>>>>> I _really_ like to just cherry-pick the final patch from Linus'
>>>>> repo). Are
>>>>> the "Library-ise" patches necessary ?
>>>>
>>>>
>>>> Yes, the latest ahci-xgene patches depends on the library-ise patches
>>>> too, and the 'library-ise' patches have been in -next tree already.
>>>>
>>>>>
>>>>> My knee jerk reaction is a NAK to all of the KVM patches. They appear
>>>>> to be
>>>>> a work in progress and likely won't even make the 3.15 merge window.
>>>>
>>>>
>>>> Without these KVM patches, qemu can't boot a kernel on APM
>>>> mustang, also I just found these patches have been merged
>>>> to -next tree already, see below:
>>>>
>>>>
>>>> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/log/?id=refs%2Ftags%2Fnext-20140312&qt=author&q=Marc+Zyngier+
>>>>
>>>>
>>>> So they should land 3.15 if everything is OK.
>>>>
>>>>
>>>> Thanks,
>>>> --
>>>> Ming Lei
>>>>
>>>
>>> How about this patch set ? Is it sufficient ? I've left out the reverts,
>>> rtc, QMTM, and PCIe support.
>>>
>>> The following changes since commit
>>> 76d1f103727cd09f8f5b37c2fcb1bf187d89eb47:
>>>
>>>     UBUNTU: [Config] CONFIG_AHCI_XGENE=m (2014-03-13 12:58:23 -0600)
>>>
>>> are available in the git repository at:
>>>
>>>     git://kernel.ubuntu.com/rtg/ubuntu-trusty.git xgene
>>>
>>> for you to fetch changes up to da455837afe2da91ce0f236886cddaaf4378bd43:
>>>
>>>     UBUNTU: SAUCE: arm64: Add APM X-Gene SoC AHCI SATA host controller
>>> DTS entries (2014-03-13 12:59:03 -0600)
>>>
>>> ----------------------------------------------------------------
>>> Anup Patel (2):
>>>         UBUNTU: SAUCE: KVM: Documentation: Fix typo for KVM_ARM_VCPU_INIT
>>> ioctl
>>>         UBUNTU: SAUCE: arm64: KVM: Force undefined exception for Guest
>>> SMC intructions
>>>
>>> Hans de Goede (7):
>>>         phy-core: Don't propagate -ENOSUPP from phy_pm_runtime_get_sync
>>> to caller
>>>         UBUNTU: SAUCE: libahci: Allow drivers to override start_engine
>>>         UBUNTU: SAUCE: ahci-platform: Add support for devices with more
>>> then 1 clock
>>>         UBUNTU: SAUCE: ahci-platform: Add support for an optional
>>> regulator for sata-target power
>>>         UBUNTU: SAUCE: ahci-platform: Add enable_ / disable_resources
>>> helper functions
>>>         UBUNTU: SAUCE: ahci-platform: "Library-ise" ahci_probe
>>> functionality
>>>         UBUNTU: SAUCE: ahci-platform: "Library-ise" suspend / resume
>>> functionality
>>>
>>> Loc Ho (7):
>>>         UBUNTU: SAUCE: Documentation: Add APM X-Gene SoC 15Gbps
>>> Multi-purpose PHY driver binding documentation
>>>         UBUNTU: SAUCE: PHY: add APM X-Gene SoC 15Gbps Multi-purpose PHY
>>> driver
>>>         UBUNTU: SAUCE: arm64: Add APM X-Gene SoC 15Gbps Multi-purpose PHY
>>> DTS entries
>>>         UBUNTU: SAUCE: clk: arm64: Fix the clock-names property for
>>> pcppll, socpll, and socplldiv2
>>>         UBUNTU: SAUCE: Documentation: Add documentation for the APM
>>> X-Gene SoC SATA host controller DTS binding
>>>         UBUNTU: SAUCE: ata: Add APM X-Gene SoC AHCI SATA host controller
>>> driver
>>>         UBUNTU: SAUCE: arm64: Add APM X-Gene SoC AHCI SATA host
>>> controller DTS entries
>>>
>>> Marc Zyngier (5):
>>>         UBUNTU: SAUCE: arm64: KVM: force cache clean on page fault when
>>> caches are off
>>>         UBUNTU: SAUCE: arm64: KVM: allows discrimination of AArch32
>>> sysreg access
>>>         UBUNTU: SAUCE: arm64: KVM: trap VM system registers until MMU and
>>> caches are ON
>>>         UBUNTU: SAUCE: ARM: KVM: introduce kvm_p*d_addr_end
>>>         UBUNTU: SAUCE: arm64: KVM: flush VM pages before letting the
>>> guest enable caches
>>>
>>> Ravi Patel (2):
>>>         UBUNTU: SAUCE: Documentation: misc-devices: APM X-Gene SoC QMTM
>>>         UBUNTU: SAUCE: Documentation: devicetree: bindings for APM X-Gene
>>> SoC QMTM
>>>
>>> Roger Quadros (2):
>>>         UBUNTU: SAUCE: ata: ahci_platform: Manage SATA PHY
>>>         UBUNTU: SAUCE: ata: ahci_platform: runtime resume the device
>>> before use
>>>
>>> Tim Gardner (1):
>>>         UBUNTU: SAUCE: arch/arm64/kvm/sys_regs.c: Added include
>>>
>>>    .../devicetree/bindings/ata/ahci-platform.txt      |    2 +
>>>    .../devicetree/bindings/ata/apm-xgene.txt          |   70 +
>>>    .../devicetree/bindings/misc/apm-xgene-qmtm.txt    |   51 +
>>>    .../devicetree/bindings/phy/apm-xgene-phy.txt      |   79 +
>>>    Documentation/misc-devices/apm-xgene-qmtm          |  149 ++
>>>    Documentation/virtual/kvm/api.txt                  |    2 +-
>>>    arch/arm/include/asm/kvm_mmu.h                     |   19 +-
>>>    arch/arm/kvm/mmu.c                                 |  107 +-
>>>    arch/arm64/boot/dts/apm-storm.dtsi                 |  156 +-
>>>    arch/arm64/include/asm/kvm_arm.h                   |    3 +-
>>>    arch/arm64/include/asm/kvm_asm.h                   |    3 +-
>>>    arch/arm64/include/asm/kvm_mmu.h                   |   23 +-
>>>    arch/arm64/kvm/handle_exit.c                       |    3 -
>>>    arch/arm64/kvm/sys_regs.c                          |   99 +-
>>>    arch/arm64/kvm/sys_regs.h                          |    2 +
>>>    drivers/ata/Kconfig                                |    7 +
>>>    drivers/ata/Makefile                               |    1 +
>>>    drivers/ata/ahci.c                                 |    6 +-
>>>    drivers/ata/ahci.h                                 |   14 +-
>>>    drivers/ata/ahci_platform.c                        |  498 ++++--
>>>    drivers/ata/ahci_xgene.c                           |  490 ++++++
>>>    drivers/ata/libahci.c                              |   26 +-
>>>    drivers/ata/sata_highbank.c                        |    3 +-
>>>    drivers/phy/Kconfig                                |    7 +
>>>    drivers/phy/Makefile                               |    1 +
>>>    drivers/phy/phy-core.c                             |    4 +
>>>    drivers/phy/phy-xgene.c                            | 1750
>>> ++++++++++++++++++++
>>>    include/linux/ahci_platform.h                      |   25 +
>>>    28 files changed, 3459 insertions(+), 141 deletions(-)
>>>    create mode 100644 Documentation/devicetree/bindings/ata/apm-xgene.txt
>>>    create mode 100644
>>> Documentation/devicetree/bindings/misc/apm-xgene-qmtm.txt
>>>    create mode 100644
>>> Documentation/devicetree/bindings/phy/apm-xgene-phy.txt
>>>    create mode 100644 Documentation/misc-devices/apm-xgene-qmtm
>>>    create mode 100644 drivers/ata/ahci_xgene.c
>>>    create mode 100644 drivers/phy/phy-xgene.c
>>>
>>
>> Hmm, those ahci_platform patches are causing compile problems with
>> amd64/i386.
>
> Thanks for taking these patches.
>

Don't kid yourself. I have _not_ accepted these patches into 
master-next, nor will I until they have passed functionality testing on 
arm64 as well as regression testing on other architectures.

> We built these patches on arm64 and didn't find they cause build
> warning/failure, could you post the compiling log so that we can
> figure out one fix?
>

Your narrow focus on arm64 must be liberating.

Re-fetch 'git://kernel.ubuntu.com/rtg/ubuntu-trusty.git xgene' which has 
the amd64/i386 build fix. Build it for arm64 and test for QEMU/KVM, 
Gigabit ethernet, and AHCI SATA functionality.

Andy - would you have a look at this branch to make sure I'm selling 
something we can support ?

rtg
-- 
Tim Gardner tim.gardner at canonical.com




More information about the kernel-team mailing list