cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

board-dt.c (2222B)


      1/*
      2 * Copyright 2012 (C), Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      3 *
      4 * arch/arm/mach-orion5x/board-dt.c
      5 *
      6 * Flattened Device Tree board initialization
      7 *
      8 * This file is licensed under the terms of the GNU General Public
      9 * License version 2.  This program is licensed "as is" without any
     10 * warranty of any kind, whether express or implied.
     11 */
     12
     13#include <linux/kernel.h>
     14#include <linux/init.h>
     15#include <linux/of.h>
     16#include <linux/of_platform.h>
     17#include <linux/cpu.h>
     18#include <linux/mbus.h>
     19#include <linux/clocksource.h>
     20#include <asm/system_misc.h>
     21#include <asm/mach/arch.h>
     22#include <asm/mach/map.h>
     23#include <plat/irq.h>
     24#include <plat/time.h>
     25#include "orion5x.h"
     26#include "bridge-regs.h"
     27#include "common.h"
     28
     29static struct of_dev_auxdata orion5x_auxdata_lookup[] __initdata = {
     30	OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL),
     31	OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0",
     32		       NULL),
     33	OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL),
     34	OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL),
     35	OF_DEV_AUXDATA("marvell,orion-crypto", 0xf1090000, "mv_crypto", NULL),
     36	{},
     37};
     38
     39static void __init orion5x_dt_init(void)
     40{
     41	char *dev_name;
     42	u32 dev, rev;
     43
     44	orion5x_id(&dev, &rev, &dev_name);
     45	printk(KERN_INFO "Orion ID: %s. TCLK=%d.\n", dev_name, orion5x_tclk);
     46
     47	BUG_ON(mvebu_mbus_dt_init(false));
     48
     49	/*
     50	 * Setup Orion address map
     51	 */
     52	orion5x_setup_wins();
     53
     54	/*
     55	 * Don't issue "Wait for Interrupt" instruction if we are
     56	 * running on D0 5281 silicon.
     57	 */
     58	if (dev == MV88F5281_DEV_ID && rev == MV88F5281_REV_D0) {
     59		printk(KERN_INFO "Orion: Applying 5281 D0 WFI workaround.\n");
     60		cpu_idle_poll_ctrl(true);
     61	}
     62
     63	if (of_machine_is_compatible("maxtor,shared-storage-2"))
     64		mss2_init();
     65
     66	of_platform_default_populate(NULL, orion5x_auxdata_lookup, NULL);
     67}
     68
     69static const char *orion5x_dt_compat[] = {
     70	"marvell,orion5x",
     71	NULL,
     72};
     73
     74DT_MACHINE_START(ORION5X_DT, "Marvell Orion5x (Flattened Device Tree)")
     75	/* Maintainer: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> */
     76	.map_io		= orion5x_map_io,
     77	.init_machine	= orion5x_dt_init,
     78	.restart	= orion5x_restart,
     79	.dt_compat	= orion5x_dt_compat,
     80MACHINE_END