[U-Boot] [RFC PATCH 5/5] dra7x: spl: dfu: adding SPL-DFU support for dra7x platform
Lukasz Majewski
l.majewski at samsung.com
Mon May 30 14:19:49 CEST 2016
Hi Ravi,
> Adding SPL-DFU support for dra7x platform. The DFU
> support for dra7x includes QSPI, MMC/SD and eMMC
> memory devices. The SPL-DFU memory devices can be
> selected through meunconfig->Boot Images.
>
> Signed-off-by: Ravi Babu <ravibabu at ti.com>
> ---
> board/ti/dra7xx/evm.c | 20 ++++++++++++++++++++
> include/configs/dra7xx_evm.h | 3 +--
> include/configs/ti_omap5_common.h | 2 --
> 3 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/board/ti/dra7xx/evm.c b/board/ti/dra7xx/evm.c
> index f194999..0ce0e97 100644
> --- a/board/ti/dra7xx/evm.c
> +++ b/board/ti/dra7xx/evm.c
> @@ -30,6 +30,7 @@
> #include <miiphy.h>
> #include <spl.h>
> #include <pcf8575.h>
> +#include <dfu.h>
>
> #include "mux_data.h"
> #include "../common/board_detect.h"
> @@ -619,6 +620,25 @@ int spl_start_uboot(void)
> }
> #endif
>
> +#ifdef CONFIG_SPL_DFU
> +int spl_run_dfu(void)
> +{
> +#ifdef CONFIG_SPL_DFU_EMMC
> + return dfu_run_mmc(0, 1, "dfu_alt_info_emmc");
Maybe dfu_run_mmc() -> dfu_spl_flash_mmc()?
Which would be dfu tunned command with minimal space footprint?
> +#endif
> +
> +#ifdef CONFIG_SPL_DFU_MMC
> + return dfu_run_mmc(0, 0, "dfu_alt_info_mmc");
> +#endif
> +
> +#ifdef CONFIG_SPL_DFU
> + return dfu_run_cmd("dfu_alt_info_qspi",
> + "dfu 0 sf 0:0:64000000:0");
I do feel like running commands in SPL context is the overkill.
However, I do not know what would be the SPL binary size reduction if
we re-implement the dfu_run_cmd() as a set of dedicated commands (like
dfu_spl_flash_sf(0, X, <sf proper alt setting @ envs>,
dfu_spl_flash_nand(0, X, <nand proper alt setting @ envs>), etc.).
If the difference is minimal, then we could leave dfu_run_cmd() in the
presented form.
As I've asked previously - what is the u-boot SPL binary size increase
after adding DFU SPL support to your platform?
> +#endif
> + return 0;
> +}
> +#endif
> +
> #ifdef CONFIG_DRIVER_TI_CPSW
> extern u32 *const omap_si_rev;
>
> diff --git a/include/configs/dra7xx_evm.h
> b/include/configs/dra7xx_evm.h index da84f1c..ec10cd8 100644
> --- a/include/configs/dra7xx_evm.h
> +++ b/include/configs/dra7xx_evm.h
> @@ -44,7 +44,6 @@
>
> #define CONFIG_SYS_OMAP_ABE_SYSCK
>
> -#ifndef CONFIG_SPL_BUILD
> /* Define the default GPT table for eMMC */
> #define PARTS_DEFAULT \
> /* Linux partitions */ \
> @@ -122,6 +121,7 @@
> DFU_ALT_INFO_QSPI
>
> /* Fastboot */
> +#ifndef CONFIG_SPL_BUILD
> #define CONFIG_USB_FUNCTION_FASTBOOT
> #define CONFIG_CMD_FASTBOOT
> #define CONFIG_ANDROID_BOOT_IMAGE
> @@ -331,5 +331,4 @@
> /* pcf support */
> #define CONFIG_PCF8575
> #define CONFIG_SYS_I2C_PCF8575_CHIP { {0x21, 0xeaf7} }
> -
> #endif /* __CONFIG_DRA7XX_EVM_H */
> diff --git a/include/configs/ti_omap5_common.h
> b/include/configs/ti_omap5_common.h index 59f0f70..f9c6576 100644
> --- a/include/configs/ti_omap5_common.h
> +++ b/include/configs/ti_omap5_common.h
> @@ -66,7 +66,6 @@
> #define DFUARGS
> #endif
>
> -#ifndef CONFIG_SPL_BUILD
> #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> #define CONFIG_EXTRA_ENV_SETTINGS \
> DEFAULT_LINUX_BOOT_ENV \
> @@ -136,7 +135,6 @@
> "setenv mmcroot /dev/mmcblk0p2 rw; " \
> "run mmcboot;" \
> ""
> -#endif
>
> /*
> * SPL related defines. The Public RAM memory map the ROM defines
> the
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list