All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] buildroot support for OrangePI PC
Date: Thu, 24 Dec 2015 11:28:59 +0100	[thread overview]
Message-ID: <20151224112859.6f44713d@free-electrons.com> (raw)
In-Reply-To: <1450948540529.50320.154990@webmail2>

Eelco,

On Thu, 24 Dec 2015 10:15:40 +0100, Eelco Chaudron wrote:

> This is the diff;

Thanks for the patch. Can you send it as a proper Git formatted patch?
See the Buildroot manual for instructions on how to do this. I have a
couple more comments below.

> diff --git a/board/orangepi/orangepipc/genimage.cfg b/board/orangepi/orangepipc/genimage.cfg
> new file mode 100644
> index 0000000..43c2249
> --- /dev/null
> +++ b/board/orangepi/orangepipc/genimage.cfg
> @@ -0,0 +1,36 @@
> +# Minimal SD card image for the OrangePi PC
> +#
> +
> +image boot.vfat {
> + vfat {
> + files = {
> + "uImage",
> + "sun8i-h3-orangepi-pc.dtb",
> + "boot.scr"
> + }
> + }
> + size = 10M
> +}

Please fix the indentation here. I think we should use at least two
spaces for indentation, or maybe better one tab.

> diff --git a/board/orangepi/orangepipc/post-build.sh b/board/orangepi/orangepipc/post-build.sh
> new file mode 100755
> index 0000000..9f115cb
> --- /dev/null
> +++ b/board/orangepi/orangepipc/post-build.sh
> @@ -0,0 +1,14 @@
> +#!/bin/sh
> +# post-build.sh for OrangePi PC taken from CubieBoard's post-build.sh
> +# 2013, Carlo Caione <<carlo.caione@gmail.com>>
> +
> +BOARD_DIR="$(dirname $0)"
> +MKIMAGE=$HOST_DIR/usr/bin/mkimage
> +BOOT_CMD=$BOARD_DIR/boot.cmd
> +BOOT_CMD_H=$BINARIES_DIR/boot.scr
> +
> +# U-Boot script
> +if [ -e $MKIMAGE -a -e $BOOT_CMD ];

This test is not needed IMO, just run the $MKIMAGE command
unconditionally.

> +then
> +	$MKIMAGE -C none -A arm -T script -d $BOOT_CMD $BOOT_CMD_H
> +fi
> diff --git a/board/orangepi/orangepipc/post-image.sh b/board/orangepi/orangepipc/post-image.sh
> new file mode 100755
> index 0000000..05f6b70
> --- /dev/null
> +++ b/board/orangepi/orangepipc/post-image.sh
> @@ -0,0 +1,16 @@
> +#!/bin/bash

Do we really need this to be a bash script ? #!/bin/sh is probably
sufficient.

> +
> +GENIMAGE_CFG="board/orangepi/orangepipc/genimage.cfg"

Maybe you could use the same BOARD_DIR trick than the one you've used
in the post-build script?

> +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
> +
> +rm -rf "${GENIMAGE_TMP}"
> +
> +genimage \
> + --rootpath "${TARGET_DIR}" \
> + --tmppath "${GENIMAGE_TMP}" \
> + --inputpath "${BINARIES_DIR}" \
> + --outputpath "${BINARIES_DIR}" \
> + --config "${GENIMAGE_CFG}"

Use tab for indentation.

> +
> +RET=${?}
> +exit ${RET}

Just do exit $?

> diff --git a/configs/orangepipc_defconfig b/configs/orangepipc_defconfig
> new file mode 100644
> index 0000000..cd349c5
> --- /dev/null
> +++ b/configs/orangepipc_defconfig
> @@ -0,0 +1,26 @@
> +BR2_arm=y
> +BR2_cortex_a7=y
> +BR2_ARM_FPU_NEON_VFPV4=y

Please use just VFPV4. Using NEON for floating point operations by
default is not a good idea. From the gcc manual:

   If the selected floating-point hardware includes the NEON extension
   (e.g. -mfpu=?neon?), note that floating-point operations are not
   generated by GCC's auto-vectorization pass unless
   -funsafe-math-optimizations is also specified. This is because NEON
   hardware does not fully implement the IEEE 754 standard for
   floating-point arithmetic (in particular denormal values are treated
   as zero), so the use of NEON instructions may lead to a loss of
   precision.


> +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_PC"
> +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi PC"
> +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/orangepipc/post-build.sh"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/orangepi/orangepipc/post-image.sh"

Please force the kernel headers version to a fixed version, like is
done in all other defconfig files. For example:

# Lock to 4.3 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="4.3"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y

(Of course adapt 4.3 to whatever kernel version you're using)

> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_GIT=y
> +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="<https://github.com/jwrdegoede/linux-sunxi.git>"

Please remove the < and > before and after the URL. I'm not even sure
how it can work with such markers.

> +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="a516ac6dda21e6f5edceecd08b475b16e360656b"
> +BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
> +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x40008000"

The modern way is to boot using a zImage. Can you try using a zImage
instead?

> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-pc"
> +BR2_TARGET_ROOTFS_EXT2=y
> +BR2_TARGET_ROOTFS_EXT2_4=y
> +# BR2_TARGET_ROOTFS_TAR is not set
> +BR2_TARGET_UBOOT=y
> +BR2_TARGET_UBOOT_BOARDNAME="orangepi_pc"
> +BR2_TARGET_UBOOT_CUSTOM_GIT=y
> +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="<http://git.denx.de/u-boot.git>"

Ditto < and > markers.

> +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="4832e17787acb29734d895751bc7a594908aecc6"
> +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
> +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin"
> +BR2_PACKAGE_HOST_GENIMAGE=y

Thanks!

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

  reply	other threads:[~2015-12-24 10:28 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-18 13:22 [Buildroot] buildroot support for OrangePI PC Eelco Chaudron
2015-12-18 22:23 ` Arnout Vandecappelle
2015-12-20 12:32   ` Eelco Chaudron
2015-12-20 12:45     ` Thomas Petazzoni
2015-12-20 18:17       ` Eelco Chaudron
2015-12-20 18:25   ` Eelco Chaudron
2015-12-24  9:15   ` Eelco Chaudron
2015-12-24 10:28     ` Thomas Petazzoni [this message]
2015-12-24 10:52       ` Eelco Chaudron
2015-12-24 11:18         ` Thomas Petazzoni
2015-12-27  0:04     ` Cam Hutchison
2015-12-19 23:51 ` Cam Hutchison
2015-12-20 12:37   ` Thomas Petazzoni

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=20151224112859.6f44713d@free-electrons.com \
    --to=thomas.petazzoni@free-electrons.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.