Florent Kermarrec [Fri, 13 Mar 2020 14:51:18 +0000 (15:51 +0100)]
cores/clock: simplify Fractional Divide support on S7MMCM.
Specific clkoutn_divide_range can now be provided by specialized XilinxClocking classes.
When provided, the specific range will be used. Floats are also now supported in the
range definition/iteration.
enjoy-digital [Fri, 13 Mar 2020 13:15:24 +0000 (14:15 +0100)]
Merge pull request #421 from betrusted-io/clk0_fractional
add fractional division options to clk0 config on PLL
Florent Kermarrec [Fri, 13 Mar 2020 11:24:36 +0000 (12:24 +0100)]
test: add initial (minimal) test for clock abstraction modules.
Also fix divclk_divide_range on S6DCM.
Florent Kermarrec [Fri, 13 Mar 2020 08:37:23 +0000 (09:37 +0100)]
targets/icebreaker: add description of the board, link to crowdsupply campagin and to the more complete example.
Sean Cross [Fri, 13 Mar 2020 05:44:13 +0000 (13:44 +0800)]
Merge pull request #426 from esden/update-wavedrom
Updating the vendored wavedrom js files.
Piotr Esden-Tempski [Fri, 13 Mar 2020 05:35:04 +0000 (22:35 -0700)]
Updating the vendored wavedrom js files.
Florent Kermarrec [Thu, 12 Mar 2020 11:20:48 +0000 (12:20 +0100)]
soc/intergration: rename mr_memory_x parameter to memory_x.
enjoy-digital [Thu, 12 Mar 2020 11:12:48 +0000 (12:12 +0100)]
Merge pull request #424 from esden/generate-memory-x
Add --mr-memory-x parameter to generate memory regions memory.x file
Piotr Esden-Tempski [Thu, 12 Mar 2020 01:07:33 +0000 (18:07 -0700)]
Add --mr-memory-x parameter to generate memory regions memory.x file.
This file is used by rust embedded target pacs.
Florent Kermarrec [Wed, 11 Mar 2020 11:57:29 +0000 (12:57 +0100)]
Merge branch 'master' of github.com/enjoy-digital/litex
Florent Kermarrec [Wed, 11 Mar 2020 11:56:40 +0000 (12:56 +0100)]
software: revert LTO changes (Disable it).
It seems LTO is not yet fully working with all configurations, so it's better
reverting the changes for now.
- cause issues with LM32 available compilers.
- seems to cause issues with min/lite variant of VexRiscv.
- seems to cause issues with some litex-buildenv configurations. (see https://github.com/enjoy-digital/litex/issues/417).
Sean Cross [Wed, 11 Mar 2020 11:38:42 +0000 (19:38 +0800)]
Merge pull request #422 from xobs/core-doc-fixes
Core doc fixes
enjoy-digital [Wed, 11 Mar 2020 11:33:50 +0000 (12:33 +0100)]
Merge pull request #423 from gsomlo/gls-ethmac-fixes
integration/soc: add_ethernet: honor self.map["ethmac"], if present
Florent Kermarrec [Wed, 11 Mar 2020 11:06:15 +0000 (12:06 +0100)]
cores/gpio: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 10:04:42 +0000 (11:04 +0100)]
cores/icap: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 09:58:22 +0000 (10:58 +0100)]
cores/spi: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 09:38:28 +0000 (10:38 +0100)]
cores/pwm: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 09:05:14 +0000 (10:05 +0100)]
cores/xadc: add CSR descriptions.
Gabriel Somlo [Tue, 10 Mar 2020 23:45:45 +0000 (19:45 -0400)]
integration/soc: add_ethernet: honor self.map["ethmac"], if present
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Florent Kermarrec [Tue, 10 Mar 2020 16:02:28 +0000 (17:02 +0100)]
targets/kcu105: move cd_pll4x.
Florent Kermarrec [Tue, 10 Mar 2020 15:48:07 +0000 (16:48 +0100)]
targets/kcu105: simplify CRG using USIDELAYCTRL.
Florent Kermarrec [Tue, 10 Mar 2020 15:45:38 +0000 (16:45 +0100)]
cores/clock/USIDELAYCTRL: use separate reset/ready counters and set cd_sys.rst internally.
This is the behaviour that was duplicated in each target. Integrating it here
will allow simplifying the targets.
Sean Cross [Tue, 10 Mar 2020 12:40:04 +0000 (20:40 +0800)]
soc/cores/spi_opi: documentation fixes
The ModuleDoc-generated documentation for the spi_opi module produced
slightly invalid output due to ambiguities in how rst assigns headers.
As a result, sections from the spi_opi document would appear as full
sections.
This cleans up these errors so that it parses properly under sphinx.
Signed-off-by: Sean Cross <sean@xobs.io>
Sean Cross [Tue, 10 Mar 2020 12:37:55 +0000 (20:37 +0800)]
soc/cores/i2s: fix rst parsing errors
The ModuleDoc-generated documentation for the i2s module produced
slightly invalid output due to ambiguities in how rst assigns headers.
As a result, sections from the i2s document would appear as full
sections.
This cleans up these errors so that it parses properly under sphinx.
Signed-off-by: Sean Cross <sean@xobs.io>
Florent Kermarrec [Tue, 10 Mar 2020 12:08:49 +0000 (13:08 +0100)]
bios: add more Ultrascale SDRAM debug with sdram_cdly command to set clk/cmd delay.
bunnie [Tue, 10 Mar 2020 10:48:30 +0000 (18:48 +0800)]
add fractional division options to clk0 config on PLL
S7 MMCMs allow fractional divider on clock 0. Add a fallback
to try fractional values on clock 0 if a solution can't be found.
This is necessary for e.g. generating both a 100MHz and 48MHz
clock from a 12MHz source with margin=0
enjoy-digital [Tue, 10 Mar 2020 10:43:23 +0000 (11:43 +0100)]
Merge pull request #419 from gsomlo/gls-ultra-sdram-fixup
software/bios: fixup for Ultrascale SDRAM debug
Florent Kermarrec [Tue, 10 Mar 2020 10:11:33 +0000 (11:11 +0100)]
cores/clock: add logging to visualize clkin/clkouts and computed config.
Florent Kermarrec [Tue, 10 Mar 2020 10:10:23 +0000 (11:10 +0100)]
integration/soc: add FPGA device and System clock to logs.
Florent Kermarrec [Tue, 10 Mar 2020 10:09:56 +0000 (11:09 +0100)]
targets/icebreaker: create CRG after SoC.
Gabriel Somlo [Mon, 9 Mar 2020 14:24:30 +0000 (10:24 -0400)]
software/bios: fixup for Ultrascale SDRAM debug
Keep CSR accesses independent of csr_data_width and csr_alignment.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Florent Kermarrec [Mon, 9 Mar 2020 18:36:39 +0000 (19:36 +0100)]
integration/soc: set use_rom when cpu_reset_address is defined in a rom region.
Florent Kermarrec [Mon, 9 Mar 2020 18:16:02 +0000 (19:16 +0100)]
boards/platforms/icebreaker: cleanup a bit.
Florent Kermarrec [Mon, 9 Mar 2020 18:08:27 +0000 (19:08 +0100)]
software/common: fix LTO checks.
Florent Kermarrec [Mon, 9 Mar 2020 18:03:05 +0000 (19:03 +0100)]
soc/cores/clock/iCE40PLL: add SB_PLL40_PAD support.
Florent Kermarrec [Mon, 9 Mar 2020 18:02:23 +0000 (19:02 +0100)]
build/lattice/icestorm: add timingstrict parameter and default to False. (similar behavior than others backends)
Florent Kermarrec [Mon, 9 Mar 2020 16:02:29 +0000 (17:02 +0100)]
targets/icebreaker: simplify, use standard VexRiscv, add iCE40PLL and run BIOS from SPI Flash.
Florent Kermarrec [Mon, 9 Mar 2020 15:51:11 +0000 (16:51 +0100)]
lattice/icestorm: enable DSP inference with Yosys and avoid setting SPI Flash in deep sleep mode after configuration which prevent running ROM CPU code from SPI Flash.
Florent Kermarrec [Mon, 9 Mar 2020 10:56:55 +0000 (11:56 +0100)]
boards: add initial icebreaker platform/target from litex-boards.
Florent Kermarrec [Mon, 9 Mar 2020 09:55:31 +0000 (10:55 +0100)]
software/bios: add Ultrascale SDRAM debug functions.
Florent Kermarrec [Mon, 9 Mar 2020 08:37:31 +0000 (09:37 +0100)]
boards/platforms/kcu105: avoid unnecessary {{}} on INTERNAL_VREF.
Florent Kermarrec [Sun, 8 Mar 2020 18:17:31 +0000 (19:17 +0100)]
integration/soc/SoCRegion: add size_pow2 and use this internally for checks since decoder is using rounded size to next power or 2.
Florent Kermarrec [Fri, 6 Mar 2020 19:05:27 +0000 (20:05 +0100)]
soc: allow creating SoC without BIOS.
By default the behaviour is unchanged and the SoC will provide a ROM:
./arty.py
Bus Regions: (4)
rom : Origin: 0x00000000, Size: 0x00008000, Mode: R, Cached: True Linker: False
sram : Origin: 0x01000000, Size: 0x00001000, Mode: RW, Cached: True Linker: False
main_ram : Origin: 0x40000000, Size: 0x10000000, Mode: RW, Cached: True Linker: False
csr : Origin: 0x82000000, Size: 0x00010000, Mode: RW, Cached: False Linker: False
The integrated rom can be disabled with:
./arty.py --integrated-rom-size=0
but the SoC builder will check for a user provided rom, and if not provided will complains:
ERROR:SoC:CPU needs rom Region to be defined as Bus or Linker Region.
When a rom is provided, the CPU will use the rom base address as cpu_reset_address.
If the user just wants the CPU to start at a specified address without providing a rom,
the cpu_reset_address parameter can be used:
./arty.py --integrated-rom-size=0 --cpu-reset-address=0x01000000
If the provided reset address is not located in any defined Region, an error will
be produced:
ERROR:SoC:CPU needs reset address 0x00000000 to be in a defined Region.
When no rom is provided, the builder will not build the BIOS.
enjoy-digital [Fri, 6 Mar 2020 18:00:13 +0000 (19:00 +0100)]
Merge pull request #416 from enjoy-digital/csr_svd
Add SVD export capability to Builder (csr_svd parameter) and targets …
Florent Kermarrec [Fri, 6 Mar 2020 13:53:59 +0000 (14:53 +0100)]
integration/builder: rename software methods to _prepare_rom_software/_generate_rom_software/_initialize_rom_software.
Florent Kermarrec [Fri, 6 Mar 2020 13:20:32 +0000 (14:20 +0100)]
integration/builder: generate csr maps before compiling software.
Florent Kermarrec [Fri, 6 Mar 2020 07:36:52 +0000 (08:36 +0100)]
Add SVD export capability to Builder (csr_svd parameter) and targets (--csr-svd argument) and fix svd regression.
This allows generating SVD export files during the build as we are already doing for .csv or .json.
Use with Builder:
builder = Builder(soc, csr_svd="csr.svd")
Use with target:
./arty.py --csr-svd=csr.svd
Florent Kermarrec [Thu, 5 Mar 2020 22:42:16 +0000 (23:42 +0100)]
software/common.mak: fix LTO refactoring issue.
enjoy-digital [Thu, 5 Mar 2020 18:05:02 +0000 (19:05 +0100)]
Merge pull request #412 from antmicro/fix-copyrights
Fix copyrights
Karol Gugala [Thu, 5 Mar 2020 16:44:10 +0000 (17:44 +0100)]
Fix copyrights
Signed-off-by: Karol Gugala <kgugala@antmicro.com>
Signed-off-by: Mateusz Holenko <mholenko@antmicro.com>
enjoy-digital [Thu, 5 Mar 2020 14:22:40 +0000 (15:22 +0100)]
Merge pull request #408 from gsomlo/gls-fix-nexys-sdcard
targets/nexys4ddr: fix sdcard clocker initialization
Gabriel Somlo [Wed, 4 Mar 2020 18:38:02 +0000 (13:38 -0500)]
targets/nexys4ddr: fix sdcard clocker initialization
enjoy-digital [Thu, 5 Mar 2020 10:43:02 +0000 (11:43 +0100)]
Merge pull request #410 from antmicro/netv2-edid
platform/netv2: add proper I2C pins for HDMI IN0
Piotr Binkowski [Thu, 5 Mar 2020 10:27:47 +0000 (11:27 +0100)]
platform/netv2: add proper I2C pins for HDMI IN0
Florent Kermarrec [Thu, 5 Mar 2020 10:19:29 +0000 (11:19 +0100)]
targets/ecp5: make sure all BaseSoC/EthernetSoc default to trellis.
Florent Kermarrec [Wed, 4 Mar 2020 17:33:08 +0000 (18:33 +0100)]
bios/sdcard: update sdclk_mmcm_write with LiteSDCard clocker changes.
Florent Kermarrec [Wed, 4 Mar 2020 15:31:41 +0000 (16:31 +0100)]
doc: align to improve readability.
Florent Kermarrec [Wed, 4 Mar 2020 15:27:11 +0000 (16:27 +0100)]
soc/doc: remove soc.get_csr_regions support.
Now that SoC documentation is integrated in LiteX, this is no longer needed.
Florent Kermarrec [Wed, 4 Mar 2020 14:53:18 +0000 (15:53 +0100)]
bios/main: rename flushl2 command to flush_l2_cache, add flush_cpu_dcache command and expose them in help.
Florent Kermarrec [Wed, 4 Mar 2020 14:21:43 +0000 (15:21 +0100)]
README: update quick start guide and add instructions for windows.
Florent Kermarrec [Wed, 4 Mar 2020 11:16:03 +0000 (12:16 +0100)]
README: update
- improve presentation
- add link to #litex freenode channel.
- add example of complex SoC.
- make it directly usable on Wiki.
- only keep one quick start guide.
- add community paragraph and link to Litex-Hub.
Florent Kermarrec [Wed, 4 Mar 2020 09:53:44 +0000 (10:53 +0100)]
doc: remove partial doc imported from litex-buildenv-wiki: we'll create a LiteX wiki and doc.
Florent Kermarrec [Wed, 4 Mar 2020 08:06:27 +0000 (09:06 +0100)]
build: assume vendor tools are in the PATH and remove automatic sourcing, source and toolchain_path parameters.
Automatic sourcing was not consistent between build backends (and only really supported by ISE/Vivado)
and had no real additional value vs the complexity needed to support it. Now just assume required vendor
tools are in the PATH.
This also removes distutils dependency.
Florent Kermarrec [Wed, 4 Mar 2020 07:11:21 +0000 (08:11 +0100)]
software/common: add LTO enable flag and cleanup.
Florent Kermarrec [Tue, 3 Mar 2020 18:04:18 +0000 (19:04 +0100)]
litex_sim: fix with_uart parameter.
Florent Kermarrec [Mon, 2 Mar 2020 08:44:20 +0000 (09:44 +0100)]
targets/nexys4ddr: add default kwargs parameters.
Florent Kermarrec [Mon, 2 Mar 2020 08:31:45 +0000 (09:31 +0100)]
Merge branch 'master' of https://github.com/enjoy-digital/litex
Florent Kermarrec [Mon, 2 Mar 2020 08:31:32 +0000 (09:31 +0100)]
integration/soc_core: change disable parameters to no-xxyy.
enjoy-digital [Mon, 2 Mar 2020 08:30:05 +0000 (09:30 +0100)]
Merge pull request #405 from sajattack/sifive-triple
add riscv-sifive-elf triple
Florent Kermarrec [Mon, 2 Mar 2020 08:07:31 +0000 (09:07 +0100)]
integration/soc: add auto_int type and use it on all int parameters.
Allow passing parameters as int or hex values.
Florent Kermarrec [Mon, 2 Mar 2020 08:01:05 +0000 (09:01 +0100)]
targets/nexys4ddr: use SoCCore and add_sdram to avoid use of specific SoCSDRAM.
Florent Kermarrec [Mon, 2 Mar 2020 07:42:59 +0000 (08:42 +0100)]
integration/soc: add ethphy CSR in target.
Florent Kermarrec [Sun, 1 Mar 2020 19:50:44 +0000 (20:50 +0100)]
targets/nexys4ddr: use soc.add_ethernet method.
Florent Kermarrec [Sun, 1 Mar 2020 19:50:13 +0000 (20:50 +0100)]
integration/soc: add add_ethernet method.
Florent Kermarrec [Sun, 1 Mar 2020 17:58:55 +0000 (18:58 +0100)]
integration/soc: mode litedram imports to add_sdram, remove some separators.
Paul Sajna [Sun, 1 Mar 2020 09:39:03 +0000 (01:39 -0800)]
add riscv-sifive-elf triple
Florent Kermarrec [Sat, 29 Feb 2020 10:07:06 +0000 (11:07 +0100)]
test/test_targets: use uart-name=stub.
Florent Kermarrec [Fri, 28 Feb 2020 21:34:11 +0000 (22:34 +0100)]
soc/uart: add configurable UART FIFO depth.
Florent Kermarrec [Fri, 28 Feb 2020 21:11:51 +0000 (22:11 +0100)]
cores/uart: cleanup
Florent Kermarrec [Fri, 28 Feb 2020 21:03:40 +0000 (22:03 +0100)]
soc/cores/uart/UARTCrossover: reduce fifo_depth to 1.
Florent Kermarrec [Fri, 28 Feb 2020 19:03:47 +0000 (20:03 +0100)]
interconnect/stream/SyncFIFO: allow depth down to 0.
Florent Kermarrec [Fri, 28 Feb 2020 15:33:18 +0000 (16:33 +0100)]
interconnect/axi: remove Record inheritance on AXIInterface/AXILiteInterface.
Florent Kermarrec [Fri, 28 Feb 2020 15:25:09 +0000 (16:25 +0100)]
interconnect/axi: add AXI Stream definition and get_ios/connect_to_pads methods.
Florent Kermarrec [Fri, 28 Feb 2020 12:19:10 +0000 (13:19 +0100)]
interconnect/axi: set default data_width/address_width to 32-bit.
Florent Kermarrec [Fri, 28 Feb 2020 08:48:48 +0000 (09:48 +0100)]
targets: default to trellis toolchain on all ECP5 targets (now able to build all supported targets).
Florent Kermarrec [Fri, 28 Feb 2020 08:10:28 +0000 (09:10 +0100)]
cores/gpio: use separate TSTriple for each bit.
This fixes per bit OE control.
Florent Kermarrec [Fri, 28 Feb 2020 07:32:29 +0000 (08:32 +0100)]
lattice/yosys: don't use quiet operation since logs are useful and for consistency with others build backends.
Florent Kermarrec [Thu, 27 Feb 2020 12:00:35 +0000 (13:00 +0100)]
targets/kc705: use DDRPHY_CMD_DELAY to center write leveling.
Florent Kermarrec [Thu, 27 Feb 2020 11:25:37 +0000 (12:25 +0100)]
software/bios/sdram: allow setting CLK/CMD delay from user design and configure it before write/read leveling.
Setting a manual delay on CLK/CMD vs DQ/DQS is required on some configuration to center the write leveling window:
Before (delay = 0 taps):
Write leveling:
m0: |
11000000000000011111111111| delay: 15
m1: |
00000000000000111111111111| delay: 14
m2: |
11110000000000000111111111| delay: 17
m3: |
11110000000000000011111111| delay: 18
m4: |
11111111110000000000000111| delay: 00
m5: |
11111111110000000000000111| delay: 00
m6: |
11111111111000000000000001| delay: 00
m7: |
11111111111000000000000011| delay: 00
After (delay = 12 taps):
Write leveling:
m0: |
11111111111111000000000000| delay: 00
m1: |
11111111111100000000000001| delay: 00
m2: |
00011111111111110000000000| delay: 03
m3: |
00011111111111110000000000| delay: 03
m4: |
00000000111111111111110000| delay: 08
m5: |
00000000111111111111110000| delay: 08
m6: |
00000000001111111111111000| delay: 10
m7: |
00000000001111111111111000| delay: 10
Florent Kermarrec [Thu, 27 Feb 2020 10:18:14 +0000 (11:18 +0100)]
boards: keep in sync with LiteX-boards
Florent Kermarrec [Wed, 26 Feb 2020 14:13:16 +0000 (15:13 +0100)]
interconnect/axi: remove mode on AXIInterface (not used and breaking LiteDRAM tests)
Florent Kermarrec [Wed, 26 Feb 2020 13:43:01 +0000 (14:43 +0100)]
integration/soc: -x on soc.py
Florent Kermarrec [Tue, 25 Feb 2020 14:56:27 +0000 (15:56 +0100)]
soc/cores/bitbang: fix missing self.comb on miso.
enjoy-digital [Tue, 25 Feb 2020 14:53:13 +0000 (15:53 +0100)]
Merge pull request #402 from antmicro/litex-gen-fix-uart-pins
tools: litex_gen: fix missing UART pins
Florent Kermarrec [Tue, 25 Feb 2020 14:31:27 +0000 (15:31 +0100)]
software: disable LTO with LM32 (not supported by old GCC versions easily available).
enjoy-digital [Tue, 25 Feb 2020 14:32:12 +0000 (15:32 +0100)]
Merge pull request #401 from antmicro/enable-lto
software: enable link time optimization (LTO)
Jan Kowalewski [Tue, 25 Feb 2020 13:24:29 +0000 (14:24 +0100)]
tools: litex_gen: fix missing UART pins
Tim 'mithro' Ansell [Tue, 27 Nov 2018 08:48:44 +0000 (00:48 -0800)]
software: enable link time optimization (LTO)
Co-authored-by: Pawel Czarnecki <pczarnecki@internships.antmicro.com>
enjoy-digital [Mon, 24 Feb 2020 13:49:35 +0000 (14:49 +0100)]
Merge pull request #400 from Xiretza/ecp5-pll-freqfix
Fix ECP5PLL VCO frequency range
Xiretza [Mon, 24 Feb 2020 13:39:44 +0000 (14:39 +0100)]
Fix ECP5PLL VCO frequency range
See https://www.latticesemi.com/view_document?document_id=50461 ("ECP5
and ECP5-5G Family Data Sheet"), section 3.19 "sysCLOCK PLL Timing".