All times are UTC - 5 hours [ DST ]


Switch to mobile style


Post new topic Reply to topic  [ 351 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 18  Next
Author Message
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 14:53 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
Very cool ! And how will it help with your drive problem ?

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 15:42 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
Quote:
Yeah, I know that de MCU's OS can lie on a separate rom chip (ex U12) or right inside MCU. What I didn't knew was what "kernel mode" is exactly. The MCU running the code flashed inside ROM (without the mods from the SA), or a special code builtin the MCU. I'm planning to code at the flash routine and I don't want to brick the PCB's ROM during tests, not having an option to reprogram it. So you say it's 100% true that if I flash some bogus data inside the ROM, then I'll have the possibility to re-flash it again with the same VSC commands, using the same method?


1 - Even when you have a ROM chip outside the MCU, the MCU will still have masked ROM. There are 2 levels of "Kernel Mode" on WD. One is when you prevent WD drive from loading firmware from platters and you send code to RAM for it to execute and tables and modules, etc, and with the drive initialized by that procedure you try to access firmware on platters, it's usefull when you have damaged firmware on platters and drive can't work by itself and you need to load code on drive so that platters will spin and modules can be read from there so you can correct the wrong modules. This is what was called as "Safe Mode" on Maxtor drives, and was set by jumpers on IDE drives. Then you have a "Kernel mode" when you damage ROM on pcb and MCU just waits for you to send/flash another ROM. WD provides that option.

For the recored, i once bricked a ROM on a WD caviar drive using an old version of BVG HRT (http://www.bvg-group.ru/eng/diagnostic/HRT.php) . I flashed damaged ROM and When i tryed the same tool with the same commands to upload ROM again to drive IT DIDN'T WORK !!!!!

SO ASSUME that the VSC to flash ROM on a working PCB will be diferent if you ask the MCU to accept ROM code (on a working drive) or if the MCU is already waiting for you to upload ROM code (Kernel mode).


Quote:
Can you tell me what the "zone table" or "RAM TABLE" is? I've seen a MHDD script reading that table with a VSC cmd (0x0D)...with a param of 0x06 for marvell chip or 0x0d for royle. I assume it is generated by the OS loaded by MCU, but is that table accessible without the OS accessing the SA?


Zone Table is a firmware module containin a table of modules location on the firmware zone.

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 15:43 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
Let's just forget "Kernel mode" of some drives and assume that if you flash wrong or damaged ROM you will need external programmer to fix the PCB by re-flashing the ROM chip.

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 15:48 
Offline

Joined: August 22nd, 2011, 15:43
Posts: 214
Location: Romania
Spildit wrote:
Very cool ! And how will it help with your drive problem ?

Well, I'll write some code using VSC's to read the negative tracks for each head. I'll test each head to see if can read the track -1 and if not, I'll see what error it throws. Now, I have the error codes because I've implemented a func for the Table Data reading function ;) I make small steps for putting a diagnostic since I don't have expensive tools, I build what I need. I understood that the MCU doesn't need any SA data (adaptives or what they call it) to access the SA and this is logic. If the heads can't read the SA, then must be a PCB stuff, or the Preamp...or a motor problem (speed stuff etc).

I'm waiting for the donor...so I'm doing what I can till then, research and learning.

I wonder what they didn't made a smart connection around Preamp, to let people getting out only the preamp..not the full HSA :roll:

Spildit wrote:
Let's just forget "Kernel mode" of some drives and assume that if you flash wrong or damaged ROM you will need external programmer to fix the PCB by re-flashing the ROM chip.


Well so you don't know for sure...if the VSC are handled by the ROM code or the MCU's ..let's say hidden rom...or ...boot loader :)


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 17:15 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
It would help to have a working drive for testing. Testing on a damaged drive is not a very good idea. I like the way you work, but i still think it will be hard to fix the problem because i still think it's not firmware related.

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 17:56 
Offline

Joined: May 6th, 2008, 22:53
Posts: 2138
Location: England
louis wrote:
I wonder what they didn't made a smart connection around Preamp, to let people getting out only the preamp..not the full HSA :roll:

There are very good electronic reasons for where the preamp is, and the lack of other connections. Disk drives are designed to be easy & cheap to manufacture (amongst several other relevant factors), not specifically to be easy & cheap for other people to repair ;)


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 18:09 
Offline

Joined: August 22nd, 2011, 15:43
Posts: 214
Location: Romania
ok..i have some results. I try to read track -1 for each one of the 4 heads. I get the same result for each one. the VSC command it's ended by the device with abort flag end error flag set. note that I must wait 30secs for the device to abort..conform ata specs. In this way I can catch the error from the device. see below.

Here's the output for read_pchs(device, out_buff, 0, (-1), 1, SPT); read_pchs(x,x,head,track,start sector,number of sectors)

The p2 an p3 forms the 4byte track number, which is -1,
p4 it's the head number; here it's set to 0; if I set it to something else than 0-3 the function returns error..invalid head! which is ok.

Quote:
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


During the execution...which takes just about 30secs..the drive starts spinning..and as I described earlier, I have 4 rounds of 2 clicks..+ one final click. It happens the same for each head starting from 0 to 3.

Unfortunately I don't know what that error means. Perhaps someone could help.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 18:25 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
VSC error code not decoded for : 0x4341

ATA_NSECTOR = 0041
ATA_SECTOR = 0043

Maybe related ?

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 18:42 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
Do you have a working WD drive to test with ?

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:13 
Offline

Joined: August 22nd, 2011, 15:43
Posts: 214
Location: Romania
Spildit wrote:
VSC error code not decoded for : 0x4341

ATA_NSECTOR = 0041
ATA_SECTOR = 0043

Maybe related ?


Those are ATA ports..2 bytes each.
Yes...that's how the error code it's computed for VSC commands (ATA_SECTOR<<8+ATA_NSECTOR). The problem is what it means since it doesn't appear in my wd error list. :roll:

Spildit wrote:
Do you have a working WD drive to test with ?


I have 1Tb one, but it's plugged into sata port... and I only operate with my software on ide ports. I don't want to play around on that one :)
I'll try to buy a used one to test the code. But I could bet that it will work on a good drive.

That error code could solve the case. Or not :)


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:20 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
Louis, can you share your copy of WDR Demo ? Is it the same as mine ?


Attachments:
WDR-DEMO.zip [609.64 KiB]
Downloaded 598 times

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.
Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:23 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
louis wrote:
The problem is what it means since it doesn't appear in my wd error list. :roll:



Are you refering to this ?

[ERRCODE]
0000=SUCCESS
0001=SCT_INVALID_FUNCTION_CODE
0002=SCT_INVALID_LBA
0003=SCT_REQ_SECNT_OVERFLOW
3700=FM_ERR_FILE_INFO
3701=FM_ERR_DIR
3702=FM_ERR_FILE_ID
3703=FM_ERR_CHECKSUM
3704=FM_ERR_COMPAT
3C00=FMT_ERR_PLIST_NOT_FOUND
3C01=FMT_ERR_INVALID_PLIST
3C02=FMT_ERR_GLIST_NOT_FOUND
3C03=FMT_ERR_INVALID_GLIST
3C04=FMT_ERR_EXCEEDED_PUSH_DOWNS
3C05=FMT_ERR_PDLIST_WRT_FAIL
3C06=FMT_ERR_NEW_BAD_TRKS
3C07=FMT_ERR_FRMT_FAILURE
3C08=FMT_ERR_EXCEEDED_GLIST
3C09=FMT_ERR_GLIST_WRT_FAIL
3C0A=FMT_ERR_CAPACITY
3C0B=FMT_ERR_ZSD_NOT_LOADED
3C0C=FMT_ERR_BUF_ALLOCATION
3C0D=FMT_ERR_RELOLIST_WRT_FAIL
3C0E=FMT_ERR_PDLIST_NOT_FOUND
3C0F=FMT_ERR_RELOLIST_NOT_FOUND
3C10=FMT_ERR_EXCEEDED_RELOLIST
3C11=FMT_ERR_WRT_FAIL
3C12=FMT_ERR_EXCEEDED_RPDLIST
3C13=FMT_ERR_RPDLIST_WRT_FAIL
3C14=FMT_ERR_RPDLIST_NOT_LOADED
3C15=FMT_PLIST_PSN_OUT_OF_RANGE
3C16=FMT_PUSHCOUNT_OVERFLOW
3C17=FMT_HASH_TABLE_OVERFLOW
3C18=FMT_ERR_INVALID_ZONE_TABLE
3C19=FMT_ERR_CANT_MERGE_PGLIST
3C1A=FMT_ERR_PLIST_WRT_FAIL
3C1B=FMT_ERR_SLIPS_EXCEED_LIMIT
3C1C=FMT_ERR_TRACK_PUSHED_DOWN
3C1D=FMT_ERR_FIELD-LIST_WRT_FAIL
3C1E=FMT_PLIST_CYLINDER_OUT_OF_RANGE
3C1F=FMT_PLIST_HEAD_OUT_OF_RANGE
3C20=FMT_ERR_REMERGE_REQUIRED
5180=DISK_DAM_ERROR_RANGE_RSVD
5181=DISK_DAM_ERROR
C400=HOST_UNSUPPORTED_ATA_OPCODE
C401=HOST_RECEIVED_LBA_TOO_BIG
C402=HOST_LBA_OUT_OF_RANGE
C403=HOST_DRV_PARAMS_SPT_NOT_SUPPORTED
C404=HOST_DRV_PARAMS_HDS_NOT_SUPPORTED
C405=HOST_UNSUPPORTED_FEATURE_VALUE
C406=HOST_UNSUPPORTED_MULTI_COUNT
C407=HOST_MULTI_NOT_SET
C408=HOST_DIS_IORDY_NOT_SUPPORTED
C409=HOST_UNSUPPORTED_COMMAND_IN_PST_MODE
C40A=HOST_INVALID_SECTOR_COUNT
C40B=HOST_VSC_CMD_EXECUTING_IN_BKGRND
C40C=HOST_CMD_NOT_ALLOWED_GAIN_CAL_MODE_ACTIVE
C40D=HOST_QUEUE_CMD_INTERMIX_ERROR
C40E=HOST_UNSUPPORTED_SET_FEATURE_SATA_FEATURE
C40F=HOST_QUEUE_TAG_ERROR
FFFE=NOT_AN_ERR_SIO_INVLD_NON_ATA_OPCODE
FFFF=NOT_AN_ERR_VSC_CMD_EXEC_IN_BKG

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:25 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
Guess this is the list for S.M.A.R.T. ATTRIBUTES :

[ATTRIBUTES]
0 =Invalid attribute identifier (not in used)
1 =Raw Read Error Count / OTF Errors (Maxtor)
2 =Throughput Performance Internally
3 =Spin Up Time
4 =Number of Spin-Up Times / Start/Stop Count
5 =Reallocated Sectors Count
6 =Read Channel Margin Test
7 =Seek Error Rate
8 =Seek Time Performance
9 =Power-On Hours Count (POH)
10 =Spin Retry Count
11 =ReCalibration Retry Count
12 =Start/stop count / Power cycle count (IBM)
13 =Soft Read Error Rate
96 =Average MRR (Maxtor)
97 =Minimum MRR (Maxtor)
98 =Maximum MRR (Maxtor)
99 =Average FHC (Maxtor)
100=Erase/program cycles Count / Max Negative FHC (Maxtor)
101=Maximum Positive FHC (Maxtor) flying height control ?
103=Translation Table Rebuild
170=Reserved Block Count
171=Program Fail Count
172=Erase Fail Count
173=Wear Leveling Count
174=Unexpected Power Loss
175=Program Fail Count (chip)
176=Erase Fail Count (chip)
177=Wear Leveling Count
178=Used Reserved Block Count (Chip)
179=Used Reserved Block Count (Total)
180=Unused Reserved Block Count (Total)
181=Program Fail Count (Total)
182=Erase Fail Count (Total)
183=Runtime Bad Block (Total) / SATA Downshift Error Count
184=End-to-end Error Detection / Buffer CRC Count *
184=End-to-End error
185=Head Stability
186=Induced Op-Vibration Detection
187=Uncorrectable Error Count
188=Command Time-out Error Count
189=High Fly writes
190=AirFlow Temperature (WDC) / Temperature Difference from 100
191=G-SENSOR Shock Counter
192=Power-off Retract Count / Emergency Retract Cycle count (Fujitsu)
193=Load/Unload Cycle Count (LUL)
194=HDA Temperature °C (Cur/Max/Min)
195=Hardware ECC Recovered / ECC OFT Correct / ECC On The Fly Count (Fujitsu)
196=Reallocation Event Count
197=Current Pending Sector Count
198=Off-line scan UNC sectors
199=UDMA CRC Error Count
200=Write Error Rate/Count / Multi Zone Error Rate (WD) / Write PreAMP Errors (Maxtor)
201=Soft Read Error Rate / Thermal Asperity Counter Detected / Program Fail Count / Off-Track Errors (Maxtor)
202=Erase Fail Count / Data Address Mark Errors (Maxtor)/ Thermal Asperity Increase Count
203=ECC Errors / Wear Leveling Count / RRO Cancel (Fujitsu)
204=Soft ECC Correction / Shock Count Write Operation (Fujitsu)
205=Thermal Asperity Rate (TAR) / Shock Rate Write Operation (Fujitsu)
206=Calibration Time / Flying height (Fujitsu)
207=Spin High Current
208=Erase Count Average / Spin Buzzes Count
209=Offline Seek Performance / Remaining drive life in % by Erase count
210=Vibration During Write
211=Vibration During Read / Spin running current (IBM)
212=Shock During Write / SSM Error Count (IBM)
213=Ground Seek Errors Count / RRO-C ERP Count (IBM)
214=Ground Load Errors Count (IBM)
215=Ground SpinUp Errors (IBM)
216=Unexpectant Errors Count (IBM)
217=Unlock/Mis Read Count (IBM)
218=FlashROM ECC Corr. count (IBM)
220=Disk Shift Value
221=G-SENSOR Shock Counter / Shock Sense Error Rate (Hitachi)
222=Loaded Hours
223=Load/Unload Retry Count
224=Load Friction
225=Load/Unload Cycle Count
226=Load-In Time
227=Torque Amplification Count
228=Power-Off Retract Count
229=Fly Height Measurement
230=GMR Head Amplitude / Head Fly Hours
231=HDA Temperature %øC at WrCom
240=Head Flying Hours/Write Head (Hitachi) / Transfer Error Rate (Fujitsu)
241=Total LBA Write (IBM)
242=Total LBA Read (IBM)
250=Read Error Retry Rate
251=Non-Gua Temp Hours
252=Reported Errors Count
254=Free Fall Protection / G-SENSOR Shock Counter

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:32 
Offline

Joined: August 22nd, 2011, 15:43
Posts: 214
Location: Romania
yes, that's the list :)

I have that demo wdr..and I found another one called wdr4.0 which looks the same...nothing more. Runs only XP or lower..due to "privileged instructions".

what's funny is that if I try to read head 4 which doesn't exist...the error code it's on that list.
Code:
VSC error code decoded: 0xB007 -->> VSCE_INV_HEAD_NUM
:)


Last edited by louis on March 5th, 2013, 19:39, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:37 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
Can you share with us the wdr4.0 ?

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:41 
Offline

Joined: August 22nd, 2011, 15:43
Posts: 214
Location: Romania
Yes my friends :)


Attachments:
wdr-4.0.rar [483.77 KiB]
Downloaded 659 times
Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:42 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
louis wrote:
what's funny is that if I try to read head 4 which doesn't exist...the error code it's on that list.
Code:
VSC error code decoded: 0xB007 -->> VSCE_INV_HEAD_NUM
:)



Invalid Head Number :)
Cool !

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:45 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
Thanks for WDR too. Interesting. What test did you do with it to figure out that the drive was not reading SA with any of the heads ?

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:47 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 11038
Location: Portugal
Heads Write Test ?

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD2000JD problem
PostPosted: March 5th, 2013, 19:56 
Offline

Joined: August 22nd, 2011, 15:43
Posts: 214
Location: Romania
it's one there...which test all heads reading SA on the heads dialog window.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 351 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 18  Next

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: Google [Bot] and 73 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group