Can I run inference with Orca on STM32 devices?

Is there a way to connect an orca accelerator to any device by stm32 series of microcontrollers? I have the stm32mp257f-ev1 and i successfully installed degirum and degirum tools on their custom YoctoLinux distro but i am clueless to whether the connection itself it feasible via pcie converter or something similar. Thanks in advance!

Hi @alema416
Does the SoC in the system have PCIe or USB?

It has mini PCIe. Maybe with an adaptor? I have the m.2 version of orca.

@epomozov
Can you please take a look at this?

Hello @alema416,

Thank you for trying to use the ORCA accelerator with different platforms.
To make the PCIe M.2 adapter work, you need:

  1. sudo apt install flex libssl-dev libncurses-dev
  2. git clone GitHub - DeGirum/lincdadrv: CDA Linux Driver
    Source the sdk environment cross compiler toolchain install path env script
  3. environment-setup-aarch64-poky-linux
  4. The LD_FLAGS are not setup properly so unset it
  5. export LD_FLAGS=
  6. cd src/lincdadrv
  7. make BUILDDIR=/home/user/target-os-dir/build/tmp/work/imx8mpevk-poky-linux/linux-imx/5.4-r0/build

Please try to make it work. If you meet any issue, let us know. We will try to help you.
Best regards.

I will get back to you when I get my hands on the adapter. For the time being, thank you for the fast response.

I did receive a compatible adapter and when the device boots, ORCA does light up. My problem now is building the SDK so i can cross-compile the driver. I gather the relevant repos from STElectronics and YOCTO ( meta-openembedded, meta-st-stm32mp, meta-st-stm32mp-addons, poky ) and after configuring the paths I keep getting errors like: Layer stm-st-stm32mp is not compatible with the core layer which only supports these series: whinlatter (layer is compatible with scarthgap).

Hello @alema416,

Please correct me if I am wrong: You were able to compile the driver and were able to run DeGirum PySDK, but there was an issue with some STM32 dependencies.

Since your current issue seems to be related to STM32-specific Yocto layers and compatibility, we unfortunately can’t provide direct support for this. STM32 is hardware that you’re integrating independently, and we don’t have access to this platform ourselves.

Best regards.

I succesfully cross-compiled the CDA driver for STM32. I then downloaded it to my board and after connecting ORCA through the adaptor I have this situation:

(myenv1) root@stm32mp2-e3-e1-45:~# sudo lsmod | grep cda
cdapci                 36864  0
(myenv1) root@stm32mp2-e3-e1-45:~# cat /etc/group | grep dg_orca && groups | grep dg_orca
dg_orca:x:1001:root,daemon,bin,sys,sync,games,man,lp,mail,news,uucp,proxy,www-data,backup,list,irc,_apt,pipewire,systemd-timesync,systemd-resolve,polkitd,systemd-network,systemd-coredump,rpc,tee,ntp,netdata,messagebus,avahi,weston,nobody
root dg_orca
(myenv1) root@stm32mp2-e3-e1-45:~# degirum sys-info
Devices:
  N2X/CPU:
  - '@Index': 0
  TFLITE/CPU:
  - '@Index': 0
  - '@Index': 1
Software Version: 0.17.3

(myenv1) root@stm32mp2-e3-e1-45:~# dgoinfo all
dgoinfo: error: [ERROR]Device not found
No device found
dg_orca_dev.h: 63 [LCL::OrcaDevices::OrcaDevices]
(myenv1) root@stm32mp2-e3-e1-45:~# sudo lspci | grep accelerators
01:00.0 Processing accelerators: DeGirum Corp. AI Accelerator [ORCA] (rev 01)
(myenv1) root@stm32mp2-e3-e1-45:~# dgoinfo all
dgoinfo: error: [ERROR]Device not found
No device found
dg_orca_dev.h: 63 [LCL::OrcaDevices::OrcaDevices]

I think the problem is ORCA related (dg_orca_dev.h) and thats why im insisting. Thank you.

Hello @alema416 ,

It is very nice progress.

Please check one more thing:

$ ls -la /dev/cda*

If output is empty: it means the driver was not bind to the device (maybe some kernel configuration issue). You can try to make it manually:

$ echo 0000:01:00.0 | tee /sys/bus/pci/drivers/cda/bind

If it doesn’t help let’s provide the output of dmesg:

$ dmesg | grep cda

Also I suppose all commands like ‘dgoinfo’ were run with ‘sudo’ rights. Is it correct?

Best regards

this is the output: (myenv1) root@stm32mp2-e3-e1-45:~# ls -la /dev/cda*
crw-rw-rw- 1 root dg_orca 238, 0 Jan 1 2000 /dev/cda00
(myenv1) root@stm32mp2-e3-e1-45:~# echo 0000:01:00.0 | tee /sys/bus/pci/drivers/cda/bind
0000:01:00.0
tee: /sys/bus/pci/drivers/cda/bind: Device or resource busy
(myenv1) root@stm32mp2-e3-e1-45:~# dmesg | grep cda
[ 8.825528] cda 0000:01:00.0: of_irq_parse_pci: failed with rc=134
[ 8.827938] cda 0000:01:00.0: Unable to change power state from D3cold to D0, device inaccessible
[ 8.843230] cda cda00: Store resource 0 flag: 0x80000200
[ 8.843300] cda cda00: Store resource 2 flag: 0x80000200
[ 253.279096] cda cda00: bar mmap ffffacc17000 100000
[ 253.279225] cda cda00: bar mmap ffffacbf7000 20000
[ 253.333160] cda cda00: bar mmap ffffacc17000 100000
[ 253.333252] cda cda00: bar mmap ffffacbf7000 20000
[ 357.616297] cda cda00: bar mmap ffff75de7000 100000
[ 357.616415] cda cda00: bar mmap ffff7f2f0000 20000
[ 357.669423] cda cda00: bar mmap ffff75de7000 100000
[ 357.669511] cda cda00: bar mmap ffff7f2f0000 20000
[ 361.431364] cda cda00: bar mmap ffff9fa17000 100000
[ 361.431525] cda cda00: bar mmap ffff9f9f7000 20000
[ 361.482849] cda cda00: bar mmap ffff9fa17000 100000
[ 361.482940] cda cda00: bar mmap ffff9f9f7000 20000

You think it is hardware or software related? thanks for the fast response!

Hello @alema416 ,

It seems it is the issue with some PCI configuration in Linux Kernel:

[ 8.825528] cda 0000:01:00.0: of_irq_parse_pci: failed with rc=134

[ 8.827938] cda 0000:01:00.0: Unable to change power state from D3cold to D0, device inaccessible

I’m looking what can be done in this case.

Just to confirm, could you please also try:

$ cat /sys/bus/pci/drivers/cda/0000\:01\:00.0/resource

and

$ lspci -vvxxxd 1f0d:

Best regards

Here is the output:


(myenv1) root@stm32mp2-e3-e1-45:~# cat /sys/bus/pci/drivers/cda/0000:01:00.0/resource
0x0000000010200000 0x00000000102fffff 0x0000000000140204
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000010300000 0x000000001031ffff 0x0000000000140204
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
(myenv1) root@stm32mp2-e3-e1-45:~# lspci -vvxxxd 1f0d:
01:00.0 Processing accelerators: DeGirum Corp. AI Accelerator [ORCA] (rev 01)
Subsystem: DeGirum Corp. AI Accelerator [ORCA]
!!! Unknown header type 7f
Region 0: Memory at 10200000 (64-bit, non-prefetchable) [size=1M]
Region 2: Memory at 10300000 (64-bit, non-prefetchable) [size=128K]
Kernel driver in use: cda
Kernel modules: cdapci
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff


Hello @alema416 ,

Probably the issue is similar to this one PCIE-HUB chip not being detected on boot occasionally - #3 by shinichiro.adachi - Jetson Xavier NX - NVIDIA Developer Forums

Let’s try to force PCIe speed to Gen2 or Gen1 between ORCA M.2 and PCIe RootComplex.

Another option which may work unstable is PCIe ref clock.
Let’s check if the EV board uses on board 100MHz clock generator and SOC configured to use the external ref clock.
Or the EV board configured to provide 100MHz reference clock from SOC to the miniPCIe and the SOC configured to provide the reference clock.

Best regards!

Good evening. The thing is: can orca M.2 module even work on with 1 pcie lane only? The mini-pcie slot of the ST board supports 1 pcie lane (possibly Gen 2 or Gen 1 speed). The orca M.2 module has pcie Gen. 3 2x4 interface. Could this be the problem?

Hello @alema416,

PCIe devices negotiate about speed and number of using lanes. The problem can be with the ST board layout or the M.2-miniPCIe adapter, and it doesn’t allow having a stable PCIe Gen2 x1 link.

The first thing to try is: let’s replace the adapter (M.2 to miniPCIe). Another option is to force PCIe Gen1 links’ speed. This option can be done by PCIe root complex settings in the DTS file or somewhere in the Linux kernel drivers.

If it is possible, could you try to install any SSD M.2 and see that the device works stably?

Best regards.

Hello again!

After extensive experimentation my team couldn’t precisely pinpoint the root of the incompatibility. We used 2 Raspberry Pis as reference. One with ubuntu that can use ORCA properly and one with Raspian OS ( obviously doesnt work, just for comparing outputs) and also the ST device with ORCA attached via the adaptor. I pin the output of the same commands in the 3 devices for comparison here as reference if anyone else wants to continue the research, keeping in mind that i cross-compiled the cda driver for my specific device. If there is no other feedback i will close the thread and we will unfortunately have to look for another accelerator.

Thank you!

# Troubleshooting Orca Accelerator on STM32MP257F-EV1

## Raspberry Pi with Raspberry Pi OS (Linux raspberrypi 6.12.34+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.34-1+rpt1~bookworm (2025-06-26) aarch64 GNU/Linux):
```
(HI4Lines_Insp) amax@raspberrypi:~/GitHub/newbranch/HI4Lines_Insp/deploy/rpi/deploy $ dmesg | grep pcie
[    0.000000] Kernel command line: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave nvme.max_host_mem_size_mb=0  numa=fake=8 system_heap.max_order=0 smsc95xx.macaddr=2C:CF:67:C7:A9:20 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000  console=ttyAMA10,115200 console=tty1 root=PARTUUID=33f36ade-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=GR
[    0.454732] brcm-pcie 1000110000.pcie: host bridge /axi/pcie@1000110000 ranges:
[    0.454737] brcm-pcie 1000110000.pcie:   No bus range found for /axi/pcie@1000110000, using [bus 00-ff]
[    0.454744] brcm-pcie 1000110000.pcie:      MEM 0x1b80000000..0x1bffffffff -> 0x0080000000
[    0.454748] brcm-pcie 1000110000.pcie:      MEM 0x1800000000..0x1b7fffffff -> 0x0400000000
[    0.454754] brcm-pcie 1000110000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x1000000000
[    0.454757] brcm-pcie 1000110000.pcie:   IB MEM 0x1000131000..0x1000131fff -> 0xfffffff000
[    0.456081] brcm-pcie 1000110000.pcie: PCI host bridge to bus 0001:00
[    0.557568] brcm-pcie 1000110000.pcie: clkreq-mode set to safe
[    0.557571] brcm-pcie 1000110000.pcie: link up, 8.0 GT/s PCIe x1 (!SSC)
[    0.565669] pcieport 0001:00:00.0: enabling device (0000 -> 0002)
[    0.565695] pcieport 0001:00:00.0: PME: Signaling with IRQ 38
[    0.565744] pcieport 0001:00:00.0: AER: enabled with IRQ 38
[    0.565817] brcm-pcie 1000120000.pcie: host bridge /axi/pcie@1000120000 ranges:
[    0.565820] brcm-pcie 1000120000.pcie:   No bus range found for /axi/pcie@1000120000, using [bus 00-ff]
[    0.565827] brcm-pcie 1000120000.pcie:      MEM 0x1f00000000..0x1ffffffffb -> 0x0000000000
[    0.565831] brcm-pcie 1000120000.pcie:      MEM 0x1c00000000..0x1effffffff -> 0x0400000000
[    0.565836] brcm-pcie 1000120000.pcie:   IB MEM 0x1f00000000..0x1f003fffff -> 0x0000000000
[    0.565840] brcm-pcie 1000120000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x1000000000
[    0.565844] brcm-pcie 1000120000.pcie:   IB MEM 0x1000130000..0x1000130fff -> 0xfffffff000
[    0.566985] brcm-pcie 1000120000.pcie: PCI host bridge to bus 0002:00
[    0.669566] brcm-pcie 1000120000.pcie: clkreq-mode set to default
[    0.669568] brcm-pcie 1000120000.pcie: link up, 5.0 GT/s PCIe x4 (!SSC)
[    0.677657] pcieport 0002:00:00.0: enabling device (0000 -> 0002)
[    0.677681] pcieport 0002:00:00.0: PME: Signaling with IRQ 39
[    0.677721] pcieport 0002:00:00.0: AER: enabled with IRQ 39


(HI4Lines_Insp) amax@raspberrypi:~/GitHub/newbranch/HI4Lines_Insp/deploy/rpi/deploy $ sudo  lspci -vvxxxd 1f0d:
0001:01:00.0 Processing accelerators: DeGirum Corp. AI Accelerator [ORCA] (rev 01)
        Subsystem: DeGirum Corp. AI Accelerator [ORCA]
        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 255
        Region 0: Memory at 1b80000000 (64-bit, non-prefetchable) [disabled] [size=1M]
        Region 2: Memory at 1b80100000 (64-bit, non-prefetchable) [disabled] [size=128K]
        Capabilities: [80] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [90] MSI: Enable- Count=1/1 Maskable+ 64bit+
                Address: 0000000000000000  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [c0] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <1us, L1 <1us
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0W
                DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
                        RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 256 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L0s L1, Exit Latency L0s <256ns, L1 <8us
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 8GT/s, Width x1 (downgraded)
                        TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
                         10BitTagComp- 10BitTagReq- OBFF Via message, ExtFmt+ EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- TPHComp- ExtTPHComp-
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
                         AtomicOpsCtl: ReqEn-
                LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+
                         EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [100 v2] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
                AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
                        MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
                HeaderLog: 00000000 00000000 00000000 00000000
        Capabilities: [150 v1] Device Serial Number 00-00-00-00-00-00-00-00
        Capabilities: [160 v1] Power Budgeting <?>
        Capabilities: [1b8 v1] Latency Tolerance Reporting
                Max snoop latency: 0ns
                Max no snoop latency: 0ns
        Capabilities: [300 v1] Secondary PCI Express
                LnkCtl3: LnkEquIntrruptEn- PerformEqu-
                LaneErrStat: 0
        Capabilities: [900 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                          PortCommonModeRestoreTime=255us PortTPowerOnTime=26us
                L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                           T_CommonMode=0us LTR1.2_Threshold=0ns
                L1SubCtl2: T_PwrOn=10us
00: 0d 1f 00 01 00 00 10 00 01 00 00 12 00 00 00 00
10: 04 00 00 80 00 00 00 00 04 00 10 80 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 0d 1f 00 00
30: 00 00 00 00 80 00 00 00 00 00 00 00 ff 01 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 01 90 03 48 08 00 00 00 00 00 00 00 00 00 00 00
90: 05 c0 80 01 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 10 00 02 00 21 81 00 00 3f 29 00 00 43 ac 41 00
d0: 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 12 08 14 00 00 04 00 00 0e 00 00 00
f0: 03 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00


(HI4Lines_Insp) amax@raspberrypi:~/GitHub/newbranch/HI4Lines_Insp/deploy/rpi/deploy $ dgoinfo all
dgoinfo: error: [ERROR]Device not found
No device found
dg_orca_dev.h: 63 [LCL::OrcaDevices::OrcaDevices]

```

## Raspberry Pi with Ubuntu (Linux amax 6.8.0-1030-raspi #34-Ubuntu SMP PREEMPT_DYNAMIC Mon Jun 23 05:50:33 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux):
```

(HI4Lines_Insp) amax@amax:~/GitHub/HI4Lines_Insp/deploy/rpi/deploy$ sudo dmesg | grep pci
[    0.000000] Kernel command line: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1  smsc95xx.macaddr=2C:CF:67:C7:A9:20 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000  zswap.enabled=1 zswap.zpool=z3fold zswap.compressor=zstd multipath=off dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 rootwait fixrtc quiet splash
[    0.554768] brcm-pcie 1000110000.pcie: host bridge /axi/pcie@110000 ranges:
[    0.554779] brcm-pcie 1000110000.pcie:   No bus range found for /axi/pcie@110000, using [bus 00-ff]
[    0.554796] brcm-pcie 1000110000.pcie:      MEM 0x1b00000000..0x1bfffffffb -> 0x0000000000
[    0.554807] brcm-pcie 1000110000.pcie:      MEM 0x1800000000..0x1affffffff -> 0x0400000000
[    0.554818] brcm-pcie 1000110000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x1000000000
[    0.556157] brcm-pcie 1000110000.pcie: Forcing gen 2
[    0.561767] brcm-pcie 1000110000.pcie: PCI host bridge to bus 0000:00
[    0.561778] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.561782] pci_bus 0000:00: root bus resource [mem 0x1b00000000-0x1bfffffffb] (bus address [0x00000000-0xfffffffb])
[    0.561784] pci_bus 0000:00: root bus resource [mem 0x1800000000-0x1affffffff pref] (bus address [0x400000000-0x6ffffffff])
[    0.561802] pci 0000:00:00.0: [14e4:2712] type 01 class 0x060400 PCIe Root Port
[    0.561813] pci 0000:00:00.0: PCI bridge to [bus 00]
[    0.561818] pci 0000:00:00.0:   bridge window [mem 0x1b00000000-0x1b000fffff]
[    0.561823] pci 0000:00:00.0:   bridge window [mem 0x1b00000000-0x1b000fffff 64bit pref]
[    0.561855] pci 0000:00:00.0: PME# supported from D0 D3hot
[    0.563456] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    0.672689] brcm-pcie 1000110000.pcie: clkreq-mode set to default
[    0.672698] brcm-pcie 1000110000.pcie: link up, 5.0 GT/s PCIe x1 (!SSC)
[    0.672727] pci 0000:01:00.0: [1f0d:0100] type 00 class 0x120000 PCIe Endpoint
[    0.672768] pci 0000:01:00.0: BAR 0 [mem 0x1b00000000-0x1b000fffff 64bit]
[    0.672773] pci 0000:01:00.0: BAR 2 [mem 0x1b00000000-0x1b0001ffff 64bit]
[    0.672866] pci 0000:01:00.0: PME# supported from D0 D3hot
[    0.672944] pci 0000:01:00.0: 4.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x1 link at 0000:00:00.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
[    0.675703] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.675716] pci 0000:00:00.0: bridge window [mem 0x1b00000000-0x1b001fffff]: assigned
[    0.675720] pci 0000:01:00.0: BAR 0 [mem 0x1b00000000-0x1b000fffff 64bit]: assigned
[    0.675730] pci 0000:01:00.0: BAR 2 [mem 0x1b00100000-0x1b0011ffff 64bit]: assigned
[    0.675739] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.675742] pci 0000:00:00.0:   bridge window [mem 0x1b00000000-0x1b001fffff]
[    0.675749] pci 0000:00:00.0: Max Payload Size set to  256/ 512 (was  128), Max Read Rq  512
[    0.675757] pci 0000:01:00.0: Max Payload Size set to  256/ 256 (was  128), Max Read Rq  512
[    0.675842] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[    0.675888] pcieport 0000:00:00.0: PME: Signaling with IRQ 41
[    0.676295] pcieport 0000:00:00.0: AER: enabled with IRQ 41
[    0.676481] brcm-pcie 1000120000.pcie: host bridge /axi/pcie@120000 ranges:
[    0.676485] brcm-pcie 1000120000.pcie:   No bus range found for /axi/pcie@120000, using [bus 00-ff]
[    0.676504] brcm-pcie 1000120000.pcie:      MEM 0x1f00000000..0x1ffffffffb -> 0x0000000000
[    0.676513] brcm-pcie 1000120000.pcie:      MEM 0x1c00000000..0x1effffffff -> 0x0400000000
[    0.676528] brcm-pcie 1000120000.pcie:   IB MEM 0x1f00000000..0x1f003fffff -> 0x0000000000
[    0.676536] brcm-pcie 1000120000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x1000000000
[    0.677537] brcm-pcie 1000120000.pcie: Forcing gen 2
[    0.677589] brcm-pcie 1000120000.pcie: PCI host bridge to bus 0001:00
[    0.677592] pci_bus 0001:00: root bus resource [bus 00-ff]
[    0.677596] pci_bus 0001:00: root bus resource [mem 0x1f00000000-0x1ffffffffb] (bus address [0x00000000-0xfffffffb])
[    0.677599] pci_bus 0001:00: root bus resource [mem 0x1c00000000-0x1effffffff pref] (bus address [0x400000000-0x6ffffffff])
[    0.677612] pci 0001:00:00.0: [14e4:2712] type 01 class 0x060400 PCIe Root Port
[    0.677622] pci 0001:00:00.0: PCI bridge to [bus 00]
[    0.677626] pci 0001:00:00.0:   bridge window [mem 0x1f80000000-0x1fbfffffff]
[    0.677658] pci 0001:00:00.0: PME# supported from D0 D3hot
[    0.678350] pci 0001:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    0.784686] brcm-pcie 1000120000.pcie: clkreq-mode set to default
[    0.784690] brcm-pcie 1000120000.pcie: link up, 5.0 GT/s PCIe x4 (!SSC)
[    0.784712] pci 0001:01:00.0: [1de4:0001] type 00 class 0x020000 PCIe Endpoint
[    0.784755] pci 0001:01:00.0: BAR 0 [mem 0xffffc000-0xffffffff]
[    0.784758] pci 0001:01:00.0: BAR 1 [mem 0xffc00000-0xffffffff]
[    0.784762] pci 0001:01:00.0: BAR 2 [mem 0xffff0000-0xffffffff]
[    0.784823] pci 0001:01:00.0: supports D1
[    0.784825] pci 0001:01:00.0: PME# supported from D0 D1 D3hot D3cold
[    0.787690] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[    0.787699] pci 0001:00:00.0: bridge window [mem 0x1f00000000-0x1f005fffff]: assigned
[    0.787703] pci 0001:01:00.0: BAR 1 [mem 0x1f00000000-0x1f003fffff]: assigned
[    0.787707] pci 0001:01:00.0: BAR 2 [mem 0x1f00400000-0x1f0040ffff]: assigned
[    0.787712] pci 0001:01:00.0: BAR 0 [mem 0x1f00410000-0x1f00413fff]: assigned
[    0.787716] pci 0001:00:00.0: PCI bridge to [bus 01]
[    0.787720] pci 0001:00:00.0:   bridge window [mem 0x1f00000000-0x1f005fffff]
[    0.787726] pci 0001:00:00.0: Max Payload Size set to  256/ 512 (was  128), Max Read Rq  512
[    0.787734] pci 0001:01:00.0: Max Payload Size set to  256/ 256 (was  128), Max Read Rq  512
[    0.787821] pcieport 0001:00:00.0: enabling device (0000 -> 0002)
[    0.787861] pcieport 0001:00:00.0: PME: Signaling with IRQ 43
[    0.787957] pcieport 0001:00:00.0: AER: enabled with IRQ 43
[    5.415573] cdapci: loading out-of-tree module taints kernel.
[    5.415585] cdapci: module verification failed: signature and/or required key missing - tainting kernel

(HI4Lines_Insp) amax@amax:~/GitHub/HI4Lines_Insp/deploy/rpi/deploy$ sudo  lspci -vvxxxd 1f0d:
0000:01:00.0 Processing accelerators: Device 1f0d:0100 (rev 01)
        Subsystem: Device 1f0d:0000
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 41
        Region 0: Memory at 1b00000000 (64-bit, non-prefetchable) [size=1M]
        Region 2: Memory at 1b00100000 (64-bit, non-prefetchable) [size=128K]
        Capabilities: [80] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [90] MSI: Enable- Count=1/1 Maskable+ 64bit+
                Address: 0000000000000000  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [c0] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <1us, L1 <1us
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0W
                DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
                        RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 256 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L0s L1, Exit Latency L0s <256ns, L1 <8us
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 5GT/s (downgraded), Width x1 (downgraded)
                        TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
                         10BitTagComp- 10BitTagReq- OBFF Via message, ExtFmt+ EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- TPHComp- ExtTPHComp-
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
                         AtomicOpsCtl: ReqEn-
                LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
                         EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [100 v2] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
                AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
                        MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
                HeaderLog: 00000000 00000000 00000000 00000000
        Capabilities: [150 v1] Device Serial Number 00-00-00-00-00-00-00-00
        Capabilities: [160 v1] Power Budgeting <?>
        Capabilities: [1b8 v1] Latency Tolerance Reporting
                Max snoop latency: 0ns
                Max no snoop latency: 0ns
        Capabilities: [300 v1] Secondary PCI Express
                LnkCtl3: LnkEquIntrruptEn- PerformEqu-
                LaneErrStat: 0
        Capabilities: [900 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                          PortCommonModeRestoreTime=255us PortTPowerOnTime=26us
                L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                           T_CommonMode=0us LTR1.2_Threshold=287744ns
                L1SubCtl2: T_PwrOn=26us
        Kernel driver in use: cda
        Kernel modules: cdapci
00: 0d 1f 00 01 06 00 10 00 01 00 00 12 00 00 00 00
10: 04 00 00 00 00 00 00 00 04 00 10 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 0d 1f 00 00
30: 00 00 00 00 80 00 00 00 00 00 00 00 29 01 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 01 90 03 48 08 00 00 00 00 00 00 00 00 00 00 00
90: 05 c0 80 01 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 10 00 02 00 21 81 00 00 3f 29 00 00 43 ac 41 00
d0: 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 12 08 14 00 00 04 00 00 0e 00 00 00
f0: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

(HI4Lines_Insp) amax@amax:~/GitHub/HI4Lines_Insp/deploy/rpi/deploy$ dgoinfo all
Device 0:
M.2 PCIe device: 0 BDF 1:0.0 with DDR
Board info: HVS00013(A1/04): 00003154.
Firmware ver: 0x1010019-0xc61b052. Heartbeat: 00000375 secs.
Temperature: 52C, Frequency: AISS 250MHz, CPU 62MHz, DDR 1333MHz. Power profile: hi.
Device use: 0%. No failures.



```

## OpenSTLinux with Orca (Linux stm32mp2-e3-e1-45 6.6.78 #1 SMP PREEMPT Mon Aug  4 15:58:34 EEST 2025 aarch64 GNU/Linux)

```
(myenv1) root@stm32mp2-e3-e1-45:~# dmesg | grep pci
[    0.000000] Kernel command line: root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw   earlycon console=ttySTM0,115200 pcie_aspm=off
[    5.051914] cdapci: loading out-of-tree module taints kernel.
[    7.981729] stm32-pcie 48400000.pcie: host bridge /soc@0/bus@42080000/pcie@48400000 ranges:
[    7.984533] stm32-pcie 48400000.pcie:       IO 0x0010010000..0x001001ffff -> 0x0010010000
[    8.025926] stm32-pcie 48400000.pcie:      MEM 0x0010020000..0x0017ffffff -> 0x0010020000
[    8.039932] stm32-pcie 48400000.pcie:      MEM 0x0018000000..0x001fffffff -> 0x0018000000
[    8.045329] stm32-pcie 48400000.pcie:   IB MEM 0x0080000000..0x00ffffffff -> 0x0080000000
[    8.068965] stm32-pcie 48400000.pcie: iATU: unroll T, 4 ob, 4 ib, align 64K, limit 4G
[    8.186298] stm32-pcie 48400000.pcie: PCIe Gen.1 x1 link up
[    8.206062] stm32-pcie 48400000.pcie: PCI host bridge to bus 0000:00
[    8.212067] pci_bus 0000:00: root bus resource [bus 00-ff]
[    8.215273] pci_bus 0000:00: root bus resource [io  0x0000-0xffff] (bus address [0x10010000-0x1001ffff])
[    8.225788] pci_bus 0000:00: root bus resource [mem 0x10020000-0x17ffffff]
[    8.247567] pci_bus 0000:00: root bus resource [mem 0x18000000-0x1fffffff pref]
[    8.256341] pci 0000:00:00.0: [16c3:0550] type 01 class 0x060400
[    8.257410] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    8.268240] pci 0000:00:00.0: reg 0x14: [mem 0x00000000-0x0000ffff]
[    8.287147] pci 0000:00:00.0: supports D1 D2
[    8.291958] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    8.455574] pci 0000:01:00.0: [1f0d:0100] type 00 class 0x120000
[    8.456090] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit]
[    8.516553] pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x0001ffff 64bit]
[    8.520126] pci 0000:01:00.0: PME# supported from D0 D3hot
[    8.530891] pci 0000:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0000:00:00.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
[    8.541469] pci 0000:00:00.0: BAR 0: assigned [mem 0x10100000-0x101fffff]
[    8.547220] pci 0000:00:00.0: BAR 14: assigned [mem 0x10200000-0x103fffff]
[    8.554088] pci 0000:00:00.0: BAR 1: assigned [mem 0x10020000-0x1002ffff]
[    8.560833] pci 0000:01:00.0: BAR 0: assigned [mem 0x10200000-0x102fffff 64bit]
[    8.568194] pci 0000:01:00.0: BAR 2: assigned [mem 0x10300000-0x1031ffff 64bit]
[    8.588483] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    8.588538] pci 0000:00:00.0:   bridge window [mem 0x10200000-0x103fffff]
[    8.596036] pcieport 0000:00:00.0: PME: Signaling with IRQ 66
[    8.601508] pcieport 0000:00:00.0: AER: enabled with IRQ 65
[    8.643507] pcieport 0000:00:00.0: AER: Multiple Corrected error message received from 0000:00:00.0
[    8.648462] pcieport 0000:00:00.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, (Receiver ID)
[    8.657963] pcieport 0000:00:00.0:   device [16c3:0550] error status/mask=00000001/0000e000
[    8.666386] pcieport 0000:00:00.0:    [ 0] RxErr                  (First)

(myenv1) root@stm32mp2-e3-e1-45:~# sudo  lspci -vvxxxd 1f0d:
01:00.0 Processing accelerators: DeGirum Corp. AI Accelerator [ORCA] (rev 01)
        Subsystem: DeGirum Corp. AI Accelerator [ORCA]
        !!! Unknown header type 7f
        Interrupt: pin ? routed to IRQ 79
        Region 0: Memory at 10200000 (64-bit, non-prefetchable) [size=1M]
        Region 2: Memory at 10300000 (64-bit, non-prefetchable) [size=128K]
        Kernel driver in use: cda
        Kernel modules: cdapci
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff


(myenv1) root@stm32mp2-e3-e1-45:~# dgoinfo all
dgoinfo: error: [ERROR]Device not found
No device found
dg_orca_dev.h: 63 [LCL::OrcaDevices::OrcaDevices]
```

Hi @alema416, thank you for the thorough investigation and for documenting your findings here! We really appreciate the time you and your team spent comparing across devices and providing detailed logs

Unfortunately, at this time we’re unable to offer support for the Orca accelerator on STM32MP platforms

Thank you again for sharing your results. We’re sorry we couldn’t get this working for your use case