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!

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!
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.exehttps://web.archive.org/web/20230522150548/http://www.users.on.net/~fzabkar/FreeBasic_W32/WD/wdROMv17.basSA 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!!