All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v10 0/4] Update SiFive Unleashed Drivers
@ 2019-07-22  7:37 Anup Patel
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 1/4] net: macb: Extend MACB driver for SiFive Unleashed board Anup Patel
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Anup Patel @ 2019-07-22  7:37 UTC (permalink / raw)
  To: u-boot

This series update SiFive Unleashed clock driver and Cadence MACB driver
so that:
1. It is in sync with upstream Linux driver
2. It uses latest DT bindings as-per upstream Linux driver

With this series, we can now use latest DT bindings with U-Boot. I have
tested SiFive Serial driver and Cadence MACB ethernet driver with this
changes and both work fine.

The legacy FSBL will still pass DTB with older DT bindings which will break
the updated SiFive Unleashed clock driver. To tackle this, we have embedded
DTB in OpenSBI FW_PAYLOAD firmware for SiFive Unleashed so that OpenSBI will
override and pass updated DTB to U-Boot.

The updated DTB passed by OpenSBI is in fact the DTB build by upstream Linux
so we can straight away pass this DTB to Linux as well.

This series can be found in riscv_unleashed_clk_sync_v10 branch at:
https://github.com/avpatel/u-boot.git

To try this series use latest OpenSBI at:
https://github.com/riscv/opensbi.git
And Linux-5.3-rc1 from v5.3-rc1_unleashed branch at:
https://github.com/avpatel/linux.git

Changes since v9:
- Remove all accepted and merged patches except MACB driver patches
- Rebased MACB driver patches upon v2 patches from Ramon Fried
  (Refer, https://www.mail-archive.com/u-boot at lists.denx.de/msg334300.html)
- Added separate patch to sync-up SiFive Unleashed config header with
  QEMU RISC-V virt machine config header
- Added separate patch for more updates to SiFive Unleashed README

Changes since v8:
- Removed probe() from macb_config for PATCH6
- Renamed set_tx_clk() to clk_init() in macb_config for PATCH6

Changes since v7:
- Update PATCH6 to not treat dma_burst_length = 0 as skip gmac_configure_dma()
- Update PATCH9 to check endianess at runtime

Changes since v6:
- Added separate patch to fix endianess check in gmac_configure_dma()

Changes since v5:
- Addressed Ramon's comments in PATCH6
- Addressed Bin's comments in PATCH7

Changes since v4:
- Rebased patches upon Ramon's MACB changes
  (Refer, https://patchwork.ozlabs.org/patch/1114025/)
- Added PATCH7 to setup ethaddr based on board serial number read from OTP
- Added PATCH8 to update documentation

Changes since v3:
- Extend MACB ethernet driver for SiFive Unleashed board (just like Linux)

Changes since v2:
- Dropped PATCH6 which adds new compatible string to MACB driver because
  more changes are required in MACB driver for different ethernet speeds

Changes since v1:
- Dropped GEMGXL clock driver
- Added new compatible string for SiFive MACB ethernet

Anup Patel (4):
  net: macb: Extend MACB driver for SiFive Unleashed board
  net: macb: Fix check for little-endian system in gmac_configure_dma()
  riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support
  doc: sifive-fu540: Update README to explicitly load DTB for Linux

 doc/README.sifive-fu540        | 317 ++++++++++++++++++++-------------
 drivers/net/macb.c             |  83 ++++++---
 include/configs/sifive-fu540.h |  18 +-
 3 files changed, 264 insertions(+), 154 deletions(-)

--
2.17.1

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 1/4] net: macb: Extend MACB driver for SiFive Unleashed board
  2019-07-22  7:37 [U-Boot] [PATCH v10 0/4] Update SiFive Unleashed Drivers Anup Patel
@ 2019-07-22  7:38 ` Anup Patel
  2019-07-23  3:20   ` Joe Hershberger
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 2/4] net: macb: Fix check for little-endian system in gmac_configure_dma() Anup Patel
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 16+ messages in thread
From: Anup Patel @ 2019-07-22  7:38 UTC (permalink / raw)
  To: u-boot

The SiFive MACB ethernet has a custom TX_CLK_SEL register to select
different TX clock for 1000mbps vs 10/100mbps.

This patch adds SiFive MACB compatible string and extends the MACB
ethernet driver to change TX clock using TX_CLK_SEL register for
SiFive MACB.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
---
 drivers/net/macb.c | 71 +++++++++++++++++++++++++++++++++++-----------
 1 file changed, 54 insertions(+), 17 deletions(-)

diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 92ec05559b..3db5597373 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -83,7 +83,8 @@ struct macb_dma_desc {
 
 struct macb_device {
 	void			*regs;
-	unsigned int		dma_burst_length;
+
+	const struct macb_config *config;
 
 	unsigned int		rx_tail;
 	unsigned int		tx_head;
@@ -123,6 +124,8 @@ struct macb_device {
 
 struct macb_config {
 	unsigned int		dma_burst_length;
+
+	int			(*clk_init)(struct udevice *dev, ulong rate);
 };
 
 #ifndef CONFIG_DM_ETH
@@ -483,21 +486,38 @@ static int macb_phy_find(struct macb_device *macb, const char *name)
  * when operation failed.
  */
 #ifdef CONFIG_DM_ETH
+static int macb_sifive_clk_init(struct udevice *dev, ulong rate)
+{
+	fdt_addr_t addr;
+	void *gemgxl_regs;
+
+	addr = dev_read_addr_index(dev, 1);
+	if (addr == FDT_ADDR_T_NONE)
+		return -ENODEV;
+
+	gemgxl_regs = (void __iomem *)addr;
+	if (!gemgxl_regs)
+		return -ENODEV;
+
+	/*
+	 * SiFive GEMGXL TX clock operation mode:
+	 *
+	 * 0 = GMII mode. Use 125 MHz gemgxlclk from PRCI in TX logic
+	 *     and output clock on GMII output signal GTX_CLK
+	 * 1 = MII mode. Use MII input signal TX_CLK in TX logic
+	 */
+	writel(rate != 125000000, gemgxl_regs);
+	return 0;
+}
+
 int __weak macb_linkspd_cb(struct udevice *dev, unsigned int speed)
 {
 #ifdef CONFIG_CLK
+	struct macb_device *macb = dev_get_priv(dev);
 	struct clk tx_clk;
 	ulong rate;
 	int ret;
 
-	/*
-	 * "tx_clk" is an optional clock source for MACB.
-	 * Ignore if it does not exist in DT.
-	 */
-	ret = clk_get_by_name(dev, "tx_clk", &tx_clk);
-	if (ret)
-		return 0;
-
 	switch (speed) {
 	case _10BASET:
 		rate = 2500000;		/* 2.5 MHz */
@@ -513,6 +533,17 @@ int __weak macb_linkspd_cb(struct udevice *dev, unsigned int speed)
 		return 0;
 	}
 
+	if (macb->config->clk_init)
+		return macb->config->clk_init(dev, rate);
+
+	/*
+	 * "tx_clk" is an optional clock source for MACB.
+	 * Ignore if it does not exist in DT.
+	 */
+	ret = clk_get_by_name(dev, "tx_clk", &tx_clk);
+	if (ret)
+		return 0;
+
 	if (tx_clk.dev) {
 		ret = clk_set_rate(&tx_clk, rate);
 		if (ret)
@@ -705,8 +736,9 @@ static void gmac_configure_dma(struct macb_device *macb)
 	dmacfg = gem_readl(macb, DMACFG) & ~GEM_BF(RXBS, -1L);
 	dmacfg |= GEM_BF(RXBS, buffer_size);
 
-	if (macb->dma_burst_length)
-		dmacfg = GEM_BFINS(FBLDO, macb->dma_burst_length, dmacfg);
+	if (macb->config->dma_burst_length)
+		dmacfg = GEM_BFINS(FBLDO,
+				   macb->config->dma_burst_length, dmacfg);
 
 	dmacfg |= GEM_BIT(TXPBMS) | GEM_BF(RXBMS, -1L);
 	dmacfg &= ~GEM_BIT(ENDIA_PKT);
@@ -1173,11 +1205,10 @@ static const struct macb_config default_gem_config = {
 
 static int macb_eth_probe(struct udevice *dev)
 {
-	const struct macb_config *macb_config;
 	struct eth_pdata *pdata = dev_get_platdata(dev);
 	struct macb_device *macb = dev_get_priv(dev);
 	const char *phy_mode;
-	__maybe_unused int ret;
+	int ret;
 
 	phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
 			       NULL);
@@ -1190,11 +1221,10 @@ static int macb_eth_probe(struct udevice *dev)
 
 	macb->regs = (void *)pdata->iobase;
 
-	macb_config = (struct macb_config *)dev_get_driver_data(dev);
-	if (!macb_config)
-		macb_config = &default_gem_config;
+	macb->config = (struct macb_config *)dev_get_driver_data(dev);
+	if (!macb->config)
+		macb->config = &default_gem_config;
 
-	macb->dma_burst_length = macb_config->dma_burst_length;
 #ifdef CONFIG_CLK
 	ret = macb_enable_clk(dev);
 	if (ret)
@@ -1259,6 +1289,11 @@ static const struct macb_config sama5d4_config = {
 	.dma_burst_length = 4,
 };
 
+static const struct macb_config sifive_config = {
+	.dma_burst_length = 16,
+	.clk_init = macb_sifive_clk_init,
+};
+
 static const struct udevice_id macb_eth_ids[] = {
 	{ .compatible = "cdns,macb" },
 	{ .compatible = "cdns,at91sam9260-macb" },
@@ -1266,6 +1301,8 @@ static const struct udevice_id macb_eth_ids[] = {
 	{ .compatible = "atmel,sama5d3-gem" },
 	{ .compatible = "atmel,sama5d4-gem", .data = (ulong)&sama5d4_config },
 	{ .compatible = "cdns,zynq-gem" },
+	{ .compatible = "sifive,fu540-c000-gem",
+	  .data = (ulong)&sifive_config },
 	{ }
 };
 
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 2/4] net: macb: Fix check for little-endian system in gmac_configure_dma()
  2019-07-22  7:37 [U-Boot] [PATCH v10 0/4] Update SiFive Unleashed Drivers Anup Patel
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 1/4] net: macb: Extend MACB driver for SiFive Unleashed board Anup Patel
@ 2019-07-22  7:38 ` Anup Patel
  2019-07-23  3:21   ` Joe Hershberger
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support Anup Patel
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux Anup Patel
  3 siblings, 1 reply; 16+ messages in thread
From: Anup Patel @ 2019-07-22  7:38 UTC (permalink / raw)
  To: u-boot

Instead of depending on CONFIG_SYS_LITTLE_ENDIAN, we check at runtime
whether underlying system is little-endian or big-endian. This way
we are not dependent on any U-Boot specific OR compiler specific macro
to check system endianness.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
---
 drivers/net/macb.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 3db5597373..27a6c6db2b 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -84,6 +84,8 @@ struct macb_dma_desc {
 struct macb_device {
 	void			*regs;
 
+	bool			is_big_endian;
+
 	const struct macb_config *config;
 
 	unsigned int		rx_tail;
@@ -743,11 +745,10 @@ static void gmac_configure_dma(struct macb_device *macb)
 	dmacfg |= GEM_BIT(TXPBMS) | GEM_BF(RXBMS, -1L);
 	dmacfg &= ~GEM_BIT(ENDIA_PKT);
 
-#ifdef CONFIG_SYS_LITTLE_ENDIAN
-		dmacfg &= ~GEM_BIT(ENDIA_DESC);
-#else
+	if (macb->is_big_endian)
 		dmacfg |= GEM_BIT(ENDIA_DESC); /* CPU in big endian */
-#endif
+	else
+		dmacfg &= ~GEM_BIT(ENDIA_DESC);
 
 	dmacfg &= ~GEM_BIT(ADDR64);
 	gem_writel(macb, DMACFG, dmacfg);
@@ -1221,6 +1222,9 @@ static int macb_eth_probe(struct udevice *dev)
 
 	macb->regs = (void *)pdata->iobase;
 
+	macb->is_big_endian = (cpu_to_be32(0x12345678) == 0x12345678) ?
+				true : false;
+
 	macb->config = (struct macb_config *)dev_get_driver_data(dev);
 	if (!macb->config)
 		macb->config = &default_gem_config;
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support
  2019-07-22  7:37 [U-Boot] [PATCH v10 0/4] Update SiFive Unleashed Drivers Anup Patel
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 1/4] net: macb: Extend MACB driver for SiFive Unleashed board Anup Patel
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 2/4] net: macb: Fix check for little-endian system in gmac_configure_dma() Anup Patel
@ 2019-07-22  7:38 ` Anup Patel
  2019-07-22 15:00   ` Bin Meng
                     ` (2 more replies)
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux Anup Patel
  3 siblings, 3 replies; 16+ messages in thread
From: Anup Patel @ 2019-07-22  7:38 UTC (permalink / raw)
  To: u-boot

We typically use same set of distro images (yocto, debian, fedora, etc.)
on both QEMU RISC-V virt machine and SiFive Unleashed board.

With growing kernel and ramdisk images, we need to re-adjust default
U-Boot environment variables. The config header for QEMU RISC-V virt
machine has been already updated to handle bigger kernel and ramdisk
images hence this patch updates SiFive FU540 config header accordingly.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
---
 include/configs/sifive-fu540.h | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/include/configs/sifive-fu540.h b/include/configs/sifive-fu540.h
index 7007b5f6af..858b7a7da1 100644
--- a/include/configs/sifive-fu540.h
+++ b/include/configs/sifive-fu540.h
@@ -18,12 +18,12 @@
 
 #define CONFIG_SYS_MALLOC_LEN		SZ_8M
 
-#define CONFIG_SYS_BOOTM_LEN		SZ_16M
+#define CONFIG_SYS_BOOTM_LEN		SZ_64M
 
 #define CONFIG_STANDALONE_LOAD_ADDR	0x80200000
 
 /* Environment options */
-#define CONFIG_ENV_SIZE			SZ_4K
+#define CONFIG_ENV_SIZE			SZ_128K
 
 #define BOOT_TARGET_DEVICES(func) \
 	func(DHCP, dhcp, na)
@@ -33,11 +33,15 @@
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"fdt_high=0xffffffffffffffff\0" \
 	"initrd_high=0xffffffffffffffff\0" \
-	"kernel_addr_r=0x80600000\0" \
-	"fdt_addr_r=0x82200000\0" \
-	"scriptaddr=0x82300000\0" \
-	"pxefile_addr_r=0x82400000\0" \
-	"ramdisk_addr_r=0x82500000\0" \
+	"kernel_addr_r=0x84000000\0" \
+	"fdt_addr_r=0x88000000\0" \
+	"scriptaddr=0x88100000\0" \
+	"pxefile_addr_r=0x88200000\0" \
+	"ramdisk_addr_r=0x88300000\0" \
 	BOOTENV
 
+#define CONFIG_PREBOOT \
+	"setenv fdt_addr ${fdtcontroladdr};" \
+	"fdt addr ${fdtcontroladdr};"
+
 #endif /* __CONFIG_H */
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux
  2019-07-22  7:37 [U-Boot] [PATCH v10 0/4] Update SiFive Unleashed Drivers Anup Patel
                   ` (2 preceding siblings ...)
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support Anup Patel
@ 2019-07-22  7:38 ` Anup Patel
  2019-07-22 15:00   ` Bin Meng
                     ` (2 more replies)
  3 siblings, 3 replies; 16+ messages in thread
From: Anup Patel @ 2019-07-22  7:38 UTC (permalink / raw)
  To: u-boot

We should explicitly load DTB from TFTP server or MMC/SD card
for Linux booting. This will allow us:
1. To use different Linux DTB for SiFive Unleashed board with
   expansion board connected.
2. Avoid re-flashing OpenSBI firmware whenever board connections
   change.

This patch updates reference bootlog in SiFive FU540 README
as-per above.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
---
 doc/README.sifive-fu540 | 317 ++++++++++++++++++++++++----------------
 1 file changed, 191 insertions(+), 126 deletions(-)

diff --git a/doc/README.sifive-fu540 b/doc/README.sifive-fu540
index 944ba1c8a0..a106c9206f 100644
--- a/doc/README.sifive-fu540
+++ b/doc/README.sifive-fu540
@@ -59,41 +59,64 @@ Once you plugin the sdcard and power up, you should see the U-Boot prompt.
 
 Sample boot log from HiFive Unleashed board
 ===========================================
-U-Boot 2019.07-rc4-00013-g1837f893b0 (Jun 20 2019 - 11:08:48 +0530)
+U-Boot 2019.07-00024-g350ff02f5b (Jul 22 2019 - 11:45:02 +0530)
 
 CPU:   rv64imafdc
 Model: SiFive HiFive Unleashed A00
 DRAM:  8 GiB
+MMC:   spi at 10050000:mmc at 0: 0
 In:    serial at 10010000
 Out:   serial at 10010000
 Err:   serial at 10010000
 Net:   eth0: ethernet at 10090000
 Hit any key to stop autoboot:  0
 => version
-U-Boot 2019.07-rc4-00013-g1837f893b0 (Jun 20 2019 - 11:08:48 +0530)
+U-Boot 2019.07-00024-g350ff02f5b (Jul 22 2019 - 11:45:02 +0530)
 
 riscv64-linux-gcc.br_real (Buildroot 2018.11-rc2-00003-ga0787e9) 8.2.0
 GNU ld (GNU Binutils) 2.31.1
-=>
-===============================================================================
+=> mmc info
+Device: spi at 10050000:mmc at 0
+Manufacturer ID: 3
+OEM: 5344
+Name: SU08G
+Bus Speed: 20000000
+Mode: SD Legacy
+Rd Block Len: 512
+SD version 2.0
+High Capacity: Yes
+Capacity: 7.4 GiB
+Bus Width: 1-bit
+Erase Group Size: 512 Bytes
+=> mmc part
 
-Now you can configure your networking, tftp server and use tftp boot method to
-load uImage.
+Partition Map for MMC device 0  --   Partition Type: EFI
 
-==========================================================================
-=> setenv ipaddr 10.206.5.241
+Part    Start LBA       End LBA         Name
+        Attributes
+        Type GUID
+        Partition GUID
+  1     0x00000800      0x000107ff      "bootloader"
+        attrs:  0x0000000000000000
+        type:   2e54b353-1271-4842-806f-e436d6af6985
+        guid:   393bbd36-7111-491c-9869-ce24008f6403
+  2     0x00040800      0x00ecdfde      ""
+        attrs:  0x0000000000000000
+        type:   0fc63daf-8483-4772-8e79-3d69d8477de4
+        guid:   7fc9a949-5480-48c7-b623-04923080757f
+=> setenv ipaddr 10.206.7.133
 => setenv netmask 255.255.252.0
 => setenv serverip 10.206.4.143
 => setenv gateway 10.206.4.1
-=> tftpboot ${kernel_addr_r} /sifive/fu540/uImage
+=> tftpboot ${kernel_addr_r} /sifive/fu540/Image
 ethernet at 10090000: PHY present at 0
 ethernet at 10090000: Starting autonegotiation...
 ethernet at 10090000: Autonegotiation complete
-ethernet at 10090000: link up, 1000Mbps full-duplex (lpa: 0x7c00)
+ethernet at 10090000: link up, 1000Mbps full-duplex (lpa: 0x3c00)
 Using ethernet at 10090000 device
-TFTP from server 10.206.4.143; our IP address is 10.206.5.241
-Filename '/sifive/fu540/uImage'.
-Load address: 0x80600000
+TFTP from server 10.206.4.143; our IP address is 10.206.7.133
+Filename '/sifive/fu540/Image'.
+Load address: 0x84000000
 Loading: #################################################################
          #################################################################
          #################################################################
@@ -103,50 +126,77 @@ Loading: #################################################################
          #################################################################
          #################################################################
          #################################################################
-         ########################################
-         1.5 MiB/s
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         ##########################################
+         1.2 MiB/s
 done
-Bytes transferred = 9162364 (8bce7c hex)
+Bytes transferred = 8867100 (874d1c hex)
 => tftpboot ${ramdisk_addr_r} /sifive/fu540/uRamdisk
 ethernet at 10090000: PHY present at 0
 ethernet at 10090000: Starting autonegotiation...
 ethernet at 10090000: Autonegotiation complete
-ethernet at 10090000: link up, 1000Mbps full-duplex (lpa: 0x7c00)
+ethernet at 10090000: link up, 1000Mbps full-duplex (lpa: 0x3c00)
 Using ethernet at 10090000 device
-TFTP from server 10.206.4.143; our IP address is 10.206.5.241
+TFTP from server 10.206.4.143; our IP address is 10.206.7.133
 Filename '/sifive/fu540/uRamdisk'.
-Load address: 0x82500000
+Load address: 0x88300000
 Loading: #################################################################
          #################################################################
-         ##################################
-         448.2 KiB/s
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         ##############
+         418.9 KiB/s
 done
 Bytes transferred = 2398272 (249840 hex)
-=> setenv bootargs "root=/dev/ram rw console=ttySIF0 earlycon=sbi"
-=> bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdtcontroladdr}
-## Booting kernel from Legacy Image at 80600000 ...
-   Image Name:   Linux
-   Image Type:   RISC-V Linux Kernel Image (uncompressed)
-   Data Size:    9162300 Bytes = 8.7 MiB
-   Load Address: 80200000
-   Entry Point:  80200000
-   Verifying Checksum ... OK
-## Loading init Ramdisk from Legacy Image at 82500000 ...
+=> tftpboot ${fdt_addr_r} /sifive/fu540/hifive-unleashed-a00.dtb
+ethernet at 10090000: PHY present at 0
+ethernet at 10090000: Starting autonegotiation...
+ethernet at 10090000: Autonegotiation complete
+ethernet at 10090000: link up, 1000Mbps full-duplex (lpa: 0x7c00)
+Using ethernet at 10090000 device
+TFTP from server 10.206.4.143; our IP address is 10.206.7.133
+Filename '/sifive/fu540/hifive-unleashed-a00.dtb'.
+Load address: 0x88000000
+Loading: ##
+         1000 Bytes/s
+done
+Bytes transferred = 5614 (15ee hex)
+=> setenv bootargs "root=/dev/ram rw console=ttySIF0 ip=dhcp earlycon=sbi"
+=> booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
+## Loading init Ramdisk from Legacy Image at 88300000 ...
    Image Name:   Linux RootFS
    Image Type:   RISC-V Linux RAMDisk Image (uncompressed)
    Data Size:    2398208 Bytes = 2.3 MiB
    Load Address: 00000000
    Entry Point:  00000000
    Verifying Checksum ... OK
-## Flattened Device Tree blob at ff795730
-   Booting using the fdt blob at 0xff795730
-   Loading Kernel Image ... OK
-   Using Device Tree in place at 00000000ff795730, end 00000000ff799dac
+## Flattened Device Tree blob at 88000000
+   Booting using the fdt blob at 0x88000000
+   Using Device Tree in place at 0000000088000000, end 00000000880045ed
 
 Starting kernel ...
 
 [    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
-[    0.000000] Linux version 5.2.0-rc1-00003-gb9543e66e700 (anup at anup-lab-machine) (gcc version 8.2.0 (Buildroot 2018.11-rc2-00003-ga0787e9)) #1 SMP Thu Jun 20 11:41:26 IST 2019
+[    0.000000] Linux version 5.3.0-rc1-00003-g460ac558152f (anup at anup-lab-machine) (gcc version 8.2.0 (Buildroot 2018.11-rc2-00003-ga0787e9)) #6 SMP Mon Jul 22 10:01:01 IST 2019
 [    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
 [    0.000000] printk: bootconsole [sbi0] enabled
 [    0.000000] Initial ramdisk at: 0x(____ptrval____) (2398208 bytes)
@@ -157,17 +207,18 @@ Starting kernel ...
 [    0.000000] Early memory node ranges
 [    0.000000]   node   0: [mem 0x0000000080200000-0x000000027fffffff]
 [    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000027fffffff]
-[    0.000000] software IO TLB: mapped [mem 0xfb795000-0xff795000] (64MB)
+[    0.000000] software IO TLB: mapped [mem 0xfbfff000-0xfffff000] (64MB)
 [    0.000000] CPU with hartid=0 is not available
 [    0.000000] CPU with hartid=0 is not available
 [    0.000000] elf_hwcap is 0x112d
-[    0.000000] percpu: Embedded 17 pages/cpu s29592 r8192 d31848 u69632
+[    0.000000] percpu: Embedded 18 pages/cpu s34584 r8192 d30952 u73728
 [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 2067975
-[    0.000000] Kernel command line: root=/dev/ram rw console=ttySIF0 earlycon=sbi
-[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
-[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
+[    0.000000] Kernel command line: root=/dev/ram rw console=ttySIF0 ip=dhcp earlycon=sbi
+[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
+[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
 [    0.000000] Sorting __ex_table...
-[    0.000000] Memory: 8182056K/8386560K available (5753K kernel code, 357K rwdata, 1804K rodata, 204K init, 808K bss, 204504K reserved, 0K cma-reserved)
+[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
+[    0.000000] Memory: 8182308K/8386560K available (5916K kernel code, 368K rwdata, 1840K rodata, 213K init, 304K bss, 204252K reserved, 0K cma-reserved)
 [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
 [    0.000000] rcu: Hierarchical RCU implementation.
 [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
@@ -175,91 +226,105 @@ Starting kernel ...
 [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
 [    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
 [    0.000000] plic: mapped 53 interrupts with 4 handlers for 9 contexts.
-[    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [2]
+[    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [1]
 [    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
-[    0.000007] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
-[    0.008553] Console: colour dummy device 80x25
-[    0.012990] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=4000)
-[    0.023103] pid_max: default: 32768 minimum: 301
-[    0.028269] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes)
-[    0.035068] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes)
-[    0.042770] *** VALIDATE proc ***
-[    0.045610] *** VALIDATE cgroup1 ***
-[    0.049157] *** VALIDATE cgroup2 ***
-[    0.053743] rcu: Hierarchical SRCU implementation.
-[    0.058297] smp: Bringing up secondary CPUs ...
-[    0.064134] smp: Brought up 1 node, 4 CPUs
-[    0.069114] devtmpfs: initialized
-[    0.073281] random: get_random_u32 called from bucket_table_alloc.isra.10+0x4e/0x160 with crng_init=0
-[    0.082157] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
-[    0.091634] futex hash table entries: 1024 (order: 4, 65536 bytes)
-[    0.098480] NET: Registered protocol family 16
-[    0.114101] vgaarb: loaded
-[    0.116397] SCSI subsystem initialized
-[    0.120358] usbcore: registered new interface driver usbfs
-[    0.125541] usbcore: registered new interface driver hub
-[    0.130936] usbcore: registered new device driver usb
-[    0.136618] clocksource: Switched to clocksource riscv_clocksource
-[    0.148108] NET: Registered protocol family 2
-[    0.152358] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes)
-[    0.159928] TCP established hash table entries: 65536 (order: 7, 524288 bytes)
-[    0.169027] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
-[    0.178360] TCP: Hash tables configured (established 65536 bind 65536)
-[    0.184653] UDP hash table entries: 4096 (order: 5, 131072 bytes)
-[    0.190819] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)
-[    0.197618] NET: Registered protocol family 1
-[    0.201892] RPC: Registered named UNIX socket transport module.
-[    0.207395] RPC: Registered udp transport module.
-[    0.212159] RPC: Registered tcp transport module.
-[    0.216940] RPC: Registered tcp NFSv4.1 backchannel transport module.
-[    0.223445] PCI: CLS 0 bytes, default 64
-[    0.227726] Unpacking initramfs...
-[    0.260556] Freeing initrd memory: 2336K
-[    0.264652] workingset: timestamp_bits=62 max_order=21 bucket_order=0
-[    0.278452] NFS: Registering the id_resolver key type
-[    0.282841] Key type id_resolver registered
-[    0.287067] Key type id_legacy registered
-[    0.291155] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
-[    0.298299] NET: Registered protocol family 38
-[    0.302470] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
-[    0.309906] io scheduler mq-deadline registered
-[    0.314501] io scheduler kyber registered
-[    0.354134] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
-[    0.360725] 10010000.serial: ttySIF0 at MMIO 0x10010000 (irq = 4, base_baud = 0) is a SiFive UART v0
-[    0.369191] printk: console [ttySIF0] enabled
-[    0.369191] printk: console [ttySIF0] enabled
-[    0.377938] printk: bootconsole [sbi0] disabled
-[    0.377938] printk: bootconsole [sbi0] disabled
-[    0.387298] 10011000.serial: ttySIF1 at MMIO 0x10011000 (irq = 1, base_baud = 0) is a SiFive UART v0
-[    0.396411] [drm] radeon kernel modesetting enabled.
-[    0.409818] loop: module loaded
-[    0.412606] libphy: Fixed MDIO Bus: probed
-[    0.416870] macb 10090000.ethernet: Registered clk switch 'sifive-gemgxl-mgmt'
-[    0.423570] macb: GEM doesn't support hardware ptp.
-[    0.428469] libphy: MACB_mii_bus: probed
-[    1.053009] Microsemi VSC8541 SyncE 10090000.ethernet-ffffffff:00: attached PHY driver [Microsemi VSC8541 SyncE] (mii_bus:phy_addr=10090000.ethernet-ffffffff:00, irq=POLL)
-[    1.067548] macb 10090000.ethernet eth0: Cadence GEM rev 0x10070109 at 0x10090000 irq 7 (70:b3:d5:92:f2:f3)
-[    1.077330] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
-[    1.083069] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
-[    1.089061] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
-[    1.095485] ehci-pci: EHCI PCI platform driver
-[    1.099947] ehci-platform: EHCI generic platform driver
-[    1.105196] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
-[    1.111286] ohci-pci: OHCI PCI platform driver
-[    1.115742] ohci-platform: OHCI generic platform driver
-[    1.121142] usbcore: registered new interface driver uas
-[    1.126269] usbcore: registered new interface driver usb-storage
-[    1.132331] mousedev: PS/2 mouse device common for all mice
-[    1.137978] usbcore: registered new interface driver usbhid
-[    1.143325] usbhid: USB HID core driver
-[    1.148022] NET: Registered protocol family 10
-[    1.152609] Segment Routing with IPv6
-[    1.155571] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
-[    1.161927] NET: Registered protocol family 17
-[    1.165907] Key type dns_resolver registered
-[    1.171694] Freeing unused kernel memory: 204K
-[    1.175375] This architecture does not have kernel memory protection.
-[    1.181792] Run /init as init process
+[    0.000006] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
+[    0.008559] Console: colour dummy device 80x25
+[    0.012989] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=4000)
+[    0.023104] pid_max: default: 32768 minimum: 301
+[    0.028273] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
+[    0.035765] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
+[    0.045307] rcu: Hierarchical SRCU implementation.
+[    0.049875] smp: Bringing up secondary CPUs ...
+[    0.055729] smp: Brought up 1 node, 4 CPUs
+[    0.060599] devtmpfs: initialized
+[    0.064819] random: get_random_u32 called from bucket_table_alloc.isra.10+0x4e/0x160 with crng_init=0
+[    0.073720] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
+[    0.083176] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
+[    0.090721] NET: Registered protocol family 16
+[    0.106319] vgaarb: loaded
+[    0.108670] SCSI subsystem initialized
+[    0.112515] usbcore: registered new interface driver usbfs
+[    0.117758] usbcore: registered new interface driver hub
+[    0.123167] usbcore: registered new device driver usb
+[    0.128905] clocksource: Switched to clocksource riscv_clocksource
+[    0.141239] NET: Registered protocol family 2
+[    0.145506] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
+[    0.153754] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
+[    0.163466] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear)
+[    0.173468] TCP: Hash tables configured (established 65536 bind 65536)
+[    0.179739] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
+[    0.186627] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
+[    0.194117] NET: Registered protocol family 1
+[    0.198417] RPC: Registered named UNIX socket transport module.
+[    0.203887] RPC: Registered udp transport module.
+[    0.208664] RPC: Registered tcp transport module.
+[    0.213429] RPC: Registered tcp NFSv4.1 backchannel transport module.
+[    0.219944] PCI: CLS 0 bytes, default 64
+[    0.224170] Unpacking initramfs...
+[    0.262347] Freeing initrd memory: 2336K
+[    0.266531] workingset: timestamp_bits=62 max_order=21 bucket_order=0
+[    0.280406] NFS: Registering the id_resolver key type
+[    0.284798] Key type id_resolver registered
+[    0.289048] Key type id_legacy registered
+[    0.293114] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
+[    0.300262] NET: Registered protocol family 38
+[    0.304432] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
+[    0.311862] io scheduler mq-deadline registered
+[    0.316461] io scheduler kyber registered
+[    0.356421] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
+[    0.363004] 10010000.serial: ttySIF0 at MMIO 0x10010000 (irq = 4, base_baud = 0) is a SiFive UART v0
+[    0.371468] printk: console [ttySIF0] enabled
+[    0.371468] printk: console [ttySIF0] enabled
+[    0.380223] printk: bootconsole [sbi0] disabled
+[    0.380223] printk: bootconsole [sbi0] disabled
+[    0.389589] 10011000.serial: ttySIF1 at MMIO 0x10011000 (irq = 1, base_baud = 0) is a SiFive UART v0
+[    0.398680] [drm] radeon kernel modesetting enabled.
+[    0.412395] loop: module loaded
+[    0.415214] sifive_spi 10040000.spi: mapped; irq=3, cs=1
+[    0.420628] sifive_spi 10050000.spi: mapped; irq=5, cs=1
+[    0.425897] libphy: Fixed MDIO Bus: probed
+[    0.429964] macb 10090000.ethernet: Registered clk switch 'sifive-gemgxl-mgmt'
+[    0.436743] macb: GEM doesn't support hardware ptp.
+[    0.441621] libphy: MACB_mii_bus: probed
+[    0.601316] Microsemi VSC8541 SyncE 10090000.ethernet-ffffffff:00: attached PHY driver [Microsemi VSC8541 SyncE] (mii_bus:phy_addr=10090000.ethernet-ffffffff:00, irq=POLL)
+[    0.615857] macb 10090000.ethernet eth0: Cadence GEM rev 0x10070109 at 0x10090000 irq 6 (70:b3:d5:92:f2:f3)
+[    0.625634] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
+[    0.631381] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
+[    0.637382] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
+[    0.643799] ehci-pci: EHCI PCI platform driver
+[    0.648261] ehci-platform: EHCI generic platform driver
+[    0.653497] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
+[    0.659599] ohci-pci: OHCI PCI platform driver
+[    0.664055] ohci-platform: OHCI generic platform driver
+[    0.669448] usbcore: registered new interface driver uas
+[    0.674575] usbcore: registered new interface driver usb-storage
+[    0.680642] mousedev: PS/2 mouse device common for all mice
+[    0.709493] mmc_spi spi1.0: SD/MMC host mmc0, no DMA, no WP, no poweroff, cd polling
+[    0.716615] usbcore: registered new interface driver usbhid
+[    0.722023] usbhid: USB HID core driver
+[    0.726738] NET: Registered protocol family 10
+[    0.731359] Segment Routing with IPv6
+[    0.734332] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
+[    0.740687] NET: Registered protocol family 17
+[    0.744660] Key type dns_resolver registered
+[    0.806775] mmc0: host does not support reading read-only switch, assuming write-enable
+[    0.814020] mmc0: new SDHC card on SPI
+[    0.820137] mmcblk0: mmc0:0000 SU08G 7.40 GiB
+[    0.850220]  mmcblk0: p1 p2
+[    3.821524] macb 10090000.ethernet eth0: link up (1000/Full)
+[    3.828938] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
+[    3.848919] Sending DHCP requests .., OK
+[    6.252076] IP-Config: Got DHCP answer from 10.206.4.1, my address is 10.206.7.133
+[    6.259624] IP-Config: Complete:
+[    6.262831]      device=eth0, hwaddr=70:b3:d5:92:f2:f3, ipaddr=10.206.7.133, mask=255.255.252.0, gw=10.206.4.1
+[    6.272809]      host=dhcp-10-206-7-133, domain=sdcorp.global.sandisk.com, nis-domain=(none)
+[    6.281228]      bootserver=10.206.126.11, rootserver=10.206.126.11, rootpath=
+[    6.281232]      nameserver0=10.86.1.1, nameserver1=10.86.2.1
+[    6.294179]      ntpserver0=10.86.1.1, ntpserver1=10.86.2.1
+[    6.301026] Freeing unused kernel memory: 212K
+[    6.304683] This architecture does not have kernel memory protection.
+[    6.311121] Run /init as init process
            _  _
           | ||_|
           | | _ ____  _   _  _  _
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support Anup Patel
@ 2019-07-22 15:00   ` Bin Meng
  2019-07-23  3:09   ` Joe Hershberger
  2019-07-23 17:14   ` David Abdurachmanov
  2 siblings, 0 replies; 16+ messages in thread
From: Bin Meng @ 2019-07-22 15:00 UTC (permalink / raw)
  To: u-boot

On Mon, Jul 22, 2019 at 3:38 PM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> We typically use same set of distro images (yocto, debian, fedora, etc.)
> on both QEMU RISC-V virt machine and SiFive Unleashed board.
>
> With growing kernel and ramdisk images, we need to re-adjust default
> U-Boot environment variables. The config header for QEMU RISC-V virt
> machine has been already updated to handle bigger kernel and ramdisk
> images hence this patch updates SiFive FU540 config header accordingly.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>
> ---
>  include/configs/sifive-fu540.h | 18 +++++++++++-------
>  1 file changed, 11 insertions(+), 7 deletions(-)
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux Anup Patel
@ 2019-07-22 15:00   ` Bin Meng
  2019-07-23  3:15   ` Joe Hershberger
  2019-07-25 18:57   ` Joe Hershberger
  2 siblings, 0 replies; 16+ messages in thread
From: Bin Meng @ 2019-07-22 15:00 UTC (permalink / raw)
  To: u-boot

On Mon, Jul 22, 2019 at 3:38 PM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> We should explicitly load DTB from TFTP server or MMC/SD card
> for Linux booting. This will allow us:
> 1. To use different Linux DTB for SiFive Unleashed board with
>    expansion board connected.
> 2. Avoid re-flashing OpenSBI firmware whenever board connections
>    change.
>
> This patch updates reference bootlog in SiFive FU540 README
> as-per above.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>
> ---
>  doc/README.sifive-fu540 | 317 ++++++++++++++++++++++++----------------
>  1 file changed, 191 insertions(+), 126 deletions(-)
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support Anup Patel
  2019-07-22 15:00   ` Bin Meng
@ 2019-07-23  3:09   ` Joe Hershberger
  2019-07-23 17:14   ` David Abdurachmanov
  2 siblings, 0 replies; 16+ messages in thread
From: Joe Hershberger @ 2019-07-23  3:09 UTC (permalink / raw)
  To: u-boot

On Mon, Jul 22, 2019 at 2:50 AM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> We typically use same set of distro images (yocto, debian, fedora, etc.)
> on both QEMU RISC-V virt machine and SiFive Unleashed board.
>
> With growing kernel and ramdisk images, we need to re-adjust default
> U-Boot environment variables. The config header for QEMU RISC-V virt
> machine has been already updated to handle bigger kernel and ramdisk
> images hence this patch updates SiFive FU540 config header accordingly.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>

Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux Anup Patel
  2019-07-22 15:00   ` Bin Meng
@ 2019-07-23  3:15   ` Joe Hershberger
  2019-07-25 18:57   ` Joe Hershberger
  2 siblings, 0 replies; 16+ messages in thread
From: Joe Hershberger @ 2019-07-23  3:15 UTC (permalink / raw)
  To: u-boot

On Mon, Jul 22, 2019 at 2:59 AM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> We should explicitly load DTB from TFTP server or MMC/SD card
> for Linux booting. This will allow us:
> 1. To use different Linux DTB for SiFive Unleashed board with
>    expansion board connected.
> 2. Avoid re-flashing OpenSBI firmware whenever board connections
>    change.
>
> This patch updates reference bootlog in SiFive FU540 README
> as-per above.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>

Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 1/4] net: macb: Extend MACB driver for SiFive Unleashed board
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 1/4] net: macb: Extend MACB driver for SiFive Unleashed board Anup Patel
@ 2019-07-23  3:20   ` Joe Hershberger
  2019-07-23  4:07     ` Anup Patel
  0 siblings, 1 reply; 16+ messages in thread
From: Joe Hershberger @ 2019-07-23  3:20 UTC (permalink / raw)
  To: u-boot

On Mon, Jul 22, 2019 at 2:45 AM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> The SiFive MACB ethernet has a custom TX_CLK_SEL register to select
> different TX clock for 1000mbps vs 10/100mbps.
>
> This patch adds SiFive MACB compatible string and extends the MACB
> ethernet driver to change TX clock using TX_CLK_SEL register for
> SiFive MACB.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>
> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
> ---
>  drivers/net/macb.c | 71 +++++++++++++++++++++++++++++++++++-----------
>  1 file changed, 54 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/net/macb.c b/drivers/net/macb.c
> index 92ec05559b..3db5597373 100644
> --- a/drivers/net/macb.c
> +++ b/drivers/net/macb.c
> @@ -83,7 +83,8 @@ struct macb_dma_desc {
>
>  struct macb_device {
>         void                    *regs;
> -       unsigned int            dma_burst_length;
> +
> +       const struct macb_config *config;
>
>         unsigned int            rx_tail;
>         unsigned int            tx_head;
> @@ -123,6 +124,8 @@ struct macb_device {
>
>  struct macb_config {
>         unsigned int            dma_burst_length;
> +
> +       int                     (*clk_init)(struct udevice *dev, ulong rate);
>  };
>
>  #ifndef CONFIG_DM_ETH
> @@ -483,21 +486,38 @@ static int macb_phy_find(struct macb_device *macb, const char *name)
>   * when operation failed.
>   */
>  #ifdef CONFIG_DM_ETH
> +static int macb_sifive_clk_init(struct udevice *dev, ulong rate)
> +{
> +       fdt_addr_t addr;
> +       void *gemgxl_regs;
> +
> +       addr = dev_read_addr_index(dev, 1);
> +       if (addr == FDT_ADDR_T_NONE)
> +               return -ENODEV;
> +
> +       gemgxl_regs = (void __iomem *)addr;
> +       if (!gemgxl_regs)
> +               return -ENODEV;
> +
> +       /*
> +        * SiFive GEMGXL TX clock operation mode:
> +        *
> +        * 0 = GMII mode. Use 125 MHz gemgxlclk from PRCI in TX logic
> +        *     and output clock on GMII output signal GTX_CLK
> +        * 1 = MII mode. Use MII input signal TX_CLK in TX logic
> +        */
> +       writel(rate != 125000000, gemgxl_regs);
> +       return 0;
> +}
> +
>  int __weak macb_linkspd_cb(struct udevice *dev, unsigned int speed)
>  {
>  #ifdef CONFIG_CLK
> +       struct macb_device *macb = dev_get_priv(dev);
>         struct clk tx_clk;
>         ulong rate;
>         int ret;
>
> -       /*
> -        * "tx_clk" is an optional clock source for MACB.
> -        * Ignore if it does not exist in DT.
> -        */
> -       ret = clk_get_by_name(dev, "tx_clk", &tx_clk);
> -       if (ret)
> -               return 0;
> -
>         switch (speed) {
>         case _10BASET:
>                 rate = 2500000;         /* 2.5 MHz */
> @@ -513,6 +533,17 @@ int __weak macb_linkspd_cb(struct udevice *dev, unsigned int speed)
>                 return 0;
>         }
>
> +       if (macb->config->clk_init)
> +               return macb->config->clk_init(dev, rate);
> +
> +       /*
> +        * "tx_clk" is an optional clock source for MACB.
> +        * Ignore if it does not exist in DT.
> +        */
> +       ret = clk_get_by_name(dev, "tx_clk", &tx_clk);
> +       if (ret)
> +               return 0;
> +
>         if (tx_clk.dev) {
>                 ret = clk_set_rate(&tx_clk, rate);
>                 if (ret)
> @@ -705,8 +736,9 @@ static void gmac_configure_dma(struct macb_device *macb)
>         dmacfg = gem_readl(macb, DMACFG) & ~GEM_BF(RXBS, -1L);
>         dmacfg |= GEM_BF(RXBS, buffer_size);
>
> -       if (macb->dma_burst_length)
> -               dmacfg = GEM_BFINS(FBLDO, macb->dma_burst_length, dmacfg);
> +       if (macb->config->dma_burst_length)
> +               dmacfg = GEM_BFINS(FBLDO,
> +                                  macb->config->dma_burst_length, dmacfg);
>
>         dmacfg |= GEM_BIT(TXPBMS) | GEM_BF(RXBMS, -1L);
>         dmacfg &= ~GEM_BIT(ENDIA_PKT);
> @@ -1173,11 +1205,10 @@ static const struct macb_config default_gem_config = {
>
>  static int macb_eth_probe(struct udevice *dev)
>  {
> -       const struct macb_config *macb_config;
>         struct eth_pdata *pdata = dev_get_platdata(dev);
>         struct macb_device *macb = dev_get_priv(dev);
>         const char *phy_mode;
> -       __maybe_unused int ret;
> +       int ret;
>
>         phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
>                                NULL);
> @@ -1190,11 +1221,10 @@ static int macb_eth_probe(struct udevice *dev)
>
>         macb->regs = (void *)pdata->iobase;
>
> -       macb_config = (struct macb_config *)dev_get_driver_data(dev);
> -       if (!macb_config)
> -               macb_config = &default_gem_config;
> +       macb->config = (struct macb_config *)dev_get_driver_data(dev);
> +       if (!macb->config)
> +               macb->config = &default_gem_config;
>
> -       macb->dma_burst_length = macb_config->dma_burst_length;
>  #ifdef CONFIG_CLK
>         ret = macb_enable_clk(dev);
>         if (ret)
> @@ -1259,6 +1289,11 @@ static const struct macb_config sama5d4_config = {
>         .dma_burst_length = 4,

Please explicitly set clk_init to NULL here and in the default.

>  };
>
> +static const struct macb_config sifive_config = {
> +       .dma_burst_length = 16,
> +       .clk_init = macb_sifive_clk_init,
> +};
> +
>  static const struct udevice_id macb_eth_ids[] = {
>         { .compatible = "cdns,macb" },
>         { .compatible = "cdns,at91sam9260-macb" },
> @@ -1266,6 +1301,8 @@ static const struct udevice_id macb_eth_ids[] = {
>         { .compatible = "atmel,sama5d3-gem" },
>         { .compatible = "atmel,sama5d4-gem", .data = (ulong)&sama5d4_config },
>         { .compatible = "cdns,zynq-gem" },
> +       { .compatible = "sifive,fu540-c000-gem",
> +         .data = (ulong)&sifive_config },
>         { }
>  };
>
> --
> 2.17.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 2/4] net: macb: Fix check for little-endian system in gmac_configure_dma()
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 2/4] net: macb: Fix check for little-endian system in gmac_configure_dma() Anup Patel
@ 2019-07-23  3:21   ` Joe Hershberger
  2019-07-23  4:07     ` Anup Patel
  0 siblings, 1 reply; 16+ messages in thread
From: Joe Hershberger @ 2019-07-23  3:21 UTC (permalink / raw)
  To: u-boot

On Mon, Jul 22, 2019 at 2:54 AM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> Instead of depending on CONFIG_SYS_LITTLE_ENDIAN, we check at runtime
> whether underlying system is little-endian or big-endian. This way
> we are not dependent on any U-Boot specific OR compiler specific macro
> to check system endianness.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>
> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
> ---
>  drivers/net/macb.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/macb.c b/drivers/net/macb.c
> index 3db5597373..27a6c6db2b 100644
> --- a/drivers/net/macb.c
> +++ b/drivers/net/macb.c
> @@ -84,6 +84,8 @@ struct macb_dma_desc {
>  struct macb_device {
>         void                    *regs;
>
> +       bool                    is_big_endian;
> +
>         const struct macb_config *config;
>
>         unsigned int            rx_tail;
> @@ -743,11 +745,10 @@ static void gmac_configure_dma(struct macb_device *macb)
>         dmacfg |= GEM_BIT(TXPBMS) | GEM_BF(RXBMS, -1L);
>         dmacfg &= ~GEM_BIT(ENDIA_PKT);
>
> -#ifdef CONFIG_SYS_LITTLE_ENDIAN
> -               dmacfg &= ~GEM_BIT(ENDIA_DESC);
> -#else
> +       if (macb->is_big_endian)
>                 dmacfg |= GEM_BIT(ENDIA_DESC); /* CPU in big endian */
> -#endif
> +       else
> +               dmacfg &= ~GEM_BIT(ENDIA_DESC);
>
>         dmacfg &= ~GEM_BIT(ADDR64);
>         gem_writel(macb, DMACFG, dmacfg);
> @@ -1221,6 +1222,9 @@ static int macb_eth_probe(struct udevice *dev)
>
>         macb->regs = (void *)pdata->iobase;
>
> +       macb->is_big_endian = (cpu_to_be32(0x12345678) == 0x12345678) ?
> +                               true : false;

You don't need the "? true : false". That's a no-op. Just assign the
result of the comparison.

> +
>         macb->config = (struct macb_config *)dev_get_driver_data(dev);
>         if (!macb->config)
>                 macb->config = &default_gem_config;
> --
> 2.17.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 1/4] net: macb: Extend MACB driver for SiFive Unleashed board
  2019-07-23  3:20   ` Joe Hershberger
@ 2019-07-23  4:07     ` Anup Patel
  0 siblings, 0 replies; 16+ messages in thread
From: Anup Patel @ 2019-07-23  4:07 UTC (permalink / raw)
  To: u-boot

On Tue, Jul 23, 2019 at 8:54 AM Joe Hershberger <joe.hershberger@ni.com> wrote:
>
> On Mon, Jul 22, 2019 at 2:45 AM Anup Patel <Anup.Patel@wdc.com> wrote:
> >
> > The SiFive MACB ethernet has a custom TX_CLK_SEL register to select
> > different TX clock for 1000mbps vs 10/100mbps.
> >
> > This patch adds SiFive MACB compatible string and extends the MACB
> > ethernet driver to change TX clock using TX_CLK_SEL register for
> > SiFive MACB.
> >
> > Signed-off-by: Anup Patel <anup.patel@wdc.com>
> > Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
> > Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
> > ---
> >  drivers/net/macb.c | 71 +++++++++++++++++++++++++++++++++++-----------
> >  1 file changed, 54 insertions(+), 17 deletions(-)
> >
> > diff --git a/drivers/net/macb.c b/drivers/net/macb.c
> > index 92ec05559b..3db5597373 100644
> > --- a/drivers/net/macb.c
> > +++ b/drivers/net/macb.c
> > @@ -83,7 +83,8 @@ struct macb_dma_desc {
> >
> >  struct macb_device {
> >         void                    *regs;
> > -       unsigned int            dma_burst_length;
> > +
> > +       const struct macb_config *config;
> >
> >         unsigned int            rx_tail;
> >         unsigned int            tx_head;
> > @@ -123,6 +124,8 @@ struct macb_device {
> >
> >  struct macb_config {
> >         unsigned int            dma_burst_length;
> > +
> > +       int                     (*clk_init)(struct udevice *dev, ulong rate);
> >  };
> >
> >  #ifndef CONFIG_DM_ETH
> > @@ -483,21 +486,38 @@ static int macb_phy_find(struct macb_device *macb, const char *name)
> >   * when operation failed.
> >   */
> >  #ifdef CONFIG_DM_ETH
> > +static int macb_sifive_clk_init(struct udevice *dev, ulong rate)
> > +{
> > +       fdt_addr_t addr;
> > +       void *gemgxl_regs;
> > +
> > +       addr = dev_read_addr_index(dev, 1);
> > +       if (addr == FDT_ADDR_T_NONE)
> > +               return -ENODEV;
> > +
> > +       gemgxl_regs = (void __iomem *)addr;
> > +       if (!gemgxl_regs)
> > +               return -ENODEV;
> > +
> > +       /*
> > +        * SiFive GEMGXL TX clock operation mode:
> > +        *
> > +        * 0 = GMII mode. Use 125 MHz gemgxlclk from PRCI in TX logic
> > +        *     and output clock on GMII output signal GTX_CLK
> > +        * 1 = MII mode. Use MII input signal TX_CLK in TX logic
> > +        */
> > +       writel(rate != 125000000, gemgxl_regs);
> > +       return 0;
> > +}
> > +
> >  int __weak macb_linkspd_cb(struct udevice *dev, unsigned int speed)
> >  {
> >  #ifdef CONFIG_CLK
> > +       struct macb_device *macb = dev_get_priv(dev);
> >         struct clk tx_clk;
> >         ulong rate;
> >         int ret;
> >
> > -       /*
> > -        * "tx_clk" is an optional clock source for MACB.
> > -        * Ignore if it does not exist in DT.
> > -        */
> > -       ret = clk_get_by_name(dev, "tx_clk", &tx_clk);
> > -       if (ret)
> > -               return 0;
> > -
> >         switch (speed) {
> >         case _10BASET:
> >                 rate = 2500000;         /* 2.5 MHz */
> > @@ -513,6 +533,17 @@ int __weak macb_linkspd_cb(struct udevice *dev, unsigned int speed)
> >                 return 0;
> >         }
> >
> > +       if (macb->config->clk_init)
> > +               return macb->config->clk_init(dev, rate);
> > +
> > +       /*
> > +        * "tx_clk" is an optional clock source for MACB.
> > +        * Ignore if it does not exist in DT.
> > +        */
> > +       ret = clk_get_by_name(dev, "tx_clk", &tx_clk);
> > +       if (ret)
> > +               return 0;
> > +
> >         if (tx_clk.dev) {
> >                 ret = clk_set_rate(&tx_clk, rate);
> >                 if (ret)
> > @@ -705,8 +736,9 @@ static void gmac_configure_dma(struct macb_device *macb)
> >         dmacfg = gem_readl(macb, DMACFG) & ~GEM_BF(RXBS, -1L);
> >         dmacfg |= GEM_BF(RXBS, buffer_size);
> >
> > -       if (macb->dma_burst_length)
> > -               dmacfg = GEM_BFINS(FBLDO, macb->dma_burst_length, dmacfg);
> > +       if (macb->config->dma_burst_length)
> > +               dmacfg = GEM_BFINS(FBLDO,
> > +                                  macb->config->dma_burst_length, dmacfg);
> >
> >         dmacfg |= GEM_BIT(TXPBMS) | GEM_BF(RXBMS, -1L);
> >         dmacfg &= ~GEM_BIT(ENDIA_PKT);
> > @@ -1173,11 +1205,10 @@ static const struct macb_config default_gem_config = {
> >
> >  static int macb_eth_probe(struct udevice *dev)
> >  {
> > -       const struct macb_config *macb_config;
> >         struct eth_pdata *pdata = dev_get_platdata(dev);
> >         struct macb_device *macb = dev_get_priv(dev);
> >         const char *phy_mode;
> > -       __maybe_unused int ret;
> > +       int ret;
> >
> >         phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
> >                                NULL);
> > @@ -1190,11 +1221,10 @@ static int macb_eth_probe(struct udevice *dev)
> >
> >         macb->regs = (void *)pdata->iobase;
> >
> > -       macb_config = (struct macb_config *)dev_get_driver_data(dev);
> > -       if (!macb_config)
> > -               macb_config = &default_gem_config;
> > +       macb->config = (struct macb_config *)dev_get_driver_data(dev);
> > +       if (!macb->config)
> > +               macb->config = &default_gem_config;
> >
> > -       macb->dma_burst_length = macb_config->dma_burst_length;
> >  #ifdef CONFIG_CLK
> >         ret = macb_enable_clk(dev);
> >         if (ret)
> > @@ -1259,6 +1289,11 @@ static const struct macb_config sama5d4_config = {
> >         .dma_burst_length = 4,
>
> Please explicitly set clk_init to NULL here and in the default.

Sure, I will update.

>
> >  };
> >
> > +static const struct macb_config sifive_config = {
> > +       .dma_burst_length = 16,
> > +       .clk_init = macb_sifive_clk_init,
> > +};
> > +
> >  static const struct udevice_id macb_eth_ids[] = {
> >         { .compatible = "cdns,macb" },
> >         { .compatible = "cdns,at91sam9260-macb" },
> > @@ -1266,6 +1301,8 @@ static const struct udevice_id macb_eth_ids[] = {
> >         { .compatible = "atmel,sama5d3-gem" },
> >         { .compatible = "atmel,sama5d4-gem", .data = (ulong)&sama5d4_config },
> >         { .compatible = "cdns,zynq-gem" },
> > +       { .compatible = "sifive,fu540-c000-gem",
> > +         .data = (ulong)&sifive_config },
> >         { }
> >  };
> >
> > --
> > 2.17.1
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

Thanks,
Anup

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 2/4] net: macb: Fix check for little-endian system in gmac_configure_dma()
  2019-07-23  3:21   ` Joe Hershberger
@ 2019-07-23  4:07     ` Anup Patel
  0 siblings, 0 replies; 16+ messages in thread
From: Anup Patel @ 2019-07-23  4:07 UTC (permalink / raw)
  To: u-boot

On Tue, Jul 23, 2019 at 8:55 AM Joe Hershberger <joe.hershberger@ni.com> wrote:
>
> On Mon, Jul 22, 2019 at 2:54 AM Anup Patel <Anup.Patel@wdc.com> wrote:
> >
> > Instead of depending on CONFIG_SYS_LITTLE_ENDIAN, we check at runtime
> > whether underlying system is little-endian or big-endian. This way
> > we are not dependent on any U-Boot specific OR compiler specific macro
> > to check system endianness.
> >
> > Signed-off-by: Anup Patel <anup.patel@wdc.com>
> > Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
> > Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
> > ---
> >  drivers/net/macb.c | 12 ++++++++----
> >  1 file changed, 8 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/net/macb.c b/drivers/net/macb.c
> > index 3db5597373..27a6c6db2b 100644
> > --- a/drivers/net/macb.c
> > +++ b/drivers/net/macb.c
> > @@ -84,6 +84,8 @@ struct macb_dma_desc {
> >  struct macb_device {
> >         void                    *regs;
> >
> > +       bool                    is_big_endian;
> > +
> >         const struct macb_config *config;
> >
> >         unsigned int            rx_tail;
> > @@ -743,11 +745,10 @@ static void gmac_configure_dma(struct macb_device *macb)
> >         dmacfg |= GEM_BIT(TXPBMS) | GEM_BF(RXBMS, -1L);
> >         dmacfg &= ~GEM_BIT(ENDIA_PKT);
> >
> > -#ifdef CONFIG_SYS_LITTLE_ENDIAN
> > -               dmacfg &= ~GEM_BIT(ENDIA_DESC);
> > -#else
> > +       if (macb->is_big_endian)
> >                 dmacfg |= GEM_BIT(ENDIA_DESC); /* CPU in big endian */
> > -#endif
> > +       else
> > +               dmacfg &= ~GEM_BIT(ENDIA_DESC);
> >
> >         dmacfg &= ~GEM_BIT(ADDR64);
> >         gem_writel(macb, DMACFG, dmacfg);
> > @@ -1221,6 +1222,9 @@ static int macb_eth_probe(struct udevice *dev)
> >
> >         macb->regs = (void *)pdata->iobase;
> >
> > +       macb->is_big_endian = (cpu_to_be32(0x12345678) == 0x12345678) ?
> > +                               true : false;
>
> You don't need the "? true : false". That's a no-op. Just assign the
> result of the comparison.

Sure, I will update.

>
> > +
> >         macb->config = (struct macb_config *)dev_get_driver_data(dev);
> >         if (!macb->config)
> >                 macb->config = &default_gem_config;
> > --
> > 2.17.1
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

Thanks,
Anup

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support Anup Patel
  2019-07-22 15:00   ` Bin Meng
  2019-07-23  3:09   ` Joe Hershberger
@ 2019-07-23 17:14   ` David Abdurachmanov
  2 siblings, 0 replies; 16+ messages in thread
From: David Abdurachmanov @ 2019-07-23 17:14 UTC (permalink / raw)
  To: u-boot

On Mon, Jul 22, 2019 at 10:48 AM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> We typically use same set of distro images (yocto, debian, fedora, etc.)
> on both QEMU RISC-V virt machine and SiFive Unleashed board.
>
> With growing kernel and ramdisk images, we need to re-adjust default
> U-Boot environment variables. The config header for QEMU RISC-V virt
> machine has been already updated to handle bigger kernel and ramdisk
> images hence this patch updates SiFive FU540 config header accordingly.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>
> ---

Reviewed-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
Tested-by: David Abdurachmanov <david.abdurachmanov@sifive.com>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux
  2019-07-22  7:38 ` [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux Anup Patel
  2019-07-22 15:00   ` Bin Meng
  2019-07-23  3:15   ` Joe Hershberger
@ 2019-07-25 18:57   ` Joe Hershberger
  2019-07-26  2:35     ` Anup Patel
  2 siblings, 1 reply; 16+ messages in thread
From: Joe Hershberger @ 2019-07-25 18:57 UTC (permalink / raw)
  To: u-boot

On Mon, Jul 22, 2019 at 2:59 AM Anup Patel <Anup.Patel@wdc.com> wrote:
>
> We should explicitly load DTB from TFTP server or MMC/SD card
> for Linux booting. This will allow us:
> 1. To use different Linux DTB for SiFive Unleashed board with
>    expansion board connected.
> 2. Avoid re-flashing OpenSBI firmware whenever board connections
>    change.
>
> This patch updates reference bootlog in SiFive FU540 README
> as-per above.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>

Bad luck... This patch conflicts with [1] that recently went into
mainline from Bin.

Please rework and resend.

Thanks,
-Joe

[1] - https://patchwork.ozlabs.org/patch/1133598/

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux
  2019-07-25 18:57   ` Joe Hershberger
@ 2019-07-26  2:35     ` Anup Patel
  0 siblings, 0 replies; 16+ messages in thread
From: Anup Patel @ 2019-07-26  2:35 UTC (permalink / raw)
  To: u-boot

On Fri, Jul 26, 2019 at 12:27 AM Joe Hershberger <joe.hershberger@ni.com> wrote:
>
> On Mon, Jul 22, 2019 at 2:59 AM Anup Patel <Anup.Patel@wdc.com> wrote:
> >
> > We should explicitly load DTB from TFTP server or MMC/SD card
> > for Linux booting. This will allow us:
> > 1. To use different Linux DTB for SiFive Unleashed board with
> >    expansion board connected.
> > 2. Avoid re-flashing OpenSBI firmware whenever board connections
> >    change.
> >
> > This patch updates reference bootlog in SiFive FU540 README
> > as-per above.
> >
> > Signed-off-by: Anup Patel <anup.patel@wdc.com>
>
> Bad luck... This patch conflicts with [1] that recently went into
> mainline from Bin.
>
> Please rework and resend.

No problem, I will rework this patch.

Thanks,
Anup

>
> Thanks,
> -Joe
>
> [1] - https://patchwork.ozlabs.org/patch/1133598/
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2019-07-26  2:35 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-22  7:37 [U-Boot] [PATCH v10 0/4] Update SiFive Unleashed Drivers Anup Patel
2019-07-22  7:38 ` [U-Boot] [PATCH v10 1/4] net: macb: Extend MACB driver for SiFive Unleashed board Anup Patel
2019-07-23  3:20   ` Joe Hershberger
2019-07-23  4:07     ` Anup Patel
2019-07-22  7:38 ` [U-Boot] [PATCH v10 2/4] net: macb: Fix check for little-endian system in gmac_configure_dma() Anup Patel
2019-07-23  3:21   ` Joe Hershberger
2019-07-23  4:07     ` Anup Patel
2019-07-22  7:38 ` [U-Boot] [PATCH v10 3/4] riscv: sifive: fu540: Sync-up config header with RISC-V QEMU support Anup Patel
2019-07-22 15:00   ` Bin Meng
2019-07-23  3:09   ` Joe Hershberger
2019-07-23 17:14   ` David Abdurachmanov
2019-07-22  7:38 ` [U-Boot] [PATCH v10 4/4] doc: sifive-fu540: Update README to explicitly load DTB for Linux Anup Patel
2019-07-22 15:00   ` Bin Meng
2019-07-23  3:15   ` Joe Hershberger
2019-07-25 18:57   ` Joe Hershberger
2019-07-26  2:35     ` Anup Patel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.