From d61e14798987e146cd32e5ee8a3cf49653a75b34 Mon Sep 17 00:00:00 2001 From: AEW2015 Date: Sat, 15 Feb 2025 14:24:42 -0700 Subject: [PATCH] added 1.35v csg325 build and Macronix flash --- spiOverJtag/constr_xc7a_csg325_1v35.xdc | 23 ++++++++++++++++++ .../spiOverJtag_xc7a50tcsg325_1v35.bit.gz | Bin 0 -> 15946 bytes src/spiFlashdb.hpp | 16 ++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 spiOverJtag/constr_xc7a_csg325_1v35.xdc create mode 100644 spiOverJtag/spiOverJtag_xc7a50tcsg325_1v35.bit.gz diff --git a/spiOverJtag/constr_xc7a_csg325_1v35.xdc b/spiOverJtag/constr_xc7a_csg325_1v35.xdc new file mode 100644 index 0000000..dcde0d4 --- /dev/null +++ b/spiOverJtag/constr_xc7a_csg325_1v35.xdc @@ -0,0 +1,23 @@ +set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] +set_property BITSTREAM.CONFIG.CONFIGRATE 16 [current_design] + +set_property CONFIG_VOLTAGE 1.8 [current_design] +set_property CFGBVS GND [current_design] + +set_property CONFIG_MODE SPIx4 [current_design] +set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR NO [current_design] +set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] +set_property BITSTREAM.CONFIG.M1PIN PULLNONE [current_design] +set_property BITSTREAM.CONFIG.M2PIN PULLNONE [current_design] +set_property BITSTREAM.CONFIG.M0PIN PULLNONE [current_design] + +set_property BITSTREAM.CONFIG.USR_ACCESS TIMESTAMP [current_design] +set_property BITSTREAM.CONFIG.UNUSEDPIN PULLDOWN [current_design] +set_property BITSTREAM.CONFIG.OVERTEMPPOWERDOWN ENABLE [current_design] + +set_property -dict {PACKAGE_PIN L15 IOSTANDARD SSTL135_R} [get_ports csn] +set_property -dict {PACKAGE_PIN K16 IOSTANDARD SSTL135_R} [get_ports sdi_dq0] +set_property -dict {PACKAGE_PIN L17 IOSTANDARD SSTL135_R} [get_ports sdo_dq1] +set_property -dict {PACKAGE_PIN J15 IOSTANDARD SSTL135_R} [get_ports wpn_dq2] +set_property -dict {PACKAGE_PIN J16 IOSTANDARD SSTL135_R} [get_ports hldn_dq3] + diff --git a/spiOverJtag/spiOverJtag_xc7a50tcsg325_1v35.bit.gz b/spiOverJtag/spiOverJtag_xc7a50tcsg325_1v35.bit.gz new file mode 100644 index 0000000000000000000000000000000000000000..fd31f15007344e13c5b7e8f9daa9bff29f5da365 GIT binary patch literal 15946 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 K0u;gKOa23v)fn{v literal 0 HcmV?d00001 diff --git a/src/spiFlashdb.hpp b/src/spiFlashdb.hpp index 9fc1f25..8a9636c 100644 --- a/src/spiFlashdb.hpp +++ b/src/spiFlashdb.hpp @@ -471,6 +471,22 @@ static std::map flash_list = { .bp_offset = {(1 << 2), (1 << 3), (1 << 4), (1 << 5)}, .quad_register = STATR, .quad_mask = (1 << 6), + }}, + {0xc22537, { + /* https://www.macronix.com/Lists/Datasheet/Attachments/8904/MX25U6432F,%201.8V,%2064Mb,%20v1.1.pdf */ + .manufacturer = "Macronix", + .model = "MX25U6432F", + .nr_sector = 128, + .sector_erase = true, + .subsector_erase = true, + .has_extended = false, + .tb_otp = true, + .tb_offset = (1 << 3), + .tb_register = CONFR, + .bp_len = 4, + .bp_offset = {(1 << 2), (1 << 3), (1 << 4), (1 << 5)}, + .quad_register = STATR, + .quad_mask = (1 << 6), }}, {0xc22817, { /* https://www.macronix.com/Lists/Datasheet/Attachments/8868/MX25R6435F,%20Wide%20Range,%2064Mb,%20v1.6.pdf */