Hello Haixu,
I was on vacation, therefore no immediate answer. I should not forget to
set an OOO reply before going to vacation.
On 20.02.24 09:30, Haixu Cui wrote:
Hello Harald,
Do you add the "spi-virtio" in spidev_spi_ids in spidev.c when you
doing the tests? And any other method to expose the spidev interface
to userspace?
+static struct spi_board_info board_info = {
+ .modalias = "spi-virtio",
+};
+
I've a udev rule 50-spi-virtio.rules installed which does the job:
# Bind spi-virtio device spiB.C to user mode SPI device /dev/spidevB.C
# Requires spi driver_override sysfs entry (Linux version 4.20+ and later)
#
# See also
https://www.mail-archive.com/debian-arm@xxxxxxxxxxxxxxxx/msg22090.html
# and Documentation/spi/spidev.rst
#
#ACTION=="add", SUBSYSTEM=="spi", ENV{MODALIAS}=="spi:spi-virtio",
PROGRAM+="/bin/sh -c 'echo spidev > %S%p/driver_override && echo %k >
%S%p/subsystem/drivers/spidev/bind"
ACTION=="add", SUBSYSTEM=="spi", ENV{MODALIAS}=="spi:spi-virtio",
PROGRAM+="/bin/sh -c 'echo spidev > %S%p/driver_override && echo %k >
%S/bus/spi/drivers/spidev/bind"
There are no other kernel changes.
However for ancient Linux 4.14 there is no udev rule and the board_info
looks, there
.modalias = "spidev", /* Must be "spidev" for user mode SPI */
but this is only for old kernels we're still using in some setup and
this is irrelevant at latest with 5.14.14 where was a documentation
update of Documentation/spi/spidev.rst.
Regards
Harald Mommer