Project

General

Profile

GSD4t » History » Revision 5

Revision 4 (Denis 'GNUtoo' Carikli, 08/19/2012 07:45 AM) → Revision 5/13 (Denis 'GNUtoo' Carikli, 08/19/2012 03:04 PM)

h1. GSD4t 

 h2. Introduction 

 According to "ifixit":http://www.ifixit.com/Teardown/Samsung-Galaxy-Nexus-Teardown/7182/2 the Galaxy Nexus's GPS is a "GSD4t":http://www.csr.com/products/25/sirfstariv-gsd4t 

 h2. Information gathered so far. 

 * The GPS is connected to /dev/ttyO0 
 * the init sequence require the following special serial settings: 
 ** part of the init sequence is at 460800 Bps 
 ** part of it The following is at: also required: 
 <pre>termios.c_cflag = CRTSCTS | CS8 | CREAD | CLOCAL | B115200;;</pre> 
 ** Here are some logs: 
 <pre> 
 $ grep "c_cflags=" -r 0x800018b2;</pre> 

 * 
 strace.903:1345240189.403289 ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240195.711608 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240195.712615 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240196.290496 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240196.291015 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240196.291870 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240196.292358 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240196.370361 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240196.370880 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b4, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240201.072235 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b4, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.909:1345240201.073638 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.910:1345240201.398132 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.910:1345240201.404327 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.910:1345240201.406768 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.910:1345240201.408294 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.917:1345240203.624877 ioctl(24, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.917:1345240203.626007 ioctl(24, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.918:1345240204.809295 ioctl(24, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.918:1345240204.809814 ioctl(24, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.918:1345240204.810638 ioctl(24, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 strace.918:1345240204.811157 ioctl(24, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 
 </pre> 
 * After the init sequence the GPS is at 115200 8N1 and is useing the SIRF protoco protocol