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