March 5th, 2013, 18:09
set_wd_vsc_mode(ON)
set_wd_vsc_mode: OK
send_wd_cmd() (command=000C)(p1=0001)(p2=FFFF) (p3=FFFF) (p4=0000) (p5=0001) (p6=000A)
send_wd_cmd: error register is on. aborting...
Drive Error Register: 0004
No Address Mark = 0
No Media or Media Error = 0
Command Aborted = 1
No Media or Media Error = 0
ID mark not Found = 0
No Media or Media Error = 0
Uncorrectable Data Error= 0
Bad Sectors = 0
ATA Registers:
ATA_ERROR = 0004
ATA_NSECTOR = 0041
ATA_SECTOR = 0043
ATA_LCYL = 0000
ATA_HCYL = 0000
ATA_DRV_HEAD = 00A0
ATA_STATUS = 0051
Drive Status register: 0051
Drive Busy = 0
Drive Ready = 1
ATA_SR_DF = 0
Seek Complete = 1
Data Request = 0
ATA_SR_CORR = 0
ATA_SR_IDX = 0
Error = 1
VSC error code not decoded for : 0x4341
wd_read_pchs: send_wd_cmd failed, aborting
set_wd_vsc_mode(OFF)
set_wd_vsc_mode: OK
March 5th, 2013, 19:13
Spildit wrote:VSC error code not decoded for : 0x4341
ATA_NSECTOR = 0041
ATA_SECTOR = 0043
Maybe related ?
Spildit wrote:Do you have a working WD drive to test with ?
March 5th, 2013, 19:32
VSC error code decoded: 0xB007 -->> VSCE_INV_HEAD_NUMMarch 5th, 2013, 19:41
March 5th, 2013, 19:56
March 5th, 2013, 20:24
March 5th, 2013, 21:01
Spildit wrote:WDC WD3000JB-00KFA0-08-05J08-WD-WCAMR3501171
ROM attached
Just for comparing purpose.
March 7th, 2013, 20:53
March 8th, 2013, 9:33
louis wrote:Yes my friends
March 8th, 2013, 14:22
March 8th, 2013, 21:18
Header of "kernel loader" is on 0x00000000 of Flash (physical addr: 0xfff00000)
in size of 0x20 with CHK
---------------------------
0x5a ;Header ID
04,0,0 ;?
0xd,0xc,0,0 ;=0x00000c0d size of "kernel loader" + CHK
0xc,0xc,0,0 ;=0x00000c0c size of "kernel loader"
0x20,1,0,0 ;=0x00000120 start of "kernel loader" data in FLASH (physical addr 0xfff00120)
0x80,0xa,1,0 ;=0x00010a80 physical addr where "kernel loader" have to be loaded
0x80,0xa,1,0 ;=0x00010a80 physical addr of execute start once "kernel loader" is loaded
0,0,0 ;?
0xd1 ;Header ID CHK 8-bit cheksum of first 0x1f bytes of "kernel loader" header
For this case bootstrap loads "kernel loader" to addr: 0x0x00010a80 in size 0x00000c0c
calculate 8 bit cheksum and compare with next byte (offset + 0x00000c0c)March 9th, 2013, 5:39
VSC Status
-----------
Format Version = 1
VSC Implementation, Minor = 1
VSC Implementation, Major = 4
Max Action Code Supported = 47
Last Cmd Type = VSC Key CMD
Last Cmd Register = 0xB0
Last VSC Cmd Action Code = 0x0C
Last Feature Register = 0xD6
Last Sector Count Register = 0x1
Last Sector Number Register = 0xBE
Last Cylinder Register = 0xFFFFC24F
Last LBA High = 0x0
Last Device Control Register = 0x68
Last Device/head Register = 0xA0
Last Task File Response = 0x104
Extended Error = 0x4341
Extended Error Description = ()
Secondary Error Code = 0x0
Host Connection Speed = NOT SUPPORTED
APM Level = 0x0
Sectors Xfer Pending to/from drive = 0 (0x0)
Last Task File Data = 0x81
DLG_II Status = 0x0March 9th, 2013, 20:44
typedef struct Dir32SecBiosHeader
{
byte ID; //[Byte 00] Header ID 0x5A it's called "kernel loader"...it loads and unpacks all the others...being executed by the MCU's bootstrap?
byte type; //[Byte 01]?? 1,3 compressed?
short decomp_sizeH; //[Bytes 02:03] higher 16bit of the decompressed size ??
int dir_size; //Directory Size without checksum byte
int dir_Size; // -``- + CKS
int dir_start; //The offset in this file where dir starts
int vir_addr; //Mem addr Where the MCU's Bootstarp or the "kernel loader" (0x5a = first block-not compressed) loads and unpack the data
int entry_point; //The EP for this directosy. Gets called if needs exec. if this is -1 won't be executed;
byte UNK4[4]; //01 0A 00 00
short decomp_sizeL; //lower 16bit of the decompressed size
byte pad;
byte CKS; //checksum is calculated over all buffer but the crc byte
}Dir32SecBiosHeader;March 9th, 2013, 21:28
March 9th, 2013, 23:50
March 10th, 2013, 13:03
March 11th, 2013, 18:25
March 11th, 2013, 18:58
March 11th, 2013, 19:31
louis wrote:CRC on rom block table seems to be ok on my .bin
March 12th, 2013, 0:50
Powered by phpBB © phpBB Group.