Forum: Mikrocontroller und Digitale Elektronik Problem mit Bootloader eines MT6582 SP


von Markus W. (dl8mby)


Lesenswert?

Hallo Forum,

ich spiele schon eine Weile mit einem Acer E700 Smartphone.
Dieses hat einen MediaTek MT6582 ARM-SoC verbaut.

Beim Hantieren mit SP_Flash_Tool habe ich mir wohl den
Preloader zerschossen (nur meine Annahme).

Jedenfalls komme ich nicht mehr in den fastboot Mode um das
fastboot Programm verwenden zu können.

Wenn ich das USB Kabel anschließe, das an einem Linux-PC hängt,
leuchtet der Frontflash kurz auf und die Lade-LED leuchtet blau.

Soweit die Fakten ;-)

Nun zu meiner Frage.

Ich bekomme abhängig von Treibern, die dem Kernel des Linux-PCs
zur Verfügung stehen unterschiedliche serielle Verbindungen im
device-Tree angezeigt.

Zeigt mir lsmod, dass cdc-acm.ko geladen ist, meldet sich das
SP mit /dev/ttyACM0 an.

dieses device ist dann einige Sekunden zu sehen und dann verschwindet
es aus dem /dev Tree um nach einigen Sekunden wieder aufzutauchen.

journalctl -f zeigt folgendes:
kernel: usb 4-1.8: new full-speed USB device number 6 using ehci-pci
kernel: usb 4-1.8: New USB device found, idVendor=0e8d, idProduct=0003
kernel: usb 4-1.8: New USB device strings: Mfr=0, Product=0, 
SerialNumber=0
kernel: cdc_acm 4-1.8:1.0: ttyACM0: USB ACM device
mtp-probe[2054]: checking bus 4, device 6: 
"/sys/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.8"
mtp-probe[2054]: bus: 4, device: 6 was not an MTP device
ModemManager[1331]: <info>  Creating modem with plugin 'Generic' and '1' 
ports
ModemManager[1331]: <warn>  Could not grab port (tty/ttyACM0): 'Cannot 
add port 'tty/ttyACM0', unhandled serial type'
ModemManager[1331]: <warn>  Couldn't create modem for device at 
'/sys/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.8': Failed to find 
primary AT port
kernel: usb 4-1.8: USB disconnect, device number 6


Deaktiviere ich den cdc_acm, indem ich das .ko-File umbenenne, 
erscheinet
das SP mit /dev/ttyUSB0 im device Tree.


journalctl -f zeigt nun:
kernel: usb 4-1.8: new full-speed USB device number 12 using ehci-pci
kernel: usb 4-1.8: New USB device found, idVendor=0e8d, idProduct=0003
kernel: usb 4-1.8: New USB device strings: Mfr=0, Product=0, 
SerialNumber=0
kernel: option 4-1.8:1.1: GSM modem (1-port) converter detected
kernel: usb 4-1.8: GSM modem (1-port) converter now attached to ttyUSB0
mtp-probe[18869]: checking bus 4, device 12: 
"/sys/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.8"
mtp-probe[18869]: bus: 4, device: 12 was not an MTP device
ModemManager[1331]: <warn>  (ttyUSB0): port attributes not fully set
ModemManager[1331]: <info>  Creating modem with plugin 'Generic' and '1' 
ports
ModemManager[1331]: <warn>  Could not grab port (tty/ttyUSB0): 'Cannot 
add port 'tty/ttyUSB0', unhandled serial type'
ModemManager[1331]: <warn>  Couldn't create modem for device at 
'/sys/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.8': Failed to find 
primary AT port
krnel: usb 4-1.8: USB disconnect, device number 12

Dieser Eintrag ist nach einigen Sekunden wieder weg, um dann wieder zu
erscheinen, wie schon bei /dev/ttyACM0.

> ls -ltr /dev/tty[AU]*
> sleep 2
> done
ls: cannot access '/dev/tty[AU]*': No such file or directory
ls: cannot access '/dev/tty[AU]*': No such file or directory
crw-rw---- 1 root dialout 188, 0 Feb 13 09:24 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:24 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:24 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:24 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 13 09:25 /dev/ttyUSB0
ls: cannot access '/dev/tty[AU]*': No such file or directory
ls: cannot access '/dev/tty[AU]*': No such file or directory



Was mich in dem Zusammenhang wundert ist, dass sich nun das SP als
GSM-Modem meldet. Und da das E700 drei SIM Kartenslots zur Verfügung
hat, stell ich mir die Frage, ob es auch neben dem (1-port) auch ein
(2-port) und (3-port) Device gibt.

Hat jemand hierzu einige Infos für mich, wie ich vorgehen soll, um den
Bootvorgang besser zu verstehen und eventuell doch noch das SP flashen
zu können.

Als Nächstes möchte ich, wenn ich mit dem USB-Kabel nicht weiter komme,
die einzelnen Testpunkte, die auf dem SP Mainboard vorhanden sind mit 
dem
Oszi untersuchen um eventuell ein JTAG IF zu finden.

Bilder zu den Test-Anschlüssen sind im

Beitrag "Acer Liquid E700 (3x SIM-Slot) - RS232 Console?"

Thread zu sehen, zu den sich leider das Feedback in
Grenzen gehalten hat.

Danke für Eure Hilfe und Infos.

Hoffentlich habe ich diesmal mehr Glück ;-)


Markus
DL8MBY

von Rainer U. (r-u)


Lesenswert?

Ich hatte mal ein ähnliches Problem: Fastboot bootete im Kreis / 
leuchtete nur kurz auf. Es stellte sich heraus, dass der Stromverbrauch 
in dieser Phase offenbar recht hoch war, so dass der Akku leer war und 
das Ladegerät mit Akku laden und diesem Modus überfordert war.

Also habe ich den Akku extern mit einem Modellbau-Ladegerät wieder 
aufgepäppelt, und dann konnte ich Fastboot wieder benutzen. Vielleicht 
hilft es auch bei Dir (Akku messen / laden)

von +++ (Gast)


Lesenswert?

Ich würde das Steck-&Spiel ja mal ausmachen und die Treiber händisch 
laden.

Bei z.B. den Friendly-ARMs (S3C24..) gibt es Debug-Treiber für USB im 
Boot-Modus.

Vielleicht hat dein SOC ja sowas auch.

von Markus W. (dl8mby)


Lesenswert?

Danke Rainer,
danke Gast,


Werde Eure Hinweise im Hinterkopf behalten.

Z.Z Lese ich das
"MT6582 HSPA+Smartphone Application Processor Technical Brief"
Version 1.0 von 2013-06-14 und hoffe etwas über den Bootvorgang
darin zu finden.

Das PIN-Layout des BGA Chips beinhaltet die folgende Pins,
die möglicherweise harausgeführt sind und auf die Test-Pads
gehen.

JTAG:
JTCK DIO JTCK DVDD18_IO4
JTDO DIO JTDO DVDD18_IO4
JTDI DIO JTDI DVDD18_IO4
JTMS DIO JTMS DVDD18_IO4


SYSTEM:
SYSRSTB   DIO System reset input DVDD18_IO0
TESTMODE  DIO Test mode          DVDD18_IO4

UART:
URXD0 DIO UART0 RX DVDD18_IO3
UTXD0 DIO UART0 TX DVDD18_IO3
URXD1 DIO UART1 RX DVDD18_IO3
UTXD1 DIO UART1 TX DVDD18_IO3
URXD2 DIO UART2 RX DVDD18_IO1
UTXD2 DIO UART2 TX DVDD18_IO1
URXD3 DIO UART3 RX DVDD18_IO1
UTXD3 DIO UART3 TX DVDD18_IO1

EFUSE:  <== kann dazu jemand was sagen???
FSOURCE_P  DIO E-FUSE blowing power control FSOURCE_P

USB:
USB_DP AIO USB port0 D+ differential data line AVDD33_USB
USB_DM AIO USB port0 D- differential data line AVDD33_USB
CHD_DP AIO BC1.1 Charger DP                    AVDD33_USB
CHD_DM AIO BC1.1 Charger DM                    AVDD33_USB
USB_VRT AO USB output for bias current;
               connect with 5.11K 1% Ohm to GND AVDD18_USB

Was mich auch interessieren würde, ob über den SD-Kartenslot
irgend eine File gelesen wird, um das System neu aufzusetzen
oder gar über die SIM-Anschlüsse und eine spezielle SIM oder
einen SIM-Adapter etwas ins Memory geladen werden kann.

Mir ist schon klar, dass das sehr interne Infos sind, an die es
schwer ran zukommen ist, aber vielleicht weiß ja jemand was dazu.

Das o.g. MT6582 Dokument ist ja auch "confidential" und trotzdem
kursiert es im Web.



Gruß
Markus
DL8MBY

PS.: ich habe noch drei von den o.g. SP's. zwei benutze ich und
ein dient als Playground-Backup, wenn beim Spielen etwas schief
gehen sollte. Leider hat es in diesem Fall noch nicht viel gebracht.
Sollte ich aber etwas daraus an FW auslesen können, könnte es jedoch
später hilfreich sein und das Problemkind wieder zu beleben.

Bin für weitere Vorschläge dankbar.

von Markus W. (dl8mby)


Lesenswert?

Rainer,

noch was zum Stromverbrauch.

Ich habe an das original USB-NT eine
USB-V/I-Anzeige zwischengeschaltet.
Es wird kein Stromfluß angezeigt (0.000A)
Das NT ist soweit OK, der interne SP-Akku
denke ich auch.
Ich habe aber eine Reserveakku und werde
es mal mit diesem ausprobieren.

Markus

PS.: Gegen Deine Theorie spricht auch, dass
das SP sich am USB-Port meldet. Der PC-USB-
Anschluß kann ja nicht soviel Strom liefern.
Das SP zieht aber im leeren Zustand am NT 1.4A.

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Hallo Forum und Mitleser.

Zur Info,


Vollständigkeitshalber falls jemand ein
ähnliches Problem mit MDTK SoCs hat.

Habe folgenden Link zum Preloader gefunden.

http://www.lieberbiber.de/2015/07/04/mediatek-details-partitions-and-preloader/

Muss ich mir erst verinnerlichen.

Markus

von Markus W. (dl8mby)


Lesenswert?

Hallo Forum,

habe gestern noch einige Messungen an den
Testpunkten auf der Platine vornehmen können.

siehe dazu mein Bild im Thraed

Beitrag "Re: Acer Liquid E700 (3x SIM-Slot) - RS232 Console?"

Kann zwar noch mit SP-Flash-Tool auf das SP Zugreifen
und z.B. Speicher löschen und auch lesen, aber nicht
beschreiben.

Lade ich mit vom anderen SP einen Block von 0x00000 bis 0xC00000,
dann kann ich diesen via SPFT zum Problem-SP schicken.
Ich sehe kurz den roten Balken mit 100% Anzeige und dann werden
die Werte des MT6582 Chips angezeigt, aber dann stürzt das SPFT
mit einem Core-Dump ab oder es kommen Fehler mit 54xx oder 100x.

Ich habe den Verdacht, dass mein Scatter-File, das SPFT benötigt
nicht ganz richtig ist.

Kann mir jemand erklären, welche Werte es für den type: SV5_BL_BIN
noch gibt? (Gibt es ein Value mit SV32_BL_BIN ?)
Können für den Parameter "file_name:" auch Pfade mit zu dem Image
angegeben werden?
In den Youtube Videos zum SPFT sieht man beim Laden des Scatter-Fils,
wie automatisch die Files in der Rechten Spalte mit übernommen werden.
Bie mir muss ich diese immer händisch angeben, da die rechte Spalte
immer leer beim Laden bleibt.

Hat jemand einen Link, wo man die Parameter-Spezifikation nachlesen 
kann.

- partition_index: SYS0
  partition_name: PRELOADER
  file_name: Preloader.bin
  is_download: true
  type: SV5_BL_BIN
  linear_start_addr: 0x0
  physical_start_addr: 0x0
  partition_size: 0xc00000
  region: EMMC_BOOT_1
  storage: HW_STORAGE_EMMC
  boundary_check: true
  is_reserved: false
  operation_type: BOOTLOADERS
  reserve: 0x00



Danke!

Markus
DL8MBY

von Markus W. (dl8mby)


Lesenswert?

Hallo Forum,

habe gerade gesehen, das es das SPFT auch in GITHUB als
Linux Source gibt. Kann jetzt selber auf die Suche nach
den möglichen Parametern fürs Scatterfile Ausschau halten.
Für einen Link zu einer guten Beschreibung wäre ich
trotzdem dankbar.

>find . -name \*.h -exec grep -H SV5 {} \;
./SP-Flash-Tool-src-master-1/BootRom/flashtoolex_struct.h: 
TYPE_SV5_BL_BIN      = 0x07,
./SP-Flash-Tool-src-master-1/BootRom/flashtool_handle.h:    // used in 
chips for SV5
./SP-Flash-Tool-src-master-1/BootRom/flashtool_handle.h:    NORMAL_ROM 
= 0x01,         //kghost:SV5 it is
./SP-Flash-Tool-src-master-1/BootRom/flashtool_handle.h:    SV5_BL_BIN 
= 0x07,
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:    /* SV5 ANDROID { 
*/
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:    /* SV5 ANDROID } 
*/
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:// SV5 - MT6276
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:// MT6276 SV5 
Bootloader
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:    /* SV5 ANDROID { 
*/
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:    /* SV5 ANDROID } 
*/
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:// SV5 - MT6276
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:// SV5 MT6276
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:/* SV5 ANDROID { */
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h:/* SV5 ANDROID } */
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_PUBK_AUTH_FAIL       = 0xC002000E
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_HASH_VFY_FAIL        = 0xC002000F
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_RSA_OP_FAIL          = 0xC0020010
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_RSA_VFY_FAIL         = 0xC0020011
./SP-Flash-Tool-src-master-1/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_GFH_NOT_FOUND        = 0xC0020012
./SP-Flash-Tool-src-master/BootRom/flashtoolex_struct.h: 
TYPE_SV5_BL_BIN      = 0x07,
./SP-Flash-Tool-src-master/BootRom/flashtool_handle.h:    // used in 
chips for SV5
./SP-Flash-Tool-src-master/BootRom/flashtool_handle.h:    NORMAL_ROM 
= 0x01,         //kghost:SV5 it is
./SP-Flash-Tool-src-master/BootRom/flashtool_handle.h:    SV5_BL_BIN 
= 0x07,
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:    /* SV5 ANDROID { */
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:    /* SV5 ANDROID } */
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:// SV5 - MT6276
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:// MT6276 SV5 Bootloader
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:    /* SV5 ANDROID { */
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:    /* SV5 ANDROID } */
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:// SV5 - MT6276
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:// SV5 MT6276
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:/* SV5 ANDROID { */
./SP-Flash-Tool-src-master/BootRom/mtk_status.h:/* SV5 ANDROID } */
./SP-Flash-Tool-src-master/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_PUBK_AUTH_FAIL       = 0xC002000E
./SP-Flash-Tool-src-master/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_HASH_VFY_FAIL        = 0xC002000F
./SP-Flash-Tool-src-master/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_RSA_OP_FAIL          = 0xC0020010
./SP-Flash-Tool-src-master/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_RSA_VFY_FAIL         = 0xC0020011
./SP-Flash-Tool-src-master/BootRom/mtk_status.h: 
,STATUS_SEC_SV5_GFH_NOT_FOUND        = 0xC0020012
pc3bs:~/Elektrotechnik/ARM/MT6582/SP-Flash-Tool-src #
>find . -name \*.h -exec grep -H _BL_BIN {} \;
./SP-Flash-Tool-src-master-1/BootRom/flashtoolex_struct.h: 
TYPE_SV5_BL_BIN      = 0x07,
./SP-Flash-Tool-src-master-1/BootRom/flashtool_handle.h:    SV5_BL_BIN 
= 0x07,
./SP-Flash-Tool-src-master/BootRom/flashtoolex_struct.h: 
TYPE_SV5_BL_BIN      = 0x07,
./SP-Flash-Tool-src-master/BootRom/flashtool_handle.h:    SV5_BL_BIN 
= 0x07,

Anscheinend ist neben dem SV5_BL_BIN = 0x07 type auch

NORMAL_ROM      = 0x01,
RESOURCE_BIN    = 0x02,
JUMPTABLE_BIN   = 0x03,
ENFB_BIN        = 0x04,
UA_BIN          = 0x05,
BL_BIN          = 0x06,

SV5_BL_BIN      = 0x07,

YAFFS_IMG       = 0x08,
MBR_BIN         = 0x09,
UBI_IMG         = 0x10,
EXT4_IMG        = 0x11,
FAT_IMG         = 0x12,
F2FS_IMG        = 0x13,
FTL20_IMG       = 0x20,
UNKNOWN_BIN     = 0xFF

als Parameter im Scatter-File erlaubt und steht für ROM_TYPE.

Soweit mein jetziger Einblick.

Ist wohl eine mühselige Sache ein Custom-ROM für ein nicht sehr
verbreitetes SP zu installieren und die möglichen Stolperfallen,
die lauern überall.

Markus
DL8MBY

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.