rgwan/fs1r_firmware_RE

GitHub: rgwan/fs1r_firmware_RE

一个针对YAMAHA FS1R合成器的固件逆向工程资源仓库,包含ROM转储、Ghidra数据库和升级维修指南。

Stars: 11 | Forks: 1

# FS1R 逆向工程 本仓库包含 YAMAHA FS1R 的 ROM 加载器镜像,以及一些 Ghidra 数据库,以帮助您模拟、修复甚至从头制作 FS1R。 * 文件夹 `dmps` 包含 YAMAHA FS1R 固件的转储。 * 文件夹 `fs1r_gdr` 包含 Ghidra 数据库。 * 文件夹 `pics` 包含有用的照片和截图。 * 文件夹 `la` 包含逻辑分析仪捕获的波形。 ## 关于启动过程和固件升级流程 CPU(SH7044,IC1)的启动模式配置为 4'b1010,这意味着它以闪存模式运行,外部总线正常映射。闪存由许多 EB(擦除块)构成,但此处不深入细节。 ### FS1R 固件方案的详细结构 * `外部 EPROM`,映射在 `0x200000-0x3fffff`(2MB)。 * `内部闪存`,映射在 `0x0-0x3ffff`(256KB)。 * `加载器` 位于闪存的 `0x0000-0x7fff`(32KB,第一个 EB),其他空间被固件的某些部分使用。我认为 Yamaha 使用内部闪存存储时序敏感的程序,而其他程序存放在较慢的 EPROM 中,并由 CPU 进行 XIP 执行。 ### 启动和升级流程 当系统启动时,CPU 从地址 0 和 4 获取复位向量和堆栈顶部,这些地址位于闪存中。 然后 CPU 执行 `加载器程序`,该程序将进行 RAM 清除、某些总线/外设配置,并最终检查闪存和外部 EPROM 的固件版本是否相同。如果相同,则系统启动到正常模式。 如果不相同,则 `加载器` 跳转到位于 EPROM 中的 `升级程序`,擦除除 EB0(`加载器`所在位置)之外的所有 EB,然后将代码从外部ROM(总线地址:0x3c8000-0x3fffff,文件偏移:0x1c8000-0x1fffff)复制到闪存(地址:0x8000 - 0x1fffff),最后清除 NVRAM 以完成升级过程。 ### 升级说明 如果您想通过更换外部 EPROM 来升级 FS1R 的固件,请在首次启动时短路靠近 CPU 的 JP1 跳线(该跳线实际上控制 CPU 的闪存硬件写保护引脚,当它断开时,CPU 内部的闪存控制器将拒绝任何对闪存的操作),否则它将无法启动(可能卡在 "FLASH ROM INITIALIZE" 屏幕上),因为内部闪存处于写保护状态。如果一切正确,屏幕上将会显示 `FLASH ROM ??%`。 当您的合成器更换 EPROM 后首次启动时。 **切勿在此刻关闭合成器电源,否则闪存中的数据可能会丢失!** 如果 `加载器程序` 被误擦除,您必须将其从主板上拆焊(通常情况下,系统内编程协议无需拆焊即可工作,但 SH7044 的 ISP 协议使用 SCI1,而 FS1R 中 SCI1 被配置为其他功能,用于与主机通信。因此您必须拆焊它),然后使用 `Z-FTAT`、`openh8writer` 或 *一些老旧、笨重且昂贵的编程器* 重新编程,考虑到 Yamaha PCB 的质量并非很好,这确实很麻烦。我有一些预编程好的 FS1R CPU 备件,但我希望您永远不需要它们。 当屏幕恢复正常时,升级过程完成,您必须移除 JP1 跳线上的短接线。通常情况下,FS1R 永远不会擦除或写入闪存,因为其设置存储在主板上 NVRAM 中,移除跳线将保持内部闪存的安全。 ## 关于维修 当您想要更换 FS1R 的 CPU(HD64F7044F)时,请至少使用 `fs1r_loader.bin` 进行烧录,我建议使用 `fs1r_sh7044_flash_1.20_256k.bin`。 注意:`fs1r_sh7044_flash_1.20_256k.bin` 必须与烧录到外部闪存/EPROM(IC4)中的 `Yamaha FS1R v1.20 EPROM Firmware.bin` 一起使用,否则合成器可能无法启动。 建议的 IC4 替换芯片是 DIP-42 封装的 MX29F1615 NOR 闪存,它不需要紫外线即可擦除,并且可以轻松使用 XGecu T48 编程器进行编程。 ## 额外内容 几年前我得到了一张 PLG150-DX 卡,我意识到 PLG150-DX 实际上使用了与 FS1R 相同的振荡器芯片(FS,PN:YMP706)。 PLG150-DX 的原理图比 FS1R 简单得多,它运行在 SH2 上,没有内部 ROM,这比 FS1R 更适合逆向工程。 我添加了这些 ROM 转储,并将这两个转储合并为单个文件的 ROM 镜像。同时附带了 PLG150-DX 的服务手册。 祝您愉快! ## 作者 Zhiyuan Wan ,2025/8/7 最后更新:2026/5/24
标签:Aarch64, EPROM, FS1R, Ghidra, SH7044, 云资产清单, 修复, 升级程序, 合成器, 启动流程, 固件分析, 固件转储, 存储映射, 嵌入式系统, 微控制器, 硬件逆向, 调试, 逆向工具, 逆向工程, 逻辑分析仪, 闪存, 雅马哈