[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [COMMIT 7696d1e] microblaze: Conditionalize FDT features.
From: |
Anthony Liguori |
Subject: |
[Qemu-commits] [COMMIT 7696d1e] microblaze: Conditionalize FDT features. |
Date: |
Mon, 08 Jun 2009 13:03:05 -0000 |
From: Edgar E. Iglesias <address@hidden>
If libfdt is not available, disable the fdt manipulation features.
Signed-off-by: Edgar E. Iglesias <address@hidden>
diff --git a/hw/petalogix_s3adsp1800_mmu.c b/hw/petalogix_s3adsp1800_mmu.c
index b317515..80097df 100644
--- a/hw/petalogix_s3adsp1800_mmu.c
+++ b/hw/petalogix_s3adsp1800_mmu.c
@@ -52,12 +52,15 @@ static int petalogix_load_device_tree(target_phys_addr_t
addr,
target_phys_addr_t initrd_size,
const char *kernel_cmdline)
{
+#ifdef HAVE_FDT
void *fdt;
char *path = NULL;
- int fdt_size;
int pathlen;
int r;
+#endif
+ int fdt_size;
+#ifdef HAVE_FDT
/* Try the local "mb.dtb" override. */
fdt = load_device_tree("mb.dtb", &fdt_size);
if (!fdt) {
@@ -74,8 +77,20 @@ static int petalogix_load_device_tree(target_phys_addr_t
addr,
r = qemu_devtree_setprop_string(fdt, "/chosen", "bootargs",
kernel_cmdline);
if (r < 0)
fprintf(stderr, "couldn't set /chosen/bootargs\n");
- printf("write fdt to addr=%x fdtsize=%d\n", addr, fdt_size);
cpu_physical_memory_write (addr, (void *)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("mb.dtb", addr, 0x10000);
+ if (fdt_size < 0) {
+ fdt_size = load_image_targphys(BINARY_DEVICE_TREE_FILE, addr, 0x10000);
+ }
+
+ if (kernel_cmdline) {
+ fprintf(stderr,
+ "Warning: missing libfdt, cannot pass cmdline to kernel!\n");
+ }
+#endif
return fdt_size;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [COMMIT 7696d1e] microblaze: Conditionalize FDT features.,
Anthony Liguori <=