Exemplo n.º 1
0
	devmap_add_entry(0x10000000, 0x00200000);
	devmap_add_entry(0x20000000, 0x00100000);
	
	return (0);
}

static void
rk30xx_cpu_reset(platform_t plat)
{

	rk30_wd_watchdog_reset();
	printf("Reset failed!\n");
	while (1);
}

#if defined(SOC_ROCKCHIP_RK3188)
static platform_method_t rk30xx_methods[] = {
	PLATFORMMETHOD(platform_devmap_init,	rk30xx_devmap_init),
	PLATFORMMETHOD(platform_late_init,	rk30xx_late_init),
	PLATFORMMETHOD(platform_cpu_reset,	rk30xx_cpu_reset),

#ifdef SMP
	PLATFORMMETHOD(platform_mp_start_ap,	rk30xx_mp_start_ap),
	PLATFORMMETHOD(platform_mp_setmaxid,	rk30xx_mp_setmaxid),
#endif
	PLATFORMMETHOD_END,
};
FDT_PLATFORM_DEF(rk30xx, "RK3188", 0, "rockchip,rk3188", 200);
#endif
Exemplo n.º 2
0
 *   option EARLY_PRINTF
 */
#if 0
static void
tegra124_early_putc(int c)
{
	volatile uint32_t * UART_STAT_REG = (uint32_t *)0x02020098;
	volatile uint32_t * UART_TX_REG   = (uint32_t *)0x02020040;
	const uint32_t      UART_TXRDY    = (1 << 3);

	while ((*UART_STAT_REG & UART_TXRDY) == 0)
		continue;
	*UART_TX_REG = c;
}
early_putc_t *early_putc = tegra124_early_putc;
#endif

static platform_method_t tegra124_methods[] = {
	PLATFORMMETHOD(platform_attach,		tegra124_attach),
	PLATFORMMETHOD(platform_lastaddr,	tegra124_lastaddr),
	PLATFORMMETHOD(platform_devmap_init,	tegra124_devmap_init),
	PLATFORMMETHOD(platform_late_init,	tegra124_late_init),
#ifdef SMP
	PLATFORMMETHOD(platform_mp_start_ap,	tegra124_mp_start_ap),
	PLATFORMMETHOD(platform_mp_setmaxid,	tegra124_mp_setmaxid),
#endif
	PLATFORMMETHOD_END,
};

FDT_PLATFORM_DEF(tegra124, "Nvidia Jetson-TK1", 0, "nvidia,jetson-tk1");
Exemplo n.º 3
0
#include <machine/platform.h>
#include <machine/platformvar.h>

#include "platform_if.h"

extern uint32_t *bootinfo;

static int bare_probe(platform_t);
static void bare_mem_regions(platform_t, struct mem_region *phys, int *physsz,
    struct mem_region *avail, int *availsz);
static u_long bare_timebase_freq(platform_t, struct cpuref *cpuref);

static void bare_reset(platform_t);

static platform_method_t bare_methods[] = {
	PLATFORMMETHOD(platform_probe,		bare_probe),
	PLATFORMMETHOD(platform_mem_regions,	bare_mem_regions),
	PLATFORMMETHOD(platform_timebase_freq,	bare_timebase_freq),

	PLATFORMMETHOD(platform_reset,		bare_reset),

	PLATFORMMETHOD_END
};

static platform_def_t bare_platform = {
	"bare",
	bare_methods,
	0
};

PLATFORM_DEF(bare_platform);
Exemplo n.º 4
0
	devmap_add_entry(ZYNQ7_PSIO_HWBASE, ZYNQ7_PSIO_SIZE);
	devmap_add_entry(ZYNQ7_PSCTL_HWBASE, ZYNQ7_PSCTL_SIZE);

	return (0);
}

static void
zynq7_do_cpu_reset(platform_t plat)
{
	if (zynq7_cpu_reset != NULL)
		(*zynq7_cpu_reset)();

	printf("cpu_reset: no platform cpu_reset.  hanging.\n");
	for (;;)
		;
}

static platform_method_t zynq7_methods[] = {
	PLATFORMMETHOD(platform_devmap_init,	zynq7_devmap_init),
	PLATFORMMETHOD(platform_cpu_reset,	zynq7_do_cpu_reset),

#ifdef SMP
	PLATFORMMETHOD(platform_mp_setmaxid,	zynq7_mp_setmaxid),
	PLATFORMMETHOD(platform_mp_start_ap,	zynq7_mp_start_ap),
#endif

	PLATFORMMETHOD_END,
};

FDT_PLATFORM_DEF(zynq7, "zynq7", 0, "xlnx,zynq-7000", 0);
Exemplo n.º 5
0
extern void *ap_pcpu;

static int powermac_probe(platform_t);
static int powermac_attach(platform_t);
void powermac_mem_regions(platform_t, struct mem_region *phys, int *physsz,
    struct mem_region *avail, int *availsz);
static u_long powermac_timebase_freq(platform_t, struct cpuref *cpuref);
static int powermac_smp_first_cpu(platform_t, struct cpuref *cpuref);
static int powermac_smp_next_cpu(platform_t, struct cpuref *cpuref);
static int powermac_smp_get_bsp(platform_t, struct cpuref *cpuref);
static int powermac_smp_start_cpu(platform_t, struct pcpu *cpu);
static void powermac_reset(platform_t);
static void powermac_sleep(platform_t);

static platform_method_t powermac_methods[] = {
	PLATFORMMETHOD(platform_probe, 		powermac_probe),
	PLATFORMMETHOD(platform_attach,		powermac_attach),
	PLATFORMMETHOD(platform_mem_regions,	powermac_mem_regions),
	PLATFORMMETHOD(platform_timebase_freq,	powermac_timebase_freq),
	
	PLATFORMMETHOD(platform_smp_first_cpu,	powermac_smp_first_cpu),
	PLATFORMMETHOD(platform_smp_next_cpu,	powermac_smp_next_cpu),
	PLATFORMMETHOD(platform_smp_get_bsp,	powermac_smp_get_bsp),
	PLATFORMMETHOD(platform_smp_start_cpu,	powermac_smp_start_cpu),

	PLATFORMMETHOD(platform_reset,		powermac_reset),
	PLATFORMMETHOD(platform_sleep,		powermac_sleep),

	PLATFORMMETHOD_END
};
Exemplo n.º 6
0
{

	devmap_add_entry(0x70000000, 0x00100000);
	devmap_add_entry(0x73f00000, 0x00100000);
	devmap_add_entry(0x83f00000, 0x00100000);

	return (0);
}

void
cpu_reset(void)
{

	imx_wdog_cpu_reset(0x73F98000);
}

u_int imx_soc_type()
{
	return (IMXSOC_51);
}

static platform_method_t imx51_methods[] = {
	PLATFORMMETHOD(platform_attach,		imx51_attach),
	PLATFORMMETHOD(platform_devmap_init,	imx51_devmap_init),
	PLATFORMMETHOD(platform_lastaddr,	imx51_lastaddr),

	PLATFORMMETHOD_END,
};

FDT_PLATFORM_DEF(imx51, "i.MX51", 0, "fsl,imx51", 0);
Exemplo n.º 7
0
static int mpc85xx_probe(platform_t);
static void mpc85xx_mem_regions(platform_t, struct mem_region *phys,
    int *physsz, struct mem_region *avail, int *availsz);
static u_long mpc85xx_timebase_freq(platform_t, struct cpuref *cpuref);
static int mpc85xx_smp_first_cpu(platform_t, struct cpuref *cpuref);
static int mpc85xx_smp_next_cpu(platform_t, struct cpuref *cpuref);
static int mpc85xx_smp_get_bsp(platform_t, struct cpuref *cpuref);
static int mpc85xx_smp_start_cpu(platform_t, struct pcpu *cpu);
static void mpc85xx_idle(platform_t, int cpu);
static int mpc85xx_idle_wakeup(platform_t plat, int cpu);

static void mpc85xx_reset(platform_t);

static platform_method_t mpc85xx_methods[] = {
	PLATFORMMETHOD(platform_probe,		mpc85xx_probe),
	PLATFORMMETHOD(platform_attach,		mpc85xx_attach),
	PLATFORMMETHOD(platform_mem_regions,	mpc85xx_mem_regions),
	PLATFORMMETHOD(platform_timebase_freq,	mpc85xx_timebase_freq),

	PLATFORMMETHOD(platform_smp_first_cpu,	mpc85xx_smp_first_cpu),
	PLATFORMMETHOD(platform_smp_next_cpu,	mpc85xx_smp_next_cpu),
	PLATFORMMETHOD(platform_smp_get_bsp,	mpc85xx_smp_get_bsp),
	PLATFORMMETHOD(platform_smp_start_cpu,	mpc85xx_smp_start_cpu),

	PLATFORMMETHOD(platform_reset,		mpc85xx_reset),
	PLATFORMMETHOD(platform_idle,		mpc85xx_idle),
	PLATFORMMETHOD(platform_idle_wakeup,	mpc85xx_idle_wakeup),

	PLATFORMMETHOD_END
};
Exemplo n.º 8
0
	devmap_add_entry(0x3f000000, 0x01000000);
	return (0);
}
#endif



static void
bcm2835_cpu_reset(platform_t plat)
{
	bcmwd_watchdog_reset();
}

#ifdef SOC_BCM2835
static platform_method_t bcm2835_methods[] = {
	PLATFORMMETHOD(platform_devmap_init,	bcm2835_devmap_init),
	PLATFORMMETHOD(platform_lastaddr,	bcm2835_lastaddr),
	PLATFORMMETHOD(platform_late_init,	bcm2835_late_init),
	PLATFORMMETHOD(platform_cpu_reset,	bcm2835_cpu_reset),

	PLATFORMMETHOD_END,
};
FDT_PLATFORM_DEF(bcm2835, "bcm2835", 0, "raspberrypi,model-b", 100);
#endif

#ifdef SOC_BCM2836
static platform_method_t bcm2836_methods[] = {
	PLATFORMMETHOD(platform_devmap_init,	bcm2836_devmap_init),
	PLATFORMMETHOD(platform_lastaddr,	bcm2835_lastaddr),
	PLATFORMMETHOD(platform_late_init,	bcm2835_late_init),
	PLATFORMMETHOD(platform_cpu_reset,	bcm2835_cpu_reset),
Exemplo n.º 9
0
static void ps3_mem_regions(platform_t, struct mem_region *phys, int *physsz,
    struct mem_region *avail, int *availsz);
static vm_offset_t ps3_real_maxaddr(platform_t);
static u_long ps3_timebase_freq(platform_t, struct cpuref *cpuref);
#ifdef SMP
static int ps3_smp_first_cpu(platform_t, struct cpuref *cpuref);
static int ps3_smp_next_cpu(platform_t, struct cpuref *cpuref);
static int ps3_smp_get_bsp(platform_t, struct cpuref *cpuref);
static int ps3_smp_start_cpu(platform_t, struct pcpu *cpu);
static struct cpu_group *ps3_smp_topo(platform_t);
#endif
static void ps3_reset(platform_t);
static void ps3_cpu_idle(sbintime_t);

static platform_method_t ps3_methods[] = {
	PLATFORMMETHOD(platform_probe, 		ps3_probe),
	PLATFORMMETHOD(platform_attach,		ps3_attach),
	PLATFORMMETHOD(platform_mem_regions,	ps3_mem_regions),
	PLATFORMMETHOD(platform_real_maxaddr,	ps3_real_maxaddr),
	PLATFORMMETHOD(platform_timebase_freq,	ps3_timebase_freq),

#ifdef SMP
	PLATFORMMETHOD(platform_smp_first_cpu,	ps3_smp_first_cpu),
	PLATFORMMETHOD(platform_smp_next_cpu,	ps3_smp_next_cpu),
	PLATFORMMETHOD(platform_smp_get_bsp,	ps3_smp_get_bsp),
	PLATFORMMETHOD(platform_smp_start_cpu,	ps3_smp_start_cpu),
	PLATFORMMETHOD(platform_smp_topo,	ps3_smp_topo),
#endif

	PLATFORMMETHOD(platform_reset,		ps3_reset),
Exemplo n.º 10
0
static int cpu, maxcpu;

static int bare_probe(platform_t);
static void bare_mem_regions(platform_t, struct mem_region **phys, int *physsz,
    struct mem_region **avail, int *availsz);
static u_long bare_timebase_freq(platform_t, struct cpuref *cpuref);
static int bare_smp_first_cpu(platform_t, struct cpuref *cpuref);
static int bare_smp_next_cpu(platform_t, struct cpuref *cpuref);
static int bare_smp_get_bsp(platform_t, struct cpuref *cpuref);
static int bare_smp_start_cpu(platform_t, struct pcpu *cpu);

static void e500_reset(platform_t);

static platform_method_t bare_methods[] = {
	PLATFORMMETHOD(platform_probe, 		bare_probe),
	PLATFORMMETHOD(platform_mem_regions,	bare_mem_regions),
	PLATFORMMETHOD(platform_timebase_freq,	bare_timebase_freq),

	PLATFORMMETHOD(platform_smp_first_cpu,	bare_smp_first_cpu),
	PLATFORMMETHOD(platform_smp_next_cpu,	bare_smp_next_cpu),
	PLATFORMMETHOD(platform_smp_get_bsp,	bare_smp_get_bsp),
	PLATFORMMETHOD(platform_smp_start_cpu,	bare_smp_start_cpu),

	PLATFORMMETHOD(platform_reset,		e500_reset),

	{ 0, 0 }
};

static platform_def_t bare_platform = {
	"bare metal",
Exemplo n.º 11
0
    return (0);
}
#endif

static void
ti_plat_cpu_reset(platform_t plat)
{
    if (ti_cpu_reset)
        (*ti_cpu_reset)();
    else
        printf("no cpu_reset implementation\n");
}

#if defined(SOC_OMAP4)
static platform_method_t omap4_methods[] = {
    PLATFORMMETHOD(platform_attach, 	omap4_attach),
    PLATFORMMETHOD(platform_devmap_init,	ti_omap4_devmap_init),
    PLATFORMMETHOD(platform_cpu_reset,	ti_plat_cpu_reset),

#ifdef SMP
    PLATFORMMETHOD(platform_mp_start_ap,	omap4_mp_start_ap),
    PLATFORMMETHOD(platform_mp_setmaxid,	omap4_mp_setmaxid),
#endif
    PLATFORMMETHOD_END,
};
FDT_PLATFORM_DEF(omap4, "omap4", 0, "ti,omap4430", 200);
#endif

#if defined(SOC_TI_AM335X)
static platform_method_t am335x_methods[] = {
    PLATFORMMETHOD(platform_attach, 	ti_am335x_attach),
Exemplo n.º 12
0
/*
 * Construct devmap table with DT-derived config data.
 */
static int
versatile_devmap_init(platform_t plat)
{
	int i = 0;
	fdt_devmap[i].pd_va = 0xf0100000;
	fdt_devmap[i].pd_pa = 0x10100000;
	fdt_devmap[i].pd_size = 0x01000000;       /* 1 MB */

	devmap_register_table(&fdt_devmap[0]);
	return (0);
}

static void
versatile_cpu_reset(platform_t plat)
{
	printf("cpu_reset\n");
	while (1);
}

static platform_method_t versatile_methods[] = {
	PLATFORMMETHOD(platform_lastaddr,	versatile_lastaddr),
	PLATFORMMETHOD(platform_devmap_init,	versatile_devmap_init),
	PLATFORMMETHOD(platform_cpu_reset,	versatile_cpu_reset),

	PLATFORMMETHOD_END,
};
FDT_PLATFORM_DEF(versatile, "versatile", 0, "arm,versatile-pb", 1);
Exemplo n.º 13
0
	devmap_add_entry(0x50000000, 0x00100000);
	devmap_add_entry(0x53f00000, 0x00100000);
	devmap_add_entry(0x63f00000, 0x00100000);

	return (0);
}

static void
imx53_cpu_reset(platform_t plat)
{

	imx_wdog_cpu_reset(0x53F98000);
}

u_int
imx_soc_type(void)
{
	return (IMXSOC_53);
}

static platform_method_t imx53_methods[] = {
	PLATFORMMETHOD(platform_attach,		imx53_attach),
	PLATFORMMETHOD(platform_devmap_init,	imx53_devmap_init),
	PLATFORMMETHOD(platform_cpu_reset,	imx53_cpu_reset),

	PLATFORMMETHOD_END,
};

FDT_PLATFORM_DEF(imx53, "i.MX53", 0, "fsl,imx53", 0);

Exemplo n.º 14
0
bus_dma_get_range_nb(void)
{
	return (0);
}

void
cpu_reset()
{
	aw_wdog_watchdog_reset();
	printf("Reset failed!\n");
	while (1);
}

#if defined(SOC_ALLWINNER_A10)
static platform_method_t a10_methods[] = {
	PLATFORMMETHOD(platform_attach,         a10_attach),
	PLATFORMMETHOD(platform_lastaddr,       allwinner_lastaddr),
	PLATFORMMETHOD(platform_devmap_init,    allwinner_devmap_init),

	PLATFORMMETHOD_END,
};
FDT_PLATFORM_DEF(a10, "a10", 0, "allwinner,sun4i-a10", 200);
#endif

#if defined(SOC_ALLWINNER_A20)
static platform_method_t a20_methods[] = {
	PLATFORMMETHOD(platform_attach,         a20_attach),
	PLATFORMMETHOD(platform_lastaddr,       allwinner_lastaddr),
	PLATFORMMETHOD(platform_devmap_init,    allwinner_devmap_init),

#ifdef SMP
Exemplo n.º 15
0
int
bus_dma_get_range_nb(void)
{
	return (0);
}

void
cpu_reset()
{
	aw_wdog_watchdog_reset();
	printf("Reset failed!\n");
	while (1);
}

static platform_method_t a10_methods[] = {
	PLATFORMMETHOD(platform_attach,         a10_attach),
	PLATFORMMETHOD(platform_lastaddr,       allwinner_lastaddr),
	PLATFORMMETHOD(platform_devmap_init,    allwinner_devmap_init),

	PLATFORMMETHOD_END,
};

static platform_method_t a20_methods[] = {
	PLATFORMMETHOD(platform_attach,         a20_attach),
	PLATFORMMETHOD(platform_lastaddr,       allwinner_lastaddr),
	PLATFORMMETHOD(platform_devmap_init,    allwinner_devmap_init),

	PLATFORMMETHOD_END,
};

static platform_method_t a31_methods[] = {
Exemplo n.º 16
0
static int chrp_smp_first_cpu(platform_t, struct cpuref *cpuref);
static int chrp_smp_next_cpu(platform_t, struct cpuref *cpuref);
static int chrp_smp_get_bsp(platform_t, struct cpuref *cpuref);
static void chrp_smp_ap_init(platform_t);
#ifdef SMP
static int chrp_smp_start_cpu(platform_t, struct pcpu *cpu);
static struct cpu_group *chrp_smp_topo(platform_t plat);
#endif
static void chrp_reset(platform_t);
#ifdef __powerpc64__
#include "phyp-hvcall.h"
static void phyp_cpu_idle(sbintime_t sbt);
#endif

static platform_method_t chrp_methods[] = {
	PLATFORMMETHOD(platform_probe, 		chrp_probe),
	PLATFORMMETHOD(platform_attach,		chrp_attach),
	PLATFORMMETHOD(platform_mem_regions,	chrp_mem_regions),
	PLATFORMMETHOD(platform_real_maxaddr,	chrp_real_maxaddr),
	PLATFORMMETHOD(platform_timebase_freq,	chrp_timebase_freq),
	
	PLATFORMMETHOD(platform_smp_ap_init,	chrp_smp_ap_init),
	PLATFORMMETHOD(platform_smp_first_cpu,	chrp_smp_first_cpu),
	PLATFORMMETHOD(platform_smp_next_cpu,	chrp_smp_next_cpu),
	PLATFORMMETHOD(platform_smp_get_bsp,	chrp_smp_get_bsp),
#ifdef SMP
	PLATFORMMETHOD(platform_smp_start_cpu,	chrp_smp_start_cpu),
	PLATFORMMETHOD(platform_smp_topo,	chrp_smp_topo),
#endif

	PLATFORMMETHOD(platform_reset,		chrp_reset),
Exemplo n.º 17
0
	return (0);
}
#endif

static void
ti_plat_cpu_reset(platform_t plat)
{
	if (ti_cpu_reset)
		(*ti_cpu_reset)();
	else
		printf("no cpu_reset implementation\n");
}

#if defined(SOC_OMAP4)
static platform_method_t omap4_methods[] = {
	PLATFORMMETHOD(platform_attach, 	omap4_attach),
	PLATFORMMETHOD(platform_devmap_init,	ti_omap4_devmap_init),
	PLATFORMMETHOD(platform_cpu_reset,	ti_plat_cpu_reset),

#ifdef SMP
	PLATFORMMETHOD(platform_mp_start_ap,	omap4_mp_start_ap),
	PLATFORMMETHOD(platform_mp_setmaxid,	omap4_mp_setmaxid),
#endif

	PLATFORMMETHOD(platform_pl310_init,	omap4_pl310_init),
	PLATFORMMETHOD(platform_pl310_write_ctrl, omap4_pl310_write_ctrl),
	PLATFORMMETHOD(platform_pl310_write_debug, omap4_pl310_write_debug),

	PLATFORMMETHOD_END,
};
FDT_PLATFORM_DEF(omap4, "omap4", 0, "ti,omap4430", 200);
Exemplo n.º 18
0
	while (1);
}

static vm_offset_t
virt_lastaddr(platform_t plat)
{

	return (arm_devmap_lastaddr());
}

/*
 * Set up static device mappings.
 */
static int
virt_devmap_init(platform_t plat)
{

	arm_devmap_add_entry(0x09000000, 0x100000); /* Uart */
	return (0);
}

static platform_method_t virt_methods[] = {
	PLATFORMMETHOD(platform_devmap_init,	virt_devmap_init),
	PLATFORMMETHOD(platform_lastaddr,	virt_lastaddr),

	PLATFORMMETHOD_END,
};

FDT_PLATFORM_DEF(virt, "virt", 0, "linux,dummy-virt");
Exemplo n.º 19
0
}

void
cpu_reset()
{
	if (ti_cpu_reset)
		(*ti_cpu_reset)();
	else
		printf("no cpu_reset implementation\n");
	printf("Reset failed!\n");
	while (1);
}

#if defined(SOC_OMAP4)
static platform_method_t omap4_methods[] = {
	PLATFORMMETHOD(platform_devmap_init,	ti_omap4_devmap_init),
	PLATFORMMETHOD(platform_lastaddr,	ti_lastaddr),

	PLATFORMMETHOD_END,
};
FDT_PLATFORM_DEF(omap4, "omap4", 0, "ti,omap4430", 0);
#endif

#if defined(SOC_TI_AM335X)
static platform_method_t am335x_methods[] = {
	PLATFORMMETHOD(platform_devmap_init,	ti_am335x_devmap_init),
	PLATFORMMETHOD(platform_lastaddr,	ti_lastaddr),

	PLATFORMMETHOD_END,
};
Exemplo n.º 20
0
#include <machine/platform.h>
#include <machine/platformvar.h>

#include <dev/nand/nand.h>
#include <dev/ofw/openfirm.h>
#include <geom/geom_disk.h>

#include <powerpc/mpc85xx/mpc85xx.h>

#include "platform_if.h"

static int rb_probe(platform_t);
static int rb_attach(platform_t);

static platform_method_t rb_methods[] = {
	PLATFORMMETHOD(platform_probe,		rb_probe),
	PLATFORMMETHOD(platform_attach,		rb_attach),
	PLATFORMMETHOD_END
};

DEFINE_CLASS_1(rb, rb_platform, rb_methods, 0, mpc85xx_platform);

PLATFORM_DEF(rb_platform);

/* Slicer operates on the NAND controller, so we have to find the chip. */
static int
rb_nand_slicer(device_t dev, struct flash_slice *slices, int *nslices)
{
	struct nand_chip *chip;
	device_t *children;
	int n;
Exemplo n.º 21
0
#include <powerpc/wii/wii_ipcreg.h>

#include "platform_if.h"

static int		wii_probe(platform_t);
static int		wii_attach(platform_t);
static void		wii_mem_regions(platform_t, struct mem_region *,
			    int *, struct mem_region *, int *);
static unsigned long	wii_timebase_freq(platform_t, struct cpuref *);
static void		wii_reset(platform_t);
static void		wii_cpu_idle(sbintime_t);

extern void		 wiibus_reset_system(void);

static platform_method_t wii_methods[] = {
	PLATFORMMETHOD(platform_probe,		wii_probe),
	PLATFORMMETHOD(platform_attach,		wii_attach),
	PLATFORMMETHOD(platform_mem_regions,	wii_mem_regions),
	PLATFORMMETHOD(platform_timebase_freq,	wii_timebase_freq),
	PLATFORMMETHOD(platform_reset,		wii_reset),
 
	PLATFORMMETHOD_END
};

static platform_def_t wii_platform = {
	"wii",
	wii_methods,
	0
};

PLATFORM_DEF(wii_platform);