mbox

[0/2] Versatile Express config update for 3.13

Message ID 1381930594-1701-1-git-send-email-pawel.moll@arm.com
State New
Headers show

Pull-request

git://git.linaro.org/people/pawelmoll/linux.git tags/vexpress/defconfig-for-v3.13

Message

Pawel Moll Oct. 16, 2013, 1:36 p.m. UTC
Greetings,

This micro-series updates the Versatile Express defconfig in two stages:

1. Makes the defconfig-ed kernels actually work on real boards and QEMU.
2. Enables all platform-specific drivers and features.

The first patch definitely should go in, as it is a de-facto bug fix.
The second has been suggested to increase build coverage.

I've tried to keep the changes to minimum. The patches can be also
pulled as described below.

Cheers!

Pawel


The following changes since commit 61e6cfa80de5760bbe406f4e815b7739205754d2:

  Linux 3.12-rc5 (2013-10-13 15:41:28 -0700)

are available in the git repository at:

  git://git.linaro.org/people/pawelmoll/linux.git tags/vexpress/defconfig-for-v3.13

for you to fetch changes up to 04650cf989f418b7c28f94d63c0c174d34e0a9ad:

  ARM: vexpress: Enable platform-specific options in defconfig (2013-10-16 14:23:25 +0100)

----------------------------------------------------------------
Fathi Boudra (1):
  ARM: vexpress: Make defconfig work again

Pawel Moll (1):
  ARM: vexpress: Enable platform-specific options in defconfig

 arch/arm/configs/vexpress_defconfig | 72 +++++++++++++++++++++++--------------
 1 file changed, 46 insertions(+), 26 deletions(-)

Comments

Christopher Covington Oct. 16, 2013, 5:48 p.m. UTC | #1
Hi Pawel, Fathi,

On 10/16/2013 09:36 AM, Pawel Moll wrote:
> From: Fathi Boudra <fathi.boudra@linaro.org>
> 
> This patch updates the Versatile Express defconfig to a level
> which makes it possible to run a defconfig-ed kernel work
> on the board and in QEMU with modern userspace. It does:
> 
> - update cmdline to contain "console=ttyAMA0" only
> - enable devtmpfs filesystem
> - enable voltage regulator support
> - enable ext4 filesystem
> - disable low level debug and early printk
> 
> Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
> [PM: removed DEBUG_LL - it doesn't work on qemu]

Does DEBUG_LL/EARLY_PRINTK break boot on QEMU? If not, why not leave it in for
folks using other emulators, hardware, and maybe future versions of QEMU?

Thanks,
Christopher
Christopher Covington Oct. 16, 2013, 5:57 p.m. UTC | #2
Hi Pawel,

On 10/16/2013 09:36 AM, Pawel Moll wrote:
> This patch enables all drivers and alike to make defconfig-ed
> kernels use Versatile Express specific features, like power
> management services (PSCI, MCPM and cpuidle with drivers for
> DCCSB on Fast Models and SPC on TC2), CMA for frame buffer
> allocation, all virtio device drivers (for QEMU, KVM tools
> and Fast Models), MTD physmap drivers with squashfs and UBIFS
> for flash, I2C master, regulator and hwmon drivers and
> LEDs support with most useful triggers. The maximum
> amount of CPUs has been increased to 8 to facilitate
> big.Little systems.
> 
> Signed-off-by: Pawel Moll <pawel.moll@arm.com>
> ---
>  arch/arm/configs/vexpress_defconfig | 65 ++++++++++++++++++++++++-------------
>  1 file changed, 42 insertions(+), 23 deletions(-)
> 
> diff --git a/arch/arm/configs/vexpress_defconfig b/arch/arm/configs/vexpress_defconfig
[...]
> @@ -121,21 +141,20 @@ CONFIG_EXT4_FS=y
>  CONFIG_VFAT_FS=y
>  CONFIG_TMPFS=y
>  CONFIG_JFFS2_FS=y
> +CONFIG_UBIFS_FS=y
>  CONFIG_CRAMFS=y
> +CONFIG_SQUASHFS=y
> +CONFIG_SQUASHFS_LZO=y
>  CONFIG_NFS_FS=y
> -CONFIG_NFS_V3=y
>  CONFIG_ROOT_NFS=y

Isn't CONFIG_9P_FS=y needed for VirtIO passthrough filesystem support?

[...]

Thanks,
Christopher
Sudeep.KarkadaNagesha@arm.com Oct. 17, 2013, 9:57 a.m. UTC | #3
Hi Pawel,

On 16/10/13 14:36, Pawel Moll wrote:
> This patch enables all drivers and alike to make defconfig-ed
> kernels use Versatile Express specific features, like power
> management services (PSCI, MCPM and cpuidle with drivers for
> DCCSB on Fast Models and SPC on TC2), CMA for frame buffer
> allocation, all virtio device drivers (for QEMU, KVM tools
> and Fast Models), MTD physmap drivers with squashfs and UBIFS
> for flash, I2C master, regulator and hwmon drivers and
> LEDs support with most useful triggers. The maximum
> amount of CPUs has been increased to 8 to facilitate
> big.Little systems.
> 
> Signed-off-by: Pawel Moll <pawel.moll@arm.com>
> ---
>  arch/arm/configs/vexpress_defconfig | 65 ++++++++++++++++++++++++-------------
>  1 file changed, 42 insertions(+), 23 deletions(-)
> 
> diff --git a/arch/arm/configs/vexpress_defconfig b/arch/arm/configs/vexpress_defconfig
> index 6d20bc1..f2535e3 100644
> --- a/arch/arm/configs/vexpress_defconfig
> +++ b/arch/arm/configs/vexpress_defconfig
[snip]
> @@ -44,39 +49,46 @@ CONFIG_IP_PNP_BOOTP=y
>  # CONFIG_INET_LRO is not set
>  # CONFIG_IPV6 is not set
>  # CONFIG_WIRELESS is not set
> +CONFIG_NET_9P=y
> +CONFIG_NET_9P_VIRTIO=y
>  CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
>  CONFIG_DEVTMPFS=y
>  CONFIG_MTD=y
> -CONFIG_MTD_CONCAT=y
> -CONFIG_MTD_PARTITIONS=y
>  CONFIG_MTD_CMDLINE_PARTS=y
> -CONFIG_MTD_CHAR=y
>  CONFIG_MTD_BLOCK=y
>  CONFIG_MTD_CFI=y
>  CONFIG_MTD_CFI_INTELEXT=y
>  CONFIG_MTD_CFI_AMDSTD=y
> -CONFIG_MTD_ARM_INTEGRATOR=y
> -CONFIG_MISC_DEVICES=y
> +CONFIG_MTD_RAM=y


> +CONFIG_MTD_PHYSMAP=y
> +CONFIG_MTD_PHYSMAP_OF=y

This could cause issues with CPUIdle on TC2. Since TC2 reset vector is in NOR
flash, NOR flash has to be in Read mode when CPU resets and enter reset vector.
But what I have seen is that NOR flash is left in Read Identifier Mode after the
driver is initialised. So we need to make sure NOR device is in Read mode
whenever CPU enters deeper C-states and also may have to register notifiers
which seems overkill IMO. Most of the platform have separate(or secure) flash
for this reason.
Is it possible to disable flash on TC2 only in it's DT something like
         flash@0,00000000 {
                status = "disabled";
         };	

Regards,
Sudeep
Pawel Moll Oct. 17, 2013, 10:07 a.m. UTC | #4
On Wed, 2013-10-16 at 18:48 +0100, Christopher Covington wrote:
> > - disable low level debug and early printk
> > 
> > Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
> > [PM: removed DEBUG_LL - it doesn't work on qemu]
> 
> Does DEBUG_LL/EARLY_PRINTK break boot on QEMU? If not, why not leave it in for
> folks using other emulators, hardware, and maybe future versions of QEMU?

Yep, unfortunately it does break qemu boot. And generally DEBUG_LL is
considered to be a development-only option and in it was pointed out in
many discussion that people using it must exactly know what are they
doing. Definitely not a candidate for a defconfig.

As to the details of the problem, the memory map detection heuristics
has been crafted do match the V2P-CA9 board processor revision, and qemu
returns a different one. Just a nuisance, but very hard to debug if
things go wrong. And before you ask, I'd rather remove the detection
code completely than change it yet another time, which will have the
same result - no DEBUG_LL enabled in defconfig because one will have to
explicitly select one of two options. Pick the wrong one and you're back
in the same place - nothing work and you don't know where.

Thanks for looking at the patch!

Pawel
Pawel Moll Oct. 17, 2013, 10:16 a.m. UTC | #5
On Wed, 2013-10-16 at 18:57 +0100, Christopher Covington wrote:
> > @@ -121,21 +141,20 @@ CONFIG_EXT4_FS=y
> >  CONFIG_VFAT_FS=y
> >  CONFIG_TMPFS=y
> >  CONFIG_JFFS2_FS=y
> > +CONFIG_UBIFS_FS=y
> >  CONFIG_CRAMFS=y
> > +CONFIG_SQUASHFS=y
> > +CONFIG_SQUASHFS_LZO=y
> >  CONFIG_NFS_FS=y
> > -CONFIG_NFS_V3=y
> >  CONFIG_ROOT_NFS=y
> 
> Isn't CONFIG_9P_FS=y needed for VirtIO passthrough filesystem support?

Yes, I think you're right. I've expected 9P_VFS and NET_9P select or
depend on each other.

Thanks for pointing this out!

Paweł
Pawel Moll Oct. 17, 2013, 10:38 a.m. UTC | #6
On Thu, 2013-10-17 at 10:57 +0100, Sudeep KarkadaNagesha wrote:
> > +CONFIG_MTD_PHYSMAP=y
> > +CONFIG_MTD_PHYSMAP_OF=y
> 
> This could cause issues with CPUIdle on TC2. Since TC2 reset vector is in NOR
> flash, NOR flash has to be in Read mode when CPU resets and enter reset vector.
> But what I have seen is that NOR flash is left in Read Identifier Mode after the
> driver is initialised. So we need to make sure NOR device is in Read mode
> whenever CPU enters deeper C-states and also may have to register notifiers
> which seems overkill IMO. Most of the platform have separate(or secure) flash
> for this reason.

Oh boy, yes, I remember this now.

> Is it possible to disable flash on TC2 only in it's DT something like
>          flash@0,00000000 {
>                 status = "disabled";
>          };	

But flash is innocent, really... I may just remove CPU_IDLE for the time
being.

Paweł
Olof Johansson Oct. 28, 2013, 4:05 a.m. UTC | #7
On Wed, Oct 16, 2013 at 02:36:32PM +0100, Pawel Moll wrote:
> Greetings,
> 
> This micro-series updates the Versatile Express defconfig in two stages:
> 
> 1. Makes the defconfig-ed kernels actually work on real boards and QEMU.
> 2. Enables all platform-specific drivers and features.
> 
> The first patch definitely should go in, as it is a de-facto bug fix.
> The second has been suggested to increase build coverage.
> 
> I've tried to keep the changes to minimum. The patches can be also
> pulled as described below.
> 
> Cheers!
> 
> Pawel
> 
> 
> The following changes since commit 61e6cfa80de5760bbe406f4e815b7739205754d2:
> 
>   Linux 3.12-rc5 (2013-10-13 15:41:28 -0700)
> 
> are available in the git repository at:
> 
>   git://git.linaro.org/people/pawelmoll/linux.git tags/vexpress/defconfig-for-v3.13

Based on the comments on at least the first patch I'm guessing you'll want to
respin, so I'll wait for a new pull request.


-Olof