Skip to contentSkip to conversation

board: add support for Synopsys VDK Software Development Platform

PATCH Superseded Joao Pinto 4 participants 6 messages Oct 12, 2015 – Oct 22, 2015

v4 of 6 Superseded Latest is v6 →

lore
Share & tools
lore

Joao Pinto

author
#0 lore raw

PATCH v4 1/1 board: add support for Synopsys VDK Software Development Platform

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.

Remark: 'Image' boot argument was removed.

---
 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
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +226 -0
new file mode 100644
index 0000000..f90f2ca
@@ -0,0 +1,226 @@
+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
+CONFIG_BINFMT_MISC=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=y
+CONFIG_ARM_DT_BL_CPUFREQ=y
+CONFIG_ARM_SPCI_CPUFREQ=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=y
+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_NETFILTER=y
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_NAT_IPV4=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_NF_NAT_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE=m
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_VEXPRESS_CONFIG=y
+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
+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
+CONFIG_VIRTIO_BLK=y
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_MD=y
+CONFIG_BLK_DEV_DM=y
+CONFIG_NETDEVICES=y
+CONFIG_TUN=y
+CONFIG_VIRTIO_NET=y
+CONFIG_SMC91X=y
+CONFIG_SMSC911X=y
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_DEBUG_FS=y
+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
+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_SENSORS_JC42=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_FB=y
+CONFIG_FB_ARMCLCD=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_LOGO=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_SYNOPSYS=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_DWC3=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_ULPI=y
+CONFIG_USB_GADGET=m
+CONFIG_USB_DUMMY_HCD=m
+CONFIG_USB_MASS_STORAGE=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_EXT2_FS=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_BTRFS_FS=y
+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_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=m
+CONFIG_9P_FS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_PRINTK_TIME=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
+CONFIG_CRYPTO_MICHAEL_MIC=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC7=y
configs/snps_aarch64_vdk_defconfig new file +14 -0
new file mode 100644
index 0000000..a79b1d2
@@ -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
+# BR2_TARGET_ROOTFS_TAR is not set
Signature · 1 line
1.8.1.5
#1 lore raw

PATCH v4 1/1 board: add support for Synopsys VDK Software Development Platform

Joao, All,

On 2015-10-12 10:34 +0100, Joao Pinto spake thusly:

Quoted 6 lines

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.

Remark: 'Image' boot argument was removed.

That last line does not belong to the commit log. I nstead, it should be part of the 'changelog' of the patch.

Such a changelog is written after a three-dash line, like so:

title: brief explanation of the patch

Body of the commitlog, with more
in-depth explanations of what it
is doing.

---
Changes v3 -> v4:
- drop 'Image' boot option (Thomas)

Changes v2 -> v3:
- "some thing changed" (Someone)

and so on...

This way, when a maintainer applies your patch, only what is above the three-dash line is kept in the git tree. Whatever is after the three-dash line gets removed.

The changlog (after the ---) is there to help reviewers see how the patch has evolved, and adapt their reviews accordingly, with the first name of the reviewer between ().

Quoted 14 lines
---
 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
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +0 -0
new file mode 100644
index 0000000..f90f2ca

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 5

Quoted 5 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +5 -0
@@ -0,0 +1,226 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BSD_PROCESS_ACCT=y

This is not a minimal defconfig. I doubt BSD process acounting is required to have Linux run successfully on the VDK, is it?

Similarly, options that are not strictly required should not be enabled. For example, having netfilter enabled is probably not needed either. Same goes for a lot of the other options.

We are trying to get the minimalist kernel option that just makes the board boot, with the meaningfull driver to suport the hardware (ethernet, WiFi, MMC, whatever HW is present...) but not much more.

Having IPv4 (maybe v6) is meaningfull, but having bridge, netfilter or ebtables, TUN, SCSI, MD and so on is probably not. Also, if you're using virtio-net to do networking, then an ethernet driver is probably not required...

Similarly, if the rootfs is ext2, then you don;t need the other filesystems. Maybe you can disable ext2 and ext3 support, enable ext4 and use it for ext2/3 (CONFIG_EXT4_USE_FOR_EXT2).

9p and 9p-virtio are probably not required either, but having them for virtio-mounting from the host kinda makes sense...

I know you've already done a few rounds on that patch, but could you 'cleanup' that defconfig as I explained above?

[--SNIP--]

Quoted 10 lines
configs/snps_aarch64_vdk_defconfig new file +4 -0
new file mode 100644
index 0000000..a79b1d2
@@ -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"

configs/snps_aarch64_vdk_defconfig line 14

Quoted 10 lines
configs/snps_aarch64_vdk_defconfig new file +10 -0
+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
+# BR2_TARGET_ROOTFS_TAR is not set

Otherwise, this defconfig looks OK! :-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
author
#2 lore raw

PATCH v4 1/1 board: add support for Synopsys VDK Software Development Platform

Good morning,

Quoted 32 lines · Yann E. MORIN

Joao, All,

On 2015-10-12 10:34 +0100, Joao Pinto spake thusly:

Quoted 6 lines

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.

Remark: 'Image' boot argument was removed.

That last line does not belong to the commit log. I nstead, it should be part of the 'changelog' of the patch.

Such a changelog is written after a three-dash line, like so:

title: brief explanation of the patch

Body of the commitlog, with more
in-depth explanations of what it
is doing.

---
Changes v3 -> v4:
- drop 'Image' boot option (Thomas)

Changes v2 -> v3:
- "some thing changed" (Someone)

and so on...

Quoted 8 lines

This way, when a maintainer applies your patch, only what is above the three-dash line is kept in the git tree. Whatever is after the three-dash line gets removed.

The changlog (after the ---) is there to help reviewers see how the patch has evolved, and adapt their reviews accordingly, with the first name of the reviewer between ().

Thanks for the info. I will do that!

Quoted 40 lines
Quoted 14 lines
---
 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
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +0 -0
new file mode 100644
index 0000000..f90f2ca

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 5

Quoted 5 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +5 -0
@@ -0,0 +1,226 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BSD_PROCESS_ACCT=y

This is not a minimal defconfig. I doubt BSD process acounting is required to have Linux run successfully on the VDK, is it?

Similarly, options that are not strictly required should not be enabled. For example, having netfilter enabled is probably not needed either. Same goes for a lot of the other options.

We are trying to get the minimalist kernel option that just makes the board boot, with the meaningfull driver to suport the hardware (ethernet, WiFi, MMC, whatever HW is present...) but not much more.

Having IPv4 (maybe v6) is meaningfull, but having bridge, netfilter or ebtables, TUN, SCSI, MD and so on is probably not. Also, if you're using virtio-net to do networking, then an ethernet driver is probably not required...

Similarly, if the rootfs is ext2, then you don;t need the other filesystems. Maybe you can disable ext2 and ext3 support, enable ext4 and use it for ext2/3 (CONFIG_EXT4_USE_FOR_EXT2).

Quoted 5 lines

9p and 9p-virtio are probably not required either, but having them for virtio-mounting from the host kinda makes sense...

I know you've already done a few rounds on that patch, but could you 'cleanup' that defconfig as I explained above?

No problem! The idea is to achieve the perfect patch! Thank you for your tips!

Quoted 25 lines

[--SNIP--]

Quoted 10 lines
configs/snps_aarch64_vdk_defconfig new file +4 -0
new file mode 100644
index 0000000..a79b1d2
@@ -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"

configs/snps_aarch64_vdk_defconfig line 14

Quoted 10 lines
configs/snps_aarch64_vdk_defconfig new file +10 -0
+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
+# BR2_TARGET_ROOTFS_TAR is not set

Otherwise, this defconfig looks OK! :-)

Quoted 3 lines

Regards,
Yann E. MORIN.

I will send a new patch! Thanks a lot for the review!

Joao

#3 lore raw

PATCH v5 1/1 board: add support for Synopsys VDK Software Development Platform

In reply to Joao Pinto
Quoted 1 line · Joao Pinto

title: Add support for Synopsys VDK Software Development Platform

No need to repeat what is already in the subject.

Quoted 5 lines

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?

Quoted 38 lines

---
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
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +16 -0
new file mode 100644
index 0000000..f90f2ca
@@ -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

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 26

Quoted 10 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +10 -0
+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...

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 31

Quoted 5 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +5 -0
+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?

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 32

Quoted 1 line
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +1 -0
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=y

Does VDK support big.LITTLE?

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 38

Quoted 6 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +6 -0
+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?

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 80

Quoted 11 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +11 -0
+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?

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 85

Quoted 5 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +5 -0
+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?

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 93

Quoted 8 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +8 -0
+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?

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 99

Quoted 6 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +6 -0
+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?

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 110

Quoted 8 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +8 -0
+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?

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 111

Quoted 1 line
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +1 -0
+CONFIG_STMMAC_DEBUG_FS=y

Is this needed?

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 120

Quoted 9 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +9 -0
+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?

Quoted 37 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +37 -0
+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

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 178

Quoted 10 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +10 -0
+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.

Quoted 27 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +27 -0
+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

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 221

Quoted 10 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +10 -0
+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...

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 226

Quoted 5 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +5 -0
+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.

Quoted 9 lines
configs/snps_aarch64_vdk_defconfig new file +3 -0
new file mode 100644
index 0000000..a79b1d2
@@ -0,0 +1,14 @@
+BR2_aarch64=y
+BR2_KERNEL_HEADERS_3_18=y
+BR2_TARGET_GENERIC_HOSTNAME="vdk-buildroot"

configs/snps_aarch64_vdk_defconfig line 13

Quoted 10 lines
configs/snps_aarch64_vdk_defconfig new file +10 -0
+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

Quoted 2 lines
configs/snps_aarch64_vdk_defconfig new file +1 -0
+# BR2_TARGET_ROOTFS_TAR is not set
Signature · 6 lines
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
#4 lore raw

PATCH v5 1/1 board: add support for Synopsys VDK Software Development Platform

Arnout,

Quoted 11 lines · Arnout Vandecappelle

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 120

Quoted 9 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +9 -0
+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?

Yes, originally. But OF is now used more or less as a synonym for "Device Tree", i.e all the kernel functions to parse the Device Tree are prefixed with of_*().

If you don't have CONFIG_SERIAL_OF_PLATFORM=y and your hardware is described by a Device Tree, then your 8250 serial driver will not probe.

However, what is a bit weird is to enable both the 8250 driver and the pl011 driver.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
author
#5 lore raw

PATCH v5 1/1 board: add support for Synopsys VDK Software Development Platform

In reply to Arnout Vandecappelle

Hi Arnout,

Quoted 6 lines · Arnout Vandecappelle
Quoted 1 line · Joao Pinto

title: Add support for Synopsys VDK Software Development Platform

No need to repeat what is already in the subject.

Quoted 1 line
Quoted 6 lines
Quoted 4 lines

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?

You're right, VDK is a Synopsys non-free tool.

Quoted 44 lines
Quoted 44 lines

---
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
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +21 -0
new file mode 100644
index 0000000..f90f2ca
@@ -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
Quoted 8 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 26

Quoted 5 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +5 -0
+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...

For the VDK environment we have two ways, this one or to set the bootargs in the device tree, but in my opinion this option is more clean.

Quoted 9 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 31

Quoted 7 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +5 -0
+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?

VDK is an emulation of an ARMv8, so we try to include as features as possible. So I would recommend to keep this options.

Quoted 4 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 32

Quoted 2 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +1 -0
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=y

Does VDK support big.LITTLE?

Same as before.

Quoted 10 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 38

Quoted 7 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +6 -0
+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?

Quoted 13 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 80

Quoted 11 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +11 -0
+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?

This one can be removed.

Quoted 8 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 85

Quoted 6 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +5 -0
+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?

Synopsys VDK runs a foundation model of ARMv8 and according to the tool' team, the "Versatile Express" should be activated.

Quoted 11 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 93

Quoted 9 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +8 -0
+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?

Yes, the MTD package can be removed.

Quoted 9 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 99

Quoted 7 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +6 -0
+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?

The MTD module, as previously stated, can be removed.
I think CONFIG_BLK_DEV_NBD, CONFIG_OF_SELFTEST can be removed.
The CONFIG_BLK_DEV_* are useful when VDK is used as part of the Synopsys Hybrid Prototyping Kits.

Quoted 11 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 110

Quoted 9 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +8 -0
+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?

I think CONFIG_SMC91X and CONFIG_SMSC911X can be removed.

Quoted 5 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 111

Quoted 2 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +1 -0
+CONFIG_STMMAC_DEBUG_FS=y

Is this needed?

I think CONFIG_STMMAC_DEBUG_FS can be removed.

Quoted 53 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 120

Quoted 9 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +9 -0
+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?

Quoted 41 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +41 -0
+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
Quoted 8 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 178

Quoted 6 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +6 -0
+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.

Yep, we can put them as modules.

Quoted 32 lines
Quoted 32 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +31 -0
+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
Quoted 8 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 221

Quoted 6 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +6 -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...

This is not a critical issue, we can remove the security packages.

Quoted 8 lines

board/synopsys/vdk/linux-vdk-aarch64-defconfig line 226

Quoted 6 lines
board/synopsys/vdk/linux-vdk-aarch64-defconfig new file +5 -0
+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.

You're right is can be removed.

Quoted 24 lines
Quoted 10 lines
configs/snps_aarch64_vdk_defconfig new file +3 -0
new file mode 100644
index 0000000..a79b1d2
@@ -0,0 +1,14 @@
+BR2_aarch64=y
+BR2_KERNEL_HEADERS_3_18=y
+BR2_TARGET_GENERIC_HOSTNAME="vdk-buildroot"

configs/snps_aarch64_vdk_defconfig line 13

Quoted 10 lines
configs/snps_aarch64_vdk_defconfig new file +10 -0
+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.

Quoted 2 lines

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

Sure, I will include one.

Quoted 9 lines

Regards,
Arnout

Quoted 2 lines
configs/snps_aarch64_vdk_defconfig new file +1 -0
+# BR2_TARGET_ROOTFS_TAR is not set

Based on your comments I will make a new patch to support VDK.

Thanks,

-Joao