On Wed, Feb 24, 2021 at 8:42 PM Gabriel Dinse <gabriel_di...@hotmail.com> wrote:
> > > On Wed, Feb 24, 2021 at 4:13 pm, Greg Gallagher <g...@embeddedgreg.com> > wrote: > > > > On Wed, Feb 24, 2021 at 4:10 PM Gabriel Dinse <gabriel_di...@hotmail.com> > wrote: > >> >> >> On Wed, Feb 24, 2021 at 3:43 pm, Greg Gallagher <g...@embeddedgreg.com> >> wrote: >> >> >> >> On Wed, Feb 24, 2021 at 3:42 PM Gabriel Dinse <gabriel_di...@hotmail.com> >> wrote: >> >> >>> >>> On Wed, Feb 24, 2021 at 3:40 pm, Greg Gallagher <g...@embeddedgreg.com> >>> wrote: >>> >>> >>> >>> On Wed, Feb 24, 2021 at 3:33 PM Gabriel Dinse <gabriel_di...@hotmail.com> >>> wrote: >>> >>> >>>> >>>> On Wed, Feb 24, 2021 at 12:05 am, Greg Gallagher <g...@embeddedgreg.com> >>>> wrote: >>>> >>>> >>>> >>>> On Mon, Feb 22, 2021 at 6:30 PM Gabriel Dinse < >>>> gabriel_di...@hotmail.com> wrote: >>>> >>>> >>>>> >>>>> On Mon, Feb 22, 2021 at 6:08 pm, Greg Gallagher <g...@embeddedgreg.com> >>>>> wrote: >>>>> >>>> >>>>> >>>>> On Mon, Feb 22, 2021 at 5:44 PM Gabriel Dinse < >>>>> gabriel_di...@hotmail.com> wrote: >>>>> >>>>> >>>>>> >>>>>> On Mon, Feb 22, 2021 at 5:26 pm, Greg Gallagher < >>>>>> g...@embeddedgreg.com> wrote: >>>>>> >>>>>> >>>>>> >>>>>> On Mon, Feb 22, 2021 at 3:19 PM Gabriel Dinse < >>>>>> gabriel_di...@hotmail.com> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Mon, Feb 22, 2021 at 9:12 am, Greg Gallagher < >>>>>>> g...@embeddedgreg.com> wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Mon, Feb 22, 2021 at 5:15 AM Gabriel Dinse via Xenomai < >>>>>>> xenomai@xenomai.org> wrote: >>>>>>> >>>>>>>> > This is a 32-bit build running on the rpi3? >>>>>>>> Yes, it is >>>>>>>> >>>>>>>> > I have some ipipe fixes coming, but I don't think these are >>>>>>>> ipipe >>>>>>>> related. >>>>>>>> > Can you show how you patched and built your kernel? I'll try to >>>>>>>> reproduce >>>>>>>> > on my end. What compiler are you using? >>>>>>>> >>>>>>>> For patching the kernel, I did: >>>>>>>> xenomai-3.1 on main ➜ ./scripts/prepare-kernel.sh >>>>>>>> --linux=~/Projects/linux-kernels/linux-5.4.93-ipipe --arch=arm >>>>>>>> --ipipe=~/Projects/linux-kernels/ipipe-core-5.4.93-arm-0.patch >>>>>>>> >>>>>>>> The config I'm using is multi_v7_defconfig modified a little bit. >>>>>>>> The >>>>>>>> same configuration was fine for Vanilla kernel using the same >>>>>>>> version >>>>>>>> (5.4.93), as I was pretending to compare both. >>>>>>>> >>>>>>>> Toolchain I'm using, selected directly on buildroot-2020.02.11 long >>>>>>>> term is: Linaro ARM 2018.05 >>>>>>> >>>>>>> >>>>>>> Okay, I used that defconfig during the port so there shouldn’t be a >>>>>>> problem. Let me try with my repos and I’ll let you know shortly. >>>>>>> >>>>>>> >>>>>>> Ok, sure >>>>>>> Let me know if I need to change configuration on my side from >>>>>>> compiling it again. >>>>>>> >>>>>>> -Greg >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> I built directly from the ipipe-arm tree, using Xenomai 3.1 ang gcc >>>>>> 10. Other than a few warnings that I'll silence later everything built >>>>>> okay. Let me take a look at the patch and see if something went wrong >>>>>> there. In the meantime if you want to sync the ipipe-arm tree and use >>>>>> the >>>>>> ipipe/5.4.y patch you should be able to build no problem. In the >>>>>> meantime >>>>>> I'll look at the patch, but I think our CI system uses the patch and >>>>>> hasn't >>>>>> seen any build issues. If you could run your patch command again with >>>>>> --verbose and send the output maybe that may tell us something. >>>>>> >>>>>> Thanks >>>>>> >>>>>> Greg >>>>>> >>>>>> >>>>>> Could the problem be related to the toolchain used (Linaro ARM >>>>>> 2018.05)? >>>>>> >>>>>> Another thing: when doing the Kernel configuration, I get the warning: >>>>>> *** WARNING! Page migration (CONFIG_MIGRATION) may increase *** >>>>>> *** latency. *** >>>>>> But I'm not able to disable "Page migration", nor "Contiguous Memory >>>>>> Allocator", in "Memory Management options" menu. >>>>>> >>>>>> About running with --verbose, I got: >>>>>> >>>>>> xenomai-3.1 $ ./scripts/prepare-kernel.sh >>>>>> --linux=~/Projects/linux-kernels/linux-5.4.93-ipipe --arch=arm >>>>>> --ipipe=~/Projects/linux-kernels/ipipe-core-5.4.93-arm-0.patch --verbose >>>>>> Preparing kernel 5.4.94 in >>>>>> /home/gabriel/Projects/linux-kernels/linux-5.4.93-ipipe >>>>>> prepare-kernel.sh: no I-pipe support found. >>>>>> checking file Documentation/ipipe-arm.rst >>>>>> checking file Documentation/ipiperst >>>>>> checking file arch/arm/Kconfig >>>>>> checking file arch/arm/common/it8152.c >>>>>> checking file arch/arm/include/asm/arch_timerh >>>>>> checking file arch/arm/include/asm/assembler.h >>>>>> checking file arch/arm/include/asm/atomic.h >>>>>> checking file arch/arm/include/asm/bitops.h >>>>>> checking file arch/arm/include/asm/cmpxchg.h >>>>>> checking file arch/arm/include/asm/efi.h >>>>>> checking file arch/arm/include/asm/entry-macro-multi.S >>>>>> checking file arch/arm/include/asm/hw_irq.h >>>>>> checking file arch/arm/include/asm/ipipe.h >>>>>> checking file arch/arm/include/asm/ipipe_base.h >>>>>> checking file arch/arm/include/asm/ipipe_hwirq.h >>>>>> checking file arch/arm/include/asm/irq.h >>>>>> checking file arch/arm/include/asm/irqflags.h >>>>>> checking file arch/arm/include/asm/mmu_context.h >>>>>> checking file arch/arm/include/asm/percpu.h >>>>>> checking file arch/arm/include/asm/setup.h >>>>>> checking file arch/arm/include/asm/switch_to.h >>>>>> checking file arch/arm/include/asm/thread_info.h >>>>>> checking file arch/arm/include/asm/uaccess.h >>>>>> checking file arch/arm/include/uapi/asm/unistd.h >>>>>> checking file arch/arm/kernel/Makefile >>>>>> checking file arch/arm/kernel/asm-offsets.c >>>>>> checking file arch/arm/kernel/devtree.c >>>>>> checking file arch/arm/kernel/entry-armv.S >>>>>> checking file arch/arm/kernel/entry-common.S >>>>>> checking file arch/arm/kernel/entry-header.S >>>>>> >>>>> checking file arch/arm/kernel/ipipec >>>>>> >>>>> checking file arch/arm/kernel/ipipe_tsc.c >>>>>> checking file arch/arm/kernel/ipipe_tsc_asm.S >>>>>> checking file arch/arm/kernel/perf_callchain.c >>>>>> checking file arch/arm/kernel/process.c >>>>>> checking file arch/arm/kernel/ptrace.c >>>>>> checking file arch/arm/kernel/raw_printk.c >>>>>> checking file arch/arm/kernel/setup.c >>>>>> checking file arch/arm/kernel/signal.c >>>>>> checking file arch/arm/kernel/smp.c >>>>>> checking file arch/arm/kernel/smp_twd.c >>>>>> checking file arch/arm/kernel/traps.c >>>>>> checking file arch/arm/kernel/vdso.c >>>>>> checking file arch/arm/mach-at91/Kconfig >>>>>> checking file arch/arm/mach-davinci/Kconfig >>>>>> checking file arch/arm/mach-davinci/time.c >>>>>> checking file arch/arm/mach-imx/Kconfig >>>>>> checking file arch/arm/mach-imx/avic.c >>>>>> checking file arch/arm/mach-imx/gpc.c >>>>>> checking file arch/arm/mach-imx/mach-imx51.c >>>>>> checking file arch/arm/mach-imx/mach-imx53.c >>>>>> checking file arch/arm/mach-imx/tzic.c >>>>>> checking file arch/arm/mach-omap2/Kconfig >>>>>> checking file arch/arm/mach-omap2/omap-wakeupgen.c >>>>>> checking file arch/arm/mach-omap2/prm_common.c >>>>>> checking file arch/arm/mach-omap2/timer.c >>>>>> checking file arch/arm/mach-socfpga/Kconfig >>>>>> checking file arch/arm/mach-sti/Kconfig >>>>>> checking file arch/arm/mach-sunxi/Kconfig >>>>>> checking file arch/arm/mach-zynq/Kconfig >>>>>> checking file arch/arm/mm/Kconfig >>>>>> checking file arch/arm/mm/alignment.c >>>>>> checking file arch/arm/mm/cache-l2x0.c >>>>>> checking file arch/arm/mm/context.c >>>>>> checking file arch/arm/mm/fault.c >>>>>> checking file arch/arm/plat-omap/Kconfig >>>>>> checking file arch/arm/vfp/entry.S >>>>>> checking file arch/arm/vfp/vfphwS >>>>>> checking file arch/arm/vfp/vfpmodule.c >>>>>> checking file drivers/base/core.c >>>>>> checking file drivers/base/regmap/regmap-irqc >>>>>> checking file drivers/clocksource/Kconfig >>>>>> >>>>> checking file drivers/clocksource/arm_arch_timerc >>>>>> >>>>> checking file drivers/clocksource/arm_global_timer.c >>>>>> checking file drivers/clocksource/bcm2835_timerc >>>>>> checking file drivers/clocksource/dw_apb_timer.c >>>>>> checking file drivers/clocksource/dw_apb_timer_of.c >>>>>> checking file drivers/clocksource/timer-atmel-tcb.c >>>>>> checking file drivers/clocksource/timer-imx-gpt.c >>>>>> checking file drivers/clocksource/timer-sp804.c >>>>>> checking file drivers/clocksource/timer-ti-dm.c >>>>>> checking file drivers/cpuidle/Kconfig >>>>>> checking file drivers/cpuidle/cpuidle.c >>>>>> checking file drivers/gpio/gpio-davinci.c >>>>>> checking file drivers/gpio/gpio-mvebu.c >>>>>> Hunk #8 succeeded at 1238 (offset -5 lines). >>>>>> Hunk #9 succeeded at 1248 (offset -5 lines). >>>>>> checking file drivers/gpio/gpio-mxc.c >>>>>> checking file drivers/gpio/gpio-omap.c >>>>>> checking file drivers/gpio/gpio-pl061.c >>>>>> checking file drivers/gpio/gpio-zynq.c >>>>>> checking file drivers/gpu/ipu-v3/ipu-common.c >>>>>> checking file drivers/gpu/ipu-v3/ipu-prv.h >>>>>> checking file drivers/irqchip/irq-atmel-aic.c >>>>>> checking file drivers/irqchip/irq-atmel-aic5.c >>>>>> checking file drivers/irqchip/irq-bcm2835.c >>>>>> checking file drivers/irqchip/irq-bcm2836.c >>>>>> checking file drivers/irqchip/irq-bcm7120-l2.c >>>>>> checking file drivers/irqchip/irq-brcmstb-l2.c >>>>>> checking file drivers/irqchip/irq-crossbar.c >>>>>> checking file drivers/irqchip/irq-dw-apb-ictl.c >>>>>> checking file drivers/irqchip/irq-gic-v2m.c >>>>>> checking file drivers/irqchip/irq-gic-v3.c >>>>>> checking file drivers/irqchip/irq-gic.c >>>>>> checking file drivers/irqchip/irq-imx-gpcv2.c >>>>>> checking file drivers/irqchip/irq-omap-intc.c >>>>>> checking file drivers/irqchip/irq-stm32-exti.c >>>>>> checking file drivers/irqchip/irq-sunxi-nmi.c >>>>>> checking file drivers/irqchip/irq-versatile-fpga.c >>>>>> checking file drivers/irqchip/irq-vic.c >>>>>> checking file drivers/memory/omap-gpmc.c >>>>>> checking file drivers/mfd/tps65217.c >>>>>> checking file drivers/misc/Kconfig >>>>>> checking file drivers/pci/controller/dwc/pcie-designware-host.c >>>>>> checking file drivers/pci/controller/pcie-altera.c >>>>>> checking file drivers/pinctrl/bcm/pinctrl-bcm2835.c >>>>>> checking file drivers/pinctrl/pinctrl-at91.c >>>>>> checking file drivers/pinctrl/pinctrl-rockchip.c >>>>>> >>>>> checking file drivers/pinctrl/pinctrl-singlec >>>>>> >>>>> checking file drivers/pinctrl/sunxi/pinctrl-sunxi.c >>>>>> checking file drivers/pinctrl/sunxi/pinctrl-sunxi.h >>>>>> checking file drivers/soc/dove/pmu.c >>>>>> checking file drivers/tty/serial/8250/8250_core.c >>>>>> checking file drivers/tty/serial/amba-pl011.c >>>>>> checking file drivers/tty/serial/xilinx_uartps.c >>>>>> checking file fs/exec.c >>>>>> checking file include/asm-generic/atomic.h >>>>>> checking file include/asm-generic/cmpxchg-localh >>>>>> checking file include/asm-generic/ipipe.h >>>>>> checking file include/asm-generic/percpu.h >>>>>> checking file include/asm-generic/switch_to.h >>>>>> checking file include/clocksource/timer-sp804.h >>>>>> checking file include/clocksource/timer-ti-dm.h >>>>>> checking file include/ipipe/setup.h >>>>>> checking file include/ipipe/thread_infoh >>>>>> checking file include/linux/clockchips.h >>>>>> checking file include/linux/console.h >>>>>> checking file include/linux/dw_apb_timerh >>>>>> checking file include/linux/ftrace.h >>>>>> checking file include/linux/gpio/driver.h >>>>>> checking file include/linux/hardirqh >>>>>> checking file include/linux/interrupt.h >>>>>> checking file include/linux/ipipe.h >>>>>> checking file include/linux/ipipe_debug.h >>>>>> checking file include/linux/ipipe_domain.h >>>>>> checking file include/linux/ipipe_lock.h >>>>>> >>>>> checking file include/linux/ipipe_tickdevh >>>>>> >>>>> checking file include/linux/ipipe_trace.h >>>>>> checking file include/linux/irqh >>>>>> checking file include/linux/irqchip/arm-gic-common.h >>>>>> checking file include/linux/irqdesc.h >>>>>> checking file include/linux/irqflags.h >>>>>> checking file include/linux/irqnr.h >>>>>> checking file include/linux/kernel.h >>>>>> checking file include/linux/kvm_host.h >>>>>> checking file include/linux/preempth >>>>>> checking file include/linux/printk.h >>>>>> checking file include/linux/rwlock.h >>>>>> checking file include/linux/rwlock_api_smp.h >>>>>> checking file include/linux/sched.h >>>>>> checking file include/linux/sched/coredump.h >>>>>> checking file include/linux/spinlock.h >>>>>> checking file include/linux/spinlock_api_smp.h >>>>>> checking file include/linux/spinlock_up.h >>>>>> checking file include/linux/stop_machine.h >>>>>> checking file init/Kconfig >>>>>> checking file init/main.c >>>>>> checking file kernel/Makefile >>>>>> checking file kernel/context_tracking.c >>>>>> checking file kernel/debug/debug_core.c >>>>>> checking file kernel/exit.c >>>>>> checking file kernel/forkc >>>>>> checking file kernel/ipipe/Kconfig >>>>>> checking file kernel/ipipe/Kconfig.debug >>>>>> checking file kernel/ipipe/Makefile >>>>>> checking file kernel/ipipe/core.c >>>>>> >>>>> checking file kernel/ipipe/timerc >>>>>> >>>>> checking file kernel/ipipe/tracer.c >>>>>> checking file kernel/irq/chip.c >>>>>> checking file kernel/irq/dummychip.c >>>>>> checking file kernel/irq/generic-chip.c >>>>>> checking file kernel/irq/internals.h >>>>>> >>>>> checking file kernel/irq/irqdescc >>>>>> >>>>> checking file kernel/irq/manage.c >>>>>> checking file kernel/irq/msi.c >>>>>> checking file kernel/locking/lockdep.c >>>>>> checking file kernel/locking/lockdep_internals.h >>>>>> checking file kernel/locking/spinlock.c >>>>>> checking file kernel/module.c >>>>>> checking file kernel/notifier.c >>>>>> checking file kernel/panic.c >>>>>> checking file kernel/power/hibernate.c >>>>>> checking file kernel/printk/printk.c >>>>>> checking file kernel/ptrace.c >>>>>> checking file kernel/rcu/Kconfig.debug >>>>>> checking file kernel/sched/core.c >>>>>> checking file kernel/sched/idle.c >>>>>> checking file kernel/sched/sched.h >>>>>> >>>>> checking file kernel/sched/waitc >>>>>> >>>>> checking file kernel/signal.c >>>>>> checking file kernel/stop_machine.c >>>>>> checking file kernel/time/clockevents.c >>>>>> checking file kernel/time/timer.c >>>>>> checking file kernel/trace/Kconfig >>>>>> checking file kernel/trace/ftrace.c >>>>>> checking file kernel/trace/ring_buffer.c >>>>>> checking file kernel/trace/trace.c >>>>>> checking file kernel/trace/trace_clock.c >>>>>> checking file kernel/trace/trace_functions.c >>>>>> checking file kernel/trace/trace_functions_graph.c >>>>>> checking file kernel/trace/trace_preemptirq.c >>>>>> checking file lib/Kconfig.debug >>>>>> checking file lib/atomic64.c >>>>>> checking file lib/bust_spinlocksc >>>>>> checking file lib/dump_stack.c >>>>>> checking file lib/ioremap.c >>>>>> checking file lib/smp_processor_id.c >>>>>> checking file mm/memory.c >>>>>> checking file mm/mlock.c >>>>>> checking file mm/mmu_context.c >>>>>> checking file mm/mprotect.c >>>>>> checking file mm/vmalloc.c >>>>>> I-pipe core/arm #0 installed. >>>>>> Links installed. >>>>>> Build system ready >>>>>> >>>>> >>>>> Are you using a 32-bit arm compiler or the aarch64 compiler? >>>>> >>>>> -Greg >>>>> >>>>> >>>>> I'm using a 32-bit compiler >>>>> >>>> >>>> Can you send me your build commands? >>>> >>>> thanks >>>> >>>> Greg >>>> >>>> >>>> I'm using buildroot for building the image using the patched kernel. I >>>> use the default configuration "make raspberrypi3_defconfig" and setup the >>>> kernel using custom git repository (patched kernel). I tried all latest >>>> toolchains available in Buildroot, but I get the same errors when building. >>>> >>>> Thank you, >>>> Gabriel Dinse >>>> >>> this may be a buildroot issue, can you build the kernel directly with >>> just patching and building the kernel? >>> >>> -Greg >>> >>> >>> Could you please suggest what compiler I can use for compiling it >>> directly? >>> >>> >>> Gabriel Dinse >>> >> i use the arm one the is available on there site, I think it’s >> arm-Linux-none-gnueabihf- , the Linaros ones also work pretty well. >> >> Greg >> >> >> I started the kernel compilation directly, >> using gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf, >> multi_v7_defconfig applied, and I got exactly the same >> "incompatible-pointer-type" error :( >> What could I be missing? Maybe the kernel repository? ( >> git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git ) >> The patch went fine... >> Using Kernel 4.19.144, with ipipe matching this version, the compilation >> was successful, but using 5.4.93 I'm not able to make it work >> >> Thank you >> Gabriel Dinse >> > you can try the ipipe-arm repo directly. I’ll try the patch tonight and > see what happens. The CI should be using the patch, but I’ll try directly. > > Greg > > > I will probably continue using kernel 4.19.144 for now until I can figure > out what is missing on kernel 5.4.93 compilation. > But I have other question regardin rpi3 device tree. Ipipe patch for > kernel 4.9.51 has an addition of "bcm2837-rpi-3-cobalt.dts", while I > couldn't find it in more recent ipipe versions. How is the device tree > configured on newer ipipe versions (like v4.19.144 I'm using right now) if > I don't have a file like this. > > Thank you > Gabriel Dinse > So the rpi3 device tree should be in the arm64 repo, you'll have to bring it into the arm repo and enable it to be built. I don't think I've tested a 32-bit build on rpi3 since we split the trees. Can you also sent me your compiler commands when you build the 5.4.93 kernel? Thanks Greg