[PATCH v2 9/9] powerpc/boot: Add a boot wrapper for Microwatt

Nicholas Piggin npiggin at gmail.com
Sat Jun 19 13:16:11 AEST 2021


Excerpts from Paul Mackerras's message of June 18, 2021 1:49 pm:
> From: Joel Stanley <joel at jms.id.au>
> 
> This allows microwatt's kernel to be built with an embedded device tree.
> 
> Load to arch/powerpc/boot/dtbImage.microwatt to 0x500000:
> 
>  mw_debug -b fpga stop load arch/powerpc/boot/dtbImage.microwatt 500000 start
> 
> Signed-off-by: Joel Stanley <joel at jms.id.au>
> Signed-off-by: Paul Mackerras <paulus at ozlabs.org>

Thanks for folding and commenting that change. Ack for this and the rest 
of the platform and dt and interrupt handling patches FWIW, but I don't 
know much about any of these areas to give an informed review.

Thanks,
Nick

> ---
>  arch/powerpc/boot/Makefile    |  4 ++++
>  arch/powerpc/boot/microwatt.c | 24 ++++++++++++++++++++++++
>  arch/powerpc/boot/wrapper     |  5 +++++
>  3 files changed, 33 insertions(+)
>  create mode 100644 arch/powerpc/boot/microwatt.c
> 
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index 2b8da923ceca..dfaa4094fcae 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -163,6 +163,8 @@ src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
>  src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
>  src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
>  
> +src-plat-$(CONFIG_PPC_MICROWATT) += fixed-head.S microwatt.c
> +
>  src-wlib := $(sort $(src-wlib-y))
>  src-plat := $(sort $(src-plat-y))
>  src-boot := $(src-wlib) $(src-plat) empty.c
> @@ -355,6 +357,8 @@ image-$(CONFIG_MVME5100)		+= dtbImage.mvme5100
>  # Board port in arch/powerpc/platform/amigaone/Kconfig
>  image-$(CONFIG_AMIGAONE)		+= cuImage.amigaone
>  
> +image-$(CONFIG_PPC_MICROWATT)		+= dtbImage.microwatt
> +
>  # For 32-bit powermacs, build the COFF and miboot images
>  # as well as the ELF images.
>  ifdef CONFIG_PPC32
> diff --git a/arch/powerpc/boot/microwatt.c b/arch/powerpc/boot/microwatt.c
> new file mode 100644
> index 000000000000..ca9d83617fc1
> --- /dev/null
> +++ b/arch/powerpc/boot/microwatt.c
> @@ -0,0 +1,24 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +
> +#include <stddef.h>
> +#include "stdio.h"
> +#include "types.h"
> +#include "io.h"
> +#include "ops.h"
> +
> +BSS_STACK(8192);
> +
> +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5)
> +{
> +	unsigned long heapsize = 16*1024*1024 - (unsigned long)_end;
> +
> +	/*
> +	 * Disable interrupts and turn off MSR_RI, since we'll
> +	 * shortly be overwriting the interrupt vectors.
> +	 */
> +	__asm__ volatile("mtmsrd %0,1" : : "r" (0));
> +
> +	simple_alloc_init(_end, heapsize, 32, 64);
> +	fdt_init(_dtb_start);
> +	serial_console_init();
> +}
> diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
> index 41fa0a8715e3..ae48fffa1e13 100755
> --- a/arch/powerpc/boot/wrapper
> +++ b/arch/powerpc/boot/wrapper
> @@ -342,6 +342,11 @@ gamecube|wii)
>      link_address='0x600000'
>      platformo="$object/$platform-head.o $object/$platform.o"
>      ;;
> +microwatt)
> +    link_address='0x500000'
> +    platformo="$object/fixed-head.o $object/$platform.o"
> +    binary=y
> +    ;;
>  treeboot-currituck)
>      link_address='0x1000000'
>      ;;
> -- 
> 2.31.1
> 
> 


More information about the Linuxppc-dev mailing list