Hi,

On 2/19/2025 10:01 PM, Dave Airlie wrote:
> I'd just like to remind everyone of the firmware requirements for
> vendors that control their firmware and the driver upstreams:
> 
> https://docs.kernel.org/driver-api/firmware/firmware-usage-guidelines.html
> 
> Intel VPU it seems like you are not currently shipping upstream
> firmware, and might have tied your fw and userspace together.

Yep, this is correct :/

> I'm cc'ing the AMD XDNA driver as it recently landed and I'd like them
> to confirm they are following the above requirements.
> 
> The main reason we don't allow userspace/fw direct linkage is if a
> user deploys two containers with two different userspace drivers in
> them on the same hardware, what is the kernel driver supposed to do?

This makes sense, but I didn't see anything in the firmware usage guidelines 
about needing user-space and firmware to be compatible.
It is focused on making sure the kernel driver works well with the firmware.
Our intel_vpu driver sticks to the basics with the firmware ABI, so we've got 
backward and forward compatibility covered from the initial release.

Now, when it comes to user space and firmware, that's a whole other story. 
We've made some headway, but there's still a lot to do.
Our firmware is pretty massive (like 10 times bigger than your average GPU 
firmware) which makes things trickier than what other drivers deal with.
That's why we didn't put the firmware in linux-firmware right away, but we'll 
get the next release in there.

We will continue working on separating user space from the firmware more to 
make things smoother.

> Firmware should be abstracted in the kernel if it is not possible to
> build proper fw APIs for userspace to use directly, by proper I mean
> forward and backwards compatible.

This dependents on a project. In our case only user space should provide this 
compatibility.
We don't even parse command buffers at the moment in kernel space.

For your reference, we release updates for both the user space and firmware 
every couple of weeks here: https://github.com/intel/linux-npu-driver/releases

Jacek

Reply via email to