This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM4377: Problems encountered in connecting AM4377 SPI2 with w5100s

Part Number: AM4377

Tool/software: Linux

Hello,

Now we have added a network chip w5100s to ARM 4377. w5100s is connected to SPI2 pin of ARM 4377. We use SPI mode to control w5100s. SDK version is TI's latest SDK V5.2, and the kernel version is RT-Linux 4.14.79.I configure the kernel as follows:

1、Open wiznet related configuration in kernel configuration

2、Open CONFIG_SPI_SPIDEV configuration in kernel configuration

3、modify /drivers/spi/spidev.c to add .compatible= "w5100" matches in spidev_dt_ids[ ]

4、recompiling tisdk_am437x-evm-rt_deconfig, kernel zImage and modules will generate new zImage, w5100.ko and w5100-spi.ko, burn new zImage to NAND flash, and put w5100.ko and w5100-spi.ko into file system /lib/modules/4.14.79-rt47-g28d73230da/kernel/drivers/net/ethernet/wiznet/

5、modifying device tree file to increase spi2-related configuration

6、restart system found that lsmod did not load w5100.ko and w5100-spi.ko,appearance of device node /dev/spidev2.0,after the system started, I manually loaded w5100.ko and w5100-spi.ko and did not execute the pr_err function I added to the probe function, indicating that the probe function was not called.

root@am437x-evm:~# lsmod
Module                  Size  Used by
xhci_plat_hcd          16384  0
xhci_hcd              118784  1 xhci_plat_hcd
usbcore               204800  2 xhci_plat_hcd,xhci_hcd
dwc3                   69632  0
udc_core               28672  1 dwc3
usb_common             16384  3 udc_core,usbcore,dwc3
ti_am335x_adc          16384  0
ti_prueth              73728  1
pru_rproc              20480  1 ti_prueth
pruss                  16384  2 pru_rproc,ti_prueth
pruss_intc             16384  1 pru_rproc
pm33xx                 16384  0
omap_des               20480  0
omap_aes_driver        24576  0
des_generic            28672  1 omap_des
omap_sham              28672  0
crypto_engine          16384  2 omap_des,omap_aes_driver
omap_crypto            16384  2 omap_des,omap_aes_driver
pruss_soc_bus          16384  0
ti_emif_sram           16384  1 pm33xx
dwc3_omap              16384  0
am437x_vpfe            36864  0
c_can_platform         16384  0
c_can                  20480  1 c_can_platform
can_dev                24576  1 c_can
pixcir_i2c_ts          16384  0
snd_soc_tlv320aic3x    57344  0
ov2659                 16384  0
wkup_m3_ipc            16384  1 pm33xx
v4l2_fwnode            16384  2 am437x_vpfe,ov2659
phy_omap_usb2          16384  2
wkup_m3_rproc          16384  1
ti_am335x_tscadc       16384  1 ti_am335x_adc
remoteproc             40960  4 pru_rproc,wkup_m3_rproc,wkup_m3_ipc,ti_prueth
omap_wdt               16384  0
sch_fq_codel           20480  2
cryptodev              45056  0
root@am437x-evm:~#

root@am437x-evm:~# ls  /dev                                        
autofs              ptye5               ptyx2               ttyS6               ttys9
block               ptye6               ptyx3               ttyS7               ttysa
btrfs-control       ptye7               ptyx4               ttyS8               ttysb
bus                 ptye8               ptyx5               ttyS9               ttysc
char                ptye9               ptyx6               ttya0               ttysd
console             ptyea               ptyx7               ttya1               ttyse
cpu_dma_latency     ptyeb               ptyx8               ttya2               ttysf
crypto              ptyec               ptyx9               ttya3               ttyt0
fd                  ptyed               ptyxa               ttya4               ttyt1
full                ptyee               ptyxb               ttya5               ttyt2
gpiochip0           ptyef               ptyxc               ttya6               ttyt3
gpiochip1           ptyp0               ptyxd               ttya7               ttyt4
gpiochip2           ptyp1               ptyxe               ttya8               ttyt5
gpiochip3           ptyp2               ptyxf               ttya9               ttyt6
gpiochip4           ptyp3               ptyy0               ttyaa               ttyt7
gpiochip5           ptyp4               ptyy1               ttyab               ttyt8
hwrng               ptyp5               ptyy2               ttyac               ttyt9
i2c-0               ptyp6               ptyy3               ttyad               ttyta
i2c-1               ptyp7               ptyy4               ttyae               ttytb
iio:device0         ptyp8               ptyy5               ttyaf               ttytc
initctl             ptyp9               ptyy6               ttyb0               ttytd
kmsg                ptypa               ptyy7               ttyb1               ttyte
log                 ptypb               ptyy8               ttyb2               ttytf
loop-control        ptypc               ptyy9               ttyb3               ttyu0
loop0               ptypd               ptyya               ttyb4               ttyu1
loop1               ptype               ptyyb               ttyb5               ttyu2
loop2               ptypf               ptyyc               ttyb6               ttyu3
loop3               ptyq0               ptyyd               ttyb7               ttyu4
loop4               ptyq1               ptyye               ttyb8               ttyu5
loop5               ptyq2               ptyyf               ttyb9               ttyu6
loop6               ptyq3               ptyz0               ttyba               ttyu7
loop7               ptyq4               ptyz1               ttybb               ttyu8
mem                 ptyq5               ptyz2               ttybc               ttyu9
memory_bandwidth    ptyq6               ptyz3               ttybd               ttyua
mqueue              ptyq7               ptyz4               ttybe               ttyub
mtd0                ptyq8               ptyz5               ttybf               ttyuc
mtd0ro              ptyq9               ptyz6               ttyc0               ttyud
mtd1                ptyqa               ptyz7               ttyc1               ttyue
mtd1ro              ptyqb               ptyz8               ttyc2               ttyuf
mtd2                ptyqc               ptyz9               ttyc3               ttyv0
mtd2ro              ptyqd               ptyza               ttyc4               ttyv1
mtd3                ptyqe               ptyzb               ttyc5               ttyv2
mtd3ro              ptyqf               ptyzc               ttyc6               ttyv3
mtd4                ptyr0               ptyzd               ttyc7               ttyv4
mtd4ro              ptyr1               ptyze               ttyc8               ttyv5
mtd5                ptyr2               ptyzf               ttyc9               ttyv6
mtd5ro              ptyr3               ram0                ttyca               ttyv7
mtd6                ptyr4               ram1                ttycb               ttyv8
mtd6ro              ptyr5               ram10               ttycc               ttyv9
mtd7                ptyr6               ram11               ttycd               ttyva
mtd7ro              ptyr7               ram12               ttyce               ttyvb
mtd8                ptyr8               ram13               ttycf               ttyvc
mtd8ro              ptyr9               ram14               ttyd0               ttyvd
mtd9                ptyra               ram15               ttyd1               ttyve
mtd9ro              ptyrb               ram2                ttyd2               ttyvf
mtdblock0           ptyrc               ram3                ttyd3               ttyw0
mtdblock1           ptyrd               ram4                ttyd4               ttyw1
mtdblock2           ptyre               ram5                ttyd5               ttyw2
mtdblock3           ptyrf               ram6                ttyd6               ttyw3
mtdblock4           ptys0               ram7                ttyd7               ttyw4
mtdblock5           ptys1               ram8                ttyd8               ttyw5
mtdblock6           ptys2               ram9                ttyd9               ttyw6
mtdblock7           ptys3               random              ttyda               ttyw7
mtdblock8           ptys4               rfkill              ttydb               ttyw8
mtdblock9           ptys5               shm                 ttydc               ttyw9
network_latency     ptys6               snd                 ttydd               ttywa
network_throughput  ptys7               spidev2.0           ttyde               ttywb
null                ptys8               stderr              ttydf               ttywc
port                ptys9               stdin               ttye0               ttywd
ptmx                ptysa               stdout              ttye1               ttywe
ptp0                ptysb               tty                 ttye2               ttywf
pts                 ptysc               tty0                ttye3               ttyx0
ptya0               ptysd               tty1                ttye4               ttyx1
ptya1               ptyse               tty10               ttye5               ttyx2
ptya2               ptysf               tty11               ttye6               ttyx3
ptya3               ptyt0               tty12               ttye7               ttyx4
ptya4               ptyt1               tty13               ttye8               ttyx5
ptya5               ptyt2               tty14               ttye9               ttyx6
ptya6               ptyt3               tty15               ttyea               ttyx7
ptya7               ptyt4               tty16               ttyeb               ttyx8
ptya8               ptyt5               tty17               ttyec               ttyx9
ptya9               ptyt6               tty18               ttyed               ttyxa
ptyaa               ptyt7               tty19               ttyee               ttyxb
ptyab               ptyt8               tty2                ttyef               ttyxc
ptyac               ptyt9               tty20               ttyp0               ttyxd
ptyad               ptyta               tty21               ttyp1               ttyxe
ptyae               ptytb               tty22               ttyp2               ttyxf
ptyaf               ptytc               tty23               ttyp3               ttyy0
ptyb0               ptytd               tty24               ttyp4               ttyy1
ptyb1               ptyte               tty25               ttyp5               ttyy2
ptyb2               ptytf               tty26               ttyp6               ttyy3
ptyb3               ptyu0               tty27               ttyp7               ttyy4
ptyb4               ptyu1               tty28               ttyp8               ttyy5
ptyb5               ptyu2               tty29               ttyp9               ttyy6
ptyb6               ptyu3               tty3                ttypa               ttyy7
ptyb7               ptyu4               tty30               ttypb               ttyy8
ptyb8               ptyu5               tty31               ttypc               ttyy9
ptyb9               ptyu6               tty32               ttypd               ttyya
ptyba               ptyu7               tty33               ttype               ttyyb
ptybb               ptyu8               tty34               ttypf               ttyyc
ptybc               ptyu9               tty35               ttyq0               ttyyd
ptybd               ptyua               tty36               ttyq1               ttyye
ptybe               ptyub               tty37               ttyq2               ttyyf
ptybf               ptyuc               tty38               ttyq3               ttyz0
ptyc0               ptyud               tty39               ttyq4               ttyz1
ptyc1               ptyue               tty4                ttyq5               ttyz2
ptyc2               ptyuf               tty40               ttyq6               ttyz3
ptyc3               ptyv0               tty41               ttyq7               ttyz4
ptyc4               ptyv1               tty42               ttyq8               ttyz5
ptyc5               ptyv2               tty43               ttyq9               ttyz6
ptyc6               ptyv3               tty44               ttyqa               ttyz7
ptyc7               ptyv4               tty45               ttyqb               ttyz8
ptyc8               ptyv5               tty46               ttyqc               ttyz9
ptyc9               ptyv6               tty47               ttyqd               ttyza
ptyca               ptyv7               tty48               ttyqe               ttyzb
ptycb               ptyv8               tty49               ttyqf               ttyzc
ptycc               ptyv9               tty5                ttyr0               ttyzd
ptycd               ptyva               tty50               ttyr1               ttyze
ptyce               ptyvb               tty51               ttyr2               ttyzf
ptycf               ptyvc               tty52               ttyr3               ubi0
ptyd0               ptyvd               tty53               ttyr4               ubi0_0
ptyd1               ptyve               tty54               ttyr5               ubi_ctrl
ptyd2               ptyvf               tty55               ttyr6               udev_network_queue
ptyd3               ptyw0               tty56               ttyr7               urandom
ptyd4               ptyw1               tty57               ttyr8               vcs
ptyd5               ptyw2               tty58               ttyr9               vcs1
ptyd6               ptyw3               tty59               ttyra               vcs2
ptyd7               ptyw4               tty6                ttyrb               vcs3
ptyd8               ptyw5               tty60               ttyrc               vcs4
ptyd9               ptyw6               tty61               ttyrd               vcs5
ptyda               ptyw7               tty62               ttyre               vcs6
ptydb               ptyw8               tty63               ttyrf               vcsa
ptydc               ptyw9               tty7                ttys0               vcsa1
ptydd               ptywa               tty8                ttys1               vcsa2
ptyde               ptywb               tty9                ttys2               vcsa3
ptydf               ptywc               ttyS0               ttys3               vcsa4
ptye0               ptywd               ttyS1               ttys4               vcsa5
ptye1               ptywe               ttyS2               ttys5               vcsa6
ptye2               ptywf               ttyS3               ttys6               watchdog
ptye3               ptyx0               ttyS4               ttys7               watchdog0
ptye4               ptyx1               ttyS5               ttys8               zero


root@am437x-evm:~# cd /lib/modules/4.14.79-rt47-g28d73230da/kernel/drivers/net/ethernet/wiznet/
root@am437x-evm:/lib/modules/4.14.79-rt47-g28d73230da/kernel/drivers/net/ethernet/wiznet# ls -al
total 36
drwxrwxr-x    2 1000     1000           304 Feb 28  2019 .
drwxrwxrwx    7 root     root           488 Feb 28  2019 ..
-rwxrw-rw-    1 1000     1000          9708 Feb 28  2019 w5100-spi.ko
-rwxrw-rw-    1 1000     1000         20552 Feb 28  2019 w5100.ko

I don't know why the kernel start didn't load w5100.ko and w5100-spi.ko. Is there any lack of steps here? Would you please help me to see the problem? Thank you very much

the complete log and device tree files are attached.

log-20190228.rar