[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