summaryrefslogtreecommitdiff
path: root/utils/imxtools/scsitools/scsitool.c
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-07-03 01:05:00 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-07-03 01:05:00 +0200
commit00faabef5e902008172e08d3bcd77683cbafef51 (patch)
treebf70a609d2d8c9b4e87262fbea8f649179ea85ee /utils/imxtools/scsitools/scsitool.c
parent20ee453edce207a4285638f0399926b0b9f506df (diff)
downloadrockbox-00faabef5e902008172e08d3bcd77683cbafef51.tar.gz
rockbox-00faabef5e902008172e08d3bcd77683cbafef51.zip
imx233: document some more stmp vendor scsi command
Change-Id: Ie03c0c8288b4bd9c0b4beedae363cff6caf3c5cd
Diffstat (limited to 'utils/imxtools/scsitools/scsitool.c')
-rw-r--r--utils/imxtools/scsitools/scsitool.c71
1 files changed, 57 insertions, 14 deletions
diff --git a/utils/imxtools/scsitools/scsitool.c b/utils/imxtools/scsitools/scsitool.c
index 8ef2774f32..8c124ee9f3 100644
--- a/utils/imxtools/scsitools/scsitool.c
+++ b/utils/imxtools/scsitools/scsitool.c
@@ -344,6 +344,46 @@ static int stmp_get_logical_drive_info(uint8_t drive, uint8_t info, void *data,
344 return do_sense_analysis(ret, sense, sense_size); 344 return do_sense_analysis(ret, sense, sense_size);
345} 345}
346 346
347static const char *stmp_get_logical_media_type_string(uint32_t type)
348{
349 switch(type)
350 {
351 case SCSI_STMP_MEDIA_TYPE_NAND: return "NAND";
352 case SCSI_STMP_MEDIA_TYPE_SDMMC: return "SD/MMC";
353 case SCSI_STMP_MEDIA_TYPE_HDD: return "HDD";
354 case SCSI_STMP_MEDIA_TYPE_RAM: return "RAM";
355 case SCSI_STMP_MEDIA_TYPE_iNAND: return "iNAND";
356 default: return "?";
357 }
358}
359
360static const char *stmp_get_logical_media_vendor_string(uint32_t type)
361{
362 switch(type)
363 {
364 case SCSI_STMP_MEDIA_VENDOR_SAMSUNG: return "Samsung";
365 case SCSI_STMP_MEDIA_VENDOR_STMICRO: return "ST Micro";
366 case SCSI_STMP_MEDIA_VENDOR_HYNIX: return "Hynix";
367 case SCSI_STMP_MEDIA_VENDOR_MICRON: return "Micron";
368 case SCSI_STMP_MEDIA_VENDOR_TOSHIBA: return "Toshiba";
369 case SCSI_STMP_MEDIA_VENDOR_RENESAS: return "Renesas";
370 case SCSI_STMP_MEDIA_VENDOR_INTEL: return "Intel";
371 case SCSI_STMP_MEDIA_VENDOR_SANDISK: return "Sandisk";
372 default: return "?";
373 }
374}
375
376static const char *stmp_get_logical_drive_type_string(uint32_t type)
377{
378 switch(type)
379 {
380 case SCSI_STMP_DRIVE_TYPE_USER: return "User";
381 case SCSI_STMP_DRIVE_TYPE_SYSTEM: return "System";
382 case SCSI_STMP_DRIVE_TYPE_DRM: return "DRM";
383 default: return "?";
384 }
385}
386
347static int do_work(void) 387static int do_work(void)
348{ 388{
349 cprintf(BLUE, "Information\n"); 389 cprintf(BLUE, "Information\n");
@@ -389,11 +429,12 @@ static int do_work(void)
389 } 429 }
390 430
391 len = 4; 431 len = 4;
392 ret = stmp_get_logical_media_info(6, &u.u32, &len); 432 ret = stmp_get_logical_media_info(SCSI_STMP_MEDIA_INFO_TYPE, &u.u32, &len);
393 if(!ret && len == 4) 433 if(!ret && len == 4)
394 { 434 {
395 u.u32 = fix_endian32be(u.u32); 435 u.u32 = fix_endian32be(u.u32);
396 cprintf_field(" Logical Media Info (6): ", "%#x\n", u.u32); 436 cprintf_field(" Media Type: ", "%#x", u.u32);
437 cprintf(RED, " (%s)\n", stmp_get_logical_media_type_string(u.u32));
397 } 438 }
398 439
399 len = 1; 440 len = 1;
@@ -406,7 +447,7 @@ static int do_work(void)
406 if(!ret && len == 8) 447 if(!ret && len == 8)
407 { 448 {
408 u.u64 = fix_endian64be(u.u64); 449 u.u64 = fix_endian64be(u.u64);
409 cprintf_field(" Logical Media Info (1): ", "%#llx\n", u.u64); 450 cprintf_field(" Logical Media Info (1): ", "%#llx\n", (unsigned long long)u.u64);
410 } 451 }
411 452
412 len = 4; 453 len = 4;
@@ -436,11 +477,12 @@ static int do_work(void)
436 cprintf_field(" Logical Media Info (9): ", "%#x\n", u.u8); 477 cprintf_field(" Logical Media Info (9): ", "%#x\n", u.u8);
437 478
438 len = 4; 479 len = 4;
439 ret = stmp_get_logical_media_info(12, &u.u32, &len); 480 ret = stmp_get_logical_media_info(SCSI_STMP_MEDIA_INFO_VENDOR, &u.u32, &len);
440 if(!ret && len == 4) 481 if(!ret && len == 4)
441 { 482 {
442 u.u32 = fix_endian32be(u.u32); 483 u.u32 = fix_endian32be(u.u32);
443 cprintf_field(" Logical Media Info (12): ", "%#x\n", u.u32); 484 cprintf_field(" Media Vendor: ", "%#x", u.u32);
485 cprintf(RED, " (%s)\n", stmp_get_logical_media_vendor_string(u.u32));
444 } 486 }
445 487
446 len = 8; 488 len = 8;
@@ -448,7 +490,7 @@ static int do_work(void)
448 if(!ret && len == 8) 490 if(!ret && len == 8)
449 { 491 {
450 u.u64 = fix_endian64be(u.u64); 492 u.u64 = fix_endian64be(u.u64);
451 cprintf_field(" Logical Media Info (13): ", "%#llx\n", u.u64); 493 cprintf_field(" Logical Media Info (13): ", "%#llx\n", (unsigned long long)u.u64);
452 } 494 }
453 495
454 len = 4; 496 len = 4;
@@ -525,11 +567,11 @@ static int do_work(void)
525 cprintf_field(" Drive ", "%02x\n", drive); 567 cprintf_field(" Drive ", "%02x\n", drive);
526 568
527 int len = 4; 569 int len = 4;
528 ret = stmp_get_logical_drive_info(drive, 0, &u.u32, &len); 570 ret = stmp_get_logical_drive_info(drive, SCSI_STMP_DRIVE_INFO_SECTOR, &u.u32, &len);
529 if(!ret && len == 4) 571 if(!ret && len == 4)
530 { 572 {
531 u.u32 = fix_endian32be(u.u32); 573 u.u32 = fix_endian32be(u.u32);
532 cprintf_field(" Info 0: ", "%#x\n", u.u32); 574 cprintf_field(" Sector Size: ", "%#x\n", u.u32);
533 } 575 }
534 576
535 len = 4; 577 len = 4;
@@ -541,11 +583,11 @@ static int do_work(void)
541 } 583 }
542 584
543 len = 8; 585 len = 8;
544 ret = stmp_get_logical_drive_info(drive, 2, &u.u64, &len); 586 ret = stmp_get_logical_drive_info(drive, SCSI_STMP_DRIVE_INFO_SIZE, &u.u64, &len);
545 if(!ret && len == 8) 587 if(!ret && len == 8)
546 { 588 {
547 u.u64 = fix_endian64be(u.u64); 589 u.u64 = fix_endian64be(u.u64);
548 cprintf_field(" Info 2: ", "%#llx\n", u.u64); 590 cprintf_field(" Total Size: ", "%#llx\n", (unsigned long long)u.u64);
549 } 591 }
550 592
551 len = 4; 593 len = 4;
@@ -557,19 +599,20 @@ static int do_work(void)
557 } 599 }
558 600
559 len = 8; 601 len = 8;
560 ret = stmp_get_logical_drive_info(drive, 4, &u.u64, &len); 602 ret = stmp_get_logical_drive_info(drive, SCSI_STMP_DRIVE_INFO_COUNT, &u.u64, &len);
561 if(!ret && len == 8) 603 if(!ret && len == 8)
562 { 604 {
563 u.u64 = fix_endian64be(u.u64); 605 u.u64 = fix_endian64be(u.u64);
564 cprintf_field(" Info 4: ", "%#llx\n", u.u64); 606 cprintf_field(" Sector Count: ", "%#llx\n", (unsigned long long)u.u64);
565 } 607 }
566 608
567 len = 4; 609 len = 4;
568 ret = stmp_get_logical_drive_info(drive, 5, &u.u32, &len); 610 ret = stmp_get_logical_drive_info(drive,SCSI_STMP_DRIVE_INFO_TYPE, &u.u32, &len);
569 if(!ret && len == 4) 611 if(!ret && len == 4)
570 { 612 {
571 u.u32 = fix_endian32be(u.u32); 613 u.u32 = fix_endian32be(u.u32);
572 cprintf_field(" Info 5: ", "%#x\n", u.u32); 614 cprintf_field(" Type: ", "%#x", u.u32);
615 cprintf(RED, " (%s)\n", stmp_get_logical_drive_type_string(u.u32));
573 } 616 }
574 617
575 len = 1; 618 len = 1;