Electronic – How to make the Fairchild FSA9280/FSA9480/FSA880 BOOT pin trigger? (Samsung Galaxy S)

mobileserialusbusb device

this is a bit of a long shot but I'm hoping someone has access to the full data sheet for one of the chips listed in the title, and can tell me what combination of VBUS_IN and resistors on ID_CON will make it trigger the BOOT pin on the chip. Unfortunately Fairchild will not release the full data sheet for these chips (I have asked), and only an abbreviated version (PDF link) is available on the web.

Long story: the FSA9480 chip is used on some Samsung phones to detect various accessories using sensing resistors on the ID pin of the USB port. We've already made a lot of progress through info from the phone's Android kernel source. Now we're trying to force the phone's CPU into a boot recovery mode that will make it load an external bootloader from the serial port, and it looks like the BOOT pin on the FSA9480 might do this, but we can't figure out how to trigger it.

So far I've tried all the resistors on the known list without power connected to the USB port, and all of the resistor values that produced serial output again with power on the USB port.

Update: We're working on the theory that this schematic from the service manual shows a signal going from the FSA9480 BOOT pin to a signal named BOOT_MODE, which in any sane world would go the the application processor chip's OM5 pin. But we don't have the full schematic to prove it, and we don't have the internal details of the FSA9480 to show how that pin gets triggered. You would think it would be the resistors with BOOT_ON in their names (like RID_FM_BOOT_ON_UART), but apparently not. Or maybe it is, but the BOOT_MODE signal doesn't go to the right place. Either way the FSAx80 data sheet would confirm it.

I've reverse-engineered the startup and bootloader download code in the application processor's (Samsung S5PC110) internal ROM, and worked out that if we succeed we should see the first byte of the bootloader download protocol on the serial port. Instead we are getting the output of the primary bootloader which is being loaded from NAND, which indicates a normal boot.

Best Answer

check out http://forum.xda-developers.com/showthread.php?t=1206216 I have done this to my captivate and it works. I do not know about any other Galaxy S phones. You should check xda-dev for your phone as someone may have figured out how to do it on it.