public inbox for linux-riscv@lists.infradead.org
 help / color / mirror / Atom feed
From: Nick Kossifidis <mick@ics.forth.gr>
To: "Björn Töpel" <bjorn@kernel.org>,
	"Simon Horman" <horms@kernel.org>,
	"Simon Horman" <horms@verge.net.au>,
	"Song Shuai" <songshuaishuai@tinylab.org>,
	"Li Zhengyu" <lizhengyu3@huawei.com>,
	kexec@lists.infradead.org
Cc: "Björn Töpel" <bjorn@rivosinc.com>,
	"Dave Young" <dyoung@redhat.com>,
	"Yixun Lan" <yixun.lan@gmail.com>,
	"Xianting Tian" <xianting.tian@linux.alibaba.com>,
	linux-riscv@lists.infradead.org
Subject: Re: [PATCH v2 0/4] kexec-tools RISC-V port
Date: Mon, 5 May 2025 14:02:59 +0300	[thread overview]
Message-ID: <d7cff5d9-e36a-4b7f-95c4-9f5d170f2c46@ics.forth.gr> (raw)
In-Reply-To: <20250422162304.169431-1-bjorn@kernel.org>

On 4/22/25 19:22, Björn Töpel wrote:
> From: Björn Töpel <bjorn@rivosinc.com>
> 
> Hi!
> 
> *Patch history*
> 
> v1: https://lore.kernel.org/kexec/20250409201428.648717-1-bjorn@kernel.org/
> v2: Added Github Actions support for riscv64 (Simon)
>      Sorted filenames in Makefile (Simon)
>      Added missing dist files (Simon)
>      Fixed mips build (Simon)
> 
> Here's a passed CI run with this series on master:
> https://github.com/bjoto/kexec-tools/actions/runs/14597988952/job/40948715214
> 
> 
> *Cover*
> 
> This is an attempt to finally get the RISC-V patches for kexec-tools
> upstream.
> 
> Simon suggested in [1] that:
> 
>> In my mind the big question is how to move RISC-V support from that
>> branch, to being merged into main.
>>
>> IIRC there were some issues that needed to be addressed. Perhaps they
>> are all addressed by this series, and with some appropriate squashing
>> we can move forwards with a series based on main?
> 
> I talked to Nick last week, and he suggested that we'd work the RISC-V
> collab Github [2], but I think it's just easier to do it on the list.
> 
> I've been collecting a number of different trees out there, and tried
> to group them in a series.
> 
> Given that there is not support for RISC-V upstream yet, I didn't see
> the need to carry all the fixes/updates ("development history") as
> separate commits -- it doesn't help bugtracking/bisectability.
> 
> Instead the first commit message is a big one, and tries to give
> attribution to all involved parties. Input/thoughts are very much
> welcome!
> 
> To properly test this on RISC-V, the upstream Linux kernel has most
> things in 6.15-rc1, e.g.:
> commit 28093cfef5dd ("riscv/kexec_file: Handle R_RISCV_64 in purgatory relocator")
> commit 3f7023171df4 ("riscv/purgatory: 4B align purgatory_start")
> 
> To cross-build kexec-tools:
>    | ./bootstrap
>    | ./configure --host=riscv64-linux-gnu
>    | make
> 
> For some tests, additional kernel patches are needed, that as of today
> is not in 6.15-rc1:
>   * To test "kexec -s -l Image", kexec_file_load with Image support is
>     needed [3]
>   * To test "kexec -c -l vmlinux" with CONFIG_RELOCATABLE, a kbuild fix
>     is needed [4]
>   * Typically if you load initrd, or a large kernel [5] (since a bunch
>     of Reserved regions are not properly exposed).
> 
> I've tested combinations with crashkernel (-p), and regular (-c/-s + -e) for:
>   * ACPI/UEFI
>   * DT/UEFI
>   * DT
>   * w/ initrd
>   * w/o initrd
>   * ELF (userland loader + kexec_load, and kexec_file_load)
>   * Image (userland loader + kexec_load, and kexec_file_load)
> 
> I'm sure there are combinations I've missed, but at least from my POV
> we're in a pretty good shape.
> 
> All authors: Please let me know if you prefer another split of the
> patches. Or something else for that matter! ;-)
> 
> 
> Let's get the ball rolling!
> Björn
> 
> [1] https://lore.kernel.org/kexec/20230920115634.GG224399@kernel.org/
> [2] https://github.com/riscv-collab/kexec-tools.git
> [3] https://lore.kernel.org/linux-riscv/20250409193004.643839-1-bjorn@kernel.org/
> [4] https://lore.kernel.org/linux-riscv/20250408072851.90275-1-alexghiti@rivosinc.com/
> [5] https://lore.kernel.org/linux-riscv/20250409182129.634415-1-bjorn@kernel.org/
> 
> Li Zhengyu (1):
>    RISC-V: Enable kexec_file_load syscall
> 
> Nick Kossifidis (1):
>    RISC-V: Add support for riscv kexec/kdump on kexec-tools
> 
> Song Shuai (2):
>    RISC-V: Separate elf_riscv_find_pbase out
>    RISC-V: Support loading Image binary file
> 
>   .github/workflows/build.yml             |   1 +
>   configure.ac                            |   3 +
>   include/elf.h                           |   1 +
>   kexec/Makefile                          |   1 +
>   kexec/arch/mips/Makefile                |   2 +
>   kexec/arch/riscv/Makefile               |  38 ++
>   kexec/arch/riscv/crashdump-riscv.c      | 140 +++++++
>   kexec/arch/riscv/image-header.h         |  88 ++++
>   kexec/arch/riscv/include/arch/options.h |  43 ++
>   kexec/arch/riscv/iomem.h                |  10 +
>   kexec/arch/riscv/kexec-elf-riscv.c      | 184 +++++++++
>   kexec/arch/riscv/kexec-image-riscv.c    |  95 +++++
>   kexec/arch/riscv/kexec-riscv.c          | 526 ++++++++++++++++++++++++
>   kexec/arch/riscv/kexec-riscv.h          |  53 +++
>   kexec/dt-ops.c                          | 442 +++++++++++++++++++-
>   kexec/dt-ops.h                          |   7 +
>   kexec/kexec-syscall.h                   |   7 +
>   purgatory/Makefile                      |   1 +
>   purgatory/arch/riscv/Makefile           |   7 +
>   19 files changed, 1648 insertions(+), 1 deletion(-)
>   create mode 100644 kexec/arch/riscv/Makefile
>   create mode 100644 kexec/arch/riscv/crashdump-riscv.c
>   create mode 100644 kexec/arch/riscv/image-header.h
>   create mode 100644 kexec/arch/riscv/include/arch/options.h
>   create mode 100644 kexec/arch/riscv/iomem.h
>   create mode 100644 kexec/arch/riscv/kexec-elf-riscv.c
>   create mode 100644 kexec/arch/riscv/kexec-image-riscv.c
>   create mode 100644 kexec/arch/riscv/kexec-riscv.c
>   create mode 100644 kexec/arch/riscv/kexec-riscv.h
>   create mode 100644 purgatory/arch/riscv/Makefile
> 
> 
> base-commit: 14f48ea80e510e5af79ca6c46fa28e99a3695d1c


Thanks for doing this :-)

Regards,
Nick

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

      parent reply	other threads:[~2025-05-05 11:04 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-22 16:22 [PATCH v2 0/4] kexec-tools RISC-V port Björn Töpel
2025-04-22 16:22 ` [PATCH v2 1/4] RISC-V: Add support for riscv kexec/kdump on kexec-tools Björn Töpel
2025-04-22 16:22 ` [PATCH v2 2/4] RISC-V: Enable kexec_file_load syscall Björn Töpel
2025-04-22 16:22 ` [PATCH v2 3/4] RISC-V: Separate elf_riscv_find_pbase out Björn Töpel
2025-04-22 16:23 ` [PATCH v2 4/4] RISC-V: Support loading Image binary file Björn Töpel
2025-04-23 16:13 ` [PATCH v2 0/4] kexec-tools RISC-V port Simon Horman
2025-05-05 11:02 ` Nick Kossifidis [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d7cff5d9-e36a-4b7f-95c4-9f5d170f2c46@ics.forth.gr \
    --to=mick@ics.forth.gr \
    --cc=bjorn@kernel.org \
    --cc=bjorn@rivosinc.com \
    --cc=dyoung@redhat.com \
    --cc=horms@kernel.org \
    --cc=horms@verge.net.au \
    --cc=kexec@lists.infradead.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=lizhengyu3@huawei.com \
    --cc=songshuaishuai@tinylab.org \
    --cc=xianting.tian@linux.alibaba.com \
    --cc=yixun.lan@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox