Skip to contentSkip to conversation

board: add support for ARC HS Development Kit (HSDK)

PATCH Superseded Evgeniy Didin 6 participants 12 messages Dec 19, 2017 – Apr 2, 2018

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

Synopsys DesignWare HSDK (which stands for ARC HS Development Kit) is the latest and greatest development platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
* Quad-core ARC HS38 CPU running at 1GHz
* 4Gb of DDR
* Built-in Vivante GPU (well supported via open source Etnaviv drivers)
* Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
* [micro] SD-card slot
* 2 USB 2.0 ports
* 1Gbit Ethernet port
* Built-in Digilent JTAG probe
* Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
* FAT32 with uImage and uboot.env
* EXT4 with root filesystem

We modify kernel config because in default hsdk kernel config CONFIG_INITRAMFS_SOURCE parameter is set and when we build rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set) error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which enables usage of uboot variables in the boot process.

Cc Thomas Petazzoni <[email protected]>
Cc Alexey Brodkin <[email protected]>
Cc arc-buildroot at synopsys.com

---
Changes since v1:
-add entries in DEVELOPERS and .gitlab-ci.yml
-change genimage-hsdk.cfg to genimage.cfg
-enable BR2_TARGET_UBOOT_ENVIMAGE against mkenvimage in post-image.sh -add renaming "uboot-env.bin" to "uboot.env" in post-image.sh -changed tar to gzip when archiving sdcard.img

 .gitlab-ci.yml                     |  1 +
 DEVELOPERS                         |  1 +
 board/synopsys/hsdk/genimage.cfg   | 26 +++++++++++++++++++++++++
 board/synopsys/hsdk/linux.fragment |  2 ++
 board/synopsys/hsdk/post-image.sh  | 18 ++++++++++++++++++
 board/synopsys/hsdk/uboot.env.txt  |  9 +++++++++
 configs/snps_hsdk_defconfig        | 39 ++++++++++++++++++++++++++++++++++++++
 7 files changed, 96 insertions(+)
 create mode 100644 board/synopsys/hsdk/genimage.cfg
 create mode 100644 board/synopsys/hsdk/linux.fragment
 create mode 100755 board/synopsys/hsdk/post-image.sh
 create mode 100644 board/synopsys/hsdk/uboot.env.txt
 create mode 100644 configs/snps_hsdk_defconfig
.gitlab-ci.yml +1 -0
index 691669f7f1..00e3879f00 100644
@@ -215,6 +215,7 @@ snps_arc700_axs101_defconfig: *defconfig
 snps_archs38_axs103_defconfig: *defconfig
 snps_archs38_haps_defconfig: *defconfig
 snps_archs38_vdk_defconfig: *defconfig
+snps_hsdk_defconfig: *defconfig
 socrates_cyclone5_defconfig: *defconfig
 solidrun_macchiatobin_mainline_defconfig: *defconfig
 solidrun_macchiatobin_marvell_defconfig: *defconfig
DEVELOPERS +1 -0
index fe989c0775..9a93e423af 100644
@@ -153,6 +153,7 @@ F:	package/wf111/
 
 N:	ARC Maintainers <[email protected]>
 F:	arch/Config.in.arc
+F:	board/synopsys
 
 N:	Ariel D'Alessandro <[email protected]>
 F:	package/axfsutils/
board/synopsys/hsdk/genimage.cfg new file +26 -0
new file mode 100644
index 0000000000..8928f704a2
@@ -0,0 +1,26 @@
+image boot.vfat {
+  vfat {
+    files = {
+      "uboot.env",
+      "uImage"
+    }
+  }
+  size = 100M
+}
+
+image sdcard.img {
+  hdimage {
+  }
+
+  partition boot {
+    partition-type = 0xC
+    bootable = "true"
+    image = "boot.vfat"
+  }
+
+  partition rootfs {
+    partition-type = 0x83
+    image = "rootfs.ext4"
+    size = 1G
+  }
+}
board/synopsys/hsdk/linux.fragment new file +2 -0
new file mode 100644
index 0000000000..53b9305e09
@@ -0,0 +1,2 @@
+CONFIG_INITRAMFS_SOURCE=
+CONFIG_ARC_UBOOT_SUPPORT=y
board/synopsys/hsdk/post-image.sh new file +18 -0
new file mode 100755
index 0000000000..e99a4a0b96
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+BOARD_DIR="$(dirname $0)"
+BOARD_NAME="$(basename ${BOARD_DIR})"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+rm -rf "${GENIMAGE_TMP}"
+
+mv ${BINARIES_DIR}/uboot-env.bin ${BINARIES_DIR}/uboot.env
+
+genimage                           \
+        --rootpath "${TARGET_DIR}"     \
+        --tmppath "${GENIMAGE_TMP}"    \
+        --inputpath "${BINARIES_DIR}"  \
+        --outputpath "${BINARIES_DIR}" \
+        --config "${GENIMAGE_CFG}"
+gzip < ${BINARIES_DIR}/sdcard.img > ${BINARIES_DIR}/sdcard.img.gz
+exit $?
board/synopsys/hsdk/uboot.env.txt new file +9 -0
new file mode 100644
index 0000000000..6bcfb56a77
@@ -0,0 +1,9 @@
+baudrate=115200
+bootargs=console=ttyS3,115200n8 root=/dev/mmcblk0p2 rootwait
+bootcmd=fatload mmc 0:1; bootm
+bootdelay=2
+bootfile=uImage
+loadaddr=0x82000000
+stderr=serial0 at f0005000
+stdin=serial0 at f0005000
+stdout=serial0 at f0005000
configs/snps_hsdk_defconfig new file +39 -0
new file mode 100644
index 0000000000..1f699f5e8c
@@ -0,0 +1,39 @@
+#Architecture
+BR2_arcle=y
+BR2_archs38=y
+
+#Linux headers
+BR2_KERNEL_HEADERS_4_14=y
+
+#System
+BR2_TARGET_GENERIC_HOSTNAME="hsdk"
+BR2_TARGET_GENERIC_ISSUE="Welcome to the HSDK Platform"
+BR2_SYSTEM_DHCP="eth0"
+
+#Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.4"
+BR2_LINUX_KERNEL_DEFCONFIG="hsdk"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/synopsys/hsdk/linux.fragment"
+
+#Filesystem / image
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/synopsys/hsdk/post-image.sh"
+
+#Bootloader
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.11"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="hsdk"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_FORMAT_ELF=y
+BR2_TARGET_UBOOT_ENVIMAGE=y
+BR2_TARGET_UBOOT_ENVIMAGE_SOURCE="board/synopsys/hsdk/uboot.env.txt"
+BR2_TARGET_UBOOT_ENVIMAGE_SIZE="0x4000"
Signature · 1 line
2.11.0
#1 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

Hello,

Are there any comments about this one? Otherwise could you please consider applying that patch.

-Evgeniy

Quoted 208 lines · Evgeniy Didin

Synopsys DesignWare HSDK (which stands for ARC HS Development Kit) is the latest and greatest development platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
?* Quad-core ARC HS38 CPU running at 1GHz
?* 4Gb of DDR
?* Built-in Vivante GPU (well supported via open source ???Etnaviv drivers)
?* Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
?* [micro] SD-card slot
?* 2 USB 2.0 ports
?* 1Gbit Ethernet port
?* Built-in Digilent JTAG probe
?* Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
?* FAT32 with uImage and uboot.env
?* EXT4 with root filesystem

We modify kernel config because in default hsdk kernel config CONFIG_INITRAMFS_SOURCE parameter is set and when we build rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set) error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which enables usage of uboot variables in the boot process.

Cc Thomas Petazzoni <[email protected]>
Cc Alexey Brodkin <[email protected]>
Cc arc-buildroot at synopsys.com

---
Changes since v1:

(quoted diff) +0 -5
-add entries in DEVELOPERS and .gitlab-ci.yml
-change genimage-hsdk.cfg to genimage.cfg
-enable BR2_TARGET_UBOOT_ENVIMAGE against mkenvimage in post-image.sh
-add renaming "uboot-env.bin" to "uboot.env" in post-image.sh
-changed tar to gzip when archiving sdcard.img
?.gitlab-ci.yml?????????????????????|??1 +
?DEVELOPERS?????????????????????????|??1 +
?board/synopsys/hsdk/genimage.cfg???| 26 +++++++++++++++++++++++++
?board/synopsys/hsdk/linux.fragment |??2 ++
?board/synopsys/hsdk/post-image.sh??| 18 ++++++++++++++++++
?board/synopsys/hsdk/uboot.env.txt??|??9 +++++++++
?configs/snps_hsdk_defconfig????????| 39

++++++++++++++++++++++++++++++++++++++
?7 files changed, 96 insertions(+)
?create mode 100644 board/synopsys/hsdk/genimage.cfg ?create mode 100644 board/synopsys/hsdk/linux.fragment ?create mode 100755 board/synopsys/hsdk/post-image.sh ?create mode 100644 board/synopsys/hsdk/uboot.env.txt ?create mode 100644 configs/snps_hsdk_defconfig

.gitlab-ci.yml +0 -0
index 691669f7f1..00e3879f00 100644
@@ -215,6 +215,7 @@ snps_arc700_axs101_defconfig: *defconfig

?snps_archs38_axs103_defconfig: *defconfig ?snps_archs38_haps_defconfig: *defconfig ?snps_archs38_vdk_defconfig: *defconfig +snps_hsdk_defconfig: *defconfig ?socrates_cyclone5_defconfig: *defconfig ?solidrun_macchiatobin_mainline_defconfig: *defconfig ?solidrun_macchiatobin_marvell_defconfig: *defconfig

DEVELOPERS +0 -0
index fe989c0775..9a93e423af 100644
@@ -153,6 +153,7 @@ F:	package/wf111/

?
?N: ARC Maintainers <[email protected]>
?F: arch/Config.in.arc
+F: board/synopsys
?
?N: Ariel D'Alessandro <[email protected]>
?F: package/axfsutils/

board/synopsys/hsdk/genimage.cfg new file +26 -0
new file mode 100644
index 0000000000..8928f704a2
@@ -0,0 +1,26 @@
+image boot.vfat {
+??vfat {
+????files = {
+??????"uboot.env",
+??????"uImage"
+????}
+??}
+??size = 100M
+}
+
+image sdcard.img {
+??hdimage {
+??}
+
+??partition boot {
+????partition-type = 0xC
+????bootable = "true"
+????image = "boot.vfat"
+??}
+
+??partition rootfs {
+????partition-type = 0x83
+????image = "rootfs.ext4"
+????size = 1G
+??}
+}
board/synopsys/hsdk/linux.fragment new file +2 -0
new file mode 100644
index 0000000000..53b9305e09
@@ -0,0 +1,2 @@
+CONFIG_INITRAMFS_SOURCE=
+CONFIG_ARC_UBOOT_SUPPORT=y
board/synopsys/hsdk/post-image.sh new file +18 -0
new file mode 100755
index 0000000000..e99a4a0b96
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+BOARD_DIR="$(dirname $0)"
+BOARD_NAME="$(basename ${BOARD_DIR})"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+rm -rf "${GENIMAGE_TMP}"
+
+mv ${BINARIES_DIR}/uboot-env.bin ${BINARIES_DIR}/uboot.env
+
+genimage???????????????????????????\
+????????--rootpath "${TARGET_DIR}"?????\
+????????--tmppath "${GENIMAGE_TMP}"????\
+????????--inputpath "${BINARIES_DIR}"??\
+????????--outputpath "${BINARIES_DIR}" \
+????????--config "${GENIMAGE_CFG}"
+gzip < ${BINARIES_DIR}/sdcard.img > ${BINARIES_DIR}/sdcard.img.gz
+exit $?
board/synopsys/hsdk/uboot.env.txt new file +9 -0
new file mode 100644
index 0000000000..6bcfb56a77
@@ -0,0 +1,9 @@
+baudrate=115200
+bootargs=console=ttyS3,115200n8 root=/dev/mmcblk0p2 rootwait
+bootcmd=fatload mmc 0:1; bootm
+bootdelay=2
+bootfile=uImage
+loadaddr=0x82000000
+stderr=serial0 at f0005000
+stdin=serial0 at f0005000
+stdout=serial0 at f0005000
configs/snps_hsdk_defconfig new file +18 -0
new file mode 100644
index 0000000000..1f699f5e8c
@@ -0,0 +1,39 @@
+#Architecture
+BR2_arcle=y
+BR2_archs38=y
+
+#Linux headers
+BR2_KERNEL_HEADERS_4_14=y
+
+#System
+BR2_TARGET_GENERIC_HOSTNAME="hsdk"
+BR2_TARGET_GENERIC_ISSUE="Welcome to the HSDK Platform"
+BR2_SYSTEM_DHCP="eth0"
+
+#Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.4"
+BR2_LINUX_KERNEL_DEFCONFIG="hsdk"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/synopsys/hsdk/linux.fr

agment"

configs/snps_hsdk_defconfig new file +21 -0
+
+#Filesystem / image
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/synopsys/hsdk/post-image.sh"
+
+#Bootloader
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.11"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="hsdk"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_FORMAT_ELF=y
+BR2_TARGET_UBOOT_ENVIMAGE=y
+BR2_TARGET_UBOOT_ENVIMAGE_SOURCE="board/synopsys/hsdk/uboot.env.txt"
+BR2_TARGET_UBOOT_ENVIMAGE_SIZE="0x4000"
#2 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

In reply to Evgeniy Didin

Hello,

Quoted 34 lines · Evgeniy Didin

Synopsys DesignWare HSDK (which stands for ARC HS Development Kit) is the latest and greatest development platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
* Quad-core ARC HS38 CPU running at 1GHz
* 4Gb of DDR
* Built-in Vivante GPU (well supported via open source Etnaviv drivers)
* Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
* [micro] SD-card slot
* 2 USB 2.0 ports
* 1Gbit Ethernet port
* Built-in Digilent JTAG probe
* Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
* FAT32 with uImage and uboot.env
* EXT4 with root filesystem

We modify kernel config because in default hsdk kernel config CONFIG_INITRAMFS_SOURCE parameter is set and when we build rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set) error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which enables usage of uboot variables in the boot process.

Cc Thomas Petazzoni <[email protected]>
Cc Alexey Brodkin <[email protected]>
Cc arc-buildroot at synopsys.com

---
Changes since v1:

Review

Quoted 5 lines
(quoted diff) +0 -5
-add entries in DEVELOPERS and .gitlab-ci.yml
-change genimage-hsdk.cfg to genimage.cfg
-enable BR2_TARGET_UBOOT_ENVIMAGE against mkenvimage in post-image.sh
-add renaming "uboot-env.bin" to "uboot.env" in post-image.sh
-changed tar to gzip when archiving sdcard.img

I'm worried if we can make it merged before the next Buildroot release. Any comments [except probably requirement to rebase as it's been more than a month since v2 was posted] or/and suggestions on this one?

-Alexey

#3 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

Hi Thomas, Peter, Arnout,

Quoted 31 lines · Alexey Brodkin

Hello,

Quoted 28 lines · Evgeniy Didin

Synopsys DesignWare HSDK (which stands for ARC HS Development Kit) is the latest and greatest development platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
* Quad-core ARC HS38 CPU running at 1GHz
* 4Gb of DDR
* Built-in Vivante GPU (well supported via open source Etnaviv drivers)
* Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
* [micro] SD-card slot
* 2 USB 2.0 ports
* 1Gbit Ethernet port
* Built-in Digilent JTAG probe
* Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
* FAT32 with uImage and uboot.env
* EXT4 with root filesystem

We modify kernel config because in default hsdk kernel config CONFIG_INITRAMFS_SOURCE parameter is set and when we build rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set) error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which enables usage of uboot variables in the boot process.

Quoted 16 lines

Review

Quoted 11 lines
Cc Thomas Petazzoni <[email protected]>
Cc Alexey Brodkin <[email protected]>
Cc arc-buildroot at synopsys.com

---
Changes since v1:

(quoted diff) +0 -5
-add entries in DEVELOPERS and .gitlab-ci.yml
-change genimage-hsdk.cfg to genimage.cfg
-enable BR2_TARGET_UBOOT_ENVIMAGE against mkenvimage in post-image.sh
-add renaming "uboot-env.bin" to "uboot.env" in post-image.sh
-changed tar to gzip when archiving sdcard.img

I'm worried if we can make it merged before the next Buildroot release. Any comments [except probably requirement to rebase as it's been more than a month since v2 was posted] or/and suggestions on this one?

Please pardon myself for being that annoying but it looks like 2018.02-rc1 was recently cut and that patch is not there yet.

It would be really cool if we may still get this one merged ASAP so it becomes a part of the upcoming release.

FWIW the board was now officially released, see
https://www.synopsys.com/dw/ipdir.php?ds=arc-hs-development-kit
and we're looking forward to have more people working with that quite capable board.

-Alexey

#4 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

Hi gents,

Most probably this thread somehow slipped through the cracks... I guess that's already too late for 2018.02 as we're on RC2 already :(

But anyways is there a chance to review/comment on this one?

-Alexey

Quoted 63 lines · Alexey Brodkin

Hi Thomas, Peter, Arnout,

Quoted 31 lines · Alexey Brodkin

Hello,

Quoted 28 lines · Evgeniy Didin

Synopsys DesignWare HSDK (which stands for ARC HS Development Kit) is the latest and greatest development platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
* Quad-core ARC HS38 CPU running at 1GHz
* 4Gb of DDR
* Built-in Vivante GPU (well supported via open source Etnaviv drivers)
* Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
* [micro] SD-card slot
* 2 USB 2.0 ports
* 1Gbit Ethernet port
* Built-in Digilent JTAG probe
* Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
* FAT32 with uImage and uboot.env
* EXT4 with root filesystem

We modify kernel config because in default hsdk kernel config CONFIG_INITRAMFS_SOURCE parameter is set and when we build rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set) error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which enables usage of uboot variables in the boot process.

Quoted 16 lines

Review

Quoted 11 lines
Cc Thomas Petazzoni <[email protected]>
Cc Alexey Brodkin <[email protected]>
Cc arc-buildroot at synopsys.com

---
Changes since v1:

(quoted diff) +0 -5
-add entries in DEVELOPERS and .gitlab-ci.yml
-change genimage-hsdk.cfg to genimage.cfg
-enable BR2_TARGET_UBOOT_ENVIMAGE against mkenvimage in post-image.sh
-add renaming "uboot-env.bin" to "uboot.env" in post-image.sh
-changed tar to gzip when archiving sdcard.img

I'm worried if we can make it merged before the next Buildroot release. Any comments [except probably requirement to rebase as it's been more than a month since v2 was posted] or/and suggestions on this one?

Please pardon myself for being that annoying but it looks like 2018.02-rc1 was recently cut and that patch is not there yet.

It would be really cool if we may still get this one merged ASAP so it becomes a part of the upcoming release.

FWIW the board was now officially released, see
https://www.synopsys.com/dw/ipdir.php?ds=arc-hs-development-kit
and we're looking forward to have more people working with that quite capable board.

-Alexey

#5 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

Hello,

More than 3 months have passed since the second version of patch was sent and there were no??any response/comment. Could you please apply this patch if there is no problems with it?

Best regards,
Evgeniy Didin

Quoted 73 lines · Alexey Brodkin

Hi gents,

Most probably this thread somehow slipped through the cracks... I guess that's already too late for 2018.02 as we're on RC2 already :(

But anyways is there a chance to review/comment on this one?

-Alexey

Quoted 63 lines · Alexey Brodkin

Hi Thomas, Peter, Arnout,

Quoted 31 lines · Alexey Brodkin

Hello,

Quoted 28 lines · Evgeniy Didin

Synopsys DesignWare HSDK (which stands for ARC HS Development Kit) is the latest and greatest development platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
?* Quad-core ARC HS38 CPU running at 1GHz
?* 4Gb of DDR
?* Built-in Vivante GPU (well supported via open source ???Etnaviv drivers)
?* Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
?* [micro] SD-card slot
?* 2 USB 2.0 ports
?* 1Gbit Ethernet port
?* Built-in Digilent JTAG probe
?* Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
?* FAT32 with uImage and uboot.env
?* EXT4 with root filesystem

We modify kernel config because in default hsdk kernel config CONFIG_INITRAMFS_SOURCE parameter is set and when we build rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set) error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which enables usage of uboot variables in the boot process.

Quoted 16 lines

Review

Quoted 11 lines
Cc Thomas Petazzoni <[email protected]>
Cc Alexey Brodkin <[email protected]>
Cc arc-buildroot at synopsys.com

---
Changes since v1:

(quoted diff) +0 -5
-add entries in DEVELOPERS and .gitlab-ci.yml
-change genimage-hsdk.cfg to genimage.cfg
-enable BR2_TARGET_UBOOT_ENVIMAGE against mkenvimage in post-image.sh
-add renaming "uboot-env.bin" to "uboot.env" in post-image.sh
-changed tar to gzip when archiving sdcard.img

I'm worried if we can make it merged before the next Buildroot release. Any comments [except probably requirement to rebase as? it's been more than a month since v2 was posted] or/and suggestions on this one?

Please pardon myself for being that annoying but it looks like 2018.02-rc1 was recently cut and that patch is not there yet.

It would be really cool if we may still get this one merged ASAP so it becomes a part of the upcoming release.

FWIW the board was now officially released, see?
https://www.synopsys.com/dw/ipdir.php?ds=arc-hs-development-kit
and we're looking forward to have more people working with that quite capable board.

-Alexey

#6 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

In reply to Evgeniy Didin

Hi Evgeniy,

Le 19/12/2017 ? 15:55, Evgeniy Didin a ?crit?:

Quoted 115 lines

Synopsys DesignWare HSDK (which stands for ARC HS Development Kit) is the latest and greatest development platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
* Quad-core ARC HS38 CPU running at 1GHz
* 4Gb of DDR
* Built-in Vivante GPU (well supported via open source Etnaviv drivers)
* Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
* [micro] SD-card slot
* 2 USB 2.0 ports
* 1Gbit Ethernet port
* Built-in Digilent JTAG probe
* Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
* FAT32 with uImage and uboot.env
* EXT4 with root filesystem

We modify kernel config because in default hsdk kernel config CONFIG_INITRAMFS_SOURCE parameter is set and when we build rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set) error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which enables usage of uboot variables in the boot process.

Cc Thomas Petazzoni <[email protected]>
Cc Alexey Brodkin <[email protected]>
Cc arc-buildroot at synopsys.com

---
Changes since v1:

(quoted diff) +0 -5
-add entries in DEVELOPERS and .gitlab-ci.yml
-change genimage-hsdk.cfg to genimage.cfg
-enable BR2_TARGET_UBOOT_ENVIMAGE against mkenvimage in post-image.sh
-add renaming "uboot-env.bin" to "uboot.env" in post-image.sh
-changed tar to gzip when archiving sdcard.img
 .gitlab-ci.yml                     |  1 +
 DEVELOPERS                         |  1 +
 board/synopsys/hsdk/genimage.cfg   | 26 +++++++++++++++++++++++++
 board/synopsys/hsdk/linux.fragment |  2 ++
 board/synopsys/hsdk/post-image.sh  | 18 ++++++++++++++++++
 board/synopsys/hsdk/uboot.env.txt  |  9 +++++++++
 configs/snps_hsdk_defconfig        | 39 ++++++++++++++++++++++++++++++++++++++
 7 files changed, 96 insertions(+)
 create mode 100644 board/synopsys/hsdk/genimage.cfg
 create mode 100644 board/synopsys/hsdk/linux.fragment
 create mode 100755 board/synopsys/hsdk/post-image.sh
 create mode 100644 board/synopsys/hsdk/uboot.env.txt
 create mode 100644 configs/snps_hsdk_defconfig
.gitlab-ci.yml +1 -0
index 691669f7f1..00e3879f00 100644
@@ -215,6 +215,7 @@ snps_arc700_axs101_defconfig: *defconfig
 snps_archs38_axs103_defconfig: *defconfig
 snps_archs38_haps_defconfig: *defconfig
 snps_archs38_vdk_defconfig: *defconfig
+snps_hsdk_defconfig: *defconfig
 socrates_cyclone5_defconfig: *defconfig
 solidrun_macchiatobin_mainline_defconfig: *defconfig
 solidrun_macchiatobin_marvell_defconfig: *defconfig
DEVELOPERS +1 -0
index fe989c0775..9a93e423af 100644
@@ -153,6 +153,7 @@ F:	package/wf111/
 
 N:	ARC Maintainers <[email protected]>
 F:	arch/Config.in.arc
+F:	board/synopsys
 
 N:	Ariel D'Alessandro <[email protected]>
 F:	package/axfsutils/
board/synopsys/hsdk/genimage.cfg new file +26 -0
new file mode 100644
index 0000000000..8928f704a2
@@ -0,0 +1,26 @@
+image boot.vfat {
+  vfat {
+    files = {
+      "uboot.env",
+      "uImage"
+    }
+  }
+  size = 100M
+}
+
+image sdcard.img {
+  hdimage {
+  }
+
+  partition boot {
+    partition-type = 0xC
+    bootable = "true"
+    image = "boot.vfat"
+  }
+
+  partition rootfs {
+    partition-type = 0x83
+    image = "rootfs.ext4"
+    size = 1G
+  }
+}
board/synopsys/hsdk/linux.fragment new file +0 -0
new file mode 100644
index 0000000000..53b9305e09

board/synopsys/hsdk/linux.fragment line 1

Quoted 1 line
board/synopsys/hsdk/linux.fragment new file +1 -0
@@ -0,0 +1,2 @@
+CONFIG_INITRAMFS_SOURCE=

should be CONFIG_INITRAMFS_SOURCE=""

configs/snps_hsdk_defconfig

Quoted 41 lines
board/synopsys/hsdk/linux.fragment new file +1 -0
+CONFIG_ARC_UBOOT_SUPPORT=y
board/synopsys/hsdk/post-image.sh new file +18 -0
new file mode 100755
index 0000000000..e99a4a0b96
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+BOARD_DIR="$(dirname $0)"
+BOARD_NAME="$(basename ${BOARD_DIR})"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+rm -rf "${GENIMAGE_TMP}"
+
+mv ${BINARIES_DIR}/uboot-env.bin ${BINARIES_DIR}/uboot.env
+
+genimage                           \
+        --rootpath "${TARGET_DIR}"     \
+        --tmppath "${GENIMAGE_TMP}"    \
+        --inputpath "${BINARIES_DIR}"  \
+        --outputpath "${BINARIES_DIR}" \
+        --config "${GENIMAGE_CFG}"
+gzip < ${BINARIES_DIR}/sdcard.img > ${BINARIES_DIR}/sdcard.img.gz
+exit $?
board/synopsys/hsdk/uboot.env.txt new file +9 -0
new file mode 100644
index 0000000000..6bcfb56a77
@@ -0,0 +1,9 @@
+baudrate=115200
+bootargs=console=ttyS3,115200n8 root=/dev/mmcblk0p2 rootwait
+bootcmd=fatload mmc 0:1; bootm
+bootdelay=2
+bootfile=uImage
+loadaddr=0x82000000
+stderr=serial0 at f0005000
+stdin=serial0 at f0005000
+stdout=serial0 at f0005000
configs/snps_hsdk_defconfig +0 -0

should be snps_archs38_hsdk_defconfig like for other snps_archs38*_defconfig

With these minor comment

Best regards,
Romain

Quoted 45 lines

new file mode 100644
index 0000000000..1f699f5e8c

configs/snps_hsdk_defconfig new file +39 -0
@@ -0,0 +1,39 @@
+#Architecture
+BR2_arcle=y
+BR2_archs38=y
+
+#Linux headers
+BR2_KERNEL_HEADERS_4_14=y
+
+#System
+BR2_TARGET_GENERIC_HOSTNAME="hsdk"
+BR2_TARGET_GENERIC_ISSUE="Welcome to the HSDK Platform"
+BR2_SYSTEM_DHCP="eth0"
+
+#Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.4"
+BR2_LINUX_KERNEL_DEFCONFIG="hsdk"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/synopsys/hsdk/linux.fragment"
+
+#Filesystem / image
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/synopsys/hsdk/post-image.sh"
+
+#Bootloader
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.11"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="hsdk"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_FORMAT_ELF=y
+BR2_TARGET_UBOOT_ENVIMAGE=y
+BR2_TARGET_UBOOT_ENVIMAGE_SOURCE="board/synopsys/hsdk/uboot.env.txt"
+BR2_TARGET_UBOOT_ENVIMAGE_SIZE="0x4000"
#7 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

I have a few more comments... Sorry it took so long to get any review at all,
but we have a really long patch backlog...

Quoted 30 lines · Romain Naour

Hi Evgeniy,

Le 19/12/2017 ? 15:55, Evgeniy Didin a ?crit?:

Quoted 27 lines

Synopsys DesignWare HSDK (which stands for ARC HS Development Kit) is the latest and greatest development platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
* Quad-core ARC HS38 CPU running at 1GHz
* 4Gb of DDR
* Built-in Vivante GPU (well supported via open source Etnaviv drivers)
* Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
* [micro] SD-card slot
* 2 USB 2.0 ports
* 1Gbit Ethernet port
* Built-in Digilent JTAG probe
* Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
* FAT32 with uImage and uboot.env
* EXT4 with root filesystem

We modify kernel config because in default hsdk kernel config CONFIG_INITRAMFS_SOURCE parameter is set and when we build rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set) error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which enables usage of uboot variables in the boot process.

And why is this needed?

Quoted 10 lines
Quoted 10 lines
Cc Thomas Petazzoni <[email protected]>
Cc Alexey Brodkin <[email protected]>
Cc arc-buildroot at synopsys.com

---
Changes since v1:

(quoted diff) +0 -3
-add entries in DEVELOPERS and .gitlab-ci.yml
-change genimage-hsdk.cfg to genimage.cfg
-enable BR2_TARGET_UBOOT_ENVIMAGE against mkenvimage in post-image.sh
Quoted 8 lines

Review

Quoted 8 lines
(quoted diff) +0 -2
-add renaming "uboot-env.bin" to "uboot.env" in post-image.sh
-changed tar to gzip when archiving sdcard.img
 .gitlab-ci.yml                     |  1 +
 DEVELOPERS                         |  1 +
 board/synopsys/hsdk/genimage.cfg   | 26 +++++++++++++++++++++++++
 board/synopsys/hsdk/linux.fragment |  2 ++
 board/synopsys/hsdk/post-image.sh  | 18 ++++++++++++++++++
 board/synopsys/hsdk/uboot.env.txt  |  9 +++++++++

Please also add a readme.txt, cfr. vdk. Yes, it can be extremely simple in this
case.

Quoted 26 lines
Quoted 26 lines
 configs/snps_hsdk_defconfig        | 39 ++++++++++++++++++++++++++++++++++++++
 7 files changed, 96 insertions(+)
 create mode 100644 board/synopsys/hsdk/genimage.cfg
 create mode 100644 board/synopsys/hsdk/linux.fragment
 create mode 100755 board/synopsys/hsdk/post-image.sh
 create mode 100644 board/synopsys/hsdk/uboot.env.txt
 create mode 100644 configs/snps_hsdk_defconfig
.gitlab-ci.yml +1 -0
index 691669f7f1..00e3879f00 100644
@@ -215,6 +215,7 @@ snps_arc700_axs101_defconfig: *defconfig
 snps_archs38_axs103_defconfig: *defconfig
 snps_archs38_haps_defconfig: *defconfig
 snps_archs38_vdk_defconfig: *defconfig
+snps_hsdk_defconfig: *defconfig
 socrates_cyclone5_defconfig: *defconfig
 solidrun_macchiatobin_mainline_defconfig: *defconfig
 solidrun_macchiatobin_marvell_defconfig: *defconfig
DEVELOPERS +0 -0
index fe989c0775..9a93e423af 100644
@@ -153,6 +153,7 @@ F:	package/wf111/
 
Quoted 3 lines

DEVELOPERS F: package/wf111/ · line 156

Quoted 3 lines
DEVELOPERS +1 -0
 N:	ARC Maintainers <[email protected]>
 F:	arch/Config.in.arc
+F:	board/synopsys

Please add a / in the end like is done for (most) other directories.

Quoted 17 lines
Quoted 9 lines
DEVELOPERS +0 -0
 N:	Ariel D'Alessandro <[email protected]>
 F:	package/axfsutils/
board/synopsys/hsdk/genimage.cfg new file +0 -0
new file mode 100644
index 0000000000..8928f704a2

board/synopsys/hsdk/genimage.cfg line 8

Quoted 8 lines
board/synopsys/hsdk/genimage.cfg new file +8 -0
@@ -0,0 +1,26 @@
+image boot.vfat {
+  vfat {
+    files = {
+      "uboot.env",
+      "uImage"
+    }
+  }
+  size = 100M

Does it really need to be that large? Making this partition large means that
also the sdcard.img will be large, which means it takes longer to dd it to an actual SD card.

Quoted 8 lines
Quoted 8 lines
board/synopsys/hsdk/genimage.cfg new file +8 -0
+}
+
+image sdcard.img {
+  hdimage {
+  }
+
+  partition boot {
+    partition-type = 0xC
Quoted 8 lines

board/synopsys/hsdk/genimage.cfg line 24

Quoted 8 lines
board/synopsys/hsdk/genimage.cfg new file +8 -0
+    bootable = "true"
+    image = "boot.vfat"
+  }
+
+  partition rootfs {
+    partition-type = 0x83
+    image = "rootfs.ext4"
+    size = 1G

I would remove the size = 1G as well. genimage will infer the partition size
from the size of rootfs.ext4, which is fine. Putting an explicit size here which is different from BR2_TARGET_ROOTFS_EXT2_SIZE is pointless I think. Yes, you can use resize2fs to use the full partition size - but then you probably want to also repartition and use the full SD card size.

I understand that all the other genimage.cfg files we have in Buildroot do
specify a size (though normally only 512M), but I think we should change that.

Can you try leaving it out and see if that works for you?

Quoted 27 lines

board/synopsys/hsdk/linux.fragment line 1

Quoted 9 lines
board/synopsys/hsdk/genimage.cfg new file +2 -0
+  }
+}
board/synopsys/hsdk/linux.fragment new file +1 -0
new file mode 100644
index 0000000000..53b9305e09
@@ -0,0 +1,2 @@
+CONFIG_INITRAMFS_SOURCE=

should be CONFIG_INITRAMFS_SOURCE=""

Quoted 15 lines
board/synopsys/hsdk/linux.fragment new file +1 -0
+CONFIG_ARC_UBOOT_SUPPORT=y
board/synopsys/hsdk/post-image.sh new file +8 -0
new file mode 100755
index 0000000000..e99a4a0b96
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+BOARD_DIR="$(dirname $0)"
+BOARD_NAME="$(basename ${BOARD_DIR})"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+rm -rf "${GENIMAGE_TMP}"
+
Quoted 8 lines

board/synopsys/hsdk/post-image.sh line 16

Quoted 8 lines
board/synopsys/hsdk/post-image.sh new file +8 -0
+mv ${BINARIES_DIR}/uboot-env.bin ${BINARIES_DIR}/uboot.env
+
+genimage                           \
+        --rootpath "${TARGET_DIR}"     \
+        --tmppath "${GENIMAGE_TMP}"    \
+        --inputpath "${BINARIES_DIR}"  \
+        --outputpath "${BINARIES_DIR}" \
+        --config "${GENIMAGE_CFG}"

Please use support/scripts/genimage.sh directly as BR2_ROOTFS_POST_IMAGE_SCRIPT.

Quoted 1 line

board/synopsys/hsdk/post-image.sh line 17

Quoted 1 line
board/synopsys/hsdk/post-image.sh new file +1 -0
+gzip < ${BINARIES_DIR}/sdcard.img > ${BINARIES_DIR}/sdcard.img.gz

I don't think we should do this. If you don't use those huge sizes, the image
size isn't that large anyway :-).

Quoted 28 lines

configs/snps_hsdk_defconfig

Quoted 17 lines
board/synopsys/hsdk/post-image.sh new file +1 -0
+exit $?
board/synopsys/hsdk/uboot.env.txt new file +9 -0
new file mode 100644
index 0000000000..6bcfb56a77
@@ -0,0 +1,9 @@
+baudrate=115200
+bootargs=console=ttyS3,115200n8 root=/dev/mmcblk0p2 rootwait
+bootcmd=fatload mmc 0:1; bootm
+bootdelay=2
+bootfile=uImage
+loadaddr=0x82000000
+stderr=serial0 at f0005000
+stdin=serial0 at f0005000
+stdout=serial0 at f0005000
configs/snps_hsdk_defconfig +0 -0

should be snps_archs38_hsdk_defconfig like for other snps_archs38*_defconfig

With these minor comment

Best regards,
Romain

Quoted 6 lines

configs/snps_hsdk_defconfig line 1

Quoted 6 lines

new file mode 100644
index 0000000000..1f699f5e8c

configs/snps_hsdk_defconfig new file +1 -0
@@ -0,0 +1,39 @@
+#Architecture

Good that you have comments here, but please add a space after #.

Regards,
Arnout

Quoted 38 lines
Quoted 38 lines
configs/snps_hsdk_defconfig new file +38 -0
+BR2_arcle=y
+BR2_archs38=y
+
+#Linux headers
+BR2_KERNEL_HEADERS_4_14=y
+
+#System
+BR2_TARGET_GENERIC_HOSTNAME="hsdk"
+BR2_TARGET_GENERIC_ISSUE="Welcome to the HSDK Platform"
+BR2_SYSTEM_DHCP="eth0"
+
+#Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.4"
+BR2_LINUX_KERNEL_DEFCONFIG="hsdk"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/synopsys/hsdk/linux.fragment"
+
+#Filesystem / image
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/synopsys/hsdk/post-image.sh"
+
+#Bootloader
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.11"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="hsdk"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_FORMAT_ELF=y
+BR2_TARGET_UBOOT_ENVIMAGE=y
+BR2_TARGET_UBOOT_ENVIMAGE_SOURCE="board/synopsys/hsdk/uboot.env.txt"
+BR2_TARGET_UBOOT_ENVIMAGE_SIZE="0x4000"
Signature · 6 lines
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
#8 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

Hi Arnout,

Quoted 29 lines · Arnout Vandecappelle

I have a few more comments... Sorry it took so long to get any review at all,
but we have a really long patch backlog...

Quoted 25 lines · Romain Naour

Hi Evgeniy,

Le 19/12/2017 ? 15:55, Evgeniy Didin a ?crit :

Quoted 22 lines

Synopsys DesignWare HSDK (which stands for ARC HS Development Kit) is the latest and greatest development platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
* Quad-core ARC HS38 CPU running at 1GHz
* 4Gb of DDR
* Built-in Vivante GPU (well supported via open source Etnaviv drivers)
* Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
* [micro] SD-card slot
* 2 USB 2.0 ports
* 1Gbit Ethernet port
* Built-in Digilent JTAG probe
* Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
* FAT32 with uImage and uboot.env
* EXT4 with root filesystem

Quoted 7 lines
Quoted 5 lines
Quoted 5 lines

We modify kernel config because in default hsdk kernel config CONFIG_INITRAMFS_SOURCE parameter is set and when we build rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set) error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which enables usage of uboot variables in the boot process.

And why is this needed?

We use core registers to pass 2 important pieces of information from U-boot to the Linux kernel.

1. R0 - There's a payload passed to the kernel
=1 - bootargs are passed
=2 - .dtb is passed

2. R2 - Address where mentioned above payload is stored

And if we use U-Boot there should be no problem because
R0 is guaranteed to be set to either 1 or 2 which we then check in the kernel and R2 containing an address is checked for having sane address.

But if u-Boot is not used:
- Linux kernel is loaded via JTAG
- Linux kernel is loaded by some other pre-bootloader
those regs might contain bogus values causing us unpredictable issues.

Quoted 12 lines
Quoted 12 lines
Quoted 12 lines
Cc Thomas Petazzoni <[email protected]>
Cc Alexey Brodkin <[email protected]>
Cc arc-buildroot at synopsys.com

---
Changes since v1:

(quoted diff) +0 -5
-add entries in DEVELOPERS and .gitlab-ci.yml
-change genimage-hsdk.cfg to genimage.cfg
-enable BR2_TARGET_UBOOT_ENVIMAGE against mkenvimage in post-image.sh
-add renaming "uboot-env.bin" to "uboot.env" in post-image.sh
-changed tar to gzip when archiving sdcard.img
Quoted 8 lines
Quoted 6 lines
Quoted 6 lines
 .gitlab-ci.yml                     |  1 +
 DEVELOPERS                         |  1 +
 board/synopsys/hsdk/genimage.cfg   | 26 +++++++++++++++++++++++++
 board/synopsys/hsdk/linux.fragment |  2 ++
 board/synopsys/hsdk/post-image.sh  | 18 ++++++++++++++++++
 board/synopsys/hsdk/uboot.env.txt  |  9 +++++++++

Please also add a readme.txt, cfr. vdk.

readme.txt is understood but what are "cfr. vdk."?

Quoted 13 lines
Quoted 13 lines
Quoted 13 lines

N: Ariel D'Alessandro <[email protected]>
F: package/axfsutils/

board/synopsys/hsdk/genimage.cfg new file +4 -0
new file mode 100644
index 0000000000..8928f704a2
@@ -0,0 +1,26 @@
+image boot.vfat {
+  vfat {
+    files = {
+      "uboot.env",
Quoted 8 lines
Quoted 4 lines

board/synopsys/hsdk/genimage.cfg line 8

Quoted 4 lines
board/synopsys/hsdk/genimage.cfg new file +4 -0
+      "uImage"
+    }
+  }
+  size = 100M

Does it really need to be that large? Making this partition large means that
also the sdcard.img will be large, which means it takes longer to dd it to an actual SD card.

Well 100 Mb is not that much and with write speed ~20Mb/sec it's still tolerable. But in the same time it leaves as an ability to put more things to that partition. Like other uImages etc. Indeed if that was a production image we'd only expect fixed and predefined stuff to be put there and say 10Mb would be just ok. But that vanilla Buildroot config is just a good starting point for people to play with the board.

The only downside here is larger sdcard.img which if not compressed is not that convenient for sharing thus we wanted to compress it.

Quoted 23 lines
Quoted 8 lines
Quoted 8 lines
board/synopsys/hsdk/genimage.cfg new file +8 -0
+}
+
+image sdcard.img {
+  hdimage {
+  }
+
+  partition boot {
+    partition-type = 0xC
Quoted 8 lines

board/synopsys/hsdk/genimage.cfg line 24

Quoted 8 lines
board/synopsys/hsdk/genimage.cfg new file +8 -0
+    bootable = "true"
+    image = "boot.vfat"
+  }
+
+  partition rootfs {
+    partition-type = 0x83
+    image = "rootfs.ext4"
+    size = 1G

I would remove the size = 1G as well. genimage will infer the partition size
from the size of rootfs.ext4, which is fine. Putting an explicit size here which is different from BR2_TARGET_ROOTFS_EXT2_SIZE is pointless I think. Yes, you can use resize2fs to use the full partition size - but then you probably want to also repartition and use the full SD card size.

Quoted 2 lines

I understand that all the other genimage.cfg files we have in Buildroot do
specify a size (though normally only 512M), but I think we should change that.

Agree, that sounds good.

Quoted 1 line

Can you try leaving it out and see if that works for you?

It works as expected!

-Alexey

#9 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

Quoted 10 lines · Alexey Brodkin

Hi Arnout,

Quoted 7 lines · Arnout Vandecappelle

I have a few more comments... Sorry it took so long to get any review at all,
but we have a really long patch backlog...

Quoted 3 lines · Romain Naour

Hi Evgeniy,

Le 19/12/2017 ? 15:55, Evgeniy Didin a ?crit :

[snip]

Quoted 10 lines
Quoted 8 lines
Quoted 6 lines
Quoted 6 lines
 .gitlab-ci.yml                     |  1 +
 DEVELOPERS                         |  1 +
 board/synopsys/hsdk/genimage.cfg   | 26 +++++++++++++++++++++++++
 board/synopsys/hsdk/linux.fragment |  2 ++
 board/synopsys/hsdk/post-image.sh  | 18 ++++++++++++++++++
 board/synopsys/hsdk/uboot.env.txt  |  9 +++++++++

Please also add a readme.txt, cfr. vdk.

readme.txt is understood but what are "cfr. vdk."?

There is another "board" in board/synopsys/vdk that has a proper readme.txt.
Since it's under board/synopsys, I assumed you guys were aware of it. I didn't realize that it was an ARM simulator, not a real board.

Quoted 21 lines
Quoted 12 lines
Quoted 12 lines
Quoted 12 lines

N: Ariel D'Alessandro <[email protected]>
F: package/axfsutils/

board/synopsys/hsdk/genimage.cfg new file +4 -0
new file mode 100644
index 0000000000..8928f704a2
@@ -0,0 +1,26 @@
+image boot.vfat {
+  vfat {
+    files = {
+      "uboot.env",
Quoted 8 lines
Quoted 4 lines

board/synopsys/hsdk/genimage.cfg line 8

Quoted 4 lines
board/synopsys/hsdk/genimage.cfg new file +4 -0
+      "uImage"
+    }
+  }
+  size = 100M

Does it really need to be that large? Making this partition large means that
also the sdcard.img will be large, which means it takes longer to dd it to an actual SD card.

Quoted 1 line

Well 100 Mb is not that much and with write speed ~20Mb/sec it's still tolerable.

You mean I should buy faster SD cards than the 1.4MB/s cards I typically use? :-)

Quoted 4 lines

But in the same time it leaves as an ability to put more things to that partition. Like other uImages etc. Indeed if that was a production image we'd only expect fixed and predefined stuff to be put there and say 10Mb would be just ok. But that vanilla Buildroot config is just a good starting point for people to play with the board.

IMO 100MB is total overkill. A kernel shouldn't grow much over 5MB (definitely
not in the buildroot context) and you don't need 20 different ones, do you? Looking at other boards, 20-30MB is more typical.

That said, I'm not going to block the patch over this thing :-).

Regards,
Arnout

Quoted 4 lines

The only downside here is larger sdcard.img which if not compressed is not that convenient for sharing thus we wanted to compress it.

[snip]

Signature · 6 lines
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
#10 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

In reply to Evgeniy Didin

Hello,

board/synopsys/hsdk/post-image.sh line 9

Quoted 13 lines · Evgeniy Didin

index 0000000000..e99a4a0b96

board/synopsys/hsdk/post-image.sh new file +9 -0
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+BOARD_DIR="$(dirname $0)"
+BOARD_NAME="$(basename ${BOARD_DIR})"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+rm -rf "${GENIMAGE_TMP}"
+
+mv ${BINARIES_DIR}/uboot-env.bin ${BINARIES_DIR}/uboot.env

This rename can be done by the genimage.cfg file.

board/synopsys/hsdk/post-image.sh line 17

Quoted 8 lines
board/synopsys/hsdk/post-image.sh new file +8 -0
+
+genimage                           \
+        --rootpath "${TARGET_DIR}"     \
+        --tmppath "${GENIMAGE_TMP}"    \
+        --inputpath "${BINARIES_DIR}"  \
+        --outputpath "${BINARIES_DIR}" \
+        --config "${GENIMAGE_CFG}"
+gzip < ${BINARIES_DIR}/sdcard.img > ${BINARIES_DIR}/sdcard.img.gz

And we don't need to generate a compressed SD card image.

With those two changes, the common support/scripts/genimage.sh script can be used.

I think Peter will fix this up when applying.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#11 lore raw

PATCH v2 1/1 board: add support for ARC HS Development Kit (HSDK)

Quoted 32 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Hello,

board/synopsys/hsdk/post-image.sh line 9

Quoted 13 lines · Evgeniy Didin

index 0000000000..e99a4a0b96

board/synopsys/hsdk/post-image.sh new file +9 -0
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+BOARD_DIR="$(dirname $0)"
+BOARD_NAME="$(basename ${BOARD_DIR})"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+rm -rf "${GENIMAGE_TMP}"
+
+mv ${BINARIES_DIR}/uboot-env.bin ${BINARIES_DIR}/uboot.env

This rename can be done by the genimage.cfg file.

board/synopsys/hsdk/post-image.sh line 17

Quoted 8 lines
board/synopsys/hsdk/post-image.sh new file +8 -0
+
+genimage                           \
+        --rootpath "${TARGET_DIR}"     \
+        --tmppath "${GENIMAGE_TMP}"    \
+        --inputpath "${BINARIES_DIR}"  \
+        --outputpath "${BINARIES_DIR}" \
+        --config "${GENIMAGE_CFG}"
+gzip < ${BINARIES_DIR}/sdcard.img > ${BINARIES_DIR}/sdcard.img.gz

And we don't need to generate a compressed SD card image.

Quoted 4 lines

With those two changes, the common support/scripts/genimage.sh script can be used.

I think Peter will fix this up when applying.

Correct. Applied with the following changes:

- Renamed defconfig to snps_archs38_hsdk_defconfig
- Fix comments in defconfig
- Added defconfig to DEVELOPERS and fixup board/synopsys entry
- Drop postimage script, rename env file in genimage.cfg and drop size setting for rootfs partition
- Add "" for CONFIG_INITRAMFS_SOURCE in linux fragment

It would be good if you could add a followup patch adding a readme.txt and update DEVELOPERS with the other snps defconfigs.

Signature · 1 line
Bye, Peter Korsgaard