Revision 4d5c29ca

b/hw/ppc/Makefile.objs
27 27

  
28 28
obj-y := $(addprefix ../,$(obj-y))
29 29

  
30
obj-$(CONFIG_FDT) += e500.o mpc8544ds.o
30
obj-$(CONFIG_FDT) += e500.o mpc8544ds.o e500plat.o
b/hw/ppc/e500plat.c
1
/*
2
 * Generic device-tree-driven paravirt PPC e500 platform
3
 *
4
 * Copyright 2012 Freescale Semiconductor, Inc.
5
 *
6
 * This is free software; you can redistribute it and/or modify
7
 * it under the terms of  the GNU General  Public License as published by
8
 * the Free Software Foundation;  either version 2 of the  License, or
9
 * (at your option) any later version.
10
 */
11

  
12
#include "config.h"
13
#include "qemu-common.h"
14
#include "e500.h"
15
#include "../boards.h"
16
#include "device_tree.h"
17

  
18
static void e500plat_fixup_devtree(PPCE500Params *params, void *fdt)
19
{
20
    const char model[] = "QEMU ppce500";
21
    const char compatible[] = "fsl,qemu-e500";
22

  
23
    qemu_devtree_setprop(fdt, "/", "model", model, sizeof(model));
24
    qemu_devtree_setprop(fdt, "/", "compatible", compatible,
25
                         sizeof(compatible));
26
}
27

  
28
static void e500plat_init(ram_addr_t ram_size,
29
                           const char *boot_device,
30
                           const char *kernel_filename,
31
                           const char *kernel_cmdline,
32
                           const char *initrd_filename,
33
                           const char *cpu_model)
34
{
35
    PPCE500Params params = {
36
        .ram_size = ram_size,
37
        .boot_device = boot_device,
38
        .kernel_filename = kernel_filename,
39
        .kernel_cmdline = kernel_cmdline,
40
        .initrd_filename = initrd_filename,
41
        .cpu_model = cpu_model,
42
        .fixup_devtree = e500plat_fixup_devtree,
43
    };
44

  
45
    ppce500_init(&params);
46
}
47

  
48
static QEMUMachine e500plat_machine = {
49
    .name = "ppce500",
50
    .desc = "generic paravirt e500 platform",
51
    .init = e500plat_init,
52
    .max_cpus = 15,
53
};
54

  
55
static void e500plat_machine_init(void)
56
{
57
    qemu_register_machine(&e500plat_machine);
58
}
59

  
60
machine_init(e500plat_machine_init);

Also available in: Unified diff