[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v3 1/4] target-ppc: Extend rtas-blob
From: |
Aravinda Prasad |
Subject: |
[Qemu-ppc] [PATCH v3 1/4] target-ppc: Extend rtas-blob |
Date: |
Wed, 05 Nov 2014 12:42:35 +0530 |
User-agent: |
StGit/0.15 |
Extend rtas-blob to accommodate error log. Error log
structure is saved in rtas space upon a machine check
exception.
Signed-off-by: Aravinda Prasad <address@hidden>
---
hw/ppc/spapr.c | 7 +++++++
include/hw/ppc/spapr.h | 5 +++++
2 files changed, 12 insertions(+)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 30de25d..38e26af 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1431,6 +1431,13 @@ static void ppc_spapr_init(MachineState *machine)
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "spapr-rtas.bin");
spapr->rtas_size = get_image_size(filename);
+
+ /*
+ * Resize blob to accommodate error log. The layout of the rtas
+ * blob is defined in include/hw/ppc/spapr.h
+ */
+ spapr->rtas_size = TARGET_PAGE_ALIGN(spapr->rtas_size);
+
spapr->rtas_blob = g_malloc(spapr->rtas_size);
if (load_image_size(filename, spapr->rtas_blob, spapr->rtas_size) < 0) {
hw_error("qemu: could not load LPAR rtas '%s'\n", filename);
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 749daf4..d08fcc2 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -480,4 +480,9 @@ int spapr_dma_dt(void *fdt, int node_off, const char
*propname,
int spapr_tcet_dma_dt(void *fdt, int node_off, const char *propname,
sPAPRTCETable *tcet);
+/* RTAS Blob layout in memory */
+#define RTAS_ENTRY_OFFSET 0
+#define RTAS_TRAMPOLINE_OFFSET 0x200
+#define RTAS_ERRLOG_OFFSET 0x800
+
#endif /* !defined (__HW_SPAPR_H__) */
[Qemu-ppc] [PATCH v3 2/4] target-ppc: Register and handle HCALL to receive updated RTAS region, Aravinda Prasad, 2014/11/05
[Qemu-ppc] [PATCH v3 3/4] target-ppc: Build error log, Aravinda Prasad, 2014/11/05
[Qemu-ppc] [PATCH v3 4/4] target-ppc: Handle ibm, nmi-register RTAS call, Aravinda Prasad, 2014/11/05