Florent Kermarrec [Sun, 29 Sep 2019 12:22:26 +0000 (14:22 +0200)]
soc/integration: add common.py and move helpers from soc_core to it
Florent Kermarrec [Sat, 28 Sep 2019 17:04:38 +0000 (19:04 +0200)]
soc_core: avoid manual listing of support CPUs, just use CPU.keys()
Florent Kermarrec [Sat, 28 Sep 2019 17:01:41 +0000 (19:01 +0200)]
soc_core: remove add_cpu_or_bridge retro-compatibility (most of the designs have been updated since the change)
Florent Kermarrec [Sat, 28 Sep 2019 16:59:30 +0000 (18:59 +0200)]
integration/soc_core: remove csr_map_update (no longer used)
Florent Kermarrec [Sat, 28 Sep 2019 12:13:39 +0000 (14:13 +0200)]
soc_core/cpu: move memory map override to CPUs, select reset_address after eventual memory map has override been done
Florent Kermarrec [Sat, 28 Sep 2019 10:35:41 +0000 (12:35 +0200)]
soc/cores/cpu: add set_reset_address method and use it instead of passing reset_address as a parameter
Florent Kermarrec [Sat, 28 Sep 2019 10:09:55 +0000 (12:09 +0200)]
soc/cores/cpu: do instance in do_finalize for all cpus (allow updating parameters until the design is generated)
Florent Kermarrec [Fri, 27 Sep 2019 22:55:08 +0000 (00:55 +0200)]
cores/cpu: define CPUS and simplify instance
Florent Kermarrec [Fri, 27 Sep 2019 22:42:00 +0000 (00:42 +0200)]
soc_core/serv: use UART_POLLING (no interrupt support)
Florent Kermarrec [Fri, 27 Sep 2019 22:41:28 +0000 (00:41 +0200)]
add SERV submodule
Florent Kermarrec [Fri, 27 Sep 2019 22:35:26 +0000 (00:35 +0200)]
software/libbase/uart: add polling mode
Florent Kermarrec [Fri, 27 Sep 2019 22:17:00 +0000 (00:17 +0200)]
add SERV CPU initial support (not working)
Florent Kermarrec [Wed, 25 Sep 2019 12:09:44 +0000 (14:09 +0200)]
targets/ulx3s: revert to cl=2
Florent Kermarrec [Wed, 25 Sep 2019 12:07:28 +0000 (14:07 +0200)]
boards/netv2: switch to MVP, add spiflashx4 and hdmi in/out
Florent Kermarrec [Tue, 24 Sep 2019 15:55:29 +0000 (17:55 +0200)]
wishbone2csr: refactor using FSM, reduce latency (make it asynchronous) and set csr.adr only when access is done (allow use of CSR/CSRBase we signal)
Making it asynchronous does not seem to deteriorate timing or resource usage, if it's the case for some designs, we'll add a register parameter.
Florent Kermarrec [Tue, 24 Sep 2019 15:51:06 +0000 (17:51 +0200)]
csr: add we signal to CSR, CSRStatus
Doing actions on register read is generally not a good design practice (it's
better to do separate register write to trigger actions) but in some very
specific cases being able to know that register has been read can solve cases
that are difficult to do with the recommended practives and that can justify
doing an exception.
This commit add a we signal to CSR, CSRStatus and this allow the logic to know
when the CSR, CSRStatus is read.
Florent Kermarrec [Tue, 24 Sep 2019 12:40:48 +0000 (14:40 +0200)]
build/xilinx/programmer: fix vivado_cmd
Florent Kermarrec [Tue, 24 Sep 2019 08:11:31 +0000 (10:11 +0200)]
soc/integration/doc: replace "== None" by "is None"
enjoy-digital [Tue, 24 Sep 2019 08:09:22 +0000 (10:09 +0200)]
Merge pull request #266 from xobs/add-moduledoc-autodoc
Add ModuleDoc and AutoDoc
Florent Kermarrec [Tue, 24 Sep 2019 06:49:00 +0000 (08:49 +0200)]
tools/litex_read_verilog: also delete yosys_v2j.ys
Benjamin Herrenschmidt [Tue, 24 Sep 2019 06:40:22 +0000 (08:40 +0200)]
soc_core/sdram: Don't blow up if _wb_sdram_ifs or _csr_masters are empty
For example a standalone controller with no exposed CSRs (probably not
a very useful configuration but I really don't like python backtraces)
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Sean Cross [Tue, 24 Sep 2019 06:34:41 +0000 (14:34 +0800)]
timer: inherit ModuleDoc
With the new ModuleDoc class, we can inherit `ModuleDoc` and
automatically get module-level documentation.
This patch also corrects a typo in `timer` that causes an error in
sphinx.
Signed-off-by: Sean Cross <sean@xobs.io>
Sean Cross [Tue, 24 Sep 2019 06:30:28 +0000 (14:30 +0800)]
integration: add ModuleDoc and AutoDoc
It is important to be able to document modules other than CSRs.
This patch adds ModuleDoc and AutoDoc, both of which can be used
together to document modules.
ModuleDoc can be used to transform the __doc__ string of a class into a
reference-manual section. Alternately, it can be used to add additional
sections to a module.
AutoDoc is used to gather all submodule ModuleDoc objects in order to
traverse the tree of documentation.
Signed-off-by: Sean Cross <sean@xobs.io>
enjoy-digital [Mon, 23 Sep 2019 21:19:45 +0000 (23:19 +0200)]
Merge pull request #264 from antmicro/mor1kx_linux
Enable to run Linux on mork1x
Florent Kermarrec [Mon, 23 Sep 2019 13:57:14 +0000 (15:57 +0200)]
soc_core: set csr to 0x00000000 when there is no wishbone
Florent Kermarrec [Mon, 23 Sep 2019 13:53:07 +0000 (15:53 +0200)]
soc_sdram: Don't add the L2 Cache when there's no wishbone bus
Filip Kokosinski [Thu, 19 Sep 2019 10:23:05 +0000 (12:23 +0200)]
soc_core: adapt memory map for mainline Linux with mor1kx
Mainline Linux expects it to be loaded at the physical address of 0x0.
Change the MAIN_RAM base address to 0x0 and update exception vector
during the booting process.
Filip Kokosinski [Mon, 23 Sep 2019 11:45:46 +0000 (13:45 +0200)]
boards/targets: increase integrated ROM size if EthernetSoC is used
Currently section '.rodata' of the LiteX BIOS doesn't fit in the 'rom'
region if mor1kx is used with EthernetSoC. Increase the integrated ROM
size from 0x8000 to 0x10000 in EthernetSoC.
Florent Kermarrec [Mon, 23 Sep 2019 10:53:37 +0000 (12:53 +0200)]
soc_core: revert wishbone2csr to __init__ but add with_wishbone parameter
Florent Kermarrec [Mon, 23 Sep 2019 08:15:27 +0000 (10:15 +0200)]
soc_sdram: change l2_size checks order
Florent Kermarrec [Mon, 23 Sep 2019 07:58:47 +0000 (09:58 +0200)]
soc_core: move CSR bridge to finalize (only generate it if there is a wishbone master), revert default parameter when cpu_type is None (we have systems with cpu_type=None but that are using these peripherals)
Florent Kermarrec [Mon, 23 Sep 2019 07:26:47 +0000 (09:26 +0200)]
integration/builder: avoid specific _generate_standalone_includes
Benjamin Herrenschmidt [Mon, 23 Sep 2019 06:39:25 +0000 (08:39 +0200)]
This will allow it to be built for microwatt out of tree
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Benjamin Herrenschmidt [Mon, 23 Sep 2019 06:33:35 +0000 (08:33 +0200)]
soc_core: When cpu_type is "None", let's not generate useless UART, timer, ROMs, wishbone to CSR bridge etc...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Benjamin Herrenschmidt [Mon, 23 Sep 2019 06:30:01 +0000 (08:30 +0200)]
integration/builder: When the CPU is "None", we used to not generate any code.
With this change, we will now generate csr.h and sdram_phy.h, which
will be needed by the initialization code running on the host CPU.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
enjoy-digital [Fri, 20 Sep 2019 06:28:19 +0000 (08:28 +0200)]
Merge pull request #263 from xobs/spi-flash-csrfield
spi_flash: document register fields
Sean Cross [Fri, 20 Sep 2019 04:11:59 +0000 (12:11 +0800)]
spi_flash: document register fields
Document the various fields present in the SPI flash bitbang interface.
This adds documentation for the Single and DualQuad modules.
Signed-off-by: Sean Cross <sean@xobs.io>
enjoy-digital [Fri, 20 Sep 2019 04:25:57 +0000 (06:25 +0200)]
Merge pull request #262 from jersey99/master
vivado just needs to be in the path for the programmer as well
Vamsi K Vytla [Fri, 20 Sep 2019 03:35:55 +0000 (20:35 -0700)]
vivado just needs to be in the path for the programmer as well
enjoy-digital [Thu, 19 Sep 2019 09:40:55 +0000 (11:40 +0200)]
Merge pull request #261 from xobs/event-documentation
csr_eventmanager: add `name` and `description` args
Sean Cross [Thu, 19 Sep 2019 09:23:03 +0000 (17:23 +0800)]
csr_eventmanager: add `name` and `description` args
Add `name` and `description` as optional arguments to the various
EventSource types. These default to `None`, so this should be a
backwards-compatible change.
Use the same trick as CSRs, where we default the `name` to be the
instantiated object name as read from the Migen `get_obj_var_name()`
call.
Signed-off-by: Sean Cross <sean@xobs.io>
Florent Kermarrec [Thu, 19 Sep 2019 07:18:16 +0000 (09:18 +0200)]
cores/timer: add general documentation on Timer implementation and behavior.
Florent Kermarrec [Thu, 19 Sep 2019 03:16:01 +0000 (05:16 +0200)]
soc_sdram: improve readibility and convert l2_size to minimal allowed if provided l2_size is lower
Florent Kermarrec [Wed, 18 Sep 2019 08:47:54 +0000 (10:47 +0200)]
csr: add description to CSRStorage/CSRStatus attributes (thanks xobs)
Florent Kermarrec [Wed, 18 Sep 2019 08:45:38 +0000 (10:45 +0200)]
soc/cores/timer: fix typo (thanks xobs)
Florent Kermarrec [Wed, 18 Sep 2019 08:14:47 +0000 (10:14 +0200)]
soc/cores/timer/doc: rewrite a little bit, avoid some redundancy, change ident.
enjoy-digital [Wed, 18 Sep 2019 07:36:53 +0000 (09:36 +0200)]
Merge pull request #259 from xobs/document-timer
timer: add documentation
Sean Cross [Wed, 18 Sep 2019 07:06:20 +0000 (15:06 +0800)]
timer: add documentation
Now that CSRs have documentation support, add documentation to the basic
`Timer` module.
Signed-off-by: Sean Cross <sean@xobs.io>
Florent Kermarrec [Mon, 16 Sep 2019 15:02:55 +0000 (17:02 +0200)]
soc/cores/spi: use new CSRField (no functional change)
Florent Kermarrec [Mon, 16 Sep 2019 14:56:00 +0000 (16:56 +0200)]
soc/cores/bitbang: use new CSRField (no functional change)
enjoy-digital [Mon, 16 Sep 2019 07:16:20 +0000 (09:16 +0200)]
Merge pull request #257 from enjoy-digital/csr_fields
soc/interconnect/csr: add CSRField/documentation support, do some simplification on CSRStorage
Florent Kermarrec [Mon, 16 Sep 2019 06:48:05 +0000 (08:48 +0200)]
csr: update copyrights
Florent Kermarrec [Mon, 16 Sep 2019 06:45:29 +0000 (08:45 +0200)]
csr: more documentation
Florent Kermarrec [Mon, 16 Sep 2019 06:38:26 +0000 (08:38 +0200)]
csr/CSRStorage: remove storage_full (was only needed by alignment_bits)
Florent Kermarrec [Mon, 16 Sep 2019 06:36:25 +0000 (08:36 +0200)]
csr: use IntEnum for CSRAccess
Florent Kermarrec [Sun, 15 Sep 2019 17:47:48 +0000 (19:47 +0200)]
csr/CSRStorage: remove alignment_bits: complexify too much code for the few use-cases it's really useful
Florent Kermarrec [Sun, 15 Sep 2019 17:08:30 +0000 (19:08 +0200)]
csr/fields: document, add separators, 100 characters per line
Florent Kermarrec [Sat, 14 Sep 2019 19:57:23 +0000 (21:57 +0200)]
csr/fields: add access parameter
Florent Kermarrec [Sat, 14 Sep 2019 19:49:34 +0000 (21:49 +0200)]
csr/fields: add pulse mode support
Florent Kermarrec [Fri, 13 Sep 2019 18:01:31 +0000 (20:01 +0200)]
soc/interconnect/csr: add initial field support
Florent Kermarrec [Thu, 12 Sep 2019 15:07:56 +0000 (17:07 +0200)]
build/openocd: add set_qe parameter to flash
QE bit is not set on blank SPI flashes and need to be set when SPI X4 is enabled in the bistream to load the FPGA.
Florent Kermarrec [Thu, 12 Sep 2019 08:21:37 +0000 (10:21 +0200)]
tools/litex_term/upload: bufferize only chunks of the file instead of the entire file to speedup upload when used on embedded devices (RPI for example)
Florent Kermarrec [Wed, 11 Sep 2019 16:30:28 +0000 (18:30 +0200)]
soc/integration/cpu_interface: don't raise OSError if we are not going to compile software and compilation toolchain is not found
Florent Kermarrec [Tue, 10 Sep 2019 10:41:05 +0000 (12:41 +0200)]
soc/integration/builder: call do_exit with vns when build is done.
Florent Kermarrec [Mon, 9 Sep 2019 13:12:24 +0000 (15:12 +0200)]
Merge branch 'master' of github.com/enjoy-digital/litex
Florent Kermarrec [Mon, 9 Sep 2019 13:12:08 +0000 (15:12 +0200)]
soc/itnegration: update litedram
enjoy-digital [Mon, 9 Sep 2019 11:38:29 +0000 (13:38 +0200)]
Merge pull request #255 from sergachev/fix-crc32
fix crc32
Ilia Sergachev [Mon, 9 Sep 2019 11:19:43 +0000 (13:19 +0200)]
fix crc32
Florent Kermarrec [Mon, 9 Sep 2019 09:02:14 +0000 (11:02 +0200)]
interconnect/wishbone: add FlipFlop to allow UpConverter to be used
Note: a test should be added for Converter and DownConverter/UpConverter should be cleaned up
Florent Kermarrec [Fri, 6 Sep 2019 09:57:18 +0000 (11:57 +0200)]
build/openocd: add stream method for JTAG UART
Florent Kermarrec [Fri, 6 Sep 2019 09:56:42 +0000 (11:56 +0200)]
soc_core: add JTAG UART support (uart_name="jtag_uart)
Florent Kermarrec [Fri, 6 Sep 2019 09:55:41 +0000 (11:55 +0200)]
soc/cores/jtag: add Xilinx JTAG TAPs support and simple JTAG PHY (can be used for JTAG UART)
Florent Kermarrec [Thu, 5 Sep 2019 13:59:35 +0000 (15:59 +0200)]
soc_zynq: fix indent
Florent Kermarrec [Thu, 5 Sep 2019 13:55:18 +0000 (15:55 +0200)]
soc_zynq: fix typo
Florent Kermarrec [Thu, 5 Sep 2019 09:54:14 +0000 (11:54 +0200)]
soc/interconnect/stream: add Monitor module
Generic module to monitor endpoints activity: tokens/overflows/underflows that
can be plugged on a endpoint. Can be useful for various purpose:
- endpoint bandwidth calculation.
- underflows/overflows detection.
- etc...
enjoy-digital [Tue, 3 Sep 2019 05:23:32 +0000 (07:23 +0200)]
Merge pull request #254 from mithro/crc-smaller
Add @xobs' smaller CRC version
Tim 'mithro' Ansell [Mon, 2 Sep 2019 21:48:30 +0000 (14:48 -0700)]
Use `SMALL_CRC` to enable smaller CRC versions.
@xobs created a smaller code size version of the CRC functions. Enable
these if someone uses the `SMALL_CRC` define.
Tim 'mithro' Ansell [Mon, 2 Sep 2019 21:47:20 +0000 (14:47 -0700)]
Remove extra whitespace.
Sean Cross [Sun, 20 Jan 2019 23:25:01 +0000 (12:25 +1300)]
libbase: crc16: commit smaller version of crc16
Signed-off-by: Sean Cross <sean@xobs.io>
Sean Cross [Sun, 20 Jan 2019 23:24:40 +0000 (12:24 +1300)]
libbase: crc32: add smaller version
Signed-off-by: Sean Cross <sean@xobs.io>
Tim Ansell [Mon, 2 Sep 2019 21:42:22 +0000 (14:42 -0700)]
Merge pull request #252 from mithro/only-change-on-contents
Only write file if contents will change.
Tim 'mithro' Ansell [Thu, 29 Nov 2018 04:18:31 +0000 (20:18 -0800)]
Only write file if contents will change.
Florent Kermarrec [Sat, 31 Aug 2019 16:32:35 +0000 (18:32 +0200)]
soc/cores: simplify JTAGAtlantic (only keep alt_jtag_atlantic instance), move to jtag and allow selecting it as uart with uart_name"jtag_atlantic"
enjoy-digital [Sat, 31 Aug 2019 16:33:27 +0000 (18:33 +0200)]
Merge pull request #251 from micro-FPGA/master
atlantic JTAG UART working module
Antti Lukats [Fri, 30 Aug 2019 07:35:10 +0000 (09:35 +0200)]
Create atlantic.py
atlantic JTAG uart for Intel FPGA's, working and tested on Intel C10LP EK
Florent Kermarrec [Thu, 29 Aug 2019 07:46:20 +0000 (09:46 +0200)]
core/spi: add minimal SPISlave
Florent Kermarrec [Wed, 28 Aug 2019 03:15:45 +0000 (05:15 +0200)]
gen/fhdl/verilog: allow single element verilog inline attribute
Florent Kermarrec [Tue, 27 Aug 2019 12:06:13 +0000 (14:06 +0200)]
targets/nexys_video: generate clk100
Florent Kermarrec [Tue, 27 Aug 2019 07:45:44 +0000 (09:45 +0200)]
software/bios: switch to standard CRLF
Avoid setting terminal to "implicit CR in every LF" mode.
Florent Kermarrec [Mon, 26 Aug 2019 16:17:43 +0000 (18:17 +0200)]
tools/litex_term: add automatic check to see if we need to insert LF or not
Florent Kermarrec [Mon, 26 Aug 2019 15:15:01 +0000 (17:15 +0200)]
bios/tools: allow disabling CRC check on serialboot (to speedup debug/loading large images when only serial is available)
Florent Kermarrec [Mon, 26 Aug 2019 10:10:11 +0000 (12:10 +0200)]
tools/litex_term: add sdl_payload_length
Florent Kermarrec [Mon, 26 Aug 2019 07:27:19 +0000 (09:27 +0200)]
litex_setup: add litex-boards
enjoy-digital [Fri, 23 Aug 2019 19:36:51 +0000 (21:36 +0200)]
Merge pull request #246 from gsomlo/gls-native-rv64
software: use native toolchain for same host, target architectures
Gabriel L. Somlo [Fri, 23 Aug 2019 12:56:02 +0000 (08:56 -0400)]
software: use native toolchain for same host, target architectures
LiteX rightfully assumes that most often the target software must
be cross-compiled from an x86 host platform. However, LiteX can be
also built on a 'linux-riscv64' platform (e.g. Fedora's riscv64
port), where the software for riscv64 targets should be compiled
using the native toolchain.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
enjoy-digital [Sat, 17 Aug 2019 09:54:39 +0000 (11:54 +0200)]
Merge pull request #244 from atommann/master
changing http to https
atommann [Sat, 17 Aug 2019 08:02:10 +0000 (16:02 +0800)]
changing http to https
Antti Lukats [Fri, 16 Aug 2019 12:36:59 +0000 (14:36 +0200)]
Merge pull request #2 from enjoy-digital/master
update with hyperram and other changes
Florent Kermarrec [Fri, 16 Aug 2019 11:56:56 +0000 (13:56 +0200)]
soc/core: simplify/cleanup HyperRAM core
- rename core to hyperbus.
- change layout (cs_n with variable length instead of cs0_n, cs1_n).
- use DifferentialOutput when differential clock is used.
- add test (python3 -m unittest test.test_hyperbus).
Usage example:
from litex.soc.cores.hyperbus import HyperRAM
self.submodules.hyperram = HyperRAM(platform.request("hyperram"))
self.add_wb_slave(mem_decoder(self.mem_map["hyperram"]), self.hyperram.bus)
self.add_memory_region("hyperram", self.mem_map["hyperram"], 8*1024*1024)
Antti Lukats [Fri, 16 Aug 2019 08:31:53 +0000 (10:31 +0200)]
libero enable enhanced constraints
Libero 12.0 does not support any more classic constraint flow