Skip to content

Releases: galmok/ASMTool

Release list

0.4

Choose a tag to compare

@galmok galmok released this 14 Sep 15:09
6566e4f

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 ASMT at offset 0x100 identifies the format, and the 32-bit offset
    at 0x0 points to a descriptor block. The 48-bit version is at base + 0x10.
  • This is O(1) and works for both 128 KB and 256 KB ROM images.
  • flash_info now 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 (includes libAsmIoLinux.so).

Drivers (not included)

As with previous releases, the ASMedia driver is not bundled:

  • Windows: you need asmiodll.dll and AsmIo.sys (32-bit) or AsmIo64.sys
    (64-bit). The asmiodll.dll / AsmIo.sys from ASMedia's ASM116x firmware
    updater provide the SATA flash access. Place them next to AsmTool.exe.
  • Linux: the build uses the userspace implementation and links libpci
    (install your distribution's libpci / pciutils development package).

Note: the Windows build is 32-bit by design, to interoperate with the 32-bit
ASMedia user-mode DLLs. rom_version works on both platforms and needs no
driver; the SATA flash_read / flash_info commands require the driver and
elevated privileges.

0.3

0.3

Choose a tag to compare

@galmok galmok released this 13 Sep 05:40
428e72b

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 (includes libAsmIoLinux.so).

Drivers (not included)

As with previous releases, the ASMedia driver is not bundled:

  • Windows: you need asmiodll.dll and AsmIo.sys (32-bit) or AsmIo64.sys
    (64-bit). The asmiodll.dll / AsmIo.sys from 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's libpci / pciutils development package).

Note: the Windows build is 32-bit by design, to interoperate with the 32-bit
ASMedia user-mode DLLs. rom_version works on both platforms and needs no
driver; the SATA flash_read / flash_info commands require the driver and
elevated privileges.

0.2

0.2

Choose a tag to compare

@galmok galmok released this 11 Sep 21:57
7f6f68a

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_info command; flash_read now 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.dll plus AsmIo.sys (32-bit) / AsmIo64.sys (64-bit), from the ASMedia firmware updater.
  • Linux: the bundled libAsmIoLinux.so is linked against libpci; make sure it is installed.

Place the driver file(s) next to the AsmTool executable.