mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 18:04:48 +00:00

It appears that there is some timing marginality either in the board layout or the SoC that results in occasional data corruption on some boards. We observed this issue on some of the new HiFive Unmatched RevB boards during volume production as well as some of the original HiFive Unmatched boards from 2021 in our possession. This means that there are other boards out there that might have the issue too. We have done some limited testing with DDR4 at 1600MT/s and faulty boards (failing at 1866MT/s) passed. We plan further testing after we procure a temperature chamber. Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
109 lines
2.2 KiB
Text
109 lines
2.2 KiB
Text
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
/*
|
|
* (C) Copyright 2020-2021 SiFive, Inc
|
|
*/
|
|
|
|
#include <dt-bindings/reset/sifive-fu740-prci.h>
|
|
|
|
/ {
|
|
cpus {
|
|
assigned-clocks = <&prci FU740_PRCI_CLK_COREPLL>;
|
|
assigned-clock-rates = <1200000000>;
|
|
bootph-pre-ram;
|
|
cpu0: cpu@0 {
|
|
clocks = <&prci FU740_PRCI_CLK_COREPLL>;
|
|
bootph-pre-ram;
|
|
status = "okay";
|
|
cpu0_intc: interrupt-controller {
|
|
bootph-pre-ram;
|
|
};
|
|
};
|
|
cpu1: cpu@1 {
|
|
clocks = <&prci FU740_PRCI_CLK_COREPLL>;
|
|
bootph-pre-ram;
|
|
cpu1_intc: interrupt-controller {
|
|
bootph-pre-ram;
|
|
};
|
|
};
|
|
cpu2: cpu@2 {
|
|
clocks = <&prci FU740_PRCI_CLK_COREPLL>;
|
|
bootph-pre-ram;
|
|
cpu2_intc: interrupt-controller {
|
|
bootph-pre-ram;
|
|
};
|
|
};
|
|
cpu3: cpu@3 {
|
|
clocks = <&prci FU740_PRCI_CLK_COREPLL>;
|
|
bootph-pre-ram;
|
|
cpu3_intc: interrupt-controller {
|
|
bootph-pre-ram;
|
|
};
|
|
};
|
|
cpu4: cpu@4 {
|
|
clocks = <&prci FU740_PRCI_CLK_COREPLL>;
|
|
bootph-pre-ram;
|
|
cpu4_intc: interrupt-controller {
|
|
bootph-pre-ram;
|
|
};
|
|
};
|
|
};
|
|
|
|
soc {
|
|
bootph-pre-ram;
|
|
clint: clint@2000000 {
|
|
compatible = "riscv,clint0";
|
|
interrupts-extended = <&cpu0_intc 3 &cpu0_intc 7
|
|
&cpu1_intc 3 &cpu1_intc 7
|
|
&cpu2_intc 3 &cpu2_intc 7
|
|
&cpu3_intc 3 &cpu3_intc 7
|
|
&cpu4_intc 3 &cpu4_intc 7>;
|
|
reg = <0x0 0x2000000 0x0 0x10000>;
|
|
bootph-pre-ram;
|
|
};
|
|
prci: clock-controller@10000000 {
|
|
#reset-cells = <1>;
|
|
resets = <&prci PRCI_RST_DDR_CTRL_N>,
|
|
<&prci PRCI_RST_DDR_AXI_N>,
|
|
<&prci PRCI_RST_DDR_AHB_N>,
|
|
<&prci PRCI_RST_DDR_PHY_N>,
|
|
<&prci PRCI_RST_GEMGXL_N>,
|
|
<&prci PRCI_RST_CLTX_N>;
|
|
reset-names = "ddr_ctrl", "ddr_axi", "ddr_ahb",
|
|
"ddr_phy", "gemgxl_reset", "cltx_reset";
|
|
};
|
|
dmc: dmc@100b0000 {
|
|
compatible = "sifive,fu740-c000-ddr";
|
|
reg = <0x0 0x100b0000 0x0 0x0800
|
|
0x0 0x100b2000 0x0 0x2000
|
|
0x0 0x100b8000 0x0 0x1000>;
|
|
clocks = <&prci FU740_PRCI_CLK_DDRPLL>;
|
|
clock-frequency = <800000004>;
|
|
bootph-pre-ram;
|
|
};
|
|
};
|
|
};
|
|
|
|
&prci {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&uart0 {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&spi0 {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&i2c0 {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
ð0 {
|
|
assigned-clocks = <&prci FU740_PRCI_CLK_GEMGXLPLL>;
|
|
assigned-clock-rates = <125125000>;
|
|
};
|
|
|
|
&ccache {
|
|
status = "okay";
|
|
};
|