[U-Boot] [PATCH 5/5] mmc: don't support write & erase for SPL builds

Pantelis Antoniou panto at antoniou-consulting.com
Fri Sep 6 14:56:35 CEST 2013


Hi Paul,

On Sep 4, 2013, at 6:14 PM, Paul Burton wrote:

> For SPL builds this is just dead code since we'll only need to read.
> Eliminating it results in a significant size reduction for the SPL
> binary.
> 
> Signed-off-by: Paul Burton <paul.burton at imgtec.com>
> ---

I understand what you're trying to do, but I don't like the #ifdef thing.

I'd prefer moving the mmc_berase & mmc_bwrite in a different file that's
only built for non-SPL and then use the a conditional macro in a header
file.

I.e. 

#ifndef CONFIG_SPL_BUILD
extern unsigned long mmc_berase(int dev_num, lbaint_t start, lbaint_t blkcnt);
#else
#define mmc_berase(dev_num, start, blkcnt) /* nothing */
#endif

Etc.

Regards

-- Pantelis


> drivers/mmc/mmc.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
> index 30a985b..d305257 100644
> --- a/drivers/mmc/mmc.c
> +++ b/drivers/mmc/mmc.c
> @@ -248,6 +248,7 @@ err_out:
> static unsigned long
> mmc_berase(int dev_num, lbaint_t start, lbaint_t blkcnt)
> {
> +#ifndef CONFIG_SPL_BUILD
> 	int err = 0;
> 	struct mmc *mmc = find_mmc_device(dev_num);
> 	lbaint_t blk = 0, blk_r = 0;
> @@ -281,6 +282,9 @@ mmc_berase(int dev_num, lbaint_t start, lbaint_t blkcnt)
> 	}
> 
> 	return blk;
> +#else /* CONFIG_SPL_BUILD */
> +	return -1;
> +#endif
> }
> 
> static ulong
> @@ -349,6 +353,7 @@ mmc_write_blocks(struct mmc *mmc, lbaint_t start, lbaint_t blkcnt, const void*sr
> static ulong
> mmc_bwrite(int dev_num, lbaint_t start, lbaint_t blkcnt, const void*src)
> {
> +#ifndef CONFIG_SPL_BUILD
> 	lbaint_t cur, blocks_todo = blkcnt;
> 
> 	struct mmc *mmc = find_mmc_device(dev_num);
> @@ -368,6 +373,9 @@ mmc_bwrite(int dev_num, lbaint_t start, lbaint_t blkcnt, const void*src)
> 	} while (blocks_todo > 0);
> 
> 	return blkcnt;
> +#else /* CONFIG_SPL_BUILD */
> +	return 0;
> +#endif
> }
> 
> static int mmc_read_blocks(struct mmc *mmc, void *dst, lbaint_t start,
> -- 
> 1.8.3.4
> 
> 



More information about the U-Boot mailing list