OSR USB FX2 Firmware Reverse Engineering Overview
After writing a USB driver for the OSR USB FX2 learning board, I wanted to know how the firmware worked so I could build my own projects based on the Cypress EZUSBFX2 chip. I looked online but the firmware was not available from OSR. I decided to reverse engineer the firmware and do everything from scratch. I built an FPGA project to read and write I2C EEPROMS. I then wrote my own 8051 disassembler and assembler. I then went through the OSR firmware line by line and commented it thoroughly. Finally, I realized the firmware could be optimized so I made a "slim" version of the firmware which I was then able to use as a skeleton framework for other projects. Below are the various steps I took to complete this project.