Use Ixora's SATA port for PCIe

Hello,

I am using Apalis iMX8 SOM (Wifi/BT version) and Ixora V1.3 (V1.2) carrier board to build a custom Yocto build. I am trying to enable a second PCIe on the Ixora.
It seems like it is possible to disable the on SOM wifi and disable SATA and use the port for PCIe based on this table from the Apalis iMX8 manual:


Can someone help me with the necessary changes to the Ixora device tree to make this work?

Many thanks!

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


To enable a second PCIe on the Ixora carrier board by disabling the on-SOM WiFi and SATA, you will need to make changes to the device tree. Here are the steps to modify the device tree for the Apalis iMX8 SOM on the Ixora carrier board:

  1. Disable the On-SOM WiFi:

    • Locate the device tree node for the WiFi module and disable it. This is typically done by setting the status property to disabled.
  2. Disable the SATA Interface:

    • Similarly, locate the device tree node for the SATA interface and disable it by setting the status property to disabled.
  3. Enable the Second PCIe Interface:

    • Find the device tree node for the second PCIe interface and enable it by setting the status property to okay.

Here is an example of how you might modify the device tree:

&pcie1 {
    status = "okay";
};

&pcie2 {
    status = "okay";
};

&wifi {
    status = "disabled";
};

&sata {
    status = "disabled";
};

Steps to Apply the Changes:

  1. Locate the Device Tree Source (DTS) File:

    • The device tree source files are usually located in the arch/arm64/boot/dts/freescale/ directory of your Yocto build environment.
  2. Edit the DTS File:

    • Open the appropriate DTS file for the Apalis iMX8 SOM and Ixora carrier board in a text editor and make the changes as shown above.
  3. Rebuild the Device Tree Blob (DTB):

    • After making the changes, rebuild the device tree blob by running the appropriate build commands in your Yocto environment.
  4. Deploy the New DTB:

    • Copy the newly built DTB file to the boot partition of your device.
  5. Update U-Boot Environment:

    • Ensure that U-Boot is configured to load the new DTB file.
  6. Reboot the System:

    • Reboot the system to apply the changes.

Example Commands:

# Navigate to the Yocto build directory
cd /path/to/yocto/build

# Edit the device tree source file
vim arch/arm64/boot/dts/freescale/imx8-apalis-ixora.dts

# Rebuild the device tree blob
bitbake -c compile -f virtual/kernel
bitbake -c deploy virtual/kernel

# Copy the new DTB to the boot partition
cp /path/to/build/tmp/deploy/images/apalis-imx8/imx8-apalis-ixora.dtb /media/boot/

# Update U-Boot environment if necessary
fw_setenv fdt_file imx8-apalis-ixora.dtb

# Reboot the system
reboot

Please refer to the Apalis iMX8 and Ixora carrier board manuals for specific details on the device tree nodes and properties. If you encounter any issues, consult the Toradex community forums or support for further assistance.

Please, also check if these links can help you solve your problem:

Help to integrate a custom kernel into a Torizon Core Image.

Please note that the USBO1_SSxx/PCIE1_xx signals are not routed to the X1 module edge connector on Apalis imx8 modules with WiFi/BT , so disabling the onboard WiFi module will not help.
The SATA lines :

could theoretically be used as a second PCIe interface, but they are not routed to the Ixora PCIe connector X25, and the mSATA connector X23 lacks PCIe clock signals."

Hi Alex,

Thanks so much for getting back to me.

I’m trying to use X23 as a second PCIe slot. Would you be able to help with these two questions:

  1. What hardware modifications do I need to make to the Ixora design to bring clock signals to X23?
  2. How do I change the device tree files to apply the hardware changes?

Thanks again for your help!