All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joao Pinto <Joao.Pinto@synopsys.com>
To: buildroot@busybox.net
Subject: [Buildroot] [RESEND] [PATCH v7] board: add support for ARM Juno Development Board
Date: Mon, 1 Feb 2016 12:24:22 +0000	[thread overview]
Message-ID: <56AF4E76.3060404@synopsys.com> (raw)
In-Reply-To: <20160201122047.GR1194@e106497-lin.cambridge.arm.com>

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


On 2/1/2016 12:20 PM, Liviu.Dudau at arm.com wrote:
> On Mon, Feb 01, 2016 at 11:55:07AM +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>
> 
> 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 ...
> 
>> ---
>>
>> 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
> 
>>  - 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
>>
>> diff --git a/board/arm/juno/linux-juno-defconfig b/board/arm/juno/linux-juno-defconfig
>> new file mode 100644
>> index 0000000..b216d3e
>> --- /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
>> +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y
>> diff --git a/board/arm/juno/readme.txt b/board/arm/juno/readme.txt
>> new file mode 100644
>> index 0000000..2b3ebf5
>> --- /dev/null
>> +++ b/board/arm/juno/readme.txt
>> @@ -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.
>> diff --git a/configs/arm_juno_defconfig b/configs/arm_juno_defconfig
>> new file mode 100644
>> index 0000000..3987293
>> --- /dev/null
>> +++ b/configs/arm_juno_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
>>
> 

      parent reply	other threads:[~2016-02-01 12:24 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-01 11:55 [Buildroot] [RESEND] [PATCH v7] board: add support for ARM Juno Development Board Joao Pinto
2015-10-22 20:20 ` [Buildroot] [PATCH v5] board: add support for ARM Juno r1 " Arnout Vandecappelle
2015-10-23  9:10   ` Joao Pinto
2015-10-28 21:29     ` Arnout Vandecappelle
2015-12-16 20:22 ` [Buildroot] [PATCH v7] board: add support for ARM Juno " Thomas Petazzoni
     [not found] ` <20160201122047.GR1194@e106497-lin.cambridge.arm.com>
2016-02-01 12:24   ` Joao Pinto [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56AF4E76.3060404@synopsys.com \
    --to=joao.pinto@synopsys.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.