board: add support for ARM Juno Development Board
PATCH RESEND v7 1/1 board: add support for ARM Juno Development Board
The Juno ARM Development Platform (ADP) is a software development platform for ARMv8-A, it includes the Juno Versatile Express board and an ARMv8-A reference software port available through Linaro.
---
Changes v6 -> v7 (Arnout Vandecappelle):
- Commit id was updated
- Custom image name was removed from buildroot' defconfig
Changes v5 -> v6 (Arnout Vandecappelle):
- replace Juno r1 for Juno (applicable to r0 and r1)
- some configs were removed from defconfig
Changes v4 -> v5:
-Added changelog to the patch
Changes v3 -> v4(Thomas Petazzoni):
-The kernel' arm64 defconfig lacks a considerable amount of configuration items regarding the Juno board, and that is the reason of this custom kernel configuration file.
-The ARM Juno needs a kernel image called Image, and that it the reason why BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM is being used. -A new readme.txt was produced.
board/arm/juno/linux-juno-defconfig | 176 ++++++++++++++++++++++++++++++++ board/arm/juno/readme.txt |76 ++++++++++++++ configs/arm_juno_defconfig|16 +++ 3 files changed, 268 insertions(+) create mode 100644 board/arm/juno/linux-juno-defconfig create mode 100644 board/arm/juno/readme.txt create mode 100644 configs/arm_juno_defconfig
board/arm/juno/linux-juno-defconfig new file +161 -0
@@ -0,0 +1,161 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_FHANDLE=y +CONFIG_AUDIT=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_KMEM=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PROFILING=y +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_PCI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HOTPLUG_PCI=y +CONFIG_NR_CPUS=6 +CONFIG_PREEMPT=y +CONFIG_KSM=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_CMA=y +CONFIG_CMDLINE="console=ttyAMA0" +CONFIG_COMPAT=y +CONFIG_CPU_IDLE=y +CONFIG_ARM_CPUIDLE=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_ARM_BIG_LITTLE_CPUFREQ=y +CONFIG_ARM_DT_BL_CPUFREQ=y +CONFIG_ARM_SCPI_CPUFREQ=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_BPF_JIT=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_XGENE=y +CONFIG_PATA_PLATFORM=y +CONFIG_PATA_OF_PLATFORM=y +CONFIG_NETDEVICES=y +CONFIG_TUN=y +CONFIG_SKY2=y +CONFIG_SMC91X=y +CONFIG_SMSC911X=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIO_AMBAKMI=y +CONFIG_LEGACY_PTY_COUNT=16 +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_SERIAL_XILINX_PS_UART=y +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_SLAVE=y +CONFIG_SPI=y +CONFIG_SPI_PL022=y +CONFIG_PTP_1588_CLOCK=m +CONFIG_GPIO_PL061=y +CONFIG_GPIO_XGENE=y +CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_VEXPRESS=m +CONFIG_DRM=y +CONFIG_DRM_I2C_NXP_TDA998X=y +CONFIG_DRM_ARM=y +CONFIG_DRM_HDLCD=y +CONFIG_DRM_VIRTUAL_HDLCD=y +CONFIG_FB_ARMCLCD=y +CONFIG_LOGO=y +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_ISP1760=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_ULPI=y +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SPI=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_EFI=y +CONFIG_RTC_DRV_PL030=y +CONFIG_RTC_DRV_PL031=y +CONFIG_DMADEVICES=y +CONFIG_PL330_DMA=y +CONFIG_COMMON_CLK_SCPI=y +CONFIG_ARM_TIMER_SP804=y +CONFIG_MAILBOX=y +CONFIG_ARM_MHU=y +CONFIG_PHY_XGENE=y +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_CUSE=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_HUGETLBFS=y +CONFIG_EFIVAR_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_DEBUG_FS=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_KERNEL=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_SECURITY=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y
board/arm/juno/readme.txt new file +74 -0
74 lines not on this page · raw message
+When finished, the board will boot and mount the root filesystem at /dev/sda1.
configs/arm_juno_defconfig new file +14 -0
@@ -0,0 +1,14 @@ +BR2_aarch64=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="4.2.2" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_TARGET_GENERIC_HOSTNAME="juno-buildroot" +BR2_TARGET_GENERIC_ISSUE="Welcome to SNPS Juno by Buildroot" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="http://git.linaro.org/landing-teams/working/arm/kernel.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="0d752ce2de3057e12e220d104beb02744147be4f" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arm/juno/linux-juno-defconfig" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno-r1"
Signature · 1 line
1.8.1.5
PATCH v5 1/1 board: add support for ARM Juno r1 Development Board
board/arm/junor1/linux-junor1-defconfig
Quoted 30 lines · Joao Pinto
The Juno r1 ARM Development Platform (ADP) is a software development platform for ARMv8-A, it includes the Juno r1 Versatile Express board and an ARMv8-A reference software port available through Linaro.
Signed-off-by Joao Pinto <[email protected]>---
Changes v4 -> v5:
-Added changelog to the patch
Changes v3 -> v4 (Thomas Petazzoni):
-The kernel' arm64 defconfig lacks a considerable amount of configuration items regarding the Juno r1 board, and that is the reason of this custom kernel configuration file.
-The ARM Juno needs a kernel image called Image, and that it the reason whyBR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOMis being used. -A new readme.txt was produced.board/arm/junor1/linux-junor1-defconfig | 176 ++++++++++++++++++++++++++++++++ board/arm/junor1/readme.txt | 76 ++++++++++++++ configs/arm_junor1_defconfig | 16 +++ 3 files changed, 268 insertions(+) create mode 100644 board/arm/junor1/linux-junor1-defconfig create mode 100644 board/arm/junor1/readme.txt create mode 100644 configs/arm_junor1_defconfigboard/arm/junor1/linux-junor1-defconfig new file +0
-0
This defconfig again contains a lot of options that I doubt are very useful. It
even enables some things that are explicitly disabled in the arm64 defconfig, e.g.
# CONFIG_UTS_NS is not set
# CONFIG_WIRELESS is not set
But it doesn't look too bad, so I'm OK with it as it is.
[snip]
Quoted 6 lines
board/arm/junor1/readme.txt new file +0
-0
board/arm/junor1/readme.txt line 8
Quoted 8 lines
board/arm/junor1/readme.txt new file +8
-0@@ -0,0 +1,76 @@ +ARM Juno r1 + +Intro +===== + +These instructions apply to all models of the ARM Juno: + - Juno r0 (does not support PCIe) + - Juno r1 (supports PCIe)
If the same binaries apply to both r0 and r1, why not call it something juno
without r1?
Quoted 15 lines
board/arm/junor1/readme.txt new file +15
-0+ +Buildroot will generate the kernel image, device tree blob and a +minimal root filesystem. + +How to build it +=============== + +Configure Buildroot +------------------- + +Configuring Buildroot is pretty simple, just execute: + + $ make arm_junor1_defconfig + +Build the rootfs, kernel and DTB
board/arm/junor1/readme.txt line 33
Quoted 10 lines
board/arm/junor1/readme.txt new file +10
-0+-------------------------------- + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + +You may now build your rootfs with: + + $ make + +(This may take a while)
I think this is a lot of text for something so simple :-)
Quoted 18 lines
board/arm/junor1/readme.txt new file +18
-0+ +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- rootfs.tar + +-- juno-r1.dtb + +-- Image + +Preparing your rootfs +====================== +Format your pen drive as a ext3 filesystem by executing: + + $ mkfs.ext3 /dev/<your device> + +Installing your rootfs
board/arm/junor1/readme.txt line 61
Quoted 10 lines
board/arm/junor1/readme.txt new file +10
-0+====================== +After mounting the pen drive please execute the following: + + $ sudo tar -xvf output/images/rootfs.tar -C <pen drive mount path> + +When completed make sure to unmount the device: + + $ umount <pen drive mount path> + +Insert the pen drive in one of the ARM Juno' USB type A connectors.
So why not just generate an ext4 image instead of this procedure?
board/arm/junor1/readme.txt line 65
Quoted 4 lines
board/arm/junor1/readme.txt new file +4
-0+ +Installing kernel image and DTB +=============================== +1. Connect to the ARM Juno UART0 and execute USB_ON in the terminal
What does this mean? I mean, if the system is running, you'd have a getty on
UART0, no?
board/arm/junor1/readme.txt line 71
Quoted 6 lines
board/arm/junor1/readme.txt new file +6
-0+2. Connect a USB cable between your PC and ARM Juno USB type B connector + A mass storage device should appear in your desktop. +3. Open the software/ folder +4. Copy the 'Image' file to software/ +5. Copy the 'juno-r1.dtb' file to software/ and rename it to r1a57a53.dtb +6. Press the red button in the front pannel of ARM Juno
Is there no way to boot directly from the pen drive instead?
Quoted 11 lines
board/arm/junor1/readme.txt new file +5
-0+ +At this time, the board will erase the Flash entry for each new item and +replace it with the lastest ones. +When finished, the board will boot and mount the root filesystem at /dev/sda1. +configs/arm_junor1_defconfig new file +0
-0
configs/arm_junor1_defconfig line 10
Quoted 10 lines
configs/arm_junor1_defconfig new file +10
-0@@ -0,0 +1,16 @@ +BR2_aarch64=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="4.2.2" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_TARGET_GENERIC_HOSTNAME="junor1-buildroot" +BR2_TARGET_GENERIC_ISSUE="Welcome to SNPS Juno r1 by Buildroot" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="http://git.linaro.org/landing-teams/working/arm/kernel.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="6917b51dee54f21816706af2278517b7af218f9a"
This is just v4.3-rc1, so you could use an upstream kernel instead of Linaro.
Are you sure you took the right sha?
configs/arm_junor1_defconfig line 16
Quoted 6 lines
configs/arm_junor1_defconfig new file +6
-0+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arm/junor1/linux-junor1-defconfig" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno-r1"
No need for a bootloader?
Regards,
Arnout
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
PATCH v5 1/1 board: add support for ARM Juno r1 Development Board
Hi,
Quoted 52 lines · Arnout Vandecappelle
board/arm/junor1/linux-junor1-defconfig
Quoted 30 lines · Joao Pinto
The Juno r1 ARM Development Platform (ADP) is a software development platform for ARMv8-A, it includes the Juno r1 Versatile Express board and an ARMv8-A reference software port available through Linaro.
Signed-off-by Joao Pinto <[email protected]>---
Changes v4 -> v5:
-Added changelog to the patch
Changes v3 -> v4 (Thomas Petazzoni):
-The kernel' arm64 defconfig lacks a considerable amount of configuration items regarding the Juno r1 board, and that is the reason of this custom kernel configuration file.
-The ARM Juno needs a kernel image called Image, and that it the reason whyBR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOMis being used. -A new readme.txt was produced.board/arm/junor1/linux-junor1-defconfig | 176 ++++++++++++++++++++++++++++++++ board/arm/junor1/readme.txt | 76 ++++++++++++++ configs/arm_junor1_defconfig | 16 +++ 3 files changed, 268 insertions(+) create mode 100644 board/arm/junor1/linux-junor1-defconfig create mode 100644 board/arm/junor1/readme.txt create mode 100644 configs/arm_junor1_defconfigboard/arm/junor1/linux-junor1-defconfig new file +0
-0This defconfig again contains a lot of options that I doubt are very useful. It
even enables some things that are explicitly disabled in the arm64 defconfig, e.g.#
CONFIG_UTS_NSis not set
#CONFIG_WIRELESSis not setBut it doesn't look too bad, so I'm OK with it as it is.
[snip]
Quoted 9 lines
board/arm/junor1/readme.txt new file +3
-0@@ -0,0 +1,76 @@ +ARM Juno r1 + +Intro
Quoted 8 lines
board/arm/junor1/readme.txt line 8
Quoted 5 lines
board/arm/junor1/readme.txt new file +5
-0+===== + +These instructions apply to all models of the ARM Juno: + - Juno r0 (does not support PCIe) + - Juno r1 (supports PCIe)If the same binaries apply to both r0 and r1, why not call it something juno
without r1?
I agree.
Quoted 68 lines
Quoted 16 lines
board/arm/junor1/readme.txt new file +15
-0+ +Buildroot will generate the kernel image, device tree blob and a +minimal root filesystem. + +How to build it +=============== + +Configure Buildroot +------------------- + +Configuring Buildroot is pretty simple, just execute: + + $ make arm_junor1_defconfig + +Build the rootfs, kernel and DTBboard/arm/junor1/readme.txt line 33
Quoted 10 lines
board/arm/junor1/readme.txt new file +10
-0+-------------------------------- + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + +You may now build your rootfs with: + + $ make + +(This may take a while)I think this is a lot of text for something so simple :-)
Quoted 18 lines
board/arm/junor1/readme.txt new file +18
-0+ +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- rootfs.tar + +-- juno-r1.dtb + +-- Image + +Preparing your rootfs +====================== +Format your pen drive as a ext3 filesystem by executing: + + $ mkfs.ext3 /dev/<your device> + +Installing your rootfsboard/arm/junor1/readme.txt line 61
Quoted 10 lines
board/arm/junor1/readme.txt new file +10
-0+====================== +After mounting the pen drive please execute the following: + + $ sudo tar -xvf output/images/rootfs.tar -C <pen drive mount path> + +When completed make sure to unmount the device: + + $ umount <pen drive mount path> + +Insert the pen drive in one of the ARM Juno' USB type A connectors.So why not just generate an ext4 image instead of this procedure?
board/arm/junor1/readme.txt line 65
Quoted 4 lines
board/arm/junor1/readme.txt new file +4
-0+ +Installing kernel image and DTB +=============================== +1. Connect to the ARM Juno UART0 and execute USB_ON in the terminalWhat does this mean? I mean, if the system is running, you'd have a getty on
UART0, no?
Quoted 8 lines
board/arm/junor1/readme.txt line 71
Quoted 6 lines
board/arm/junor1/readme.txt new file +6
-0+2. Connect a USB cable between your PC and ARM Juno USB type B connector + A mass storage device should appear in your desktop. +3. Open the software/ folder +4. Copy the 'Image' file to software/ +5. Copy the 'juno-r1.dtb' file to software/ and rename it to r1a57a53.dtb +6. Press the red button in the front pannel of ARM JunoIs there no way to boot directly from the pen drive instead?
The procedure I describe here is the board' default and it is the one that we use here at Synopsys. It is possible that other methods can be used.
Quoted 17 lines
Quoted 17 lines
board/arm/junor1/readme.txt new file +5
-0+ +At this time, the board will erase the Flash entry for each new item and +replace it with the lastest ones. +When finished, the board will boot and mount the root filesystem at /dev/sda1. +configs/arm_junor1_defconfig new file +5
-0@@ -0,0 +1,16 @@ +BR2_aarch64=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="4.2.2" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_TARGET_GENERIC_HOSTNAME="junor1-buildroot"
Quoted 8 lines
configs/arm_junor1_defconfig line 10
Quoted 5 lines
configs/arm_junor1_defconfig new file +5
-0+BR2_TARGET_GENERIC_ISSUE="Welcome to SNPS Juno r1 by Buildroot" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="http://git.linaro.org/landing-teams/working/arm/kernel.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="6917b51dee54f21816706af2278517b7af218f9a"This is just v4.3-rc1, so you could use an upstream kernel instead of Linaro.
Are you sure you took the right sha?
The Juno board was recently added to linux mainline (v4.2 I think) but the total support is still in Linaro. Take as an example the video output support, sound and pcie. The git commid id I configured is one of the latest, assuring that we have the maximum of stable functionalities as possible. The stable tags lack crucial features.
Quoted 9 lines
configs/arm_junor1_defconfig line 16
Quoted 7 lines
configs/arm_junor1_defconfig new file +6
-0+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arm/junor1/linux-junor1-defconfig" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno-r1"No need for a bootloader?
The board uses EDK2, which comes already built with the board.
If a developer needs to build a custom package it should get teh edk2 package a built it.
Quoted 6 lines
Regards,
Arnout
Thanks,
Joao
PATCH v5 1/1 board: add support for ARM Juno r1 Development Board
Quoted 5 lines · Joao Pinto
Hi,
Quoted 1 line · Arnout Vandecappelle
On 22-10-15 18:17, Joao Pinto wrote:
[snip]
Quoted 8 lines
Quoted 7 lines
configs/arm_juno_defconfig
Quoted 4 lines
configs/arm_juno_defconfig new file +4
-0+BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="http://git.linaro.org/landing-teams/working/arm/kernel.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="6917b51dee54f21816706af2278517b7af218f9a"This is just v4.3-rc1, so you could use an upstream kernel instead of Linaro.
Are you sure you took the right sha?
Quoted 5 lines
The Juno board was recently added to linux mainline (v4.2 I think) but the total support is still in Linaro. Take as an example the video output support, sound and pcie. The git commid id I configured is one of the latest, assuring that we have the maximum of stable functionalities as possible. The stable tags lack crucial features.
The commit Id you selected _is_ v4.3-rc1, or actually, the commit just before
v4.3-rc1:
$ git describe --contains 6917b51dee54f21816706af2278517b7af218f9a v4.3-rc1~1
$ git log -1 --pretty=format:'%H%n%s' v4.3-rc1^ 6917b51dee54f21816706af2278517b7af218f9a Merge tag 'cris-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris
So I think you picked the wrong commit sha.
Quoted 11 lines
Quoted 10 lines
configs/arm_juno_defconfig line 14
Quoted 8 lines
configs/arm_juno_defconfig new file +6
-0+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arm/junor1/linux-junor1-defconfig" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno-r1"No need for a bootloader?
Quoted 3 lines
The board uses EDK2, which comes already built with the board.
If a developer needs to build a custom package it should get teh edk2 package a built it.
It would be nice if you could add it, but that's not a prerequisite for getting
this defconfig in. Note that edk2 should go under boot/, not package/
Regards,
Arnout
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
PATCH v7 1/1 board: add support for ARM Juno Development Board
In reply to Joao PintoJoao,
Quoted 5 lines · Joao Pinto
The Juno ARM Development Platform (ADP) is a software development platform for ARMv8-A, it includes the Juno Versatile Express board and an ARMv8-A reference software port available through Linaro.
Signed-off-by Joao Pinto <[email protected]>
There is something weird with your posting: this PATCH v7 e-mail has the exact same Message-Id as your PATCH v5 (for the same topic). This breaks threading.
Did you do something special to re-use the same Message-Id ?
If your intent was to make this PATCH v7 e-mail appear as a reply to the PATCH v5 one, you should have used git send-e-amil --in-reply-to=<message-id-of-PATCHv5>.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH RESEND v7 1/1 board: add support for ARM Juno Development Board
Hi Liviu,
Thanks for your comments. We had 7 iterations for the patch to achieve the desired kernel defconfig and buildroot defconfig.
I tested this configuration in Juno r1 only. Maybe we should change the descriptions and support Juno r1 only for now? What's your opinion?
Joao
Quoted 328 lines · Liviu.Dudau at arm.com
Quoted 5 lines · Joao Pinto
The Juno ARM Development Platform (ADP) is a software development platform for ARMv8-A, it includes the Juno Versatile Express board and an ARMv8-A reference software port available through Linaro.
Signed-off-by Joao Pinto <[email protected]>Hi Joao,
Thanks for Cc-ing me on this patch, it is the first version I'm seeing even if it seem to have reached v7.
I'm guessing you have tested this patch on a Juno r1 only because ...
Quoted 7 lines
---
Changes v6 -> v7 (Arnout Vandecappelle):
- Commit id was updated
- Custom image name was removed from buildroot' defconfig
Changes v5 -> v6 (Arnout Vandecappelle):
- replace Juno r1 for Juno (applicable to r0 and r1)... there is no way for Juno r0 to work with juno-r1.dtb. There are a couple of issues on r0 that will freeze the kernel boot if you attempt to use juno-r1.dtb (architected timers and PCIe), so please, don't skip on this. If it were possible to use the same dtb on both boards, believe me, we would've done that in the kernel in the first place.
I don't know how hard it is to implement this in buildroot, but the Linaro u-boot can be configured in such a way that you can copy both the juno.dtb and the r1a57a53.dtb files in the SOFTWARE directory and the board setup will pick up the correct one to flash.
Best regards,
LiviuQuoted 291 lines
- some configs were removed from defconfig
Changes v4 -> v5:
-Added changelog to the patch
Changes v3 -> v4(Thomas Petazzoni):
-The kernel' arm64 defconfig lacks a considerable amount of configuration items regarding the Juno board, and that is the reason of this custom kernel configuration file.
-The ARM Juno needs a kernel image called Image, and that it the reason whyBR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOMis being used. -A new readme.txt was produced.board/arm/juno/linux-juno-defconfig | 176 ++++++++++++++++++++++++++++++++ board/arm/juno/readme.txt |76 ++++++++++++++ configs/arm_juno_defconfig|16 +++ 3 files changed, 268 insertions(+) create mode 100644 board/arm/juno/linux-juno-defconfig create mode 100644 board/arm/juno/readme.txt create mode 100644 configs/arm_juno_defconfigboard/arm/juno/linux-juno-defconfig new file +162
-0@@ -0,0 +1,161 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_FHANDLE=y +CONFIG_AUDIT=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_KMEM=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PROFILING=y +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_PCI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HOTPLUG_PCI=y +CONFIG_NR_CPUS=6 +CONFIG_PREEMPT=y +CONFIG_KSM=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_CMA=y +CONFIG_CMDLINE="console=ttyAMA0" +CONFIG_COMPAT=y +CONFIG_CPU_IDLE=y +CONFIG_ARM_CPUIDLE=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_ARM_BIG_LITTLE_CPUFREQ=y +CONFIG_ARM_DT_BL_CPUFREQ=y +CONFIG_ARM_SCPI_CPUFREQ=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_BPF_JIT=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_XGENE=y +CONFIG_PATA_PLATFORM=y +CONFIG_PATA_OF_PLATFORM=y +CONFIG_NETDEVICES=y +CONFIG_TUN=y +CONFIG_SKY2=y +CONFIG_SMC91X=y +CONFIG_SMSC911X=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIO_AMBAKMI=y +CONFIG_LEGACY_PTY_COUNT=16 +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_SERIAL_XILINX_PS_UART=y +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_SLAVE=y +CONFIG_SPI=y +CONFIG_SPI_PL022=y +CONFIG_PTP_1588_CLOCK=m +CONFIG_GPIO_PL061=y +CONFIG_GPIO_XGENE=y +CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_VEXPRESS=m +CONFIG_DRM=y +CONFIG_DRM_I2C_NXP_TDA998X=y +CONFIG_DRM_ARM=y +CONFIG_DRM_HDLCD=y +CONFIG_DRM_VIRTUAL_HDLCD=y +CONFIG_FB_ARMCLCD=y +CONFIG_LOGO=y +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_ISP1760=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_ULPI=y +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SPI=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_EFI=y +CONFIG_RTC_DRV_PL030=y +CONFIG_RTC_DRV_PL031=y +CONFIG_DMADEVICES=y +CONFIG_PL330_DMA=y +CONFIG_COMMON_CLK_SCPI=y +CONFIG_ARM_TIMER_SP804=y +CONFIG_MAILBOX=y +CONFIG_ARM_MHU=y +CONFIG_PHY_XGENE=y +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_CUSE=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_HUGETLBFS=y +CONFIG_EFIVAR_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_DEBUG_FS=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_KERNEL=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_SECURITY=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=yboard/arm/juno/readme.txt new file +75
-0@@ -0,0 +1,74 @@ +ARM Juno r1 + +Intro +===== + +These instructions apply to all models of the ARM Juno: + - Juno r0 (does not support PCIe) + - Juno r1 (supports PCIe) + +Buildroot will generate the kernel image, device tree blob and a +minimal root filesystem. + +How to build it +=============== + +Configure Buildroot +------------------- + +Configuring Buildroot is pretty simple, just execute: + + $ make arm_juno_defconfig + +Build the rootfs, kernel and DTB +-------------------------------- + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + +You may now build your rootfs with: + + $ make + +(This may take a while) + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- rootfs.tar + +-- juno-r1.dtb (also valid for r0) + +-- Image + +Preparing your rootfs +====================== +Format your pen drive as a ext3 filesystem by executing: + + $ mkfs.ext3 /dev/<your device> + +Installing your rootfs +====================== +After mounting the pen drive please execute the following: + + $ sudo tar -xvf output/images/rootfs.tar -C <pen drive mount path> + +When completed make sure to unmount the device: + + $ umount <pen drive mount path> + +Insert the pen drive in one of the ARM Juno' USB type A connectors. + +Installing kernel image and DTB +=============================== +1. Connect to the ARM Juno UART0 and execute USB_ON in the terminal +2. Connect a USB cable between your PC and ARM Juno USB type B connector + A mass storage device should appear in your desktop. +3. Open the software/ folder +4. Copy the 'Image' file to software/ +5. Copy the 'juno-r1.dtb' file to software/ and rename it to r1a57a53.dtb +6. Press the red button in the front pannel of ARM Juno + +At this time, the board will erase the Flash entry for each new item and +replace it with the lastest ones. +When finished, the board will boot and mount the root filesystem at /dev/sda1.configs/arm_juno_defconfig new file +14
-0@@ -0,0 +1,14 @@ +BR2_aarch64=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="4.2.2" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_TARGET_GENERIC_HOSTNAME="juno-buildroot" +BR2_TARGET_GENERIC_ISSUE="Welcome to SNPS Juno by Buildroot" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="http://git.linaro.org/landing-teams/working/arm/kernel.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="0d752ce2de3057e12e220d104beb02744147be4f" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arm/juno/linux-juno-defconfig" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno-r1"Signature · 1 line
1.8.1.5