enjoy-digital [Wed, 5 Aug 2020 10:30:34 +0000 (12:30 +0200)]
Merge pull request #622 from antmicro/fix_connectors
arty: Change USB-uart and I2S Pmod configuration
Florent Kermarrec [Wed, 5 Aug 2020 10:11:28 +0000 (12:11 +0200)]
soc/interconnect/axi: minor cleanups.
Florent Kermarrec [Wed, 5 Aug 2020 10:11:12 +0000 (12:11 +0200)]
interconnect/stream: set default AsyncFIFO depth to None and add depth parameter to ClockDomainCrossing.
Pawel Sagan [Wed, 29 Jul 2020 19:14:40 +0000 (21:14 +0200)]
arty: Change USB-uart and I2S Pmod configuration
This makes it compatible with the Arty A7 expansion board by Antmicro
(https://github.com/antmicro/arty-expansion-board).
Florent Kermarrec [Wed, 5 Aug 2020 06:56:35 +0000 (08:56 +0200)]
interconnect/csr: add CSR registers ordering support.
The original CSR registers ordering (big: MSB on lower addresses) is not convenient
when the SoC is interfaced with a real OS (for example as a PCIe add-on board or
with a CPU running Linux).
With this, the original ordering is kept as default (big), but it can now be switched
to little to avoid software workarounds in drivers and should probably be in the future
the default for PCIe/Linux SoCs.
Florent Kermarrec [Wed, 5 Aug 2020 05:59:35 +0000 (07:59 +0200)]
soc/interconnect/csr: improve ident.
Florent Kermarrec [Tue, 4 Aug 2020 17:56:26 +0000 (19:56 +0200)]
integration/soc: add expection on decoder when full address space is mapped.
Florent Kermarrec [Tue, 4 Aug 2020 17:55:46 +0000 (19:55 +0200)]
wishbone: revert default adr_width to 30.
Florent Kermarrec [Tue, 4 Aug 2020 14:38:02 +0000 (16:38 +0200)]
tools/litex_json2dts: add missing copyrights.
Florent Kermarrec [Tue, 4 Aug 2020 14:07:53 +0000 (16:07 +0200)]
setup: add litex_json2dts to console_scripts.
enjoy-digital [Tue, 4 Aug 2020 14:04:57 +0000 (16:04 +0200)]
Merge pull request #620 from antmicro/add_litex_json2dts
Add Linux DT generation script
Florent Kermarrec [Tue, 4 Aug 2020 13:37:56 +0000 (15:37 +0200)]
build/sim/config: add default_clk/default_clk_freq parameters for retro-compatibility with previous API.
Florent Kermarrec [Tue, 4 Aug 2020 13:32:29 +0000 (15:32 +0200)]
build/sim: use json_object_get_int64 instead of json_object_get_uint64.
json_object_get_uint64 does not seem supported with old json-c versions.
enjoy-digital [Tue, 4 Aug 2020 13:38:28 +0000 (15:38 +0200)]
Merge pull request #619 from antmicro/jboc/sim-clocker
Allow to define multiple simulation clocks
Mateusz Holenko [Fri, 31 Jul 2020 12:42:05 +0000 (14:42 +0200)]
json2dts: Add Linux DT generation script
Jędrzej Boczar [Tue, 4 Aug 2020 12:00:58 +0000 (14:00 +0200)]
build/sim: improve timebase calculation (strict checks) and update modules
Florent Kermarrec [Tue, 4 Aug 2020 11:49:50 +0000 (13:49 +0200)]
cores/uart: add txempty/rxfull CSRs.
Useful in some use cases, like flushing tx.
Florent Kermarrec [Tue, 4 Aug 2020 08:40:34 +0000 (10:40 +0200)]
tools/litex_server: enable read_merger with CommUDP.
Limited to 4 (current size of the buffer in liteeth.frontend.etherbone).
Florent Kermarrec [Tue, 4 Aug 2020 07:37:53 +0000 (09:37 +0200)]
test: specify wishbone adr_width on AXI(Lite)<-->Wishbone tests and remove debug traces.
enjoy-digital [Tue, 4 Aug 2020 07:38:58 +0000 (09:38 +0200)]
Merge pull request #617 from gsomlo/gls_rocket_dma
RFC: enable DMA with Rocket
Gabriel Somlo [Mon, 3 Aug 2020 20:59:39 +0000 (16:59 -0400)]
debug: make CI print offending values
Gabriel Somlo [Mon, 3 Aug 2020 16:03:39 +0000 (12:03 -0400)]
liblitesdcard/sdcard: (temporarily) slow down SDCARD_CLK_FREQ to 25MHz
Rocket's DMA slave interface (and/or internal routing) currently
appears unable to route DMA writes from LiteSDCard at frequencies
above 25MHz (as tested on nexys4ddr, with Rocket, at 75MHz main
system clock frequency).
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Gabriel Somlo [Wed, 29 Jul 2020 10:59:59 +0000 (06:59 -0400)]
cores/cpu/rocket: expose slave port for DMA
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Gabriel Somlo [Mon, 3 Aug 2020 18:40:45 +0000 (14:40 -0400)]
integration/soc: make DMA slave region cover (at least) the lower 4GB
Assuming we currently support a 32-bit (4GB) physical address space,
ensure that the dma_bus slave covers the entire range, covering any
possible layout of the LiteX SoC memory map (e.g., rocket has MMIO
in a wide range of registers located below 2GB, and DRAM starting at
the 2GB mark, needing DMA accesses to be routed appropriately for the
entire 4GB physical address range).
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Gabriel Somlo [Mon, 3 Aug 2020 18:32:26 +0000 (14:32 -0400)]
interconnect/wishbone: increase WB address width to 31
This is needed to support memory regions up to 4GB in size (currently
limited to 2GB, or 0x8000_0000).
FIXME: CI complains about assertions re. axi_lite.address_width in
relationship to len(wishbone.adr) and wishbone_adr_shift, which
seems to be a problem on the 32bit (vexriscv?) CPU used for CI,
but seems to work fine on Rocket.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
foo
Gabriel Somlo [Sat, 1 Aug 2020 21:06:02 +0000 (17:06 -0400)]
soc/interconnect/axi: add Wishbone2AXI converter
Florent Kermarrec [Mon, 3 Aug 2020 16:47:17 +0000 (18:47 +0200)]
cores/gpio: add support for Record on GPIOOut, GPIOIn and GPIOInOut.
Jędrzej Boczar [Mon, 3 Aug 2020 14:52:54 +0000 (16:52 +0200)]
build/sim: allow for arbitrary clocks generation using clockers
Jędrzej Boczar [Mon, 3 Aug 2020 13:21:24 +0000 (15:21 +0200)]
build/sim: use a real timebase in the simulation
enjoy-digital [Mon, 3 Aug 2020 12:01:50 +0000 (14:01 +0200)]
Merge pull request #615 from pepijndevos/openfpgaloader
Add openFPGALoader programmer
Pepijn de Vos [Sat, 1 Aug 2020 09:06:08 +0000 (11:06 +0200)]
remove debugging
Pepijn de Vos [Sat, 1 Aug 2020 09:05:09 +0000 (11:05 +0200)]
add openFPGAloader programmer
Florent Kermarrec [Fri, 31 Jul 2020 06:59:53 +0000 (08:59 +0200)]
cpu/vexriscv/core: use variant name as human_name.
Allow it to be shown in the BIOS and help support.
Florent Kermarrec [Fri, 31 Jul 2020 06:58:30 +0000 (08:58 +0200)]
cpu/vexriscv/system.h: provide empty flush_cpu_i/dcache functions for variants with no i/d cache.
Florent Kermarrec [Thu, 30 Jul 2020 19:37:25 +0000 (21:37 +0200)]
cpu/zynq7000: set csr map to 0x00000000.
enjoy-digital [Thu, 30 Jul 2020 12:22:21 +0000 (14:22 +0200)]
Merge pull request #611 from antmicro/jboc/axi-lite
soc/interconnect/axi: add AXILite -> AXI converter
Florent Kermarrec [Thu, 30 Jul 2020 11:58:40 +0000 (13:58 +0200)]
tools/litex_server/read_merger: review/simplify a bit.
enjoy-digital [Thu, 30 Jul 2020 11:56:48 +0000 (13:56 +0200)]
Merge pull request #605 from cklarhorst/feature-uart-read-merger
Merge sequential reads for the UART litex_server backend
Jędrzej Boczar [Thu, 30 Jul 2020 11:38:17 +0000 (13:38 +0200)]
soc/interconnect/axi: add AXILite -> AXI converter
Florent Kermarrec [Thu, 30 Jul 2020 10:10:32 +0000 (12:10 +0200)]
cpu/blackparrot: minor cleanups, add sim variant (since use different flist).
enjoy-digital [Wed, 29 Jul 2020 16:11:00 +0000 (18:11 +0200)]
Merge pull request #610 from Dolu1990/vexriscv_smp
soc/cores/cpu/vexriscv_smp enable dynamic litedram datawidth
Dolu1990 [Wed, 29 Jul 2020 10:40:16 +0000 (12:40 +0200)]
soc/cores/cpu/vexriscv_smp enable dynamic litedram datawidth
Dolu1990 [Wed, 29 Jul 2020 09:14:09 +0000 (11:14 +0200)]
Merge branch 'master' into vexriscv_smp
Florent Kermarrec [Wed, 29 Jul 2020 09:10:05 +0000 (11:10 +0200)]
integration/soc/add_sdram: allow the CPU to add the direct memory buses when adding the sdram.
This is useful for CPUs elaborated at buildtime to use sdram's native data width on the CPU memory ports.
Florent Kermarrec [Wed, 29 Jul 2020 07:34:07 +0000 (09:34 +0200)]
cores/cpu/rocket: add use_memory_bus parameter to easily disable direct memory bus for testing.
Useful for current tests with LiteSDCard using DMA and that requires the DMA to be connnected to
the DMA bus of Rocket when the direct memory bus is used.
Dolu1990 [Tue, 28 Jul 2020 17:11:54 +0000 (19:11 +0200)]
Merge branch 'master' into vexriscv_smp
Dolu1990 [Tue, 28 Jul 2020 17:07:02 +0000 (19:07 +0200)]
soc/cores/cpu/vexriscv_smp config update
Florent Kermarrec [Tue, 28 Jul 2020 16:37:23 +0000 (18:37 +0200)]
CHANGES: update.
Florent Kermarrec [Tue, 28 Jul 2020 16:10:32 +0000 (18:10 +0200)]
cpu/vexriscv_smp: move litedram import, remove os.path import.
Florent Kermarrec [Tue, 28 Jul 2020 14:56:32 +0000 (16:56 +0200)]
litex_setup: fix vexriscv-smp repository.
enjoy-digital [Tue, 28 Jul 2020 14:53:55 +0000 (16:53 +0200)]
Merge pull request #607 from Dolu1990/vexriscv_smp
soc/cores/cpu/vexriscv_smp integration
Dolu1990 [Tue, 28 Jul 2020 14:20:16 +0000 (16:20 +0200)]
soc/cores/cpu/vexriscv_smp integration
Florent Kermarrec [Tue, 28 Jul 2020 12:36:49 +0000 (14:36 +0200)]
liblitesdcard/sdcard: increase SDCARD_CLK_FREQ to 50MHz.
Florent Kermarrec [Mon, 27 Jul 2020 17:57:29 +0000 (19:57 +0200)]
integration/soc/etherbone: expose ethcore (useful to combine udp/etherbone).
Florent Kermarrec [Mon, 27 Jul 2020 09:06:09 +0000 (11:06 +0200)]
integration/soc: fix dma_bus typo.
Christian Klarhorst [Sun, 26 Jul 2020 11:19:32 +0000 (13:19 +0200)]
Merge sequential reads for the UART litex_server backend
The UART backend writes [read identifier, num_reads, addr] for
every read request.
Etherbone packets are able to include multiple read requests.
Therefore, it is beneficial to merge sequential read requests to reduce writes
(and possible latency overhead).
Benchmark:
A typical litescope fetch script with the following
signals [ddrphy.dfi,cpu.ibus.cyc,cpu.ibus.stb] results in 1 read for the
data_valid register and 24 sequential reads for the scope data per timestamp.
Fetching data for a capture length of 512 over a 921600 baud UART (arty board)
took:
205s (current master branch)
18s (with this merge function)
The proposed merger only merges read requests from one etherbone packet
at a time and doesn't change the read order.
Florent Kermarrec [Fri, 24 Jul 2020 14:34:17 +0000 (16:34 +0200)]
targets: keep in sync with litex-boards.
enjoy-digital [Fri, 24 Jul 2020 12:54:11 +0000 (14:54 +0200)]
Merge pull request #604 from antmicro/jboc/axi-lite
Improve AXI Lite data width converters
Jędrzej Boczar [Fri, 24 Jul 2020 11:46:51 +0000 (13:46 +0200)]
soc/interconnect/axi: add basic AXI Lite up-converter
Sean Cross [Fri, 24 Jul 2020 08:42:23 +0000 (16:42 +0800)]
Merge pull request #603 from enjoy-digital/socdoc-extensions
Socdoc extensions
Sean Cross [Fri, 24 Jul 2020 08:03:24 +0000 (16:03 +0800)]
doc: socdoc: document new `sphinx_extra_config` parameter
This allows for appending additional configuration to `conf.py`.
Signed-off-by: Sean Cross <sean@xobs.io>
enjoy-digital [Fri, 24 Jul 2020 08:02:06 +0000 (10:02 +0200)]
Merge pull request #602 from enjoy-digital/socdoc-extensions
doc: socdoc: document `sphinx_extensions` parameter
Sean Cross [Fri, 24 Jul 2020 08:01:54 +0000 (16:01 +0800)]
litex: add `sphinx_extra_config` to `generate_docs()`
This allows us to append additional strings to the sphinx `conf.py`.
Signed-off-by: Sean Cross <sean@xobs.io>
Sean Cross [Fri, 24 Jul 2020 07:47:59 +0000 (15:47 +0800)]
doc: socdoc: document `sphinx_extensions` parameter
This adds documentation for `sphinx_extensions` which can be used to add
additional features to output.
Signed-off-by: Sean Cross <sean@xobs.io>
Jędrzej Boczar [Thu, 23 Jul 2020 14:54:02 +0000 (16:54 +0200)]
soc/interconnect/axi: separate AXI Lite converter channels
Florent Kermarrec [Thu, 23 Jul 2020 16:02:58 +0000 (18:02 +0200)]
CHANGES: update.
Florent Kermarrec [Thu, 23 Jul 2020 15:40:46 +0000 (17:40 +0200)]
core/cpu: integrate Zynq as a classical CPU (Zynq7000), deprecate SoCZynq.
This is the logical continuation of the recent change to avoid specific SoC classes.
A Zynq FPGA can be used with or without the PS7. When used without the PS7, a softcore CPU
can be used as with others FPGAs. When using the PS7, the softcore is replaced with the PS7
and connected to the SoC through one of the AXI GP interface.
An example is available on litex-boards.
Florent Kermarrec [Wed, 22 Jul 2020 21:15:36 +0000 (23:15 +0200)]
liblitesdcard/sdcard: use max divider of 256 (128 was not enough for the initial 400Khz clock frequency).
Florent Kermarrec [Wed, 22 Jul 2020 21:10:26 +0000 (23:10 +0200)]
CHANGES: update.
enjoy-digital [Wed, 22 Jul 2020 21:03:07 +0000 (23:03 +0200)]
Merge pull request #600 from antmicro/jboc/axi-lite
Implement AXI Lite interconnect
Florent Kermarrec [Wed, 22 Jul 2020 16:43:28 +0000 (18:43 +0200)]
soc: add initial DMA bus support (optionally provided by CPU(s) for cache coherency).
When provided, the modules doing DMA shall connect the DMA to the dma_bus to allow the CPU(s) to manage cache coherency
and avoid the manual cache flushes.
This has been tested with VexRiscv SMP and LiteSDCard doing DMA while loading Linux binaries.
Jędrzej Boczar [Wed, 22 Jul 2020 14:59:17 +0000 (16:59 +0200)]
test/axi: move all AXI Lite tests to separate file
Jędrzej Boczar [Wed, 22 Jul 2020 14:57:51 +0000 (16:57 +0200)]
soc/integration: use AXILiteSRAM when using bus_standard="axi-lite"
Jędrzej Boczar [Wed, 22 Jul 2020 14:31:51 +0000 (16:31 +0200)]
test/axi: add crossbar stress tests
Jędrzej Boczar [Wed, 22 Jul 2020 13:55:49 +0000 (15:55 +0200)]
soc/integration: add bus standard parser arguments
Jędrzej Boczar [Wed, 22 Jul 2020 13:02:42 +0000 (15:02 +0200)]
soc/interconnect/axi: improve Timeout module and test it with shared interconnect
Jędrzej Boczar [Wed, 22 Jul 2020 12:01:02 +0000 (14:01 +0200)]
test/axi: add shared AXI Lite interconnect tests
Jędrzej Boczar [Tue, 21 Jul 2020 12:25:24 +0000 (14:25 +0200)]
soc/interconnect/axi: implement AXI Lite decoder
Jędrzej Boczar [Mon, 20 Jul 2020 16:08:56 +0000 (18:08 +0200)]
soc/interconnect/axi: lock AXILiteArbiter until all requests have been responded to
Jędrzej Boczar [Mon, 20 Jul 2020 14:00:21 +0000 (16:00 +0200)]
test/test_axi: add AXI Lite interconnect arbiter tests
Jędrzej Boczar [Fri, 17 Jul 2020 14:54:57 +0000 (16:54 +0200)]
socinterconnect/axi: interconnect shared sketch
Jędrzej Boczar [Fri, 17 Jul 2020 14:48:46 +0000 (16:48 +0200)]
soc/interconnect/axi: point-to-point interconnect and timeout module with tests
Jędrzej Boczar [Fri, 17 Jul 2020 10:47:29 +0000 (12:47 +0200)]
soc/integration: choose interconnect based on bus standard
Jędrzej Boczar [Fri, 17 Jul 2020 07:59:30 +0000 (09:59 +0200)]
soc/integration: add axi-lite standard to SoCBusHandler
enjoy-digital [Wed, 22 Jul 2020 12:52:26 +0000 (14:52 +0200)]
Merge pull request #599 from antmicro/gen-mmcm-pr
litex-gen: add mmcm core
Piotr Binkowski [Thu, 2 Jul 2020 12:07:12 +0000 (14:07 +0200)]
litex-gen: add mmcm core
Florent Kermarrec [Wed, 22 Jul 2020 06:50:38 +0000 (08:50 +0200)]
boards: keep in sync with litex-boards.
Florent Kermarrec [Tue, 21 Jul 2020 17:54:42 +0000 (19:54 +0200)]
soc/integration/add_sdcard: add direct connection to VexRiscv's dmabus for testing.
Florent Kermarrec [Tue, 21 Jul 2020 17:43:00 +0000 (19:43 +0200)]
cpu/vexriscv/system.h: update flush_cpu_dcache.
Florent Kermarrec [Tue, 21 Jul 2020 17:35:14 +0000 (19:35 +0200)]
interconnect/wishbone: add minimal UpConverter.
enjoy-digital [Mon, 20 Jul 2020 21:11:01 +0000 (23:11 +0200)]
Merge pull request #597 from antmicro/jboc/litex-buildenv-add-adapter-fix
Fix Vivado crash when using 1:1 wishbone.Converter
enjoy-digital [Mon, 20 Jul 2020 20:47:16 +0000 (22:47 +0200)]
Merge pull request #595 from betrusted-io/master
wire up missing register bits.
enjoy-digital [Mon, 20 Jul 2020 17:24:21 +0000 (19:24 +0200)]
Merge pull request #598 from sergachev/master
interconnect/csr_bus: fix paged access warning
Ilia Sergachev [Mon, 20 Jul 2020 16:23:09 +0000 (18:23 +0200)]
interconnect/csr_bus: fix paged access warning
Jędrzej Boczar [Mon, 20 Jul 2020 13:17:56 +0000 (15:17 +0200)]
fix/Vivado: don't instantiate wishbone.Converter in add_adapter when not needed
Fixes an issue with Vivado which crashes with SIGSEGV when building litex-buildenv at:
https://github.com/antmicro/litex-buildenv/commit/
cc003bef3ac1407f9788ec8b7cc52d5981f8364a
and litex bumped to
4a18b828bc81522a654f51a73f20faece4dc313c,
with options:
CPU=mor1kx; CPU_VARIANT=linux; PLATFORM=arty; FIRMWARE=linux; TARGET=net
The only difference in Verilog is that we avoid creating new Interface and doing
`new_interface.connect(interface)`, so this shouldn't make any difference, but
this somehow generates the error in Vivado (tested on v2018.3 and v2019.2).
Florent Kermarrec [Mon, 20 Jul 2020 10:28:29 +0000 (12:28 +0200)]
software/liblitesdcard/spisdcard: remove optimization on receive_block (not working on all configs) and increase max clk_freq to 20MHz.
Florent Kermarrec [Mon, 20 Jul 2020 08:36:35 +0000 (10:36 +0200)]
soc/cores/spi/SPIMaster: rewrite/simplify.
- Make sure MOSI is latched on start, MISO is stable during Xfer (last value).
- Allow clk_divider down to 2.
- improve test errors reporting with hex() on AssertEqual.
bunnie [Sat, 18 Jul 2020 19:00:25 +0000 (03:00 +0800)]
wire up missing register bits.
Not sure how they went missing...but just noticed them.
Florent Kermarrec [Fri, 17 Jul 2020 13:39:39 +0000 (15:39 +0200)]
liblitesdcard/spisdcard: update comments.
Florent Kermarrec [Fri, 17 Jul 2020 13:38:52 +0000 (15:38 +0200)]
soc/cores/spi: make sure done and miso are synchronous.