Mac OS 9 Lives

Classic Mac OS Hardware => Storage => Topic started by: macStuff on May 29, 2019, 04:36:44 AM

Title: Firmtek 1S2 (released September 2003)
Post by: macStuff on May 29, 2019, 04:36:44 AM
https://www.firmtek.com/seritek/seritek-1s2/
https://web.archive.org/web/20050313174043/https://eshop.macsales.com/item/Firmtek/FTST1S2/
(https://web.archive.org/web/20050313174043im_/https://eshop.macsales.com/images/Items//seritek.jpg)(https://static.bhphoto.com/images/images500x500/FirmTek_SATA_1S2_SeriTek_1S2_2_Port_PCI_SATA_1233150473000_520817.jpg)
https://web.archive.org/web/20040528081055/http://www.firmtek.com/news/
July 14, 2003 announced
September 17, 2003 began shipping
https://web.archive.org/web/20040827200737/http://www.firmtek.com/seritek/pr/ship/

Quote
SeriTek/1S2 Macintosh Serial ATA Adapter Now Shipping
FirmTek Announces the Immediate Availability of the World's First Serial ATA Host Adapter for the Macintosh
UNION CITY, CA (September 17, 2003) -- FirmTek, LLC, pioneer of the world's first Macintosh™ Parallel ATA/EIDE host adapter solution, is pleased to announce the immediate availability of their new SeriTek/1S2 Serial ATA PCI host adapter. The SeriTek/1S2 Serial ATA host adapter provides an easy and affordable way for Power Macintosh users to take advantage of the market's latest offerings in Serial Advanced Technology Attachment (SATA) storage technologies. SeriTek/1S2 boosts overall system performance offering data transfer rates of up to 150MBytes/sec or 1.5Gbits/sec, resulting in high SCSI-like performance and data protection, without the SCSI price.

Included in the SeriTek/1S2 package is the SeriTek Serial ATA Host Adapter, a Serial ATA data interface cable with a special "L" connector on one end to ease installation in the Power Macintosh chassis, and a detailed User's Manual.

Supporting Serial ATA's longer, thinner, fully insulated cables and smaller 7-pin connectors, SeriTek/1S2 promotes simplified installation and improved airflow, resulting in a cooler Macintosh operating environment when compared to solutions using standard Parallel ATA cables. The adapter's dual-port internal host controller economically provides high performance support for up to two storage devices, while the 48-bit LBA capability assures unimpeded support for drives beyond the 137 GB limit of many host adapters. As a result, the SeriTek/1S2 is an ideal solution for graphics, publishing, broadband Internet, and multimedia intensive Macintosh applications.

The standards-based SeriTek line of Serial ATA host adapters feature fully self-contained Macintosh booting functionality, OS 8/OS 9, native OS X 10.2 and later support, and zero driver installation overhead for highly compatible plug-and-play functionality.
Title: Re: Firmtek 1S2 (released September 2003)
Post by: macStuff on May 29, 2019, 08:47:43 AM
it was remarked on another thread on another forum that an earlier version of the firmtek firmware fit on 010 chip (128kb)
id liek to try to get my hands on that version to try to confirm that
it would also be in everyones best interest to attach as many different versions of the 1s2 firmware that anyone has got in this thread please
the 5.1.3 + 5.3.1 firmwares are easily obtainable im talking about other earlier versions
another idea would be for people to post and tell which version of the firmware tehy have on their actual card
because the firmware can be saved to a file
for instance system profiler will give a detail such as :
Quote
Athena_3112:
Name: Seri-Tek1S2
Type: ata
Bus: PCI
Slot: SLOT-3
Manufacturer ID: 0x1095
Device ID: 0x3112
Subsystem Maker ID: 0x1095
Subsystem ID: 0x3112
ROM version: 5.0.3.L335
Version ID: 0x0002
does anyone have a mac app that is capable of saving the flash chip contents to a dump file?
Title: Re: Firmtek 1S2 (released September 2003)
Post by: macStuff on May 29, 2019, 08:19:28 PM
tonight i tried to email firmtek and inquire about the 5.0.6 firmware for compatibility with early versions of osx
and i got a negative response saying that that old version of the firmware is not available
so they either dont have it on hand, or they dont wish it to be given out.

FlashUtil5.0.6.sit
is the name of the firmtek firmware update dated from February 2004
Quote
Company: FirmTek, LLC
Date: February 03, 04
Subject: Procedure for upgrading the firmware using Macintosh OS 9 and OS X version 10.2 or later
Purpose: Interim Firmware Update version 5.0.6.L335
Interim Firmware Update version 5.0.6.L335 Updates:
?Ä¢ Supports OS X version 10.1.5
?Ä¢ Allows system to go to sleep when there are no drives attached to the SeriTek/1S2
?Ä¢ Fixes issue where drives would take too long to ?Äúwake-up?Äù / long delay times
?Ä¢ Fixes issue where systems would exhibit symptoms of ?Äúkernel panics?Äù and?Äù "freezes" (example: rotating beach ball) when using certain SATA drives or PATA/SATA converters which use the ?ÄúMarvell?Äù bridge chip
Notes:
?Ä¢ In the event symptoms persist after updating the firmware, please disable the system?Äôs ?ÄúPower Saving?Äù mode.
?Ä¢ This Firmware Update is not provided as a workaround to the ?Äúdeep sleep?Äù or ?Äúpreventing system to boot?Äù issues with SeriTek/1S2 installed in certain models; models with (4) PCI slots/AGP, G4 ?ÄúDigital Audio?Äù, and G4 Quicksilver with 133MHz memory bus
Flash Upgrade Procedure:
Mac OS X version 10.2 or later:
Note: Under MacOS X, it is highly recommended that the SeriTek/1S2 controller be updated with the drives removed, using a separate boot drive connected to the system motherboard.
a) Save all documents and close all applications
b) Select a boot drive which is not connected to the SeriTek/1S2 controller
c) Copy the SeriTek/1S2 Flasher Utility to the boot drive
d) Shut down and power off the system, open the case and disconnect any drives connected to the SeriTek/1S2 controller
e) Power on and boot up the system
f) Double-click on the SeriTek/1S2 Flasher Utility icon
g) Read the License Agreement carefully and choose Accept if you agree to continue updating the firmware, or Decline to abort the firmware upgrade process
h) On the Flasher Utility menu, choose the SeriTek/1S2 card(s) that you would like to update from the pull-down menu and proceed to update by clicking on the "Update Firmware" button
i) Reboot the system
Mac OS 9:
Remark: Under MacOS-9 you can safely upgrade the card even if the boot drive is connected to the SeriTek/1S2 controller. However, the mouse pointer will freeze and cannot be moved during the actual firmware update process. Once the firmware update process is completed, the mouse pointer will work as normal.
a) Save all documents and close all applications
a. Download or copy the SeriTek/1S2 Flasher Utility to the system
b) Double-click on the SeriTek/1S2 Flasher Utility icon
c) Read the License Agreement carefully and choose Accept if you agree to continue updating the firmware, or Decline to abort the firmware upgrade process
d) On the Flasher Utility menu, choose the SeriTek/1S2 card(s) that you would like to update from the pull-down menu and proceed to update by clicking on the "Update Firmware" button
e) Reboot the system
Title: Re: Firmtek 1S2 (released September 2003)
Post by: macStuff on May 29, 2019, 11:21:24 PM
romfile.1s2 is 135kb as viewed on my imac 2008 that im on atm;
shows as 135.5kB on the forum attachement!


looking in hexfiend that would make it 13752 bytes too long to put on a 010/1Mbit/125kB rom
010/1Mbit rom = 125kB
020/2MBit rom = 250kB
040/4Mbit rom = 500kB

the size of the osx injected kexts:
FT_ATA_SiI3112.kext = 257kB
SiI3112DeviceNub.kext = 51kB
Title: Re: Firmtek 1S2 (released September 2003)
Post by: SDG on May 30, 2019, 12:11:01 AM
There is an additional problem with the 1S2 firmware. The actual ROM does a hardware check for one of three specific 040 ROM chips on the card. If it doesn't detect one of these, it will not start.

You can hack a Wiebetech ROM to fit on a 010 ROM and work but if you want to do anything with the Firmtek firmware you are going to have to somehow hack into the actual Firmtek ROM and disable the hardware check. No one has managed that yet.
Title: Re: Firmtek 1S2 (released September 2003)
Post by: macStuff on May 30, 2019, 12:13:24 AM
yes im well aware of those facts!  ;D re:your last sentence; thats the reason im posting.

1 thing at a time;

noone has managed it because they havent been determined enough TO manage it;
what im doing is comparing many different versions of the firmware for similar key sequences;

this is why im compiling all the neccessary ingredients here on this section of the forum;

theres at least 3 external files embedded into the firmware; 2 kexts for osx + 1 file i think for os 9;
they have been embedded via some type of compression which means there must be markers for the begining + ending of the compressed files within the firmware; a sequence of hex characters will tell the os to deflate or inflate (compress or decompress) a certain part of the data; etc etc and then there would be another sequence of hex characters at the end of the embedded compressed kext; simply comparing the kext doesnt work as i just tried to do; i believe becuase it doesnt match because the kext file is the uncompressed version and doesnt perfectly match the compressed data within the firmware (duh)

i was just reading this: "How to recognize the compression algorithms with your eyes" https://zenhax.com/viewtopic.php?t=27 in an attempt to find the start/end points within the firmware file
Title: Re: Firmtek 1S2 (released September 2003)
Post by: Daniel on May 30, 2019, 12:32:09 PM
You can use this tool here to disassemble fcode roms: https://github.com/openbios/fcode-utils/tree/master/detok (https://github.com/openbios/fcode-utils/tree/master/detok).

The PEF file seems to be stored uncompressed in 252-byte chunks, interleaved with code to stitch the chunks together.
Title: Re: Firmtek 1S2 (released September 2003)
Post by: dosdude1 on January 24, 2023, 01:51:29 PM
Figured I'd update this thread with my latest advancement with regard to the SeriTek/1S2 ROM. I was able to successfully patch it to remove the EEPROM ID check, in both the OS X NDRV/kexts, and the OS9 NDRV! I was only able to get my hands on a copy of version 5.1.3 of the ROM, but it would be even more beneficial if I were able to find and patch version 5.0.7, as apparently that will fit on a 128k EEPROM.
Title: Re: Firmtek 1S2 (released September 2003)
Post by: IIO on January 24, 2023, 02:43:00 PM
thanks, it already has been mentioned here. i was about to copy the file but i thought you should decide where to upload it.
Title: Re: Firmtek 1S2 (released September 2003)
Post by: darthnVader on January 28, 2023, 01:11:00 AM
Figured I'd update this thread with my latest advancement with regard to the SeriTek/1S2 ROM. I was able to successfully patch it to remove the EEPROM ID check, in both the OS X NDRV/kexts, and the OS9 NDRV! I was only able to get my hands on a copy of version 5.1.3 of the ROM, but it would be even more beneficial if I were able to find and patch version 5.0.7, as apparently that will fit on a 128k EEPROM.

That's great work, could you give us a quick/ dumbed down version of what you did with this patch?

Title: Re: Firmtek 1S2 (released September 2003)
Post by: IIO on January 28, 2023, 09:30:51 AM
moved to here
http://macos9lives.com/smforum/index.php/topic,306.msg50254/topicseen.html#new
#151
Title: Re: Firmtek 1S2 (released September 2003)
Post by: dosdude1 on February 07, 2023, 09:47:24 PM
Figured I'd update this thread with my latest advancement with regard to the SeriTek/1S2 ROM. I was able to successfully patch it to remove the EEPROM ID check, in both the OS X NDRV/kexts, and the OS9 NDRV! I was only able to get my hands on a copy of version 5.1.3 of the ROM, but it would be even more beneficial if I were able to find and patch version 5.0.7, as apparently that will fit on a 128k EEPROM.

That's great work, could you give us a quick/ dumbed down version of what you did with this patch?

The patch itself actually ended up being fairly easy to perform. The first thing to be aware of is that the EEPROM ID check is performed in the driver executables, run under OS 9 or OS X, and NOT in the ROM's FCode itself. There are two separate drivers embedded in the ROM, one for OS 9, and one for OS X (in the form of an mkext, containing 2 kexts). The OS 9 one was pretty easy, I simply had to extract the executable binary from the ROM, and load it into a disassembler. From there, after a bit of analysis, I was able to locate the EEPROM ID check, and perform a very small binary patch to bypass it. I'll attach a screenshot of the modified assembly control flow diagram, after I applied my patches. You can see where the EEPROM ID check is performed, where it checks for the IDs of the three supported EEPROM models (AM29LV040 - 01 4F, MX29LV040 - C2 4F, PM39LV040 - 9D 3E), and loads 1 into R31 when it sees one of these IDs present. I simply patched the binary to load 1 into R31 and finish the function, without doing any checking (as you can see in the diagram). A similar patch was made to the OS X kext. The kext is a bit more tricky to get back into the ROM image, as the patched kext must be re-packed into an mkext, and the resulting mkext binary re-encoded into a form where it can be inserted back into the ROM.

Now, just recently, I went even further with the modifications, by implementing a custom lzss decompression routine into the ROM. I could use this to decompress the OS 9 driver executable at runtime, allowing me to store it in an lzss-compressed form in the ROM. Compressing reduced the size of the executable by almost half, which was enough to get the entire ROM small enough to fit onto a 128K EEPROM. You can see my latest update on that here (http://macos9lives.com/smforum/index.php/topic,306.msg50427.html#msg50427). The OS X mkext is already compressed, so nothing could be done with that.