mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 05:34:00 +08:00
b4e8c8dd84
This is a trivial 4xx plaform that uses the new simple bsp from Josh and is handy to use in simulators such as ISS or even Mambo who don't properly implement most of the actual devices in the SoC but really only the core. Signed-off-by: Torez Smith <lnxtorez@linux.vnet.ibm.com> Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
57 lines
1.4 KiB
C
57 lines
1.4 KiB
C
/*
|
|
* Copyright 2010 Ben. Herrenschmidt, IBM Corporation.
|
|
*
|
|
* Based on earlier code:
|
|
* Copyright (C) Paul Mackerras 1997.
|
|
*
|
|
* Matt Porter <mporter@kernel.crashing.org>
|
|
* Copyright 2002-2005 MontaVista Software Inc.
|
|
*
|
|
* Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net>
|
|
* Copyright (c) 2003, 2004 Zultys Technologies
|
|
*
|
|
* Copyright 2007 David Gibson, IBM Corporation.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
*/
|
|
#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 "reg.h"
|
|
#include "io.h"
|
|
#include "dcr.h"
|
|
#include "4xx.h"
|
|
#include "44x.h"
|
|
#include "libfdt.h"
|
|
|
|
BSS_STACK(4096);
|
|
|
|
static void iss_4xx_fixups(void)
|
|
{
|
|
ibm4xx_sdram_fixup_memsize();
|
|
}
|
|
|
|
#define SPRN_PIR 0x11E /* Processor Indentification Register */
|
|
void platform_init(void)
|
|
{
|
|
unsigned long end_of_ram = 0x08000000;
|
|
unsigned long avail_ram = end_of_ram - (unsigned long)_end;
|
|
u32 pir_reg;
|
|
|
|
simple_alloc_init(_end, avail_ram, 128, 64);
|
|
platform_ops.fixups = iss_4xx_fixups;
|
|
platform_ops.exit = ibm44x_dbcr_reset;
|
|
pir_reg = mfspr(SPRN_PIR);
|
|
fdt_set_boot_cpuid_phys(_dtb_start, pir_reg);
|
|
fdt_init(_dtb_start);
|
|
serial_console_init();
|
|
}
|