All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kuzminov Sergey <kuzminov.sergey81@gmail.com>
To: Giulio Benetti <giulio.benetti@benettiengineering.com>
Cc: buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v2] board/orangepi/orangepi-zero:extlinux, refactoring
Date: Wed, 19 Jan 2022 10:50:13 +0300	[thread overview]
Message-ID: <9d8e1077-030a-8520-d593-0d2a9c216127@gmail.com> (raw)
In-Reply-To: <3F734133-43FB-4057-8A88-92210A9FDCB4@benettiengineering.com>

Hi, Giulio.
Thanks for the comments, I'll try to do everything right in the evening.
I would like to consult about BR2_ARM_INSTRUCTIONS_THUMB2.

I tested the build for Orange Zero (Allwinner H2+) using the built-in 
test in the 7-zip archiver and did not notice any performance 
differences between VFPV4, NEON_VFPV4, THUMB2. Most likely, another 
performance testing program is needed to unlock the potential of NEON.

But I was more interested in BR2_ARM_INSTRUCTIONS_THUMB2. As it turned 
out, in my build, all executable files have decreased in size. For 
example busybox 566Kb (THUMB2) vs. 766Kb (VFPV4/NEON_VFPV4). But I do 
not know if there are any disadvantages of THUMB 2. Therefore, I added 
BR2_ARM_INSTRUCTIONS_THUMB 2 to the configuration, but commented so that 
people could see that this mode is possible for this processor and would 
make a choice whether to use it.

Today I found a good article revealing the essence of what is happening: 
https://kmittal82.wordpress.com/2012/02/17/armthumbthumb-2/
What should I do? Leave as is, remove or enable BR2_ARM_INSTRUCTIONS_THUMB2.

19.01.2022 1:34, Giulio Benetti:
> Hi Sergey,
>
> patch subject doesn’t say what you’re doing.
> How about:
> orangepi/orangepi-zero: bump Linux and U-Boot versions
>
> And in commit log below try to keep it more consistent. Like every change form sounds the same:
> - create common scenario…
> - use extlinux.conf instead of boot.scr
> Etc.
>
>> Il giorno 18 gen 2022, alle ore 22:59, Sergey Kuzminov <kuzminov.sergey81@gmail.com> ha scritto:
>>
>> Changes:
>> - common scenario for multiple boards to create the SD image: board/orangepi/common;
>> - extlinux.conf instead of boot.scr;
>> - exclude FAT partition;
>> - defconfig refactoring;
>> - kernel: bump to version 5.16.1;
>> - u-boot: bump to version 2022.01;
>> - added BR2_ARM_FPU_NEON_VFPV4;
>> - added fast_commit for ext4.
>>
>> Patch required to work:
>> https://patchwork.ozlabs.org/project/buildroot/patch/20220118063531.2039729-1-giulio.benetti@benettiengineering.com/
>>
>> Signed-off-by: Sergey Kuzminov <kuzminov.sergey81@gmail.com>
> —-
> Here you need to add:
> V1->V2:
> * changed this
> * changed that
> So in V3 you also need to add:
> V2->V3:
> * changed those
> * etc.
>> ---
>> board/orangepi/common/extlinux.conf       |  5 ++
>> board/orangepi/common/genimage.cfg        | 20 +++++++
>> board/orangepi/common/post-build.sh       | 34 +++++++++++
>> board/orangepi/common/uboot-extras.config |  3 +
>> board/orangepi/orangepi-zero/boot.cmd     |  9 ---
>> board/orangepi/orangepi-zero/genimage.cfg | 36 ------------
>> configs/orangepi_zero_defconfig           | 69 ++++++++++++++---------
>> 7 files changed, 104 insertions(+), 72 deletions(-)
>> create mode 100644 board/orangepi/common/extlinux.conf
>> create mode 100644 board/orangepi/common/genimage.cfg
>> create mode 100755 board/orangepi/common/post-build.sh
>> create mode 100644 board/orangepi/common/uboot-extras.config
>> delete mode 100644 board/orangepi/orangepi-zero/boot.cmd
>> delete mode 100644 board/orangepi/orangepi-zero/genimage.cfg
>>
>> diff --git a/board/orangepi/common/extlinux.conf b/board/orangepi/common/extlinux.conf
>> new file mode 100644
>> index 0000000000..015f29270e
>> --- /dev/null
>> +++ b/board/orangepi/common/extlinux.conf
>> @@ -0,0 +1,5 @@
>> +LABEL default
>> +  kernel /boot/%LINUXIMAGE%
>> +  devicetreedir /boot
>> +  append root=PARTUUID=%PARTUUID% rootwait console=${console}
>> +# append root=PARTUUID=%PARTUUID% rootwait console=${console} rootfstype=ext4 quiet panic=10
>> diff --git a/board/orangepi/common/genimage.cfg b/board/orangepi/common/genimage.cfg
>> new file mode 100644
>> index 0000000000..8b80ffb138
>> --- /dev/null
>> +++ b/board/orangepi/common/genimage.cfg
>> @@ -0,0 +1,20 @@
>> +image sdcard.img {
>> +    hdimage {
>> +        partition-table-type = gpt
>> +        gpt-no-backup = true
>> +        gpt-location = 1008K # 1MB - 16KB
>> +    }
>> +
>> +    partition u-boot {
>> +        in-partition-table = false
>> +        image = "u-boot-sunxi-with-spl.bin"
>> +        offset = 8K
>> +        size = 1000K # 1MB - 8KB - 16KB
>> +    }
>> +
>> +    partition rootfs {
>> +        offset = 1M
>> +        image = "rootfs.ext4"
>> +        partition-uuid = %PARTUUID%
>> +    }
>> +}
>> diff --git a/board/orangepi/common/post-build.sh b/board/orangepi/common/post-build.sh
>> new file mode 100755
>> index 0000000000..296f94b174
>> --- /dev/null
>> +++ b/board/orangepi/common/post-build.sh
>> @@ -0,0 +1,34 @@
>> +#!/bin/sh
>> +
>> +linux_image()
>> +{
>> +    if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then
>> +        echo "uImage"
>> +    elif grep -Eq "^BR2_LINUX_KERNEL_IMAGE=y$" ${BR2_CONFIG}; then
>> +        echo "Image"
>> +    elif grep -Eq "^BR2_LINUX_KERNEL_IMAGEGZ=y$" ${BR2_CONFIG}; then
>> +        echo "Image.gz"
>> +    else
>> +        echo "zImage"
>> +    fi
>> +}
>> +
>> +generic_getty()
>> +{
>> +    if grep -Eq "^BR2_TARGET_GENERIC_GETTY=y$" ${BR2_CONFIG}; then
>> +        echo ""
>> +    else
>> +        echo "s/\s*console=\S*//"
>> +    fi
>> +}
>> +
>> +PARTUUID="$($HOST_DIR/bin/uuidgen)"
>> +
>> +install -d "$TARGET_DIR/boot/extlinux/"
>> +
>> +sed -e "$(generic_getty)" \
>> +    -e "s/%LINUXIMAGE%/$(linux_image)/g" \
>> +    -e "s/%PARTUUID%/$PARTUUID/g" \
>> +    "board/orangepi/common/extlinux.conf" > "$TARGET_DIR/boot/extlinux/extlinux.conf"
>> +
>> +sed "s/%PARTUUID%/$PARTUUID/g" "board/orangepi/common/genimage.cfg" > "$BINARIES_DIR/genimage.cfg"
>> diff --git a/board/orangepi/common/uboot-extras.config b/board/orangepi/common/uboot-extras.config
>> new file mode 100644
>> index 0000000000..5aa97523d9
>> --- /dev/null
>> +++ b/board/orangepi/common/uboot-extras.config
>> @@ -0,0 +1,3 @@
>> +CONFIG_BOOTDELAY=0
>> +CONFIG_USE_PREBOOT=y
>> +CONFIG_PREBOOT="setenv preboot;"
>> diff --git a/board/orangepi/orangepi-zero/boot.cmd b/board/orangepi/orangepi-zero/boot.cmd
>> deleted file mode 100644
>> index d094a64fe5..0000000000
>> --- a/board/orangepi/orangepi-zero/boot.cmd
>> +++ /dev/null
>> @@ -1,9 +0,0 @@
>> -setenv fdt_high ffffffff
>> -
>> -part uuid mmc 0:2 uuid
>> -setenv bootargs console=ttyS0,115200 root=PARTUUID=${uuid} rootwait
>> -
>> -fatload mmc 0 $kernel_addr_r zImage
>> -fatload mmc 0 $fdt_addr_r sun8i-h2-plus-orangepi-zero.dtb
>> -
>> -bootz $kernel_addr_r - $fdt_addr_r
>> diff --git a/board/orangepi/orangepi-zero/genimage.cfg b/board/orangepi/orangepi-zero/genimage.cfg
>> deleted file mode 100644
>> index 32f5454ae6..0000000000
>> --- a/board/orangepi/orangepi-zero/genimage.cfg
>> +++ /dev/null
>> @@ -1,36 +0,0 @@
>> -# Minimal SD card image for the OrangePi Zero
>> -#
>> -image boot.vfat {
>> -    vfat {
>> -        files = {
>> -            "zImage",
>> -            "sun8i-h2-plus-orangepi-zero.dtb",
>> -            "boot.scr"
>> -        }
>> -    }
>> -    size = 10M
>> -}
>> -
>> -image sdcard.img {
>> -    hdimage {
>> -    }
>> -
>> -    partition u-boot {
>> -        in-partition-table = "no"
>> -        image = "u-boot-sunxi-with-spl.bin"
>> -        offset = 8K
>> -        size = 1016K # 1MB - 8KB
>> -    }
>> -
>> -    partition boot {
>> -        partition-type = 0xC
>> -        bootable = "true"
>> -        image = "boot.vfat"
>> -    }
>> -
>> -    partition rootfs {
>> -        partition-type = 0x83
>> -        image = "rootfs.ext4"
>> -        size = 512M
>> -    }
>> -}
>> diff --git a/configs/orangepi_zero_defconfig b/configs/orangepi_zero_defconfig
>> index 1c107b10e6..d1cae2b4f3 100644
>> --- a/configs/orangepi_zero_defconfig
>> +++ b/configs/orangepi_zero_defconfig
>> @@ -1,49 +1,64 @@
>> +# Architecture
>> BR2_arm=y
>> BR2_cortex_a7=y
>> -BR2_ARM_FPU_VFPV4=y
>> +BR2_ARM_EABIHF=y
>> +BR2_ARM_FPU_NEON_VFPV4=y
>> +#BR2_ARM_INSTRUCTIONS_THUMB2=y
> Is there a specific reason for specifying here not thumb2? So ARM?
>
>> +
>> +# System
>> +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi Zero"
>> +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_Zero"
>> BR2_GLOBAL_PATCH_DIR="board/orangepi/orangepi-zero/patches"
>> BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
>> -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_12=y
>> -BR2_TARGET_GENERIC_HOSTNAME="OrangePi_Zero"
>> -BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi Zero"
>> BR2_SYSTEM_DHCP="eth0"
>> -BR2_LINUX_KERNEL=y
>> -BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>> -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.12.2"
>> -BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
>> -BR2_LINUX_KERNEL_DTS_SUPPORT=y
>> -BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h2-plus-orangepi-zero"
>> -BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-zero/linux-extras.config"
>> -BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
>> -BR2_TARGET_ROOTFS_EXT2=y
>> -BR2_TARGET_ROOTFS_EXT2_4=y
>> -# BR2_TARGET_ROOTFS_TAR is not set
>> +
>> +# Bootloader
>> BR2_TARGET_UBOOT=y
>> BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
>> BR2_TARGET_UBOOT_CUSTOM_VERSION=y
>> -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.04"
>> +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
>> BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_zero"
>> BR2_TARGET_UBOOT_NEEDS_DTC=y
>> BR2_TARGET_UBOOT_NEEDS_PYTHON3=y
>> BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
>> BR2_TARGET_UBOOT_SPL=y
>> BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
>> -BR2_PACKAGE_HOST_UBOOT_TOOLS=y
>> -BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y
>> -BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-zero/boot.cmd"
>> -BR2_PACKAGE_HOST_DOSFSTOOLS=y
>> -BR2_PACKAGE_HOST_GENIMAGE=y
>> -BR2_PACKAGE_HOST_MTOOLS=y
>> -BR2_PACKAGE_HOST_UBOOT_TOOLS=y
>> +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/orangepi/common/uboot-extras.config"
> Here ^^^ I tend to use .fragment extension instead of .config
>
>> +
>> +# Kernel
>> +BR2_LINUX_KERNEL=y
>> +BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
>> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
>> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h2-plus-orangepi-zero"
>> +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-zero/linux-extras.config"
> Ditto ^^^
>
>> +BR2_LINUX_KERNEL_INSTALL_TARGET=y
>> +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
>> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16.1"
>> +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y
>> +
>> +# Filesystem
>> +BR2_TARGET_ROOTFS_EXT2=y
>> +BR2_TARGET_ROOTFS_EXT2_4=y
>> +BR2_TARGET_ROOTFS_EXT2_SIZE="63M"
>> +BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS="-O ^64bit,fast_commit"
>> +BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y
>> +BR2_TARGET_ROOTFS_TAR=n
> Here you should keep the form # BR2_TARGET_ROOTFS_TAR not set
> Instead of assigning =n
>
> Best regards
> —-
> Giulio Benetti
> Benetti Engineering sas
>
>> +
>> +# Image
>> +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
>> BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
>> -BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-zero/genimage.cfg"
>> +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
>> +
>> +# Required tools to create the SD image
>> +BR2_PACKAGE_HOST_GENIMAGE=y
>>
>> -# wireless driver and firmware
>> +# Wireless driver and firmware
>> BR2_PACKAGE_XR819_XRADIO=y
>> BR2_PACKAGE_ARMBIAN_FIRMWARE=y
>> BR2_PACKAGE_ARMBIAN_FIRMWARE_XR819=y
>>
>> -# wireless support
>> +# Wireless support
>> BR2_PACKAGE_IW=y
>> BR2_PACKAGE_WIRELESS_TOOLS=y
>> BR2_PACKAGE_WIRELESS_TOOLS_LIB=y
>> @@ -51,5 +66,5 @@ BR2_PACKAGE_WPA_SUPPLICANT=y
>> BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
>> BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
>>
>> -# spi flash support
>> +# Spi flash support
>> BR2_PACKAGE_MTD=y
>> -- 
>> 2.34.1
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2022-01-19  7:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-18 21:58 [Buildroot] [PATCH v2] board/orangepi/orangepi-zero:extlinux, refactoring Sergey Kuzminov
2022-01-18 22:34 ` Giulio Benetti
2022-01-19  7:50   ` Kuzminov Sergey [this message]
2022-01-19  9:44     ` Giulio Benetti

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=9d8e1077-030a-8520-d593-0d2a9c216127@gmail.com \
    --to=kuzminov.sergey81@gmail.com \
    --cc=buildroot@buildroot.org \
    --cc=giulio.benetti@benettiengineering.com \
    /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.