qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 0/3] Device tree cleanups


From: peter . crosthwaite
Subject: [Qemu-devel] [PATCH v2 0/3] Device tree cleanups
Date: Mon, 11 Nov 2013 18:14:00 +1000

From: Peter Crosthwaite <address@hidden>

Fix the name stem of the devicetree API (P1 - s/qemu_devtree/qemu_fdt)
and cleanup error report (P3). Trivial patch P2 fixing an arugment name
along the way.

Tested using:

1: Alex's e500 test vector.
2: Xilinx Zynq (tests arm/boot.c).

I have testing using Zynq with Mem > 4gb and a bogus dts (size cells = 1)
to give that particular error path some exercise.

To give some exercise to the error paths, I hacked up my libfdt to throw
errors randomly:

--- a/libfdt/fdt_rw.c
+++ b/libfdt/fdt_rw.c
@@ -48,6 +48,8 @@
  *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
+#include <stdlib.h>
 #include "libfdt_env.h"

 #include <fdt.h>
@@ -279,6 +281,15 @@ int fdt_setprop(void *fdt, int nodeoffset, const char 
*name,

    FDT_RW_CHECK_HEADER(fdt);

+    static int seeded = 0;
+    if (!seeded) {
+        srand(time(NULL));
+        seeded = 1;
+    }
+    if (!(rand() & 0x7)) {
+        return -((rand() & 0x3) + 1);
+    }
+

Some sample outputs from e500 boot (Using the above tainted libfdt):

-----
qemu-system-ppc: qemu_fdt_setprop: Couldn't set /memory/reg: FDT_ERR_BADOFFSET

Aborted
-----
qemu-system-ppc: qemu_fdt_setprop_string: Couldn't set 
/address@hidden/device_type = soc: FDT_ERR_NOSPACE

Aborted
-----
qemu-system-ppc: qemu_fdt_setprop_cell: Couldn't set 
/address@hidden/#address-cells = 0x000001: FDT_ERR_NOSPACE

Aborted
-----


Peter Crosthwaite (3):
  device_tree: s/qemu_devtree/qemu_fdt globally
  device_tree: qemu_fdt_setprop: Rename val_array arg
  device_tree: qemu_fdt_setprop: Fixup error reporting

 device_tree.c                | 230 +++++++++++++++++++++++++++--------------
 hw/arm/boot.c                |  51 ++++-----
 hw/arm/vexpress.c            |  23 +++--
 hw/microblaze/boot.c         |  17 ++-
 hw/ppc/e500.c                | 241 ++++++++++++++++++++++---------------------
 hw/ppc/e500.h                |   3 +-
 hw/ppc/e500plat.c            |   9 +-
 hw/ppc/mpc8544ds.c           |   9 +-
 hw/ppc/ppc440_bamboo.c       |  34 ++----
 hw/ppc/spapr_rtas.c          |  40 ++-----
 hw/ppc/virtex_ml507.c        |   5 +-
 include/sysemu/device_tree.h | 219 ++++++++++++++++++++++++++++++---------
 12 files changed, 519 insertions(+), 362 deletions(-)

-- 
1.8.3.rc1.44.gb387c77.dirty




reply via email to

[Prev in Thread] Current Thread [Next in Thread]