On Wed, Oct 26, 2022 at 10:13:48AM +0800, Xianting Tian wrote: > Hi Simon > > thanks for the comments > > 在 2022/10/21 下午11:27, Simon Horman 写道: > > On Thu, Oct 20, 2022 at 11:15:48AM +0800, Xianting Tian wrote: > > > From: Nick Kossifidis <mick@xxxxxxxxxxxx> > > > > > > This patch adds support for loading the ELF kernel image. It parses > > > the current/provided device tree to determine the system's memory > > > layout, and /proc/iomem for the various kernel segments. > > > > > > This patch was firstly developed by Nick Kossifidis, and two fixes ( > > > 1: fail to find free memory area for dtb load when using initrd image, > > > lists.infradead.org/pipermail/linux-riscv/2022-August/018398.html; > > > 2: fix memory range size calculation, > > > kexec/arch/riscv/crashdump-riscv.c:line 85 > > > ) are contributed by Yixun Lan, Xianting Tian. > > > > > > Tested on Qemu's rv64 virt machine and SoC of T-Head RISC-V Xuantie 910 CPU. > > Hi, > > > > thanks for some patch. > > > > Some minor feedback follows. > > > > Separately, I'll post a patch to add RISC-V builds to the github > > workflow. If you could include that in V3 I'd be most grateful. > > > > > Tested-by: Yixun Lan <yixun.lan@xxxxxxxxx> > > > Co-developed-by: Xianting Tian <xianting.tian@xxxxxxxxxxxxxxxxx> > > > Co-developed-by: Yixun Lan <yixun.lan@xxxxxxxxx> > > > Signed-off-by: Nick Kossifidis <mick@xxxxxxxxxxxx> > > ... > > > > > + ret = mem_regions_alloc_and_add(mem_ranges, start, > > > + end - start, type); > > mem_regions_alloc_and_add isn't always available. > > f.e. on mips this causes a build failure. > > > > Ref: https://github.com/horms/kexec-tools/actions/runs/3298491143/jobs/5440677595 > > As you know, mem_regions_sort, mem_regions_alloc_and_add are the common > funtions, > > The build error of mips is caused by this riscv patch? Yes, I think so. The workflow passes on main: https://github.com/horms/kexec-tools/actions/runs/3344523519 But not with the riscv patch applied: https://github.com/horms/kexec-tools/tree/build-test-riscv-v2 > kexec/mem_regions.c:void mem_regions_sort(struct memory_ranges *ranges) > kexec/mem_regions.h:void mem_regions_sort(struct memory_ranges *ranges); > > > kexec/mem_regions.c:int mem_regions_alloc_and_add(struct memory_ranges > *ranges, > kexec/mem_regions.h:int mem_regions_alloc_and_add(struct memory_ranges > *ranges, > > > > > ... > > > > > +int dtb_get_memory_ranges(char *dtb, struct memory_ranges *mem_ranges, struct memory_ranges *extra_ranges) > > > +{ > > ... > > > > > + mem_regions_sort(mem_ranges); > > Likewise, mem_regions_sort isn't always available. > > f.e. on mips this causes a build failure. > > > > ... > > > > > diff --git a/purgatory/arch/riscv/Makefile b/purgatory/arch/riscv/Makefile > > > new file mode 100644 > > > index 0000000..8bded71 > > > --- /dev/null > > > +++ b/purgatory/arch/riscv/Makefile > > > @@ -0,0 +1,7 @@ > > > +# > > > +# Purgatory riscv > > > +# > > > + > > > +riscv_PURGATORY_SRCS = > > > + > > > +dist += purgatory/arch/sh/Makefile $(riscv_PURGATORY_SRCS) > > s/sh/riscv/ > > > > Else the distribution tarball won't include this Makefile > > > > You can exercise this using: > > make distcheck DISTCHECK_CONFIGURE_FLAGS="--host=riscv64-linux-gnu" > thanks, I will fix this. Thanks. _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec