[PATCH] board: amlogic: add MMC boot device detection for environment load

Jaehoon Chung jh80.chung at samsung.com
Sun Dec 20 23:18:43 CET 2020


On 12/18/20 11:26 PM, Marek Szyprowski wrote:
> Detect eMMC or SD card boot on Odroid-C4/N2 and Khadas VIM3(l) boards and
> report proper MMC device for the environment loading code. This allows to
> automatically load and store environment variables on the FAT partition
> or RAW offset of the MMC device without the need to use different
> configurations on eMMC and SD card.
> 
> To use this feature with environment stored on FAT partition, one has to
> specify an empty device part (i.e. ":1" for the first partition) in
> CONFIG_ENV_FAT_DEVICE_AND_PART to let the code to set the device to the
> value returned by mmc_get_env_dev() function.
> 
> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>

Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>

Best Regards,
Jaehoon Chung

> ---
>  board/amlogic/odroid-n2/odroid-n2.c | 8 ++++++++
>  board/amlogic/vim3/vim3.c           | 8 ++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/board/amlogic/odroid-n2/odroid-n2.c b/board/amlogic/odroid-n2/odroid-n2.c
> index caf7fd6810..12ee5d3abc 100644
> --- a/board/amlogic/odroid-n2/odroid-n2.c
> +++ b/board/amlogic/odroid-n2/odroid-n2.c
> @@ -10,6 +10,7 @@
>  #include <init.h>
>  #include <net.h>
>  #include <asm/io.h>
> +#include <asm/arch/boot.h>
>  #include <asm/arch/sm.h>
>  #include <asm/arch/eth.h>
>  
> @@ -17,6 +18,13 @@
>  #define EFUSE_MAC_SIZE		12
>  #define MAC_ADDR_LEN		6
>  
> +int mmc_get_env_dev(void)
> +{
> +	if (meson_get_boot_device() == BOOT_DEVICE_EMMC)
> +		return 1;
> +	return 0;
> +}
> +
>  int misc_init_r(void)
>  {
>  	u8 mac_addr[MAC_ADDR_LEN];
> diff --git a/board/amlogic/vim3/vim3.c b/board/amlogic/vim3/vim3.c
> index 09ef39ff30..f9049e0172 100644
> --- a/board/amlogic/vim3/vim3.c
> +++ b/board/amlogic/vim3/vim3.c
> @@ -10,10 +10,18 @@
>  #include <init.h>
>  #include <net.h>
>  #include <asm/io.h>
> +#include <asm/arch/boot.h>
>  #include <asm/arch/eth.h>
>  #include <i2c.h>
>  #include "khadas-mcu.h"
>  
> +int mmc_get_env_dev(void)
> +{
> +	if (meson_get_boot_device() == BOOT_DEVICE_EMMC)
> +		return 2;
> +	return 1;
> +}
> +
>  /*
>   * The VIM3 on-board  MCU can mux the PCIe/USB3.0 shared differential
>   * lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between
> 



More information about the U-Boot mailing list