Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx> writes: > On Thu, Dec 21, 2023 at 08:57:55AM +0100, Gregory CLEMENT wrote: >> I do not oppose the addition of a new platform, even though, like >> Jiaxun, I would prefer to avoid duplicating code. The only thing >> preventing the use of the same kernel for EyeQ5 and other platforms is >> the starting address. > > there shouldn't be code duplication. > > My rough idea would be something like Thanks for the feedback, I am going to test it. > > diff --git a/arch/mips/Kbuild b/arch/mips/Kbuild > index af2967bffb73..d683993ed331 100644 > --- a/arch/mips/Kbuild > +++ b/arch/mips/Kbuild > @@ -17,6 +17,7 @@ obj- := $(platform-y) > # mips object files > # The object files are linked as core-y files would be linked > > +obj-y += generic/ > obj-y += kernel/ > obj-y += mm/ > obj-y += net/ > diff --git a/arch/mips/generic/Makefile b/arch/mips/generic/Makefile > index e37a59bae0a6..56011d738441 100644 > --- a/arch/mips/generic/Makefile > +++ b/arch/mips/generic/Makefile > @@ -4,9 +4,9 @@ > # Author: Paul Burton <paul.burton@xxxxxxxx> > # > > -obj-y += init.o > -obj-y += irq.o > -obj-y += proc.o > +obj-$(CONFIG_MACH_GENERIC_CORE) += init.o > +obj-$(CONFIG_MACH_GENERIC_CORE) += irq.o > +obj-$(CONFIG_MACH_GENERIC_CORE) += proc.o > > obj-$(CONFIG_YAMON_DT_SHIM) += yamon-dt.o > obj-$(CONFIG_LEGACY_BOARD_SEAD3) += board-sead3.o > > so everyboady needing these parts of a generic kernel is able > to take it. > >> Therefore, if it were possible to have a relocatable kernel, this >> issue would disappear. > > yes. There is support for relocatable kernel, so what are we missing > there ? But in arch/mips/generic/Platform we have: load-$(CONFIG_MIPS_GENERIC) += 0xffffffff80100000 So, the load address is defined during compilation; for example, I don't think there is such a mechanism currently for ARM. hat's what I mean by 'relocatable,' but perhaps it's not exactly what you have in mind. Gregory -- Gregory Clement, Bootlin Embedded Linux and Kernel engineering http://bootlin.com