Re: [PATCH v2] riscv: dts: Add DT node for SiFive FU540 Ethernet controller driver

From: Atish Patra
Date: Sun Jun 23 2019 - 03:05:01 EST


On 6/21/19 6:57 PM, Troy Benjegerdes wrote:


On Jun 21, 2019, at 7:33 PM, Troy Benjegerdes <troy.benjegerdes@xxxxxxxxxx> wrote:



On Jun 21, 2019, at 4:59 PM, Atish Patra <Atish.Patra@xxxxxxx> wrote:

On Fri, 2019-06-21 at 14:46 -0700, Atish Patra wrote:
On Fri, 2019-06-21 at 14:18 -0500, Troy Benjegerdes wrote:
Can you post the fsbl and other images you used to boot/test this?



Resending it without the attachment. Obviously, the mail did not go
through with the binary blob attached :( :(. My bad.

Let me know if you still want me to share the binary with you. I will
probably share it via some other method.

The bl came through as it was sent direct to me, and I can deal with
the tftp config manually. I have a kernel image, but not the boot.scr.uimg
that it looks like you are using. Is that from Yocto?

I got console output, after extracting the boot script from yocto.


Glad it worked for you.
The important part seems to be calling
âbootm $kernel_addr_r - $fdt_addr_râ

Which maybe leads into a discussion of what can we do to at
least output some sort of useful debug information if the device
tree is not found or invalid?

At least serial & clock needs to be correct for uart to work so that useful debug information can be displayed.

Iâd also like to propose that on RiscV, we use the chosen node
for kernel command line
and initrd location (like qemu does), and
in u-boot, default to always passing the device tree from bootm
and other commands (like bootelf)


If I understand you correctly, you want a kernel command line with fixed initrd location set in chosen node that U-Boot can pass on to kernel ?

If that's the case, that's not feasible as everybody's kernel command line may not be same and will probably override it using CONFIG_CMDLINE.

So I don't see the point int setting a fixed one. What's the advantage in doing that ?



I have not changed fsbl. It's the default one came with the board.
Here are the heads of OpenSBI + U-Boot + Linux repo.

OpenSBI: cd2dfdc870ed (master)
U-boot: 77f6e2dd0551 + Anup's patch series (v4)
https://github.com/atishp04/u-boot/tree/unleashed_working

Linux: bed3c0d84e7e + Yash's Macb Series + this patch
https://github.com/atishp04/linux/tree/5.2-rc6-pre

I have also attached the OpenSBI + U-boot binary as well. But this is
pre-configured with my tftpboot server. You need to change that.

I keep running into various failures when I build from source and I
want to rule out potential hardware issues related to clock and/or
ddr initialization

On Fri, Jun 21, 2019, 2:14 PM Atish Patra <Atish.Patra@xxxxxxx>
wrote:
On Fri, 2019-06-21 at 16:23 +0530, Yash Shah wrote:
DT node for SiFive FU540-C000 GEMGXL Ethernet controller driver
added
Signed-off-by: Yash Shah <yash.shah@xxxxxxxxxx>
---
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 16
++++++++++++++++
arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts | 9
+++++++++
2 files changed, 25 insertions(+)

diff --git a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi
b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi
index 4e8fbde..c53b4ea 100644
--- a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi
+++ b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi
@@ -225,5 +225,21 @@
#address-cells = <1>;
#size-cells = <0>;
};
+ eth0: ethernet@10090000 {
+ compatible = "sifive,fu540-macb";
+ interrupt-parent = <&plic0>;
+ interrupts = <53>;
+ reg = <0x0 0x10090000 0x0 0x2000
+ 0x0 0x100a0000 0x0 0x1000>;
+ reg-names = "control";
+ status = "disabled";
+ local-mac-address = [00 00 00 00 00 00];
+ clock-names = "pclk", "hclk";
+ clocks = <&prci PRCI_CLK_GEMGXLPLL>,
+ <&prci PRCI_CLK_GEMGXLPLL>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
};
};
diff --git a/arch/riscv/boot/dts/sifive/hifive-unleashed-
a00.dts
b/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
index 4da8870..d783bf2 100644
--- a/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
+++ b/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
@@ -63,3 +63,12 @@
disable-wp;
};
};
+
+&eth0 {
+ status = "okay";
+ phy-mode = "gmii";
+ phy-handle = <&phy1>;
+ phy1: ethernet-phy@0 {
+ reg = <0>;
+ };
+};

Thanks. I am able to boot Unleashed with networking enabled with
this
patch.

FWIW,
Tested-by: Atish Patra <atish.patra@xxxxxxx>

Regards,
Atish
_______________________________________________
linux-riscv mailing list
linux-riscv@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-riscv





--
Regards,
Atish