[U-Boot] [PATCH V3] BOOT: Add "bootz" command to boot Linux zImage

Marek Vasut marex at denx.de
Mon Mar 12 23:08:53 CET 2012


Dear Wolfgang Denk,

> Dear Marek Vasut,
> 
> In message <1331588061-21546-1-git-send-email-marex at denx.de> you wrote:
> > This command boots Linux zImage from where the zImage is loaded to.
> > Passing initrd and fdt is supported.
> 
> I have but a few formal questions / issues.

I had a dilemma about the image.[ch] indeed. I was quite unsure where to put 
those, can you suggest proper location? I didn't want to create new file only 
for that matter.

> 
> ...
> 
> > --- a/common/cmd_bootm.c
> > +++ b/common/cmd_bootm.c
> > @@ -160,35 +160,8 @@ static boot_os_fn *boot_os[] = {
> > 
> >  bootm_headers_t images;		/* pointers to os/initrd/fdt images */
> > 
> > -/* Allow for arch specific config before we boot */
> > -void __arch_preboot_os(void)
> > -{
> > -	/* please define platform specific arch_preboot_os() */
> > -}
> > -void arch_preboot_os(void) __attribute__((weak,
> > alias("__arch_preboot_os"))); -
> > 
> >  #define IH_INITRD_ARCH IH_ARCH_DEFAULT
> > 
> > -static void bootm_start_lmb(void)
> > -{
> 
> ...
> 
> Note: this is bootm (or boot*) related code.
> 
> > --- a/common/image.c
> > +++ b/common/image.c
> > @@ -3190,3 +3190,28 @@ static int fit_check_ramdisk(const void *fit, int
> > rd_noffset, uint8_t arch,
> 
> This is a file that deals with U-Boot images etc.  It is in no way
> related to any of the "boot*" commands.
> 
> > +#ifdef	CONFIG_LMB
> > +void boot_start_lmb(bootm_headers_t *images)
> > +{
> > +	ulong		mem_start;
> > +	phys_size_t	mem_size;
> > +
> > +	lmb_init(&images->lmb);
> > +
> > +	mem_start = getenv_bootm_low();
> > +	mem_size = getenv_bootm_size();
> > +
> > +	lmb_add(&images->lmb, (phys_addr_t)mem_start, mem_size);
> > +
> > +	arch_lmb_reserve(&images->lmb);
> > +	board_lmb_reserve(&images->lmb);
> > +}
> > +#endif
> > +
> > +/* Allow for arch specific config before we boot */
> > +void __arch_preboot_os(void)
> > +{
> > +	/* please define platform specific arch_preboot_os() */
> > +}
> > +void arch_preboot_os(void) __attribute__((weak,
> > alias("__arch_preboot_os")));
> 
> Putting this code here makes no sense.  You could chose any othewr
> random file as well.
> 
> > diff --git a/include/image.h b/include/image.h
> > index bbf80f0..26b8a20 100644
> > --- a/include/image.h
> > +++ b/include/image.h
> > @@ -486,6 +486,14 @@ void image_multi_getimg(const image_header_t *hdr,
> > ulong idx,
> > 
> >  void image_print_contents(const void *hdr);
> > 
> > +#ifdef CONFIG_LMB
> > +void boot_start_lmb(bootm_headers_t *images);
> > +#else
> > +static inline void boot_start_lmb(bootm_headers_t *image) { }
> > +#endif
> > +
> > +extern void arch_preboot_os(void);
> 
> Sorry, no.  image.[ch] is definitely not the right place for this
> stuff.
> 
> Best regards,
> 
> Wolfgang Denk

Best regards,
Marek Vasut


More information about the U-Boot mailing list