diff -r 3bf560f85513 -r a587897e3bb2 symbian-qemu-0.9.1-12/qemu-symbian-svp/devtree.c --- a/symbian-qemu-0.9.1-12/qemu-symbian-svp/devtree.c Thu Nov 12 14:39:23 2009 -0800 +++ b/symbian-qemu-0.9.1-12/qemu-symbian-svp/devtree.c Tue Jan 26 13:03:40 2010 +0000 @@ -26,6 +26,7 @@ #include "devtree.h" #include "hw/boards.h" #include "libfdt/libfdt.h" +#include "qemu-char.h" #define BADF(fmt, args...) \ do { fprintf(stderr, "error: " fmt , ##args); exit(1);} while (0) @@ -413,7 +414,15 @@ if (propstr) { i = sscanf(propstr, "serial%d", &n); if (i == 1 && n >= 0 && n < MAX_SERIAL_PORTS) + { + if (!serial_hds[n]) + { + const char* target = fdt_getprop_string(dt, node, "target"); + if (target) + serial_hds[n] = qemu_chr_open(propstr, target); + } d->chardev = serial_hds[n]; + } } } find_properties(d);