Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

SAMSUNG nand unqie ID
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=8159
Страница 1 от 1

Автор:  mitkoradev [ Чет Сеп 30, 2010 3:09 pm ]
Заглавие:  SAMSUNG nand unqie ID

Здравейте колеги, най-после се наканих да се регистрирам във форума след като от доста време го следя.
На няколко пъти се канех, ама все някак успявах да подкарам или закърпя нещата - я нещо с усб-пик, я с етхернет-пик и после като изчезнеше нуждата ме домързяваше...
Е тоз път нямам належаща нужда, ама все пак да питам
Ползваме едни китайски компютърчета с АРМ процесор и флаш самсунг k9f1208UOC, в който има уникално ИД, но не мога да намеря информация как да го прочета. Има някаква спецификация опеннанд на интел, сони и други (без самсунг ) и естествено с командата написана там 0хED не се получи нищо (предполагам,че иначе пращам правилно командите към чипа, понеже реад девице ИД 0х90 чете правилно типа на чипа)

Ако случйно някой има опит ще се радвам да споредели.

Автор:  miro_atc [ Чет Сеп 30, 2010 9:28 pm ]
Заглавие: 

Предполагам не е описано в дейташит?

аз преди време бях чел нещо, ама не мога да го намеря....


Но пък сега намирам това >цък<

тук има подробности за други чипове на самсунг, пробвай.. ако имаш късмет може да стане ;-)

Автор:  head_up [ Чет Сеп 30, 2010 10:23 pm ]
Заглавие: 

mitkoradev, би ли качил даташита, който имаш, че гуглето нещо се гъбарка по темата...

Автор:  mitkoradev [ Пет Окт 01, 2010 12:40 am ]
Заглавие: 

Това би трябвало а е даташеета http://www1.futureelectronics.com/doc/SAMSUNG/K9F1208U0C-PIB0000.pdf
Горния уж е за друг флаш,ама може да пробвам нещо от там ...
По приницп не е наложително,идеята е да сложа на софтуера някакъв копи протекшън ако стане така, а това е единствения компонент с нещо уникално в него в компютърчето което ползваме ( АРМ процесора е s3c2440 и предполагам няма такова нещо освен ако не съм супер кьорав в даташеета му,а етхернет чипа е със софтуерен мак само) , ако ли не здраве да е...

Автор:  TheWizard [ Пет Окт 01, 2010 10:08 am ]
Заглавие: 

Аз като гледам тоз чип има само цмд 90 - 4 байта инфо чип ID

Автор:  miro_atc [ Пет Окт 01, 2010 10:59 am ]
Заглавие: 

Пише че има unique ID, което по принцип се прави с OTP... и действително в една друга версия на шита се казва:

The device includes one block sized OTP(One Time Programmable), which can be used to increase system security or to provide
identification capabilities. Detailed information can be obtained by contact with Samsung.

Автор:  Ники [ Пет Окт 01, 2010 11:53 am ]
Заглавие: 

Виждам че при новите NAND флашове производителите почват да крият datasheet-овете под NDA.
До скоро Nymonix имаше хубави памети с данни за тях.
Вчера провокиран от тази тема погледнах какви са кодовете при тях и с изненада установих че са купени от Micron, и данните за чиповете са покрити.

Автор:  mitkoradev [ Пет Окт 01, 2010 11:55 am ]
Заглавие: 

Двата даташийта са за различни чипове тоз А модел изглежда е с повече функционалност от моя Ц модел ( като възможна организация х16,и това Multi Plane Operation, Copy Back Operation), та нищо чудно в Ц варианта и ОТП блока да е орязан щом не се споменава изрично.

Иначе дефиницята според Open NAND Flash Interface Specification:Block Abstracted NAND е:

Read Unique ID Definition
The Read Unique ID function is used to retrieve the 16 byte unique ID (UID) for the device. The
unique ID when combined with the device manufacturer shall be unique.

Автор:  gicho [ Пон Окт 04, 2010 9:57 pm ]
Заглавие: 

Аз като гледам, това unique id (OTP) си е зона дето май е празна, а идеята е клиента да си запише нещо там, че да стане устройство-уникат? Доколкото разбирам въпроса, вие очаквате това да е вече програмиран във фабриката номер?

Ако ползвате китайски платки с s3c2440, предполагам ползвате линукс или wince за ОС?
Ако да, то и в двете има драйвери, дето четат подобни информации, и би трябвало да поддържат команда за четене на това.
Ако е линукс ще помагам, ползвал съм го на "подобна" платка ;-)

Отделно, по тия платки обикновено има по един i2c еепром за писане. Вярно, че не е никак сигурно, ама алгоритми за криптиране / хеш колкото искаш.

Автор:  TheWizard [ Вто Окт 05, 2010 12:20 am ]
Заглавие: 

The unique ID when combined with the device manufacturer shall be unique.

го ползваха Сименс GSM и правеха Phone ID

Код:

void InitFlashInfo(void){
     HVAR (unsigned short, 0x804AAA) = 0xAA;
     HVAR (unsigned short, 0x804554) = 0x55;
     HVAR (unsigned short, 0x804AAA) = 0x90;
}

void SendFlashAlias(void){   
     InitFlashInfo();
   SendChar(HVAR (char,  0x804002));
     SendChar(HVAR (char,  0x804000));
     HVAR (unsigned short, 0x804AAA) = 0xFF;
}

void SendFlashIMEI(void){
unsigned long i;
   InitFlashInfo();
   for (i = 0; i < 8; i++)
      SendChar(HVAR (char, 0x80410A+i));
   HVAR (unsigned short, 0x804AAA) = 0xFF;
}

void SendPhoneID_1(void){

}

void main (void)  {
unsigned long i;
   SendFlashAlias();
   SendFlashIMEI();
   SendPhoneID_1();
   for (i = 0x20000; i < 0x20010; i++) SendChar(MVAR (char, i) &  0xFF);

   while (1){;}
}                           




за повчето флашове Header зоната се чете подобно през ААА и 554, 555 лошото че самсунг не е в повечето флашове

Автор:  mitkoradev [ Вто Окт 05, 2010 2:38 pm ]
Заглавие: 

Ползваме виндовс ЦЕ 6, в дривера за флаша има доста функции които не са имплементирани (само принтват дебуг съобщения).
И2Ц-то ЕЕПРОМ-а го ползвам, но не с такава цел (съхранявам си там настройките). Идеята е да не може елементарно да се копира всичко на друга платка ( нещо от рода да не може тези които правят устройството да копират и продадат 1000 устройства и да кажат, че са направили и продали 10 , ако си има хардуерен номер друга е работата, колкото унлок кода дадем толкова устройства ще има ) затова нещо като този еепром-а не върши работа (винаги може да се запише каквото си иска човек).

А иначе сега ще пробвам с предния код. Понеже работя с флаша с едни макроси не мога да напиша направо

HVAR (unsigned short, 0x804AAA) = 0xAA;

предполагам трябва да го направя на

Код:

NF_CMD (0x00);//бит 8 на 0x804AAA е 0

NF_CMD (0x80);//write

NF_ADDR (0x804AAA & 0xff);
NF_ADDR ((0x804AAA>>9) & 0xff);
NF_ADDR ((0x804AAA>>17) & 0xff);
NF_ADDR ((0x804AAA>>25) & 0xff);

NF_DATA_W (0xAA);
NF_DATA_W (0x00);//предполагам 0xAA е 16 бита LSB first

//   NF_CMD(0x10);  // предполагам не трябва да запускам същинското писане по флаша? все пак адреса е валиден


Флаша е 64 МБ и тези адреси 0x804AAA са валидни, затова предполагам ,че не трябва да запускам същинския запис, а само да заредя стойостите.

Сега като гледах кода на дривера се замислих да не би това 0x804AAA да е сектор адреса и да трябва да го задам
Код:
NF_ADDR ( 0 );
NF_ADDR ((0x804AAA>>0) & 0xff);
NF_ADDR ((0x804AAA>>8) & 0xff);
NF_ADDR ((0x804AAA>>16) & 0xff);

Уж според даташеета в четвъртия цикъл за адрес само младшия бит се гледа, а другите трябва да са нули.
Естествено ще пробвам и двата начина.

...

Явно не се получи, и по двате ми разбирания за адреса, и преди, и след магическата последователност се четат еднакви данни.

Автор:  TheWizard [ Вто Окт 05, 2010 3:23 pm ]
Заглавие: 

#define MVAR(object, addr) (*((object volatile far *) (addr)))
#define HVAR(object, addr) (*((object volatile huge *) (addr)))

0x804000 беше физическия адрес на флаша
ще извиняваш ама съм го писал 2005 и трябва да се ровя из CD-тата да вида кое какво беше

търси из гугъла Flash ID 0xAAA, 0x555
и наистина незнам самсунга дали има адреси ааа и 555

Автор:  TheWizard [ Вто Окт 05, 2010 3:35 pm ]
Заглавие: 

Код:
GetFlashAlias PROC
      mov   DPP1, #200h
      mov   r12, #4000h
      mov   r11, #4AAAh
      mov   r10, #4555h
      mov   r4,  #55AAh
      mov   r3,  #90FFh
      movb   [r11], rl4
      movb   [r10], rh4
      movb   [r11], rh3
      mov   r0, #Flash_HC_RAM_loc
      mov   r5, [r12+#0]
      mov   r6, [r12+#2]
      movb   [r0+#0], rl5
      movb   [r0+#1], rh5
      movb   [r0+#2], rl6
      movb   [r0+#3], rh6
      movb   [r11],   rl3
      movb   rh5, rl6
        mov    r9, r5    
      mov      r3, r9   
      call   cc_UC,    TxWord                   
      ret
GetFlashAlias ENDP

GetFlashImei PROC
      mov   DPP0,    #0
      mov   DPP1,    #200h
      mov   r12,    #4000h
      mov   r11,    #4AAAh
      mov   r10,    #4555h
      mov   r4,    #55AAh
      mov   r3,    #90h
      movb      [r11], rl4
      movb      [r10], rh4
      movb      [r11], rl3
      mov   r5,    #410Ah
      mov   r2,    #7
loc_2B0:   
      movb   rl3, [r5+]
      call   cc_UC, TxByte
      sub   r2, #1
      jmpr   cc_NZ, loc_2B0
      ret
GetFlashImei ENDP


асемблер - инфинеон
IMEI се намираше точно във хидър зоната на флаша

Автор:  mitkoradev [ Вто Окт 05, 2010 3:41 pm ]
Заглавие: 

Хмм, флаша ми няма физически адрес, не е мапнат в никъде в адресното пространсто, чета го през НАНД-контролер-периферията на процесора (която си има адрес) и през нея задавм адреси за четене/запис.
Може би говориш за NOR-flash ?

Автор:  TheWizard [ Вто Окт 05, 2010 3:44 pm ]
Заглавие: 

мисля че флашовете бяха НАНД(интел и амд) и адреса е НАНД-контролер-периферията

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/