Thanks a lot for the answer! It seems like using `KCONFIG_MODE = "--alldefconfig"` with `KBUILD_DEFCONFIG = "msm8909_defconfig"` now ends up with the same kind of errors as when I use the defconfig from the downstream kernel [1], i.e.: ``` | /tmp/ccz8jKgm.s: Assembler messages: | /tmp/ccz8jKgm.s:985: Error: .err encountered ``` Could it be related to the tuning, e.g. I'm somehow defining a wrong toolchain in my machine configuration [2] and it fails to build? I was thinking about the tune-cortexa7.inc include, though it seems to me that the apq8009 is a cortexa7 [3]: > The Qualcomm Snapdragon 212 APQ8009 is an entry level SoC for Android based tablets and smartphones. It contains four ARM Cortex-A7 CPU cores (quad core) [1]: https://github.com/parrot-opensource/skycontroller3-opensource/blob/master/sources/linux-3.18.31/linux.config [2]: https://github.com/JonasVautherin/meta-skycontroller3/blob/main/conf/machine/skycontroller3.conf#L32 [3]: https://www.notebookcheck.net/Qualcomm-Snapdragon-212-APQ8009-SoC-Benchmarks-and-Specs.169859.0.html Best, On Sat, Jan 23, 2021 at 11:06 AM Paul Barker wrote: > On Sat, 23 Jan 2021 at 02:29, Jonas Vautherin > wrote: > > > > As a learning experience, I am trying to create a BSP for a device I own > and whose downstream kernel is published. The device in question is the > Parrot Skycontroller3, and the sources are available here. > > > > Let me start by sharing my issue. When I build the kernel with `bitbake > virtual/kernel`, it fails with errors like: > > > > ``` > > | AS arch/arm/lib/backtrace.o > > | AS arch/arm/lib/bswapsdi2.o > > | AS arch/arm/lib/call_with_stack.o > > | /tmp/ccz8jKgm.s: Assembler messages: > > | /tmp/ccz8jKgm.s:985: Error: .err encountered > > | /tmp/ccz8jKgm.s:1033: Error: .err encountered > > | /tmp/ccz8jKgm.s:6812: Error: .err encountered > > ``` > > > > My layer is available here. > > > > I created it getting inspiration from meta-raspberrypi and meta-qti-bsp, > which seems to have the same CPU: apq8009. According to the Parrot sources, > my device runs a Qualcomm apq8009/msm89090 cpu. In my repo, I use as a > defconfig file the linux.config that is available in the Parrot sources (I > copied it in my kernel recipe under `files/defconfig` and added it to > SRC_URI). > > > > The Parrot sources also refer to `LINUX_DEFAULT_CONFIG_TARGET := > msm8909_defconfig`, so I tried to set `KBUILD_DEFCONFIG = > "msm8909_defconfig"`, but that is failing with different errors, such as: > > > > ``` > > error: 'VM_ARM_DMA_CONSISTENT' undeclared (first use in this function); > did you mean 'DMA_ATTR_NON_CONSISTENT'? > > ``` > > > > or > > > > ``` > > error: 'L_PTE_YOUNG' undeclared > > ``` > > > > As a side note, their `drivers/Kconfig` seemed invalid, so I patched it. > > > > I am a bit lost now, not completely sure where my issues come from. I > realize that changing the defconfig has quite some impact (I get different > errors), and also that my machine configuration may be completely wrong (I > am essentially guessing from the fact that it is an apq8009/msm8909, but > for instance the tuning I just copied from meta-qti-bsp, which may be > invalid). > > > > I would be glad if I could get hints about debugging this. Again, it is > really a learning project: I would like to learn how to create a BSP from a > downstream kernel. > > I think setting `KBUILD_DEFCONFIG = "msm8909_defconfig"` is likely the > correct approach here. What you may be missing though is the correct > value for KCONFIG_MODE. By default, the supplied defconfig file is > copied to .config but dependencies between config options aren't > resolved. You need to set `KCONFIG_MODE = "--alldefconfig"` to get the > equivalent of `make msm8909_defconfig` to occur. See > > https://github.com/agherzan/meta-raspberrypi/blob/master/recipes-kernel/linux/linux-raspberrypi.inc#L19 > for an idea of how this is done for Raspberry Pi. > > Thanks, > > -- > Paul Barker > Konsulko Group >