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.

Losing GPS on WL1283

Other Parts Discussed in Thread: 4460, WL1283

We have a production device based on OMAP 4460 that is losing GPS functionality.  We are using the WG7550 by Jorjin Technologies which is based on the TI WL1283 and our devices is running Android 4.2.2.  The logcat after the device exhibits the failure as follows:

06-26 14:25:23.463: V/GPS_HAL(461): hgps_start: Send update GPS_STATUS_SESSION_BEGIN
06-26 14:25:33.455: I/NAVC(877): SERVER_NAVC((null)):GIS: Timer Expired:1, GPSC State:ACTIVE, Sequence:SESSION_ON (162@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)
06-26 14:25:33.455: E/NAVC(877): SERVER_NAVC((null)):ERROR: ERROR: GPS is not responding for ACK (126@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)
06-26 14:25:33.455: E/NAVC(877): SERVER_NAVC((null)):ERROR: ERROR: GPS is not responding for ACK i apply assistance (126@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)
06-26 14:25:43.455: I/NAVC(877): SERVER_NAVC((null)):GIS: Timer Expired:1, GPSC State:ACTIVE, Sequence:SESSION_ON (162@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)

The WiFi and BT are functional while the GPS is getting this error.  The device recovers once it is power cycled.

What suggestions do you have regarding debugging this failure condition?

Thanks.

  • Hi,

    We will check this with the GPS team and get back to you.


    Regards,
    Gigi Joseph.

  • Hi,

    Can you please provide us the following files.

    tosensor*.dat and fromsensor*.dat - Pl note that this needs to be nebaled in pathconfigfile.txt

    complete logcat logs.

    Also if you can brief us about the testing that was done it would be helpful.

     

    Regards,

    Sudharshan K N

  • 0172.FromSensor_2014-7-10_3-8-50.dat

    7065.gps3.log

    [20140710030951.478]0x00000000:0, # Session starts 
    [20140710030951.478]0x00000005:0, AGPS-1.0 #Version numbers 
    [20140710031007.829]0x00000003:0, 25.072210,121.574697,40.500000,8.459473,48.000000,29.200000,23.900000 #Position (Lat, Lang, Alt,orientation,height_unc,unc_maj,unc_min) time to fix :  16000 ms 
    [20140710031016.362]0x00000001:0,  # Session end
    
     
    [20140710031016.472]0x00000000:1, # Session starts 
    [20140710031016.472]0x00000005:1, AGPS-1.0 #Version numbers 
    [20140710031037.068]0x00000003:1, 25.072257,121.574665,-1.500000,20.000610,159.000000,108.400000,71.200000 #Position (Lat, Lang, Alt,orientation,height_unc,unc_maj,unc_min) time to fix :  21000 ms 
    [20140710031314.658]0x00000001:1,  # Session end
    
     
    [20140710031314.762]0x00000000:2, # Session starts 
    [20140710031314.762]0x00000005:2, AGPS-1.0 #Version numbers 
    [20140710031318.058]0x00000003:2, 25.072148,121.574491,62.500000,30.822144,51.500000,36.000000,25.600000 #Position (Lat, Lang, Alt,orientation,height_unc,unc_maj,unc_min) time to fix :  4000 ms 
    [20140710031319.208]0x00000001:2,  # Session end
    
     
    

    2703.ToSensor_2014-7-10_3-8-50.dat

    Please find the attached requested logs.

  • Hi Sudarshan,

      We too have GPS related issues on our OMAP4460/Wilink7 design. We are using Wilink7  module from EPCOS TDK. We had received a GPS package for ICS release, but after we migrated to JB, we have not had any success in getting the right GPS package from TI. Though we managed to get one package from TI  a few months back , but it appears to be for wilink8 [the GPS patch from the package can not be downloaded though ST link]. Can you suggest what we should do in order to obtain the wilink7 GPS release for JB. Or if there is any such release? Looking at the message from Kevin, he seems to be using ICS files [though they are working on JB].

  • Hi Kunal,

    For JB you should get the shared transport drivers ported. Other than this we only have one change for logging stream.

    #ifdef JB
    #define LOGD ALOGD
    #define LOGE ALOGE
    #define LOGV ALOGV
    #define LOGI ALOGI
    #endif

    the above changes should make the driver to work with JB as well.

    Regards,

    Sudharshan K N

     

     

  • Hi Sudharshan,

    (1) I Integrated the GPS ICS release to our JB build as per instructions in release notes.
    (i) I as well changed the LOGGING from LOGx to ALOGx
    (ii) Under hardware/ti/gps.c and under external/mcp/NaviLink/nav/nav_main.c, I had to specify MODE for the open() call, in order to fix following compile error:
    error: call to '__creat_error' declared with attribute error: called with O_CREAT, but missing mode

    I specifed mode as 0666

    (2) When I booted android with these changes, android boot keeps crashing while trying to load gps.xxx.so . The crash is caused by signal 11 (SIGSEGV) at following line of code under hardware/libhardware/hardware.c

    static int load(..){
    ....
    ....
    hmi->dso = handle; // this instruction causes SIGSEGV
    ....
    ....
    }

    This is a bit puzzling as we are just assigning some value to a variable. I tried to assign NULL [instead of handle] to hmi->dso but crash still happens. Have you seen similar issues in past? Could it be due to some definition mismatch across ICS and JB?

    I see that another guy has encountered this same issue while porting GPS to panda board, but could not find resolution to this issue
    https://groups.google.com/forum/#!topic/pandaboard/pRQki8fGJAE

    I could not fix crash on above code, however after commenting out the above line of code [for gps.xxx.so only] the android boot proceeds fine.

    (3) Another issue I encountered is with loading of gps_drv.ko during boot. Though I added "insmod system/lib/modules/gps_drv.ko" to init.x7k.rc, the module does not appear to get loaded. I cross checked that system/lib/modules/gps_drv.ko is available. To fix this I am now building gps_drv as kernel builtin. I assume this will not cause any adverse effect on GPS functionality. Agree?

    (4) When I enable GPS after boot, I see these complaints under logcat:

    I/NAVC ( 1841): SERVER_NAVC((null)):GIS: Error: Cannot open aiding file-/data/gps/aiding/GPSCPositionFile (162@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)
    I/NAVC ( 1841): MCP_HAL_FS((null)):MCP_HAL_FS_Open: failed to open /data/gps/aiding/GPSCAlmanacFile (302@external/mcp/MCP_Common/Platform/os/LINUX/common/mcp_hal_fs.c)
    I/NAVC ( 1841): SERVER_NAVC((null)):GIS: Error: Cannot open aiding file-/data/gps/aiding/GPSCAlmanacFile (162@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)
    I/NAVC ( 1841): MCP_HAL_FS((null)):MCP_HAL_FS_Open: failed to open /data/gps/aiding/GPSCEphFile (302@external/mcp/MCP_Common/Platform/os/LINUX/common/mcp_hal_fs.c)
    I/NAVC ( 1841): SERVER_NAVC((null)):GIS: Error: Cannot open aiding file-/data/gps/aiding/GPSCEphFile (162@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)
    I/NAVC ( 1841): MCP_HAL_FS((null)):MCP_HAL_FS_Open: failed to open /data/gps/aiding/GPSCIonoFile (302@external/mcp/MCP_Common/Platform/os/LINUX/common/mcp_hal_fs.c)
    I/NAVC ( 1841): SERVER_NAVC((null)):GIS: Error: Cannot open aiding file-/data/gps/aiding/GPSCIonoFile (162@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)
    I/NAVC ( 1841): MCP_HAL_FS((null)):MCP_HAL_FS_Open: failed to open /data/gps/aiding/GPSCUtcFile (302@external/mcp/MCP_Common/Platform/os/LINUX/common/mcp_hal_fs.c)
    I/NAVC ( 1841): SERVER_NAVC((null)):GIS: Error: Cannot open aiding file-/data/gps/aiding/GPSCUtcFile (162@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)
    I/NAVC ( 1841): MCP_HAL_FS((null)):MCP_HAL_FS_Open: failed to open /data/gps/aiding/GPSCHealthFile (302@external/mcp/MCP_Common/Platform/os/LINUX/common/mcp_hal_fs.c)
    I/NAVC ( 1841): SERVER_NAVC((null)):GIS: Error: Cannot open aiding file-/data/gps/aiding/GPSCHealthFile (162@external/mcp/NaviLink/NAVC/Core/gpsc_msg.c)
    I/NAVC ( 1841): MCP_HAL_FS((null)):MCP_HAL_FS_Open: failed to open /data/gps/aiding/GPSCTcxoFile (302@external/mcp/MCP_Common/Platform/os/LINUX/common/mcp_hal_fs.c)
    I/NAVC ( 1841): SERVER_NAVC((null)):GIS: Error: Cannot open aiding file-/data/gps/aiding/GPSCTcxoFile

    Any idea if these files are needed or can be ignored?

    (5) With GPS Enabled, if I launch GPSTest App to test GPS, a signal 11 (SIGSEGV) exception is thrown from hgps_set_position_mode() in gps.c - device reboots when this happens. Could the cause of this exception and cause of exception under step-2 be similar? Do I need to use any special build flags, or make some changes to the code?

    (6) In your previous response you mentioned that we should get the "shared transport drivers ported". Are you referring to the Kernel drivers under drivers/misc/ti-st? We already have this st driver for JB. Do we need to make any change to this driver, or to some code at any other place?

  • Hi Sudharshan,

    (1) Regarding the SIGSEGV faults while loading "gps.xxx.so", I figured out that it was due to definition "const struct hw_module_t HAL_MODULE_INFO_SYM" under ti/hardware/gps.c . I have removed the "const" part and now the library can be loaded without any problems.

    (2) As I pointed out in my previous post, we get notification on logcat about following missing files
    /data/gps/aiding/GPSCClockFile
    /data/gps/aiding/GPSCPositionFile
    /data/gps/aiding/GPSCAlmanacFile
    /data/gps/aiding/GPSCEphFile
    /data/gps/aiding/GPSCIonoFile
    /data/gps/aiding/GPSCUtcFile
    /data/gps/aiding/GPSCHealthFile
    /data/gps/aiding/GPSCTcxoFile

    Is any of the above file critical for GPS functionality?


    (3) Investigating the logcat further [Apart from missing files which I pointed out in my previous post], Connection with MCPF socket seems to fail.

    hardware/ti/gps.c
    - open_gps()
    - ti_gps_init()
    - connectWithMcpfSocket()
    connectWithMcpfSocket: Connection with MCPF FAILED Reason = Permission denied !!!


    Despite multiple attempts the connection can never be made. Do we need to set a particualr permission in the init.rc file?

    (4) After the connection with MCPF fails, there is a call set_navl_server(0) under ti_gps_init(). This call too fails because the pipe "/dev/navlfifo" can not be opened.
    The entry /dev/navlfifo is present, but I guess it is missing some permissions? What premissions we should specify under init.rc?

    (5) Next to this we have successfull calls to hgps_get_extension(), followed by following messages

    - W/GpsLocationProvider( 1499): Could not open GPS configuration file /etc/gps.conf

    (6) Then the following messages

    D/libhardware_legacy( 1499): hgps_init: Entering
    D/libhardware_legacy( 1499): ERROR:: hgps_init:: gp_gpsalObject is NULL
    W/GpsLocationProvider( 1499): Failed to enable location provider

    (7) I am still investigating crash/reboot during call to hgps_set_position_mode(). Could this be related to the Errros/Warnings which we get during GPS Enable?