[Buildroot] [PATCH v5] board: add support for Synopsys VDK Software Development Platform

Arnout Vandecappelle arnout at mind.be
Tue Oct 20 21:45:02 UTC 2015


On 13-10-15 12:10, Joao Pinto wrote:
> title: Add support for Synopsys VDK Software Development Platform

 No need to repeat what is already in the subject.

> 
> The Virtualizer Development Kit (VDK) Family for ARM Cortex Products
> consists of a set of virtual prototypes that provide a virtualizer for 
> the ARM core variants. The VDK is a standalone package that runs on an 
> host computer.

 I guess it's non-free as well?

> 
> Signed-off-by: Joao Pinto <jpinto at synopsys.com>
> ---
> Change v4 -> v5:
>  - Changelog format, minimal defconfig (Yann E. MORIN)
> Change v3 -> v4:
>  - drop 'Image' boot option (Thomas Petazzoni)
> Change v2 -> v3:
>  - kernel defconfig was not generated properly (Thomas Petazzoni)
> 
>  board/synopsys/vdk/linux-vdk-aarch64-defconfig | 226 +++++++++++++++++++++++++
>  configs/snps_aarch64_vdk_defconfig             |  15 ++
>  2 files changed, 241 insertions(+)
>  create mode 100644 board/synopsys/vdk/linux-vdk-aarch64-defconfig
>  create mode 100644 configs/snps_aarch64_vdk_defconfig
> 
> diff --git a/board/synopsys/vdk/linux-vdk-aarch64-defconfig b/board/synopsys/vdk/linux-vdk-aarch64-defconfig
> new file mode 100644
> index 0000000..f90f2ca
> --- /dev/null
> +++ b/board/synopsys/vdk/linux-vdk-aarch64-defconfig
> @@ -0,0 +1,175 @@
> +CONFIG_SYSVIPC=y
> +CONFIG_POSIX_MQUEUE=y
> +CONFIG_NO_HZ=y
> +CONFIG_HIGH_RES_TIMERS=y
> +CONFIG_BSD_PROCESS_ACCT=y
> +CONFIG_IKCONFIG=y
> +CONFIG_IKCONFIG_PROC=y
> +CONFIG_LOG_BUF_SHIFT=16
> +CONFIG_CGROUPS=y
> +CONFIG_BLK_DEV_INITRD=y
> +CONFIG_EMBEDDED=y
> +CONFIG_SLAB=y
> +CONFIG_PROFILING=y
> +CONFIG_CC_STACKPROTECTOR_REGULAR=y
> +CONFIG_MODULES=y
> +CONFIG_MODULE_UNLOAD=y
> +CONFIG_SMP=y
> +CONFIG_SCHED_MC=y
> +CONFIG_SCHED_SMT=y
> +CONFIG_NR_CPUS=8
> +CONFIG_PREEMPT=y
> +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
> +CONFIG_TRANSPARENT_HUGEPAGE=y
> +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
> +CONFIG_CMDLINE="console=ttyAMA0 earlyprintk=pl011,0x1c090000 debug user_debug=31 loglevel=9 root=/dev/vda"
> +CONFIG_CMDLINE_FORCE=y

 Is this really needed? Well, VDK probably doesn't allow passing a command line
anyway...


> +CONFIG_BINFMT_MISC=y
> +CONFIG_CPU_IDLE=y
> +CONFIG_CPU_FREQ=y
> +CONFIG_CPU_FREQ_GOV_USERSPACE=y
> +CONFIG_CPU_FREQ_GOV_ONDEMAND=y

 Does VDK support frequency scaling?

> +CONFIG_ARM_BIG_LITTLE_CPUFREQ=y

 Does VDK support big.LITTLE?

> +CONFIG_ARM_DT_BL_CPUFREQ=y
> +CONFIG_ARM_SPCI_CPUFREQ=y
> +CONFIG_NET=y
> +CONFIG_PACKET=y
> +CONFIG_UNIX=y
> +CONFIG_XFRM_USER=y

 Is this needed?

> +CONFIG_NET_KEY=y
> +CONFIG_NET_KEY_MIGRATE=y
> +CONFIG_INET=y
> +CONFIG_IP_MULTICAST=y
> +CONFIG_IP_PNP=y
> +CONFIG_IP_PNP_DHCP=y
> +CONFIG_IP_PNP_BOOTP=y
> +CONFIG_IP_PNP_RARP=y
> +CONFIG_SYN_COOKIES=y
> +CONFIG_NETWORK_PHY_TIMESTAMPING=y
> +CONFIG_NET_9P=y

 Is Plan9 useful in a simulator?

> +CONFIG_NET_9P_VIRTIO=y
> +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
> +CONFIG_DEVTMPFS=y
> +CONFIG_DEVTMPFS_MOUNT=y
> +CONFIG_VEXPRESS_CONFIG=y

 Does VDK use VExpress?

> +CONFIG_CONNECTOR=y
> +CONFIG_MTD=y
> +CONFIG_MTD_CMDLINE_PARTS=y
> +CONFIG_MTD_BLOCK=y
> +CONFIG_MTD_OOPS=y
> +CONFIG_MTD_CFI=y
> +CONFIG_MTD_CFI_INTELEXT=y
> +CONFIG_MTD_SLRAM=y

 Does VDK support all of that?

> +CONFIG_MTD_NAND=y
> +CONFIG_OF_SELFTEST=y
> +CONFIG_BLK_DEV_LOOP=y
> +CONFIG_BLK_DEV_NBD=m
> +CONFIG_BLK_DEV_RAM=y
> +CONFIG_BLK_DEV_RAM_SIZE=65536

 Are these three needed?

> +CONFIG_VIRTIO_BLK=y
> +CONFIG_SCSI=y
> +CONFIG_BLK_DEV_SD=y
> +CONFIG_BLK_DEV_DM=y
> +CONFIG_NETDEVICES=y
> +CONFIG_SMC91X=y
> +CONFIG_SMSC911X=y
> +CONFIG_STMMAC_ETH=m

 Does VDK support all of these?

> +CONFIG_STMMAC_DEBUG_FS=y

 Is this needed?

> +CONFIG_INPUT_EVDEV=y
> +CONFIG_INPUT_MISC=y
> +CONFIG_INPUT_UINPUT=y
> +CONFIG_SERIO_AMBAKMI=y
> +CONFIG_SERIAL_8250=y
> +CONFIG_SERIAL_8250_CONSOLE=y
> +CONFIG_SERIAL_AMBA_PL011=y
> +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
> +CONFIG_SERIAL_OF_PLATFORM=y

 Err, I thought OpenFirmware was a PowerPC thing?

> +CONFIG_VIRTIO_CONSOLE=y
> +CONFIG_I2C=y
> +CONFIG_I2C_CHARDEV=y
> +CONFIG_I2C_DESIGNWARE_PLATFORM=y
> +CONFIG_GPIOLIB=y
> +CONFIG_GPIO_SYSFS=y
> +CONFIG_POWER_RESET_VEXPRESS=y
> +CONFIG_FB=y
> +CONFIG_FB_ARMCLCD=y
> +CONFIG_FRAMEBUFFER_CONSOLE=y
> +CONFIG_LOGO=y
> +CONFIG_USB_HIDDEV=y
> +CONFIG_USB=y
> +CONFIG_USB_EHCI_HCD=y
> +CONFIG_USB_EHCI_HCD_SYNOPSYS=y
> +CONFIG_USB_OHCI_HCD=y
> +CONFIG_NOP_USB_XCEIV=y
> +CONFIG_USB_ULPI=y
> +CONFIG_USB_DUMMY_HCD=m
> +CONFIG_USB_G_SERIAL=m
> +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_TIMER=y
> +CONFIG_LEDS_TRIGGER_ONESHOT=y
> +CONFIG_LEDS_TRIGGER_HEARTBEAT=y
> +CONFIG_LEDS_TRIGGER_BACKLIGHT=y
> +CONFIG_LEDS_TRIGGER_CPU=y
> +CONFIG_LEDS_TRIGGER_GPIO=y
> +CONFIG_SWITCH=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_COMMON_CLK_VERSATILE=y
> +CONFIG_CLK_SP810=y
> +CONFIG_CLK_VEXPRESS_OSC=y
> +CONFIG_COMMON_CLK_SCPI=y
> +CONFIG_MAILBOX=y
> +CONFIG_ARM_SCPI_PROTOCOL=y
> +CONFIG_EXT4_FS=y
> +CONFIG_EXT4_FS_SECURITY=y
> +CONFIG_BTRFS_FS=y

 I don't think btrfs is needed. Perhaps as a module. Same for the other fses.

> +CONFIG_QUOTA=y
> +CONFIG_QFMT_V2=y
> +CONFIG_AUTOFS4_FS=y
> +CONFIG_MSDOS_FS=y
> +CONFIG_VFAT_FS=y
> +CONFIG_TMPFS=y
> +CONFIG_TMPFS_POSIX_ACL=y
> +CONFIG_HUGETLBFS=y
> +CONFIG_ECRYPT_FS=y
> +CONFIG_JFFS2_FS=y
> +CONFIG_JFFS2_SUMMARY=y
> +CONFIG_JFFS2_FS_XATTR=y
> +CONFIG_JFFS2_COMPRESSION_OPTIONS=y
> +CONFIG_JFFS2_LZO=y
> +CONFIG_JFFS2_RUBIN=y
> +CONFIG_CRAMFS=y
> +CONFIG_9P_FS=y
> +CONFIG_NLS_CODEPAGE_437=y
> +CONFIG_NLS_ISO8859_1=y
> +CONFIG_VIRTUALIZATION=y
> +CONFIG_KVM=y
> +CONFIG_DYNAMIC_DEBUG=y
> +CONFIG_DEBUG_INFO=y
> +CONFIG_MAGIC_SYSRQ=y
> +CONFIG_SCHEDSTATS=y
> +CONFIG_TIMER_STATS=y
> +CONFIG_FUNCTION_TRACER=y
> +CONFIG_STRICT_DEVMEM=y
> +CONFIG_SECURITY=y
> +CONFIG_SECURITY_NETWORK_XFRM=y
> +CONFIG_LSM_MMAP_MIN_ADDR=0
> +CONFIG_SECURITY_SELINUX=y
> +CONFIG_SECURITY_SELINUX_BOOTPARAM=y
> +CONFIG_SECURITY_SELINUX_DISABLE=y
> +CONFIG_SECURITY_SMACK=y
> +CONFIG_SECURITY_APPARMOR=y
> +CONFIG_DEFAULT_SECURITY_APPARMOR=y

 We don't enable any security option in all the other kernel configs...

> +CONFIG_CRYPTO_MICHAEL_MIC=y
> +CONFIG_CRC_CCITT=y
> +CONFIG_CRC_T10DIF=y
> +CONFIG_CRC_ITU_T=y
> +CONFIG_CRC7=y

 All of these definitely have no business in a defconfig.

> diff --git a/configs/snps_aarch64_vdk_defconfig b/configs/snps_aarch64_vdk_defconfig
> new file mode 100644
> index 0000000..a79b1d2
> --- /dev/null
> +++ b/configs/snps_aarch64_vdk_defconfig
> @@ -0,0 +1,14 @@
> +BR2_aarch64=y
> +BR2_KERNEL_HEADERS_3_18=y
> +BR2_TARGET_GENERIC_HOSTNAME="vdk-buildroot"
> +BR2_TARGET_GENERIC_ISSUE="Welcome to SNPS VDK by Buildroot"
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_GIT=y
> +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.linaro.org/kernel/linux-linaro-tracking.git"
> +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux-linaro-3.18-2014.12"
> +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
> +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/synopsys/vdk/linux-vdk-aarch64-defconfig"
> +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
> +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image"
> +BR2_TARGET_ROOTFS_EXT2=y

 Perhaps also select EXT2_4.


 It would also be good to add a readme file that explains how to start the
simulator. Like board/qemu/arm-vexpress/readme.txt


 Regards,
 Arnout

> +# BR2_TARGET_ROOTFS_TAR is not set
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list