From fb61d309dcfa12d439a06e416ca62c918d5f0255 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Thu, 12 Feb 2026 16:00:50 +0100 Subject: [PATCH] part: added Altera 10M25S --- doc/FPGAs.yml | 2 ++ src/altera.cpp | 10 ++++++++++ src/part.hpp | 1 + 3 files changed, 13 insertions(+) diff --git a/doc/FPGAs.yml b/doc/FPGAs.yml index 78ef1f3..a085a5a 100644 --- a/doc/FPGAs.yml +++ b/doc/FPGAs.yml @@ -156,6 +156,8 @@ Intel: Model: - 10M02 - 10M08 + - 10M16 + - 10M25 URL: https://www.intel.fr/content/www/fr/fr/products/details/fpga/max/10.html Memory: SVF Flash: POF diff --git a/src/altera.cpp b/src/altera.cpp index e488a44..d5a0a10 100644 --- a/src/altera.cpp +++ b/src/altera.cpp @@ -339,6 +339,16 @@ const std::map Altera::max10_memory_map = { .done_bit_addr = 0x0011, // done bit .pgm_success_addr = 0x0015} // program success addr }, + {0x031840dd, { // 10M25SA + .check_addr0 = 0x80009, // check_addr0 + .dsm_addr = 0x0000, .dsm_len = 1024, // DSM + .ufm_addr = 0x0400, .ufm_len = {4096, 4096}, // UFM + .cfm_addr = 0x2400, .cfm_len = {94208, 40960, 53248}, // CFM + .sectors_erase_addr = {0x17ffff, 0x27ffff, 0x37ffff, 0x47ffff, 0x57ffff}, // sectors erase address + // CHECKME: 2 lines + .done_bit_addr = 0x0011, // done bit + .pgm_success_addr = 0x0015} // program success addr + }, }; /* Write an arbitrary file in UFM1, UFM0 by default and also CFM2 and CFM1 if diff --git a/src/part.hpp b/src/part.hpp index 7d86411..b3ec5f6 100644 --- a/src/part.hpp +++ b/src/part.hpp @@ -274,6 +274,7 @@ static std::map fpga_list = { {0x031810dd, {"altera", "MAX 10", "10M02S", 10}}, {0x031820dd, {"altera", "MAX 10", "10M08S", 10}}, {0x031830dd, {"altera", "MAX 10", "10M16S", 10}}, + {0x031840dd, {"altera", "MAX 10", "10M25S", 10}}, {0x0318d0dd, {"altera", "MAX 10", "10M40S", 10}}, {0x031850dd, {"altera", "MAX 10", "10M50S", 10}}, /** dual-supply **/