From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Tue, 2 Oct 2012 15:08:56 -0500 Subject: [U-Boot] [PATCH v3 2/8] SPL: Port SPL framework to powerpc In-Reply-To: <506AC006.5060502@denx.de> (from sr@denx.de on Tue Oct 2 05:20:54 2012) References: <1348650074-25878-1-git-send-email-sr@denx.de> <1348650074-25878-3-git-send-email-sr@denx.de> <1348874032.5580.27@snotra> <506AC006.5060502@denx.de> Message-ID: <1349208536.1805.3@snotra> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 10/02/2012 05:20:54 AM, Stefan Roese wrote: > On 09/29/2012 01:13 AM, Scott Wood wrote: > > On 09/26/2012 04:01:08 AM, Stefan Roese wrote: > >> This patch enables the SPL framework to be used on powerpc > platforms > >> and not only ARM. > >> > >> Signed-off-by: Stefan Roese > >> --- > >> Changes in v2: > >> - Rebased on Tom's SPL framework patches v4 > >> - Add option to skip copying of the mkimage header > >> > >> arch/powerpc/lib/Makefile | 1 + > >> arch/powerpc/lib/spl.c | 42 > >> ++++++++++++++++++++++++++++++++++++++++++ > >> common/spl/spl.c | 10 ++++++++++ > >> 3 files changed, 53 insertions(+) > >> create mode 100644 arch/powerpc/lib/spl.c > >> > >> diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile > >> index 965f9ea..9bcbdde 100644 > >> --- a/arch/powerpc/lib/Makefile > >> +++ b/arch/powerpc/lib/Makefile > >> @@ -50,6 +50,7 @@ COBJS-y += cache.o > >> COBJS-y += extable.o > >> COBJS-y += interrupts.o > >> COBJS-$(CONFIG_CMD_KGDB) += kgdb.o > >> +COBJS-$(CONFIG_SPL_FRAMEWORK) += spl.o > >> COBJS-y += time.o > > > > Won't this build spl.o into the main U-Boot as well? > > Yes. I'll fix it in the next patchset version. > > >> +/* > >> + * This function jumps to an image with argument. Normally an FDT > or > >> ATAGS > >> + * image. > >> + * arg: Pointer to paramter image in RAM > >> + */ > >> +#ifdef CONFIG_SPL_OS_BOOT > >> +void __noreturn jump_to_image_linux(void *arg) > >> +{ > >> + debug("Entering kernel arg pointer: 0x%p\n", arg); > >> + typedef void (*image_entry_arg_t)(void *, ulong r4, ulong r5, > >> ulong r6, > >> + ulong r7, ulong r8, ulong r9) > >> + __attribute__ ((noreturn)); > >> + image_entry_arg_t image_entry = > >> + (image_entry_arg_t)spl_image.entry_point; > >> + > >> + image_entry(arg, 0, 0, EPAPR_MAGIC, CONFIG_SYS_BOOTMAPSZ, 0, 0); > >> +} > > > > At what point does the image get cache-flushed? > > Not at all right now. MPC5200 has dcache disabled, at least in the > SPL. > Other PowerPC architectures might add a cache flush here if needed at > some time. Okay? Or they might forget to do so and have weird bugs. Why not just call flush_cache() on the image now? Non-SPL does this in common code, not even PPC-specific. -Scott