I'd like to build the IMX390 and TI960 drivers. These are not supported in master branch. They are supported in iotg_ipu6 branch which seems to be maintained by @zouxiaoh
The instructions to build in-tree produce a kernel build which does not include imx390.ko or ti960.ko. And there are no instructions on how to enable these drivers. The C files exist (imx390.c, ti960.c), but they are not referenced by any Makefiles or Kconfig. If I use instructions from the tgl_manchester branch, the build fails.
Read the Getting Started Guides for Alder, Raptor, and Meteor Lake to understand the BKC kernel code. The build procedure differs per processor, but the basic process for all is to check out Intel's linux-kernel-overlay project, switch to a specific branch, and then run the build script. I've tried three branches which all build successfully:
lts2021-ubuntu (kernel 5.15.137 per Alder Lake Getting Started Guide)
After building the base kernel, step 2 is to copy the ipu6-drivers code into the kernel tree and rebuild. This also works.
However, trying to enable imx390 and ti960 drivers results in a failed build.
# Step 1: Build kernel 6.5
cd ~
git clone https://github.com/intel/linux-kernel-overlay.git
cd linux-kernel-overlay/
git checkout mainline-tracking-overlay-v6.5-ubuntu-240122T064042Z
./build.sh # success
# Step 2: Add ipu6-drivers from iotg_ipu6 branch and rebuild kernel 6.5
cd ~
git clone https://github.com/intel/ipu6-drivers.git
cd ipu6-drivers/
git checkout iotg_ipu6
BUILDDIR=~/linux-kernel-overlay/build/linux-kernel-v6.5
cp -r include/ $BUILDDIR
cp -r drivers/ $BUILDDIR
cd $BUILDDIR
make olddefconfig
make -j4 bindeb-pkg # success
# Step 3: Enable IMX390 and TI960 drivers and rebuild kernel 6.5 - fail
nano drivers/media/i2c/Kconfig # Add configs for VIDEO_IMX390 and VIDEO_TI960
nano drivers/media/i2c/Makefile # Add ti960-objs, obj-$(CONFIG_VIDEO_TI960), and obj-$(CONFIG_VIDEO_IMX390)
nano .config # Enable CONFIG_VIDEO_IMX390 and CONFIG_VIDEO_TI960
make olddefconfig
make -j4 bindeb-pkg # Fail
Possibly related: I noticed 8 unmerged pull requests directed to the iotg_ipu6 branch courtesy of @dmipx and @mjchen20220511. Would any of these help? They do not seem IMX390/TI960 related.
I'd like to build the IMX390 and TI960 drivers. These are not supported in master branch. They are supported in iotg_ipu6 branch which seems to be maintained by @zouxiaoh
The instructions to build in-tree produce a kernel build which does not include imx390.ko or ti960.ko. And there are no instructions on how to enable these drivers. The C files exist (imx390.c, ti960.c), but they are not referenced by any Makefiles or Kconfig. If I use instructions from the tgl_manchester branch, the build fails.
imx390_build_fail.log
It looks like kernel API changes have broken these drivers which have not been updated in a long time. Are they maintained?
What I've tried:
uname -r
returns5.15.0-1055-intel-iotg
.Possibly related: I noticed 8 unmerged pull requests directed to the iotg_ipu6 branch courtesy of @dmipx and @mjchen20220511. Would any of these help? They do not seem IMX390/TI960 related.