Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3834745pxj; Tue, 15 Jun 2021 09:36:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwIsCy1meG/JSGKxICD3GgyeA+qjawjHyWE0wM/EEJBPuY2cFn+hL9LW1/QsPsxD/nkRAoC X-Received: by 2002:a05:6638:3b5:: with SMTP id z21mr151081jap.17.1623774967842; Tue, 15 Jun 2021 09:36:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623774967; cv=none; d=google.com; s=arc-20160816; b=VrkrW/K/Q5emoVSuHhmgLpDvsfJcN0RGWNHaYY9KB8XCHl9P6P1USj4r+lnLIWzpyy CzoA47UXY5iJzYBirZcLjbbC4XvUthncUngt78HIg0X17UV/HimUwYizXtW99yKqeqXr q/HQ5wN+mhgA0hPxfPR6AB12AMPSitBbJF1BntMIb2ex3YFVFyfcwU9Rh6JaLXXIbmkH DVzdFboi024UdPnALCwWO7VDc/QE6YUqkKXKvU+8rFcrKZqgim0tYTQ2C4HqEKcs3cEg Y6TSXTc3rFWmUufclEWURYH2JCCKClLyw0tvRAu9sS+K0YtbAHLsZnhwRkl779qSdemu kU/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=a1fZHrP7WIo9R+PIWQxAyBP4lhgMuBnmXhRb2HxeceQ=; b=ARpNIjd1Pomd/5cQJIsHPzxsMR7Mep+GMXMKRVxsxzGhDgh8K2ph0sEls6wBBdXEaj Fexm14WgSHg/d+KHjglosNRRB1US7lpF69VTnLMkaNrt8DQNE9jbtWBfDlWNlpWLp8MH 3qExKcr2bJVxZaU28XaDHaSMmRyIXT0c7+YPzZAmzDpbaCO0d5VNLDLBH5jLzXQbxlOC uRio9Rh428fyKS2kTI6TvAWpqalbZdPSIigpK9y/SMn9Ma5IqTXAzZfu+T8e3W6v7X6n vXvS66W988yyEAwZRx5BbQu9XS1QWuC9FrPtydBaDLxhOBp06Qx/jklemTbszf7FFylv ihiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Nf0favd4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p11si19292637ilp.48.2021.06.15.09.35.54; Tue, 15 Jun 2021 09:36:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Nf0favd4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230060AbhFOQhR (ORCPT + 99 others); Tue, 15 Jun 2021 12:37:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:38126 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229557AbhFOQhQ (ORCPT ); Tue, 15 Jun 2021 12:37:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 599536162F; Tue, 15 Jun 2021 16:35:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1623774912; bh=KPwWGxmpg2+R/ZLS2IDl8iiCzE/7WD8JZk2bGE/QMts=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=Nf0favd4DH8amnrkqvYZtkQsxecrIcgxrLVmUpQZ86PzvVVLINtyJ45MrWRej3GDG nAtaJHtv01DWFr6rjxS1G2jWitSV6AknO1SdAd2m0hpE+cNxGOTuUzg22mRf541gBn YjUyTpwlMQ6/eQFabXktOQ2tlvOF+15QyrTRQeCazzrEjOvDlHmQq4Kk1yOFqGpE48 g4la3mowcBBeE6H6XXpUGXgf6RyAJJPM89VpBMmLCqM+TL092qGoy1zgkrdYAfAJZg 3mJtr78hLntyDieS6N+tUK3Yern2ZiLzShW11po9rlaIvyPB51YoaorKUC7/Wsl7Gw VuFEEkKmmUtmg== Received: by mail-lf1-f42.google.com with SMTP id r5so28066057lfr.5; Tue, 15 Jun 2021 09:35:12 -0700 (PDT) X-Gm-Message-State: AOAM5312RAM0PWsZ1PQ9jyb2xxYvFJtxckMrbFXzwS01YX0UexGAkab1 bZsnqNiKUdalEDTmMCfiOF6g09yEi6aamHsmAQ== X-Received: by 2002:a50:9345:: with SMTP id n5mr354653eda.289.1623774900181; Tue, 15 Jun 2021 09:35:00 -0700 (PDT) MIME-Version: 1.0 References: <20210221174930.27324-1-nramas@linux.microsoft.com> <20210221174930.27324-6-nramas@linux.microsoft.com> <54efb4fce5aac7efbd0b1b3885e9098b1d4ea745.camel@linux.microsoft.com> In-Reply-To: <54efb4fce5aac7efbd0b1b3885e9098b1d4ea745.camel@linux.microsoft.com> From: Rob Herring Date: Tue, 15 Jun 2021 10:34:48 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v19 05/13] of: Add a common kexec FDT setup function To: nramas Cc: Geert Uytterhoeven , Mimi Zohar , Thiago Jung Bauermann , AKASHI Takahiro , Greg KH , Will Deacon , Joe Perches , Catalin Marinas , Michael Ellerman , Stephen Rothwell , James Morse , Sasha Levin , Benjamin Herrenschmidt , Paul Mackerras , Frank Rowand , Vincenzo Frascino , Mark Rutland , dmitry.kasatkin@gmail.com, James Morris , "Serge E. Hallyn" , Pavel Tatashin , Allison Randal , Masahiro Yamada , Matthias Brugger , Hsin-Yi Wang , tao.li@vivo.com, Christophe Leroy , Prakhar Srivastava , balajib@linux.microsoft.com, linux-integrity , Linux Kernel Mailing List , Linux ARM , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , linuxppc-dev Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 15, 2021 at 10:13 AM nramas wrote: > > On Tue, 2021-06-15 at 08:01 -0600, Rob Herring wrote: > > On Tue, Jun 15, 2021 at 6:18 AM Geert Uytterhoeven < > > geert@linux-m68k.org> wrote: > > > > > > > +void *of_kexec_alloc_and_setup_fdt(const struct kimage *image, > > > > + unsigned long > > > > initrd_load_addr, > > > > + unsigned long initrd_len, > > > > + const char *cmdline, size_t > > > > extra_fdt_size) > > > > +{ > > > > + /* Did we boot using an initrd? */ > > > > + prop = fdt_getprop(fdt, chosen_node, "linux,initrd- > > > > start", NULL); > > > > + if (prop) { > > > > + u64 tmp_start, tmp_end, tmp_size; > > > > + > > > > + tmp_start = fdt64_to_cpu(*((const fdt64_t *) > > > > prop)); > > > > + > > > > + prop = fdt_getprop(fdt, chosen_node, > > > > "linux,initrd-end", NULL); > > > > + if (!prop) { > > > > + ret = -EINVAL; > > > > + goto out; > > > > + } > > > > + > > > > + tmp_end = fdt64_to_cpu(*((const fdt64_t *) > > > > prop)); > > > > > > Some kernel code assumes "linux,initrd-{start,end}" are 64-bit, > > > other code assumes 32-bit. > > > > It can be either. The above code was a merge of arm64 and powerpc > > both > > of which use 64-bit and still only runs on those arches. It looks > > like > > some powerpc platforms may use 32-bit, but this would have been > > broken > > before. > of_kexec_alloc_and_setup_fdt() is called from elf_64.c (in > arch/powerpc/kexec) which is for 64-bit powerpc platform only. 64-bit PPC could be writing 32-bit property values. The architecture size doesn't necessarily matter. And if the values came from the bootloader, who knows what size it used. This code is 32-bit powerpc only?: arch/powerpc/boot/main.c- /* Tell the kernel initrd address via device tree */ arch/powerpc/boot/main.c: setprop_val(chosen, "linux,initrd-start", (u32)(initrd_addr)); arch/powerpc/boot/main.c- setprop_val(chosen, "linux,initrd-end", (u32)(initrd_addr+initrd_size)); Rob