All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [V4 0/2] A20-OLinuXino-Lime: new board
@ 2015-06-26 10:06 Francois Perrad
  2015-06-26 10:06 ` [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline) Francois Perrad
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Francois Perrad @ 2015-06-26 10:06 UTC (permalink / raw)
  To: buildroot

This set adds the board A20-OLinuXino-Lime, with 2 flavors:
    - kernel mainline
    - linux-sunxi (3.4.x)

Changes V3 -> V4
  - mainline:
    - set BR2_ARM_EABIHF=y
    - set BR2_KERNEL_HEADERS_VERSION, BR2_DEFAULT_KERNEL_VERSION, BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_0
    - boot.cmd: use ${fdtfile}, now this script could be used with the LIME, LIME2 & Micro boards
  - mali:
    - set BR2_ARM_EABIHF=y (required by BR2_PACKAGE_SUNXI_MALI_R3P0)
    - set BR2_KERNEL_HEADERS_VERSION, BR2_DEFAULT_KERNEL_VERSION, BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_4
    - set BR2_PACKAGE_SUNXI_MALI=y which is the purpose of this config
    - remove BR2_LINUX_KERNEL_CUSTOM_GIT
    - remove BR2_LINUX_KERNEL_VERSION="sunxi-3.4"
    - boot.cmd: add some specific sunxi variables in bootargs

Changes V2 -> V3
  - rename defconfig in order to avoid conflict between LIME, LIME2 and Micro boards
  - mainline:
    - some minor documentation fixes
    - fix BR2_TARGET_GENERIC_ISSUE
    - set BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.04"
  - mali:
    - switch to mainline U-Boot
    - merge readme.txt
    - refactor with github helper
    - fix BR2_TARGET_GENERIC_ISSUE

Changes V1 -> V2: review/comments by Arnout Vandecappelle
  - mainline:
    - set BR2_KERNEL_HEADERS_4_0=y
    - set BR2_LINUX_KERNEL_INSTALL_TARGET=y
    - set BR2_TARGET_ROOTFS_EXT2_4=y
    - refactor post-build with arguments from BR2_ROOTFS_POST_SCRIPT_ARGS
  - rename of board/cubietech/cubieboard/mkcubiecard.sh
    - patch removed
  - legacy renamed to mali:
    - refactor post-build with arguments from BR2_ROOTFS_POST_SCRIPT_ARGS
    - readme-mali.txt:
      - include text from https://linux-sunxi.org/Linux_Kernel
      - fix a typo

Francois Perrad (2):
  A20-OLinuXino-Lime: new board (mainline)
  A20-OLinuXino-Lime: new board (mali)

 board/olimex/a20_olinuxino_lime/boot-mali.cmd    |   5 ++
 board/olimex/a20_olinuxino_lime/boot.cmd         |   5 ++
 board/olimex/a20_olinuxino_lime/post-build.sh    |  12 +++
 board/olimex/a20_olinuxino_lime/readme.txt       | 100 +++++++++++++++++++++++
 configs/olimex_a20_olinuxino_lime_defconfig      |  45 ++++++++++
 configs/olimex_a20_olinuxino_lime_mali_defconfig |  50 ++++++++++++
 6 files changed, 217 insertions(+)
 create mode 100644 board/olimex/a20_olinuxino_lime/boot-mali.cmd
 create mode 100644 board/olimex/a20_olinuxino_lime/boot.cmd
 create mode 100755 board/olimex/a20_olinuxino_lime/post-build.sh
 create mode 100644 board/olimex/a20_olinuxino_lime/readme.txt
 create mode 100644 configs/olimex_a20_olinuxino_lime_defconfig
 create mode 100644 configs/olimex_a20_olinuxino_lime_mali_defconfig

-- 
2.1.4

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

* [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline)
  2015-06-26 10:06 [Buildroot] [V4 0/2] A20-OLinuXino-Lime: new board Francois Perrad
@ 2015-06-26 10:06 ` Francois Perrad
  2015-06-26 16:27   ` Luca Ceresoli
  2015-06-26 10:06 ` [Buildroot] [V4 2/2] A20-OLinuXino-Lime: new board (mali) Francois Perrad
  2015-06-28 13:33 ` [Buildroot] [V4 0/2] A20-OLinuXino-Lime: new board Thomas Petazzoni
  2 siblings, 1 reply; 9+ messages in thread
From: Francois Perrad @ 2015-06-26 10:06 UTC (permalink / raw)
  To: buildroot

config device tree / mainline (4.0.5)

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 board/olimex/a20_olinuxino_lime/boot.cmd      |  5 ++
 board/olimex/a20_olinuxino_lime/post-build.sh |  8 +++
 board/olimex/a20_olinuxino_lime/readme.txt    | 86 +++++++++++++++++++++++++++
 configs/olimex_a20_olinuxino_lime_defconfig   | 45 ++++++++++++++
 4 files changed, 144 insertions(+)
 create mode 100644 board/olimex/a20_olinuxino_lime/boot.cmd
 create mode 100755 board/olimex/a20_olinuxino_lime/post-build.sh
 create mode 100644 board/olimex/a20_olinuxino_lime/readme.txt
 create mode 100644 configs/olimex_a20_olinuxino_lime_defconfig

diff --git a/board/olimex/a20_olinuxino_lime/boot.cmd b/board/olimex/a20_olinuxino_lime/boot.cmd
new file mode 100644
index 0000000..44d9239
--- /dev/null
+++ b/board/olimex/a20_olinuxino_lime/boot.cmd
@@ -0,0 +1,5 @@
+setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait panic=10 ${extra}
+ext4load mmc 0 0x49000000 /boot/${fdtfile}
+ext4load mmc 0 0x46000000 /boot/zImage
+env set fdt_high ffffffff
+bootz 0x46000000 - 0x49000000
diff --git a/board/olimex/a20_olinuxino_lime/post-build.sh b/board/olimex/a20_olinuxino_lime/post-build.sh
new file mode 100755
index 0000000..4e6fbec
--- /dev/null
+++ b/board/olimex/a20_olinuxino_lime/post-build.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+# args from BR2_ROOTFS_POST_SCRIPT_ARGS
+# $2    path of boot.cmd
+# $3    output directory for boot.scr
+
+MKIMAGE=$HOST_DIR/usr/bin/mkimage
+
+$MKIMAGE -A arm -O linux -T script -C none -d $2 $3/boot.scr
diff --git a/board/olimex/a20_olinuxino_lime/readme.txt b/board/olimex/a20_olinuxino_lime/readme.txt
new file mode 100644
index 0000000..3fc9c02
--- /dev/null
+++ b/board/olimex/a20_olinuxino_lime/readme.txt
@@ -0,0 +1,86 @@
+A20-OLinuXino-LIME
+
+Intro
+=====
+
+This is a open hardware board,
+see https://www.olimex.com/Products/OLinuXino/open-source-hardware
+
+How to build it
+===============
+
+    $ make olimex_a20_olinuxino_lime_defconfig
+
+Compile everything and build the rootfs image:
+
+    $ make
+
+Result of the build
+-------------------
+
+After building, you should get a tree like this:
+
+    output/images/
+    +-- rootfs.ext2
+    +-- rootfs.ext4 -> rootfs.ext2
+    +-- sun7i-a20-olinuxino-lime.dtb
+    +-- u-boot.bin
+    +-- u-boot-sunxi-with-spl.bin
+    `-- zImage
+
+
+How to write the SD card
+========================
+
+
+Prepare the SD card
+-------------------
+
+Erase existing stuff, and create an unique Linux partition with `fdisk`.
+
+    # fdisk /dev/sdX
+    Command (m for help): o
+    Building a new DOS disklabel with disk identifier 0xf9e1616a.
+    Changes will remain in memory only, until you decide to write them.
+    After that, of course, the previous content won't be recoverable.
+
+    Command (m for help): n
+    Partition type:
+        p   primary (0 primary, 0 extended, 4 free)
+        e   extended
+    Select (default p): p
+    Partition number (1-4, default 1): 1
+    First sector (2048-7626751, default 2048): 2048
+    Last sector, +sectors or +size{K,M,G} (2048-7626751, default 7626751): 
+    Using default value 7626751
+
+    Command (m for help): p
+
+    Disk /dev/sdX: 3904 MB, 3904897024 bytes
+    4 heads, 16 sectors/track, 119168 cylinders, total 7626752 sectors
+    Units = sectors of 1 * 512 = 512 bytes
+    Sector size (logical/physical): 512 bytes / 512 bytes
+    I/O size (minimum/optimal): 512 bytes / 512 bytes
+    Disk identifier: 0xf9e1616a
+
+            Device Boot      Start         End      Blocks   Id  System
+    /dev/sdX1                 2048     7626751     3812352   83  Linux
+
+    Command (m for help): w
+    The partition table has been altered!
+
+    Calling ioctl() to re-read partition table.
+    Syncing disks.
+
+Copy images on the SD card
+--------------------------
+
+    # dd if=output/images/rootfs.ext2 of=/dev/sdX1
+    # dd if=output/images/u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8
+
+
+Finish
+======
+
+Eject the SD card, insert it in the A20-OLinuXino-LIME board, and power it up.
+
diff --git a/configs/olimex_a20_olinuxino_lime_defconfig b/configs/olimex_a20_olinuxino_lime_defconfig
new file mode 100644
index 0000000..62f0a4c
--- /dev/null
+++ b/configs/olimex_a20_olinuxino_lime_defconfig
@@ -0,0 +1,45 @@
+# Architecture
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_ARM_EABIHF=y
+
+# Lock to 4.0 headers to avoid breaking with newer kernels
+BR2_KERNEL_HEADERS_VERSION=y
+BR2_DEFAULT_KERNEL_VERSION="4.0.5"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_0=y
+
+# System configuration
+BR2_TARGET_GENERIC_HOSTNAME="a20-olinuxino"
+BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!"
+BR2_TARGET_GENERIC_GETTY=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a20_olinuxino_lime/post-build.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="board/olimex/a20_olinuxino_lime/boot.cmd $(TARGET_DIR)/boot"
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.0.5"
+BR2_LINUX_KERNEL_USE_DEFCONFIG=y
+BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
+BR2_LINUX_KERNEL_ZIMAGE=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-olinuxino-lime"
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
+
+# Filesystem
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+
+# Bootloaders
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="A20-OLinuXino-Lime"
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.04"
+BR2_TARGET_UBOOT_FORMAT_BIN=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
+
+# Additional tools
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
-- 
2.1.4

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

* [Buildroot] [V4 2/2] A20-OLinuXino-Lime: new board (mali)
  2015-06-26 10:06 [Buildroot] [V4 0/2] A20-OLinuXino-Lime: new board Francois Perrad
  2015-06-26 10:06 ` [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline) Francois Perrad
@ 2015-06-26 10:06 ` Francois Perrad
  2015-06-28 13:33 ` [Buildroot] [V4 0/2] A20-OLinuXino-Lime: new board Thomas Petazzoni
  2 siblings, 0 replies; 9+ messages in thread
From: Francois Perrad @ 2015-06-26 10:06 UTC (permalink / raw)
  To: buildroot

config mali / sunxi

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 board/olimex/a20_olinuxino_lime/boot-mali.cmd    |  5 +++
 board/olimex/a20_olinuxino_lime/post-build.sh    |  4 ++
 board/olimex/a20_olinuxino_lime/readme.txt       | 16 +++++++-
 configs/olimex_a20_olinuxino_lime_mali_defconfig | 50 ++++++++++++++++++++++++
 4 files changed, 74 insertions(+), 1 deletion(-)
 create mode 100644 board/olimex/a20_olinuxino_lime/boot-mali.cmd
 create mode 100644 configs/olimex_a20_olinuxino_lime_mali_defconfig

diff --git a/board/olimex/a20_olinuxino_lime/boot-mali.cmd b/board/olimex/a20_olinuxino_lime/boot-mali.cmd
new file mode 100644
index 0000000..9fa5d65
--- /dev/null
+++ b/board/olimex/a20_olinuxino_lime/boot-mali.cmd
@@ -0,0 +1,5 @@
+setenv bootm_boot_mode sec
+setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait panic=10 sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_no_mali_mem_reserve sunxi_fb_mem_reserve=16 consoleblank=0 ${extra}
+ext4load mmc 0 0x43000000 /boot/script.bin
+ext4load mmc 0 0x48000000 /boot/zImage
+bootz 0x48000000
diff --git a/board/olimex/a20_olinuxino_lime/post-build.sh b/board/olimex/a20_olinuxino_lime/post-build.sh
index 4e6fbec..ac8d4df 100755
--- a/board/olimex/a20_olinuxino_lime/post-build.sh
+++ b/board/olimex/a20_olinuxino_lime/post-build.sh
@@ -6,3 +6,7 @@
 MKIMAGE=$HOST_DIR/usr/bin/mkimage
 
 $MKIMAGE -A arm -O linux -T script -C none -d $2 $3/boot.scr
+
+if [ -e $BINARIES_DIR/script.bin ]; then
+	cp $BINARIES_DIR/script.bin $3/script.bin
+fi
diff --git a/board/olimex/a20_olinuxino_lime/readme.txt b/board/olimex/a20_olinuxino_lime/readme.txt
index 3fc9c02..92ee24a 100644
--- a/board/olimex/a20_olinuxino_lime/readme.txt
+++ b/board/olimex/a20_olinuxino_lime/readme.txt
@@ -6,11 +6,24 @@ Intro
 This is a open hardware board,
 see https://www.olimex.com/Products/OLinuXino/open-source-hardware
 
+The legacy linux-sunxi kernels are based on the vendor code drops.
+It is only useful when accelerated 3D graphics and multimedia support
+is strictly necessary.
+
+The Mainline Kernel is already a much better choice for a headless server.
+And also the mainline kernel works fine even for a basic Linux desktop
+system running on top of a simple framebuffer, which may be good enough for
+the users who do not need fancy 3D graphics or video playback acceleration.
+
 How to build it
 ===============
 
     $ make olimex_a20_olinuxino_lime_defconfig
 
+or
+
+    $ make olimex_a20_olinuxino_lime_mali_defconfig
+
 Compile everything and build the rootfs image:
 
     $ make
@@ -23,7 +36,8 @@ After building, you should get a tree like this:
     output/images/
     +-- rootfs.ext2
     +-- rootfs.ext4 -> rootfs.ext2
-    +-- sun7i-a20-olinuxino-lime.dtb
+    +-- script.bin (mali)
+    +-- sun7i-a20-olinuxino-lime.dtb (mainline)
     +-- u-boot.bin
     +-- u-boot-sunxi-with-spl.bin
     `-- zImage
diff --git a/configs/olimex_a20_olinuxino_lime_mali_defconfig b/configs/olimex_a20_olinuxino_lime_mali_defconfig
new file mode 100644
index 0000000..dde39ad
--- /dev/null
+++ b/configs/olimex_a20_olinuxino_lime_mali_defconfig
@@ -0,0 +1,50 @@
+# Architecture
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_ARM_EABIHF=y
+
+# Lock to 3.4 headers as the sunxi kernel is based off the 3.4 branch
+BR2_KERNEL_HEADERS_VERSION=y
+BR2_DEFAULT_KERNEL_VERSION="3.4.108"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_4=y
+
+# System configuration
+BR2_TARGET_GENERIC_HOSTNAME="a20-olinuxino"
+BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!"
+BR2_TARGET_GENERIC_GETTY=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a20_olinuxino_lime/post-build.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="board/olimex/a20_olinuxino_lime/boot-mali.cmd $(TARGET_DIR)/boot"
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux-sunxi,linux-sunxi,sunxi-v3.4.103-r1)/sunxi-v3.4.103-r1.tar.gz"
+BR2_LINUX_KERNEL_USE_DEFCONFIG=y
+BR2_LINUX_KERNEL_DEFCONFIG="sun7i"
+BR2_LINUX_KERNEL_ZIMAGE=y
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
+
+# sunxi packages
+BR2_PACKAGE_SUNXI_TOOLS=y
+BR2_PACKAGE_SUNXI_BOARDS=y
+BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a20/a20-olinuxino_lime.fex"
+BR2_PACKAGE_SUNXI_MALI=y
+BR2_PACKAGE_SUNXI_MALI_DBG=y
+
+# Filesystem
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+
+# Bootloaders
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="A20-OLinuXino-Lime"
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.01"
+BR2_TARGET_UBOOT_FORMAT_BIN=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
+
+# Additional tools
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
-- 
2.1.4

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

* [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline)
  2015-06-26 10:06 ` [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline) Francois Perrad
@ 2015-06-26 16:27   ` Luca Ceresoli
  2015-06-27  6:58     ` François Perrad
  0 siblings, 1 reply; 9+ messages in thread
From: Luca Ceresoli @ 2015-06-26 16:27 UTC (permalink / raw)
  To: buildroot

Dear Francois,

Francois Perrad wrote:
> config device tree / mainline (4.0.5)
>
> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> ---
>   board/olimex/a20_olinuxino_lime/boot.cmd      |  5 ++
>   board/olimex/a20_olinuxino_lime/post-build.sh |  8 +++
>   board/olimex/a20_olinuxino_lime/readme.txt    | 86 +++++++++++++++++++++++++++

I confirm these files work for the A20-OLinuXino-Micro too, so I'd move
them to board/olimex/a20_olinuxino/ (without the _lime suffix).

I'll build support for the Micro on top of them.

[...]
> diff --git a/board/olimex/a20_olinuxino_lime/boot.cmd b/board/olimex/a20_olinuxino_lime/boot.cmd
> new file mode 100644
> index 0000000..44d9239
> --- /dev/null
> +++ b/board/olimex/a20_olinuxino_lime/boot.cmd
> @@ -0,0 +1,5 @@
> +setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait panic=10 ${extra}
> +ext4load mmc 0 0x49000000 /boot/${fdtfile}

Using ${fdtfile} here is a good idea, it simplified my job. Thanks!

[...]
> diff --git a/board/olimex/a20_olinuxino_lime/readme.txt b/board/olimex/a20_olinuxino_lime/readme.txt
> new file mode 100644
> index 0000000..3fc9c02
> --- /dev/null
> +++ b/board/olimex/a20_olinuxino_lime/readme.txt
> @@ -0,0 +1,86 @@
> +A20-OLinuXino-LIME
> +
> +Intro
> +=====
> +
> +This is a open hardware board,
> +see https://www.olimex.com/Products/OLinuXino/open-source-hardware

I still think a link to the board webpage would be informative...

[...]
> diff --git a/configs/olimex_a20_olinuxino_lime_defconfig b/configs/olimex_a20_olinuxino_lime_defconfig
> new file mode 100644
> index 0000000..62f0a4c
> --- /dev/null
> +++ b/configs/olimex_a20_olinuxino_lime_defconfig
> @@ -0,0 +1,45 @@
> +# Architecture
> +BR2_arm=y
> +BR2_cortex_a7=y
> +BR2_ARM_EABIHF=y

This SoC has NEON and VFPv4, so you should add:
BR2_ARM_FPU_NEON_VFPV4=y

I booted a Micro board with a defconfig that is very similar to yours.
But I couldn't borrow a Lime yet, do I just build-tested it.

-- 
Luca

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

* [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline)
  2015-06-26 16:27   ` Luca Ceresoli
@ 2015-06-27  6:58     ` François Perrad
  2015-06-28 19:54       ` Luca Ceresoli
  0 siblings, 1 reply; 9+ messages in thread
From: François Perrad @ 2015-06-27  6:58 UTC (permalink / raw)
  To: buildroot

2015-06-26 18:27 GMT+02:00 Luca Ceresoli <luca@lucaceresoli.net>:
> Dear Francois,
>
> Francois Perrad wrote:
>>
>> config device tree / mainline (4.0.5)
>>
>> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
>> ---
>>   board/olimex/a20_olinuxino_lime/boot.cmd      |  5 ++
>>   board/olimex/a20_olinuxino_lime/post-build.sh |  8 +++
>>   board/olimex/a20_olinuxino_lime/readme.txt    | 86
>> +++++++++++++++++++++++++++
>
>
> I confirm these files work for the A20-OLinuXino-Micro too, so I'd move
> them to board/olimex/a20_olinuxino/ (without the _lime suffix).
>
> I'll build support for the Micro on top of them.
>
> [...]
>>
>> diff --git a/board/olimex/a20_olinuxino_lime/boot.cmd
>> b/board/olimex/a20_olinuxino_lime/boot.cmd
>> new file mode 100644
>> index 0000000..44d9239
>> --- /dev/null
>> +++ b/board/olimex/a20_olinuxino_lime/boot.cmd
>> @@ -0,0 +1,5 @@
>> +setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait
>> panic=10 ${extra}
>> +ext4load mmc 0 0x49000000 /boot/${fdtfile}
>
>
> Using ${fdtfile} here is a good idea, it simplified my job. Thanks!
>
> [...]
>>
>> diff --git a/board/olimex/a20_olinuxino_lime/readme.txt
>> b/board/olimex/a20_olinuxino_lime/readme.txt
>> new file mode 100644
>> index 0000000..3fc9c02
>> --- /dev/null
>> +++ b/board/olimex/a20_olinuxino_lime/readme.txt
>> @@ -0,0 +1,86 @@
>> +A20-OLinuXino-LIME
>> +
>> +Intro
>> +=====
>> +
>> +This is a open hardware board,
>> +see https://www.olimex.com/Products/OLinuXino/open-source-hardware
>
>
> I still think a link to the board webpage would be informative...
>
> [...]
>>
>> diff --git a/configs/olimex_a20_olinuxino_lime_defconfig
>> b/configs/olimex_a20_olinuxino_lime_defconfig
>> new file mode 100644
>> index 0000000..62f0a4c
>> --- /dev/null
>> +++ b/configs/olimex_a20_olinuxino_lime_defconfig
>> @@ -0,0 +1,45 @@
>> +# Architecture
>> +BR2_arm=y
>> +BR2_cortex_a7=y
>> +BR2_ARM_EABIHF=y
>
>
> This SoC has NEON and VFPv4, so you should add:
> BR2_ARM_FPU_NEON_VFPV4=y
>

Dear Luca,

From the reading of arch/Config.in.arm:
- BR2_cortex_a7 selects BR2_ARM_CPU_HAS_NEON and BR2_ARM_CPU_HAS_VFPV4
- BR2_CPU_HAS_VFPV4 choices by default BR2_ARM_FPU_VFPV4D16 as
"Floating point strategy"

BR2_ARM_FPU_NEON_VFPV4 could be another choice for this "Floating
point strategy".

As far I see, the BR defconfigs try to stay minimalist.
For me, the default settings provided by BR are good enough.

I added BR2_ARM_EABIHF because it is required by the proprietary blob
binary mali r3p0, not because it is a nice to have or a fine tuning
optimisation.

Fran?ois


> I booted a Micro board with a defconfig that is very similar to yours.
> But I couldn't borrow a Lime yet, do I just build-tested it.
>
> --
> Luca
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

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

* [Buildroot] [V4 0/2] A20-OLinuXino-Lime: new board
  2015-06-26 10:06 [Buildroot] [V4 0/2] A20-OLinuXino-Lime: new board Francois Perrad
  2015-06-26 10:06 ` [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline) Francois Perrad
  2015-06-26 10:06 ` [Buildroot] [V4 2/2] A20-OLinuXino-Lime: new board (mali) Francois Perrad
@ 2015-06-28 13:33 ` Thomas Petazzoni
  2 siblings, 0 replies; 9+ messages in thread
From: Thomas Petazzoni @ 2015-06-28 13:33 UTC (permalink / raw)
  To: buildroot

Dear Francois Perrad,

On Fri, 26 Jun 2015 12:06:55 +0200, Francois Perrad wrote:

> Francois Perrad (2):
>   A20-OLinuXino-Lime: new board (mainline)
>   A20-OLinuXino-Lime: new board (mali)

Thanks, I've applied both patches after slightly tweaking the commit
log.

Luca, don't hesitate to send follow-up patches once you have the Micro
board working, and you want to rework Fran?ois defconfig to share some
stuff between the Lime and Micro boards.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline)
  2015-06-27  6:58     ` François Perrad
@ 2015-06-28 19:54       ` Luca Ceresoli
  2015-06-28 20:24         ` Thomas Petazzoni
  0 siblings, 1 reply; 9+ messages in thread
From: Luca Ceresoli @ 2015-06-28 19:54 UTC (permalink / raw)
  To: buildroot

Dear Fran?ois,

thanks for your patches, which are now on master. I'll base my
A20-OLinuXino-MICRO patches on top of you good work.

A comment below about minimal defconfigs.

Fran?ois Perrad wrote:
[...]
>>> diff --git a/configs/olimex_a20_olinuxino_lime_defconfig
>>> b/configs/olimex_a20_olinuxino_lime_defconfig
>>> new file mode 100644
>>> index 0000000..62f0a4c
>>> --- /dev/null
>>> +++ b/configs/olimex_a20_olinuxino_lime_defconfig
>>> @@ -0,0 +1,45 @@
>>> +# Architecture
>>> +BR2_arm=y
>>> +BR2_cortex_a7=y
>>> +BR2_ARM_EABIHF=y
>>
>>
>> This SoC has NEON and VFPv4, so you should add:
>> BR2_ARM_FPU_NEON_VFPV4=y
>>
>
> Dear Luca,
>
>  From the reading of arch/Config.in.arm:
> - BR2_cortex_a7 selects BR2_ARM_CPU_HAS_NEON and BR2_ARM_CPU_HAS_VFPV4
> - BR2_CPU_HAS_VFPV4 choices by default BR2_ARM_FPU_VFPV4D16 as
> "Floating point strategy"
>
> BR2_ARM_FPU_NEON_VFPV4 could be another choice for this "Floating
> point strategy".
>
> As far I see, the BR defconfigs try to stay minimalist.
> For me, the default settings provided by BR are good enough.
>
> I added BR2_ARM_EABIHF because it is required by the proprietary blob
> binary mali r3p0, not because it is a nice to have or a fine tuning
> optimisation.

I understand your argument.

However, my understanding of the "minimal defconfig" choice is only
that they should not include unneeded packages (i.e. everything but
busybox) in the root filesystem.

I don't see any advantage of configuring toolchain and target options in
a sub-optimal way.

In fact, we have several Cortex-A defconfigs that enable NEON (5 out of
26) and EABIHF (9 out of 26):

$ git grep -l  cortex_a -- configs/ |wc
      26      26     878
$ git grep -l  cortex_a -- configs/ | xargs grep -l EABIHF|wc
       9       9     308
$ git grep -l  cortex_a -- configs/ | xargs grep -l NEON|wc
       5       5     158
$

But as I said, my understanding might be wrong.

Any authoritative opinions on this?
I'd be glad to update the docs with whatever is "official".

-- 
Luca

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

* [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline)
  2015-06-28 19:54       ` Luca Ceresoli
@ 2015-06-28 20:24         ` Thomas Petazzoni
  2015-07-07 20:32           ` Arnout Vandecappelle
  0 siblings, 1 reply; 9+ messages in thread
From: Thomas Petazzoni @ 2015-06-28 20:24 UTC (permalink / raw)
  To: buildroot

Dear Luca Ceresoli,

On Sun, 28 Jun 2015 21:54:25 +0200, Luca Ceresoli wrote:


> In fact, we have several Cortex-A defconfigs that enable NEON (5 out of
> 26) and EABIHF (9 out of 26):
> 
> $ git grep -l  cortex_a -- configs/ |wc
>       26      26     878
> $ git grep -l  cortex_a -- configs/ | xargs grep -l EABIHF|wc
>        9       9     308
> $ git grep -l  cortex_a -- configs/ | xargs grep -l NEON|wc
>        5       5     158
> $
> 
> But as I said, my understanding might be wrong.
> 
> Any authoritative opinions on this?

We don't have any strong position on this I believe. From my point of
view, enabling EABIhf definitely makes sense when it is possible. And
enabling NEON support also makes sense. However, using NEON as the FPU
is a bad idea (i.e BR2_ARM_FPU_NEON=y is a bad idea).

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline)
  2015-06-28 20:24         ` Thomas Petazzoni
@ 2015-07-07 20:32           ` Arnout Vandecappelle
  0 siblings, 0 replies; 9+ messages in thread
From: Arnout Vandecappelle @ 2015-07-07 20:32 UTC (permalink / raw)
  To: buildroot

On 06/28/15 22:24, Thomas Petazzoni wrote:
> Dear Luca Ceresoli,
> 
> On Sun, 28 Jun 2015 21:54:25 +0200, Luca Ceresoli wrote:
> 
> 
>> In fact, we have several Cortex-A defconfigs that enable NEON (5 out of
>> 26) and EABIHF (9 out of 26):
>>
>> $ git grep -l  cortex_a -- configs/ |wc
>>       26      26     878
>> $ git grep -l  cortex_a -- configs/ | xargs grep -l EABIHF|wc
>>        9       9     308
>> $ git grep -l  cortex_a -- configs/ | xargs grep -l NEON|wc
>>        5       5     158
>> $
>>
>> But as I said, my understanding might be wrong.
>>
>> Any authoritative opinions on this?
> 
> We don't have any strong position on this I believe. From my point of
> view, enabling EABIhf definitely makes sense when it is possible. And
> enabling NEON support also makes sense. However, using NEON as the FPU
> is a bad idea (i.e BR2_ARM_FPU_NEON=y is a bad idea).

 I agree. In Config.in.arm, we already default to the "best" floating point
where possible, so it's just for the _MAYBE_ variants that it's necessary to do
the right thing depending on the specific SoC.

 As to EABIHF, there we should probably switch the default in Config.in.arch.
It's good that we didn't do this earlier, to give people time to migrate their
configs, but EABIHF was introduced in 2013.08 so it should be safe now.

 And of course, in the defconfigs, it's best to make it explicit.


 Regards,
 Arnout
-- 
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

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

end of thread, other threads:[~2015-07-07 20:32 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-26 10:06 [Buildroot] [V4 0/2] A20-OLinuXino-Lime: new board Francois Perrad
2015-06-26 10:06 ` [Buildroot] [V4 1/2] A20-OLinuXino-Lime: new board (mainline) Francois Perrad
2015-06-26 16:27   ` Luca Ceresoli
2015-06-27  6:58     ` François Perrad
2015-06-28 19:54       ` Luca Ceresoli
2015-06-28 20:24         ` Thomas Petazzoni
2015-07-07 20:32           ` Arnout Vandecappelle
2015-06-26 10:06 ` [Buildroot] [V4 2/2] A20-OLinuXino-Lime: new board (mali) Francois Perrad
2015-06-28 13:33 ` [Buildroot] [V4 0/2] A20-OLinuXino-Lime: new board Thomas Petazzoni

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.