Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp604170rwb; Fri, 7 Oct 2022 01:21:13 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4WiabUExpoMkjspXOuannXxJJlyWTqtVFhQXC7IuAOZqeR+k1iIvTWc6Xp8sIe/XeWaQHe X-Received: by 2002:a17:906:ef8f:b0:77e:44be:790 with SMTP id ze15-20020a170906ef8f00b0077e44be0790mr3110562ejb.409.1665130873040; Fri, 07 Oct 2022 01:21:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665130873; cv=none; d=google.com; s=arc-20160816; b=RisTb46UY8RqACfoh6W7t8S5xy7njuecMEkHOiuPdl/9p3CEqOFjawsrhLYpM1kWmx EolHhy2pwP1pcCl7pcf4x5Qd165wdpZgujZZavPs7uPkJWtpZlhESfnW3RaedTApnNhC gIMQdRSJHzRuj4+oV/wGSDU0I2WMqbOFNILy+iHqqvQpoiAsbl82KmLFLoLlALJ1gUYB 9lvrUfFzQUOARl9cXoOW34P4RWy8pPq+VD0A+79Z0OPQNeo1fmTSDQE9nECJQAKYUE/3 AYYN/tU66oTzW/ErcohMUvJvmUvEcJ8x3+jBTe4uOPzIe316OpgFJp7eth1o5vcZVkMm 8KzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=zVbaJWt71VZ4qd8uFrn7B4xqgpqfBaH9DEwYzQrhOEk=; b=rS5TQRGQwZFyRslppTNBcYLBNA+h6iPteygdNCPF607zewHvVQSrIt5hsbcPX4z4Sw 1BjUjAfoJyfPzLdS6s2dOBhTTKnmVi4lVfJEqc6y6S5xBF4HGQv/WNZwzkjW5ARRqzHn uJZRgGuUdFS8zQQxjz8mll/K3XjlmlZZWP2jivSyGGIr6OmUwujbXvozrQyyoytjsRN5 LGbMo7C08dzWjKYGusqHejlFWTx1rFn7fb5Lj4EQga9ukJimx8YIsLg2Mljzxbv7C8FH 9MfSSZkNdTRNC8Z+uOE7bvVlu1v3TRoCNumGnLdQx+FJXawlkHOM8teZ9dK4ItRQbYRl jGnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b="EADg/lk6"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sg39-20020a170907a42700b0078b85fdf4e4si1767324ejc.532.2022.10.07.01.20.46; Fri, 07 Oct 2022 01:21:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b="EADg/lk6"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229961AbiJGHu7 (ORCPT + 99 others); Fri, 7 Oct 2022 03:50:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229942AbiJGHuu (ORCPT ); Fri, 7 Oct 2022 03:50:50 -0400 Received: from smtp-relay-internal-0.canonical.com (smtp-relay-internal-0.canonical.com [185.125.188.122]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 25B3BC4C21 for ; Fri, 7 Oct 2022 00:50:35 -0700 (PDT) Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id 964D23F838 for ; Fri, 7 Oct 2022 07:50:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1665129032; bh=zVbaJWt71VZ4qd8uFrn7B4xqgpqfBaH9DEwYzQrhOEk=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=EADg/lk65qFLptXNWbC4F9yp0B0ynWTT7ClTbrUOBxT7GGgyWl+bu/afXOP8M5iOT g10Obqa3wrr24Oepu9pnpGUfvoXUTe9najuQmKGsc5ItdHFnvnvBmrXsiSgn1MvBPT GnARaN2aHpLMmmghgHMwOlpvs8i6KpzTlphr7lt8Tkygiy3t8dE35GWd4aqwgwmpHd o89lGSwHRFV592lXsy++njqrnfSNPyPRN7OxYVa51tdpM1uDRci3nuWYjUbjEBF968 4WHplD95lU/62mR/UVnC/KoaJa7DSLlymmOSJ3nh9okNff13QhVhO6CjhudOZXT2S7 0D/veS3HiPIGw== Received: by mail-ed1-f70.google.com with SMTP id q17-20020a056402519100b00459a2e5adbcso3274835edd.16 for ; Fri, 07 Oct 2022 00:50:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=zVbaJWt71VZ4qd8uFrn7B4xqgpqfBaH9DEwYzQrhOEk=; b=pCRcKJlQtSLnYbGrIRMt8fmAj2JkaB8jEMiA3F4dQAie+paH02ryf7YAycKxGqQSV8 ixjE+7wn5nI8yc2h2tr++V5S0P98YtBGNHTKFER4Hd+SfeMRkqbpYKcMsO9FPFqPfx0K YPS2xzxvpgg8ZWLizpnvgRrZ0m4LzKXkgrxDWgzuO6QBe39OUaJ1nrxVFWMKgFoMVJXW JhnyHtTQA4ymnVsgfwL4gTKDJJs4anq3oomCWw2v4uXQeHBtXWYvX9caKB2RUWoT/0fj D0Kf1Cr223iUWGn7ydm3ai0fl3wZK0sKt5ADgJXM7WjcX+vO9t9jEymsVQqQg1VrUdX4 ZxqA== X-Gm-Message-State: ACrzQf1tx/HW0GhlZO/hFWRJOu1tHdZOdUkoF7XwSUd/vEyq9UiZuc3T q3vDk2fyn7IspA0piP4rUQ8s0xtvUG9HNqOELiCLEPYR1J3g9oG7fN2GgrbkC7h8ioodCgUmxBY EkvGWPjkS9mTgS+oQrxy1eg+hpKg6c6JzKMyL9dQcOw== X-Received: by 2002:a17:907:d91:b0:78d:1e79:ce66 with SMTP id go17-20020a1709070d9100b0078d1e79ce66mr3014282ejc.736.1665129032223; Fri, 07 Oct 2022 00:50:32 -0700 (PDT) X-Received: by 2002:a17:907:d91:b0:78d:1e79:ce66 with SMTP id go17-20020a1709070d9100b0078d1e79ce66mr3014263ejc.736.1665129031895; Fri, 07 Oct 2022 00:50:31 -0700 (PDT) Received: from [192.168.123.94] (ip-084-118-157-002.um23.pools.vodafone-ip.de. [84.118.157.2]) by smtp.gmail.com with ESMTPSA id o11-20020a056402038b00b0045467008dd0sm935939edv.35.2022.10.07.00.50.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 07 Oct 2022 00:50:31 -0700 (PDT) Message-ID: <4ef86adf-a7c7-5ffc-6acc-9d269ea089ba@canonical.com> Date: Fri, 7 Oct 2022 09:50:30 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: [v4 PATCH 2/3] RISC-V: Update image header To: Ard Biesheuvel Cc: Atish Patra , Daniel Kiper , Fu Wei , Leif Lindholm , Nikita Ermakov , Atish Patra , Julian Andres Klode , Ilias Apalodimas , linux-kernel@vger.kernel.org References: <20221006230051.185850-1-atishp@rivosinc.com> <20221006230051.185850-3-atishp@rivosinc.com> Content-Language: en-US From: Heinrich Schuchardt In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/7/22 09:20, Ard Biesheuvel wrote: > On Fri, 7 Oct 2022 at 01:51, Heinrich Schuchardt > wrote: >> >> >> >> On 10/7/22 01:00, Atish Patra wrote: >>> Update the RISC-V Linux kernel image headers as per the current header. >>> >>> Reference: >>> /Documentation/riscv/boot-image-header.rst >>> >>> 474efecb65dc: ("riscv: modify the Image header to improve compatibility with the ARM64 header") >>> >>> Signed-off-by: Atish Patra >>> --- >>> include/grub/riscv32/linux.h | 15 ++++++++------- >>> include/grub/riscv64/linux.h | 21 +++++++++++++-------- >>> 2 files changed, 21 insertions(+), 15 deletions(-) >>> >>> diff --git a/include/grub/riscv32/linux.h b/include/grub/riscv32/linux.h >>> index 512b777c8a41..de0dbdcd1be5 100644 >>> --- a/include/grub/riscv32/linux.h >>> +++ b/include/grub/riscv32/linux.h >>> @@ -19,20 +19,21 @@ >>> #ifndef GRUB_RISCV32_LINUX_HEADER >>> #define GRUB_RISCV32_LINUX_HEADER 1 >>> >>> -#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x52534356 /* 'RSCV' */ >>> +#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x05435352 /* 'RSC\0x5' */ >> >> Thanks for following up on this series. >> >> Considering 69edb312056 ("loader/arm64/linux: Remove magic number header >> field check") why should this constant exist in GRUB at all? >> >> In a follow up patch we could remove it together with >> GRUB_LINUX_ARM_MAGIC_SIGNATURE, GRUB_LINUX_ARMXX_MAGIC_SIGNATURE, and >> GRUB_LINUX_ARMXX_MAGIC_SIGNATURE. >> > > Indeed. > > But by the same reasoning, why do we need per-arch kernel header > typedefs at all? The only fields we access are generic PE/COFF header > fields. That said I would suggest to put the series in without any further iterations and clean up afterwards. Acked-by: Heinrich Schuchardt > >>> >>> -/* From linux/Documentation/riscv/booting.txt */ >>> +/* From linux/Documentation/riscv/boot-image-header.rst */ >>> struct linux_riscv_kernel_header >>> { >>> grub_uint32_t code0; /* Executable code */ >>> grub_uint32_t code1; /* Executable code */ >>> - grub_uint64_t text_offset; /* Image load offset */ >>> - grub_uint64_t res0; /* reserved */ >>> - grub_uint64_t res1; /* reserved */ >>> + grub_uint64_t text_offset; /* Image load offset, little endian */ >>> + grub_uint64_t image_size; /* Effective Image size, little endian */ >>> + grub_uint64_t flags; /* kernel flags, little endian */ >>> + grub_uint32_t version; /* Version of this header */ >>> + grub_uint32_t res1; /* reserved */ >>> grub_uint64_t res2; /* reserved */ >>> grub_uint64_t res3; /* reserved */ >> >> According to tag next-20221006 of >> Documentation/riscv/boot-image-header.rst and of >> arch/riscv/include/asm/image.h this field is called 'magic' and filled >> it with the string 'RISCV\0\0\0'. >> >>> - grub_uint64_t res4; /* reserved */ >>> - grub_uint32_t magic; /* Magic number, little endian, "RSCV" */ >>> + grub_uint32_t magic; /* Magic number, little endian, "RSC\x05" */ >> >> The Linux kernel documentation calls this field magic2. >> >> Of course this is functionally irrelevant as we don't care about the >> content of both fields. >> >>> grub_uint32_t hdr_offset; /* Offset of PE/COFF header */ >>> }; >>> >>> diff --git a/include/grub/riscv64/linux.h b/include/grub/riscv64/linux.h >>> index 3630c30fbf1a..ea77f8718222 100644 >>> --- a/include/grub/riscv64/linux.h >>> +++ b/include/grub/riscv64/linux.h >>> @@ -19,23 +19,28 @@ >>> #ifndef GRUB_RISCV64_LINUX_HEADER >>> #define GRUB_RISCV64_LINUX_HEADER 1 >>> >>> -#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x52534356 /* 'RSCV' */ >>> +#include >>> + >>> +#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x05435352 /* 'RSC\0x5' */ >> >> to be removed in future >> >> Best regards >> >> Heinrich >> >>> >>> #define GRUB_EFI_PE_MAGIC 0x5A4D >>> >>> -/* From linux/Documentation/riscv/booting.txt */ >>> +/* From linux/Documentation/riscv/boot-image-header.rst */ >>> struct linux_riscv_kernel_header >>> { >>> grub_uint32_t code0; /* Executable code */ >>> grub_uint32_t code1; /* Executable code */ >>> - grub_uint64_t text_offset; /* Image load offset */ >>> - grub_uint64_t res0; /* reserved */ >>> - grub_uint64_t res1; /* reserved */ >>> + grub_uint64_t text_offset; /* Image load offset, little endian */ >>> + grub_uint64_t image_size; /* Effective Image size, little endian */ >>> + grub_uint64_t flags; /* kernel flags, little endian */ >>> + grub_uint32_t version; /* Version of this header */ >>> + grub_uint32_t res1; /* reserved */ >>> grub_uint64_t res2; /* reserved */ >>> - grub_uint64_t res3; /* reserved */ >>> - grub_uint64_t res4; /* reserved */ >>> - grub_uint32_t magic; /* Magic number, little endian, "RSCV" */ >>> + grub_uint64_t magic; /* magic (RISC-V specifc, deprecated)*/ >>> + grub_uint32_t magic2; /* Magic number 2 (to match the ARM64 'magic' field pos) */ >>> grub_uint32_t hdr_offset; /* Offset of PE/COFF header */ >>> + >>> + struct grub_coff_image_header coff_image_header; >>> }; >>> >>> #define linux_arch_kernel_header linux_riscv_kernel_header