diff mbox

[2/2] ARM: vexpress: Enable platform-specific options in defconfig

Message ID 1381930594-1701-3-git-send-email-pawel.moll@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Pawel Moll Oct. 16, 2013, 1:36 p.m. UTC
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(-)

Comments

Christopher Covington Oct. 16, 2013, 5:57 p.m. UTC | #1
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 Oct. 17, 2013, 9:57 a.m. UTC | #2
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:16 a.m. UTC | #3
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 | #4
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?
diff mbox

Patch

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
@@ -1,4 +1,3 @@ 
-CONFIG_EXPERIMENTAL=y
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_SYSVIPC=y
 CONFIG_IKCONFIG=y
@@ -8,11 +7,9 @@  CONFIG_CGROUPS=y
 CONFIG_CPUSETS=y
 # CONFIG_UTS_NS is not set
 # CONFIG_IPC_NS is not set
-# CONFIG_USER_NS is not set
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
 CONFIG_BLK_DEV_INITRD=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_PROFILING=y
 CONFIG_OPROFILE=y
 CONFIG_MODULES=y
@@ -23,14 +20,22 @@  CONFIG_MODULE_UNLOAD=y
 # CONFIG_IOSCHED_CFQ is not set
 CONFIG_ARCH_VEXPRESS=y
 CONFIG_ARCH_VEXPRESS_CA9X4=y
+CONFIG_ARCH_VEXPRESS_DCSCB=y
+CONFIG_ARCH_VEXPRESS_TC2_PM=y
 # CONFIG_SWP_EMULATE is not set
 CONFIG_SMP=y
+CONFIG_HAVE_ARM_ARCH_TIMER=y
+CONFIG_MCPM=y
 CONFIG_VMSPLIT_2G=y
-CONFIG_HOTPLUG_CPU=y
+CONFIG_NR_CPUS=8
+CONFIG_ARM_PSCI=y
 CONFIG_AEABI=y
+CONFIG_CMA=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_CMDLINE="console=ttyAMA0"
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_BIG_LITTLE=y
 CONFIG_VFP=y
 CONFIG_NEON=y
 # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
@@ -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
+CONFIG_MTD_UBI=y
+CONFIG_PROC_DEVICETREE=y
+CONFIG_VIRTIO_BLK=y
 # CONFIG_SCSI_PROC_FS is not set
 CONFIG_BLK_DEV_SD=y
-# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_SCSI_VIRTIO=y
 CONFIG_ATA=y
 # CONFIG_SATA_PMP is not set
 CONFIG_NETDEVICES=y
-CONFIG_NET_ETHERNET=y
+CONFIG_VIRTIO_NET=y
+CONFIG_SMC91X=y
 CONFIG_SMSC911X=y
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
 # CONFIG_WLAN is not set
 CONFIG_INPUT_EVDEV=y
 # CONFIG_SERIO_SERPORT is not set
 CONFIG_SERIO_AMBAKMI=y
+CONFIG_LEGACY_PTY_COUNT=16
 CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_LEGACY_PTY_COUNT=16
-# CONFIG_HW_RANDOM is not set
-# CONFIG_HWMON is not set
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_I2C=y
+CONFIG_I2C_VERSATILE=y
+CONFIG_SENSORS_VEXPRESS=y
 CONFIG_REGULATOR=y
+CONFIG_REGULATOR_VEXPRESS=y
 CONFIG_FB=y
 CONFIG_FB_ARMCLCD=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
@@ -105,14 +117,22 @@  CONFIG_HID_THRUSTMASTER=y
 CONFIG_HID_ZEROPLUS=y
 CONFIG_USB=y
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-# CONFIG_USB_DEVICE_CLASS is not set
 CONFIG_USB_MON=y
 CONFIG_USB_ISP1760_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_MMC=y
 CONFIG_MMC_ARMMMCI=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_CPU=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_PL031=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
@@ -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
-# CONFIG_RPCSEC_GSS_KRB5 is not set
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
+CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DETECT_HUNG_TASK=y
 # CONFIG_SCHED_DEBUG is not set
-CONFIG_DEBUG_INFO=y
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
 CONFIG_DEBUG_USER=y
-CONFIG_DEBUG_ERRORS=y
 # CONFIG_CRYPTO_ANSI_CPRNG is not set
 # CONFIG_CRYPTO_HW is not set