[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH V1 05/14] pflash_cfi01: Added fdt generic platfo
From: |
Peter A. G. Crosthwaite |
Subject: |
[Qemu-devel] [RFC PATCH V1 05/14] pflash_cfi01: Added fdt generic platform support |
Date: |
Thu, 25 Aug 2011 16:41:11 +1000 |
Added fdt generic platform support. Note that this does not add the fdt init
handler to the table of registered models as this needs to be handled in a
platform dependent way (due to target endianness issues). Fdt generic machine
models are required to register this device should it be supported.
Signed-off-by: Peter A. G. Crosthwaite <address@hidden>
---
hw/fdt_generic_devices.h | 8 ++++++++
hw/pflash_cfi01.c | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 45 insertions(+), 0 deletions(-)
create mode 100644 hw/fdt_generic_devices.h
diff --git a/hw/fdt_generic_devices.h b/hw/fdt_generic_devices.h
new file mode 100644
index 0000000..3bb4c05
--- /dev/null
+++ b/hw/fdt_generic_devices.h
@@ -0,0 +1,8 @@
+#ifndef FDT_GENERIC_DEVICES_H
+#define FDT_GENERIC_DEVICES_H
+
+#include "fdt_generic.h"
+
+int pflash_cfi01_fdt_init(char *node_path, FDTMachineInfo *fdti, void *opaque);
+
+#endif /* FDT_GENERIC_DEVICES_H */
diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
index 90e1301..5cc6c17 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/pflash_cfi01.c
@@ -724,3 +724,40 @@ pflash_t *pflash_cfi01_register(target_phys_addr_t base,
ram_addr_t off,
return pfl;
}
+
+#ifdef CONFIG_FDT
+
+#include "blockdev.h"
+
+#include "fdt_generic_util.h"
+#include "fdt_generic_devices.h"
+
+int pflash_cfi01_fdt_init(char *node_path, FDTMachineInfo *fdti, void *opaque)
{
+
+ ram_addr_t phys_flash;
+ int flash_base = 0;
+ int flash_size = 0;
+
+ int be = *((int*)opaque);
+
+ DriveInfo *dinfo;
+ int bank_width;
+
+ flash_base = qemu_devtree_getprop(fdti->fdt, NULL, node_path, "reg", 0, 0);
+ flash_size = qemu_devtree_getprop(fdti->fdt, NULL, node_path, "reg", 1, 0);
+ bank_width = qemu_devtree_getprop(fdti->fdt, NULL, node_path, "bank-width",
+ 0, 0);
+
+ printf("FDT: FLASH: baseaddr: 0x%x, size: 0x%x\n",
+ flash_base, flash_size);
+
+ phys_flash = qemu_ram_alloc(NULL, "mb.flash", flash_size);
+ dinfo = drive_get(IF_PFLASH, 0, 0);
+ pflash_cfi01_register(flash_base, phys_flash,
+ dinfo ? dinfo->bdrv : NULL, (64 * 1024),
+ flash_size >> 16,
+ bank_width, 0x89, 0x18, 0x0000, 0x0, be);
+ return 0;
+}
+
+#endif /* CONFIG_FDT */
--
1.7.3.2
- [Qemu-devel] [RFC PATCH V1 00/14] Dynamic machine model creation from device trees, Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 01/14] qemu-coroutine: Add simple work queue support, Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 02/14] device_tree: Extended interface for fdt_generic, Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 03/14] fdt_generic: First revision, Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 04/14] xilinx_uartlite: Added fdt gen. platform support, Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 05/14] pflash_cfi01: Added fdt generic platform support,
Peter A. G. Crosthwaite <=
- [Qemu-devel] [RFC PATCH V1 06/14] qdev: Added fn for querying device property types, Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 07/14] fdt_generic_qdev: first revision, Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 13/14] microblaze: Add an MSR_PVR constant and use it., Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 14/14] microblaze_generic_fdt: first revision, Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 12/14] microblaze: Make the MSR PVR bit non writable, Peter A. G. Crosthwaite, 2011/08/25
- [Qemu-devel] [RFC PATCH V1 09/14] xilinx_intc: Added fdt generic platform support, Peter A. G. Crosthwaite, 2011/08/25