[U-Boot] [PATCH v3 7/8] riscv: nx25: Enable distro boot

Alexander Graf agraf at suse.de
Tue Apr 24 07:53:37 UTC 2018


On 04/24/2018 08:28 AM, rick at andestech.com wrote:
>
>> -----Original Message-----
>> From: Alexander Graf [mailto:agraf at suse.de]
>> Sent: Monday, April 23, 2018 2:00 PM
>> To: u-boot at lists.denx.de
>> Cc: Rick Jian-Zhi Chen(陳建志); Greentime Hu; Philipp Tomsich; Heinrich
>> Schuchardt; schwab at 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 <agraf at 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



More information about the U-Boot mailing list