Page 1 of 1

FBLite ROM issue

Posted: July 26th, 2024, 9:40
by beefstrudel
I have this WD10JPVX-75JC3T0 that spins up, heads don't sound like they move.
Status register lights up BSY for only a half a second or so. PHY is on.
If I try to ID the drive or go into utility the BSY register comes back on but never goes ready in kernel mode.
I dumped the ROM and programmed it to a donor board with the same results.
Just wondering if someone can examine this ROM and determine if that is the issue.

I've managed to get the drive ready using a donor rom, and moving SA translator, SA Adaptives, and Heads map over to the donor ROM, but the drive only IDs with serial number and 0 capacity.
Reading module 02 gets VSC ERROR UNSUP ACTION CODE, but I am able to read SA modules by ID.
When starting the drive with this ROM the drive sounds normal.

Re: FBLite ROM issue

Posted: July 26th, 2024, 10:58
by unknown
What tools do you have?

Re: FBLite ROM issue

Posted: July 26th, 2024, 11:08
by beefstrudel
Using PC3000 UDMA. To read / write ROM I'm using the RUS V5000 programmer from dolphin

Re: FBLite ROM issue

Posted: July 26th, 2024, 11:12
by fzabkar
Wow, it does appear that your ROM has a bad bit. I always thought that a bad checksum would prevent the drive from spinning up. :-??

I would dump the ROM again to make sure that this error isn't an issue with your programmer or method.

Code:
Analysing WD10JPVX-WXV153ZYN05.bin ...

Searching for LDSCs and verifying PCMBlocks ...

LDSC   LDSC    Att   PCMBlock          RAM         size      PCMBlk CS
Start  ID CS        Start -  End     address     RAM / ROM    Exp/Act
-----  -- --   --   -----   -----   --------   ------ -----  ---------
    0  5A C1   02     100 -  2477      127F0     2376  2376  A0FE A0FE   OK
   20  01 5B   0C    2478 -  4C4C   88800000     27D4  27D4    4C   4C   OK
   40  02 CD   01    4C4D -  CFA5          0 c   AB1C  8358    DA   DA   OK
   60  03 A5   01    CFA6 -  D69E      1179C c    8C0   6F8    79   79   OK
   80  04 FE   03    D69F -  D897      80220 c    2B0   1F8    02   02   OK
   A0  05 C8   03    D898 -  DA8C   10157200 c    318   1F4    56   56   OK
   C0  06 53   01    DA8D - 24C61   90349A00 c  1EA5C 171D4    35   3D   BAD   <-----------------
   E0  07 A4   01   24C62 - 3DCE2   90006E30 c  236AC 19080    88   88   OK

LDSC   = PM Loader Config String (32 bytes)
ID     = ID byte of LDSC (byte #0)
CS     = Checksum byte or word
Att    = Attributes
PCMBlk = Program Code Memory Block
Exp    = Expected checksum for PCMBLock
Act    = Actual checksum for PCMBLock
c      = compressed PCMBlock
size   = size of decompressed (in RAM) and compressed (in ROM) PCMBlock in bytes


ROYL directory module 0x000B found at 0x3FCD2

Active directory flag = 0x01

Identifying SA regions ...

Reg#    Reg size     Reg loc
----  ----------  ----------
0x00  0x0002B50B  0x00000000
0x01  0x0002B50B  0x00059D00
0x02  0x0002B50B  0x000B3A00
0x03  0x00000000  0x00000000
0x04  0x00000000  0x00000000
0x05  0x00000000  0x00000000
0x06  0x00000000  0x00000000
0x07  0x00000000  0x00000000

Verifying ROYL modules ...

ID          Size (bytes)         Address    Checksum
dir   hdr        dir       hdr
----  ----   --------  --------   --------   --------
0001  N/A    00004000  N/A        00000000             N/A
000A  OK     0000003E  00000200   0003F000   00000000  OK
000B  OK     00000169  00000200   0003FCD2   00000000  OK
020B  OK     00000169  00000200   0003ECD2   00000000  OK
0030  FFFF   00000400  01FFFE00   0003F8D2   FFFFFF00  BAD
0047  FFFF   00000400  01FFFE00   0003F4D2   FFFFFF00  BAD
000D  OK     00000094  00000200   0003F03E   00000000  OK
004F  OK     00000400  OK         0003F0D2   00000000  OK

ROYL directory module 0x020B found at 0x3ECD2

Active directory flag = 0x02

Identifying SA regions ...

Reg#    Reg size     Reg loc
----  ----------  ----------
0x00  0x000435C0  0x00000000
0x01  0x000435C0  0x00059D00
0x02  0x000435C0  0x000B3A00
0x03  0x000435C0  0x0010D700

Verifying ROYL modules ...

ID          Size (bytes)         Address    Checksum
dir   hdr        dir       hdr
----  ----   --------  --------   --------   --------
0001  N/A    00004000  N/A        0002788D             N/A
000A  OK     0000003E  00000200   0003E000   00000000  OK
000B  OK     00000169  00000200   0003FCD2   00000000  OK
020B  OK     00000169  00000200   0003ECD2   00000000  OK
0030  OK     00000400  OK         0003E8D2   00000000  OK
0047  OK     00000400  OK         0003E4D2   00000000  OK
000D  OK     00000094  00000200   0003E03E   00000000  OK
004F  OK     00000400  OK         0003E0D2   00000000  OK

dir  -  Module ID/Size as reported in directory module (0x20B or 0x0B)
hdr  -  Module ID/Size as reported in module's header
N/A  -  Not Applicable
BAD  -  Module has invalid checksum. This may be due to non-existent module.

ROM modules saved to Flash_00\000Bmods and Flash_00\020Bmods

Active directory is 0x20B

Analysing active 0x0A module ...

Head map checksum (Expected / Actual) = 0x0000 / 0x0000 - OK
Number of heads (physical / in use) = 4/4
Head map #1 = 0x0F / 0b00001111
Head map #2 = 0x00 / 0b00000000

DCM = | Q | G Z N V F G F
      : : : : : : : : : :
      : : : : : : : : : unknown
      : : : : : : : : top VCM
      : : : : : : : ACA
      : : : : : : bottom VCM
      : : : : : HSA
      : : : : media
      : : : preamp
      : : latch
      : base
      spindle motor

Analysing active 0x0D module ...

Firmware Version = 01.01A01
World Wide Name = 50014EE6AE7268D8
Model Number = WDC WD10JPVX-75JC3T0                   
Serial Number = WXV1E53ZYN05       

PUIS flag byte is 0x02
PUIS Disabled

Analysing active 0x4F module ...

ROM version = 0006000M

Analysing active 0x47 module ...

Preamp values
-----------
0  04395514
1  01395516
2  033B4529
3  03373510

Microjogs
-------
0  0000
1  0000
2  0000
3  0000

Head/Media DCM = NZ

Re: FBLite ROM issue

Posted: July 26th, 2024, 11:20
by Mikippp
Hi,
If you have a PC-3K and have access to SA, you can rebuild the ROM based on SA modules

Mikippp

Re: FBLite ROM issue

Posted: July 26th, 2024, 11:41
by fzabkar
@beefstrudel, can you upload SA module 0x109? I should be able to rebuild the ROM for you.

Re: FBLite ROM issue

Posted: July 26th, 2024, 11:53
by beefstrudel
Here it is. Thank you! :D

Re: FBLite ROM issue

Posted: July 26th, 2024, 12:03
by fzabkar
See attachment.

Re: FBLite ROM issue

Posted: July 26th, 2024, 12:23
by beefstrudel
You are awesome. IDs correctly and full sector access. Show me your ways! :lol:
I'm still confused how the original ROM got corrupted, I tried reading it multiple times but the hash was always the same as the one I posted.

Re: FBLite ROM issue

Posted: July 26th, 2024, 12:29
by fzabkar
This is my WD ROM parsing tool. It runs in a CMD box under Windows.

https://web.archive.org/web/20230522150548/http://www.users.on.net/~fzabkar/FreeBasic_W32/WD/wdROMv17.exe
https://web.archive.org/web/20230522150548/http://www.users.on.net/~fzabkar/FreeBasic_W32/WD/wdROMv17.bas

SA module 0x109 contains a copy of the ROM code plus templates for the ROYL modules. The first 0x200 bytes need to be stripped off.

In your case, one bit lost its charge and flipped from 0 to 1. A 1 corresponds to the erased state.

Re: FBLite ROM issue

Posted: July 26th, 2024, 13:07
by beefstrudel
A bit flip made the day interesting—thanks for sharing the tool and the info about module 109. I'm still learning the ins and outs of these Western Digital drives. Glad I didn't misdiagnose the drive; I've seen many posts about ROM issues that were actually head problems. But the way the status register was turning on and off I was convinced it was a board issue. Never considered the ROM until I flashed it to the donor and it acted the same way.

You are awesome!!