From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6780366809388285952 X-Received: by 2002:ac2:544f:: with SMTP id d15mr5287960lfn.126.1580293812723; Wed, 29 Jan 2020 02:30:12 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:b5d9:: with SMTP id g25ls3513433ljn.9.gmail; Wed, 29 Jan 2020 02:30:11 -0800 (PST) X-Google-Smtp-Source: APXvYqy+gQcZPLHcZJYOJ83cpjvvvaAK/eA4MmYVWNhpgl17EeMZ+aT02EVqvd0B50/iSaviOeUZ X-Received: by 2002:a2e:9183:: with SMTP id f3mr15857373ljg.64.1580293811713; Wed, 29 Jan 2020 02:30:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580293811; cv=none; d=google.com; s=arc-20160816; b=YobMTninw0/aeJCi7Xrkd5W97mpogmdrHORaNZMupkuz+LrbAmjTdBT3K48LE23zH3 7R0oMhwZOj2SlTGC4clczFEw20okPW364h5EdNYo28yolwcvYxpjrlliN96JuDvA4gKU hodLwR0G36kP6O2/v9cfWzMCKrmTPqwxdOs87yGqSXoB61WPE5LvqMu3zhcychGi/Vv1 kf2lI7PX6C531V8WaqOo/txvoBXJfoznBW0DdkheV/0v9ogzvWk07QYMQpUDLauZiBWz XF+gdXI7G9RqzaL/N5PIhyOgGnKp5Gp8gfYI1OTGC4gvofhjEV0YuPkB6JkIt3agyW9+ rm7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:references:in-reply-to:message-id:date :subject:to:from; bh=lU556GpaEX4ET6r2azuzhe+EV3C25L5ak5yIMfWchq8=; b=0+LY2VxOSVa9gIdAJHCQSiS8rAL8Nh7h1gjiZOkFrl4zxChlbrk99Iwi1cdZzB/lF7 tjwRgw3MzdY9XA+UJ711aBuzJT/+n5x9b9FEgU6k9QPjJJSBLZ4NJ9KNjPZkJHUtBEfX 03qhoTyi78GWi+ApqULl8TR338nN+1Xa16Dk0w22JbrtqZumOb0Aw5spCKts7XVCONxf Gz2C4ojvH83viEXSmT2Z0LwTjB7w3dyR5mtylbLOLh8yn9EslW50ebvtyWGGANUB5S2Q hCNDPjbXz4+sC+dl2ZHZ3skLFKLVKtC4bzbGnnAqrmSH/cSHWtHAeC0o23YIBq82N0r1 BOoQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id o193si47678lff.4.2020.01.29.02.30.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Jan 2020 02:30:11 -0800 (PST) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id 00TAUAdL009305 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 29 Jan 2020 11:30:10 +0100 Received: from md1f2u6c.ad001.siemens.net ([167.87.47.1]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id 00TAU6E3009574 for ; Wed, 29 Jan 2020 11:30:10 +0100 From: Jan Kiszka To: isar-users Subject: [PATCH v3 14/14] meta-isar: Add HiFive Unleashed board as physical RISC-V target Date: Wed, 29 Jan 2020 11:30:06 +0100 Message-Id: <8b8876326fe10f3904a142ddf8c7f1e5035f4fe8.1580293806.git.jan.kiszka@siemens.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: References: In-Reply-To: References: X-TUID: yeSZQ6V+cAxT From: Jan Kiszka The Unleashed board (https://www.sifive.com/boards/hifive-unleashed) was the first one running regular Linux. This target generates a Debian sid image that starts fine from an SD-card in default boot mode. The Debian kernel does not work, though, because of an excessive initramfs being generated (45MB) that gets stuck. As the MMC driver is in that image, we also cannot disable the initramfs. So build the mainline kernel which is starts also faster. We can use the binary U-Boot from Debian sid, though. Signed-off-by: Jan Kiszka --- meta-isar/conf/local.conf.sample | 1 + meta-isar/conf/machine/sifive-fu540.conf | 15 ++++++++++++++ .../conf/multiconfig/sifive-fu540-sid-ports.conf | 7 +++++++ .../recipes-bsp/opensbi/files/sifive-fu540-rules | 13 ++++++++++++ .../opensbi/opensbi-sifive-fu540_0.5.bb | 23 ++++++++++++++++++++++ .../scripts/lib/wic/canned-wks/sifive-fu540.wks | 10 ++++++++++ 6 files changed, 69 insertions(+) create mode 100644 meta-isar/conf/machine/sifive-fu540.conf create mode 100644 meta-isar/conf/multiconfig/sifive-fu540-sid-ports.conf create mode 100644 meta-isar/recipes-bsp/opensbi/files/sifive-fu540-rules create mode 100644 meta-isar/recipes-bsp/opensbi/opensbi-sifive-fu540_0.5.bb create mode 100644 meta-isar/scripts/lib/wic/canned-wks/sifive-fu540.wks diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample index 9a602bee..eeea867f 100644 --- a/meta-isar/conf/local.conf.sample +++ b/meta-isar/conf/local.conf.sample @@ -60,6 +60,7 @@ BBMULTICONFIG = " \ hikey-stretch \ nand-ubi-demo-buster \ rpi-stretch \ + sifive-fu540-sid-ports \ " # diff --git a/meta-isar/conf/machine/sifive-fu540.conf b/meta-isar/conf/machine/sifive-fu540.conf new file mode 100644 index 00000000..c815f4a8 --- /dev/null +++ b/meta-isar/conf/machine/sifive-fu540.conf @@ -0,0 +1,15 @@ +# +# Copyright (c) Siemens AG, 2020 +# +# SPDX-License-Identifier: MIT + +DISTRO_ARCH = "riscv64" + +KERNEL_NAME ?= "mainline" + +IMAGE_TYPE ?= "wic-img" +WKS_FILE ?= "sifive-fu540" +IMAGER_INSTALL += "opensbi-sifive-fu540" +IMAGER_BUILD_DEPS += "opensbi-sifive-fu540" + +IMAGE_INSTALL += "u-boot-script" diff --git a/meta-isar/conf/multiconfig/sifive-fu540-sid-ports.conf b/meta-isar/conf/multiconfig/sifive-fu540-sid-ports.conf new file mode 100644 index 00000000..e4e0248c --- /dev/null +++ b/meta-isar/conf/multiconfig/sifive-fu540-sid-ports.conf @@ -0,0 +1,7 @@ +# +# Copyright (c) Siemens AG, 2020 +# +# SPDX-License-Identifier: MIT + +MACHINE = "sifive-fu540" +DISTRO = "debian-sid-ports" diff --git a/meta-isar/recipes-bsp/opensbi/files/sifive-fu540-rules b/meta-isar/recipes-bsp/opensbi/files/sifive-fu540-rules new file mode 100644 index 00000000..c8feb715 --- /dev/null +++ b/meta-isar/recipes-bsp/opensbi/files/sifive-fu540-rules @@ -0,0 +1,13 @@ +#!/usr/bin/make -f + +ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) +export CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)- +endif + +PARALLEL_BUILD=-j $(shell echo $$(($$(nproc) * 2))) + +override_dh_auto_build: + CFLAGS= LDFLAGS= $(MAKE) $(PARALLEL_BUILD) PLATFORM=sifive/fu540 FW_PAYLOAD_PATH=/usr/lib/u-boot/sifive_fu540/u-boot.bin + +%: + dh $@ diff --git a/meta-isar/recipes-bsp/opensbi/opensbi-sifive-fu540_0.5.bb b/meta-isar/recipes-bsp/opensbi/opensbi-sifive-fu540_0.5.bb new file mode 100644 index 00000000..b9d0c3e1 --- /dev/null +++ b/meta-isar/recipes-bsp/opensbi/opensbi-sifive-fu540_0.5.bb @@ -0,0 +1,23 @@ +# +# Copyright (c) Siemens AG, 2020 +# +# SPDX-License-Identifier: MIT + +inherit dpkg + +SRC_URI = " \ + https://github.com/riscv/opensbi/archive/v${PV}.tar.gz;downloadfilename=opensbi-${PV}.tar.gz \ + file://sifive-fu540-rules" +SRC_URI[sha256sum] = "bc82f1e63663cafb7976b324d8a01263510cfd816063dc89e0ccffb9763fb1dd" + +S = "${WORKDIR}/opensbi-${PV}" + +do_prepare_build[cleandirs] += "${S}/debian" +do_prepare_build() { + cp ${WORKDIR}/sifive-fu540-rules ${WORKDIR}/rules + deb_debianize + + sed -i 's/\(Build-Depends:.*\)/\1, u-boot-sifive/' ${S}/debian/control + + echo "build/platform/sifive/fu540/firmware/fw_payload.bin /usr/lib/opensbi/sifive-fu540/" > ${S}/debian/install +} diff --git a/meta-isar/scripts/lib/wic/canned-wks/sifive-fu540.wks b/meta-isar/scripts/lib/wic/canned-wks/sifive-fu540.wks new file mode 100644 index 00000000..445b9d02 --- /dev/null +++ b/meta-isar/scripts/lib/wic/canned-wks/sifive-fu540.wks @@ -0,0 +1,10 @@ +# +# Copyright (c) Siemens AG, 2020 +# +# SPDX-License-Identifier: MIT + +part --source rawcopy --sourceparams "file=/usr/lib/opensbi/sifive-fu540/fw_payload.bin" --ondisk mmcblk0 --fixed-size 8M --align 1 --part-type 2e54b353-1271-4842-806f-e436d6af6985 + +part / --source rootfs-u-boot --ondisk mmcblk0 --fstype ext4 --label platform --active --align 1024 --sourceparams "no_initrd=yes,script_prepend=setenv fdtfile sifive/hifive-unleashed-a00.dtb" + +bootloader --ptable gpt --append "rootwait" -- 2.16.4