[U-Boot-Users] Adding new commands
Tolunay Orkun
listmember at orkun.us
Mon Oct 16 22:45:56 CEST 2006
Wolfgang Denk wrote:
> In message <453368A1.5050407 at dave-tech.it> you wrote:
>> I have to add two new commands so I have to add something like this to
>> cmd_confdefs.h:
>>
>> #define CFG_CMD_NEW1 0x8000000000000000ULL
>> #define CFG_CMD_NEW2 ???
>>
>> IIUC we have 64 bits available for the commands and 63 commands are
>> already defined. So how to define more than 64 commands?
>
> We have to rework this whole configuration setup. At the moment I
> don't have a good and quick solution available.
>
One possibility is to get rid of existing bitmap scheme. A
cmd_defaults.h would define all default CFG_COMMAND_XXX. And board
configs would add remove commands by defining more or remove from
defaults by undefining the corresponding macros after the inclusion of
cmd_defaults.h.
Another quick solution would be to use Most Significant Bit as an
expansion flag and use up to 63 more commands via CONFIG_COMMANDS2 macro.
The test logic will need to be modified but it could be wrapped to a
macro like:
Instead of this:
#if (CONFIG_COMMANDS & CFG_CMD_DATE) || defined(CONFIG_TIMESTAMP)
#include <rtc.h>
#endif
Use this:
#if IS_CONFIG_COMMAND(CFG_CMD_DATE) || defined(CONFIG_TIMESTAMP)
#include <rtc.h>
#endif
And IS_CONFIG_COMMAND macro defined something like:
#define IS_CONFIG_COMMAND(x) ((x) & 0x8000000000000000ULL) ? \
((x) & CONFIG_COMMANDS2) | \
((x) & CONFIG_COMMANDS))
And if we get to 63+62=126 commands we can use next to MSB in
CONFIG_COMMANDS2 as another expansion bit along with CONFIG_COMMANDS3
(if we ever get that far).
Actually we do not even need to modify the existing (CONFIG_COMMAND &
....) but any new configuration options needs to test for enabling via
the new macro.
Best regards,
Tolunay
More information about the U-Boot
mailing list