On Wed, May 24, 2017 at 12:11:57PM +0000, B, Ravi wrote: > Hi Tom > > >> >> obj-$(CONFIG_USB_FUNCTION_DFU) += dfu.o > >> >> +ifndef CONFIG_SPL_BUILD > >> >> obj-$(CONFIG_DFU_MMC) += dfu_mmc.o > >> >> +endif > >> >> +obj-$(CONFIG_SPL_DFU_MMC) += dfu_mmc.o > >> > >> >This becomes obj-$(CONFIG_$(SPL_)DFU_MMC) += dfu_mmc.o > >> > >> >> diff --git a/drivers/dfu/dfu_mmc.c b/drivers/dfu/dfu_mmc.c index > >> >> 926ccbd..ba509db 100644 > >> >> --- a/drivers/dfu/dfu_mmc.c > >> >> +++ b/drivers/dfu/dfu_mmc.c > >> > [snip] > >> >> @@ -154,7 +155,11 @@ static int mmc_file_op(enum dfu_op op, struct > >> >> dfu_entity *dfu, > >> >> > >> >> debug("%s: %s 0x%p\n", __func__, cmd_buf, cmd_buf); > >> >> > >> >> +#if CONFIG_IS_ENABLED(DFU_MMC) > >> >> + ret = cli_simple_run_command(cmd_buf, 0); #else > >> >> ret = run_command(cmd_buf, 0); > >> >> +#endif > >> > >> >This doesn't make sense. CONFIG_IS_ENABLED(DFU_MMC) is true for > >> >CONFIG_DFU_MMC or CONFIG_SPL_DFU_MMC. Thanks! > >> > >> True, My bad, I realized it lately after posting the patch. > >> > >> I will use run_command() only, which abstrace use of both > >> simple_cli_xx() and hush_parser. > >> > >> Since cli_hush.c is compile out for SPL to reduce the size. SPL must > >> use simple_cli_xx(). > >> Since by default CONFIG_HUSH_PARSER is defined for both SPL/U-BOOT, > >> this leads to compile error. I need to fix this way. > > >We keep running into problems due to trying to whack in what to do in DFU > >via command rather than via API. Can you make an attempt to convert things > >over, in both SPL and not SPL, in DFU to using ABI instead, to see if we can > >get the size reduction here still, and >not have to try and put fragile to > >other use cases ifdefs in common code? Thanks! > > Use of direct mmc read/write API instead of using the run_command() is not > feasible in this case. As the DFU does read/write to mmc through fat/ext4 > files system, uses "fatload/fatwrite" or "ext4load/ext4write" command to > perform read/write to specific partition of mmc device. I think use of > run_command() is more appropriate.
OK. Can you go back to https://patchwork.ozlabs.org/patch/758485/ and clean that up as I was saying? We should be able to call cli_simple_run_command in all cases and then not need cli_hush.c, yes? And we can then move common/cli.c into being compiled only in the non-SPL case I think (but use travis-ci to confirm). Thanks! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot