pru_soc_bus probe error - Linux 4.14 - xenomai - Beaglebone black

11 views
Skip to first unread message

Sergio Cruz

unread,
Apr 15, 2021, 9:33:12 PM4/15/21
to BeagleBoard
Hi all,

I'm getting an error when enabling the PRU in the kernel 4.14-xenomai. The error is:
 pruss-soc-bus 4a326000.pruss_soc_bus: platform data (reset configuration information) missing
That error comes from the pruss_soc_probe routine indicating that the data structure pruss_platform_data or its members are NULL (structure shown below).  

Do you know if the PRUs infrastructure is working correctly in that release? The latest commit I have is:
commit 904bf7cf09cd4a256d03a3d5edbeea9a85bcd07f (HEAD -> 4.14-xenomai, tag: 4.14.108-ti-xenomai-r140, origin/4.14-xenomai)
I added some extra info below, do you think I'm missing something to enable the PRU?


Thanks
Sergio Cruz

Some additional info:
I'm building the kernel using buildroot and using the kernel configuration omap2_plus_defconfig

I enabled the driver by selecting the following configs: 
CONFIG_REMOTEPROC=y                                                                                                               
CONFIG_OMAP_REMOTEPROC=m                                                                                                
CONFIG_WKUP_M3_RPROC=y                                                                                                       
CONFIG_PRUSS_REMOTEPROC=m                                                                                               
CONFIG_RPMSG_VIRTIO=m 

And by enabling the nodes in my main device tree:
 &pruss_soc_bus {                                                                
         status = "okay";                                                                                                                                        
         pruss: pruss@0 {                                                        
                 status = "okay";                                                
         };                                                                      
 }; 
This part seems to be working since the probe function is being called correctly

For the wkup_m3_rproc.c driver, its platform data structure is being registered successfully  and it is defined in the same place as the pruss_soc_bus data in pdata-quircks.c. 

  #if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)                    
 static struct wkup_m3_platform_data wkup_m3_data = {                            
         .reset_name = "wkup_m3",                                                
         .assert_reset = omap_device_assert_hardreset,                                                                                    
         .deassert_reset = omap_device_deassert_hardreset,                      
 };                                                                                  
 static struct pruss_platform_data pruss_pdata = {                                      
         .reset_name = "pruss",                                                                                                            
         .assert_reset = omap_device_assert_hardreset,                          
         .deassert_reset = omap_device_deassert_hardreset,                      
 };                                                                                      
 #endif
Reply all
Reply to author
Forward
0 new messages