Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v8] board: add support for ARM Juno r0 and r1 Development Boards
@ 2016-02-03 18:18 Joao Pinto
  2016-02-03 23:07 ` [Buildroot] [PATCH v9] " Thomas Petazzoni
  0 siblings, 1 reply; 3+ messages in thread
From: Joao Pinto @ 2016-02-03 18:18 UTC (permalink / raw)
  To: buildroot

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 <jpinto@synopsys.com>
---
Changes v6 -> v8 (Liviu Dudau):
 - Add support for Juno r0
 - Documentation updated with boot parameter configuration
 - Created a buildroot defconfig for each Juno model
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 | 161 ++++++++++++++++++++++++++++++++++++
 board/arm/juno/readme.txt           |  99 ++++++++++++++++++++++
 configs/arm_juno_r0_defconfig       |  14 ++++
 configs/arm_juno_r1_defconfig       |  14 ++++
 4 files changed, 288 insertions(+)
 create mode 100644 board/arm/juno/linux-juno-defconfig
 create mode 100644 board/arm/juno/readme.txt
 create mode 100644 configs/arm_juno_r0_defconfig
 create mode 100644 configs/arm_juno_r1_defconfig

diff --git a/board/arm/juno/linux-juno-defconfig b/board/arm/juno/linux-juno-defconfig
new file mode 100644
index 0000000..873c7fb
--- /dev/null
+++ b/board/arm/juno/linux-juno-defconfig
@@ -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
diff --git a/board/arm/juno/readme.txt b/board/arm/juno/readme.txt
new file mode 100644
index 0000000..fe6c06c
--- /dev/null
+++ b/board/arm/juno/readme.txt
@@ -0,0 +1,99 @@
+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_r0_defconfig (if Juno r0)
+  $ make arm_juno_r1_defconfig (if Juno r1)
+
+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 (or juno.dtb if 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.
+
+Configure *.dtb in the boot configuration for Juno r0
+=====================================================
+SITE1/HBI0262B/images.txt
+.....
+NOR3UPDATE: AUTO                 ;Image Update:NONE/AUTO/FORCE
+NOR3ADDRESS: 0x00C00000          ;Image Flash Address
+NOR3FILE: \SOFTWARE\juno.dtb     ;Image File Name
+NOR3NAME: board.dtb              ;Specify Image name to preserve file extension
+NOR3LOAD: 00000000               ;Image Load Address
+NOR3ENTRY: 00000000              ;Image Entry Point
+......
+
+Configure *.dtb in the boot configuration for Juno r1
+=====================================================
+SITE1/HBI0262C/images.txt
+......
+NOR3UPDATE: AUTO                 ;Image Update:NONE/AUTO/FORCE
+NOR3ADDRESS: 0x00C00000          ;Image Flash Address
+NOR3FILE: \SOFTWARE\juno-r1.dtb  ;Image File Name
+NOR3NAME: board.dtb              ;Specify target filename to preserve file extension
+NOR3LOAD: 00000000               ;Image Load Address
+NOR3ENTRY: 00000000              ;Image Entry Point
+......
+
+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' (r1) or the 'juno.dtb' (r0) file to software/
+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.
diff --git a/configs/arm_juno_r0_defconfig b/configs/arm_juno_r0_defconfig
new file mode 100644
index 0000000..94cfe32
--- /dev/null
+++ b/configs/arm_juno_r0_defconfig
@@ -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"
diff --git a/configs/arm_juno_r1_defconfig b/configs/arm_juno_r1_defconfig
new file mode 100644
index 0000000..5094ee7
--- /dev/null
+++ b/configs/arm_juno_r1_defconfig
@@ -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"
-- 
1.8.1.5

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH v9] board: add support for ARM Juno r0 and r1 Development Boards
  2016-02-03 18:18 [Buildroot] [PATCH v8] board: add support for ARM Juno r0 and r1 Development Boards Joao Pinto
@ 2016-02-03 23:07 ` Thomas Petazzoni
  2016-02-04 11:15   ` Joao Pinto
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni @ 2016-02-03 23:07 UTC (permalink / raw)
  To: buildroot

Joao,

On Wed,  3 Feb 2016 18:20:30 +0000, Joao Pinto wrote:
> 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 <jpinto@synopsys.com>

I am not sure why your v9 does not appear in patchwork, but v8 does.
Anyway, this is still not good, because the kernel commit your
defconfig uses no longer exists in the Linaro Git repository, so the
download fails:

>>> linux 0d752ce2de3057e12e220d104beb02744147be4f Downloading
Doing full clone
Cloning into bare repository 'linux-0d752ce2de3057e12e220d104beb02744147be4f'...
fatal: not a tree object

It works for you because you have the tarball'ed kernel in your
$(BR2_DL_DIR), but it won't work for anyone else.

You should make sure to use a commit in a branch that the Linaro
developers will not rebase, otherwise the commit will disappear in the
future.

Also, another problem of your submission is that you're adding two
defconfigs, while there's no reason to do so. The only difference
between the two is the Device Tree to be built. And we can perfectly
build two Device Trees in a single defconfig.

So could you apply the attached patch on top of yours (which addresses
this problem), and squash it with your commit ?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-configs-merge-ARM-Juno-configs.patch
Type: text/x-patch
Size: 3505 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160204/c655172c/attachment-0001.bin>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH v9] board: add support for ARM Juno r0 and r1 Development Boards
  2016-02-03 23:07 ` [Buildroot] [PATCH v9] " Thomas Petazzoni
@ 2016-02-04 11:15   ` Joao Pinto
  0 siblings, 0 replies; 3+ messages in thread
From: Joao Pinto @ 2016-02-04 11:15 UTC (permalink / raw)
  To: buildroot


Hi Thomas,

I will check it and send a v10 today. Thanks for the buildroot' defconfig tip.

Joao

On 2/3/2016 11:07 PM, Thomas Petazzoni wrote:
> Joao,
> 
> On Wed,  3 Feb 2016 18:20:30 +0000, Joao Pinto wrote:
>> 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 <jpinto@synopsys.com>
> 
> I am not sure why your v9 does not appear in patchwork, but v8 does.
> Anyway, this is still not good, because the kernel commit your
> defconfig uses no longer exists in the Linaro Git repository, so the
> download fails:
> 
>>>> linux 0d752ce2de3057e12e220d104beb02744147be4f Downloading
> Doing full clone
> Cloning into bare repository 'linux-0d752ce2de3057e12e220d104beb02744147be4f'...
> fatal: not a tree object
> 
> It works for you because you have the tarball'ed kernel in your
> $(BR2_DL_DIR), but it won't work for anyone else.
> 
> You should make sure to use a commit in a branch that the Linaro
> developers will not rebase, otherwise the commit will disappear in the
> future.
> 
> Also, another problem of your submission is that you're adding two
> defconfigs, while there's no reason to do so. The only difference
> between the two is the Device Tree to be built. And we can perfectly
> build two Device Trees in a single defconfig.
> 
> So could you apply the attached patch on top of yours (which addresses
> this problem), and squash it with your commit ?
> 
> Thanks!
> 
> Thomas
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-02-04 11:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-03 18:18 [Buildroot] [PATCH v8] board: add support for ARM Juno r0 and r1 Development Boards Joao Pinto
2016-02-03 23:07 ` [Buildroot] [PATCH v9] " Thomas Petazzoni
2016-02-04 11:15   ` Joao Pinto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox