Message ID | 2138176d-e6c6-d55b-6834-18bdbeac922e@nokia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show
Return-Path: <linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org> X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 72B98C00140 for <linux-arm-kernel@archiver.kernel.org>; Thu, 18 Aug 2022 15:10:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Subject:From:To:Date: Message-ID:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From :Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=zYsM+vSzmUMQf5G+Gm9qo4zY9U0qlqHgXesx2MCw1PA=; b=wki0YJsVxSM1HA gBCkgRdg+byxaHTJQVNeTlJuImSpGaGF5V3DnOsNDLnHF31vRXMyHCxWoV+Us/iBKqJm5dtNd8xBv kU0NKd5murKZXIxRoaHlF4aBdWt3q8haQ3AnqIOoK+5AzneNNadLkH3IgplF9ozTVjMSH5ghAHvnC DZIt78DajS4lbknD1yyAKr7G2jH7AX85usyLVa0SB8znDR9qywwwIwtz1gNEtfxIPT/CZ5cXUjXH2 Cok6tVluvdm4wI6Jl1Vh1S2S7GDNacS7VplxJAgrrrgEJq4ZOBIjxENoBTIRpv1nx00stk0uMJBkA hdcmipNMRJQ+AyjkFcYQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oOh8y-006RyC-Hm; Thu, 18 Aug 2022 15:09:13 +0000 Received: from mail-dbaeur03on2108.outbound.protection.outlook.com ([40.107.104.108] helo=EUR03-DBA-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oOh6e-006QWA-BV for linux-arm-kernel@lists.infradead.org; Thu, 18 Aug 2022 15:06:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K0LXccWMh925mgQwKLG8gOe4JnJTMqZRnLVNaHeESUkbdpCMNvcQRK02PoLE8zWwdbE6crnJUaGYyLRf9M7FO6zk5q470BcU9wszOvTXs4WWH5UnYGLMMhb+kJauCxa9XBV2sjgYvYOCEUU8EOhouY0JBs5a+WkcrsW+mozuYH+cHxo1gd6HdcR+VNlgB1panlMzsuUYuj6mD6eZLSxkvGu7xjdXXXvqyzZIfjKex3OxUJrAmQbxr5BmRCqTz4VK87wEJR9tWb1T7kZlWJLlC+yCqRY1WUT9nBOwOxni1SDlvDbP6YPFmQEAkDjot5xh82hYlcFwojBbzW+rxs9A4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Up2YQwUgQCnhmLQs9znf3DPg5NPl/VeZBqS2h3tVe+o=; b=M5CkH+jzVK5ZIpJTGxORNZG7DUJSvOgUb9tVQKQleV+x2gmVYGkNSSXmJzze+N8vF3BGrCsp9fk3LOmWZSUl+4P5MrZf/TyAVajJS2Xpb/ytSlRcGI/cqeRMkAaqExrTUjK8oq4Ce+8u2rgFSAJc3fpC3Xzj73H9XlgB+Fdz7F4N/TBFSyjts7hIqPDe64ZPMCCipLIjxdnX+18WXybeXMkofTe0yxCRQOFnFVHfZnk++u7NqghUrsMHnsvFQTKZ0Hl2KaHzPHL/sxQSxzNqNLphA1SIz760y1dyxAP35vwVURNi+f3v4c3S2RMeQp60fDsTJozgjuNYiGd40DHfjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Up2YQwUgQCnhmLQs9znf3DPg5NPl/VeZBqS2h3tVe+o=; b=LwHDW/iSchj0ypYMG3X1P4B6SCW0Xjj8oYfzpC7eSOdVB8c3GWC0yq8bkCBEj5ubnAdWEBjAOSDpZIq1/Yu27N2/47lXzZjbzL8e8CaVShSIp1wwps84KcoJ3SfbZ66WhhQpVqV9g1yViienHDvw0rlmZwinytdkpcqPmcEc+0E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nokia.com; Received: from VI1PR0701MB3005.eurprd07.prod.outlook.com (2603:10a6:800:87::19) by VI1PR07MB5262.eurprd07.prod.outlook.com (2603:10a6:803:aa::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.4; Thu, 18 Aug 2022 14:52:31 +0000 Received: from VI1PR0701MB3005.eurprd07.prod.outlook.com ([fe80::acc6:3fb2:66e0:7bba]) by VI1PR0701MB3005.eurprd07.prod.outlook.com ([fe80::acc6:3fb2:66e0:7bba%7]) with mapi id 15.20.5546.015; Thu, 18 Aug 2022 14:52:31 +0000 Message-ID: <2138176d-e6c6-d55b-6834-18bdbeac922e@nokia.com> Date: Thu, 18 Aug 2022 16:52:22 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.1.2 Content-Language: en-US To: linux@armlinux.org.uk, "Sverdlin, Alexander (Nokia - DE/Ulm)" <alexander.sverdlin@nokia.com>, linux-arm-kernel@lists.infradead.org, arnd@arndb.de From: Matija Glavinic Pecotic <matija.glavinic-pecotic.ext@nokia.com> Subject: [PATCH v3] arm: Support initrd with address in boot alias region X-ClientProxiedBy: HE1PR0101CA0023.eurprd01.prod.exchangelabs.com (2603:10a6:3:77::33) To VI1PR0701MB3005.eurprd07.prod.outlook.com (2603:10a6:800:87::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0400f09a-f783-43c5-556f-08da81294721 X-MS-TrafficTypeDiagnostic: VI1PR07MB5262:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ect19HwGAqW8GhJr7WsN48fxxj1NDxkwTtbJaPiQkJ81R+Zc5cY5Psy1GldC8sssT6YtXxL16lfMaUT169UJvXvOxikA5Zn0W42jyecjuj76bOMggCZXZHkqAFNmxjYZ6y4zgmbUaV72Z0FRtBn7bxDjmQnlgKD8g15y/MRcT8PMmCWx75rP4/b8xi759Z7BQ3IaXBXJx1PwnzWlBWMGiOMbZMcaJbvmfWBWfK/9JLPZSjctnrGmq1q+JoZacn2+mZCCi7IudntSXWBXN4tHR6C1TkC63vL57HxLmty6Ve9SXdG/rvE7WUys+wd5tTBQKQz9A8mb5DkLLe3NJZjNly0Ow1m7zcsAZFVPvT38l9pHbrwFBny423hLOkYKzxKdhly+6pWiio3V0p7o2/FBWzer/4hLbOU8VtkWaPbCaEfD9tNEewbfWVFqfwTkWpfKYEbsBA9Y+3kZAAUHkNhXX2T9nN5HcrJW1LCe5c7oJrsoG++NybPMi2BBzdg994VD9bKzo9BZvRgz1SvgPIRJQj6ehCFN2dewuCOFUsrRi5/0kTo3DKAT1mAB/bJVo+cHeSY0RFwxdTJSE8ytKGFB4S+u1utoXVNuBtXmIfwheN0DLjE9tXmNtVulhEz5mLEhagpwA0Bhtrrp6emNmRlIGpDrnZpiHJaWFmYG2a3iGKJpBsF+eX1t12/sGAxtJB0iRo4D786fvtXOz6+pheCmg918iCDnOlaUK/1aIId/gky1gWK7sQmgXNhgd8j1gSVUU6nOJnjtcVoUuyRu4HOR4s6AYyIc1pt+X4/kI+ws8c1tuhPmu2TJZsLyrsMzF/xhwQJ+hAu8vdWs8GgVhoVFVcbAEfw9sB/WxPoxcNMiBhDQMwbwOeM5ifMUfWpNjPy4 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0701MB3005.eurprd07.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(346002)(39860400002)(136003)(366004)(376002)(396003)(8676002)(2616005)(316002)(6666004)(31686004)(66556008)(66476007)(186003)(82960400001)(41300700001)(66946007)(8936002)(83380400001)(478600001)(6486002)(86362001)(2906002)(31696002)(36756003)(6506007)(55236004)(38100700002)(5660300002)(6512007)(26005)(43740500002)(45980500001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?+wHyYx/o4eUce3oQiOZ6fPAm4xku?= =?utf-8?q?TG897/Tl+Zo0Vo3zcYHTTF3jC7xs/2FSHX45Vt+tzgxjciPu0JIB3a8U/1ah6A6hY?= =?utf-8?q?VEPaXICCOvLjjBW1gC8xLQtz9d8wV3t42l6HoDlUCZoD9YvB5o9iwJbxLbHpNUNlW?= =?utf-8?q?ekufq8A+idgpnTmZeXZwggWaT6cJHbcACgFCbOY/b4mSOeHYru8l4otxljXWIPixc?= =?utf-8?q?2fo7f/dNppz+h3iOApayqT6DO/14CmCuBSDgtoqSOtR0i863mhGv04+A6cNuVLKza?= =?utf-8?q?fUZvePTpVivhsNbdYDYAnzXSV6AtBLc9iD63EYpYYuh8F7TmD2bJROecA+xMtC5mS?= =?utf-8?q?MnyVJKxvoTyzVlFj/TQkZllpzJUxJcKtdhx4G3oEcht3eDVS59RQ9ODV9IYMDgvTT?= =?utf-8?q?fMxne90ayLLbi8BOuXvXk/GZ4OV9BE2NXDqnRAl/mcBuzbXijDE+Y6E10zs45GHKC?= =?utf-8?q?Jze3Z1Um86PQLNDtvm8AvF/vl/WwoKVpKT/Z0GtAS9QR5BtbpyWGU29pnC8deIh9g?= =?utf-8?q?p4yp1GWq4vazy4WUIxe9x3j4F5+SBZYDkr6xiaZ6WRkMncJB4sVqOpkeQDRDSI5Gj?= =?utf-8?q?grN3jjhhQCCtww88CABb+K1fIGPAreWJqih4N1O3diyjhjZc14V0Tt3Icjn8CxkRz?= =?utf-8?q?uCKlBQEso83cpOkaY+iFLOV3umaXpWpZYBWs4PaNfn2VDK3C2bt1r+RNb69m+WNcc?= =?utf-8?q?7ZqQywfmUgxRL3ZtvlO/feKlsnDVR1ZmsJTsY9ImR0N+XkMy1BVvhP48VtHaDZma3?= =?utf-8?q?X42ae5arY60gUMRBNv7QLYoj83mJmdCU99ovR0O+v9pNrJZfMJHkQMICsLDq/Bu22?= =?utf-8?q?13wN3foQpF4FVgGagMBuqtSNsnBC/QdEB4Siy4JbhUsj78OndAFUGAQlYTx6SlygP?= =?utf-8?q?yQKifVlP77d+PZV+lPtG99SqlpfoTJDqWBa5BFj+AHAu7EhzSz6p060PdgPTCUda2?= =?utf-8?q?TGuoFOnI/+g5emWiqsK6YDdpP8MJbDb4eQkjjqmJyoQkYWjT5gGeEqxWF+4ie3K0b?= =?utf-8?q?C100g8Ef/B5ndWgBBUGqafHXNqBzIbUI1qR1+eITy5UnxyLjCYVI2ksXTzjbH9XPJ?= =?utf-8?q?tG6HfuiunKHbsI6UI1FBf80C5pdDVIlpUEYNZkYfgZ+zY3Hc4xifrdMUmO+bHSS/8?= =?utf-8?q?LvtjkZ1hmhDiJs59sVNa1uB+s8O+cadkg3Ic1A9r+65k5XaiodHKndWayJre0RKco?= =?utf-8?q?A6QM/JYmbcPBWLYEI4VMfDYSiE9i48BOSBrWj+WHiYk6u80E+o/uGRMxk9M+kldDw?= =?utf-8?q?DfTNzOI8ALA24rhBAU3V63gJ/FBWHKBdtZCtTafiq4k9U4whHix0O6mXhCZ3X12c+?= =?utf-8?q?11yjrq05uiD7vF6ZVhjAerKOhFtEZMVRA4NGcCTR1kzX8JjsRBGLnUSG0+fCRgdA0?= =?utf-8?q?OeZeLLil6w/7RxDOSsySIj+LQ8dHSIABy7uyKwC0/ZC2FWteGGNz0DqWxqBBehRd2?= =?utf-8?q?Alk/TZPS40esYjPTZ1oHCgN/hzgDv5Vxw91P+e1GL/jiLBMluo9lS+N7aC69sB1p5?= =?utf-8?q?TJQE8DHq8DKyYZj8r/MTeLo1DyvcdmzeORtBQPZYAx9bQbUkEL+rOwPLRF4yy/++F?= =?utf-8?q?UHmY/eWjBtD?= X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0400f09a-f783-43c5-556f-08da81294721 X-MS-Exchange-CrossTenant-AuthSource: VI1PR0701MB3005.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2022 14:52:31.6324 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mwmKmZNkhxdRV7TAdTrxdj+fG8S/4J3dPLh1iY56ix40xC1IabowRwH/4unDQ0EnaPT6+hMYMHSUhMwqRwYNA0KfWQZLEAZh6srzaGv7u7fOTL1AsBC09mTil6wJwju+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB5262 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220818_080648_447065_6A170B73 X-CRM114-Status: GOOD ( 14.90 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: <linux-arm-kernel.lists.infradead.org> List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-arm-kernel>, <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe> List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/> List-Post: <mailto:linux-arm-kernel@lists.infradead.org> List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help> List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>, <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org> Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org |
Series |
[v3] arm: Support initrd with address in boot alias region
|
expand
|
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index ce64bdb55a16..b248c2459f4d 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -180,11 +180,27 @@ void check_cpu_icache_size(int cpuid) } #endif +static void sanitize_initrd_address(void) +{ + /* + * If initrd is not on valid physical address, reason could + * be due to bootloader passing address from bootalias region. + * Try to sanitize such address for platforms supporting boot + * aliases. + */ + if (!pfn_valid(__phys_to_pfn(phys_initrd_start))) { + pr_info("initrd at invalid address, trying to use boot alias\n"); + if (arm_has_idmap_alias()) + phys_initrd_start = idmap_to_phys(phys_initrd_start); + } +} + void __init arm_memblock_init(const struct machine_desc *mdesc) { /* Register the kernel text, kernel data and initrd with memblock. */ memblock_reserve(__pa(KERNEL_START), KERNEL_END - KERNEL_START); + sanitize_initrd_address(); reserve_initrd_mem(); arm_mm_memblock_reserve();
When bootloader passes address of initrd in boot alias region, initrd will fail on memblock_is_region_memory as memblock with such address doesn't exist. Problem was uncovered by commit fe7db7570379 ("of/fdt: Populate phys_initrd_start/phys_initrd_size from FDT") which removed __virt_to_phys on the initrd physical address. Earlier, __virt_to_phys on our platform coincidentally sanitized address. Initrd address in bootalias region is valid to be passed by bootloader, in our case it was done by kexec: $ cat /proc/iomem [cut] c0000000-d4da1fff : System RAM (boot alias) 840000000-854da1fff : System RAM 840008000-840bfffff : Kernel code 840e00000-840ee56fb : Kernel data [cut] 880000000-8ffffffff : System RAM arch/arm/kernel/setup.c: /* * Some systems have a special memory alias which is only * used for booting. We need to advertise this region to * kexec-tools so they know where bootable RAM is located. */ boot_alias_start = phys_to_idmap(start); if (arm_has_idmap_alias() && boot_alias_start != IDMAP_INVALID_ADDR) { res = memblock_alloc(sizeof(*res), SMP_CACHE_BYTES); if (!res) panic("%s: Failed to allocate %zu bytes\n", __func__, sizeof(*res)); res->name = "System RAM (boot alias)"; res->start = boot_alias_start; res->end = phys_to_idmap(res_end); res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; request_resource(&iomem_resource, res); } Fix by trying to sanitize address in case of invalid physical address for platforms (e.g. Keystone 2) supporting it. Signed-off-by: Matija Glavinic Pecotic <matija.glavinic-pecotic.ext@nokia.com> --- v2: Rebased against current tree, update commit message to capture previous discussion (http://lists.infradead.org/pipermail/linux-arm-kernel/2020-September/605344.html) v3: moved implementation from generic code to arm's mm arch/arm/mm/init.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)