Отговори на тема  [ 15 мнения ] 
SAMSUNG nand unqie ID 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Сеп 30, 2010 2:37 pm
Мнения: 21
Местоположение: Варна
Мнение SAMSUNG nand unqie ID
Здравейте колеги, най-после се наканих да се регистрирам във форума след като от доста време го следя.
На няколко пъти се канех, ама все някак успявах да подкарам или закърпя нещата - я нещо с усб-пик, я с етхернет-пик и после като изчезнеше нуждата ме домързяваше...
Е тоз път нямам належаща нужда, ама все пак да питам
Ползваме едни китайски компютърчета с АРМ процесор и флаш самсунг k9f1208UOC, в който има уникално ИД, но не мога да намеря информация как да го прочета. Има някаква спецификация опеннанд на интел, сони и други (без самсунг ) и естествено с командата написана там 0хED не се получи нищо (предполагам,че иначе пращам правилно командите към чипа, понеже реад девице ИД 0х90 чете правилно типа на чипа)

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


Чет Сеп 30, 2010 3:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Предполагам не е описано в дейташит?

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


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

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


Чет Сеп 30, 2010 9:28 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Юни 01, 2008 9:54 pm
Мнения: 1503
Местоположение: Пловдив
Мнение 
mitkoradev, би ли качил даташита, който имаш, че гуглето нещо се гъбарка по темата...


Чет Сеп 30, 2010 10:23 pm
Профил WWW
Ранг: Минаващ
Ранг: Минаващ

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


Пет Окт 01, 2010 12:40 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Аз като гледам тоз чип има само цмд 90 - 4 байта инфо чип ID

_________________
main[-1u]={1};


Пет Окт 01, 2010 10:08 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Пише че има 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 10:59 am
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 30, 2004 11:19 pm
Мнения: 609
Мнение 
Виждам че при новите NAND флашове производителите почват да крият datasheet-овете под NDA.
До скоро Nymonix имаше хубави памети с данни за тях.
Вчера провокиран от тази тема погледнах какви са кодовете при тях и с изненада установих че са купени от Micron, и данните за чиповете са покрити.


Пет Окт 01, 2010 11:53 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Сеп 30, 2010 2:37 pm
Мнения: 21
Местоположение: Варна
Мнение 
Двата даташийта са за различни чипове тоз А модел изглежда е с повече функционалност от моя Ц модел ( като възможна организация х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.


Пет Окт 01, 2010 11:55 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение 
Аз като гледам, това unique id (OTP) си е зона дето май е празна, а идеята е клиента да си запише нещо там, че да стане устройство-уникат? Доколкото разбирам въпроса, вие очаквате това да е вече програмиран във фабриката номер?

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

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


Пон Окт 04, 2010 9:57 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
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 лошото че самсунг не е в повечето флашове

_________________
main[-1u]={1};


Вто Окт 05, 2010 12:20 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Сеп 30, 2010 2:37 pm
Мнения: 21
Местоположение: Варна
Мнение 
Ползваме виндовс ЦЕ 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);

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

...

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


Последна промяна mitkoradev на Вто Окт 05, 2010 3:30 pm, променена общо 1 път



Вто Окт 05, 2010 2:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
#define MVAR(object, addr) (*((object volatile far *) (addr)))
#define HVAR(object, addr) (*((object volatile huge *) (addr)))

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

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

_________________
main[-1u]={1};


Вто Окт 05, 2010 3:23 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Код:
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 се намираше точно във хидър зоната на флаша

_________________
main[-1u]={1};


Вто Окт 05, 2010 3:35 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Сеп 30, 2010 2:37 pm
Мнения: 21
Местоположение: Варна
Мнение 
Хмм, флаша ми няма физически адрес, не е мапнат в никъде в адресното пространсто, чета го през НАНД-контролер-периферията на процесора (която си има адрес) и през нея задавм адреси за четене/запис.
Може би говориш за NOR-flash ?


Вто Окт 05, 2010 3:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
мисля че флашовете бяха НАНД(интел и амд) и адреса е НАНД-контролер-периферията

_________________
main[-1u]={1};


Вто Окт 05, 2010 3:44 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 15 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни