Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Rownolegle pamieci FLASH - sposoby wykrywania JEDEC/CFI itd.

tplewa 03 Sie 2008 18:48 1199 2
  • #1 03 Sie 2008 18:48
    tplewa
    Poziom 38  

    Witam

    Pisze akurat programik (JTAG/EJTAG) ktory musi robic detekcje "potencjalnie nieznanej"
    pamieci FLASH. Jak wiadomo jest w tym od dluzszego czasu pewien syf...

    Chodzi glownie o odczytanie ID pamieci :)

    generalnie z metod odczytywania ID to:

    Adres (hex) = dana do wyslania (hex)

    JEDEC
    1. (Nie wiem jakich to pamieci dotyczy)
    flash_base + aaa = aa
    flash_base + 555 = 55
    flash_base + aaa = 90

    2. (AMD)
    flash_base + 555 = aa
    flash_base + 2aa = 55
    flash_base + 555 = 90

    3. (niektore pamieci SST)
    flash_base + 5555 = aa
    flash_base + 2aaa = 55
    flash_base + 5555 = 90

    4. (??? intel itp.)
    flash_base = 90

    Generalnie na intelu ktory testowalem wyslanie 90h dzial bez wzgledu na adres pod jaki wysylam to samo tyczy sie CFI czyli wyslanie 98.

    wejscie w CFI podobnie:


    2. (AMD)
    flash_base + 555 = aa
    flash_base + 2aa = 55
    flash_base + 555 = 98

    3. (niektore pamieci SST)
    flash_base + 5555 = aa
    flash_base + 2aaa = 55
    flash_base + 5555 = 98


    powrot do trybu odczytu flash_base = f0 lub ff...


    Generalnie pomysl jest taki:

    odczyt wartosci z flash_base... tmp1 = flash_base
    wykonanie jednej z w/w procedurek
    odczyt wartosci z flash_base... tmp2 = flash_base

    if tmp1 != tmp2 - ok odczyt ID itg.
    else wykonanie nastepnej procedury.

    To samo tyczy sie CFI i sprawdzenie stringu QRY...

    Pozostaje jeszcze ewentualna detekcja trybu pracy 16/32 bit i zmienionego w zwiazku z tym adresowania...

    Jak ktos zna jeszcze jakies inne metody ktorych tutaj nie ujeto bede wdzieczny za info. Jak narazie szukam wszelkich mozliwych ewenementow.
    Tak samo mile widziane jakies uwagi..

    0 2
  • #2 03 Sie 2008 22:00
    Zbych_
    Poziom 24  

    Może napisz w skrócie w czym jest problem? Przecież zawsze jeśli nie zadziała jedna metoda identyfikacji (nie rozpoznasz ID), to możesz spróbować innego zestawu komend. Czasami możesz mieć też taki problem, że procesor wymaga podłączenia pamięci 16-bitowych z szyną adresową przesuniętą w prawo (tzn. pin A0 pamięci jest podłączony do A1 procesora, tak mają np. Hitachi) i wszystkie offsety w adresach komend też trzeba przesuwać w prawo. Stąd też masz różnicę między opisem JEDEC a AMD - wymieszałeś opis komend dla dostępu 8 i 16-bitowego (który różni się właśnie przesunięciem offsetu o jeden bit w prawo).

    0
  • #3 04 Sie 2008 20:05
    tplewa
    Poziom 38  

    Cytat:

    Może napisz w skrócie w czym jest problem? Przecież zawsze jeśli nie zadziała jedna metoda identyfikacji (nie rozpoznasz ID), to możesz spróbować innego zestawu komend.


    Dzieki za odpowiedz..

    Generalnie to problemu nie ma :) glownie chodzi o zebranie wlasnie takich informacji jak podales i uwzglednienie ich w algorytmie sprawdzajacym.

    Ot zalozylem temat bo moj dostep do pamieci do ktorych mozna sie dopchac przez JTAG-a (w roznych ukladach) jest ograniczony. Natomiast przegladniecie wszystkich datascheet-ow jakie istnieja do pamiec FLASH to lekko glupawy pomysl ;)

    Dlatego powstal pomysl zadania takiego pytania, kazdy zapewne mial jakies doswiadczenia i cos sie uzbiera, aby napisac wmiare optymalny algorymt wykrywajacy.

    W sumiw wszystko zaczelo sie od 4R|\/|-JT4G Freddie Chopin-a :)
    A konkretnie jak jest juz kabel pod USB to dlaczego ma byc tylko do ARM-ow :) Sa programy uzywajace je do innych celow jednak roznie dzialaja.

    Wiec zaczelem sobie pisac samemu. Na pierwszy ogien poszly niezbyt popularne Broadcomy z modemow kablowych ;) czyli EJTAG i MIPS. Nastepnie poleci Xilinx CPLD/FPGA (a przynajmniej to co najczesciej uzywam). No i z czasem powstanie jakis maly kombajnik pod ten kabelek.

    A narazie to wyglada mniejwiecej tak:

    Rownolegle pamieci FLASH - sposoby wykrywania JEDEC/CFI itd.

    ...i mam nadzieje ze sie rozwinie.

    0