Thursday, August 20, 2009

The G84 Challenge

The G84 Challenge
Starring: HardwareBoy


On a sunny day of August, HardwareBoy was squatting joyfully at his favorite place, occupied by the delightful activity of testing a plethora of tiny webcams' resilience for sudden attacks of the aquatical forces of nature (that would occur, for example, as a result of the air conditioner's water pump having yet another seizure), when a sudden call ended his nirvana abruptly.
For that was a friend of HardwareBoy's, and the reason for which he was calling was no other but to offer HardwareBoy a challenge that that would involve the direct practice of HardwareBoy's skill and knowledge. Taking a moment to snap out of his zen, HardwareBoy realised there were great deeds to be done and even greater achievements to be made and dauntlessly accepted the challenge.

And so began the G84-300 challenge.

A couple of days passed, and HardwareBoy has received the subject of the upcoming challenge..
The subject was merely a small graphics card, and not a particularly intriguing one at that point in time, either. It looked something like this:


The card was neither scary, nor exciting. A standard G84-based passively cooled (by something that looks like HardwareBoy's grannie's pechka oven) 8600GT with 256MB of rather crappy Hynix 1.4ns memory, 2 DVI outputs and... that's about it. Or so it seemed.


Notice anything peculiar? Oh, that's right. The subject considered itself as one belonging to the royal family of mobile graphics acelerators. Not only that, but further investigation with additional hardware-probing software revealed that the card was convinced about having 4096 megabytes of ultra-low-latency GDDR4 memory, all of it connected to a juicy 256-bit memory bus. Hey, who said one can't dream? Even if you are merely a pee-wee graphics card.
Needless to say, the card itself would not post, and the only thing he'd hear when defining it as the primary display device (rather than the on-board one) were those *beeep-bip-bip*.

A few hours have passed.

Fiddling and twiddling with the subject the whole time, trying out his knowledge in low-level EEPROM programming, diving into endless grinds of numerous versions, revisions and releases of programming software, HardwareBoy was getting nowhere. The card refused to give out its' credentials owing to the excellent AT88SC "Secure Memory With Authentication" EEPROM by Amtel, and every piece of software HardwareBoy threw at it simply kept clashing upon a wall that was the "Unsupported EEPROM" output. That darn HDMI key chip seemed to have been doing its' job pretty well.



Going over various datasheets and threads, HardwareBoy was coming to terms with the fact that his skills at this area of expertise may have not been nearly as good as those of SoftwareBoy. Something had to be done the way he knew things were meant to be done.
HardwareBoy had to resort yo his tools of the trade.
The ghetto soldering iron has been pulled out of the underwear drawer, the rest tools have been neatly lining up on the table and the fun was about to begin.


HardwareBoy gazed furiously upon the two EEPROM chips aboard the subject. The AT88SC, as he came to realize, was a special chip, sporting an entirely different structure and pin-out compared to the the simple serially-attached 512kb piece of flash memory to the left of it. Besides, why would an HDMI security chip contain the hardware ID strings, frequencies, timings, voltages and other seemingly irrelevant settings for what it's meant to do?

While he was busy overminding the above, HardwareBoy's HardwareMind had been desperately pushing him towards the simple and obvious (from his perspective) conclusion to the matter: instead of trying to program the chip manually... why not just pop a different one in? After all, this one might've simply gotten corrupted, which would have prevented any software utility from recognizing it properly in the first place.

A suitable candidate for the replacement had to be found, which was no difficult one for our hero - for he had sources aplenty. Going over his arsenal of graphics cards like a BlackJack dealer over a stack of cards, his gaze befell upon what seemed to have fairly easy access to the EEPROM, with the chip itself being one that would fit the bill perfectly from every technical and electronic perspective.


"Oh, the irony" thought HardwareBoy, as he proceeded with the disengagement of the tiny chip.


"What does that EEPROM look like?" - asked an IM-peeking friend.
"Like a spider" - replied HardwareBoy - "Small. Black. Eight tiny feet."


The intended EEPROM has been finally freed from its' previous owner's grasp and now was the time to prep the heir of this eight-legged masterpiece for a transplant.
But not all went well in executing the same organ removal procedure on the recipient, and HardwareBoy encountered a few minor, yet extremely nasty complications.


The traces, which held the original subject's flash chip in place, had been apparently designed without the concept of future removal or replacement in mind and have partially disengaged from the PCB due to that disappointing fact. Two of them, the second and the third, were still usable but the eight one (bottom left) had come off completely. Quickly and skillfully, HardwareBoy re-attached #2 and #3, but when trying to restore the eighth one like so...


...what was left of the tiny copper ring that crosses into another layer of the PCB, has come off completely along with the intended "fix".
Disappointed at himself and the subject's original design for a moment, HardwareBoy took a deep breath, a needle in his left hand, a soldering iron in the right and dove right back into the action. He fought those traces bravely yet extremely gently and minutes later the little 8-legged menace was right at home aboard its' new owner.
The eighth broken trace had still not been repaired and HardwareBoy was rigorously examining his options. He wanted a clean and elegant solution like the ones he always manages, alas moments later he realized that such was not viable by design in this case.
Dolefully, he came to terms with the fact that there had been no other choice but to resort to any aesthete's worst nightmare - the bypass.


He quickly located the entry and exit points of the aforementioned trace and nimbly soldered a tiny black bypass onto the circuit.
Taking a quick moment to adore his blood-curling work of art, he prepared himself for either a grand success, or a complete failure at what had been the next (and supposedly the concluding) phase of this excruciating challenge.

A little bit of theory, pulled out of HardwareBoy's behind, before we proceed:
Technically, most of the EEPROM chips used on today's videocards are fundamentally the same thing, varying at most by frequencies and voltages at which they operate, their overall size and the size of the blocks into which the memory is divided. Aside from that, as long as it has no special purpose or additional function, replacing an EEPROM is more or less like replacing a flash card inside your camera, media player, and so on. Pop a new one in, and as long as your software supports it and the size is adequate - you should be fine.

In theory.

With simple designs.

As long as peculiar functions such as hardware signal encoding aren't involved.

Firing up the test stand, HardwareBoy is delighted by the fact the subject is seemingly just as functional as before. Yet as he enters his favorite EEPROM programming software and probes the hardware at hand, he is dazzled by what he sees:


And yes, this is indeed the same picture from before. But HardwareBoy had been dumbstruck enough to simply forget to document hat he was looking at. For it had been exactly the above.

Quarter furious and three quarters frustrated, HardwareBoy has laid his weapons of mass reconstruction aside and abandoned the field of battle and vacated himself into a more pleasant zone in order to re-think his further strategy.
Half an hour and two sandwiches later, a sudden idea, or rather more of a tiny-evil-bee-of-snoopiness had struck our hero. He fired the stand up again, this time using another superb piece of EEPROM programming software. The output this time had been... quite interesting.


For he now was the proud owner a perfectly useless...
Nvidia Radeon X800.
ATI GeForce 8700M GT.

Which-ever makes more sense.

To be continued...