Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddd70cf9 authored by Jun Nakajima's avatar Jun Nakajima Committed by H. Peter Anvin
Browse files

goldfish: platform device for x86



Based on code by Jun Nakajima but stripped of all the old x86 mach-foo
stuff and turned into a single file for the Goldfish virtual bus layer.

The actual created platform device and bus enumeration is portable between the
ARM and x86 Goldfish emulations.

Signed-off-by: default avatarSheng Yang <sheng@linux.intel.com>
Link: http://lkml.kernel.org/r/20130121172205.19517.22535.stgit@bob.linux.org.uk


Signed-off-by: default avatarYunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: default avatarXiaohui Xin <xiaohui.xin@intel.com>
Signed-off-by: default avatarJun Nakajima <jun.nakajima@intel.com>
Signed-off-by: default avatarBruce Beare <bruce.j.beare@intel.com>
[Ported to 3.7 and reorganised so that we can keep most of the code
 shared properly]
Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
parent 7d1f9aef
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -320,6 +320,10 @@ config X86_BIGSMP
	---help---
	  This option is needed for the systems that have more than 8 CPUs

config GOLDFISH
       def_bool y
       depends on X86_GOLDFISH

if X86_32
config X86_EXTENDED_PLATFORM
	bool "Support for extended (non-PC) x86 platforms"
@@ -402,6 +406,14 @@ config X86_UV
# Following is an alphabetically sorted list of 32 bit extended platforms
# Please maintain the alphabetic order if and when there are additions

config X86_GOLDFISH
       bool "Goldfish (Virtual Platform)"
       depends on X86_32
       ---help---
	 Enable support for the Goldfish virtual platform used primarily
	 for Android development. Unless you are building for the Android
	 Goldfish emulator say N here.

config X86_INTEL_CE
	bool "CE4100 TV platform"
	depends on PCI
+1 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
obj-y	+= ce4100/
obj-y	+= efi/
obj-y	+= geode/
obj-y	+= goldfish/
obj-y	+= iris/
obj-y	+= mrst/
obj-y	+= olpc/
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_GOLDFISH)	+= goldfish.o
+51 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2007 Google, Inc.
 * Copyright (C) 2011 Intel, Inc.
 * Copyright (C) 2013 Intel, Inc.
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */

#include <linux/kernel.h>
#include <linux/irq.h>
#include <linux/platform_device.h>

/*
 * Where in virtual device memory the IO devices (timers, system controllers
 * and so on)
 */

#define GOLDFISH_PDEV_BUS_BASE	(0xff001000)
#define GOLDFISH_PDEV_BUS_END	(0xff7fffff)
#define GOLDFISH_PDEV_BUS_IRQ	(4)

#define GOLDFISH_TTY_BASE	(0x2000)

static struct resource goldfish_pdev_bus_resources[] = {
	{
		.start  = GOLDFISH_PDEV_BUS_BASE,
		.end    = GOLDFISH_PDEV_BUS_END,
		.flags  = IORESOURCE_MEM,
	},
	{
		.start	= GOLDFISH_PDEV_BUS_IRQ,
		.end	= GOLDFISH_PDEV_BUS_IRQ,
		.flags	= IORESOURCE_IRQ,
	}
};

static int __init goldfish_init(void)
{
	platform_device_register_simple("goldfish_pdev_bus", -1,
						goldfish_pdev_bus_resources, 2);
	return 0;
}
device_initcall(goldfish_init);