#include "hw/ppc/spapr_vio.h"
#include "hw/ppc/xics.h"
-#ifdef CONFIG_FDT
#include <libfdt.h>
-#endif /* CONFIG_FDT */
/* #define DEBUG_SPAPR */
return NULL;
}
-#ifdef CONFIG_FDT
static int vio_make_devnode(VIOsPAPRDevice *dev,
void *fdt)
{
return node_off;
}
-#endif /* CONFIG_FDT */
/*
* CRQ handling
type_init(spapr_vio_register_types)
-#ifdef CONFIG_FDT
static int compare_reg(const void *p1, const void *p2)
{
VIOsPAPRDevice const *dev1, *dev2;
return ret;
}
-#endif /* CONFIG_FDT */
{
char *path;
int fdt_size;
-#ifdef CONFIG_FDT
void *fdt;
int r;
if (r < 0)
fprintf(stderr, "couldn't set /chosen/bootargs\n");
cpu_physical_memory_write(addr, fdt, fdt_size);
-#else
- /* We lack libfdt so we cannot manipulate the fdt. Just pass on the blob
- to the kernel. */
- fdt_size = load_image_targphys("ppc.dtb", addr, 0x10000);
- if (fdt_size < 0) {
- path = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE);
- if (path) {
- fdt_size = load_image_targphys(path, addr, 0x10000);
- g_free(path);
- }
- }
-
- if (kernel_cmdline) {
- fprintf(stderr,
- "Warning: missing libfdt, cannot pass cmdline to kernel!\n");
- }
-#endif
return fdt_size;
}