From patchwork Sat Feb 3 04:28:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 868839 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zYLWc2WtTz9t4t for ; Sat, 3 Feb 2018 15:30:52 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="J95CFRV1"; dkim-atps=neutral Received: from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3zYLWc0yR3zF0YJ for ; Sat, 3 Feb 2018 15:30:52 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="J95CFRV1"; dkim-atps=neutral X-Original-To: skiboot@lists.ozlabs.org Delivered-To: skiboot@lists.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gmail.com (client-ip=2607:f8b0:400e:c00::243; helo=mail-pf0-x243.google.com; envelope-from=npiggin@gmail.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="J95CFRV1"; dkim-atps=neutral Received: from mail-pf0-x243.google.com (mail-pf0-x243.google.com [IPv6:2607:f8b0:400e:c00::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3zYLSz3kfwzF0bW for ; Sat, 3 Feb 2018 15:28:35 +1100 (AEDT) Received: by mail-pf0-x243.google.com with SMTP id q79so1793546pfl.5 for ; Fri, 02 Feb 2018 20:28:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=HJIsx02nWmTjXHHmjCzR1L/TWl/rHG3PPzA6Qy1XJhs=; b=J95CFRV1jE73OQNFVdhHsxkDLu/66ImSu2KhZ1LhUs43+Og9ADM9jUm1iUhr/kMkQR HFjusqWoLdtO/001eLvt9hmoIICBbvPp8N1mBQ6bk0W6rT9MHsl/3/ft9pSR41cEjCVq QuHD8JR05S0VG+WNTSJ9BSPdGBHFlr4zgmUPpEk9ioBOFLPJuuTQzKYx/mTx7cK0RUuo sHi8vkINiRCtujElXEzxtjPkMLVXS6ggmT/q7zvmaVRIyY76zbz4DYlEnlKqlGvgoySw CCkieMUkHkSUtV/2Y5WxAXkEqjwnJv/uSVdkgkxyU3wJgCrAX6hkLP+462oR5ml5NaX+ S0IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=HJIsx02nWmTjXHHmjCzR1L/TWl/rHG3PPzA6Qy1XJhs=; b=Kp/QN2b2cuH0hIYJj37UjqzdbFz1saETcrCdCQajki93Bko51Rd24iATom72f6R09y f6DBjO96lWUiX2LWNC1cXmjRbvb6FVO69eV/Y99jJu9bzE8J3DF4+JYA914oaq669CdE KHEHuchlTDr8BjGrguW+ES5nKGqslGbBwLdb2Is3HX2NgIAjBMb3itlAaWfBkJujVPVe UQbuzUzdTAHQ6AA5dJdauLVYPiVDNNm7OCTsedh5VaLMRwQU678f+G2OnQpUEM1CbJbO YnlCGppSR8GcIUMLhtfz+ilJe6kYpkLBNQvoT3ARe4jou8QEppp8nQxMqoIoR7Q5TomR rhvA== X-Gm-Message-State: AKwxytcknPiRjzTbUb/KSqhoM9VcoQBVL29KtBIfzzbBxV/IGpc4HHTE JLEzHzl2OehmpJDo6jsPhrQMzQ== X-Google-Smtp-Source: AH8x227wilt7XHeOGJyfv/K6dTQv+htB7s4D46h47A9xRZGn7PD10TGwL37vkUsqJkv57Jht61w4Zg== X-Received: by 10.99.1.85 with SMTP id 82mr11179203pgb.136.1517632112964; Fri, 02 Feb 2018 20:28:32 -0800 (PST) Received: from roar.au.ibm.com (60-240-234-161.tpgi.com.au. [60.240.234.161]) by smtp.gmail.com with ESMTPSA id l62sm5087215pga.71.2018.02.02.20.28.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Feb 2018 20:28:30 -0800 (PST) From: Nicholas Piggin To: skiboot@lists.ozlabs.org Date: Sat, 3 Feb 2018 14:28:21 +1000 Message-Id: <20180203042821.28181-1-npiggin@gmail.com> X-Mailer: git-send-email 2.15.1 Subject: [Skiboot] [PATCH] asm/head: use HSRR exception registers in FIXUP_ENDIAN X-BeenThere: skiboot@lists.ozlabs.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Mailing list for skiboot development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Skiboot" Taken from the Linux FIXUP_ENDIAN_HV macro, use the HSRR registers in FIXUP_ENDIAN. This allows the 0x100 exception handler (the single user of the macro) to preserve SRR registers and potentially recover, debug, or do something useful with them. This also allows the maco to be used in code with MSR[RI]=1, if the need arises. Signed-off-by: Nicholas Piggin --- asm/head.S | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/asm/head.S b/asm/head.S index 264899b12..fc6cd109f 100644 --- a/asm/head.S +++ b/asm/head.S @@ -467,17 +467,18 @@ call_relocate: 1: /* Fatal relocate failure */ attn -#define FIXUP_ENDIAN \ - tdi 0,0,0x48; /* Reverse endian of b . + 8 */ \ - b $+36; /* Skip trampoline if endian is good */ \ - .long 0x05009f42; /* bcl 20,31,$+4 */ \ - .long 0xa602487d; /* mflr r10 */ \ - .long 0x1c004a39; /* addi r10,r10,28 */ \ - .long 0xa600607d; /* mfmsr r11 */ \ - .long 0x01006b69; /* xori r11,r11,1 */ \ - .long 0xa6035a7d; /* mtsrr0 r10 */ \ - .long 0xa6037b7d; /* mtsrr1 r11 */ \ - .long 0x2400004c /* rfid */ +#define FIXUP_ENDIAN \ + tdi 0,0,0x48; /* Reverse endian of b . + 8 */ \ + b 191f; /* Skip trampoline if endian is good */ \ + .long 0xa600607d; /* mfmsr r11 */ \ + .long 0x01006b69; /* xori r11,r11,1 */ \ + .long 0x05009f42; /* bcl 20,31,$+4 */ \ + .long 0xa602487d; /* mflr r10 */ \ + .long 0x14004a39; /* addi r10,r10,20 */ \ + .long 0xa64b5a7d; /* mthsrr0 r10 */ \ + .long 0xa64b7b7d; /* mthsrr1 r11 */ \ + .long 0x2402004c; /* hrfid */ \ +191: pm_save_regs: SAVE_GPR(2,%r1)