From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B1793C47096 for ; Sun, 6 Jun 2021 17:10:31 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8D4CB613C8 for ; Sun, 6 Jun 2021 17:10:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8D4CB613C8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1480480C92; Sun, 6 Jun 2021 19:10:28 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bbcCpyg9"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6162481660; Sun, 6 Jun 2021 19:10:26 +0200 (CEST) Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9F00380C68 for ; Sun, 6 Jun 2021 19:10:18 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=seanga2@gmail.com Received: by mail-qk1-x72c.google.com with SMTP id c138so1623915qkg.5 for ; Sun, 06 Jun 2021 10:10:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=NI3mEdh4iP7iXP5fvNWibySvT3bpXYGmvfQxizO1OE8=; b=bbcCpyg9Y6Gnwe575jk7XxdgQWL8kb6flBMU/Zxk/aI0yLMIgW7heWMw9JlgRQLTst ogtXdMWM+fWiu5kd4e0qcw/3pknFeaQd4GnEow4Co+GQ/8H0lUwf9t35HJJUx5lNoCqh iTnZG4OdhW3pK50F4q327VcDVjKrV/4Zrnqp6SfpAGV+RkRedRnHd+lYUJHJlErXCGAC Y7AeV5kvenIp6ZYCkqtqfVX79xgrwQiY68O3zQwfqsPJTX8EZi8vgsFC6jOp8MVWuIF7 LDvBuji0fhQujpDxdH1SKURXtbToO/B0uW9uZWBaiDgc6KKYkhCqHMXZf6BvASkORnjc THgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=NI3mEdh4iP7iXP5fvNWibySvT3bpXYGmvfQxizO1OE8=; b=nIPgdO+/tIG7SuFua4x1f0T4Sq4weVx7hJD+641Gu4lu7Ypc7EVFkBxYKUwiEBdu1o rGzxIkdTIpCtGhx89cnwaUNGQC9W+koZD+crQmWwt//Oo8YMSI4dSAoO8vfPIR9lHZIh sfB9H9vDJa2i3Daa/fexFDRJo/ucmc4+NcS1FD/ETlb2VJT5ZMapM0YOt8rrEErVftvG 7eTmxDQ+GgRd6j/u6eIk2Y5H3oPeraiKwFks84OODJgYjNNGq6+R1vo6WwdVOwyy5Kwn sPKSQ/FfAZSUIUL49wdkXG4zBgK1rHwzUBVOceoQ5xFIvhwwQY0Ymm+0UezP8Wrjm626 ofug== X-Gm-Message-State: AOAM5326jtSoMhFyAxS4s+5/xsjui+qFBJWHlysRtWe1wjdfirzKQsk3 CFdbGV+5s07mRboI7+DBzkQ= X-Google-Smtp-Source: ABdhPJy1F6yMrgUe4ld2fcoiHoyhV8IRB2CdWHCZsVRfrO3nrifzmkDRHls778EjLASHTm9GsjSHHg== X-Received: by 2002:a37:aa16:: with SMTP id t22mr5408136qke.341.1622999417080; Sun, 06 Jun 2021 10:10:17 -0700 (PDT) Received: from [192.168.1.201] (pool-74-96-87-9.washdc.fios.verizon.net. [74.96.87.9]) by smtp.googlemail.com with ESMTPSA id i19sm4398420qtx.84.2021.06.06.10.10.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 06 Jun 2021 10:10:16 -0700 (PDT) Subject: Re: [PATCH V5 2/2] riscv: board: Support OpenPiton SoC To: Tianrui Wei , u-boot@lists.denx.de Cc: ycliang@andestech.com, rick@andestech.com, peng.fan@nxp.com, jh80.chung@samsung.com, jbalkind@ucsb.edu, bmeng.cn@gmail.com, xypron.glpk@gmx.de References: From: Sean Anderson Message-ID: <5e1b8630-3b44-970f-e2b5-538696beed11@gmail.com> Date: Sun, 6 Jun 2021 13:10:15 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.4 at phobos.denx.de X-Virus-Status: Clean On 6/4/21 12:54 AM, Tianrui Wei wrote: > From: Tianrui Wei > Date: Fri, 4 June 2021 12:45:29 +0800 > Subject: [PATCH v5 2/2] riscv: board: Support OpenPiton SoC This patch does not apply cleanly. Your mail client may have wrapped some of the longer lines. > > This patch add board support for OpenPiton. Please add a longer commit message. It is customary to describe the major features of the SoC in the initial commit. > > Changelog: > > v5: > - major changes to device tree > - change defconfig to use OF_SEPARATE and other things > - change some documentation > > Signed-off-by: Tianrui Wei > Signed-off-by: Jonathan Balkind > --- > > arch/riscv/Kconfig | 4 + > arch/riscv/dts/Makefile | 1 + > arch/riscv/dts/openpiton-riscv64.dts | 160 +++++ > board/openpiton/riscv/Kconfig | 42 ++ > board/openpiton/riscv/MAINTAINERS | 6 + > board/openpiton/riscv/Makefile | 5 + > board/openpiton/riscv/openpiton-riscv.c | 41 ++ > configs/openpiton_riscv64_defconfig | 132 ++++ > doc/board/index.rst | 1 + > doc/board/openpiton/index.rst | 9 + > doc/board/openpiton/riscv64.rst | 885 ++++++++++++++++++++++++ > include/configs/openpiton-riscv.h | 58 ++ > 12 files changed, 1344 insertions(+) > create mode 100644 arch/riscv/dts/openpiton-riscv64.dts > create mode 100644 board/openpiton/riscv/Kconfig > create mode 100644 board/openpiton/riscv/MAINTAINERS > create mode 100644 board/openpiton/riscv/Makefile > create mode 100644 board/openpiton/riscv/openpiton-riscv.c > create mode 100644 configs/openpiton_riscv64_defconfig > create mode 100644 doc/board/openpiton/index.rst > create mode 100644 doc/board/openpiton/riscv64.rst > create mode 100644 include/configs/openpiton-riscv.h > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 30b05408..9e7deb34 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -23,6 +23,9 @@ config TARGET_SIFIVE_FU540 > config TARGET_SIPEED_MAIX > bool "Support Sipeed Maix Board" > > +config TARGET_OPENPITON_RISCV > + bool "Support riscv cores on openpiton SoC" Is this the correct capitalization for OpenPiton? > + > endchoice > > config SYS_ICACHE_OFF > @@ -55,6 +58,7 @@ config SPL_SYS_DCACHE_OFF > source "board/AndesTech/ax25-ae350/Kconfig" > source "board/emulation/qemu-riscv/Kconfig" > source "board/microchip/mpfs_icicle/Kconfig" > +source "board/openpiton/riscv/Kconfig" > source "board/sifive/fu540/Kconfig" > source "board/sipeed/maix/Kconfig" > > diff --git a/arch/riscv/dts/Makefile b/arch/riscv/dts/Makefile > index 3a6f96c6..b511cd74 100644 > --- a/arch/riscv/dts/Makefile > +++ b/arch/riscv/dts/Makefile > @@ -1,6 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0+ > > dtb-$(CONFIG_TARGET_AX25_AE350) += ae350_32.dtb ae350_64.dtb > +dtb-$(CONFIG_TARGET_OPENPITON_RISCV) += openpiton-riscv64.dtb > dtb-$(CONFIG_TARGET_SIFIVE_FU540) += hifive-unleashed-a00.dtb > dtb-$(CONFIG_TARGET_SIPEED_MAIX) += k210-maix-bit.dtb > > diff --git a/arch/riscv/dts/openpiton-riscv64.dts b/arch/riscv/dts/openpiton-riscv64.dts > new file mode 100644 > index 00000000..3abeaff8 > --- /dev/null > +++ b/arch/riscv/dts/openpiton-riscv64.dts > @@ -0,0 +1,160 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +/* Copyright (c) 2021 Tianrui Wei */ > + > +/* > + * This dts is for a dual core instance of OpenPiton+Ariane built > + * to run on a Digilent Genesys 2 FPGA at 66.67MHz. These files > + * are automatically generated by the OpenPiton build system and > + * this configuration may not be what you need if your configuration > + * is different from the below. > + */ > + > +/dts-v1/; > + > +/ { > + #address-cells = <2>; > + #size-cells = <2>; > + u-boot,dm-spl; Why is this here at the top-level? > + compatible = "openpiton,riscv64"; > + > + chosen { > + stdout-path = "uart0:115200"; > + }; > + > + aliases { > + console = &uart0; > + serial0 = &uart0; > + }; > + > + cpus { > + #address-cells = <1>; > + #size-cells = <0>; > + timebase-frequency = <520835>; > + > + CPU0: cpu@0 { > + clocks = <&clk0>; > + u-boot,dm-spl; > + device_type = "cpu"; > + reg = <0>; > + status = "okay"; This is unnecessary. > + compatible = "openhwgroup,cva6", "riscv"; > + riscv,isa = "rv64imafdc"; > + mmu-type = "riscv,sv39"; > + tlb-split; > + // HLIC - hart local interrupt controller > + CPU0_intc: interrupt-controller { > + #interrupt-cells = <1>; > + interrupt-controller; > + compatible = "riscv,cpu-intc"; > + }; > + }; > + > + CPU1: cpu@1 { > + clocks = <&clk0>; > + device_type = "cpu"; > + reg = <1>; > + status = "okay"; ditto > + compatible = "openhwgroup,cva6", "riscv"; > + riscv,isa = "rv64imafdc"; > + mmu-type = "riscv,sv39"; > + tlb-split; > + // HLIC - hart local interrupt controller > + CPU1_intc: interrupt-controller { > + #interrupt-cells = <1>; > + interrupt-controller; > + compatible = "riscv,cpu-intc"; > + }; > + }; > + > + }; > + > + clocks { > + clk0: osc { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <66667000>; > + }; > + }; > + > + soc { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "openpiton,riscv64", "simple-bus"; Please use a different compatible here, since you have already used the one above for the whole device tree. > + ranges; > + > + memory@80000000 { > + u-boot,dm-spl; > + device_type = "memory"; > + reg = < 0x00000000 0x80000000 0x00000000 0x40000000 >; > + }; This node should be at the top level, not under /soc. > + > + uart0: uart@fff0c2c000 { > + compatible = "ns16550"; Please add a soc-specific compatible string. E.g. "openpiton,ns16550". This makes it easier to address errata/quirks if they are discovered later. > + reg = < 0x000000ff 0xf0c2c000 0x00000000 0x000d4000 >; > + interrupt-parent = <&PLIC0>; > + interrupts = <1>; > + reg-shift = <0>; > + // regs are spaced on 8 bit boundary > + }; > + > + eth: ethernet@fff0d00000 { > + compatible = "xlnx,xps-ethernetlite-1.00.a"; see above > + device_type = "network"; > + reg = < 0x000000ff 0xf0d00000 0x00000000 0x00100000 >; > + interrupt-parent = <&PLIC0>; > + interrupts = <2>; > + local-mac-address = [ 00 18 3E 02 E3 E5 ]; Shouldn't this be added by fdt_fixup_ethernet? > + phy-handle = <&phy0>; > + xlnx,duplex = <0x1>; > + xlnx,include-global-buffers = <0x1>; > + xlnx,include-internal-loopback = <0x0>; > + xlnx,include-mdio = <0x1>; > + xlnx,rx-ping-pong = <0x1>; > + xlnx,s-axi-id-width = <0x1>; > + xlnx,tx-ping-pong = <0x1>; > + xlnx,use-internal = <0x0>; > + axi_ethernetlite_0_mdio: mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + phy0: phy@1 { > + compatible = "ethernet-phy-id001C.C915"; > + device_type = "ethernet-phy"; > + reg = <1>; > + }; > + }; > + }; > + > + sdhci_0: sdhci@f000000000 { > + u-boot,dm-spl; > + status = "okay"; > + compatible = "openpiton,piton-mmc"; see above > + reg = < 0x000000f0 0x00000000 0x00000000 0x00300000 >; > + }; > + > + clint@fff1020000 { > + compatible = "sifive,clint0"; Please add a > + interrupts-extended = < &CPU0_intc 3 > + &CPU0_intc 7 > + &CPU1_intc 3 > + &CPU1_intc 7 >; Nit: alignment > + reg = < 0x000000ff 0xf1020000 0x00000000 0x000c0000 >; > + reg-names = "control"; Is this used anywhere? > + clocks = <&clk0>; > + }; > + > + PLIC0: plic@fff1100000 { > + u-boot,dm-spl; > + #interrupt-cells = <1>; > + compatible = "sifive,plic-1.0.0"; see above > + interrupt-controller; > + interrupts-extended = < &CPU0_intc 11 > + &CPU0_intc 9 > + &CPU1_intc 11 > + &CPU1_intc 9 >; Nit: alignment > + reg = < 0x000000ff 0xf1100000 0x00000000 0x04000000 >; > + riscv,max-priority = <7>; > + riscv,ndev = <2>; > + }; > + }; > +}; > + > diff --git a/board/openpiton/riscv/Kconfig b/board/openpiton/riscv/Kconfig > new file mode 100644 > index 00000000..31ae44d5 > --- /dev/null > +++ b/board/openpiton/riscv/Kconfig > @@ -0,0 +1,42 @@ > +if TARGET_OPENPITON_RISCV > + > +config SYS_BOARD > + default "riscv" > + > +config SYS_VENDOR > + default "openpiton" > + > +config SYS_CPU > + default "generic" > + > +config SYS_CONFIG_NAME > + default "openpiton-riscv" > + > +config SYS_TEXT_BASE > + default 0x81000000 if SPL > + default 0x80000000 if !RISCV_SMODE > + default 0x81000000 if RISCV_SMODE > + > +config SPL_TEXT_BASE > + default 0x80000000 > + > +config SPL_OPENSBI_LOAD_ADDR > + default 0x81000000 > + > +config BOARD_SPECIFIC_OPTIONS # dummy > + def_bool y > + select ARCH_EARLY_INIT_R > + select SUPPORT_SPL > + imply CPU_RISCV > + imply RISCV_TIMER if (RISCV_SMODE || SPL_RISCV_SMODE) > + imply SIFIVE_CLINT if (RISCV_MMODE || SPL_RISCV_MMODE) > + imply CMD_CPU > + imply SPL_CPU_SUPPORT > + imply SPL_OPENSBI > + imply SPL_LOAD_FIT > + imply SPL_SMP > + imply SPL_MMC > + imply SMP > + imply SPL_RISCV_MMODE Nit: alignment > + > +endif > diff --git a/board/openpiton/riscv/MAINTAINERS b/board/openpiton/riscv/MAINTAINERS > new file mode 100644 > index 00000000..d5800545 > --- /dev/null > +++ b/board/openpiton/riscv/MAINTAINERS > @@ -0,0 +1,6 @@ > +Openpiton BOARD > +M: Tianrui Wei > +S: Maintained > +F: board/openpiton/riscv/ > +F: include/configs/openpiton-riscv.h > +F: configs/openpiton_riscv_defconfig Please add the mmc driver as well. > diff --git a/board/openpiton/riscv/Makefile b/board/openpiton/riscv/Makefile > new file mode 100644 > index 00000000..8cc20e7c > --- /dev/null > +++ b/board/openpiton/riscv/Makefile > @@ -0,0 +1,5 @@ > +# SPDX-License-Identifier: GPL-2.0+ > +# > +# Copyright (C) 2021 Tianrui Wei > +# Tianrui Wei > +obj-y += openpiton-riscv.o > diff --git a/board/openpiton/riscv/openpiton-riscv.c b/board/openpiton/riscv/openpiton-riscv.c > new file mode 100644 > index 00000000..5be407e7 > --- /dev/null > +++ b/board/openpiton/riscv/openpiton-riscv.c > @@ -0,0 +1,41 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright (c) 2019 SiFive, Inc > + * Copyright (c) 2021 Tianrui Wei > + * > + * > + * Authors: > + * Pragnesh Patel > + * Tianrui Wei > + */ > +#include > +#include > +#include > +#include > +#include > + > +#ifdef CONFIG_SPL > +void board_boot_order(u32 *spl_boot_list) > +{ > + u8 i; > + u32 boot_devices[] = { > + BOOT_DEVICE_MMC1, > + }; > + > + for (i = 0; i < ARRAY_SIZE(boot_devices); i++) > + spl_boot_list[i] = boot_devices[i]; > +} > +#endif > + > +#ifdef CONFIG_SPL_LOAD_FIT > +int board_fit_config_name_match(const char *name) > +{ > + /* boot using first FIT config */ > + return 0; > +} Can you check to see if this is still needed since d442f69399 ("common: fit: Add weak board_fit_config_name_match")? > +#endif > + > +int board_init(void) > +{ > + return 0; > +} > diff --git a/configs/openpiton_riscv64_defconfig b/configs/openpiton_riscv64_defconfig > new file mode 100644 > index 00000000..be4c621d > --- /dev/null > +++ b/configs/openpiton_riscv64_defconfig > @@ -0,0 +1,132 @@ > +CONFIG_RISCV=y > +CONFIG_NR_DRAM_BANKS=1 > +CONFIG_SPL=y > +CONFIG_SPL_MMC_SUPPORT=y > +CONFIG_DEFAULT_DEVICE_TREE="openpiton-riscv64" > +CONFIG_TARGET_OPENPITON_RISCV=y > +CONFIG_ARCH_RV64I=y > +CONFIG_RISCV_SMODE=y > +CONFIG_MISC_INIT_R=n > +CONFIG_SYS_MALLOC_F_LEN=0x1000 > +CONFIG_SPL_SYS_MALLOC_F_LEN=0x100000 > +CONFIG_SPL_PAYLOAD="" > +CONFIG_LIBDISK_SUPPORT=y > +CONFIG_NR_CPUS=32 > +CONFIG_CMODEL_MEDANY=y > +CONFIG_EXPORT=n > +CONFIG_HASH=n > +CONFIG_SPL_SYS_MALLOC_SIMPLE=y > +CONFIG_SPL_BANNER_PRINT=n > +CONFIG_SPL_CRC32_SUPPORT=n > +CONFIG_GENERATE_SMBIOS_TABLE=n > +CONFIG_EFI_LOADER=n > +CONFIG_LIB_DATA=y > +CONFIG_SPL_USE_TINY_PRINTF=y > +CONFIG_SPL_TINY_MEMSET=y > +CONFIG_FS_EXT4=y > +CONFIG_DM_RTC=y > +CONFIG_SYS_NS16550=y > +CONFIG_SPL_OPENSBI=n > +CONFIG_SPL_RTC_SUPPORT=y > +CONFIG_SPL_FS_EXT4=y > +CONFIG_SPL_LEGACY_IMAGE_SUPPORT=n > +CONFIG_CMD_NET=n > +CONFIG_EFI_PARTITION=y > +CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=128 > +CONFIG_EFI_PARTITION_ENTRIES_OFF=0 > +CONFIG_SPL_EFI_PARTITION=y > +CONFIG_PARTITION_UUIDS=y > +CONFIG_OF_SEPARATE=y > +CONFIG_HAVE_BLOCK_DEVICE=y > +CONFIG_CPU=y > +CONFIG_CPU_RISCV=y > +CONFIG_MMC=y > +CONFIG_DM_MMC=y > +CONFIG_SPL_DM_MMC=y > +CONFIG_MMC_PITON=y > +CONFIG_MMC_QUIRKS=y > +CONFIG_DEBUG_UART=y > +CONFIG_DEBUG_UART_NS16550=y > +CONFIG_DEBUG_UART_SHIFT=0 > +CONFIG_DEBUG_UART_ANNOUNCE=y > +CONFIG_DEBUG_UART_SKIP_INIT=y > +CONFIG_DEBUG_UART_BASE=0xfff0c2c000 > +CONFIG_DEBUG_UART_CLOCK=66667000 Please do not enable the debug uart by default. > +CONFIG_SPL_LIBDISK_SUPPORT=y > +CONFIG_MMC_VERBOSE=n > +CONFIG_MMC_WRITE=n > +CONFIG_MMC_HW_PARTITIONING=n > +CONFIG_SYS_RELOC_GD_ENV_ADDR=n > +CONFIG_SAVEENV=n > +CONFIG_NET=n > +CONFIG_SPL_PARTITION_UUIDS=n > +CONFIG_CMD_EXT4=y > +CONFIG_CMD_FS_GENERIC=y > +CONFIG_CMD_READ=y > +CONFIG_CMD_LSBLK=y > +CONFIG_CMD_MMC=y > +CONFIG_CMD_GPT=y > +CONFIG_CMD_MEMINFO=y > +CONFIG_EXPERT=n > +CONFIG_ENV_VARS_UBOOT_CONFIG=y > +CONFIG_LEGACY_IMAGE_FORMAT=n > +CONFIG_ARCH_FIXUP_FDT_MEMORY=n > +CONFIG_MENU=y > +CONFIG_CMD_BOOTZ=y > +CONFIG_CMD_PART=y > +CONFIG_SHOW_REGS=y > +CONFIG_LOG=y > +CONFIG_LOGLEVEL=9 > +CONFIG_SPL_LOGLEVEL=9 > +CONFIG_TPL_LOGLEVEL=9 > +CONFIG_SPL_LOG=y > +CONFIG_SPL_LOG_MAX_LEVEL=9 Please leave the log level at its default value. > +CONFIG_SPL_LOG_CONSOLE=y > +CONFIG_LOG_ERROR_RETURN=y > +CONFIG_CMD_CPU=n > +CONFIG_BOOTM_NETBSD=n > +CONFIG_BOOTM_PLAN9=n > +CONFIG_BOOTM_RTEMS=n > +CONFIG_BOOTM_VXWORKS=n > +CONFIG_CMD_RUN=n > +CONFIG_CMD_IMI=n > +CONFIG_CMD_XIMG=n > +CONFIG_CMD_EXPORTENV=n > +CONFIG_CMD_IMPORTENV=n > +CONFIG_CMD_EDITENV=n > +CONFIG_CMD_SAVEENV=n > +CONFIG_CMD_CRC32=n > +CONFIG_CMD_RANDOM=n > +CONFIG_CMD_LZMADEC=n > +CONFIG_CMD_UNLZ4=n > +CONFIG_CMD_UNZIP=n > +CONFIG_CMD_FLASH=n > +CONFIG_RANDOM_UUID=n > +CONFIG_CMD_LOADB=n > +CONFIG_CMD_LOADS=n > +CONFIG_CMD_ECHO=n > +CONFIG_CMD_ITEST=n > +CONFIG_CMD_SOURCE=n > +CONFIG_CMD_SETEXPR=n > +CONFIG_CMD_BLOCK_CACHE=n > +CONFIG_CMD_DATE=n > +CONFIG_CMD_SLEEP=n > +CONFIG_CMD_SYSBOOT=y > +CONFIG_CMD_FAT=y > +CONFIG_DOS_PARTITION=y > +CONFIG_ISO_PARTITION=y > +CONFIG_DM_ETH=y > +CONFIG_RAM=y > +CONFIG_SPL_RAM=y > +CONFIG_FS_FAT=y > +CONFIG_FS_FAT_MAX_CLUSTSIZE=65536 > +CONFIG_FS_SQUASHFS=y > +CONFIG_SHA1=y > +CONFIG_SHA256=y > +CONFIG_MD5=y > +CONFIG_ZLIB_UNCOMPRESS=y > +CONFIG_SPL_GZIP=y > +CONFIG_SPL_ZLIB=y > +CONFIG_GETOPT=y > +CONFIG_OF_LIBFDT_OVERLAY=y > +CONFIG_RAM_SIFIVE=n Was this generated with `make savedefconfig`? > diff --git a/doc/board/index.rst b/doc/board/index.rst > index 915f1be8..51e60ac4 100644 > --- a/doc/board/index.rst > +++ b/doc/board/index.rst > @@ -17,6 +17,7 @@ Board-specific doc > google/index > intel/index > kontron/index > + openpiton/index > renesas/index > rockchip/index > sifive/index > diff --git a/doc/board/openpiton/index.rst b/doc/board/openpiton/index.rst > new file mode 100644 > index 00000000..c469102c > --- /dev/null > +++ b/doc/board/openpiton/index.rst > @@ -0,0 +1,9 @@ > +.. SPDX-License-Identifier: GPL-2.0+ > + > +OpenPiton > +========= > + > +.. toctree:: > + :maxdepth: 2 > + > + riscv64 > diff --git a/doc/board/openpiton/riscv64.rst b/doc/board/openpiton/riscv64.rst > new file mode 100644 > index 00000000..7227a262 > --- /dev/null > +++ b/doc/board/openpiton/riscv64.rst > @@ -0,0 +1,885 @@ > +.. SPDX-License-Identifier: GPL-2.0+ > + > +Openpiton RISC-V SoC > +==================== > + > +OpenPiton RISC-V SoC > +-------------------- > +OpenPiton is an open source, manycore processor and research platform. It is a tiled manycore framework scalable from > one to 1/2 billion cores. It supports a number of ISAs including RISC-V with its P-Mesh cache coherence protocol and > networks on chip. It is highly configurable in both core and uncore components. OpenPiton has been verified in both ASIC > and multiple Xilinx FPGA prototypes running full-stack Debian linux. Please wrap this line. In general, all files should be wrapped at 80 characters unless there is a readability improvement. > + > +RISCV-V Standard Bootflow > +------------------------- > +Currently, OpenPiton implements RISC-V standard bootflow in the following steps > +mover.S -> u-boot-spl -> opensbi -> u-boot -> Linux > +This board supports S-mode u-boot as well as M-mode SPL > + > +Building OpenPition > +--------------------- > +If you'd like to build OpenPiton, please go to OpenPiton github repo(at > https://github.com/PrincetonUniversity/openpiton) to build from the latest changes > + > +Building Images > +--------------------------- > + > +SPL > +--- > + > +1. Add the RISC-V toolchain to your PATH. > +2. Setup ARCH & cross compilation environment variable: > + > +.. code-block:: none > + > + export CROSS_COMPILE= > + export ARCH=riscv > + > +3. make openpiton_riscv64_defconfig > +4. make > + > +U-Boot > +------ > + > +1. Add the RISC-V toolchain to your PATH. > +2. Setup ARCH & cross compilation environment variable: > + > +.. code-block:: none > + > + export CROSS_COMPILE= > + export ARCH=riscv > + > +3. make openpiton_riscv64_defconfig > +4. make menuconfig, then change CONFIG_SYS_TEXT_BASE to 0x81020000 Why is this different from the default in Kconfig above? > +5. make > + > + > +opensbi > +------- > + > +1. Add the RISC-V toolchain to your PATH. > +2. Setup ARCH & cross compilation environment variable: > + > +.. code-block:: none > + > + export CROSS_COMPILE= > + export ARCH=riscv > + > +3. Go to OpenSBI directory > +4. Edit platform/fpga/openpiton/config.mk, and change FW_TEXT_START to 0x81000000 Why isn't this the default? > +5. make PLATFORM=fpga/openpiton FW_PAYLOAD_PATH= > + > + > +Using fw_payload.bin with linux > +------------------------------- > +Put the generated fw_payload.bin into the /boot directory on the root filesystem, plug in the SD card, then flash the > bitstream. Linux will boot automatically. > + > +Booting > +------- > +Once you plugin the sdcard and power up, you should see the U-Boot prompt. > + > +Sample Dual-core Debian boot log from OpenPiton > +----------------------------------------------- > + > +.. code-block:: none > + Don't enable all this debug output, please (see above). > + > + spl_early_init > + Bound device uart@fff0c2c000 to root_driver > + Bound device sdhci@0xf000000000.blk to sdhci@0xf000000000 > + Bound device sdhci@0xf000000000 to root_driver > + Bound device clint@fff1020000 to root_driver > + ofnode_read_u32_array: ranges: fdtdec_get_int_array: ranges > + get_prop_check_min_len: ranges > + fdtdec_get_addr_size_auto_parent: na=1, ns=0, fdtdec_get_addr_size_fixed: reg: addr=00000000x > + ofnode_read_u32_index: timebase-frequency: (not found) > + ofnode_read_u32_index: timebase-frequency: x (520835) > + Bound device riscv_timer to cpu@0 > + Bound device cpu@0 to cpus > + fdtdec_get_addr_size_auto_parent: na=1, ns=0, fdtdec_get_addr_size_fixed: reg: addr=00000000x > + ofnode_read_u32_index: timebase-frequency: (not found) > + ofnode_read_u32_index: timebase-frequency: x (520835) > + Bound device cpu@1 to cpus > + Bound device cpus to root_driver > + ofnode_read_prop: riscv,isa: rv64imafdc > + ofnode_read_prop: riscv,isa: rv64imafdc > + ofnode_read_u32_index: clock-frequency: (not found) > + fdtdec_get_addr_size_auto_parent: na=2, ns=2, fdtdec_get_addr_size_fixed: reg: addr=00000000x > + sifive_clint clint@fff1020000: missing clocks or clock-frequency property; falling back on timebase-frequency > + fdtdec_get_addr_size_auto_parent: na=2, ns=2, fdtdec_get_addr_size_fixed: reg: addr=00000000x > + ofnode_read_u32_index: reg: x (0) > + ofnode_read_u32_index: reg: x (1) > + fdtdec_get_addr_size_auto_parent: na=2, ns=2, fdtdec_get_addr_size_fixed: reg: addr=00000000x > + ofnode_read_u32_index: reg-offset: (not found) > + ofnode_read_u32_index: reg-shift: x (0) > + ofnode_read_u32_index: reg-io-width: (not found) > + ofnode_read_u32_index: clock-frequency: x (66667000) > + hello world from uboot spl > + Class Index Probed Driver Name > + ----------------------------------------------------------- > + 10s -2147434144 [ ] 20s root_driver > + 10s -2147433712 [ ] 20s |-- uart@fff0c2c000 > + 10s -2147433776 [ ] 20s |-- sdhci@0xf000000000 > + 10s -2147433528 [ ] 20s | `-- sdhci@0xf000000000.blk > + 10s -2147433608 [ ] 20s |-- clint@fff1020000 > + 10s -2147434112 [ ] 20s `-- cpus > + 10s -2147433552 [ ] 20s |-- cpu@0 > + 10s -2147433608 [ ] 20s | `-- riscv_timer > + 10s -2147433552 [ ] 20s `-- cpu@1 > + >>SPL: board_init_r() > + using memory lx-lx for malloc() > + spl_init > + Trying to boot from MMC1 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + spl: mmc boot mode: fs > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + GPT: first_usable_lba: X last_usable_lba: X last lba: 22 > + alloc_read_gpt_entries: count = 128 * 128 = 16384 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + part_get_info_efi: start 0x800, size 0x3b71800, name > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + EXT4 features COMPAT: 0000003c INCOMPAT: 00000242 RO_COMPAT: 0000007b > + EXT2 rev 1, inode_size 256, descriptor size 32 > + ext4fs read 0 group descriptor (blkno 1 blkoff 0) > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + Iterate dir fw_payload.bin > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + iterate >.< > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + iterate >..< > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + iterate >lost+found< > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + iterate >fw_payload.bin< > + ext4fs read 1 group descriptor (blkno 1 blkoff 32) > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + mkimage signature not found - ih_magic = 50433 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + Jumping to U-Boot > + loaded - jumping to U-Boot... > + image entry point: 0x > + ofnode_read_u32_index: reg: x (0) > + ofnode_read_u32_index: reg: x (1) > + > + OpenSBI v0.9-5-gd06cb61 > + ____ _____ ____ _____ > + / __ \ / ____| _ \_ _| > + | | | |_ __ ___ _ __ | (___ | |_) || | > + | | | | '_ \ / _ \ '_ \ \___ \| _ < | | > + | |__| | |_) | __/ | | |____) | |_) || |_ > + \____/| .__/ \___|_| |_|_____/|____/_____| > + | | > + |_| > + > + Platform Name : OPENPITON RISC-V > + Platform Features : timer,mfdeleg > + Platform HART Count : 3 > + Firmware Base : 0x81000000 > + Firmware Size : 104 KB > + Runtime SBI Version : 0.2 > + > + Domain0 Name : root > + Domain0 Boot HART : 0 > + Domain0 HARTs : 0*,1*,2* > + Domain0 Region00 : 0x0000000081000000-0x000000008101ffff () > + Domain0 Region01 : 0x0000000000000000-0xffffffffffffffff (R,W,X) > + Domain0 Next Address : 0x0000000081200000 > + Domain0 Next Arg1 : 0x0000000082200000 > + Domain0 Next Mode : S-mode > + Domain0 SysReset : yes > + > + Boot HART ID : 0 > + Boot HART Domain : root > + Boot HART ISA : rv64imafdcsu > + Boot HART Features : scounteren,mcounteren > + Boot HART PMP Count : 0 > + Boot HART PMP Granularity : 0 > + Boot HART PMP Address Bits: 0 > + Boot HART MHPM Count : 0 > + Boot HART MHPM Count : 0 > + Boot HART MIDELEG : 0x0000000000000222 > + Boot HART MEDELEG : 0x000000000000b109 > + > + initcall: 0000000081205cd0 > + initcall: 000000008121f82c > + initcall: 000000008120992a > + initcall: 000000008120b2d4 > + initcall: 0000000081205e92 > + initcall: 0000000081205cea > + initcall: 0000000081205eda > + initcall: 0000000081205eaa > + initcall: 0000000081205eae > + initcall: 0000000081205e8c > + ofnode_read_bool: u-boot,dm-pre-reloc: true > + Looking for 'serial' at 1040, name uart@fff0c2c000 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Found seq 0 > + Bound device uart@fff0c2c000 to root_driver > + ofnode_read_bool: u-boot,dm-pre-reloc: true > + Looking for 'mmc' at 1872, name sdhci@0xf000000000 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + Looking for 'mmc' at 1872, name sdhci@0xf000000000 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + mmc_bind: alias ret=-2, devnum=-1 > + Bound device sdhci@0xf000000000.blk to sdhci@0xf000000000 > + Bound device sdhci@0xf000000000 to root_driver > + ofnode_read_bool: u-boot,dm-pre-reloc: true > + Looking for 'timer' at 2008, name clint@fff1020000 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + Bound device clint@fff1020000 to root_driver > + initcall: 000000008120028a > + ofnode_read_u32_array: ranges: fdtdec_get_int_array: ranges > + get_prop_check_min_len: ranges > + ofnode_read_bool: u-boot,dm-pre-reloc: true > + Looking for 'cpu' at 336, name cpu@0 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + ofnode_read_u32_index: timebase-frequency: (not found) > + ofnode_read_u32_index: timebase-frequency: 0x7f283 (520835) > + Bound device riscv_timer to cpu@0 > + Bound device cpu@0 to cpus > + ofnode_read_bool: u-boot,dm-pre-reloc: true > + Looking for 'cpu' at 644, name cpu@1 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + ofnode_read_u32_index: timebase-frequency: (not found) > + ofnode_read_u32_index: timebase-frequency: 0x7f283 (520835) > + Bound device cpu@1 to cpus > + Bound device cpus to root_driver > + Looking for highest alias id for 'cpu' > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + clk_get_by_index_tail: Node 'cpu@0', property 'clocks', failed to request CLK index 0: -2 > + Looking for highest alias id for 'cpu' > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + clk_get_by_index_tail: Node 'cpu@1', property 'clocks', failed to request CLK index 0: -2 > + ofnode_read_prop: riscv,isa: rv64imafdc > + initcall: 0000000081221336 > + initcall: 0000000081213d8c > + env_init: Environment init done (ret=0) > + initcall: 0000000081205e68 > + initcall: 00000000812132fe > + OF: ** translation for device uart@fff0c2c000 ** > + OF: bus is default (na=2, ns=2) on > + OF: translating address: ff000000 00c0c2f0 > + OF: reached root node > + ofnode_read_u32_index: reg-offset: (not found) > + ofnode_read_u32_index: reg-shift: 0x0 (0) > + ofnode_read_u32_index: reg-io-width: (not found) > + clk_get_by_index_tail: Node 'uart@fff0c2c000', property 'clocks', failed to request CLK index 0: -2 > + ofnode_read_u32_index: clock-frequency: 0x3f941f8 (66667000) > + initcall: 0000000081220592 > + > + > + U-Boot 2021.01-g17d45f5d-dirty (Mar 14 2021 - 20:31:58 +0800) > + > + initcall: 0000000081205db8 > + U-Boot code: 81200000 -> 8123F0C0 BSS: -> 81241D10 > + initcall: 0000000081205cfe > + initcall: 0000000081205e50 > + DRAM: initcall: 0000000081200318 > + fdtdec_setup_mem_size_base: Initial DRAM size 40000000 > + initcall: 0000000081205fca > + Monitor len: 00041D10 > + Ram size: 40000000 > + Ram top: C0000000 > + initcall: 0000000081205cee > + initcall: 0000000081205eb2 > + initcall: 0000000081205eb6 > + initcall: 0000000081205eba > + initcall: 0000000081205d6e > + Reserving 263k for U-Boot at: bffbe000 > + initcall: 0000000081205f2a > + Reserving 8316k for malloc() at: bf79f000 > + initcall: 0000000081205ee2 > + Reserving 112 Bytes for Board Info at: bf79ef90 > + initcall: 0000000081205ebe > + initcall: 0000000081205d40 > + Reserving 384 Bytes for Global Data at: bf79ee10 > + initcall: 0000000081205ec2 > + initcall: 0000000081205ec6 > + initcall: 0000000081205eca > + initcall: 0000000081205ede > + initcall: 000000008120603a > + initcall: 000000008120031c > + fdtdec_setup_memory_banksize: DRAM Bank #0: start = 0x80000000, size = 0x40000000 > + initcall: 0000000081205f5a > + > + RAM Configuration: > + Bank #0: 80000000 1 GiB > + > + DRAM: 1 GiB > + initcall: 0000000081206054 > + initcall: 0000000081205d24 > + New Stack Pointer is: bf79ee00 > + initcall: 0000000081205ece > + initcall: 0000000081205ed2 > + initcall: 0000000081205ed6 > + initcall: 0000000081205de6 > + Relocation Offset is: 3edbe000 > + Relocating to bffbe000, new gd at bf79ee10, sp at bf79ee00 > + initcall: 0000000081205ea6 > + initcall: 0000000081205d02 > + initcall: 00000000bffc40da > + initcall: 00000000bffc40de > + initcall: 00000000812060ee (relocated to 00000000bffc40ee) > + initcall: 0000000081206228 (relocated to 00000000bffc4228) > + initcall: 00000000812061f6 (relocated to 00000000bffc41f6) > + Pre-reloc malloc() used 0x990 bytes (2 KB) > + using memory 0xbf79f000-0xbffbe000 for malloc() > + initcall: 000000008120b2d4 (relocated to 00000000bffc92d4) > + initcall: 00000000812061e2 (relocated to 00000000bffc41e2) > + initcall: 000000008120622c (relocated to 00000000bffc422c) > + initcall: 0000000081206230 (relocated to 00000000bffc4230) > + initcall: 00000000812061cc (relocated to 00000000bffc41cc) > + clk_set_defaults() > + clk_set_default_parents: could not read assigned-clock-parents for 00000000bf79f090 > + ofnode_read_prop: assigned-clock-rates: > + Looking for 'serial' at 1040, name uart@fff0c2c000 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Found seq 0 > + Bound device uart@fff0c2c000 to root_driver > + Looking for 'mmc' at 1872, name sdhci@0xf000000000 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + Looking for 'mmc' at 1872, name sdhci@0xf000000000 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + mmc_bind: alias ret=-2, devnum=-1 > + Bound device sdhci@0xf000000000.blk to sdhci@0xf000000000 > + Bound device sdhci@0xf000000000 to root_driver > + Looking for 'timer' at 2008, name clint@fff1020000 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + Bound device clint@fff1020000 to root_driver > + initcall: 00000000812008b4 (relocated to 00000000bffbe8b4) > + initcall: 000000008120623c (relocated to 00000000bffc423c) > + initcall: 0000000081206234 (relocated to 00000000bffc4234) > + initcall: 000000008120a64e (relocated to 00000000bffc864e) > + initcall: 0000000081213400 (relocated to 00000000bffd1400) > + OF: ** translation for device uart@fff0c2c000 ** > + OF: bus is default (na=2, ns=2) on > + OF: translating address: ff000000 00c0c2f0 > + OF: reached root node > + ofnode_read_u32_index: reg-offset: (not found) > + ofnode_read_u32_index: reg-shift: 0x0 (0) > + ofnode_read_u32_index: reg-io-width: (not found) > + clk_get_by_index_tail: Node 'uart@fff0c2c000', property 'clocks', failed to request CLK index 0: -2 > + ofnode_read_u32_index: clock-frequency: 0x3f941f8 (66667000) > + clk_set_defaults(uart@fff0c2c000) > + clk_set_default_parents: could not read assigned-clock-parents for 00000000bf79f180 > + ofnode_read_prop: assigned-clock-rates: > + initcall: 00000000812061b0 (relocated to 00000000bffc41b0) > + Now running in RAM - U-Boot at: bffbe000 > + initcall: 0000000081200316 (relocated to 00000000bffbe316) > + ofnode_read_u32_array: ranges: fdtdec_get_int_array: ranges > + get_prop_check_min_len: ranges > + Looking for 'cpu' at 336, name cpu@0 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + ofnode_read_u32_index: timebase-frequency: (not found) > + ofnode_read_u32_index: timebase-frequency: 0x7f283 (520835) > + Bound device riscv_timer to cpu@0 > + Bound device cpu@0 to cpus > + Looking for 'cpu' at 644, name cpu@1 > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + Not found > + ofnode_read_u32_index: timebase-frequency: (not found) > + ofnode_read_u32_index: timebase-frequency: 0x7f283 (520835) > + Bound device cpu@1 to cpus > + Bound device cpus to root_driver > + clk_set_defaults(cpus) > + clk_set_default_parents: could not read assigned-clock-parents for 00000000bf79f860 > + ofnode_read_prop: assigned-clock-rates: > + Looking for highest alias id for 'cpu' > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + clk_set_defaults(cpu@0) > + clk_set_default_parents: could not read assigned-clock-parents for 00000000bf79f930 > + ofnode_read_prop: assigned-clock-rates: > + clk_get_by_index_tail: Node 'cpu@0', property 'clocks', failed to request CLK index 0: -2 > + Looking for highest alias id for 'cpu' > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + clk_set_defaults(cpu@1) > + clk_set_default_parents: could not read assigned-clock-parents for 00000000bf79fac0 > + ofnode_read_prop: assigned-clock-rates: > + clk_get_by_index_tail: Node 'cpu@1', property 'clocks', failed to request CLK index 0: -2 > + initcall: 0000000081206238 (relocated to 00000000bffc4238) > + initcall: 0000000081206190 (relocated to 00000000bffc4190) > + MMC: Looking for highest alias id for 'mmc' > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + clk_set_defaults(sdhci@0xf000000000) > + clk_set_default_parents: could not read assigned-clock-parents for 00000000bf79f2a0 > + ofnode_read_prop: assigned-clock-rates: > + sdhci@0xf000000000: 0 (eMMC) > + initcall: 0000000081206136 (relocated to 00000000bffc4136) > + fdtdec_get_config_int: load-environment > + Using default environment > + Initial value for argc=3 > + Final value for argc=3 > + initcall: 0000000081206242 (relocated to 00000000bffc4242) > + initcall: 000000008120a666 (relocated to 00000000bffc8666) > + initcall: 0000000081206126 (relocated to 00000000bffc4126) > + initcall: 0000000081208990 (relocated to 00000000bffc6990) > + In: uart@fff0c2c000 > + Out: uart@fff0c2c000 > + Err: uart@fff0c2c000 > + Initial value for argc=3 > + Final value for argc=3 > + Initial value for argc=3 > + Final value for argc=3 > + Initial value for argc=3 > + Final value for argc=3 > + initcall: 0000000081200640 (relocated to 00000000bffbe640) > + initcall: 000000008120611c (relocated to 00000000bffc411c) > + fdtdec_get_config_int: bootdelay > + ### main_loop entered: bootdelay=-2 > + > + fdtdec_get_config_int: kernel-offset > + fdtdec_get_config_int: rootdisk-offset > + fdtdec_get_config_string: bootcmd > + fdtdec_get_config_int: bootsecure > + ### main_loop: bootcmd="fdt addr ${fdtcontroladdr}; fdt move ${fdtcontroladdr} 0x86000000; ext4load mmc 0:1 > 0x80200000 Image; booti 0x80200000 - 0x86000000; " > + Initial value for argc=3 > + Final value for argc=3 > + Initial value for argc=3 > + Final value for argc=3 > + blk_get_devnum_by_typename: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + miss: start 0, count 1 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + fill: start 0, count 1 > + part_init: try 'EFI': ret=0 > + blk_get_devnum_by_typename: Device desc 00000000bf79f590 > + miss: start 0, count 1 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + fill: start 0, count 1 > + part_init: try 'EFI': ret=0 > + hit: start 0, count 1 > + miss: start 1, count 1 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + fill: start 1, count 1 > + GPT: first_usable_lba: 22 last_usable_lba: 3B723DE last lba: 10000000 > + alloc_read_gpt_entries: count = 128 * 128 = 16384 > + miss: start 2, count 32 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + part_get_info_efi: start 0x800, size 0x3b71800, name > + miss: start 802, count 2 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + fill: start 802, count 2 > + EXT4 features COMPAT: 0000003c INCOMPAT: 00000242 RO_COMPAT: 0000007b > + EXT2 rev 1, inode_size 256, descriptor size 32 > + ext4fs read 0 group descriptor (blkno 1 blkoff 0) > + miss: start 808, count 1 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + fill: start 808, count 1 > + miss: start bc8, count 1 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + fill: start bc8, count 1 > + ofnode_read_prop: tick-timer: > + Looking for highest alias id for 'timer' > + - u-boot,dm-pre-reloc, > + - console, /uart@fff0c2c000 > + - serial0, /uart@fff0c2c000 > + clk_get_by_index_tail: Node 'clint@fff1020000', property 'clocks', failed to request CLK index 0: -2 > + ofnode_read_u32_index: clock-frequency: (not found) > + clk_set_defaults(clint@fff1020000) > + clk_set_default_parents: could not read assigned-clock-parents for 00000000bf79f660 > + ofnode_read_prop: assigned-clock-rates: > + OF: ** translation for device clint@fff1020000 ** > + OF: bus is default (na=2, ns=2) on > + OF: translating address: ff000000 000002f1 > + OF: reached root node > + sifive_clint clint@fff1020000: missing clocks or clock-frequency property; falling back on timebase-frequency > + Iterate dir Image > + miss: start cbc8, count 1 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + fill: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >.< > + hit: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >..< > + hit: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >lost+found< > + hit: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >fw_payload.bin< > + hit: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >Image< > + ext4fs read 1 group descriptor (blkno 1 blkoff 32) > + hit: start 808, count 1 > + miss: start 2081, count 1 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + fill: start 2081, count 1 > + lmb_dump_all: > + memory.cnt = 0x1 > + memory.size = 0x0 > + memory.reg[0x0].base = 0x80000000 > + .size = 0x40000000 > + > + reserved.cnt = 0x0 > + reserved.size = 0x0 > + Iterate dir Image > + hit: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >.< > + hit: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >..< > + hit: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >lost+found< > + hit: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >fw_payload.bin< > + hit: start cbc8, count 1 > + hit: start cbc8, count 1 > + iterate >Image< > + ext4fs read 1 group descriptor (blkno 1 blkoff 32) > + hit: start 808, count 1 > + hit: start 2081, count 1 > + miss: start bc800, count 12048 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + miss: start bf978, count 17 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + miss: start bf989, count 1 > + blk_find_device: if_type=6, devnum=0: sdhci@0xf000000000.blk, 6, 0 > + fill: start bf989, count 1 > + 6492992 bytes read in 5329 ms (1.2 MiB/s) > + Initial value for argc=3 > + Final value for argc=3 > + Initial value for argc=3 > + Final value for argc=3 > + * kernel: cmdline image address = 0x80200000 > + ## Skipping init Ramdisk > + ## No init Ramdisk > + ramdisk start = 0x00000000, ramdisk end = 0x00000000 > + * fdt: cmdline image address = 0x86000000 > + ## Checking for 'FDT'/'FDT Image' at 86000000 > + * fdt: raw FDT blob > + ## Flattened Device Tree blob at 86000000 > + Booting using the fdt blob at 0x86000000 > + of_flat_tree at 0x86000000 size 0x00001dbb > + Initial value for argc=3 > + Final value for argc=3 > + ## initrd_high = 0xc0000000, copy_to_ram = 1 > + ramdisk load start = 0x00000000, ramdisk load end = 0x00000000 > + Initial value for argc=3 > + Final value for argc=3 > + Initial value for argc=3 > + Final value for argc=3 > + using: FDT > + ## device tree at 0000000086000000 ... 0000000086001dba (len=19899 [0x4DBB]) > + Loading Device Tree to 00000000bfffb000, end 00000000bffffdba ... OK > + Initial value for argc=3 > + Final value for argc=3 > + ## Transferring control to kernel (at address 80200000) ... > + > + Starting kernel ... > + > + [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000 > + [ 0.000000] Linux version 5.6.0-rc4-gb9d34f7e294d-dirty (eva@eva-virtual-machine) (gcc version 7.5.0 (Ubuntu > 7.5.0-3ubuntu1~18.04)) #27 SMP Mon Mar 1 23:47:04 CST 2021 > + [ 0.000000] earlycon: sbi0 at I/O port 0x0 (options '') > + [ 0.000000] printk: bootconsole [sbi0] enabled > + [ 0.000000] Zone ranges: > + [ 0.000000] DMA32 [mem 0x0000000080200000-0x00000000bfffffff] > + [ 0.000000] Normal empty > + [ 0.000000] Movable zone start for each node > + [ 0.000000] Early memory node ranges > + [ 0.000000] node 0: [mem 0x0000000080200000-0x00000000bfffffff] > + [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff] > + [ 0.000000] On node 0 totalpages: 261632 > + [ 0.000000] DMA32 zone: 4088 pages used for memmap > + [ 0.000000] DMA32 zone: 0 pages reserved > + [ 0.000000] DMA32 zone: 261632 pages, LIFO batch:63 > + [ 0.000000] software IO TLB: mapped [mem 0xbaff7000-0xbeff7000] (64MB) > + [ 0.000000] SBI specification v0.2 detected > + [ 0.000000] SBI implementation ID=0x1 Version=0x9 > + [ 0.000000] SBI v0.2 TIME extension detected > + [ 0.000000] SBI v0.2 IPI extension detected > + [ 0.000000] SBI v0.2 RFENCE extension detected > + [ 0.000000] SBI v0.2 HSM extension detected > + [ 0.000000] elf_hwcap is 0x112d > + [ 0.000000] percpu: Embedded 16 pages/cpu s25368 r8192 d31976 u65536 > + [ 0.000000] pcpu-alloc: s25368 r8192 d31976 u65536 alloc=16*4096 > + [ 0.000000] pcpu-alloc: [0] 0 [0] 1 > + [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 257544 > + [ 0.000000] Kernel command line: earlycon=sbi root=/dev/piton_sd1 > + [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) > + [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) > + [ 0.000000] Sorting __ex_table... > + [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off > + [ 0.000000] Memory: 956188K/1046528K available (4357K kernel code, 286K rwdata, 1200K rodata, 168K init, 311K bss, > 90340K reserved, 0K cma-reserved) > + [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 > + [ 0.000000] rcu: Hierarchical RCU implementation. > + [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2. > + [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. > + [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 > + [ 0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0 > + [ 0.000000] plic: mapped 2 interrupts with 2 handlers for 4 contexts. > + [ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0] > + [ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1ec037a6a, max_idle_ns: > 7052723236599 ns > + [ 0.000147] sched_clock: 64 bits at 520kHz, resolution 1919ns, wraps every 4398046510738ns > + [ 0.009642] printk: console [hvc0] enabled > + [ 0.009642] printk: console [hvc0] enabled > + [ 0.018055] printk: bootconsole [sbi0] disabled > + [ 0.018055] printk: bootconsole [sbi0] disabled > + [ 0.028266] Calibrating delay loop (skipped), value calculated using timer frequency.. 1.04 BogoMIPS (lpj=5208) > + [ 0.038993] pid_max: default: 32768 minimum: 301 > + [ 0.049869] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) > + [ 0.058262] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) > + [ 0.069225] *** VALIDATE tmpfs *** > + [ 0.089356] *** VALIDATE proc *** > + [ 0.101548] *** VALIDATE cgroup *** > + [ 0.105423] *** VALIDATE cgroup2 *** > + [ 0.144623] rcu: Hierarchical SRCU implementation. > + [ 0.164975] smp: Bringing up secondary CPUs ... > + [ 0.194931] smp: Brought up 1 node, 2 CPUs > + [ 0.216819] devtmpfs: initialized > + [ 0.247264] random: get_random_u32 called from bucket_table_alloc.isra.25+0x4e/0x15c with crng_init=0 > + [ 0.267593] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns > + [ 0.278485] futex hash table entries: 512 (order: 3, 32768 bytes, linear) > + [ 0.300550] NET: Registered protocol family 16 > + [ 0.834379] clocksource: Switched to clocksource riscv_clocksource > + [ 0.842324] *** VALIDATE bpf *** > + [ 0.856050] *** VALIDATE ramfs *** > + [ 0.910981] NET: Registered protocol family 2 > + [ 0.937371] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear) > + [ 0.947904] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear) > + [ 0.959472] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear) > + [ 0.972158] TCP: Hash tables configured (established 8192 bind 8192) > + [ 0.986974] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) > + [ 0.995658] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) > + [ 1.010319] NET: Registered protocol family 1 > + [ 1.038492] RPC: Registered named UNIX socket transport module. > + [ 1.045494] RPC: Registered udp transport module. > + [ 1.050417] RPC: Registered tcp transport module. > + [ 1.055833] RPC: Registered tcp NFSv4.1 backchannel transport module. > + [ 1.079432] Initialise system trusted keyrings > + [ 1.090919] workingset: timestamp_bits=46 max_order=18 bucket_order=0 > + [ 1.442287] *** VALIDATE nfs *** > + [ 1.447483] *** VALIDATE nfs4 *** > + [ 1.452686] NFS: Registering the id_resolver key type > + [ 1.458989] Key type id_resolver registered > + [ 1.464122] Key type id_legacy registered > + [ 1.468760] nfs4filelayout_init: NFSv4 File Layout Driver Registering... > + [ 1.476542] Installing knfsd (copyright (C) 1996 okir@monad.swb.de). > + [ 1.979131] Key type asymmetric registered > + [ 1.984371] Asymmetric key parser 'x509' registered > + [ 1.990770] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) > + [ 1.999112] io scheduler mq-deadline registered > + [ 2.004492] io scheduler kyber registered > + [ 4.260627] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled > + [ 4.312162] fff0c2c000.uart: ttyS0 at MMIO 0xfff0c2c000 (irq = 1, base_baud = 4166687) is a 16550 > + [ 4.659782] loop: module loaded > + [ 4.663995] piton_sd:v1.0 Apr 26, 2019 > + [ 4.663995] > + [ 4.670302] gpt partition table header: > + [ 4.670398] signature: 5452415020494645 > + [ 4.674979] revision: 10000 > + [ 4.678967] size: 5c > + [ 4.681839] crc_header: 680c3ba9 > + [ 4.684662] reserved: 0 > + [ 4.688037] current lba: 1 > + [ 4.690560] backup lda: 3b723ff > + [ 4.693880] partition entries lba: 2 > + [ 4.697190] number partition entries: 80 > + [ 4.700843] size partition entries: 80 > + [ 10.126082] piton_sd: piton_sd1 > + [ 10.786268] libphy: Fixed MDIO Bus: probed > + [ 10.837802] NET: Registered protocol family 10 > + [ 10.874758] Segment Routing with IPv6 > + [ 10.880578] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver > + [ 10.905701] NET: Registered protocol family 17 > + [ 10.918150] Key type dns_resolver registered > + [ 10.932005] Loading compiled-in X.509 certificates > + [ 11.147948] EXT4-fs (piton_sd1): mounted filesystem with ordered data mode. Opts: (null) > + [ 11.158370] VFS: Mounted root (ext4 filesystem) readonly on device 254:1. > + [ 11.233225] devtmpfs: mounted > + [ 11.245265] Freeing unused kernel memory: 168K > + [ 11.249963] This architecture does not have kernel memory protection. > + [ 11.257188] Run /sbin/init as init process > + [ 11.261430] with arguments: > + [ 11.265087] /sbin/init > + [ 11.267950] with environment: > + [ 11.271162] HOME=/ > + [ 11.274453] TERM=linux > + [ 18.961333] systemd[1]: System time before build time, advancing clock. > + [ 19.340844] systemd[1]: systemd 238 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT > +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 defaul > + t-hierarchy=hybrid) > + [ 19.370409] systemd[1]: Detected architecture riscv64. > + > + Welcome to Debian GNU/Linux buster/sid! > + > + [ 19.587454] systemd[1]: Set hostname to . > + [ 29.215526] random: systemd: uninitialized urandom read (16 bytes read) > + [ 29.234429] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. > + [ OK ] Listening on /dev/initctl Compatibility Named Pipe. > + [ 29.272633] random: systemd: uninitialized urandom read (16 bytes read) > + [ 29.392391] systemd[1]: Created slice system-serial\x2dgetty.slice. > + [ OK ] Created slice system-serial\x2dgetty.slice. > + [ 29.423151] random: systemd: uninitialized urandom read (16 bytes read) > + [ 29.441241] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. > + [ OK ] Started Dispatch Password Requests to Console Directory Watch. > + [ 29.526093] systemd[1]: Created slice system-getty.slice. > + [ OK ] Created slice system-getty.slice. > + [ 29.555742] systemd[1]: Reached target Swap. > + [ OK ] Reached target Swap. > + [ 29.593093] systemd[1]: Started Forward Password Requests to Wall Directory Watch. > + [ OK ] Started Forward Password Requests to Wall Directory Watch. > + [ 29.628869] systemd[1]: Reached target Local Encrypted Volumes. > + [ OK ] Reached target Local Encrypted Volumes. > + [ 29.677206] systemd[1]: Listening on Journal Socket. > + [ OK ] Listening on Journal Socket. > + [ 29.861203] systemd[1]: Starting Remount Root and Kernel File Systems... > + Starting Remount Root and Kernel File Systems... > + [ 29.987658] systemd[1]: Listening on Journal Socket (/dev/log). > + [ OK ] Listening on Journal Socket (/dev/log). > + Starting Load Kernel Modules... > + Mounting Kernel Debug File System... > + [ OK ] Listening on udev Kernel Socket. > + [ OK ] Reached target Paths. > + Starting Journal Service... > + Starting Create Static Device Nodes in /dev... > + [ OK ] Reached target Remote File Systems. > + [ OK ] Reached target Slices. > + [ OK ] Listening on udev Control Socket. > + Starting udev Coldplug all Devices... > + [ OK ] Reached target Sockets. > + [ 34.481282] systemd[1]: Started Remount Root and Kernel File Systems. > + [ OK ] Started Remount Root and Kernel File Systems. > + [ 35.320761] systemd[1]: Started Load Kernel Modules. > + [ OK ] Started Load Kernel Modules. > + [ 35.438044] systemd[1]: Mounted Kernel Debug File System. > + [ OK ] Mounted Kernel Debug File System. > + [ 35.771088] systemd[1]: Started Create Static Device Nodes in /dev. > + [ OK ] Started Create Static Device Nodes in /dev. > + [ 36.367663] systemd[1]: Starting Apply Kernel Variables... > + Starting Apply Kernel Variables... > + [ 39.671147] systemd[1]: Starting Load/Save Random Seed... > + Starting Load/Save Random Seed... > + [ 39.737905] systemd[1]: Reached target Local File Systems (Pre). > + [ OK ] Reached target Local File Systems (Pre). > + [ 39.830756] systemd[1]: Reached target Local File Systems. > + [ OK ] Reached target Local File Systems. > + [ 40.432728] systemd[1]: Starting udev Kernel Device Manager... > + Starting udev Kernel Device Manager... > + [ 40.551781] systemd[1]: Started Journal Service. > + [ OK ] Started Journal Service. > + [ OK ] Started Apply Kernel Variables. > + Starting Raise network interfaces... > + Starting Flush Journal to Persistent Storage... > + [ OK ] Started Load/Save Random Seed. > + [ OK ] Started udev Kernel Device Manager. > + [* ] (1 of 4) A start job is running for&ersistent Storage (23s / 1min 44s)[ 53.102639] systemd-journald[93]: > Received request to flush runtime journal from PID 1 > + [ OK ] Started Flush Journal to Persistent Storage. > + Starting Create Volatile Files and Directories... > + [ OK ] Started Raise network interfaces. > + [ OK ] Reached target Network. > + [FAILED] Failed to start Create Volatile Files and Directories. > + See 'systemctl status systemd-tmpfiles-setup.service' for details. > + Starting Update UTMP about System Boot/Shutdown... > + [FAILED] Failed to start Network Time Synchronization. > + See 'systemctl status systemd-timesyncd.service' for details. > + [ OK ] Reached target System Time Synchronized. > + [ OK ] Stopped Network Time Synchronization. > + [FAILED] Failed to start Network Time Synchronization. > + See 'systemctl status systemd-timesyncd.service' for details. > + [ OK ] Stopped Network Time Synchronization. > + [FAILED] Failed to start Network Time Synchronization. > + See 'systemctl status systemd-timesyncd.service' for details. > + [ OK ] Stopped Network Time Synchronization. > + [FAILED] Failed to start Network Time Synchronization. > + See 'systemctl status systemd-timesyncd.service' for details. > + [ OK ] Stopped Network Time Synchronization. > + [FAILED] Failed to start Network Time Synchronization. > + See 'systemctl status systemd-timesyncd.service' for details. > + [FAILED] Failed to start Update UTMP about System Boot/Shutdown. > + See 'systemctl status systemd-update-utmp.service' for details. > + [DEPEND] Dependency failed for Update UTMP about System Runlevel Changes. > + [ OK ] Stopped Network Time Synchronization. > + [FAILED] Failed to start Network Time Synchronization. > + See 'systemctl status systemd-timesyncd.service' for details. > + [* ] (2 of 2) A start job is running for&v-hvc0.device (2min 6s / 4min 33s) > + [ OK ] Found device /dev/hvc0. > + [ OK ] Started udev Coldplug all Devices. > + [ OK ] Reached target System Initialization. > + [ OK ] Started Daily apt download activities. > + [ OK ] Reached target Basic System. > + Starting Permit User Sessions... > + [ OK ] Started Daily apt upgrade and clean activities. > + [ OK ] Started Daily Cleanup of Temporary Directories. > + [ OK ] Reached target Timers. > + [ OK ] Started Regular background program processing daemon. > + [ OK ] Started Permit User Sessions. > + [ OK ] Started Serial Getty on hvc0. > + [ OK ] Reached target Login Prompts. > + [ OK ] Reached target Multi-User System. > + [ OK ] Reached target Graphical Interface. > + > + Debian GNU/Linux buster/sid openpiton hvc0 > + > + openpiton login: openpiton > + Password: > + Linux openpiton 5.6.0-rc4-gb9d34f7e294d-dirty #27 SMP Mon Mar 1 23:47:04 CST 2021 riscv64 > + > + The programs included with the Debian GNU/Linux system are free software; > + the exact distribution terms for each program are described in the > + individual files in /usr/share/doc/*/copyright. > + > + Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent > + permitted by applicable law. > + openpiton@openpiton:~$ lscpu > + Architecture: riscv64 > + Byte Order: Little Endian > + CPU(s): 2 > + On-line CPU(s) list: 0,1 > + Thread(s) per core: 2 > + Core(s) per socket: 1 > + Socket(s): 1 > + openpiton@openpiton:~$ > + openpiton@openpiton:~$ Duplicate line. > diff --git a/include/configs/openpiton-riscv.h b/include/configs/openpiton-riscv.h > new file mode 100644 > index 00000000..0f30609b > --- /dev/null > +++ b/include/configs/openpiton-riscv.h > @@ -0,0 +1,58 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright (c) 2019 Western Digital Corporation or its affiliates. > + * Copyright (c) 2021 Tianrui Wei > + * > + * Authors: > + * Anup Patel > + * Tianrui Wei > + */ > + > +#ifndef __OPENPITON_RISCV_CONFIG_H > +#define __OPENPITON_RISCV_CONFIG_H > + > +#include > +#define DEBUG > +#ifdef CONFIG_SPL > +#define CONFIG_SPL_MAX_SIZE 0x00100000 Can this be calculated from the other values here? > +#define CONFIG_SPL_BSS_START_ADDR 0x82000000 > +#define CONFIG_SPL_BSS_MAX_SIZE 0x00100000 > +#define CONFIG_SYS_SPL_MALLOC_START (CONFIG_SPL_BSS_START_ADDR + \ > + CONFIG_SPL_BSS_MAX_SIZE) > +#define CONFIG_SYS_SPL_MALLOC_SIZE 0x0100000 > +#define CONFIG_SPL_STACK (0x80000000 + 0x04000000 - \ > + GENERATED_GBL_DATA_SIZE) > + > +#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "boot/fw_payload.bin" > +#define CONFIG_SPL_GD_ADDR 0x85000000 > +#endif > + > +/* Environment options */ > +#define CONFIG_SYS_SDRAM_BASE 0x80000000 > +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_2M) > +#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_2M) > +#define CONFIG_SYS_MALLOC_LEN SZ_256M > +#define CONFIG_SYS_BOOTM_LEN SZ_256M > + > +/* ------------------------------------------------- > + * Environment > + */ > +//Disable persistent environment variable storage > +#define CONFIG_ENV_IS_NOWHERE 1 > + > +/* --------------------------------------------------------------------- > + * Board boot configuration > + */ > + > +#define CONFIG_EXTRA_ENV_SETTINGS "\0" > + > +#define CONFIG_USE_BOOTCOMMAND > +#define CONFIG_BOOTCOMMAND \ > + "fdt addr ${fdtcontroladdr}; " \ > + "fdt move ${fdtcontroladdr} 0x86000000; " \ > + "ext4load mmc 0:1 0x80200000 boot/Image; " \ > + "booti 0x80200000 - 0x86000000; " Please use some variables here, as suggsted on your last revision. --Sean > + > +#define CONFIG_TIMESTAMP /* Print image info with timestamp */ > + > +#endif/* __CONFIG_H */ >