| Author |
Message |
|
|
Page 1 of 2
|
| R2-D2 |
Posted: Fri Dec 28, 2007 4:12 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
|
| Back to top |
|
| R2-D2 |
Posted: Fri Dec 28, 2007 4:18 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
| HDD commands |
Last edited by R2-D2 on Sun Mar 09, 2008 6:18 pm; edited 1 time in total |
|
| Back to top |
|
| R2-D2 |
Posted: Fri Dec 28, 2007 4:22 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
| OSD commands |
Last edited by R2-D2 on Sun Mar 09, 2008 6:19 pm; edited 2 times in total |
|
| Back to top |
|
| R2-D2 |
Posted: Fri Dec 28, 2007 4:29 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
| XKY strings |
Last edited by R2-D2 on Sun Mar 09, 2008 6:20 pm; edited 3 times in total |
|
| Back to top |
|
| R2-D2 |
Posted: Fri Dec 28, 2007 4:40 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
| Using the console |
Last edited by R2-D2 on Sun Mar 09, 2008 6:20 pm; edited 4 times in total |
|
| Back to top |
|
| R2-D2 |
Posted: Fri Dec 28, 2007 4:55 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
| Fun things to try |
Last edited by R2-D2 on Sun Mar 09, 2008 6:21 pm; edited 3 times in total |
|
| Back to top |
|
| bdb |
Posted: Fri Dec 28, 2007 5:14 pm |
|
|
|
Frequent contributor
Joined: 18 Oct 2005
Posts: 499
|
here's my list.
bdb
Code: command params
? : : "/a" Cmd_ListCmd
X : : "(null)" reboot
DBG : 1 : "%d" 0=disable, 1=enable <enable/disable debug output>
INB : 0 : "%x" <read byte at the specified address>
INH : 0 : "%x" <read half-word the specified address>
INW : 0 : "%x" <read word the specified address>
OUTB : 0 : "%x %x" <write byte to the specified address>
OUTH : 0 : "%x %x" <write half-word to the specified address>
OUTW : 0 : "%x %x" <write word to the specified address>
CHKREG : 0 : "%x"
MEMCPY : 0 : "%x %x %x"
MEMSET : 0 : "%x %x %x"
DUMP : 2 : "%x %x" <dump memory>
CALL : 0 : "%x %d %d %d %d %d %d %d %d %d"
CALLX : 0 : "%x %x %x %x %x %x %x %x %x %x"
KEY : 0 : "%s" <generate key event>
LS : 0 : "(null)" Cmd_ListProcHandler <WARNING: it traps>
NEW : 4 : "%x %d %d %d" Cmd_NewProcEvent
KILL : 1 : "%d" Cmd_KillProcEvent
QINIT : 0 : "(null)" <inits the queue>
QLIST : 0 : "(null)" <list the queue contents>
QSTART : 0 : "(null)" <start filling the queue>
QEND : 0 : "(null)" <stops filling the queue>
QCMD : 0 : "(null)"
DELAY : 1 : "%d"
QDELAY : 1 : "%d"
OUTCH : 1 : "%c" <output character to serial port>
OUTSTR : 1 : "%s" <output string to serial port>
OUTSTRLN : 1 : "%s" <output a new-line terminated string>
CI : 0 : "(null)" Channel_Init
FREQ : 0 : "%d %d %d %d" Channel_Set_Test <freq test>
LNBP : 0 : "%d %d" Channel_SetLnbPower_Test <LNB power test>
12V : 0 : "%d" Channel_SetSw12v_Test <12V test, not implemented>
DISEQC : 0 : "%d %d" Channel_SetDiseqc_Test <DISEQC test>
22KHZ : 0 : "%d %d" Channel_Set22khz_Test <22KHz test>
DISEQCCMD : 0 : "%d %d %d" Channel_SendDiseqcCmd_Test
GDB : 0 : "%d" WP=%08x
AVT : 0 : "%d"
HEAPINFO : 0 : "(null)" <print heap info>
RTC : 0 : "%d %d %d" <set RTC time (frontpanel processor), usage : hour min sec>
VS : 0 : "%d %d %d %d %d"
VTS : 0 : "%d %d %d %d %d"
VA : 2 : "%d %d"
CM : 0 : "(null)"
VF : 0 : "%d %d"
VST : 0 : "%d"
SS : 0 : "%d %d" set system variable ?
CA : 0 : "%d %d"
TONE : 0 : "%d %d" tone - freq=%d,level=%d
HDD : 4 : "%s %s %s %s" HDD status|id|mode|rs|ws|format|scmap|lcmap|record|play|stop...] [...]...
MD : 2 : "%s %s MD file[ts|exe|folder] name
CD : 1 : "%s"
CD. : 1 : ""
CD.. : 1 : ""
SD : 2 : "%d %s" DevHdd_SelectData
DEL : 1 : "%s" DevHdd_DeleteData
REN : 2 : "%s %s" DevHdd_RenameData
MOVE : 2 : "%s %s"
RF : 2 : "%d %d" DevHdd_ReadFolder
FI : 1 : "%s" DevHdd_GetFolderInfo
FILEINFO : 1 : "%d" DevHdd_GetFileInfo
CUT : 0 : "%d %d %d %s" Cmd_HddExtractData
RECORD : 4 : "%s %d %d %d" RECORD start[stop] Cmd_HddRecordFile
PLAY : 5 : "%s %d %d %d %x" PLAY start[stop]
STOP : 1 : "%d" DevHdd_StopFile
PB : 0 : "(null)" <show current playback address; if timeshifting?>
FS : 1 : "%s" DevHdd_FileStatus
DIR : 0 : "(null)"
SF : 1 : "%d %d" Cmd_HddSetFileInfo
FO : 1 : "%s" Cmd_HddFileOpen
FC : 1 : "%s" Cmd_HddFileClose
LOAD : 8 : "%d %x %x %x %x %x %x %d" DevDemux_Start
DMX : 8 : "%d %x %x %x %x %x %x %d"
PAT : 1 : "%d" (tuner)
SDT : 1 : "%d" (tuner)
NIT : 1 : "%d" (tuner)
PMT : 2 : "%d %x" (tuner) (pid)
DEMUX : 1 : "%d" (tuner)
LIST : 1 : "%s" "/d" = decimal SCAN SVC info <WARNING: it traps!>
CLEAR : 0 : "(null)" SCAN SVC info clear
SERVICE : 0 : "%d %d %d %d"
SRVSTART : 4 : "%d %d %d %d"
SRVSTARTX : 4 : "%d %x %x %x"
SRVSTOP : 1 : "%d"
CTS : 2 : "%d %d" CTS mode[0=DEMUX_ChannelA, 1=DEMUX_ChannelB, 2=DEMUX_ChannelC, 3=TS_Playback] streamRate, DevDemux_TsSelCamTs(mode, streamRate)
DTS : 2 : "%d %d" DTS demuxChannel[0=DEMUX_ChannelA, 1=DEMUX_ChannelB, 2=DEMUX_ChannelC] inputTS[0=TS_Tuner0, 1=TS_Tuner1, 2=TS_CAM, 3=TS_Playback], DevDemux_TsSelDmxTs(demuxChannel, inputTS)
OSD : 0 : "%s %d %d %d %d %x %d"
OSDI : 0 : "%s %d %d %x %x %d %d %d %d" OSD init[cntl,db,dr,fill]
CLS : 0 : "(null)" Cmd_Clear:stc=0x%08x
OSDSTR : 0 : "%d %d %s %x" <WARNING: it traps!>
GBA : 0 : "%d %d"
CVS : 0 : "%d"
CAS : 0 : "(null)"
VFD : 0 : "%d %d %x %x %x %x"
SPCM : 0 : "%x"
SETS : 0 : "%d"
TESTTTX : 0 : "(null)"
TESTJPEG : 0 : "(null)" n/a
PBSTOP : 0 : "(null)" <WARNING: it traps!>
SPOS : 0 : "%d"
DF : 0 : "%d %d %x" Cmd_DebugFunction: CCAPTION_Open,CCAPTION_Start,
AR : 0 : "(null)" (dma, audio)
MC : 0 : "%x"
MCL : 0 : "%x" <WARNING: it traps if address is below 0x80000000>
CSR : 0 : "%d"
TPES : 0 : "%x" Cmd_TestPESFilter START <test PES filter>
CTEST : 0 : "(null)" Key=%08x%08x
TTEST : 0 : "(null)" (ide)
DBIOS : 0 : "%x" (ttsd) <outputs some data ???>
CUTEST : 0 : "%d" Cmd_CUTest:mode=%d, Cmd_CUTest[Hdd_WriteSector,Hdd_ReadSector]:r=0x%04x <some tests (may overwrite HDD data)>
PIF : 0 : "(null)" Cmd_ProduceInfinite
|
|
|
| Back to top |
|
| R2-D2 |
Posted: Fri Dec 28, 2007 5:34 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
bdb wrote: here's my list. Darn -- I was hoping you might know some more about these ones in particular:
DMX *dmx load, usage: dmx xpid pid flt0a flt0b flt1a flt1b nSec time
GBA *outputs graphics base addresses?
LOAD *si load, usage: load xpid pid flt0a flt0b flt1a flt1b nSec time
SPCM *?, usage: spcm mode(0=enable?,1=disable?) |
|
|
| Back to top |
|
| R2-D2 |
Posted: Fri Dec 28, 2007 8:12 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
| (Out of date info deleted.) |
Last edited by R2-D2 on Thu Jan 03, 2008 8:43 pm; edited 1 time in total |
|
| Back to top |
|
| R2-D2 |
Posted: Sat Dec 29, 2007 10:57 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
| [Gx]ExtCmdEnable updated to include setting the OSD variables up. Also tidied the thread to include links in the first post and added a little more about the OSD stuff. |
Last edited by R2-D2 on Thu Jan 03, 2008 8:43 pm; edited 1 time in total |
|
| Back to top |
|
| DeadBeef |
Posted: Mon Dec 31, 2007 11:51 am |
|
|
|
Frequent contributor
Joined: 09 Jan 2006
Posts: 264
|
The write operation of the command "hdd t-pio" looks suspicious:
Code: FW 5.13.40
64r 80094e58: 3c0fb001 lui $t7,0xb001
68r 80094e5c: 240efff1 addiu $t6,$zero,-15=0xfff1
6cr 80094e60: adee2000 sw $t6,8192($t7) # b0012000 *EMMA_ATA_CONTROL
According to my ATA documentation this command corresponds to WIN_SECURITY_SET_PASS (0xf1).
The read operation of the command "hdd t-pio" uses WIN_DEVICE_RESET (0x08) instead:
Code:
64r 80095318: 3c0fb001 lui $t7,0xb001
68r 8009531c: 240e0008 addiu $t6,$zero,8
6cr 80095320: adee2000 sw $t6,8192($t7) # b0012000 *EMMA_ATA_CONTROL
I am surprised that the firmware for the TF5800 still includes the extended command interface. |
|
|
| Back to top |
|
| R2-D2 |
Posted: Mon Dec 31, 2007 1:09 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
DeadBeef wrote: According to my ATA documentation this command corresponds to WIN_SECURITY_SET_PASS (0xf1). I think that indicates more that the EMMA_ATA_CONTROL is not correctly identified, or it uses values in a different way. The (known working) DMA routines write values 0x06 (write) and 0x0e (read), which don't correspond to a known ATA command (and the only other value written that I can see is 0).
Edit: that might suggest that the 0x08 bit means "read" if set and "write" otherwise. |
|
|
| Back to top |
|
| DeadBeef |
Posted: Mon Dec 31, 2007 1:57 pm |
|
|
|
Frequent contributor
Joined: 09 Jan 2006
Posts: 264
|
R2-D2 wrote: DeadBeef wrote: According to my ATA documentation this command corresponds to WIN_SECURITY_SET_PASS (0xf1). I think that indicates more that the EMMA_ATA_CONTROL is not correctly identified, or it uses values in a different way. The (known working) DMA routines write values 0x06 (write) and 0x0e (read), which don't correspond to a known ATA command (and the only other value written that I can see is 0).
Edit: that might suggest that the 0x08 bit means "read" if set and "write" otherwise. I confused ATA_CONTROL with IDE_CMD. WIN_* codes are for the IDE_CMD. |
|
|
| Back to top |
|
| R2-D2 |
Posted: Mon Dec 31, 2007 3:31 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
DeadBeef wrote: I confused ATA_CONTROL with IDE_CMD. So is this the bit that actually sets the transfer mode, then? (PIO vs DMA?) |
|
|
| Back to top |
|
| DeadBeef |
Posted: Mon Dec 31, 2007 3:56 pm |
|
|
|
Frequent contributor
Joined: 09 Jan 2006
Posts: 264
|
R2-D2 wrote: DeadBeef wrote: I confused ATA_CONTROL with IDE_CMD. So is this the bit that actually sets the transfer mode, then? (PIO vs DMA?) It is related to it. The firmware uses the following values for ATA_CONTROL:
Code: PIO write
ATA_CONTROL = 0xf1
IDE_CMD = 0x30 (WIN_WRITE)
PIO read
ATA_CONTROL = 0x08
IDE_CMD = 0x20 (WIN_READ)
DMA write
ATA_CONTROL = 0x06
IDE_CMD = 0xc8 (WIN_WRITEDMA) for non-48-bit LBA
IDE_CMD = 0x34 (WIN_WRITE_EXT ?!) for 48-bit LBA ( I would have expected WIN_WRITEDMA_EXT = 0x35)
DMA read
ATA_CONTROL = 0x0e
IDE_CMD = 0xca (WIN_READDMA) for non-48-bit LBA
IDE_CMD = 0x24 (WIN_READ_EXT ?!) for 48-bit LBA ( I would have expected WIN_READDMA_EXT = 0x25)
|
|
|
| Back to top |
|
|
|
|