
On Thu, 7 Jul 2011 17:50:12 +0200 Simon Schwarz simonschwarzcor@googlemail.com wrote:
But that's not what bootm is for. If you're doing something new, it should be in a new command -- or in a script of existing commands.
True. The upper patch was the quickest way to do this.
I implemented a first test for a command. This is a bit ugly because I have to rip apart bootm. For now I heavily used extern and removed static keywords from bootm - this is ok for the testing but not to get it into mainline...
I'am not sure how i can handle this to get it into mainline. The main problem is in arch/arm/lib/bootm.c implementation: static void setup_start_tag (bd_t *bd); static void setup_memory_tags (bd_t *bd); static void setup_commandline_tag (bd_t *bd, char *commandline); static void setup_initrd_tag (bd_t *bd, ulong initrd_start, ulong initrd_end); static void setup_end_tag (bd_t *bd); static struct tag *params; static ulong get_sp(void); static int bootm_linux_fdt(int machid, bootm_headers_t *images);
These function i need to build the atags. But they are defined static and not really meant to be used from the outside. What comes to my mind here is to create a new setup_atags.c in the same directory + a header in include. Is this the right place for this? Maybe another solution?
Look at bootm subcommands to run just the portion of the existing bootm functionality that you need. Type "help bootm" for details.
-Scott