> Two general comments. First, please use CONFIG_IS_ENABLED() to test for > the new symbols so that we won't have any growth in SPL if we have one > of these enabled in the main binary but NOT SPL.
It is not clear to me how I should be using CONFIG_IS_ENABLED(). I have copied the pattern of macro checks from the SHA256 code, and this does not use this anywhere. Take for example common\hash.c - this is checking for #if defined(CONFIG_SHA256) or #ifdef CONFIG_SHA256, so I added similar checks. It also seems that existing SHA etc algorithms are enabled in SPL using non-standard macros like 'CONFIG_SPL_SHA1_SUPPORT' when in main uboot the macro is CONFIG_SHA1. I tried attempting to fix these issues - renaming CONFIG_SPL_SHA384_SUPPORT to CONFIG_SPL_SHA384, then using the CONFIG_IS_ENABLED() macros, but I am running into a lot of problems getting the tools (eg mkimage) to compile. In image.h there is logic like: #if defined(CONFIG_FIT_ENABLE_SHA256_SUPPORT) || \ defined(CONFIG_SPL_SHA256_SUPPORT) #define IMAGE_ENABLE_SHA256 1 #else #define IMAGE_ENABLE_SHA256 0 #endif So I think the hash algorithms are not using same method as other parts of code to control the SPL/non SPL parts, probably because of the interdependancy with the host tools. Fixing all this up to me seems a separate task to just adding a new hash algorithm. What would you advise?