[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ARM LPAE flavour (Was: Re: [PATCH] udebs for armmp flavour)



On Sat, 2013-08-31 at 00:22 +0100, Ben Hutchings wrote:
> > Perhaps we want to consider getting rid of the vexpress and/or mx5
> > flavours before adding another one? The armmp flavour appears to have
> > the relevant options turned on, but has anyone tried it? I guess we'd
> > want to add dummy patches to aid in the transition?
> 
> linux-latest could build transitional packages (as for the i386/686
> flavour in squeeze->wheezy).

That sounds like the right way to go.

> 
> [...]
> > --- /dev/null
> > +++ b/linux/debian/config/armhf/config.lpae
> > @@ -0,0 +1,4 @@
> > +##
> > +## file: arch/arm/mm/Kconfig
> > +##
> > +CONFIG_ARM_LPAE=y
> 
> Shouldn't this also enable KVM (which depends on ARM_LPAE)?

Taking the armmp .config and turning on LPAE oldconfig asks about:
        TRANSPARENT_HUGEPAGE
        TRANSPARENT_HUGEPAGE_ALWAYS vs TRANSPARENT_HUGEPAGE_MADVISE
        ARM_SMMU
        HUGETLBFS
        ARM_DMA_IOMMU_ALIGNMENT
        CGROUP_HUGETLB
but not KVM for some reason. Aha, enabling CONFIG_VIRTUALISATION then
gives:
        KVM
        KVM_ARM_MAX_VCPUS
        KVM_ARM_VGIC
        KVM_ARM_TIMER

I expect KVM would also want virtio. Some of this stuff should be
enabled for the non LPAE flavour so Debian can run as a guest too.

> (I'm surprised you haven't asked to enable XEN & XEN_DOM0 on armhf
> yet...)

I've still got my head mostly in hacking on it mode there so I didn't
start thinking of packaging that end of things yet, but you are right, I
should.

I'll prep a separate patch to enable the appropriate Xen and KVM stuff
for both guest and host usage.

> > @@ -19,6 +20,18 @@ image-file: arch/arm/boot/zImage
> >  hardware: ARMv7 multiplatform compatible SoCs
> >  hardware-long: ARMv7 multiplatform kernel for Marvell Armada 370/xp, Freescale iMX5x/iMX6
> >  
> > +[armmp-lpae_build]
> > +image-file: arch/arm/boot/zImage
> > +
> > +[armmp-lpae_description]
> > +hardware: ARMv7 multiplatform compatible SoCs
> [...]
> 
> The short description should be different from that for armmp as well.

append "... supporting LPAE"? (that's roughly what x86 does)

That reminds me, the armmp description is:
        
        Description: Linux 3.11-rc5 for ARMv7 multiplatform compatible SoCs
         The Linux kernel 3.11-rc5 and modules for use on ARMv7 multiplatform
         kernel for Marvell Armada 370/xp, Freescale iMX5x/iMX6.
        
The list of hardware there is already well out of date, I think. Are we
intending to strive to keep it accurate and enumerate them all or do we
want to make it generic enough to not need further maintenance?

There isn't much consistency to the .config names, so one needs to
manually go through the list in menuconfig, and even then I'm not
knowledgeable enough to always be able to distinguish options which
represent families of SoC from those which relate to members of a
family. I've made an attempt to enumerate at the end. The selection of
enabled vs. not looks a bit random to me, but maybe someone is on top of
it?

The lists are the same for regular vs. LPAE, however unlike on x86 XN
( == NX on x86) support is available even in the short page table
format, so it doesn't make much sense to use LPAE on such systems with
<4GB (or more likely less than ~3.5GB to allow for MMIO space) of RAM.
I'm not sure if the overhead of managing that (i.e. remembering to
disabling a platform for LPAE when enabling it for regular) is worth it
though?

We have enabled:
      * Marvell SOCs with Device Tree support
              * Marvell Armada 370 boards
              * Marvell Armada XP boards
      * Calxeda ECX-1000/2000 (Highbank/Midway)
      * Freescale i.MX family
              * i.MX51
              * MX51 BABBAGE              <= Just an MX51 platform?
              * Eukrea CPUIMX51SD         <= Same?
              * i.MX53
              * i.MX6 Quad/DualLite 
      * TI OMAP
              * TI OMAP5
      * AM33XX                        <= Is this a TI OMAP?
      * Altera SOCFPGA family
      * Allwinner A1X SOCs 
      * ARM Ltd. Versatile Express
      * Dummy Virtual Machine
      * WonderMedia WM8850 

But have not enabled:
      * Broadcom SoC
      * Texas Instruments Keystone Devices
      * Freescale i.MX family
              * i.MX6 SoloLite
      * Vybrid Family VF610
      * TI OMAP
              * TI OMAP3
              * TI OMAP4
              * TI AM43x 
      * Rockchip RK2928 and RK3xxx SOCs 
      * ST SPEAr Family
      * STMicroelectronics Consumer Electronics SOCs with Device Trees
      * CSR SiRF
      * NVIDIA Tegra 
      * ST-Ericsson AB U300/U335
      * ST-Ericsson U8500
      * Xilinx Zynq ARM Cortex A9

Ian.


Reply to: