On Wed, Feb 24, 2021 at 4:13 pm, Greg Gallagher <[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-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_timer.c
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_timer.h
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/irq.h
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