Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better vexriscv linux support #174

Merged
merged 4 commits into from
Jul 30, 2019

Conversation

mateusz-holenko
Copy link
Contributor

@mateusz-holenko mateusz-holenko commented Jul 23, 2019

This PR updates submodules with the newest version of:

  • VexRiscv supporting building emulator (BIOS) for LiteX target,
  • LiteX
    • with the fixed netboot/flashboot for VexRiscv.linux cpu,
    • with cpu variant information generated to csr.csv,
  • litex-renode with the enhancements in script generating Renode platform utilizing new information in csr.csv and supporting more peripherals

It also adds generation of emulator_ram to arty target when building for VexRiscv.linux cpu. This is a memory where VexRiscv emulator is loaded by the LiteX BIOS.

EDIT: I split this PR into 3 separate ones. This one contains now changes related to building Linux for VexRiscv using ./scripts/build-linux.sh script.

@@ -157,6 +157,10 @@ def __init__(self, platform, spiflash="spiflash_1x", **kwargs):
self.add_memory_region(
"spiflash", self.mem_map["spiflash"] | self.shadow_base, 16*1024*1024)

if self.cpu_type == 'vexriscv' and self.cpu_variant == 'linux':
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand what this is?

Copy link
Contributor Author

@mateusz-holenko mateusz-holenko Jul 24, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It definiately requires a discussion.

I proposed some changes to LiteX BIOS booting sequence to make it easier to boot Linux on VexRiscv.
This was my PR: enjoy-digital/litex#216.
It has been merged to master, but then on top of that enjoy-digital added new commits:

As a result VexRiscv emulator requires now it's own memory region described by EMULATOR_RAM_BASE or must be located at fixed location 0x20000000.

This modification to arty/base.py generates this new memory region.
I believe this should not be arty-specific, but don't know if there is some common code in litex-buildenv where this should go?

EDITED: I fixed the default emulator location from 0x50000000 to 0x20000000

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've just realized that this is not the proper way of adding new memory region in LiteX. I'll change this to sth like:

self.submodules.emulator_ram = wishbone.SRAM(size)                                                                                                                                                                                                                           
self.register_mem('emulator_ram', self.mem_map['emulator_ram'], self.emulator_ram.bus, size)

@mithro
Copy link
Member

mithro commented Jul 23, 2019

Looks like this breaks the Lattice lm32 build in some way?

Traceback (most recent call last):
  File "./make.py", line 164, in <module>
    main()
  File "./make.py", line 148, in main
    vns = builder.build(**dict(args.build_option))
  File "/home/travis/build/timvideos/litex-buildenv/third_party/litex/litex/soc/integration/builder.py", line 169, in build
    self.soc.finalize()
  File "/home/travis/build/timvideos/litex-buildenv/third_party/migen/migen/fhdl/module.py", line 157, in finalize
    self.do_finalize(*args, **kwargs)
  File "/home/travis/build/timvideos/litex-buildenv/third_party/litex/litex/soc/integration/soc_core.py", line 507, in do_finalize
    self._wb_slaves, register=True, timeout_cycles=self.wishbone_timeout_cycles)
  File "/home/travis/build/timvideos/litex-buildenv/third_party/litex/litex/soc/interconnect/wishbone.py", line 165, in __init__
    self.submodules.decoder = Decoder(shared, slaves, register)
  File "/home/travis/build/timvideos/litex-buildenv/third_party/litex/litex/soc/interconnect/wishbone.py", line 116, in __init__
    for i, (fun, bus) in enumerate(slaves)]
  File "/home/travis/build/timvideos/litex-buildenv/third_party/litex/litex/soc/interconnect/wishbone.py", line 116, in <listcomp>
    for i, (fun, bus) in enumerate(slaves)]
  File "/home/travis/build/timvideos/litex-buildenv/third_party/litex/litex/soc/integration/soc_core.py", line 104, in <lambda>
    return lambda a: (a[log2_int(size):-1] == (address >> log2_int(size)))
  File "/home/travis/build/timvideos/litex-buildenv/third_party/migen/migen/fhdl/bitcontainer.py", line 12, in log2_int
    raise ValueError("Not a power of 2")
ValueError: Not a power of 2
real	0m0.624s
user	0m0.465s
sys	0m0.043s
Makefile:301: recipe for target 'firmware-cmd' failed
make: *** [firmware-cmd] Error 1

@mateusz-holenko
Copy link
Contributor Author

I noticed problems with Travis and will be investigate them shortly, but currently I have problems with running this branch on arty board. After the update of LiteX submodule vexriscv.linux cpu variant does not work on HW - it prints just two characters of the LiteX logo on UART and stops.

I narrowed the problem to the specific commit in LiteX: enjoy-digital/litex@9d170b0. If I revert it, the BIOS starts working fine.

@enjoy-digital
Copy link
Member

enjoy-digital commented Jul 24, 2019

@mateusz-holenko: it's still possible to use the old mem-map if needed, you can do it as it's done here:
https://github.com/litex-hub/linux-on-litex-vexriscv/blob/master/soc_linux.py#L25-L33
with something like this:

       soc_cls.mem_map = {
           "rom":          0x00000000,
           "sram":         0x10000000,
           "main_ram":     0x40000000,
           "csr":          0x60000000,
       }
GitHub
Linux on LiteX-VexRiscv. Contribute to litex-hub/linux-on-litex-vexriscv development by creating an account on GitHub.

@mateusz-holenko
Copy link
Contributor Author

mateusz-holenko commented Jul 24, 2019

While doing further tests on HW I noticed some problems in VexRiscv emulator. My fixes are waiting in this PR: SpinalHDL/VexRiscv#80.

We might wait with this PR until the changes are merged upstream, so there is no need to bump the submodules twice.

EDIT: The PR has been accepted to master.

@mateusz-holenko
Copy link
Contributor Author

I created a separate PR that bumps the submodules: #179. Once it's merged to master I'll rebase this one on top of it, add changes in ./scripts/build-linux.sh and let you know it's ready for a review.

@mateusz-holenko mateusz-holenko force-pushed the better_vexriscv_linux_support branch from ef46b71 to 3463f3d Compare July 25, 2019 13:03
@todo
Copy link

todo bot commented Jul 25, 2019

to be removed later)

# download and use pre-built RISC-V compiler (TODO: to be removed later)
TOOLCHAIN_LOCATION=$TOP_DIR/third_party/riscv-toolchain
mkdir -p $TOOLCHAIN_LOCATION
(
cd $TOOLCHAIN_LOCATION
if [ ! -d riscv ]; then


This comment was generated by todo based on a TODO comment in 3463f3d in #174. cc @antmicro.

@mateusz-holenko
Copy link
Contributor Author

mateusz-holenko commented Jul 25, 2019

NOTE: This PR requires changes from #176 and #179.

I rebased this branch to contain changes related directly to building Linux for VexRiscv in the context of the refreshed version of https://github.com/timvideos/litex-buildenv/wiki/HowTo-LCA2018-FPGA-Miniconf tutorial.

The new version of the tutorial is currently hosted here: https://github.com/antmicro/litex-buildenv/wiki/HowTo-LCA2018-FPGA-Miniconf-VexRiscv-Renode. It targets VexRiscv and Renode (instead of mor1kx and qemu) and has updated commands (mostly env variables) and their output. The only TODO left is about changing the URI to litex-buildenv after merging everything upstream (currently it points to antmicro's fork).

@mithro Where do you want me to put this tutorial and what title should it have?

GitHub
An environment for building LiteX based FPGA designs. Makes it easy to get everything you need! - timvideos/litex-buildenv
GitHub
An environment for building LiteX based FPGA designs. Makes it easy to get everything you need! - antmicro/litex-buildenv

@mateusz-holenko
Copy link
Contributor Author

mateusz-holenko commented Jul 25, 2019

This PR together with #176 and #179 contain all the changes necessary for the tutorial.

I created a separate branch on antmicro's fork that combines all those changes into a single branch that can be used right away: https://github.com/antmicro/litex-buildenv/tree/riscv_linux.

GitHub
An environment for building LiteX based FPGA designs. Makes it easy to get everything you need! - antmicro/litex-buildenv

@mithro mithro force-pushed the better_vexriscv_linux_support branch from 3463f3d to 6df3795 Compare July 26, 2019 15:31
@mithro
Copy link
Member

mithro commented Jul 26, 2019

This seems to be failing with;

Checking out files: 100% (63135/63135), done.
HEAD is now at 1c163f4c7b3f Linux 5.0
Downloading LiteX devicetree code.
Cloning into '/home/travis/build/timvideos/litex-buildenv/third_party/litex-devicetree'...
remote: Enumerating objects: 23, done.
remote: Total 23 (delta 0), reused 0 (delta 0), pack-reused 23
Receiving objects: 100% (23/23), 11.01 KiB | 490.00 KiB/s, done.
Resolving deltas: 100% (8/8), done.
grep: build/arty_net_vexriscv.linux//software/include/generated/mem.h: No such file or directory
grep: build/arty_net_vexriscv.linux//software/include/generated/mem.h: No such file or directory
grep: build/arty_net_vexriscv.linux//software/include/generated/mem.h: No such file or directory
./scripts/build-linux.sh: line 164: -1: substring expression < 0

@mithro mithro force-pushed the better_vexriscv_linux_support branch from 6df3795 to a3d125e Compare July 27, 2019 02:32
@mateusz-holenko
Copy link
Contributor Author

I can't reproduce it on my local machine. Thebuild firmware command should execute if no configuration (and thus mem.h) is generated before executing line 164 of build-linux.sh.

I added some debug logs to the script and triggered CI again to see what's going on.

@mateusz-holenko mateusz-holenko force-pushed the better_vexriscv_linux_support branch from 5118f2a to 5276e2d Compare July 30, 2019 06:50
@mateusz-holenko
Copy link
Contributor Author

I now see what was going on. The test script does the initial build of the platform followed by make firmware-clean before running build-linux.sh.

As a result of cleaning the firmware the build/arty_net_vexriscv.linux//software directory (containing generated mem.h file) is removed, but test/csr.csv is not. I was wrongly assuming that they both should be in sync and exist together.

I changed the script to test for the existence of mem.h, as this is the important file from the script's perspective.

@mithro
Copy link
Member

mithro commented Jul 30, 2019

@mateusz-holenko test/csr.csv is generated in the make gateware step.

@mithro
Copy link
Member

mithro commented Jul 30, 2019

LGTM! Merging....

@mithro mithro merged commit f4d2728 into timvideos:master Jul 30, 2019
@mateusz-holenko mateusz-holenko deleted the better_vexriscv_linux_support branch November 18, 2019 08:35
mateusz-holenko added a commit to antmicro/litex-buildenv that referenced this pull request Apr 15, 2020
 * litedram changed from b06e946 to de55a8e
    * de55a8e - test/test_bandwidth: review, cleanup, fix typo. <Florent Kermarrec>
    * 907ef73 - test/test_wishbone: add comments/cleanup. <Florent Kermarrec>
    * 02fd39c - test/test_fifo: add comments. <Florent Kermarrec>
    * 14edb5b - test/test_dma: add comments. <Florent Kermarrec>
    * 97e214b - test/test_bist: add comments, fix a typo. <Florent Kermarrec>
    * c55136c - test/test_bist: enable test_bist_csr_cdc (now passing with refactored CDC). <Florent Kermarrec>
    * 92e34d4 - frontend/bist: simplify and fix CDC using AsyncFIFO. <Florent Kermarrec>
    * 378c441 - frontend/bist: rename run/ready to run_cascade_in/run_cascade_out. <Florent Kermarrec>
    * 829dee6 - frontend/bist: remove run/ready CSR. <Florent Kermarrec>
    * b399ae2 - test/benchmark: default value of run is 1, no need to drive it. <Florent Kermarrec>
    * 7c5e1e7 - frontend/bist: remove wrong comment and don't increment ticks when waiting. <Florent Kermarrec>
    * 4dbb5b1 - test/run_benchmarks: fix syntax. <Florent Kermarrec>
    * 966ebcb - test: cleanup/uniformize things between tests. <Florent Kermarrec>
    * 0efd619 - test/test_adaption: review, add some comments. <Florent Kermarrec>
    * 38b78fc - test/run_benchmarks: review, minor styles changes. <Florent Kermarrec>
    * 962dcd7 - phy/model: review/cleanup DFITimingsChecker. <Florent Kermarrec>
    * 64c2be5 - README: switch to markdown. <Florent Kermarrec>
    *   835825b - Merge pull request timvideos#179 from antmicro/jboc/docs <enjoy-digital>
    |\
    | * dbac83f - core: add missing docstrings <Jędrzej Boczar>
    | * 1f246cb - core/crossbar: remove dead code <Jędrzej Boczar>
    * |   969943e - Merge pull request timvideos#178 from antmicro/jboc/unit-tests-crossbar <enjoy-digital>
    |\ \
    | * | 8a0bcb3 - test: add core.crossbar tests <Jędrzej Boczar>
    | * | e74a2e6 - test: fix missing cases in bankmachine test <Jędrzej Boczar>
    * | | 06965b7 - phy/gensdrphy: simplify using SDRTristate, change SDROutput/SDRInput to single-bit. <Florent Kermarrec>
    * | | 9d20642 - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * | | b9f4d99 - phy/gensdrphy: use SDRInput, SDROutput to allow infered or instantiated IO regs. <Florent Kermarrec>
    |/ /
    * |   36d62d5 - Merge pull request timvideos#177 from antmicro/jboc/unit-tests-bankmachine <enjoy-digital>
    |\ \
    | * | 7b8b68a - test: add core.bankmachine tests <Jędrzej Boczar>
    | |/
    * |   492b9fa - Merge pull request timvideos#175 from antmicro/jboc/unit-tests-bandwidth <enjoy-digital>
    |\ \
    | * | f0496b2 - core/bandwidth: avoid missing a command <Jędrzej Boczar>
    | * | c03bed8 - test: add core.bandwidth.Bandwidth tests <Jędrzej Boczar>
    * | | cc7621d - Merge pull request timvideos#173 from antmicro/jboc/unit-tests <enjoy-digital>
    |\| |
    | * | a62e59b - test: skip _CommandChooser tests from Issue timvideos#174 <Jędrzej Boczar>
    | * | 00fcdf6 - test: split core.multiplexer tests into separate files <Jędrzej Boczar>
    | * | f619bed - test: clean up the code of core.multiplexer <Jędrzej Boczar>
    | * | 1dd4227 - test: add core.multiplexer.Multiplexer tests <Jędrzej Boczar>
    | * | ea93246 - test: add comments to core.multiplexer._Steerer tests <Jędrzej Boczar>
    | * | 26ce993 - test: add core.multiplexer._Steerer tests <Jędrzej Boczar>
    | * | f36b5a4 - test: add core.multiplexer._CommandChooser tests <Jędrzej Boczar>
    | * | a1b1abe - test: use TestCase.subTest for more verbose error messages <Jędrzej Boczar>
    |  /
    * / e7cd6a7 - .travis.yml: udpate to keep it similar with others .travis.yml files. <Florent Kermarrec>
    |/
    * 0c3a610 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>
    * a98f51e - dfii: use reset_less on datapath/configuration CSRStorages. <Florent Kermarrec>
    * 96b273c - common/BitSlip: use reset_less on intermediate signal. <Florent Kermarrec>

 * liteeth changed from fb47853 to 705003e
    * 705003e - README: switch to markdown. <Florent Kermarrec>
    * 92c3048 - examples: use CRG from litex.build. <Florent Kermarrec>
    * 3bd807c - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 6ec7038 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * 47a2e5b - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>
    * ab55304 - mac/sram: use reset_less on datapath/configuration CSRStorages. <Florent Kermarrec>

 * liteiclink changed from 370855d to 6fdd020
    * 6fdd020 - README: switch to markdown. <Florent Kermarrec>
    * c4edb7e - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 1dcea14 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * e6ab98a - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * litepcie changed from 5b7e7cd to 586ef78
    * 586ef78 - README: switch to markdown. <Florent Kermarrec>
    * 3e24df2 - README: add Xilinx Ultrascale support. <Florent Kermarrec>
    * 81b3e13 - examples: add KCU105 example. (PCIe gen2 X4). <Florent Kermarrec>
    * 32d64e4 - phy: add initial Ultrascale PHY (gen2 X4). <Florent Kermarrec>
    * bb7a1e0 - phy/xilinx_us_x4: adaptations on packets to expose/receive standardized TLPs. <Florent Kermarrec>
    * 1f28c9f - phy: add xilinx_us_x4. <Florent Kermarrec>
    * a65aab9 - examples/kc705: cleanup, enable bridge and generate csr.csv. <Florent Kermarrec>
    * 0748af1 - litepcie/common: update import. <Florent Kermarrec>
    * 6bcafc4 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * fde0c62 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>
    * 3dd6185 - soc/cores: use reset_less on datapath/configuration CSRStorages. <Florent Kermarrec>
    * 2a1c2e7 - phy: use reset_less on id/max_request_size/max_payload_size. <Florent Kermarrec>

 * litesata changed from 1e3573b to 2e5c5b1
    * 2e5c5b1 - README: switch to markdown. <Florent Kermarrec>
    * 71e0210 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * e3a980e - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * litescope changed from b3d1e69 to 54488c0
    * 54488c0 - README: switch to markdown. <Florent Kermarrec>
    * 72277ff - examples: use CRG from litex.build. <Florent Kermarrec>
    * a05312d - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 5701c52 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * 47819e8 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * litevideo changed from 49d8126 to 41f3014
    * 41f3014 - README: switch to markdown. <Florent Kermarrec>
    * 6958c21 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * litex changed from 536ae0e6 to 2d018826
    * 2d018826 - setup.py/install_requires: add requests. <Florent Kermarrec>
    * 5e149ced - build/generic_programmer: add automatic search/download of flash_proxy in repositories if not available locally. <Florent Kermarrec>
    *   a298a9e5 - Merge pull request timvideos#467 from antmicro/region_type_fix <enjoy-digital>
    |\
    | * 77a05b78 - soc_core: Fix region type generation <Mateusz Holenko>
    |/
    * d44fe18b - stream/AsyncFIFO: add default depth (useful when used for CDC). <Florent Kermarrec>
    * ded10c89 - build/sim/core/Makefile: add -p to mkdir modules. <Florent Kermarrec>
    *   c323e94c - Merge pull request timvideos#464 from mithro/litex-sim-fixes <enjoy-digital>
    |\
    | * 97d0c525 - Remove trailing whitespace. <Tim 'mithro' Ansell>
    | * 5a0bb6ee - litex_sim: Rework Makefiles to put output files in gateware directory. <Tim 'mithro' Ansell>
    | * a0658421 - litex_sim: Better error messages on failure to load module. <Tim 'mithro' Ansell>
    * | a8bf0216 - litex_setup: raise exception on update if repository has been been initialized. <Florent Kermarrec>
    * | 4fe31f07 - cores: add External Memory Interface (EMIF) Wishbone bridge. <Florent Kermarrec>
    * |   44746870 - Merge pull request timvideos#462 from ironsteel/trellis-12k <enjoy-digital>
    |\ \
    | |/
    |/|
    | * c57e438d - boards/targets/ulx3s.py: Update --device option help message <Rangel Ivanov>
    | * f4b345ec - build/lattice/trellis.py: Add 12k device <Rangel Ivanov>
    |/
    * d0d2f282 - README: LiteDRAM moved to travis-ci.com as others repositories. <Florent Kermarrec>
    * b95e0a19 - altera/common: add DDROutput, DDRInput, SDROutput, SDRInput. <Florent Kermarrec>
    * 40f43efc - targets: use DDROutput on sdram_clock and similar configuration for all SDRAM targets. <Florent Kermarrec>
    * 292d6b75 - build/xilinx/common: add Spartan6 specialized DDRInput, SDROutput, SDRInput and SDRTristate. <Florent Kermarrec>
    * 88dc5158 - build/io: add SDR Tristate (with infered version) and remove multi-bits support on SDRIO. <Florent Kermarrec>
    * fdadbd86 - build/lattice/common: remove multi-bits support on SDRInput/Output. <Florent Kermarrec>
    * 8159b65b - litex/build/io: also import CRG (since using DifferentialInput). <Florent Kermarrec>
    * 79913e86 - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 8e014f76 - litex/build: move io.py from litex/gen and re-import DifferentialInput/Output, DDRInput/Output contributed to Migen. <Florent Kermarrec>
    * 2e270cf2 - platforms/versa_ecp5: remove Lattice Programmer (no longer used since we can now use OpenOCD). <Florent Kermarrec>
    * deebc49a - boards/platforms: cosmetic cleanups. <Florent Kermarrec>
    * 3c0ba8ae - boards/plarforms/ulx3s: cleanup, fix user_leds, add spisdcard, add PULLMODE/DRIVE on SDRAM pins. <Florent Kermarrec>
    * 6c429c99 - build/lattice: add ECP5 implementation for SDRInput/SDROutput. <Florent Kermarrec>
    * 72c8d590 - litex/gen: add io with SDRInput/SDROutput (if not overrided, register is supposed to be infered). <Florent Kermarrec>
    * 8f57321f - tools/litex_sim: remove LiteSPI support for now since breaking Travis-CI of others sub-projects. <Florent Kermarrec>
    * 9afd017a - tools/litex_term: increase workaround delay for usb_fifo. (validated on Minispartan6 and MimasA7). <Florent Kermarrec>
    *   fdfede22 - Merge pull request timvideos#459 from mithro/travis-fix <enjoy-digital>
    |\
    | * cb7e3099 - travis: Run Windows build but allow it to fail. <Tim 'mithro' Ansell>
    | * 43242012 - travis: Use litex_setup.py from the checked out code. <Tim 'mithro' Ansell>
    |/
    *   30f5faf9 - Merge pull request timvideos#458 from david-sawatzke/add_triple <Tim Ansell>
    |\
    | * d69b4443 - Add riscv64-none-elf triple <David Sawatzke>
    |/
    * 14bf8b81 - soc/cores/clock: add Max10PLL. <Florent Kermarrec>
    * 2470ef50 - soc/cores/clock: add Cyclone10LPPLL. <Florent Kermarrec>
    * f8d6d0fd - soc/cores/clock/CycloneVPLL: fix typos. <Florent Kermarrec>
    * 970c8de4 - soc/cores/clock: rename Altera to Intel. <Florent Kermarrec>
    * 383fcd36 - soc/cores/clock: add CycloneVPLL. <Florent Kermarrec>
    * ab4906ea - targets/de0nano: use CycloneIVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 0f17547c - soc/cores/clock: add initial AlteraClocking/CycloneIV support. <Florent Kermarrec>
    * 3575d03f - .travis.yml: disable windows test (failing for now). <Florent Kermarrec>
    * 2ca853fd - README.md: update RISCV toolchain installation. <Florent Kermarrec>
    * d770bfbf - .travis.yml: remove Python3.5 test. <Florent Kermarrec>
    *   bc26af0d - Merge pull request timvideos#451 from mithro/multi-os <enjoy-digital>
    |\
    | * 3305a65b - Enable testing on multiple Python versions. <Tim 'mithro' Ansell>
    | * 6bd5eae4 - Enable CI for Windows and Mac. <Tim 'mithro' Ansell>
    * | 30d25ffe - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>
    * | 3f1159fa - litex_setup: reorganize a bit, add separators/comments. <Florent Kermarrec>
    * | 926f961b - .travis.yml: revert full url for litex_setup.py. <Florent Kermarrec>
    * | 447e8d94 - Merge pull request timvideos#452 from mithro/riscv-download <enjoy-digital>
    |\|
    | * 9e324d9e - Remove symlinking step. <Tim 'mithro' Ansell>
    | * 7f0ecddf - Use shutil.unpack_archive. <Tim 'mithro' Ansell>
    | * a1dd8fc8 - Ignore SSL errors on CI. <Tim 'mithro' Ansell>
    | * 2b2aff12 - Improve the path messages a little. <Tim 'mithro' Ansell>
    | * 141644d1 - Make travis use litex_setup.py for GCC download. <Tim 'mithro' Ansell>
    | * 6adabae7 - Adding SiFive RISC-V toolchain downloading to litex_setup.py <Tim 'mithro' Ansell>
    | * 59b7db63 - Fix alignments. <Tim 'mithro' Ansell>
    |/
    *   e408fb8f - Merge pull request timvideos#450 from mithro/litex-setup-fix <enjoy-digital>
    |\
    | * d781bf20 - Run `litex_setup.py` outside the git clone directory. <Tim 'mithro' Ansell>
    | * dd59dac5 - litex_setup: Use subprocess so failures are noticed. <Tim 'mithro' Ansell>
    |/
    * 0f352cd6 - soc/cores: use reset_less on datapath/configuration CSRStorages. <Florent Kermarrec>
    * a67ab418 - interconnect/csr: add reset_less parameter. <Florent Kermarrec>
    * 05b1b778 - interconnect/csr, wishbone: use reset_less on datapath signals. <Florent Kermarrec>
    * b95965de - cores/code_8b10b: set reset_less to True on datapath signals. <Florent Kermarrec>
    * a35df4f7 - stream: set reset_less to True on datapath signals. <Florent Kermarrec>
    *   cf1c5d99 - Merge pull request timvideos#448 from kessam/patch-1 <enjoy-digital>
    |\
    | * fb532f5e - Fix timing constraints <kessam>
    |/
    * 60431083 - soc/cores/clock/ECP5PLL: add CLKI_DIV support. <Florent Kermarrec>
    *   27f00851 - Merge pull request timvideos#447 from antmicro/spi-xip <enjoy-digital>
    |\
    | * 81be74a7 - targets: netv2: add LiteSPI <Piotr Binkowski>
    | * 946cb164 - platform: netv2: update SPI flash pinout <Piotr Binkowski>
    | * 31fceb0a - litex_sim: add LiteSPI <Piotr Binkowski>
    | * ff04869c - litex_setup: add litespi core <Piotr Binkowski>
    * | 91981b96 - soc/cores/uart: use reset_less on accumulator, reg, bitcount to reduce. <Florent Kermarrec>
    * | 87160059 - soc/cores/spi_flash: add ECP5SPIFlash (non-memory-mapped). <Florent Kermarrec>
    * |   e3445f6c - Merge pull request timvideos#444 from ilya-epifanov/openocd-jtag-programmer <enjoy-digital>
    |\ \
    | * | 351551a0 - Added openocd jtagspi programmer, to be used with ECP5-EVN board <Ilya Epifanov>
    * | |   aeb9411a - Merge pull request timvideos#441 from gsomlo/gls-spisdcard-fixes <enjoy-digital>
    |\ \ \
    | * | | 8473ed56 - software/bios: add spisdcardboot() to boot_sequence() <Gabriel Somlo>
    | * | | e9054ef6 - software/libbase/spisdcard: add delay to goidle loop <Gabriel Somlo>
    | * | | c6b6dee2 - software/bios: factor out busy_wait() function <Gabriel Somlo>
    | * | | 540218b2 - software/libbase/spisdcard: fix width of address parameter <Gabriel Somlo>
    |/ / /
    * | | 2e48ab56 - soc/cores/spi: make dynamic clk divider optional (can be enabled with add_clk_divider method) and only use it in add_spi_sdcard. <Florent Kermarrec>
    * | |   86eec1a4 - Merge pull request timvideos#439 from antmicro/fix-compiler-rt <enjoy-digital>
    |\ \ \
    | |_|/
    |/| |
    | * | 5fa2cc66 - Update removed llvm compiler-rt repo <Kamil Rakoczy>
    |/ /
    * | 4abb3715 - targets/add_constant: avoid specifying value when value is None (=default). <Florent Kermarrec>
    * | 73b43475 - software/libbase/spisdcard: add USE_SPISDCARD_RECLOCKING define to easily disable reclocking. <Florent Kermarrec>
    * | b509df8b - integration/soc/add_uart: add USB CDC support (with ValentyUSB core). <Florent Kermarrec>
    * | 76872a7a - tools/litex_sim: simplify using uart_name=sim. <Florent Kermarrec>
    * | 09a3ce0e - integration/soc/add_uart: add Model/Sim. <Florent Kermarrec>
    * | 3f43c6a2 - integration/soc/add_uart: cleanup. <Florent Kermarrec>
    |/
    * 5bcf730c - build/tools: add replace_in_file function. <Florent Kermarrec>
    * ffe83ef0 - tools/litex_term: use 64 bytes as default payload_lengh (work for all confniguration) and add small delay between frames for FT245 FIFO. <Florent Kermarrec>
    * 8f2e3692 - bios/boot: update comments. <Florent Kermarrec>
    *   1746b57a - Merge pull request timvideos#437 from feliks-montez/bugfix/fix-serialboot-frames <enjoy-digital>
    |\
    | * ebdc38fc - flush rx buffer when bad crc and fix frame payload length <Feliks>
    * | c154d8d2 - test/test_targets: remove versa_ecp3. <Florent Kermarrec>
    * | 8d999081 - boards/targets: update SDRAM to use new GENSDRPHY and new ECP5PLL phase support. <Florent Kermarrec>
    * | 3eb08c7d - boards/platforms: remove versa_ecp3 (ECP3 no longer supported). <Florent Kermarrec>
    * | eb641695 - build/lattice/diamond: remove ECP3 support. (ECP3 is not used and no longer interesting now that ECP5 has an open-source toolchain). <Florent Kermarrec>
    * | bba5f182 - cores/clock/ECP5PLL: add phase support. <Florent Kermarrec>
    * | 0123ccc8 - build/lattice/common: change LatticeECPXDDROutputImpl from ECP3 to ECP5. <Florent Kermarrec>
    * | 5a402264 - Fix off-by-one error on almost full condition for prefetch <bunnie>
    |/
    * d62ef38c - soc/doc/csr: allow CSRField.reset to be a Migen Constant. <Florent Kermarrec>
    * 4adac90d - cpu/vexriscv/mem_map_linux: move main_ram to allow up to 1GB. <Florent Kermarrec>
    * 63ab2ba4 - software/bios/boot/linux: move emulator.bin to main_ram and allow defining custom ram offsets. <Florent Kermarrec>
    * d9984754 - targets: remove Etherbone imports. <Florent Kermarrec>
    * 3b04efbc - targets: switch to add_etherbone method. <Florent Kermarrec>
    * 5ad7a3b7 - integration/soc: add add_etherbone method. <Florent Kermarrec>
    * d6b0819e - integration/soc/add_ethernet: add name parameter (defaults to ethmac). <Florent Kermarrec>
    * 930679ef - targets: always use sys_clk_freq on SDRAM modules. <Florent Kermarrec>
    * ae6ef923 - targets: fix typos in previous changes. <Florent Kermarrec>
    *   c547b2cc - Merge pull request timvideos#436 from rob-ng15/master <enjoy-digital>
    |\
    | * 2bf31a31 - Reclock spi sdcard access after initialisation <rob-ng15>
    * |   011773af - Merge pull request timvideos#435 from enjoy-digital/spi_master_clk_divider <enjoy-digital>
    |\ \
    | |/
    |/|
    | * 61c9e54a - soc/core/spi: add Clk Divider CSR (defaults to sys_clk_freq/spi_clk_freq). <Florent Kermarrec>
    * | f03d862c - targets: switch to add_ethernet method instead of EthernetSoC. <Florent Kermarrec>
    * | 4e9a8ffe - targets: switch to SoCCore/add_sdram instead of SoCSDRAM. <Florent Kermarrec>
    |/
    * dd7718b4 - targets/arty: use new ISERDESE2 MEMORY mode. <Florent Kermarrec>
    *   fca52d11 - Merge branch 'master' of http://github.com/enjoy-digital/litex <Florent Kermarrec>
    |\
    | *   0f356648 - Merge pull request timvideos#434 from rob-ng15/master <enjoy-digital>
    | |\
    | | * f3c23377 - Use <stdint.h> to provide structure sizes <rob-ng15>
    | | * c2ebbcbf - Use <stdint.h> for structure sizes <rob-ng15>
    | |/
    * / ccf73639 - integration/soc: add add_spi_flash method to add SPI Flash support to the SoC. <Florent Kermarrec>
    |/
    * ec3e0686 - targets/nexys4ddr: use LiteXSoC's add_spi_sdcard method. <Florent Kermarrec>
    * d276036f - integration/soc: add add_spi_sdcard method to add SPI mode SDCard support to the SoC. <Florent Kermarrec>
    *   60445709 - Merge pull request timvideos#433 from gsomlo/gls-rocket-spisdcard <enjoy-digital>
    |\
    | * b960d7c5 - targets/nexys4ddr: add '--with-spi-sdcard' build option <Gabriel Somlo>
    | * 7a7b8905 - platforms/nexys4ddr: add spisdcard pins. <Gabriel Somlo>
    | * af4de03f - targets/nexys4ddr: make sdcard reset conditional <Gabriel Somlo>
    | * a33916bc - software/libbase/spisdcard: fix 4-byte FAT fields on 64-bit CPUs <Gabriel Somlo>
    | * 1f90abea - bios: make SPI SDCard boot configs other than linux-on-litex-vexriscv <Gabriel Somlo>
    | * c2938dc9 - bios/boot.c: cosmetic: re-indent spisdcardboot() for consistency <Gabriel Somlo>
    * |   fbadfa17 - Merge pull request timvideos#432 from esden/csr-doc-fix-int <Sean Cross>
    |\ \
    | |/
    |/|
    | * 27988672 - Don't let python convert lane number to float. <Piotr Esden-Tempski>
    |/
    *   dd07a0ad - Merge pull request timvideos#431 from antmicro/hybrid-mac <enjoy-digital>
    |\
    | * 96a265a4 - litex_sim: add support for hybrid mac <Piotr Binkowski>
    * 37f25ed3 - software/libbase/bios: rename spi.c/h to spisdcard.h, also rename functions. <Florent Kermarrec>
    * 93925634 - software/bios/main: revert USDDRPHY_DEBUG (merge issue with SPI SD CARD PR). <Florent Kermarrec>
    *   8fe9e72f - Merge pull request timvideos#429 from rob-ng15/master <enjoy-digital>
    |\
    | * 27720409 - SPI hardware bitbanging from SD CARD <rob-ng15>
    | * d45dda73 - SPI hardware bitbanging from SD CARD <rob-ng15>
    | * 50b6db6a - SPI hardware bitbanging from SD CARD <rob-ng15>
    * |   9e1cd842 - Merge pull request timvideos#430 from gsomlo/gls-sdclk-stub <enjoy-digital>
    |\ \
    | * | b2103f4a - bios/sdcard: provide sdclk_set_clk() stub for clocker-less targets <Gabriel Somlo>
    |/ /
    * / e8651629 - platforms/kcu105: fix pcie tx0 p/n swap. <Florent Kermarrec>
    |/
    * 2c4b8963 - soc/cores/clock: make sure specific clkoutn_divide_range is only used as a fallback solution. <Florent Kermarrec>

 * litex-boards changed from a7fbe0a to cb95962
    * cb95962 - targets/ulx3s and colorlight_5a_75b: cleanup USB ACM addition and only keep USB ACM changes. <Florent Kermarrec>
    *   4b4f2f9 - Merge pull request timvideos#67 from mubes/ecp5_usb <enjoy-digital>
    |\
    | * f79a010 - Addition of flash for colorlight board <Dave Marples>
    | * 389e8aa - Addition of USB ACM for ECP5 <Dave Marples>
    |/
    * a12faae - targets/colorlight_5a_75b: increase sys_ps phase (fixes memtest). <Florent Kermarrec>
    * 52c9648 - arty_s7: fix copyrights, rename to arty_s7, various minor changes to make it similar to others targets. <Florent Kermarrec>
    *   0cee59c - Merge pull request timvideos#65 from Fatsie/artys7 <enjoy-digital>
    |\
    | * bbb1ded - Added Arty S7 board <Staf Verhaegen>
    |/
    * 188d4a4 - targets: use DDROutput on sdram_clock and similar configuration for all SDRAM targets. <Florent Kermarrec>
    * ca197af - targets/simple: use CRG from litex.build. <Florent Kermarrec>
    * b8a648d - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 4d7135f - platforms/versa_ecp5: remove LatticeProgrammer (no longer used since we can now use OpenOCD). <Florent Kermarrec>
    * 2cf3c3e - platforms: cosmetic cleanups. <Florent Kermarrec>
    * df5de88 - platforms/ulx3s: cleanup, fix user_leds, add PULLMODE/DRIVE constraints on SDRAM. <Florent Kermarrec>
    * 467b14a - colorlight_5a_75b: minor comment changes. <Florent Kermarrec>
    *   7157b40 - Merge pull request timvideos#64 from david-sawatzke/improve_colorlight_v6.1 <enjoy-digital>
    |\
    | * 15a27d4 - targets/colorlight_5a_75b: Change baudrate to work on v6.1 <David Sawatzke>
    | * 4fc9df8 - colorlight_5a_75b/v6.1: Add eth_clock & serial pins <David Sawatzke>
    | * 4ddde31 - colorlight_5a_75b/v6.1: Fix bank activate pin <David Sawatzke>
    |/
    * a80737e - test/test_targets: fix typo. <Florent Kermarrec>
    *   9b3f16a - Merge pull request timvideos#62 from ilya-epifanov/ecp5-evn-button1-and-spi-flash-ios <enjoy-digital>
    |\
    | * a43072a - ECP5-EVN board: Added BUTTON_1 and SPI flash pins to IOs <Ilya Epifanov>
    * db67dff - targets/de10lite: use Max10PLL, remove 50MHz limitation. <Florent Kermarrec>
    * 9fe9821 - test/test_targets: add c10lprefkit. <Florent Kermarrec>
    * 8ccab03 - targets/c10lprefkit: use Cyclone10LPPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 4cdc121 - targets/de10nano: use CycloneVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 2d8a4ef - targets/de1_soc: use CycloneVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * cec4cbb - targets/de2_115: use CycloneIVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 1fac607 - targets/de0nano: use CycloneIVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 5f629c2 - targets/vcu118: fix clk500 typo. <Florent Kermarrec>
    * d7b9212 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * 5e1da47 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * migen changed from 0.6.dev-335-g3f9809b to 0.6.dev-337-g19d5eae
    * 19d5eae - zc706: fix user_led I/O standards <Sebastien Bourdeauducq>
    * 21fea57 - zc706: fix indentation/style <Sebastien Bourdeauducq>

Full submodule status
--
 3a6108a75be356a3dc53760d22782f1323248b6b edid-decode (remotes/origin/HEAD)
 3a06aa84b62ad24467fb0d2c6ceddf565e9ea447 flash_proxies (remotes/origin/HEAD)
 de55a8e17046ffd6bf68d1c0d606088abdb37950 litedram (remotes/origin/HEAD)
 705003e5231436de9a276e8f834564c6fbe90a1e liteeth (remotes/origin/HEAD)
 6fdd02058fba29008c90b162e0ef707dce15ebeb liteiclink (remotes/origin/HEAD)
 586ef787946512087a64fb60b79bdafe39aee6d0 litepcie (remotes/origin/HEAD)
 2e5c5b12d52f695f4560ca7dd08b4170d7568715 litesata (remotes/origin/HEAD)
 54488c0f4d6e9e953f1a0de3d578915a5e4ccddf litescope (remotes/origin/HEAD)
 7457a29b1a47fe15e81fa37f3bbdd510788f1d53 liteusb (heads/master)
 41f30143075ece3fff5c33a332ed067d1837cbb3 litevideo (remotes/origin/HEAD)
 2d018826532e486b94615c6b9cee4f16a924dba2 litex (remotes/origin/HEAD)
 cb959628506e61cae2d7be05276bba8f42138cfb litex-boards (remotes/origin/HEAD)
 7da392963878842f93f09a7a218c1052ae5e45d6 litex-renode (realign_memory.0~2)
 19d5eae29b9ff57ea11540252f79ad1a9526ff3a migen (0.6.dev-337-g19d5eae)
 8f5a253b22cd4ebcd56304a3662f4c70e3b34ed5 nmigen (v0.1-69-g8f5a253)
mateusz-holenko added a commit to antmicro/litex-buildenv that referenced this pull request Apr 20, 2020
 * litedram changed from b06e946 to de55a8e
    * de55a8e - test/test_bandwidth: review, cleanup, fix typo. <Florent Kermarrec>
    * 907ef73 - test/test_wishbone: add comments/cleanup. <Florent Kermarrec>
    * 02fd39c - test/test_fifo: add comments. <Florent Kermarrec>
    * 14edb5b - test/test_dma: add comments. <Florent Kermarrec>
    * 97e214b - test/test_bist: add comments, fix a typo. <Florent Kermarrec>
    * c55136c - test/test_bist: enable test_bist_csr_cdc (now passing with refactored CDC). <Florent Kermarrec>
    * 92e34d4 - frontend/bist: simplify and fix CDC using AsyncFIFO. <Florent Kermarrec>
    * 378c441 - frontend/bist: rename run/ready to run_cascade_in/run_cascade_out. <Florent Kermarrec>
    * 829dee6 - frontend/bist: remove run/ready CSR. <Florent Kermarrec>
    * b399ae2 - test/benchmark: default value of run is 1, no need to drive it. <Florent Kermarrec>
    * 7c5e1e7 - frontend/bist: remove wrong comment and don't increment ticks when waiting. <Florent Kermarrec>
    * 4dbb5b1 - test/run_benchmarks: fix syntax. <Florent Kermarrec>
    * 966ebcb - test: cleanup/uniformize things between tests. <Florent Kermarrec>
    * 0efd619 - test/test_adaption: review, add some comments. <Florent Kermarrec>
    * 38b78fc - test/run_benchmarks: review, minor styles changes. <Florent Kermarrec>
    * 962dcd7 - phy/model: review/cleanup DFITimingsChecker. <Florent Kermarrec>
    * 64c2be5 - README: switch to markdown. <Florent Kermarrec>
    *   835825b - Merge pull request timvideos#179 from antmicro/jboc/docs <enjoy-digital>
    |\
    | * dbac83f - core: add missing docstrings <Jędrzej Boczar>
    | * 1f246cb - core/crossbar: remove dead code <Jędrzej Boczar>
    * |   969943e - Merge pull request timvideos#178 from antmicro/jboc/unit-tests-crossbar <enjoy-digital>
    |\ \
    | * | 8a0bcb3 - test: add core.crossbar tests <Jędrzej Boczar>
    | * | e74a2e6 - test: fix missing cases in bankmachine test <Jędrzej Boczar>
    * | | 06965b7 - phy/gensdrphy: simplify using SDRTristate, change SDROutput/SDRInput to single-bit. <Florent Kermarrec>
    * | | 9d20642 - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * | | b9f4d99 - phy/gensdrphy: use SDRInput, SDROutput to allow infered or instantiated IO regs. <Florent Kermarrec>
    |/ /
    * |   36d62d5 - Merge pull request timvideos#177 from antmicro/jboc/unit-tests-bankmachine <enjoy-digital>
    |\ \
    | * | 7b8b68a - test: add core.bankmachine tests <Jędrzej Boczar>
    | |/
    * |   492b9fa - Merge pull request timvideos#175 from antmicro/jboc/unit-tests-bandwidth <enjoy-digital>
    |\ \
    | * | f0496b2 - core/bandwidth: avoid missing a command <Jędrzej Boczar>
    | * | c03bed8 - test: add core.bandwidth.Bandwidth tests <Jędrzej Boczar>
    * | | cc7621d - Merge pull request timvideos#173 from antmicro/jboc/unit-tests <enjoy-digital>
    |\| |
    | * | a62e59b - test: skip _CommandChooser tests from Issue timvideos#174 <Jędrzej Boczar>
    | * | 00fcdf6 - test: split core.multiplexer tests into separate files <Jędrzej Boczar>
    | * | f619bed - test: clean up the code of core.multiplexer <Jędrzej Boczar>
    | * | 1dd4227 - test: add core.multiplexer.Multiplexer tests <Jędrzej Boczar>
    | * | ea93246 - test: add comments to core.multiplexer._Steerer tests <Jędrzej Boczar>
    | * | 26ce993 - test: add core.multiplexer._Steerer tests <Jędrzej Boczar>
    | * | f36b5a4 - test: add core.multiplexer._CommandChooser tests <Jędrzej Boczar>
    | * | a1b1abe - test: use TestCase.subTest for more verbose error messages <Jędrzej Boczar>
    |  /
    * / e7cd6a7 - .travis.yml: udpate to keep it similar with others .travis.yml files. <Florent Kermarrec>
    |/
    * 0c3a610 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>
    * a98f51e - dfii: use reset_less on datapath/configuration CSRStorages. <Florent Kermarrec>
    * 96b273c - common/BitSlip: use reset_less on intermediate signal. <Florent Kermarrec>

 * liteeth changed from fb47853 to 705003e
    * 705003e - README: switch to markdown. <Florent Kermarrec>
    * 92c3048 - examples: use CRG from litex.build. <Florent Kermarrec>
    * 3bd807c - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 6ec7038 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * 47a2e5b - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>
    * ab55304 - mac/sram: use reset_less on datapath/configuration CSRStorages. <Florent Kermarrec>

 * liteiclink changed from 370855d to 6fdd020
    * 6fdd020 - README: switch to markdown. <Florent Kermarrec>
    * c4edb7e - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 1dcea14 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * e6ab98a - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * litepcie changed from 5b7e7cd to 586ef78
    * 586ef78 - README: switch to markdown. <Florent Kermarrec>
    * 3e24df2 - README: add Xilinx Ultrascale support. <Florent Kermarrec>
    * 81b3e13 - examples: add KCU105 example. (PCIe gen2 X4). <Florent Kermarrec>
    * 32d64e4 - phy: add initial Ultrascale PHY (gen2 X4). <Florent Kermarrec>
    * bb7a1e0 - phy/xilinx_us_x4: adaptations on packets to expose/receive standardized TLPs. <Florent Kermarrec>
    * 1f28c9f - phy: add xilinx_us_x4. <Florent Kermarrec>
    * a65aab9 - examples/kc705: cleanup, enable bridge and generate csr.csv. <Florent Kermarrec>
    * 0748af1 - litepcie/common: update import. <Florent Kermarrec>
    * 6bcafc4 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * fde0c62 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>
    * 3dd6185 - soc/cores: use reset_less on datapath/configuration CSRStorages. <Florent Kermarrec>
    * 2a1c2e7 - phy: use reset_less on id/max_request_size/max_payload_size. <Florent Kermarrec>

 * litesata changed from 1e3573b to 2e5c5b1
    * 2e5c5b1 - README: switch to markdown. <Florent Kermarrec>
    * 71e0210 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * e3a980e - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * litescope changed from b3d1e69 to 54488c0
    * 54488c0 - README: switch to markdown. <Florent Kermarrec>
    * 72277ff - examples: use CRG from litex.build. <Florent Kermarrec>
    * a05312d - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 5701c52 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * 47819e8 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * litevideo changed from 49d8126 to 41f3014
    * 41f3014 - README: switch to markdown. <Florent Kermarrec>
    * 6958c21 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * litex changed from 536ae0e6 to 2d018826
    * 2d018826 - setup.py/install_requires: add requests. <Florent Kermarrec>
    * 5e149ced - build/generic_programmer: add automatic search/download of flash_proxy in repositories if not available locally. <Florent Kermarrec>
    *   a298a9e5 - Merge pull request timvideos#467 from antmicro/region_type_fix <enjoy-digital>
    |\
    | * 77a05b78 - soc_core: Fix region type generation <Mateusz Holenko>
    |/
    * d44fe18b - stream/AsyncFIFO: add default depth (useful when used for CDC). <Florent Kermarrec>
    * ded10c89 - build/sim/core/Makefile: add -p to mkdir modules. <Florent Kermarrec>
    *   c323e94c - Merge pull request timvideos#464 from mithro/litex-sim-fixes <enjoy-digital>
    |\
    | * 97d0c525 - Remove trailing whitespace. <Tim 'mithro' Ansell>
    | * 5a0bb6ee - litex_sim: Rework Makefiles to put output files in gateware directory. <Tim 'mithro' Ansell>
    | * a0658421 - litex_sim: Better error messages on failure to load module. <Tim 'mithro' Ansell>
    * | a8bf0216 - litex_setup: raise exception on update if repository has been been initialized. <Florent Kermarrec>
    * | 4fe31f07 - cores: add External Memory Interface (EMIF) Wishbone bridge. <Florent Kermarrec>
    * |   44746870 - Merge pull request timvideos#462 from ironsteel/trellis-12k <enjoy-digital>
    |\ \
    | |/
    |/|
    | * c57e438d - boards/targets/ulx3s.py: Update --device option help message <Rangel Ivanov>
    | * f4b345ec - build/lattice/trellis.py: Add 12k device <Rangel Ivanov>
    |/
    * d0d2f282 - README: LiteDRAM moved to travis-ci.com as others repositories. <Florent Kermarrec>
    * b95e0a19 - altera/common: add DDROutput, DDRInput, SDROutput, SDRInput. <Florent Kermarrec>
    * 40f43efc - targets: use DDROutput on sdram_clock and similar configuration for all SDRAM targets. <Florent Kermarrec>
    * 292d6b75 - build/xilinx/common: add Spartan6 specialized DDRInput, SDROutput, SDRInput and SDRTristate. <Florent Kermarrec>
    * 88dc5158 - build/io: add SDR Tristate (with infered version) and remove multi-bits support on SDRIO. <Florent Kermarrec>
    * fdadbd86 - build/lattice/common: remove multi-bits support on SDRInput/Output. <Florent Kermarrec>
    * 8159b65b - litex/build/io: also import CRG (since using DifferentialInput). <Florent Kermarrec>
    * 79913e86 - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 8e014f76 - litex/build: move io.py from litex/gen and re-import DifferentialInput/Output, DDRInput/Output contributed to Migen. <Florent Kermarrec>
    * 2e270cf2 - platforms/versa_ecp5: remove Lattice Programmer (no longer used since we can now use OpenOCD). <Florent Kermarrec>
    * deebc49a - boards/platforms: cosmetic cleanups. <Florent Kermarrec>
    * 3c0ba8ae - boards/plarforms/ulx3s: cleanup, fix user_leds, add spisdcard, add PULLMODE/DRIVE on SDRAM pins. <Florent Kermarrec>
    * 6c429c99 - build/lattice: add ECP5 implementation for SDRInput/SDROutput. <Florent Kermarrec>
    * 72c8d590 - litex/gen: add io with SDRInput/SDROutput (if not overrided, register is supposed to be infered). <Florent Kermarrec>
    * 8f57321f - tools/litex_sim: remove LiteSPI support for now since breaking Travis-CI of others sub-projects. <Florent Kermarrec>
    * 9afd017a - tools/litex_term: increase workaround delay for usb_fifo. (validated on Minispartan6 and MimasA7). <Florent Kermarrec>
    *   fdfede22 - Merge pull request timvideos#459 from mithro/travis-fix <enjoy-digital>
    |\
    | * cb7e3099 - travis: Run Windows build but allow it to fail. <Tim 'mithro' Ansell>
    | * 43242012 - travis: Use litex_setup.py from the checked out code. <Tim 'mithro' Ansell>
    |/
    *   30f5faf9 - Merge pull request timvideos#458 from david-sawatzke/add_triple <Tim Ansell>
    |\
    | * d69b4443 - Add riscv64-none-elf triple <David Sawatzke>
    |/
    * 14bf8b81 - soc/cores/clock: add Max10PLL. <Florent Kermarrec>
    * 2470ef50 - soc/cores/clock: add Cyclone10LPPLL. <Florent Kermarrec>
    * f8d6d0fd - soc/cores/clock/CycloneVPLL: fix typos. <Florent Kermarrec>
    * 970c8de4 - soc/cores/clock: rename Altera to Intel. <Florent Kermarrec>
    * 383fcd36 - soc/cores/clock: add CycloneVPLL. <Florent Kermarrec>
    * ab4906ea - targets/de0nano: use CycloneIVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 0f17547c - soc/cores/clock: add initial AlteraClocking/CycloneIV support. <Florent Kermarrec>
    * 3575d03f - .travis.yml: disable windows test (failing for now). <Florent Kermarrec>
    * 2ca853fd - README.md: update RISCV toolchain installation. <Florent Kermarrec>
    * d770bfbf - .travis.yml: remove Python3.5 test. <Florent Kermarrec>
    *   bc26af0d - Merge pull request timvideos#451 from mithro/multi-os <enjoy-digital>
    |\
    | * 3305a65b - Enable testing on multiple Python versions. <Tim 'mithro' Ansell>
    | * 6bd5eae4 - Enable CI for Windows and Mac. <Tim 'mithro' Ansell>
    * | 30d25ffe - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>
    * | 3f1159fa - litex_setup: reorganize a bit, add separators/comments. <Florent Kermarrec>
    * | 926f961b - .travis.yml: revert full url for litex_setup.py. <Florent Kermarrec>
    * | 447e8d94 - Merge pull request timvideos#452 from mithro/riscv-download <enjoy-digital>
    |\|
    | * 9e324d9e - Remove symlinking step. <Tim 'mithro' Ansell>
    | * 7f0ecddf - Use shutil.unpack_archive. <Tim 'mithro' Ansell>
    | * a1dd8fc8 - Ignore SSL errors on CI. <Tim 'mithro' Ansell>
    | * 2b2aff12 - Improve the path messages a little. <Tim 'mithro' Ansell>
    | * 141644d1 - Make travis use litex_setup.py for GCC download. <Tim 'mithro' Ansell>
    | * 6adabae7 - Adding SiFive RISC-V toolchain downloading to litex_setup.py <Tim 'mithro' Ansell>
    | * 59b7db63 - Fix alignments. <Tim 'mithro' Ansell>
    |/
    *   e408fb8f - Merge pull request timvideos#450 from mithro/litex-setup-fix <enjoy-digital>
    |\
    | * d781bf20 - Run `litex_setup.py` outside the git clone directory. <Tim 'mithro' Ansell>
    | * dd59dac5 - litex_setup: Use subprocess so failures are noticed. <Tim 'mithro' Ansell>
    |/
    * 0f352cd6 - soc/cores: use reset_less on datapath/configuration CSRStorages. <Florent Kermarrec>
    * a67ab418 - interconnect/csr: add reset_less parameter. <Florent Kermarrec>
    * 05b1b778 - interconnect/csr, wishbone: use reset_less on datapath signals. <Florent Kermarrec>
    * b95965de - cores/code_8b10b: set reset_less to True on datapath signals. <Florent Kermarrec>
    * a35df4f7 - stream: set reset_less to True on datapath signals. <Florent Kermarrec>
    *   cf1c5d99 - Merge pull request timvideos#448 from kessam/patch-1 <enjoy-digital>
    |\
    | * fb532f5e - Fix timing constraints <kessam>
    |/
    * 60431083 - soc/cores/clock/ECP5PLL: add CLKI_DIV support. <Florent Kermarrec>
    *   27f00851 - Merge pull request timvideos#447 from antmicro/spi-xip <enjoy-digital>
    |\
    | * 81be74a7 - targets: netv2: add LiteSPI <Piotr Binkowski>
    | * 946cb164 - platform: netv2: update SPI flash pinout <Piotr Binkowski>
    | * 31fceb0a - litex_sim: add LiteSPI <Piotr Binkowski>
    | * ff04869c - litex_setup: add litespi core <Piotr Binkowski>
    * | 91981b96 - soc/cores/uart: use reset_less on accumulator, reg, bitcount to reduce. <Florent Kermarrec>
    * | 87160059 - soc/cores/spi_flash: add ECP5SPIFlash (non-memory-mapped). <Florent Kermarrec>
    * |   e3445f6c - Merge pull request timvideos#444 from ilya-epifanov/openocd-jtag-programmer <enjoy-digital>
    |\ \
    | * | 351551a0 - Added openocd jtagspi programmer, to be used with ECP5-EVN board <Ilya Epifanov>
    * | |   aeb9411a - Merge pull request timvideos#441 from gsomlo/gls-spisdcard-fixes <enjoy-digital>
    |\ \ \
    | * | | 8473ed56 - software/bios: add spisdcardboot() to boot_sequence() <Gabriel Somlo>
    | * | | e9054ef6 - software/libbase/spisdcard: add delay to goidle loop <Gabriel Somlo>
    | * | | c6b6dee2 - software/bios: factor out busy_wait() function <Gabriel Somlo>
    | * | | 540218b2 - software/libbase/spisdcard: fix width of address parameter <Gabriel Somlo>
    |/ / /
    * | | 2e48ab56 - soc/cores/spi: make dynamic clk divider optional (can be enabled with add_clk_divider method) and only use it in add_spi_sdcard. <Florent Kermarrec>
    * | |   86eec1a4 - Merge pull request timvideos#439 from antmicro/fix-compiler-rt <enjoy-digital>
    |\ \ \
    | |_|/
    |/| |
    | * | 5fa2cc66 - Update removed llvm compiler-rt repo <Kamil Rakoczy>
    |/ /
    * | 4abb3715 - targets/add_constant: avoid specifying value when value is None (=default). <Florent Kermarrec>
    * | 73b43475 - software/libbase/spisdcard: add USE_SPISDCARD_RECLOCKING define to easily disable reclocking. <Florent Kermarrec>
    * | b509df8b - integration/soc/add_uart: add USB CDC support (with ValentyUSB core). <Florent Kermarrec>
    * | 76872a7a - tools/litex_sim: simplify using uart_name=sim. <Florent Kermarrec>
    * | 09a3ce0e - integration/soc/add_uart: add Model/Sim. <Florent Kermarrec>
    * | 3f43c6a2 - integration/soc/add_uart: cleanup. <Florent Kermarrec>
    |/
    * 5bcf730c - build/tools: add replace_in_file function. <Florent Kermarrec>
    * ffe83ef0 - tools/litex_term: use 64 bytes as default payload_lengh (work for all confniguration) and add small delay between frames for FT245 FIFO. <Florent Kermarrec>
    * 8f2e3692 - bios/boot: update comments. <Florent Kermarrec>
    *   1746b57a - Merge pull request timvideos#437 from feliks-montez/bugfix/fix-serialboot-frames <enjoy-digital>
    |\
    | * ebdc38fc - flush rx buffer when bad crc and fix frame payload length <Feliks>
    * | c154d8d2 - test/test_targets: remove versa_ecp3. <Florent Kermarrec>
    * | 8d999081 - boards/targets: update SDRAM to use new GENSDRPHY and new ECP5PLL phase support. <Florent Kermarrec>
    * | 3eb08c7d - boards/platforms: remove versa_ecp3 (ECP3 no longer supported). <Florent Kermarrec>
    * | eb641695 - build/lattice/diamond: remove ECP3 support. (ECP3 is not used and no longer interesting now that ECP5 has an open-source toolchain). <Florent Kermarrec>
    * | bba5f182 - cores/clock/ECP5PLL: add phase support. <Florent Kermarrec>
    * | 0123ccc8 - build/lattice/common: change LatticeECPXDDROutputImpl from ECP3 to ECP5. <Florent Kermarrec>
    * | 5a402264 - Fix off-by-one error on almost full condition for prefetch <bunnie>
    |/
    * d62ef38c - soc/doc/csr: allow CSRField.reset to be a Migen Constant. <Florent Kermarrec>
    * 4adac90d - cpu/vexriscv/mem_map_linux: move main_ram to allow up to 1GB. <Florent Kermarrec>
    * 63ab2ba4 - software/bios/boot/linux: move emulator.bin to main_ram and allow defining custom ram offsets. <Florent Kermarrec>
    * d9984754 - targets: remove Etherbone imports. <Florent Kermarrec>
    * 3b04efbc - targets: switch to add_etherbone method. <Florent Kermarrec>
    * 5ad7a3b7 - integration/soc: add add_etherbone method. <Florent Kermarrec>
    * d6b0819e - integration/soc/add_ethernet: add name parameter (defaults to ethmac). <Florent Kermarrec>
    * 930679ef - targets: always use sys_clk_freq on SDRAM modules. <Florent Kermarrec>
    * ae6ef923 - targets: fix typos in previous changes. <Florent Kermarrec>
    *   c547b2cc - Merge pull request timvideos#436 from rob-ng15/master <enjoy-digital>
    |\
    | * 2bf31a31 - Reclock spi sdcard access after initialisation <rob-ng15>
    * |   011773af - Merge pull request timvideos#435 from enjoy-digital/spi_master_clk_divider <enjoy-digital>
    |\ \
    | |/
    |/|
    | * 61c9e54a - soc/core/spi: add Clk Divider CSR (defaults to sys_clk_freq/spi_clk_freq). <Florent Kermarrec>
    * | f03d862c - targets: switch to add_ethernet method instead of EthernetSoC. <Florent Kermarrec>
    * | 4e9a8ffe - targets: switch to SoCCore/add_sdram instead of SoCSDRAM. <Florent Kermarrec>
    |/
    * dd7718b4 - targets/arty: use new ISERDESE2 MEMORY mode. <Florent Kermarrec>
    *   fca52d11 - Merge branch 'master' of http://github.com/enjoy-digital/litex <Florent Kermarrec>
    |\
    | *   0f356648 - Merge pull request timvideos#434 from rob-ng15/master <enjoy-digital>
    | |\
    | | * f3c23377 - Use <stdint.h> to provide structure sizes <rob-ng15>
    | | * c2ebbcbf - Use <stdint.h> for structure sizes <rob-ng15>
    | |/
    * / ccf73639 - integration/soc: add add_spi_flash method to add SPI Flash support to the SoC. <Florent Kermarrec>
    |/
    * ec3e0686 - targets/nexys4ddr: use LiteXSoC's add_spi_sdcard method. <Florent Kermarrec>
    * d276036f - integration/soc: add add_spi_sdcard method to add SPI mode SDCard support to the SoC. <Florent Kermarrec>
    *   60445709 - Merge pull request timvideos#433 from gsomlo/gls-rocket-spisdcard <enjoy-digital>
    |\
    | * b960d7c5 - targets/nexys4ddr: add '--with-spi-sdcard' build option <Gabriel Somlo>
    | * 7a7b8905 - platforms/nexys4ddr: add spisdcard pins. <Gabriel Somlo>
    | * af4de03f - targets/nexys4ddr: make sdcard reset conditional <Gabriel Somlo>
    | * a33916bc - software/libbase/spisdcard: fix 4-byte FAT fields on 64-bit CPUs <Gabriel Somlo>
    | * 1f90abea - bios: make SPI SDCard boot configs other than linux-on-litex-vexriscv <Gabriel Somlo>
    | * c2938dc9 - bios/boot.c: cosmetic: re-indent spisdcardboot() for consistency <Gabriel Somlo>
    * |   fbadfa17 - Merge pull request timvideos#432 from esden/csr-doc-fix-int <Sean Cross>
    |\ \
    | |/
    |/|
    | * 27988672 - Don't let python convert lane number to float. <Piotr Esden-Tempski>
    |/
    *   dd07a0ad - Merge pull request timvideos#431 from antmicro/hybrid-mac <enjoy-digital>
    |\
    | * 96a265a4 - litex_sim: add support for hybrid mac <Piotr Binkowski>
    * 37f25ed3 - software/libbase/bios: rename spi.c/h to spisdcard.h, also rename functions. <Florent Kermarrec>
    * 93925634 - software/bios/main: revert USDDRPHY_DEBUG (merge issue with SPI SD CARD PR). <Florent Kermarrec>
    *   8fe9e72f - Merge pull request timvideos#429 from rob-ng15/master <enjoy-digital>
    |\
    | * 27720409 - SPI hardware bitbanging from SD CARD <rob-ng15>
    | * d45dda73 - SPI hardware bitbanging from SD CARD <rob-ng15>
    | * 50b6db6a - SPI hardware bitbanging from SD CARD <rob-ng15>
    * |   9e1cd842 - Merge pull request timvideos#430 from gsomlo/gls-sdclk-stub <enjoy-digital>
    |\ \
    | * | b2103f4a - bios/sdcard: provide sdclk_set_clk() stub for clocker-less targets <Gabriel Somlo>
    |/ /
    * / e8651629 - platforms/kcu105: fix pcie tx0 p/n swap. <Florent Kermarrec>
    |/
    * 2c4b8963 - soc/cores/clock: make sure specific clkoutn_divide_range is only used as a fallback solution. <Florent Kermarrec>

 * litex-boards changed from a7fbe0a to cb95962
    * cb95962 - targets/ulx3s and colorlight_5a_75b: cleanup USB ACM addition and only keep USB ACM changes. <Florent Kermarrec>
    *   4b4f2f9 - Merge pull request timvideos#67 from mubes/ecp5_usb <enjoy-digital>
    |\
    | * f79a010 - Addition of flash for colorlight board <Dave Marples>
    | * 389e8aa - Addition of USB ACM for ECP5 <Dave Marples>
    |/
    * a12faae - targets/colorlight_5a_75b: increase sys_ps phase (fixes memtest). <Florent Kermarrec>
    * 52c9648 - arty_s7: fix copyrights, rename to arty_s7, various minor changes to make it similar to others targets. <Florent Kermarrec>
    *   0cee59c - Merge pull request timvideos#65 from Fatsie/artys7 <enjoy-digital>
    |\
    | * bbb1ded - Added Arty S7 board <Staf Verhaegen>
    |/
    * 188d4a4 - targets: use DDROutput on sdram_clock and similar configuration for all SDRAM targets. <Florent Kermarrec>
    * ca197af - targets/simple: use CRG from litex.build. <Florent Kermarrec>
    * b8a648d - litex.build: update from migen.genlib.io litex.build.io. <Florent Kermarrec>
    * 4d7135f - platforms/versa_ecp5: remove LatticeProgrammer (no longer used since we can now use OpenOCD). <Florent Kermarrec>
    * 2cf3c3e - platforms: cosmetic cleanups. <Florent Kermarrec>
    * df5de88 - platforms/ulx3s: cleanup, fix user_leds, add PULLMODE/DRIVE constraints on SDRAM. <Florent Kermarrec>
    * 467b14a - colorlight_5a_75b: minor comment changes. <Florent Kermarrec>
    *   7157b40 - Merge pull request timvideos#64 from david-sawatzke/improve_colorlight_v6.1 <enjoy-digital>
    |\
    | * 15a27d4 - targets/colorlight_5a_75b: Change baudrate to work on v6.1 <David Sawatzke>
    | * 4fc9df8 - colorlight_5a_75b/v6.1: Add eth_clock & serial pins <David Sawatzke>
    | * 4ddde31 - colorlight_5a_75b/v6.1: Fix bank activate pin <David Sawatzke>
    |/
    * a80737e - test/test_targets: fix typo. <Florent Kermarrec>
    *   9b3f16a - Merge pull request timvideos#62 from ilya-epifanov/ecp5-evn-button1-and-spi-flash-ios <enjoy-digital>
    |\
    | * a43072a - ECP5-EVN board: Added BUTTON_1 and SPI flash pins to IOs <Ilya Epifanov>
    * db67dff - targets/de10lite: use Max10PLL, remove 50MHz limitation. <Florent Kermarrec>
    * 9fe9821 - test/test_targets: add c10lprefkit. <Florent Kermarrec>
    * 8ccab03 - targets/c10lprefkit: use Cyclone10LPPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 4cdc121 - targets/de10nano: use CycloneVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 2d8a4ef - targets/de1_soc: use CycloneVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * cec4cbb - targets/de2_115: use CycloneIVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 1fac607 - targets/de0nano: use CycloneIVPLL, remove 50MHz limitation. <Florent Kermarrec>
    * 5f629c2 - targets/vcu118: fix clk500 typo. <Florent Kermarrec>
    * d7b9212 - .travis.yml: fix git clone error. <Florent Kermarrec>
    * 5e1da47 - setup.py: simplify, switch to Python3.6+ (using python_requires), remove version. <Florent Kermarrec>

 * migen changed from 0.6.dev-335-g3f9809b to 0.6.dev-337-g19d5eae
    * 19d5eae - zc706: fix user_led I/O standards <Sebastien Bourdeauducq>
    * 21fea57 - zc706: fix indentation/style <Sebastien Bourdeauducq>

Full submodule status
--
 3a6108a75be356a3dc53760d22782f1323248b6b edid-decode (remotes/origin/HEAD)
 3a06aa84b62ad24467fb0d2c6ceddf565e9ea447 flash_proxies (remotes/origin/HEAD)
 de55a8e17046ffd6bf68d1c0d606088abdb37950 litedram (remotes/origin/HEAD)
 705003e5231436de9a276e8f834564c6fbe90a1e liteeth (remotes/origin/HEAD)
 6fdd02058fba29008c90b162e0ef707dce15ebeb liteiclink (remotes/origin/HEAD)
 586ef787946512087a64fb60b79bdafe39aee6d0 litepcie (remotes/origin/HEAD)
 2e5c5b12d52f695f4560ca7dd08b4170d7568715 litesata (remotes/origin/HEAD)
 54488c0f4d6e9e953f1a0de3d578915a5e4ccddf litescope (remotes/origin/HEAD)
 7457a29b1a47fe15e81fa37f3bbdd510788f1d53 liteusb (heads/master)
 41f30143075ece3fff5c33a332ed067d1837cbb3 litevideo (remotes/origin/HEAD)
 2d018826532e486b94615c6b9cee4f16a924dba2 litex (remotes/origin/HEAD)
 cb959628506e61cae2d7be05276bba8f42138cfb litex-boards (remotes/origin/HEAD)
 7da392963878842f93f09a7a218c1052ae5e45d6 litex-renode (realign_memory.0~2)
 19d5eae29b9ff57ea11540252f79ad1a9526ff3a migen (0.6.dev-337-g19d5eae)
 8f5a253b22cd4ebcd56304a3662f4c70e3b34ed5 nmigen (v0.1-69-g8f5a253)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants