~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/powerpc/boot/epapr.c

Version: ~ [ linux-5.1-rc5 ] ~ [ linux-5.0.7 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.34 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.111 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.168 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.178 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.138 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.65 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.39.4 ] ~ [ linux-2.6.38.8 ] ~ [ linux-2.6.37.6 ] ~ [ linux-2.6.36.4 ] ~ [ linux-2.6.35.14 ] ~ [ linux-2.6.34.15 ] ~ [ linux-2.6.33.20 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Bootwrapper for ePAPR compliant firmwares
  3  *
  4  * Copyright 2010 David Gibson <david@gibson.dropbear.id.au>, IBM Corporation.
  5  *
  6  * Based on earlier bootwrappers by:
  7  * (c) Benjamin Herrenschmidt <benh@kernel.crashing.org>, IBM Corp,\
  8  *   and
  9  * Scott Wood <scottwood@freescale.com>
 10  * Copyright (c) 2007 Freescale Semiconductor, Inc.
 11  *
 12  * This program is free software; you can redistribute it and/or modify it
 13  * under the terms of the GNU General Public License version 2 as published
 14  * by the Free Software Foundation.
 15  */
 16 
 17 #include "ops.h"
 18 #include "stdio.h"
 19 #include "io.h"
 20 #include <libfdt.h>
 21 
 22 BSS_STACK(4096);
 23 
 24 #define EPAPR_SMAGIC    0x65504150
 25 #define EPAPR_EMAGIC    0x45504150
 26 
 27 static unsigned epapr_magic;
 28 static unsigned long ima_size;
 29 static unsigned long fdt_addr;
 30 
 31 static void platform_fixups(void)
 32 {
 33         if ((epapr_magic != EPAPR_EMAGIC)
 34             && (epapr_magic != EPAPR_SMAGIC))
 35                 fatal("r6 contained 0x%08x instead of ePAPR magic number\n",
 36                       epapr_magic);
 37 
 38         if (ima_size < (unsigned long)_end)
 39                 printf("WARNING: Image loaded outside IMA!"
 40                        " (_end=%p, ima_size=0x%lx)\n", _end, ima_size);
 41         if (ima_size < fdt_addr)
 42                 printf("WARNING: Device tree address is outside IMA!"
 43                        "(fdt_addr=0x%lx, ima_size=0x%lx)\n", fdt_addr,
 44                        ima_size);
 45         if (ima_size < fdt_addr + fdt_totalsize((void *)fdt_addr))
 46                 printf("WARNING: Device tree extends outside IMA!"
 47                        " (fdt_addr=0x%lx, size=0x%x, ima_size=0x%lx\n",
 48                        fdt_addr, fdt_totalsize((void *)fdt_addr), ima_size);
 49 }
 50 
 51 void epapr_platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
 52                          unsigned long r6, unsigned long r7)
 53 {
 54         epapr_magic = r6;
 55         ima_size = r7;
 56         fdt_addr = r3;
 57 
 58         /* FIXME: we should process reserve entries */
 59 
 60         simple_alloc_init(_end, ima_size - (unsigned long)_end, 32, 64);
 61 
 62         fdt_init((void *)fdt_addr);
 63 
 64         serial_console_init();
 65         platform_ops.fixups = platform_fixups;
 66 }
 67 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp