PDA

View Full Version : Bus problem



nickkelsey
07-28-2001, 01:15 PM
Hi,

I have been playing with the factory connector but have found that the 403's byte-enable 0 does not do what I expect it to do -

I am triggering a scope off /CS5 (pin 148 on the 403) and doing a bus read - either by running TivoNet's probe.o or with my own app that does a few reads. This works - the scope shows the number of pulses which equals the number of accesses that I do.

With a second probe I am looking at /BE0 (pin 122 on the 403). Given that the bus is configured for 8-bit access this pin should pulse low with the /CS5 pin - ie providing the read/write strobe. The problem is that I do not get a strobe coresponding with the /CS5 pulse - the /BE0 pin stays high.

I must be missing something or otherwise the TivoNet probe.o could never work.

The Tivo is a working Philips 312 and there is nothing connected to the factory connector.

I would appreciate any advice.

Thanks

Nick

nickkelsey
07-28-2001, 02:45 PM
Problem solved -

The Tivo has the BE0-3 signals configured as Write Byte Enables, not Byte Enables. They only strobe when you write to an address.

Doh - that complicates my design.

Nick

khmann
08-09-2001, 04:29 PM
Nick (or others?)

do you have any thoughts on what it would take to get ttyS2 going on the debug port? Would it just be a matter of putting in a (s403?) serial UART?

it would be nice to have the native TiVo console available. I think perhaps this could allow TiVonet boards to be auto-detected by the OS- the kernel seems to check for the existance of a ttyS2 UART to enable the 8390 NIC. Even if the port wasn't usable, if the UART could be faked enough so the Debug-board detection went through... this might solve a lot of peoples problems with 2.0.x+ replacing user modified files (ie to enable the TiVonet)

I haven't looked at the hardware interface too deeply yet, I've been trying to find a kernel boot parameter to fake ttyS2's existance. I'll let ya'll know if I find anything.

any thoughts? thanks!

nickkelsey
08-09-2001, 04:58 PM
Hi,

I havn't looked at the existing software too much (I have been working on a single chip 3.3V ethernet solution and writing a customer driver)...

The ttyS2 serial interface? Is this a debug serial interface?

If it trys to detect to see if a 16550 is connected on the debug/factoty connector then I should be able to capture the detection and determine the address etc - I will get back to you.

I am certinaly interested in what you have discovered about the existing software - I can easily use add a micro to my board to emulate a 16550 to send any necessary commands to the Tivo.

Do you know if the Tivo ships with ethernet drivers built in?

Either way, one big advantage of putting a fake debug UART on the ethernet board would be that it may be possible to upload the ethernet drivers from a micro on the card each time the Tivo boots.

Nick

Vadim
08-09-2001, 05:08 PM
Wow, this is some serious stuff you guys are talking about, You have a very good point here, really they do have 4 serial ports on SA tivos, not sure about Dtivos.

/dev/ttyS0 IR Port on front of TiVo and IR blaster on the back
/dev/ttyS1 TiVo Modem
/dev/ttyS2 Debug Port on the TiVo. Not available
/dev/ttyS3 DSS Serial port on back of the TiVo

Now it would be could to get the debug port to work, hmm how about some digging into it?

Btw how are you checking everything? Oscilloscope?

nickkelsey
08-09-2001, 09:52 PM
Bingo - fount it!

ttyS0 = 0xff100000
ttyS1 = 0xffc00000
ttys2 = 0xffb80000
ttys3 = 0xffb40000

BTW - I got these numbers from the Kernel GPL code on Tivo's web site and the three known ports match the numbers in /proc/ioports.

Nick

KRavEN
08-09-2001, 11:30 PM
okay, so can you come up with a way to attach a uart to the edge connector and get the tty2 working?

I found an old AVS post that gave the id of every pin on the edge connector

The full thread is at:
http://www.avsforum.com/ubbtivo/Forum6/HTML/001035.html

I went ahead and pasted the info here too just in case.

There were some corrections further down in the thread, but this may have been edited to reflect them.

------------------------------------------------------------

KRavEN
08-09-2001, 11:31 PM
Traced of the debug connector:
Conn__ICPin_____Signal Name_____Conn__ICPin____Signal Name
A62___U48-42______D0__________B62___U48-136_____Error
A61___U48-43______D1__________B61___U48-62______D15
A60___GND_____________________B60___U48-58______D14
A59___U48-44______D2__________B59___U48-57______D13
A58___U48-45______D3__________B58___U48-56______D12
A57___GND_____________________B57___+3.3V
A56___U48-46______D4__________B56___U48-55______D11
A55___U48-47______D5__________B55___U48-54______D10
A54___U48-48______D6__________B54___+3.3V
A53___U48-51______D7__________B53___U48-53______D9
A52___GND_____________________B52___U48-52______D8
A51___U48-97______A11_________B51___GND
A50___U48-98______A12_________B50___U48-96______A10
A49___U48-99______A13_________B49___U48-95______A9
A48___GND_____________________B48___U48-94______A8
A47___U48-103_____A14_________B47___+3.3V
A46___U48-104_____A15_________B46___U48-93______A7
A45___U48-114_____A24_________B45___U48-92______A6
A44___GND_____________________B44___U48-110_____A21
A43___U48-117_____A27_________B43___+3.3V
A42___U48-113_____A23_________B42___U48-125_____WBE3/A31/BE3
A41___U48-119_____A29_________B41___U48-118_____A28
A40___GND_____________________B40___U48-115_____A25
A39___U48-116_____A26_________B39___+3.3V
A38___U48-112_____A22_________B38___U48-109_____A20
A37___U48-108_____A19_________B37___U48-124_____WBE2/A30/BE2

KRavEN
08-09-2001, 11:31 PM
A36___GND_____________________B36___U48-107_____A18
A35___U48-106_____A17_________B35___+3.3V
A34___U48-84______TS5/DP1_____B34___U48-105_____A16
A33___U48-85______TS4/DP2_____B33___U48-83______TS6/DP0
A32___U48-86______TS3/DP3_____B32___U48-9_______*HALT
A31___GND_____________________B31___+3.3V
A30___U48-19______TS2_________B30___U48-16______TDO
A29___U48-18______TS1_________B29___U48-8_______TDI
A28___U48-17______TS0_________B28___U48-7_______TMS
A27___GND_____________________B27___U48-6_______TCK
A26___NC______________________B26___+3.3V
A25___NC______________________B25___U48-33______INT2
A24___NC______________________B24___U41-1_______*PBRESET_IN
A23___U48-13______Ready_______B23___U63-5_______*TTYS3_RCLK
A22___GND_____________________B22___+3.3V
A21___U48-123__WBE1/A5/BE1____B21___U48-126_____OE/Xsize1/BLast
A20___U64-13___TTYS2_INT?_____B20___U48-122_____WBE0/A4/BE0
A19___U64-3____TTYS2_CS?______B19___U48-131_____EOT1/TC1
A18___GND_____________________B18___U48-22______SysClk
A17___U48-157_____*DMAA1______B17___+3.3V
A16___U48-128______R/W________B16___U48-3_______*DMAR1
A15___NC______________________B15___U48-148_____CS5/RAS2
A14___GND_____________________B14___NC
A13___KEY_____________________B13___KEY
A12___KEY_____________________B12___KEY
A11___U48-63______D16_________B11___U48-82______D31
A10___U48-64______D17_________B10___U48-79______D30
A9____U48-65______D18_________B9____U48-78______D29
A8____GND_____________________B8____+3.3V
A7____U48-66______D19_________B7____U48-77______D28
A6____U48-67______D20_________B6____U48-76______D27
A5____U48-68______D21_________B5____U48-75______D26
A4____GND_____________________B4____+3.3V
A3____U48-71______D22_________B3____U48-74______D25
A2____U48-72______D23_________B2____U48-73______D24
A1____NC______________________B1____NC
A=Component Side, Pin Numbers=Tivo Silk Screen

nickkelsey
08-10-2001, 01:46 AM
Hay thanks.

I had worked out the pinout the hard way and hadn't taken the time to figure out A19 and A20.

Ok, so looking at the GPL the mystical ttyS2 is another 16550 and if it is found then it may be more sociable about loading the ethernet drivers without external software.

The plan - I will wire up an ip2022 (www.ubicom.com) to the factory connector in the next few days. This chip is an 8-bit micro/communication controller that does 100+ MIPS. Emulating the host interface of a 16550 will be a piece of cake.

I will let you know how it works out.

Nick

khmann
08-10-2001, 11:05 AM
let me know if/when you've got success. I would be happy to purchase an Ethernet/Serial Debug board, even if it were still in prototype stage. I'm also fairly decent at surface mount soldering, so a kit would also be workable. I don't actually use my TiVo that much, so I'd be happy to help with debugging. A large part of my job at work is commercial Linux support, so I might be able to help.

my wish list- 100mbit, or at least 10mbit full duplex, and a working ttyS2. Heck, if I could nfs boot my TiVo :)

If you're able to get a working auto-detected ethernet going, I think there's probably a huge market. good luck!

nickkelsey
08-10-2001, 11:16 AM
Hi,

I am working on a single board, single chip, 100baseTX, 3.3V design.

I currently have the chip wired to the Tivo and can read any register 8/16 bit. Bus writes sometimes cause corruptions - working on it.

I will keep you posted.

Nick

embeem
08-10-2001, 04:30 PM
-

pasha
08-10-2001, 04:46 PM
to merge multiple tivos to tivonetwork and share info

nickkelsey
08-10-2001, 05:01 PM
BTW - The reason for 100baseTX over 10baseT is that the 10baseT chips I have a 5V ISA only where as the 100baseTX chip I have a 3.3V and can be configured to interface to a 68k bus.

Nick

mrblack51
08-10-2001, 06:16 PM
now, if im not being completely stupid, wouldnt having the board autodetected by the tivo mean that we could get into 2.5 machines (we would have to redo all hacks at reboot somehow i presume) since the original rc.sysinit would start the necessary telnet stuff automatically?

nickkelsey
08-10-2001, 06:23 PM
All this could just be wishful thinking but if so then a microcontroller on the daughter card could upload any drivers that are needed after booting.

Nick