Head map editing in RAM for Seagate F3
Posted: 09.02.12, 21:01
Hello guys!
Here I will describe how to perform head map editing in ram with seagate f3.
So let's take for example Seagate F3 ST3500320AS, 500Gb, SD1A.
It has 4 heads. Let's suppose that last head is bad.
When I connect drive to PC-3000 and turn power on it just clicks and then spins down.
I need to disable last head in ROM.
Actually I can not know which head is bad, so I will just leave enabled first two heads and will disable rest other.
In such condition of HDD I can not work with ROM. So at this stage I should desolder ROM chip and read it via external programmer. Then I connect any drive to PC-3000 and run Seagate F3 utility. Go to "Work with flash ROM image file"
Select ROM image "File"
After that I will see dump of the patient's ROM
My goal now is to disable all heads except first two. They are system heads and should be enabled.
At the right side we can see two buttons: PHYS and LOG. By using these buttons I can run head map editing in ROM.
Button LOG runs logical head map editing, button PHYS runs physical head map editing. The difference between these head maps is next: in case of Seagates drives, if drive does not have heads in the middle of HSA, button LOG will show us head map as 00 01 04 05, so we can see actual head map inside drive. Button PHYS will show head map as 00 01 02 03. It is not so important for us how head map will be shown. These two buttons show us the same head map, but different presentation. The analogy - in WD utility we can see head map of the drive as 02 03 04 05 06 07, in DE we will see 00 01 02 03 04 05.
Button LOG shows us head map as heads are located inside disk, button PHYS shows just sequence of heads. So we suggest to use button LOG at first. The problem that numbers of FWs does not support this ability to see such head map. For example in my case I can not use this button, it I press it I get message
So i have to use button PHYS
=The rule: at first try to use button LOG, if it will not work, use button PHYS=
When I press on it I get such window
It is possible head maps for my drive. ROM has set of head maps that drive can use. Proper head map is selected during initialization of HDD, but we do not know which head map is actual for this drive. So I should change all head maps by one rule.
In our example it will look like on the picture below
so if we have several head maps like
00 01 02 03
02 03 04 05
03 04 05 06
We should set new head maps by one rule like
00 01 01 01
02 03 03 03
03 04 04 04
Just first two heads are still enabled and rest other are replaced by second head
I press OK. Changes are saved. Then I write via programmer this modified dump to ROM chip and solder it to patient PCB.
Now drive will work just with first 2 heads when I turn power on.
I can now run utility, ID is shown and I can read first sectors. But heads 02 and 03 are still disabled and I can not read the data from it.
My goal now is to detect bad head (at this stage I do not know which head is bad) and enable good heads.
There is 3 options to do it:
"RAM Logical head map changing"
"RAM head map editing"
"RAM head maps editing"
"RAM Logical head map changing" is the same like button LOG, but works with RAM
"RAM head maps editing" is the same like button PHYS, but works with RAM
"RAM head map editing" shows us actual head map from set that was shown us by button PHYS.
So our recommendation is
at first try to use "RAM Logical head map changing", if it will not be possible with FW of your patient drive, try to use "RAM head map editing" and then (if "RAM head map editing" will not work too) "RAM head maps editing".
In my case "RAM Logical head map changing" does not work so I used "RAM head maps editing"
Original head map is 00 01 01 01 like I set in ROM
Now I set 00 01 02 01.
At first I enable head 02, press OK, if drive continues to work so head is ok, then by the same way I set head map 00 01 02 03.
Drive stops to work, so now I know that head 03 is bad. I restart power set head map 00 01 02 01, run DE, create head map in DE, disable last head and start copying.
Maybe this procedure looks pretty difficult, but actually it's easy. Your main steps are:
1. Unsolder and read rom chip
2. Edit head map in ROM (at first try to use button LOG, then PHYS (change all head maps by one rule))
3. Write modified dump to rom chip and solder it to patient pcb
4. Run utility and edit head map in RAM. At first try to use RAM logical head map editing, RAM then head map editing, RAM then head maps editing
5. Enable heads by one.
If something is not clear, write please here your questions.
Here I will describe how to perform head map editing in ram with seagate f3.
So let's take for example Seagate F3 ST3500320AS, 500Gb, SD1A.
It has 4 heads. Let's suppose that last head is bad.
When I connect drive to PC-3000 and turn power on it just clicks and then spins down.
I need to disable last head in ROM.
Actually I can not know which head is bad, so I will just leave enabled first two heads and will disable rest other.
In such condition of HDD I can not work with ROM. So at this stage I should desolder ROM chip and read it via external programmer. Then I connect any drive to PC-3000 and run Seagate F3 utility. Go to "Work with flash ROM image file"
Select ROM image "File"
After that I will see dump of the patient's ROM
My goal now is to disable all heads except first two. They are system heads and should be enabled.
At the right side we can see two buttons: PHYS and LOG. By using these buttons I can run head map editing in ROM.
Button LOG runs logical head map editing, button PHYS runs physical head map editing. The difference between these head maps is next: in case of Seagates drives, if drive does not have heads in the middle of HSA, button LOG will show us head map as 00 01 04 05, so we can see actual head map inside drive. Button PHYS will show head map as 00 01 02 03. It is not so important for us how head map will be shown. These two buttons show us the same head map, but different presentation. The analogy - in WD utility we can see head map of the drive as 02 03 04 05 06 07, in DE we will see 00 01 02 03 04 05.
Button LOG shows us head map as heads are located inside disk, button PHYS shows just sequence of heads. So we suggest to use button LOG at first. The problem that numbers of FWs does not support this ability to see such head map. For example in my case I can not use this button, it I press it I get message
So i have to use button PHYS
=The rule: at first try to use button LOG, if it will not work, use button PHYS=
When I press on it I get such window
It is possible head maps for my drive. ROM has set of head maps that drive can use. Proper head map is selected during initialization of HDD, but we do not know which head map is actual for this drive. So I should change all head maps by one rule.
In our example it will look like on the picture below
so if we have several head maps like
00 01 02 03
02 03 04 05
03 04 05 06
We should set new head maps by one rule like
00 01 01 01
02 03 03 03
03 04 04 04
Just first two heads are still enabled and rest other are replaced by second head
I press OK. Changes are saved. Then I write via programmer this modified dump to ROM chip and solder it to patient PCB.
Now drive will work just with first 2 heads when I turn power on.
I can now run utility, ID is shown and I can read first sectors. But heads 02 and 03 are still disabled and I can not read the data from it.
My goal now is to detect bad head (at this stage I do not know which head is bad) and enable good heads.
There is 3 options to do it:
"RAM Logical head map changing"
"RAM head map editing"
"RAM head maps editing"
"RAM Logical head map changing" is the same like button LOG, but works with RAM
"RAM head maps editing" is the same like button PHYS, but works with RAM
"RAM head map editing" shows us actual head map from set that was shown us by button PHYS.
So our recommendation is
at first try to use "RAM Logical head map changing", if it will not be possible with FW of your patient drive, try to use "RAM head map editing" and then (if "RAM head map editing" will not work too) "RAM head maps editing".
In my case "RAM Logical head map changing" does not work so I used "RAM head maps editing"
Original head map is 00 01 01 01 like I set in ROM
Now I set 00 01 02 01.
At first I enable head 02, press OK, if drive continues to work so head is ok, then by the same way I set head map 00 01 02 03.
Drive stops to work, so now I know that head 03 is bad. I restart power set head map 00 01 02 01, run DE, create head map in DE, disable last head and start copying.
Maybe this procedure looks pretty difficult, but actually it's easy. Your main steps are:
1. Unsolder and read rom chip
2. Edit head map in ROM (at first try to use button LOG, then PHYS (change all head maps by one rule))
3. Write modified dump to rom chip and solder it to patient pcb
4. Run utility and edit head map in RAM. At first try to use RAM logical head map editing, RAM then head map editing, RAM then head maps editing
5. Enable heads by one.
If something is not clear, write please here your questions.