Skip to contentSkip to conversation

board: add support for ARM Juno Development Board

PATCH RESEND Superseded Joao Pinto 3 participants 6 messages Oct 22, 2015 – Feb 1, 2016 1 message not in the archive

v7 of 10 Superseded Latest is v10 →

lore
Share & tools
lore

Joao Pinto

author
#0 lore raw

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
new file mode 100644
index 0000000..b216d3e
@@ -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
new file mode 100644
index 0000000..3987293
@@ -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
#1 lore raw

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.

---

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 why BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM is 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_defconfig
board/arm/junor1/linux-junor1-defconfig new file +0 -0
new file mode 100644
index 0000000..b216d3e

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
new file mode 100644
index 0000000..2b3ebf5

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
new file mode 100644
index 0000000..3987293

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
author
#2 lore raw

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.

---

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 why BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM is 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_defconfig
board/arm/junor1/linux-junor1-defconfig new file +0 -0
new file mode 100644
index 0000000..b216d3e

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 9 lines
board/arm/junor1/readme.txt new file +3 -0
new file mode 100644
index 0000000..2b3ebf5
@@ -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 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?

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 Juno

Is 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
new file mode 100644
index 0000000..3987293
@@ -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

#3 lore raw

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
#4 lore raw

PATCH v7 1/1 board: add support for ARM Juno Development Board

In reply to Joao Pinto

Joao,

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.

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]

author
#6 lore raw

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.

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,
Liviu

Quoted 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 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 +162 -0
new file mode 100644
index 0000000..b216d3e
@@ -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 +75 -0
new file mode 100644
index 0000000..2b3ebf5
@@ -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
new file mode 100644
index 0000000..3987293
@@ -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