Commit Graph

58 Commits

Author SHA1 Message Date
Matt Venn d06a967590 Update Claire's name and fix the reference image in the iceprog help 2025-06-03 11:06:08 +02:00
Marian Buschsieweke b171bdf665
icebram,icepack: use correct format specifiers for size
For printing `size_t` the format specifier `%lu` was used in the code.
However, `%lu` is used to print `unsigned long`. The correct format
specifier for `size_t` is `%zu`, so let's use that.
2024-06-21 23:36:34 +02:00
whitequark 529759c4bd Add more build products to .gitignore. 2021-03-05 12:43:57 +00:00
whitequark a4b1194b3a icepack: show program name in usage. 2020-06-24 19:57:22 +00:00
Claire Wolf df59d5997c Cleanup FpgaConfig::write_cram_pbm tile_type initialization
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
2020-04-22 18:05:12 +02:00
Claire Wolf 3fb2d2f735
Merge pull request #242 from The6P4C/master
icepack: Fix Windows-only stack overflow in CRAM pbm generation (fixe…
2020-04-22 18:01:58 +02:00
Miodrag Milanovic fe3086a733 Support custom PROGRAM_PREFIX 2020-04-10 10:05:17 +02:00
The6P4C 578037dedf icepack: Fix Windows-only stack overflow in CRAM pbm generation (fixes #241)
On Windows, attempting to generate a netpbm image of the CRAM with
`icepack -b` causes the tool to crash after writing only the netpbm
header due to a stack overflow. The bug did not appear on Linux.

This was traced to a large stack-allocated variable length array
(`tile_type`) inside `FpgaConfig::write_cram_pbm`. For an 8k ice40 with
4 banks, `cram_width = 872` and `cram_height = 272` the `tile_type`
array ends up at `4 * 872 * 272 * sizeof(uint32_t) =` 3794944 bytes, or
about 3.6 MiB.

The fix replaces the large stack VLA with an array of 4 (bank) 2D C++
vectors, moving the large amount of data to the heap. Even though the
fix is not in a Windows-specific code path (and hence applies to all
platforms), I think it's wise to eliminate such a large stack allocation
entirely.

The fix has been tested working on both Windows and an Ubuntu WSL
install.
2019-12-08 23:52:05 +10:00
Clifford Wolf 0ec00d892a Fix typo
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2019-09-13 12:55:48 +02:00
Clifford Wolf 6943ad7afa Only write bram data to ASCII output if bram data is present, fixes #228
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2019-08-08 17:02:44 +02:00
Dennis Gnad 992d8c97ea option for icepack to skip initializing BRAM (tested for ice40hx8k) 2019-05-15 16:57:17 +02:00
Andrew Wygle 56a0d3f8ea Add lm4k detection support to icepack. 2018-05-06 11:10:36 -07:00
Robert Ou 3bee3cfead Mount NODEFS if using emscripten and nodejs
Mounts root directory on `/hostfs` and the current working directory on
`/hostcwd`
2018-03-31 14:10:36 -07:00
David Shah 58e2e74d42 Add iCE40 Ultra (ice5lp) support to icepack 2018-02-13 20:22:05 +00:00
William D. Jones 182e9350de Enable writing nosleep config bit into output bitstream. 2017-12-31 01:52:59 -05:00
William D. Jones c093efc015 Add nosleep field to FpgaConfig- read_bits recognizes the option. 2017-12-31 01:34:36 -05:00
David Shah da7a2a9d0d Fix whitespace and a couple of typos 2017-11-20 09:43:54 +00:00
David Shah ed61efa023 Merge branch 'master' into up5k 2017-11-18 18:03:20 +00:00
Robert Ou 05440e4d62 Fix up build system to work with emscripten 2017-11-15 03:13:35 -08:00
David Shah 629621642f Preparations for DSP and IpCon fuzzing 2017-11-08 16:05:42 +00:00
David Shah 1d149133b5 5k-related fixes to icepack 2017-11-05 16:17:57 +00:00
David Shah 3bd601c0cd Fix BRAM initialisation on 5k parts 2017-11-01 12:02:44 +00:00
David Shah aa653a2a51 Add DSP and IPConnect tile support to icepack and glbcheck 2017-10-21 14:59:13 +01:00
Roland Lutz 898229bf2b icepack: Add support for non-warmboot images 2017-09-04 19:18:08 +02:00
Clifford Wolf 43c38447c9 Fix icepack debug output 2017-07-31 15:53:59 +02:00
Clifford Wolf 872e333cf7 Merge branch 'master' into ice5k 2017-07-31 14:57:24 +02:00
Robert Ou 4111f9cca5 makefile: Make install target work for Windows 2017-07-16 20:59:55 -07:00
Scott Shawcroft b019ae4e65 Rework bram indexing to unbreak 8k. Still not sure if its correct for 5k. 2017-07-07 17:00:20 -07:00
Clifford Wolf 96511b32b1 Indenting fixes in icepack.cc 2017-07-04 12:24:28 +02:00
Scott Shawcroft 15bcbb7c33 Correct cram mapping so glbcheck actually passes. 2017-07-04 12:12:13 +02:00
Scott Shawcroft a25c8679ac More work figuring out values in icebox.py 2017-06-23 22:53:54 -07:00
Scott Shawcroft 58a6110be1 Add icefuzz support for the UP5K and rework underlying device specification for more flexibility. 2017-06-22 17:38:38 -07:00
Scott Shawcroft ed8c4e8c03 initial packing and unpacking parameters 2017-06-20 16:50:52 -07:00
Clifford Wolf 2931984587 Fix trailing whitespace in icepack.cc 2017-03-07 08:08:10 +01:00
hermitsoft 4d4738beea Disabling BRAM commands in bitsream for LP384 2017-03-06 16:56:32 +01:00
hermitsoft e207307c74 LP384 support in icepack - log_level back to 0 2017-03-06 01:24:20 +01:00
Mihály Horváth fdf863b791 LP384 support in icepack (tested on real chip)
LP384 is now supported in icepack, it was fairly easy to realize as only the main chip dimensions are required that could be found out from the .bin bitsream file generated by iCEcube. 
Tested by creating .asc then packing it back to .bin. The testcase is just a simple LED on/off on a port though but that shows geometries are fine. 
Now I'm trying to have and support chipdb-384.txt hopefully with some help from the authors and anyone who already knows the internals of IceStorm well. I need info, how to reverse-engineer iCE40 chips the easiest way. Scripts maybe.
I'm trying to reach my goal in any way coz iCEcube sucks and IceStorm integrates well into commandline...
2017-03-05 22:25:47 +01:00
Elvira Khabirova ea82010fbf Clean up Makefiles 2017-02-12 16:13:03 +03:00
Clifford Wolf 12b2295c90 Only define _GNU_SOURCE for vasprintf() when not _WIN32 2016-07-26 10:31:22 +02:00
Yury Gribov 8a7a746ca9 Explicitly ask for vasprintf where appropriate. 2016-07-26 10:26:05 +02:00
Clifford Wolf 6178dfbbd6 Added Makefile support for "make STATIC=1" 2016-03-02 12:34:51 +01:00
Ruben Undheim 30cb298008 fix a few spelling mistakes in error messages 2016-02-27 09:36:55 -07:00
Clifford Wolf a519d2ab82 Added/improved support for mxe-based win32 cross builds 2016-02-14 13:47:27 +01:00
Clifford Wolf b9e6d07e9c Added config.mk, correct DESTDIR/PREFIX usage 2015-12-31 12:05:04 +01:00
Clifford Wolf da99818b81 Added mxe-based win32 build 2015-12-15 15:01:58 +01:00
Clifford Wolf d094abca1c cleaned up VS2013 fixes 2015-08-21 19:50:52 +02:00
Antti Lukats 2b8be10986 fixed for VS2013 2015-08-21 16:53:24 +02:00
Aaron Bieber 4b4511dfe9 variablize CXX and PYTHON and add -L and -I 2015-08-18 15:56:16 -06:00
Clifford Wolf c2edd14772 Removed "icepack -C" (use "icebox_colbuf -f" instead) 2015-08-06 10:41:36 +02:00
Clifford Wolf e9d968e8b8 Imply "icepack -C" for 8k devices (temporary workaround) 2015-07-30 17:10:20 +02:00