Subject: Re: [PATCH v4 7/7] Holly bootwrapper

From: David Gibson <[email-masked]>
Date: Tue, 8 May 2007 10:16:04 +1000

On Mon, May 07, 2007 at 04:32:10PM -0500, Josh Boyer wrote:
> Add Holly/Hickory bootwrapper
> 
> Signed-off-by: Stephen Winiecki <[email-masked]>
> Signed-off-by: Josh Boyer <[email-masked]>
> ---
>  arch/powerpc/boot/Makefile |    9 ++++++++-
>  arch/powerpc/boot/holly.c  |   38 ++++++++++++++++++++++++++++++++++++++
>  2 files changed, 46 insertions(+), 1 deletion(-)
> 
> --- linux-2.6.orig/arch/powerpc/boot/Makefile
> +++ linux-2.6/arch/powerpc/boot/Makefile
> @@ -43,7 +43,7 @@ $(addprefix $(obj)/,$(zlib) gunzip_util.
>  src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
>  		ns16550.c serial.c simple_alloc.c div64.S util.S \
>  		gunzip_util.c elf_util.c $(zlib) devtree.c
> -src-plat := of.c cuboot-83xx.c cuboot-85xx.c
> +src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c
>  src-boot := $(src-wlib) $(src-plat) empty.c
>  
>  src-boot := $(addprefix $(obj)/, $(src-boot))
> @@ -129,6 +129,7 @@ image-$(CONFIG_PPC_CELLEB)		+= zImage.ps
>  image-$(CONFIG_PPC_CHRP)		+= zImage.chrp
>  image-$(CONFIG_PPC_EFIKA)		+= zImage.chrp
>  image-$(CONFIG_PPC_PMAC)		+= zImage.pmac
> +image-$(CONFIG_PPC_HOLLY)		+= zImage.holly-elf

Since ELF appears to be the standard image type, I'd suggest just
calling it zImage.holly.

>  image-$(CONFIG_DEFAULT_UIMAGE)		+= uImage
>  
>  ifneq ($(CONFIG_DEVICE_TREE),"")
> @@ -164,6 +165,12 @@ $(obj)/zImage.ps3: vmlinux
>  $(obj)/zImage.initrd.ps3: vmlinux
>  	@echo "  WARNING zImage.initrd.ps3 not supported (yet)"
>  
> +$(obj)/zImage.holly-elf: vmlinux $(wrapperbits)
> +	$(call if_changed,wrap,holly,$(obj)/dts/holly.dts,,)
> +
> +$(obj)/zImage.initrd.holly-elf: vmlinux $(wrapperbits) $(obj)/ramdisk.image.gz
> +	$(call if_changed,wrap,holly,$(obj)/dts/holly.dts,,$(obj)/ramdisk.image.gz)

Um.. won't this need corresponding changes to the wrapper script.  I
don't see them..

>  $(obj)/uImage: vmlinux $(wrapperbits)
>  	$(call if_changed,wrap,uboot)
>  
> --- /dev/null
> +++ linux-2.6/arch/powerpc/boot/holly.c
> @@ -0,0 +1,38 @@
> +/*
> + * Copyright 2007 IBM Corporation
> + *
> + * Stephen Winiecki <[email-masked]>
> + * Josh Boyer <[email-masked]>
> + *
> + * Based on earlier code:
> + * Copyright (C) Paul Mackerras 1997.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * version 2 as published by the Free Software Foundation.
> + */
> +#include <stdarg.h>
> +#include <stddef.h>
> +#include "types.h"
> +#include "elf.h"
> +#include "string.h"
> +#include "stdio.h"
> +#include "page.h"
> +#include "ops.h"
> +#include "io.h"
> +
> +extern char _start[];
> +extern char _end[];
> +extern char _dtb_start[];
> +extern char _dtb_end[];
> +
> +BSS_STACK(4096);
> +
> +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5)
> +{
> +	u32 heapsize = 0x8000000 - (u32)_end; /* 128M */

Urg... careful here.  Can you guarantee that 128M are present at this
point?  I know I do this in Ebony; I need to fix that..

> +	simple_alloc_init(_end, heapsize, 32, 64);
> +	ft_init(_dtb_start, 0, 4);
> +	serial_console_init();
> +}
> 
> _______________________________________________
> Linuxppc-dev mailing list
> [email-masked]
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
> 

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson