From: Will Deacon <will.deacon@arm.com>
To: kvm@vger.kernel.org
Cc: penberg@kernel.org, marc.zyngier@arm.com,
c.dall@virtualopensystems.com, kvmarm@lists.cs.columbia.edu,
Will Deacon <will.deacon@arm.com>
Subject: [PATCH 3/4] kvm tools: arm: make .dtb dumping a command-line option
Date: Mon, 7 Jan 2013 18:15:00 +0000 [thread overview]
Message-ID: <1357582501-6024-4-git-send-email-will.deacon@arm.com> (raw)
In-Reply-To: <1357582501-6024-1-git-send-email-will.deacon@arm.com>
It can sometimes be useful to dump the .dtb file generated by kvmtool
when debugging a guest. Currently, this is achieved by rebuilding the
tool and changing some #defines, which is fairly clumsy to use.
This patch adds a new command-line option for ARM, allowing the dtb
to be dumped to a named file at runtime.
Signed-off-by: Will Deacon <will.deacon@arm.com>
---
tools/kvm/arm/fdt.c | 18 ++++++------------
tools/kvm/arm/include/kvm/kvm-config-arch.h | 8 ++++++++
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/tools/kvm/arm/fdt.c b/tools/kvm/arm/fdt.c
index c7f4b52..e52c10c 100644
--- a/tools/kvm/arm/fdt.c
+++ b/tools/kvm/arm/fdt.c
@@ -13,9 +13,6 @@
#include <linux/kernel.h>
#include <linux/sizes.h>
-#define DEBUG 0
-#define DEBUG_FDT_DUMP_FILE "/tmp/kvmtool.dtb"
-
static char kern_cmdline[COMMAND_LINE_SIZE];
bool kvm__load_firmware(struct kvm *kvm, const char *firmware_filename)
@@ -28,25 +25,21 @@ int kvm__arch_setup_firmware(struct kvm *kvm)
return 0;
}
-#if DEBUG
-static void dump_fdt(void *fdt)
+static void dump_fdt(const char *dtb_file, void *fdt)
{
int count, fd;
- fd = open(DEBUG_FDT_DUMP_FILE, O_CREAT | O_TRUNC | O_RDWR, 0666);
+ fd = open(dtb_file, O_CREAT | O_TRUNC | O_RDWR, 0666);
if (fd < 0)
- die("Failed to write dtb to %s", DEBUG_FDT_DUMP_FILE);
+ die("Failed to write dtb to %s", dtb_file);
count = write(fd, fdt, FDT_MAX_SIZE);
if (count < 0)
die_perror("Failed to dump dtb");
- pr_info("Wrote %d bytes to dtb %s\n", count, DEBUG_FDT_DUMP_FILE);
+ pr_info("Wrote %d bytes to dtb %s\n", count, dtb_file);
close(fd);
}
-#else
-static void dump_fdt(void *fdt) { }
-#endif
#define DEVICE_NAME_MAX_LEN 32
static void generate_virtio_mmio_node(void *fdt, struct virtio_mmio *vmmio)
@@ -143,7 +136,8 @@ static int setup_fdt(struct kvm *kvm)
_FDT(fdt_open_into(fdt, fdt_dest, FDT_MAX_SIZE));
_FDT(fdt_pack(fdt_dest));
- dump_fdt(fdt_dest);
+ if (kvm->cfg.arch.dump_dtb_filename)
+ dump_fdt(kvm->cfg.arch.dump_dtb_filename, fdt_dest);
return 0;
}
late_init(setup_fdt);
diff --git a/tools/kvm/arm/include/kvm/kvm-config-arch.h b/tools/kvm/arm/include/kvm/kvm-config-arch.h
index 60f61de..f63f302 100644
--- a/tools/kvm/arm/include/kvm/kvm-config-arch.h
+++ b/tools/kvm/arm/include/kvm/kvm-config-arch.h
@@ -1,7 +1,15 @@
#ifndef KVM__KVM_CONFIG_ARCH_H
#define KVM__KVM_CONFIG_ARCH_H
+#include "kvm/parse-options.h"
+
struct kvm_config_arch {
+ const char *dump_dtb_filename;
};
+#define OPT_ARCH_RUN(pfx, cfg) \
+ pfx, \
+ OPT_STRING('\0', "dump-dtb", &(cfg)->dump_dtb_filename, \
+ ".dtb file", "Dump generated .dtb to specified file"),
+
#endif /* KVM__KVM_CONFIG_ARCH_H */
--
1.8.0
next prev parent reply other threads:[~2013-01-07 18:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-07 18:14 [PATCH 0/4] ARM updates for kvmtool Will Deacon
2013-01-07 18:14 ` [PATCH 1/4] kvm tools: virtio: remove hardcoded assumptions about guest page size Will Deacon
2013-01-07 18:14 ` [PATCH 2/4] kvm tools: pedantry: fix annoying typo Will Deacon
2013-01-07 18:15 ` Will Deacon [this message]
2013-01-07 18:15 ` [PATCH 4/4] kvm tools: arm: add support for PSCI firmware in place of spin-tables Will Deacon
2013-01-08 5:47 ` [PATCH 0/4] ARM updates for kvmtool Christoffer Dall
2013-01-09 11:13 ` Pekka Enberg
2013-01-09 11:22 ` Will Deacon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1357582501-6024-4-git-send-email-will.deacon@arm.com \
--to=will.deacon@arm.com \
--cc=c.dall@virtualopensystems.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=marc.zyngier@arm.com \
--cc=penberg@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox