[U-Boot] [PATCH] hash: Compile-off SHA SW lib in case SHA HW lib is present

Commit 089df18bfe9d ("lib: move hash CONFIG options to Kconfig") moved CONFIG_SHA1, CONFIG_SHA256, CONFIG_SHA_HW_ACCEL, and CONFIG_SHA_PROG_HW_ACCEL config options to Kconfig. So in case of SPL, CONFIG_SPL_HASH_SUPPORT enables CONFIG_SHA1 and CONFIG_SHA256 which enables SHA SW library by default. But in case of platforms with SHA HW library support, SHA SW library becomes redundant and increases size of SPL by approx 18K. So to take care of this SHA SW library is compiled-off in case SHA HW acceleration is present.
Signed-off-by: Sumit Garg sumit.garg@nxp.com --- common/hash.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/common/hash.c b/common/hash.c index 771d8fa..3f75c77 100644 --- a/common/hash.c +++ b/common/hash.c @@ -30,6 +30,7 @@ #include <u-boot/sha256.h> #include <u-boot/md5.h>
+#ifndef CONFIG_SHA_HW_ACCEL #ifdef CONFIG_SHA1 static int hash_init_sha1(struct hash_algo *algo, void **ctxp) { @@ -85,6 +86,7 @@ static int hash_finish_sha256(struct hash_algo *algo, void *ctx, void return 0; } #endif +#endif
static int hash_init_crc32(struct hash_algo *algo, void **ctxp) { @@ -144,7 +146,7 @@ static struct hash_algo hash_algo[] = { hw_sha_finish, #endif }, -#endif +#else #ifdef CONFIG_SHA1 { "sha1", @@ -167,6 +169,7 @@ static struct hash_algo hash_algo[] = { hash_finish_sha256, }, #endif +#endif { "crc32", 4,

On Mon, Aug 14, 2017 at 05:09:46PM +0530, Sumit Garg wrote:
Commit 089df18bfe9d ("lib: move hash CONFIG options to Kconfig") moved CONFIG_SHA1, CONFIG_SHA256, CONFIG_SHA_HW_ACCEL, and CONFIG_SHA_PROG_HW_ACCEL config options to Kconfig. So in case of SPL, CONFIG_SPL_HASH_SUPPORT enables CONFIG_SHA1 and CONFIG_SHA256 which enables SHA SW library by default. But in case of platforms with SHA HW library support, SHA SW library becomes redundant and increases size of SPL by approx 18K. So to take care of this SHA SW library is compiled-off in case SHA HW acceleration is present.
Signed-off-by: Sumit Garg sumit.garg@nxp.com
common/hash.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
Good find. Looking at the code I think this can be done a bit differently to clean up the code as well, which was the first thing I was wondering about when looking this over. I'll have a v2 of this hopefully later today (testing in travis now). Thanks!

-----Original Message----- From: Tom Rini [mailto:trini@konsulko.com] Sent: Monday, August 14, 2017 8:04 PM To: Sumit Garg sumit.garg@nxp.com Cc: u-boot@lists.denx.de; York Sun york.sun@nxp.com; Ruchika Gupta ruchika.gupta@nxp.com; Prabhakar Kushwaha prabhakar.kushwaha@nxp.com; sjg@chromium.org Subject: Re: [PATCH] hash: Compile-off SHA SW lib in case SHA HW lib is present
On Mon, Aug 14, 2017 at 05:09:46PM +0530, Sumit Garg wrote:
Commit 089df18bfe9d ("lib: move hash CONFIG options to Kconfig") moved CONFIG_SHA1, CONFIG_SHA256, CONFIG_SHA_HW_ACCEL, and CONFIG_SHA_PROG_HW_ACCEL config options to Kconfig. So in case of SPL, CONFIG_SPL_HASH_SUPPORT enables CONFIG_SHA1 and CONFIG_SHA256
which
enables SHA SW library by default. But in case of platforms with SHA HW library support, SHA SW library becomes redundant and increases size of SPL by approx 18K. So to take care of this SHA SW library is compiled-off in case SHA HW acceleration is present.
Signed-off-by: Sumit Garg sumit.garg@nxp.com
common/hash.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
Good find. Looking at the code I think this can be done a bit differently to clean up the code as well, which was the first thing I was wondering about when looking this over. I'll have a v2 of this hopefully later today (testing in travis now). Thanks!
-- Tom
Thanks Tom for your comments.
Sumit
participants (2)
-
Sumit Garg
-
Tom Rini