Skip to content

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.