On 04/24/2018 08:28 AM, r...@andestech.com wrote:

-----Original Message-----
From: Alexander Graf [mailto:ag...@suse.de]
Sent: Monday, April 23, 2018 2:00 PM
To: u-boot@lists.denx.de
Cc: Rick Jian-Zhi Chen(陳建志); Greentime Hu; Philipp Tomsich; Heinrich
Schuchardt; sch...@suse.de
Subject: [PATCH v3 7/8] riscv: nx25: Enable distro boot

Distro boot allows for a common boot path on systems that allow distributions to
easily boot from a default configuration.

This patch enables distro boot for the nx25-ae250. Hopefully this can serve as a
good example for new boards, so they enable it as well.

Signed-off-by: Alexander Graf <ag...@suse.de>
---
  configs/nx25-ae250_defconfig |  1 +
  include/configs/nx25-ae250.h | 17 +++++++++++++++++
  2 files changed, 18 insertions(+)

diff --git a/configs/nx25-ae250_defconfig b/configs/nx25-ae250_defconfig index
4f9bd58f75..437083231b 100644
--- a/configs/nx25-ae250_defconfig
+++ b/configs/nx25-ae250_defconfig
@@ -37,3 +37,4 @@ CONFIG_DM_SPI=y
  CONFIG_ATCSPI200_SPI=y
  CONFIG_TIMER=y
  CONFIG_ATCPIT100_TIMER=y
+CONFIG_DISTRO_DEFAULTS=y
diff --git a/include/configs/nx25-ae250.h b/include/configs/nx25-ae250.h index
0e4c431cab..a90c75abc4 100644
--- a/include/configs/nx25-ae250.h
+++ b/include/configs/nx25-ae250.h
@@ -105,4 +105,21 @@
  /* Increase max gunzip size */
  #define CONFIG_SYS_BOOTM_LEN (64 << 20)

+/* When we use RAM as ENV */
+#define CONFIG_ENV_SIZE 0x2000
+
+/* Enable distro boot */
+#define BOOT_TARGET_DEVICES(func) \
+     func(MMC, mmc, 0) \
+     func(DHCP, dhcp, na)
+#include <config_distro_bootcmd.h>
+
+#define CONFIG_EXTRA_ENV_SETTINGS    \
+                             "kernel_addr_r=0x00080000\0" \
+                             "pxefile_addr_r=0x01f00000\0" \
+                             "scriptaddr=0x01f00000\0" \
+                             "fdt_addr_r=0x02000000\0" \
+                             "ramdisk_addr_r=0x02800000\0" \
+                             BOOTENV
+
Hi Alexander

This default env setting seem try to load something(maybe script, or kernel and 
dtb ?) from mmc and tftpserver
But I do not know how to prepare this script or image.

I am not sure if the understanding is correct ?
Can you explain it ?

The distro boot script logic is described quite nicely here:

  https://github.com/u-boot/u-boot/blob/master/doc/README.distro

I personally only care about a subset of it though, which is the efi_loader loading logic:

  https://github.com/u-boot/u-boot/blob/master/doc/README.uefi

With distro boot enabled, the distro boot script will automatically search for a file called /efi/boot/bootriscv64.efi (or 32 respectively) and execute it as UEFI binary. The next step I need to get to still is to enable RISC-V UEFI support in grub. Once we have that, we can boot RISC-V systems like any other platform we support in openSUSE.


Alex

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to