Repository navigation
Releases: galmok/ASMTool
Release list
0.4
What's new in 0.4
Faster, more robust firmware-version lookup
rom_version and flash_info now locate the firmware version directly via the
ROM's ASMT header instead of scanning the whole image:
- The magic
ASMTat offset0x100identifies the format, and the 32-bit offset
at0x0points to a descriptor block. The 48-bit version is atbase + 0x10. - This is O(1) and works for both 128 KB and 256 KB ROM images.
flash_infonow reads the version with just two small reads (header + the
6 version bytes) instead of streaming the flash — so it returns near-instantly.- The previous name-marker search is kept as a fallback for images without
the header.
Usage
# Print the firmware version of a ROM file (no driver / admin needed)
AsmTool rom_version ASM1166_10250005.ROM
Firmware version: 241025-0000-05
# Detect the flash chip + firmware version on a SATA controller
AsmTool flash_info
The firmware version is reported as YYMMDD-build-rev (for example
241025-0000-05).
Assets
AsmTool-<hash>_windows.zip— Windows x86 (32-bit) build.AsmTool-<hash>_linux.zip— Linux x86-64 build (includeslibAsmIoLinux.so).
Drivers (not included)
As with previous releases, the ASMedia driver is not bundled:
- Windows: you need
asmiodll.dllandAsmIo.sys(32-bit) orAsmIo64.sys
(64-bit). Theasmiodll.dll/AsmIo.sysfrom ASMedia's ASM116x firmware
updater provide the SATA flash access. Place them next toAsmTool.exe. - Linux: the build uses the userspace implementation and links
libpci
(install your distribution'slibpci/pciutilsdevelopment package).
Note: the Windows build is 32-bit by design, to interoperate with the 32-bit
ASMedia user-mode DLLs.rom_versionworks on both platforms and needs no
driver; the SATAflash_read/flash_infocommands require the driver and
elevated privileges.
0.3
What's new in 0.3
New: rom_version command
Print the firmware version embedded in a SATA (ASM116x) ROM image:
AsmTool rom_version ASM1166_10250005.ROM
Firmware version: 241025-0000-05
This reads the ROM file directly, so it needs no driver and no admin rights.
flash_info now shows the firmware version
AsmTool flash_info (SATA controllers) now also reports the firmware version
read live from the SPI flash:
Flash chip : ...
JEDEC ID : ...
Capacity : ...
Firmware : 241025-0000-05
BAR0 base : 0x...
How the version is determined
The ROM carries a small identification block:
[2 pad bytes] [6-byte version] ["2116RAM" name]
The version is a big-endian 48-bit value, reported as YYMMDD-build-rev
(e.g. 241025-0000-05). The unique 2116RAM marker is located by search, so it
works for both 128 KB and 256 KB ROM layouts.
Copyright
The ASM116x SATA files (AsmSataChipTable.cs, AsmSataDevice.cs) are now
correctly attributed to Bernhard Ege <galmok@gmail.com>.
Assets
AsmTool-<hash>_windows.zip— Windows x86 (32-bit) build.AsmTool-<hash>_linux.zip— Linux x86-64 build (includeslibAsmIoLinux.so).
Drivers (not included)
As with previous releases, the ASMedia driver is not bundled:
- Windows: you need
asmiodll.dllandAsmIo.sys(32-bit) orAsmIo64.sys
(64-bit). Theasmiodll.dll/AsmIo.sysfrom ASMedia's ASM116x firmware
updater (RomUpdWin) provide the SATA flash access. Place them next to
AsmTool.exe. - Linux: the build uses the userspace implementation and links
libpci
(install your distribution'slibpci/pciutilsdevelopment package).
Note: the Windows build is 32-bit by design, to interoperate with the 32-bit
ASMedia user-mode DLLs.rom_versionworks on both platforms and needs no
driver; the SATAflash_read/flash_infocommands require the driver and
elevated privileges.
0.2
What's new
- SATA (ASM106x/ASM116x) support — the controller family (SATA / USB) is auto-detected; the tool reads the SPI flash chip and dumps the full flash contents.
- New
flash_infocommand;flash_readnow accepts an output filename. - USB (ASM2142/3142) support is unchanged.
Usage
ASMTool flash_info # show the detected SATA flash chip / capacity
ASMTool flash_read [out.bin] # dump the SPI flash firmware (SATA or USB)
ASMTool fw_info <firmware.rom> # inspect a USB firmware image
ASMTool fw_set_type <rom> <2142|3142>
ASMTool mem_read # dump 128 KB of USB controller memory
Assets
AsmTool-7f6f68a804_windows.zip— Windows x86 (32-bit) build.AsmTool-7f6f68a804_linux.zip— Linux x86_64 build.
Notes
Driver files are not included — you must supply them yourself:
- Windows:
asmiodll.dllplusAsmIo.sys(32-bit) /AsmIo64.sys(64-bit), from the ASMedia firmware updater. - Linux: the bundled
libAsmIoLinux.sois linked againstlibpci; make sure it is installed.
Place the driver file(s) next to the AsmTool executable.