From 9941afdef4fc898ed1588468095d1e36574427a1 Mon Sep 17 00:00:00 2001 From: Dunrong Huang Date: Sun, 24 Mar 2013 15:05:27 +0800 Subject: [PATCH 1/3] configure: show debug-info option in --help output "--enable-debug-info" and "--disable-debug-info" were not shown in --help output. Signed-off-by: Dunrong Huang Signed-off-by: Stefan Hajnoczi --- configure | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configure b/configure index f2af714928..61e71fa650 100755 --- a/configure +++ b/configure @@ -1057,6 +1057,8 @@ echo " --localstatedir=PATH install local state in PATH" echo " --with-confsuffix=SUFFIX suffix for QEMU data inside datadir and sysconfdir [$confsuffix]" echo " --enable-debug-tcg enable TCG debugging" echo " --disable-debug-tcg disable TCG debugging (default)" +echo " --enable-debug-info enable debugging information (default)" +echo " --disable-debug-info disable debugging information" echo " --enable-debug enable common debug build options" echo " --enable-sparse enable sparse checker" echo " --disable-sparse disable sparse checker (default)" From 0f9d76e5a9a396a2209761265ba6d98ce89b6a32 Mon Sep 17 00:00:00 2001 From: liguang Date: Tue, 26 Mar 2013 16:43:19 +0800 Subject: [PATCH 2/3] hw/i386/pc: format load_linux function Signed-off-by: liguang Signed-off-by: Stefan Hajnoczi --- hw/i386/pc.c | 109 ++++++++++++++++++++++++++------------------------- 1 file changed, 56 insertions(+), 53 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index ed7d9badb5..b1e06fa0e7 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -646,8 +646,8 @@ static long get_file_size(FILE *f) static void load_linux(void *fw_cfg, const char *kernel_filename, - const char *initrd_filename, - const char *kernel_cmdline, + const char *initrd_filename, + const char *kernel_cmdline, hwaddr max_ram_size) { uint16_t protocol; @@ -664,60 +664,62 @@ static void load_linux(void *fw_cfg, /* load the kernel header */ f = fopen(kernel_filename, "rb"); if (!f || !(kernel_size = get_file_size(f)) || - fread(header, 1, MIN(ARRAY_SIZE(header), kernel_size), f) != - MIN(ARRAY_SIZE(header), kernel_size)) { - fprintf(stderr, "qemu: could not load kernel '%s': %s\n", - kernel_filename, strerror(errno)); - exit(1); + fread(header, 1, MIN(ARRAY_SIZE(header), kernel_size), f) != + MIN(ARRAY_SIZE(header), kernel_size)) { + fprintf(stderr, "qemu: could not load kernel '%s': %s\n", + kernel_filename, strerror(errno)); + exit(1); } /* kernel protocol version */ #if 0 fprintf(stderr, "header magic: %#x\n", ldl_p(header+0x202)); #endif - if (ldl_p(header+0x202) == 0x53726448) - protocol = lduw_p(header+0x206); - else { - /* This looks like a multiboot kernel. If it is, let's stop - treating it like a Linux kernel. */ + if (ldl_p(header+0x202) == 0x53726448) { + protocol = lduw_p(header+0x206); + } else { + /* This looks like a multiboot kernel. If it is, let's stop + treating it like a Linux kernel. */ if (load_multiboot(fw_cfg, f, kernel_filename, initrd_filename, - kernel_cmdline, kernel_size, header)) + kernel_cmdline, kernel_size, header)) { return; - protocol = 0; + } + protocol = 0; } if (protocol < 0x200 || !(header[0x211] & 0x01)) { - /* Low kernel */ - real_addr = 0x90000; - cmdline_addr = 0x9a000 - cmdline_size; - prot_addr = 0x10000; + /* Low kernel */ + real_addr = 0x90000; + cmdline_addr = 0x9a000 - cmdline_size; + prot_addr = 0x10000; } else if (protocol < 0x202) { - /* High but ancient kernel */ - real_addr = 0x90000; - cmdline_addr = 0x9a000 - cmdline_size; - prot_addr = 0x100000; + /* High but ancient kernel */ + real_addr = 0x90000; + cmdline_addr = 0x9a000 - cmdline_size; + prot_addr = 0x100000; } else { - /* High and recent kernel */ - real_addr = 0x10000; - cmdline_addr = 0x20000; - prot_addr = 0x100000; + /* High and recent kernel */ + real_addr = 0x10000; + cmdline_addr = 0x20000; + prot_addr = 0x100000; } #if 0 fprintf(stderr, - "qemu: real_addr = 0x" TARGET_FMT_plx "\n" - "qemu: cmdline_addr = 0x" TARGET_FMT_plx "\n" - "qemu: prot_addr = 0x" TARGET_FMT_plx "\n", - real_addr, - cmdline_addr, - prot_addr); + "qemu: real_addr = 0x" TARGET_FMT_plx "\n" + "qemu: cmdline_addr = 0x" TARGET_FMT_plx "\n" + "qemu: prot_addr = 0x" TARGET_FMT_plx "\n", + real_addr, + cmdline_addr, + prot_addr); #endif /* highest address for loading the initrd */ - if (protocol >= 0x203) - initrd_max = ldl_p(header+0x22c); - else - initrd_max = 0x37ffffff; + if (protocol >= 0x203) { + initrd_max = ldl_p(header+0x22c); + } else { + initrd_max = 0x37ffffff; + } if (initrd_max >= max_ram_size-ACPI_DATA_SIZE) initrd_max = max_ram_size-ACPI_DATA_SIZE-1; @@ -727,10 +729,10 @@ static void load_linux(void *fw_cfg, fw_cfg_add_string(fw_cfg, FW_CFG_CMDLINE_DATA, kernel_cmdline); if (protocol >= 0x202) { - stl_p(header+0x228, cmdline_addr); + stl_p(header+0x228, cmdline_addr); } else { - stw_p(header+0x20, 0xA33F); - stw_p(header+0x22, cmdline_addr-real_addr); + stw_p(header+0x20, 0xA33F); + stw_p(header+0x22, cmdline_addr-real_addr); } /* handle vga= parameter */ @@ -755,23 +757,23 @@ static void load_linux(void *fw_cfg, /* High nybble = B reserved for QEMU; low nybble is revision number. If this code is substantially changed, you may want to consider incrementing the revision. */ - if (protocol >= 0x200) - header[0x210] = 0xB0; - + if (protocol >= 0x200) { + header[0x210] = 0xB0; + } /* heap */ if (protocol >= 0x201) { - header[0x211] |= 0x80; /* CAN_USE_HEAP */ - stw_p(header+0x224, cmdline_addr-real_addr-0x200); + header[0x211] |= 0x80; /* CAN_USE_HEAP */ + stw_p(header+0x224, cmdline_addr-real_addr-0x200); } /* load initrd */ if (initrd_filename) { - if (protocol < 0x200) { - fprintf(stderr, "qemu: linux kernel too old to load a ram disk\n"); - exit(1); - } + if (protocol < 0x200) { + fprintf(stderr, "qemu: linux kernel too old to load a ram disk\n"); + exit(1); + } - initrd_size = get_image_size(initrd_filename); + initrd_size = get_image_size(initrd_filename); if (initrd_size < 0) { fprintf(stderr, "qemu: error reading initrd %s\n", initrd_filename); @@ -787,14 +789,15 @@ static void load_linux(void *fw_cfg, fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_SIZE, initrd_size); fw_cfg_add_bytes(fw_cfg, FW_CFG_INITRD_DATA, initrd_data, initrd_size); - stl_p(header+0x218, initrd_addr); - stl_p(header+0x21c, initrd_size); + stl_p(header+0x218, initrd_addr); + stl_p(header+0x21c, initrd_size); } /* load kernel and setup */ setup_size = header[0x1f1]; - if (setup_size == 0) - setup_size = 4; + if (setup_size == 0) { + setup_size = 4; + } setup_size = (setup_size+1)*512; kernel_size -= setup_size; From b0d62a3d8e1ea9eccd246829a03e2d23f0982431 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Tue, 26 Mar 2013 12:35:09 +0000 Subject: [PATCH 3/3] hw/tcx: Remove unused 'addr' field and the property that sets it Remove the 'addr' field from TCXState (since it is completely unused), also the qdev property which sets it. This seems to be a relic from many years past; devices don't need to know where they are mapped. Signed-off-by: Peter Maydell Signed-off-by: Stefan Hajnoczi --- hw/sparc/sun4m.c | 1 - hw/tcx.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index 2f214da557..9ebda02aa1 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -575,7 +575,6 @@ static void tcx_init(hwaddr addr, int vram_size, int width, SysBusDevice *s; dev = qdev_create(NULL, "SUNW,tcx"); - qdev_prop_set_taddr(dev, "addr", addr); qdev_prop_set_uint32(dev, "vram_size", vram_size); qdev_prop_set_uint16(dev, "width", width); qdev_prop_set_uint16(dev, "height", height); diff --git a/hw/tcx.c b/hw/tcx.c index f1edffd877..c44068e7c9 100644 --- a/hw/tcx.c +++ b/hw/tcx.c @@ -37,7 +37,6 @@ typedef struct TCXState { SysBusDevice busdev; - hwaddr addr; QemuConsole *con; uint8_t *vram; uint32_t *vram24, *cplane; @@ -707,7 +706,6 @@ write_err: } static Property tcx_properties[] = { - DEFINE_PROP_TADDR("addr", TCXState, addr, -1), DEFINE_PROP_HEX32("vram_size", TCXState, vram_size, -1), DEFINE_PROP_UINT16("width", TCXState, width, -1), DEFINE_PROP_UINT16("height", TCXState, height, -1),