aboutsummaryrefslogtreecommitdiff
path: root/icepack
AgeCommit message (Collapse)Author
2024-06-21icebram,icepack: use correct format specifiers for sizeMarian Buschsieweke
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.
2021-03-05Add more build products to .gitignore.whitequark
2020-06-24icepack: show program name in usage.whitequark
2020-04-22Cleanup FpgaConfig::write_cram_pbm tile_type initializationClaire Wolf
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
2020-04-22Merge pull request #242 from The6P4C/masterClaire Wolf
icepack: Fix Windows-only stack overflow in CRAM pbm generation (fixe…
2020-04-10Support custom PROGRAM_PREFIXMiodrag Milanovic
2019-12-08icepack: Fix Windows-only stack overflow in CRAM pbm generation (fixes #241)The6P4C
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-09-13Fix typoClifford Wolf
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2019-08-08Only write bram data to ASCII output if bram data is present, fixes #228Clifford Wolf
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2019-05-15option for icepack to skip initializing BRAM (tested for ice40hx8k)Dennis Gnad
2018-05-06Add lm4k detection support to icepack.Andrew Wygle
2018-03-31Mount NODEFS if using emscripten and nodejsRobert Ou
Mounts root directory on `/hostfs` and the current working directory on `/hostcwd`
2018-02-13Add iCE40 Ultra (ice5lp) support to icepackDavid Shah
2017-12-31Enable writing nosleep config bit into output bitstream.William D. Jones
2017-12-31Add nosleep field to FpgaConfig- read_bits recognizes the option.William D. Jones
2017-11-20Fix whitespace and a couple of typosDavid Shah
2017-11-18Merge branch 'master' into up5kDavid Shah
2017-11-15Fix up build system to work with emscriptenRobert Ou
2017-11-08Preparations for DSP and IpCon fuzzingDavid Shah
2017-11-055k-related fixes to icepackDavid Shah
2017-11-01Fix BRAM initialisation on 5k partsDavid Shah
2017-10-21Add DSP and IPConnect tile support to icepack and glbcheckDavid Shah
2017-09-04icepack: Add support for non-warmboot imagesRoland Lutz
2017-07-31Fix icepack debug outputClifford Wolf
2017-07-31Merge branch 'master' into ice5kClifford Wolf
2017-07-16makefile: Make install target work for WindowsRobert Ou
2017-07-07Rework bram indexing to unbreak 8k. Still not sure if its correct for 5k.Scott Shawcroft
2017-07-04Indenting fixes in icepack.ccClifford Wolf
2017-07-04Correct cram mapping so glbcheck actually passes.Scott Shawcroft
2017-06-23More work figuring out values in icebox.pyScott Shawcroft
2017-06-22Add icefuzz support for the UP5K and rework underlying device specification ↵Scott Shawcroft
for more flexibility.
2017-06-20initial packing and unpacking parametersScott Shawcroft
2017-03-07Fix trailing whitespace in icepack.ccClifford Wolf
2017-03-06Disabling BRAM commands in bitsream for LP384hermitsoft
2017-03-06LP384 support in icepack - log_level back to 0hermitsoft
2017-03-05LP384 support in icepack (tested on real chip)Mihály Horváth
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-02-12Clean up MakefilesElvira Khabirova
2016-07-26Only define _GNU_SOURCE for vasprintf() when not _WIN32Clifford Wolf
2016-07-26Explicitly ask for vasprintf where appropriate.Yury Gribov
2016-03-02Added Makefile support for "make STATIC=1"Clifford Wolf
2016-02-27fix a few spelling mistakes in error messagesRuben Undheim
2016-02-14Added/improved support for mxe-based win32 cross buildsClifford Wolf
2015-12-31Added config.mk, correct DESTDIR/PREFIX usageClifford Wolf
2015-12-15Added mxe-based win32 buildClifford Wolf
2015-08-21cleaned up VS2013 fixesClifford Wolf
2015-08-21fixed for VS2013Antti Lukats
2015-08-18variablize CXX and PYTHON and add -L and -IAaron Bieber
2015-08-06Removed "icepack -C" (use "icebox_colbuf -f" instead)Clifford Wolf
2015-07-30Imply "icepack -C" for 8k devices (temporary workaround)Clifford Wolf
2015-07-30Added icepack -CClifford Wolf