Florent Kermarrec [Thu, 7 May 2020 06:21:57 +0000 (08:21 +0200)]
bios/sdram: fix merge typo in lfsr (thanks Benjamin Herrenschmidt).
Benjamin Herrenschmidt [Wed, 6 May 2020 19:54:27 +0000 (21:54 +0200)]
bios/sdram: Use an LFSR to speed up pseudo-random number generation
This speeds up the memory test by an order of magnitude, esp. on
cores without a hardware multiplier by getting rid of the
multiplication in the loop.
The LFSR implementation comes from microwatt's simple_random test
project.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
enjoy-digital [Wed, 6 May 2020 16:54:23 +0000 (18:54 +0200)]
Merge pull request #499 from DurandA/patch-2
Add data dirs to manifest
Florent Kermarrec [Wed, 6 May 2020 14:16:41 +0000 (16:16 +0200)]
boards/platforms: update xilinx programmers.
Florent Kermarrec [Wed, 6 May 2020 11:13:01 +0000 (13:13 +0200)]
build/xilinx/vivado: ensure Vivado process our .xdc early.
When generating the LitePCIe PHY wrappers from the .xci, Vivado is locking the
PCIe lanes to default locations that do not necessarily match the ones used in
the design.
Processing our constraints earlier makes Vivado use our constraints and not the
ones from the generated wrapper.
Arnaud Durand [Tue, 5 May 2020 20:15:24 +0000 (22:15 +0200)]
Add data dirs to manifest
Florent Kermarrec [Tue, 5 May 2020 14:58:33 +0000 (16:58 +0200)]
gen/fhdl/verilog: explicitly define input/output/inout wires.
When integrating designs which set `default_nettype none, the top also needs
to explicitly define the type of the signals.
Florent Kermarrec [Tue, 5 May 2020 14:33:14 +0000 (16:33 +0200)]
targets/genesys2: set cmd_latency to 1.
Florent Kermarrec [Tue, 5 May 2020 14:27:21 +0000 (16:27 +0200)]
bios: remove usddrphy debug (we'll use a specific debug firmware to fix the usddrphy corner cases).
Florent Kermarrec [Tue, 5 May 2020 13:55:09 +0000 (15:55 +0200)]
platforms/targets: fix CI.
Florent Kermarrec [Tue, 5 May 2020 13:27:56 +0000 (15:27 +0200)]
boards: keep in sync with LiteX-Boards, integrate improvements.
- create_programmer on all platforms.
- input clocks automatically constrainted.
- build/load parameters.
Florent Kermarrec [Tue, 5 May 2020 11:31:58 +0000 (13:31 +0200)]
build/lattice/programmer: add UJProg (for ULX3S).
Florent Kermarrec [Tue, 5 May 2020 10:17:12 +0000 (12:17 +0200)]
build/lattice/programmer: make OpenOCDJTAGProgrammer closer to OpenOCD programmer.
Florent Kermarrec [Tue, 5 May 2020 10:16:29 +0000 (12:16 +0200)]
build/generic_programmer: catch 404 not found when downloading config/proxy.
Florent Kermarrec [Tue, 5 May 2020 09:23:46 +0000 (11:23 +0200)]
build/platform: allow doing a loose lookup_request (return None instead of ConstraintError) and allow subname in lookup_request.
In the platforms, insead of doing:
self.lookup_request("eth_clocks").rx
we can now do:
self.lookup_request("eth_clocks:rx")
This allows some try/except simplifications on constraints.
Florent Kermarrec [Tue, 5 May 2020 07:56:13 +0000 (09:56 +0200)]
build/openocd: add find_config method to allow using local config file or download it if not available locally.
Florent Kermarrec [Mon, 4 May 2020 15:30:12 +0000 (17:30 +0200)]
cpu/microwatt: fix integration/crt0.S (thanks Benjamin Herrenschmidt).
Tested on Arty A7:
__ _ __ _ __
/ / (_) /____ | |/_/
/ /__/ / __/ -_)> <
/____/_/\__/\__/_/|_|
Build your hardware, easily!
(c) Copyright 2012-2020 Enjoy-Digital
(c) Copyright 2007-2015 M-Labs
BIOS built on May 4 2020 17:15:13
BIOS CRC passed (
0adc4193)
Migen git sha1:
5b5e4fd
LiteX git sha1:
6f24d46d
--=============== SoC ==================--
CPU: Microwatt @ 100MHz
ROM: 32KB
SRAM: 4KB
L2: 8KB
MAIN-RAM: 262144KB
--========== Initialization ============--
Initializing SDRAM...
SDRAM now under software control
Read leveling:
m0, b0: |
00000000000000000000000000000000| delays: -
m0, b1: |
00000000000000000000000000000000| delays: -
m0, b2: |
00000000000000000000000000000000| delays: -
m0, b3: |
00000000000000000000000000000000| delays: -
m0, b4: |
00000000000000000000000000000000| delays: -
m0, b5: |
00000000000000000000000000000000| delays: -
m0, b6: |
00000111111111111100000000000000| delays: 11+-06
m0, b7: |
00000000000000000000000000000000| delays: -
best: m0, b6 delays: 11+-06
m1, b0: |
00000000000000000000000000000000| delays: -
m1, b1: |
00000000000000000000000000000000| delays: -
m1, b2: |
00000000000000000000000000000000| delays: -
m1, b3: |
00000000000000000000000000000000| delays: -
m1, b4: |
00000000000000000000000000000000| delays: -
m1, b5: |
10000000000000000000000000000000| delays: 00+-00
m1, b6: |
00000011111111111100000000000000| delays: 12+-06
m1, b7: |
00000000000000000000000000000000| delays: -
best: m1, b6 delays: 12+-06
SDRAM now under hardware control
Memtest OK
Memspeed Writes: 129Mbps Reads: 215Mbps
--============== Boot ==================--
Booting from serial...
Press Q or ESC to abort boot completely.
sL5DdSMmkekro
Timeout
No boot medium found
--============= Console ================--
litex>
enjoy-digital [Mon, 4 May 2020 13:29:05 +0000 (15:29 +0200)]
Merge pull request #496 from gsomlo/gls-fix-makefiles
software/*/Makefile: no need to copy .S files from CPU directory
Gabriel Somlo [Mon, 4 May 2020 13:13:32 +0000 (09:13 -0400)]
software/*/Makefile: no need to copy .S files from CPU directory
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
enjoy-digital [Mon, 4 May 2020 09:53:10 +0000 (11:53 +0200)]
Merge pull request #494 from shuffle2/patch-2
diamond: quiet warning about missing clkin freq for EHXPLLL
shuffle2 [Mon, 4 May 2020 08:10:09 +0000 (01:10 -0700)]
diamond: quiet warning about missing clkin freq for EHXPLLL
FREQUENCY_PIN_CLKI should be given in mhz
Florent Kermarrec [Mon, 4 May 2020 07:59:01 +0000 (09:59 +0200)]
CHANGES: update.
Florent Kermarrec [Mon, 4 May 2020 06:51:38 +0000 (08:51 +0200)]
cpu/microwatt: add powerpc64le-linux-gnu to gcc_triple.
It seems to be what most distros cross-comiplers are using.
Florent Kermarrec [Mon, 4 May 2020 06:46:25 +0000 (08:46 +0200)]
cpu/microwatt: add pythondata and fix build with it.
Florent Kermarrec [Sun, 3 May 2020 19:29:54 +0000 (21:29 +0200)]
cpus: use a common definition of gcc_triple for the RISC-V CPUs, reorganize CPU by ISA/Data-Width.
Florent Kermarrec [Sun, 3 May 2020 08:54:35 +0000 (10:54 +0200)]
bios/cmd_mdio.c: fix missing <base/mdio.h> import.
Florent Kermarrec [Sat, 2 May 2020 18:07:52 +0000 (20:07 +0200)]
cpu/vexriscv: fix flush_cpu_icache, remove workaround on boot.c.
Florent Kermarrec [Sat, 2 May 2020 10:04:46 +0000 (12:04 +0200)]
cpus: add nop instruction and use it to simplify the BIOS.
Florent Kermarrec [Sat, 2 May 2020 09:52:58 +0000 (11:52 +0200)]
cpus: add human_name attribute and use it to simplify the BIOS.
Florent Kermarrec [Sat, 2 May 2020 09:02:51 +0000 (11:02 +0200)]
software/libbase/system.c: remove unused includes.
enjoy-digital [Sat, 2 May 2020 09:25:34 +0000 (11:25 +0200)]
Merge pull request #492 from scanakci/blackparrot_litex
BP -> Linux simulation, Comply with pythondata, and README update
enjoy-digital [Sat, 2 May 2020 09:16:33 +0000 (11:16 +0200)]
Merge branch 'master' into blackparrot_litex
enjoy-digital [Sat, 2 May 2020 08:45:12 +0000 (10:45 +0200)]
Merge pull request #474 from fjullien/term_hist_auto_compl
Terminal: add history and auto completion
Sadullah Canakci [Sat, 2 May 2020 04:10:06 +0000 (00:10 -0400)]
Update README.md
sadullah [Sat, 2 May 2020 03:44:20 +0000 (23:44 -0400)]
update to comply with python-data layout
sadullah [Fri, 1 May 2020 03:02:32 +0000 (23:02 -0400)]
BP fpga recent version
sadullah [Fri, 1 May 2020 02:39:05 +0000 (22:39 -0400)]
Fix memory transducer bug, --with-sdram for BIOS works, memspeed works
sadullah [Tue, 28 Apr 2020 03:56:51 +0000 (23:56 -0400)]
rebased, minor changes in core.py
sadullah [Tue, 28 Apr 2020 03:03:36 +0000 (23:03 -0400)]
Linux works, LiteDRAM works (need cleaning, temporary push)
Sadullah Canakci [Tue, 10 Mar 2020 20:47:26 +0000 (16:47 -0400)]
Create GETTING STARTED
Rename GETTING STARTED to GETTING STARTED.md
Update GETTING STARTED.md
Update GETTING STARTED.md
Update GETTING STARTED.md
enjoy-digital [Fri, 1 May 2020 19:18:09 +0000 (21:18 +0200)]
Merge pull request #483 from ilya-epifanov/lattice-openocd-jtag-programmer-erase-flag-and-quiet-output
Lattice OpenOCD JTAG programmer: removed erase flag and made progress output less noisy
enjoy-digital [Fri, 1 May 2020 19:17:38 +0000 (21:17 +0200)]
Merge pull request #491 from gsomlo/gls-spisd-clusters
software: spisdcard: cosmetic: avoid filling screen with cluster numbers
Florent Kermarrec [Fri, 1 May 2020 19:13:12 +0000 (21:13 +0200)]
.travis.yml: disable python3.5 test (nMigen requires 3.6+).
As discussed in #479.
Florent Kermarrec [Fri, 1 May 2020 18:13:05 +0000 (20:13 +0200)]
CHANGES: update.
Florent Kermarrec [Fri, 1 May 2020 18:12:02 +0000 (20:12 +0200)]
cpu/minerva: add pythondata and use it to compile the sources.
Florent Kermarrec [Fri, 1 May 2020 17:09:32 +0000 (19:09 +0200)]
litex_setup: add nmigen dependency (used to generate Minerva CPU).
This also requires Yosys, but Yosys is already expected to be installed separately.
Florent Kermarrec [Fri, 1 May 2020 17:07:43 +0000 (19:07 +0200)]
CHANGES: start listing changes for next release.
Gabriel Somlo [Fri, 1 May 2020 13:45:42 +0000 (09:45 -0400)]
software: spisdcard: cosmetic: avoid filling screen with cluster numbers
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Florent Kermarrec [Fri, 1 May 2020 10:35:12 +0000 (12:35 +0200)]
cpu/software: move flush_cpu_icache/flush_cpu_dcache functions to CPUs.
Franck Jullien [Wed, 29 Apr 2020 19:57:13 +0000 (21:57 +0200)]
bios: add auto completion for commands
Franck Jullien [Wed, 29 Apr 2020 19:33:51 +0000 (21:33 +0200)]
bios: switch command handler to a modular format
Command are now described with a structure. A pointer to this
structure is placed in a dedicated linker section.
Franck Jullien [Tue, 28 Apr 2020 21:15:04 +0000 (23:15 +0200)]
bios: move helper functions to their own file
Franck Jullien [Tue, 28 Apr 2020 21:03:18 +0000 (23:03 +0200)]
bios: add terminal history
Terminal history and characters parsing is done in readline.c.
Passing TERM_NO_HIST disable terminal history.
Passing TERM_MINI use a simple terminal implementation in order to save
more space.
Franck Jullien [Mon, 27 Apr 2020 19:52:36 +0000 (21:52 +0200)]
builder: add a parameter to pass options to BIOS Makefile
Florent Kermarrec [Fri, 1 May 2020 06:15:17 +0000 (08:15 +0200)]
cpu/software: move CPU specific software from the BIOS to the CPU directories.
This simplifies the integration of the CPUs' software, avoid complex switches in the code,
and is a first step to make CPUs fully pluggable.
The CPU name is no longer present in the crt0 files (for example crt0-vexriscv-ctr.o
becomes crt0-ctr.o) so users building firmwares externally will have to update their
Makefiles to remove the $(CPU) from crt0-$(CPU)-ctr.o.
Florent Kermarrec [Fri, 1 May 2020 09:01:50 +0000 (11:01 +0200)]
cpu/Minerva: Clone the repository locally for now, we need to create a pythondata repository.
Florent Kermarrec [Thu, 30 Apr 2020 19:45:53 +0000 (21:45 +0200)]
integration/soc: rename usb_cdc to usb_acm.
As discussed on Discord recently.
Florent Kermarrec [Thu, 30 Apr 2020 19:31:58 +0000 (21:31 +0200)]
litex/__init__.py: remove retro-compat > 6 months old.
Florent Kermarrec [Wed, 29 Apr 2020 18:11:47 +0000 (20:11 +0200)]
soc: allow passing custom CPU class to SoC.
Useful to experiment with custom CPU wrappers and a first step to make CPUs plugable.
enjoy-digital [Wed, 29 Apr 2020 06:48:06 +0000 (08:48 +0200)]
Merge pull request #488 from enjoy-digital/python3.5
travis: add back test on python3.5 (python3.6 is recommended but we c…
Florent Kermarrec [Wed, 29 Apr 2020 06:00:55 +0000 (08:00 +0200)]
travis: add back test on python3.5 (python3.6 is recommended but we can try to keep 3.5 compatibility until we have good reason to no longer support it).
Ilya Epifanov [Tue, 28 Apr 2020 20:04:44 +0000 (22:04 +0200)]
Removed erase flag and made progress output less noisy
enjoy-digital [Tue, 28 Apr 2020 17:05:08 +0000 (19:05 +0200)]
Merge pull request #481 from betrusted-io/unfstringify
propose patch to not break litex for python 3.5
bunnie [Tue, 28 Apr 2020 16:34:19 +0000 (00:34 +0800)]
propose patch to not break litex for python 3.5
Florent Kermarrec [Tue, 28 Apr 2020 09:36:44 +0000 (11:36 +0200)]
create first release, add CHANGES and note about Python modules in README.
Florent Kermarrec [Tue, 28 Apr 2020 08:32:13 +0000 (10:32 +0200)]
cpu/serv: switch to pythondata package instead of local git clone.
Florent Kermarrec [Tue, 28 Apr 2020 07:02:59 +0000 (09:02 +0200)]
README: update Python minimal version to 3.6.
Florent Kermarrec [Tue, 28 Apr 2020 06:58:26 +0000 (08:58 +0200)]
litex_setup: disable automatic clone of BlackParrot/Microwatt CPUs, reorder LiteX data.
The support is not fully finished, so let the user install the pythondata for these CPUs manually with pip.
enjoy-digital [Tue, 28 Apr 2020 06:34:19 +0000 (08:34 +0200)]
Merge pull request #399 from mithro/litex-sm2py
Converting LiteX to use Python modules.
Florent Kermarrec [Mon, 27 Apr 2020 21:51:17 +0000 (23:51 +0200)]
soc/cpu: add memory_buses to cpus and use them in add_sdram.
This allows the CPU to have direct buses to the memory and replace the Rocket specific code.
Florent Kermarrec [Mon, 27 Apr 2020 21:08:15 +0000 (23:08 +0200)]
soc/cpu: rename cpu.buses to cpu.periph_buses.
enjoy-digital [Mon, 27 Apr 2020 20:24:10 +0000 (22:24 +0200)]
Merge branch 'master' into litex-sm2py
enjoy-digital [Mon, 27 Apr 2020 19:07:27 +0000 (21:07 +0200)]
Merge pull request #477 from shuffle2/patch-1
diamond: fix include paths
shuffle2 [Mon, 27 Apr 2020 18:14:18 +0000 (11:14 -0700)]
diamond: fix include paths
include paths given via tcl script need semicolon separators and forward slash as directory separator (even on windows)
Florent Kermarrec [Mon, 27 Apr 2020 17:06:16 +0000 (19:06 +0200)]
soc/cpu: simplify integration of CPU without interrupts (and automatically use UART_POLLING mode in this case).
enjoy-digital [Mon, 27 Apr 2020 16:24:43 +0000 (18:24 +0200)]
Merge pull request #473 from fjullien/memusage
bios: print memory usage
Franck Jullien [Sat, 25 Apr 2020 21:22:38 +0000 (23:22 +0200)]
bios: print memory usage
Print memory usage during the compilation of bios.elf.
Florent Kermarrec [Mon, 27 Apr 2020 13:08:48 +0000 (15:08 +0200)]
tools/litex_sim: use similar analyzer configuration than wiki.
enjoy-digital [Mon, 27 Apr 2020 11:59:28 +0000 (13:59 +0200)]
Merge pull request #476 from enjoy-digital/serv
Add SERV support (The SErial RISC-V CPU)
Florent Kermarrec [Mon, 27 Apr 2020 11:46:12 +0000 (13:46 +0200)]
software/irq: cleanup and make explicit that irqs are not supported with Microwatt and SERV, fix compilation warning.
Florent Kermarrec [Mon, 27 Apr 2020 11:26:45 +0000 (13:26 +0200)]
serv: connect reset.
Florent Kermarrec [Mon, 27 Apr 2020 11:17:53 +0000 (13:17 +0200)]
build/icestorm: add verilog_read -defer option to yosys script (changes similar the ones applied to trellis).
enjoy-digital [Mon, 27 Apr 2020 11:13:37 +0000 (13:13 +0200)]
Merge pull request #475 from gregdavill/read_verilog_defer
build/trellis: add verilog_read -defer option to yosys script
Greg Davill [Mon, 27 Apr 2020 10:40:25 +0000 (20:10 +0930)]
build/trellis: add verilog_read -defer option to yosys script
Florent Kermarrec [Mon, 27 Apr 2020 08:27:44 +0000 (10:27 +0200)]
serv: update copyrights (Greg Davill found the typos/issues).
Florent Kermarrec [Sun, 26 Apr 2020 19:05:47 +0000 (21:05 +0200)]
serv/cores: fix verilog top level (use serv_rf_top instead of serv_top), working :).
Florent Kermarrec [Sun, 26 Apr 2020 14:26:15 +0000 (16:26 +0200)]
serv: fix ibus/dbus byte/word addressing inconsistency, add missing ibus.sel (thanks @GregDavill).
Florent Kermarrec [Sat, 25 Apr 2020 10:51:33 +0000 (12:51 +0200)]
bios/sdram: reduce number of scan loops during cdly scan to speed it up.
Florent Kermarrec [Sat, 25 Apr 2020 10:12:27 +0000 (12:12 +0200)]
targets/kcu105: use cmd_latency=1.
Florent Kermarrec [Sat, 25 Apr 2020 10:11:10 +0000 (12:11 +0200)]
bios/sdram: add some margin on cdly ideal_delay, do the read_leveling even if write_leveling is not optimal.
We need to provide enough information to ease support and understand the issue. The write leveling/read leveling
are doing there best to calibrate the DRAM correctly and memtest gives the final result.
Florent Kermarrec [Sat, 25 Apr 2020 09:03:04 +0000 (11:03 +0200)]
targets/kc705: manual DDRPHY_CMD_DELAY no longer needed.
Florent Kermarrec [Sat, 25 Apr 2020 09:00:21 +0000 (11:00 +0200)]
bios/sdram: review/cleanup Command/Clock calibration, set window at the start instead of middle.
Working on KC705 that previously required manual adjustment.
enjoy-digital [Sat, 25 Apr 2020 07:59:08 +0000 (09:59 +0200)]
Merge pull request #472 from antmicro/jboc/sdram-calibration
bios/sdram: add automatic cdly calibration during write leveling
enjoy-digital [Sat, 25 Apr 2020 06:27:00 +0000 (08:27 +0200)]
Merge pull request #470 from antmicro/jboc/sdram-eeprom-timings
litex_sim: add option to create SDRAM module from SPD data
Jędrzej Boczar [Thu, 23 Apr 2020 11:52:28 +0000 (13:52 +0200)]
bios/sdram: add automatic cdly calibration during write leveling
Florent Kermarrec [Thu, 23 Apr 2020 06:04:04 +0000 (08:04 +0200)]
initial SERV integration.
Florent Kermarrec [Wed, 22 Apr 2020 11:15:07 +0000 (13:15 +0200)]
soc/cores/spi: add optional aligned mode.
In aligned mode, MOSI and MISO bits are located on the LSBs and first transmitted MOSI bit is length - 1 bit.
Florent Kermarrec [Wed, 22 Apr 2020 10:20:23 +0000 (12:20 +0200)]
cores/spi: simplify.
Florent Kermarrec [Wed, 22 Apr 2020 09:50:55 +0000 (11:50 +0200)]
build/lattice/common: add specific LatticeiCE40SDROutputImpl/LatticeiCE40SDRTristateImpl (thanks @tnt).
Florent Kermarrec [Wed, 22 Apr 2020 08:41:50 +0000 (10:41 +0200)]
xilinx/common: use a common SDRTristate implementation for Spartan6, 7-Series and Ultrascale.