๐Ÿ“ฆ cyrozap / jmb58x-re

Notes and utilities for reverse engineering JMicron's JMB582 / JMB585 SATA host controllers.

โ˜… 17 stars โ‘‚ 1 forks ๐Ÿ‘ 17 watching โš–๏ธ BSD Zero Clause License
๐Ÿ“ฅ Clone https://github.com/cyrozap/jmb58x-re.git
HTTPS git clone https://github.com/cyrozap/jmb58x-re.git
SSH git clone git@github.com:cyrozap/jmb58x-re.git
CLI gh repo clone cyrozap/jmb58x-re
cyrozap cyrozap Enable type checking on functions 5e14ec5 6 months ago ๐Ÿ“ History
๐Ÿ“‚ master View all commits โ†’
๐Ÿ“ data
๐Ÿ“ doc
๐Ÿ“ tools
๐Ÿ“„ LICENSE.txt
๐Ÿ“„ Makefile
๐Ÿ“„ README.md
๐Ÿ“„ README.md

JMB58x Reverse Engineering

The JMicron JMB582 and JMB585 are SATA 6Gb/s host controllers with PCIe Gen3 interfaces. The JMB582 has one PCIe Gen3 lane and two SATA ports, while the JMB585 has two PCIe Gen3 lanes and five SATA ports.

Quick start

Software dependencies

  • Python 3
  • Documentation generator:

Procedure

  • Install dependencies.
  • Dump the flash from your JMB58x card.
  • Parse and print the configuration flash with ./tools/parse.py ..., where
... is the name of the binary you got when you dumped your JMB58x card's flash.
  • Run make doc to generate XHTML documentation in
doc/generated.

Obtaining a flash image

In addition to dumping the flash of a JMB58x device, a flash image and proprietary flash tool for JMB58x devices can be downloaded from here.

Reverse engineering notes

See doc/Notes.md for my reverse engineering notes.

Machine-readable register documentation can be found in data/regs-jmb58x.yaml. Run make doc in the root of this repository to generate XHTML documentation in doc/generated, or view an online preview of the register documentation here.

License

Except where otherwise stated:

  • All software in this repository (e.g., tools for parsing and generating flash
images/configuration data, etc.) is made available under the Zero-Clause BSD (0BSD) license.
  • All copyrightable content that is not software (e.g., reverse engineering
notes, this README file, etc.) is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.