On Thu, Feb 25, 2021 at 3:15 pm, Greg Gallagher <[email protected]> wrote:


On Wed, Feb 24, 2021 at 8:42 PM Gabriel Dinse <[email protected] <mailto:[email protected]>> wrote:


On Wed, Feb 24, 2021 at 4:13 pm, Greg Gallagher <[email protected] <mailto:[email protected]>> wrote:


On Wed, Feb 24, 2021 at 4:10 PM Gabriel Dinse <[email protected] <mailto:[email protected]>> wrote:


On Wed, Feb 24, 2021 at 3:43 pm, Greg Gallagher <[email protected] <mailto:[email protected]>> wrote:


On Wed, Feb 24, 2021 at 3:42 PM Gabriel Dinse <[email protected] <mailto:[email protected]>> wrote:



On Wed, Feb 24, 2021 at 3:40 pm, Greg Gallagher <[email protected] <mailto:[email protected]>> wrote:


On Wed, Feb 24, 2021 at 3:33 PM Gabriel Dinse <[email protected] <mailto:[email protected]>> wrote:



On Wed, Feb 24, 2021 at 12:05 am, Greg Gallagher <[email protected] <mailto:[email protected]>> wrote:


On Mon, Feb 22, 2021 at 6:30 PM Gabriel Dinse <[email protected] <mailto:[email protected]>> wrote:


On Mon, Feb 22, 2021 at 6:08 pm, Greg Gallagher <[email protected] <mailto:[email protected]>> wrote:


On Mon, Feb 22, 2021 at 5:44 PM Gabriel Dinse <[email protected] <mailto:[email protected]>> wrote:


On Mon, Feb 22, 2021 at 5:26 pm, Greg Gallagher <[email protected] <mailto:[email protected]>> wrote:


On Mon, Feb 22, 2021 at 3:19 PM Gabriel Dinse <[email protected] <mailto:[email protected]>> wrote:


On Mon, Feb 22, 2021 at 9:12 am, Greg Gallagher <[email protected] <mailto:[email protected]>> wrote:


On Mon, Feb 22, 2021 at 5:15 AM Gabriel Dinse via Xenomai <[email protected] <mailto:[email protected]>> 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-0patch

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 <http://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


I'm trying to compile it now for arm64. But we don't have default configs in arm64/ folder (like multi_v7)

Command I used for 5.4.93 are (toolchain bin/ added to PATH):
../linux-patched $ export ARCH=arm
../linux-patched $ export CROSS_COMPILE=arm-none-linux-gnueabihf-
../linux-patched $ make multi_v7_defconfig
../linux-patched $ make zImage modules dtbs -j12

Reply via email to