Wie mache ich den Fairchild FSA9280/FSA9480/FSA880 BOOT Pin Trigger? (Samsung-Galaxy S)

Das ist ein bisschen weit hergeholt, aber ich hoffe, jemand hat Zugriff auf das vollständige Datenblatt für einen der im Titel aufgeführten Chips und kann mir sagen, welche Kombination aus VBUS_IN und Widerständen auf ID_CON den BOOT-Pin auslösen wird auf dem Chip. Leider wird Fairchild nicht das vollständige Datenblatt für diese Chips veröffentlichen (ich habe darum gebeten), und nur eine gekürzte Version (PDF-Link) ist im Internet verfügbar.

Lange Geschichte: Der FSA9480-Chip wird auf einigen Samsung-Telefonen verwendet, um verschiedene Zubehörteile mithilfe von Messwiderständen am ID-Pin des USB-Anschlusses zu erkennen. Wir haben bereits viele Fortschritte durch Informationen aus der Android-Kernel-Quelle des Telefons gemacht. Jetzt versuchen wir , die CPU des Telefons in einen Boot-Wiederherstellungsmodus zu zwingen , der es dazu bringt, einen externen Bootloader von der seriellen Schnittstelle zu laden, und es sieht so aus, als ob der BOOT-Pin am FSA9480 dies tun könnte, aber wir können nicht herausfinden, wie um es auszulösen.

Bisher habe ich alle Widerstände auf der bekannten Liste ohne an den USB-Port angeschlossene Stromversorgung und alle Widerstandswerte, die bei eingeschaltetem USB-Port wieder eine serielle Ausgabe erzeugten, ausprobiert.

Update: Wir arbeiten an der Theorie, dass dieses Schema aus dem Servicehandbuch ein Signal zeigt, das vom FSA9480 BOOT-Pin zu einem Signal namens BOOT_MODE geht, das in jeder vernünftigen Welt zum OM5-Pin des Anwendungsprozessorchips gehen würde. Aber wir haben nicht den vollständigen Schaltplan, um dies zu beweisen, und wir haben nicht die internen Details des FSA9480, um zu zeigen, wie dieser Pin ausgelöst wird. Sie würden denken, es wären die Widerstände mit BOOT_ON in ihren Namen (wie RID_FM_BOOT_ON_UART), aber anscheinend nicht. Oder vielleicht ist es das, aber das BOOT_MODE-Signal geht nicht an die richtige Stelle. So oder so würde das Datenblatt des FSAx80 dies bestätigen.

Ich habe den Start- und Bootloader-Downloadcode im internen ROM des Anwendungsprozessors (Samsung S5PC110) rückentwickelt und herausgefunden, dass wir bei Erfolg das erste Byte des Bootloader-Downloadprotokolls auf der seriellen Schnittstelle sehen sollten. Stattdessen erhalten wir die Ausgabe des primären Bootloaders, der von NAND geladen wird, was auf einen normalen Start hinweist.

Posten Sie die Links mit Leerzeichen darin und wir beheben das für Sie
Zwei Fragen: Wie werden Sie wissen, dass Sie erfolgreich waren? Und aus dem Datenblatt sieht es auch so aus, als ob der BOOT-Pin mit dem Basisbandprozessor verbunden ist. Mein Verständnis ist, dass dieser Chip den Mobilfunk übernimmt – nicht die höheren Funktionen – und dass das Spielen damit ein ernstes Tabu ist, soweit es die FCC betrifft. Was verstehen Sie unter dem Anschluss des BOOT-Pins?
Gute Updates, aber markieren Sie sie in Zukunft, damit wir wissen, dass es ein Update gab. Frage die dritte: Bist du bereit, eines dieser Telefone aufzubrechen und die Spuren zu überprüfen, um zu sehen, ob das Signal an der richtigen Stelle ankommt? Stellen Sie auch die vierte Frage: Was ist der Anwendungsprozessor? Ich würde gerne ein Datenblatt finden.
Danke, dass du den Link Endolith repariert hast. AngryEE, danke für Ihr Interesse, ich habe der Frage weitere Details hinzugefügt (letzte 2 Absätze). Es gibt ein schematisches Fragment im Servicehandbuch des Telefons, das den Basisbandprozessor zeigt, und es geht kein BOOT_MODE-Signal dorthin, also hoffe ich, dass es zum Anwendungsprozessor geht.
AngryEE, ja, ich war gestern Abend kurz davor, das zu tun, aber wenn man sich das Platinenlayout im Servicehandbuch ansieht, sieht es so aus, als müsste man den Anwendungsprozessor auslöten, um an den Prozessorpin zu gelangen, was meine Fähigkeiten und Werkzeuge übersteigt.
Haben Sie versucht, das Telefon zu booten, dmesg zu beobachten und die Widerstandswerte zu ändern? Ich würde versuchen, einen kontinuierlich variablen Widerstand über den erforderlichen Bereich einzurichten und seinen Wert langsam zu ändern. Ich würde erwarten, dass der Treiber Modusinformationen in dmesg ausgibt.
Aber die Bootloader-Download-Eingabeaufforderung wird höchstwahrscheinlich nur für kurze Zeit angezeigt, während das Telefon hochfährt - dann verschwindet es und versucht den normalen Betrieb. Ich denke, dass sie die Widerstandswerte ändern müssen, dann das Telefon starten, überprüfen, erneut versuchen usw.
@Mark danke, leider scheint es nur Widerstandsänderungen zu registrieren, wenn Sie den Stecker abziehen und dann wieder anschließen. Ich habe die langsame und schmerzhafte Methode versucht, jedem Wert in der Liste einen Widerstand zuzuweisen.
@thebeano - Aus dem Datenblatt geht hervor, dass der Chip nur so viele Möglichkeiten hat, festzustellen, ob das Kabel abgezogen wurde. fünf Leitungen sind nicht viel, um Relais zu verlöten, und wenn wir eine Reihe von Widerständen identifizieren können, die einen gültigen Wert erzeugen können, könnte es möglich sein, einen automatisierten Tester aufzubauen.
@AngryEE das ist eine gute Idee, aber ich bin mir nicht sicher, ob ich es so sehr will. Aber dazu kann es kommen. :-)
Lassen Sie mich die dumme Frage stellen: Das Blockdiagramm hat eine "Float-Erkennung". Ich bin mir nicht sicher, wie sie dies ohne einen internen Pullup tun würden (dh unter der Annahme, dass open == 'floating'). Sind Sie sicher, dass Sie einen Widerstand zwischen diesem Pin und VBUS_IN benötigen, im Gegensatz zu einem Widerstand zwischen diesem Pin und GND? Dh ein Pulldown statt Pullup? Wie hoch ist die Spannung an ID_CON? Wenn es nicht Null ist, ist es bei einem schwachen (100K+) Pulldown stabil? Wenn ja, dann sollten Sie vielleicht verschiedene Widerstandswerte zwischen ihm und GND ausprobieren.
Danke, tut mir leid, dass ich das nicht sehr klar ausgedrückt habe, es ist die Kombination aus Spannung oder keiner Spannung an VBUS_IN und Widerständen zwischen ID_CON und Masse, die ich betrachte. Obwohl ich mir das Blockdiagramm noch einmal ansehe, sollte ich vielleicht auch die Ladegeräterkennung betrachten, da dies ein weiterer Eingang zur Schaltersteuerung ist. Jedenfalls baue ich jetzt einen automatisierten Tester mit einem motorisierten Potentiometer (selbstgemacht, aus Lego!), um verschiedene Kombinationen auszuprobieren.
Haben Sie versucht, das Telefon mit Power + Vol Down zu starten, während das UART-Kabel angeschlossen war?

Antworten (2)

siehe http://forum.xda-developers.com/showthread.php?t=1206216 Ich habe dies mit meinem Captivate gemacht und es funktioniert. Ich kenne keine anderen Galaxy S-Handys. Sie sollten xda-dev für Ihr Telefon überprüfen, da möglicherweise jemand herausgefunden hat, wie es darauf geht.

Ein Link allein wird nicht als Antwort angesehen, bitte posten Sie die Informationen hier und fügen Sie einen Link als Referenz hinzu.

Guten Morgen, hier finden Sie Unterlagen

FSA9280

Das ist nur ein 5-seitiges „eingeschränktes Datenblatt“, obwohl es eine E-Mail-Adresse enthält, um das vollständige Datenblatt anzufordern, das dem OP helfen kann, wenn es dies noch nicht versucht hat. Wenn es jedoch nicht online veröffentlicht wird, ist möglicherweise eine NDA erforderlich und / oder nur für OEMs verfügbar.