From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53926) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xlum5-0006zi-FX for qemu-devel@nongnu.org; Wed, 05 Nov 2014 02:13:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xlulu-0001OL-Q4 for qemu-devel@nongnu.org; Wed, 05 Nov 2014 02:13:01 -0500 Received: from e9.ny.us.ibm.com ([32.97.182.139]:58280) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xlulu-0001O2-Ix for qemu-devel@nongnu.org; Wed, 05 Nov 2014 02:12:50 -0500 Received: from /spool/local by e9.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 5 Nov 2014 02:12:49 -0500 From: Aravinda Prasad Date: Wed, 05 Nov 2014 12:42:35 +0530 Message-ID: <20141105071235.26196.28398.stgit@aravindap> In-Reply-To: <20141105071019.26196.93729.stgit@aravindap> References: <20141105071019.26196.93729.stgit@aravindap> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH v3 1/4] target-ppc: Extend rtas-blob List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: aik@au1.ibm.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Cc: benh@au1.ibm.com, paulus@samba.org 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 --- 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__) */