litex.git
4 years agocpus: remove common cpu variants/extensions definition and simplify variant check.
Florent Kermarrec [Tue, 26 May 2020 07:36:44 +0000 (09:36 +0200)]
cpus: remove common cpu variants/extensions definition and simplify variant check.

Having common cpu variants/extensions has no real additional value since we are supporting
very various CPUs where minimal/standard/full have different meanings. Checking against
common variants/extensions has also cause more issues recently when adding new CPUs than
the additional value it was supported to provide.

So let's just simplify things: a CPU provide the supported variants and we just check
against that.

4 years agocpu/microwatt: add standard+ghdl variant that uses GHDL Yosys plugin.
Florent Kermarrec [Tue, 26 May 2020 06:51:33 +0000 (08:51 +0200)]
cpu/microwatt: add standard+ghdl variant that uses GHDL Yosys plugin.

4 years agotools/litex_client/RemoteClient: add base_address parameter.
Florent Kermarrec [Mon, 25 May 2020 10:20:01 +0000 (12:20 +0200)]
tools/litex_client/RemoteClient: add base_address parameter.

Useful when address translation is done in the SoC.

4 years agocores/uart/RS232PHYTX: fix startbit duration by pre-loading phase_accumulator_tx...
Florent Kermarrec [Mon, 25 May 2020 08:46:53 +0000 (10:46 +0200)]
cores/uart/RS232PHYTX: fix startbit duration by pre-loading phase_accumulator_tx to tuning_word.

4 years agoMerge pull request #539 from dayjaby/pr-fix_uart_startbit
enjoy-digital [Mon, 25 May 2020 08:33:58 +0000 (10:33 +0200)]
Merge pull request #539 from dayjaby/pr-fix_uart_startbit

Fix UART startbit: 1 cycle later

4 years agotools: add litex_jtag_uart to create a virtual uart for the jtag uart.
Florent Kermarrec [Mon, 25 May 2020 08:21:06 +0000 (10:21 +0200)]
tools: add litex_jtag_uart to create a virtual uart for the jtag uart.

4 years agotools: rename litex_crossover poc to litex_crossover_uart, remove from setup for...
Florent Kermarrec [Mon, 25 May 2020 08:19:16 +0000 (10:19 +0200)]
tools: rename litex_crossover poc to litex_crossover_uart, remove from setup for now.

4 years agofix uart startbit: 1 cycle later
David Jablonski [Sun, 24 May 2020 14:12:07 +0000 (16:12 +0200)]
fix uart startbit: 1 cycle later

4 years agotools: add litex_crossover to be able to use lxterm (and serialboot) over a crossover...
Florent Kermarrec [Sun, 24 May 2020 08:55:25 +0000 (10:55 +0200)]
tools: add litex_crossover to be able to use lxterm (and serialboot) over a crossover UART (bridged over UART/Ethernet/PCIe/USB, etc...).

This is still a proof of concept but can be used/tested with:
lxsim --with-etherbone --uart-name=crossover --csr-csv=csr.csv
lxserver --udp --udp-ip=192.168.1.51
lxcrossover (will indicate the virtual_tty)
lxterm virtual_tty

4 years agolitex_sim: override uart_name to sim only for serial.
Florent Kermarrec [Sun, 24 May 2020 07:52:56 +0000 (09:52 +0200)]
litex_sim: override uart_name to sim only for serial.

Using uart_name=crossover is useful to simulate crossover mode.

4 years agoCHANGES: update.
Florent Kermarrec [Sat, 23 May 2020 16:56:51 +0000 (18:56 +0200)]
CHANGES: update.

4 years agointegration/soc: remove TODO in header.
Florent Kermarrec [Sat, 23 May 2020 16:54:04 +0000 (18:54 +0200)]
integration/soc: remove TODO in header.

4 years agocpu/cv32e40p: fix copyright year.
Florent Kermarrec [Sat, 23 May 2020 16:53:03 +0000 (18:53 +0200)]
cpu/cv32e40p: fix copyright year.

4 years agocpu/cv32e40p: add copyright and improve indentation.
Florent Kermarrec [Fri, 22 May 2020 13:55:35 +0000 (15:55 +0200)]
cpu/cv32e40p: add copyright and improve indentation.

4 years agolitex_setup/pythondata-cpu-cv32e40p: clone in recursive mode.
Florent Kermarrec [Fri, 22 May 2020 13:43:00 +0000 (15:43 +0200)]
litex_setup/pythondata-cpu-cv32e40p: clone in recursive mode.

4 years agoMerge pull request #535 from antmicro/arty-cv32e40p
enjoy-digital [Fri, 22 May 2020 11:44:10 +0000 (13:44 +0200)]
Merge pull request #535 from antmicro/arty-cv32e40p

Add support for the CV32E40P RISC-V CPU

4 years agoMerge pull request #538 from antmicro/fix_libbase
enjoy-digital [Fri, 22 May 2020 10:28:00 +0000 (12:28 +0200)]
Merge pull request #538 from antmicro/fix_libbase

libbase: Include missing uart header

4 years agolibbase: Include missing uart header
Mateusz Hołenko [Fri, 22 May 2020 09:43:18 +0000 (11:43 +0200)]
libbase: Include missing uart header

This fixes compilation on mor1kx.

4 years agotest/test_targets: update build_test.
Florent Kermarrec [Fri, 22 May 2020 06:42:02 +0000 (08:42 +0200)]
test/test_targets: update build_test.

4 years agolitex_sim: load SPD data from files in hexdump format as printed in BIOS
Jędrzej Boczar [Thu, 21 May 2020 14:19:28 +0000 (16:19 +0200)]
litex_sim: load SPD data from files in hexdump format as printed in BIOS

4 years agobios/sdram: add BIOS command for reading SPD
Jędrzej Boczar [Thu, 21 May 2020 12:09:46 +0000 (14:09 +0200)]
bios/sdram: add BIOS command for reading SPD

4 years agobios/sdram: add firmware for reading SPD EEPROM
Jędrzej Boczar [Thu, 21 May 2020 12:07:42 +0000 (14:07 +0200)]
bios/sdram: add firmware for reading SPD EEPROM

4 years agoplatforms/targets: keep in sync with litex-boards.
Florent Kermarrec [Thu, 21 May 2020 07:14:33 +0000 (09:14 +0200)]
platforms/targets: keep in sync with litex-boards.

- LedChaser.
- use of soc.build_name in load/flash bitstream.

4 years agobuild/sim: rename dut to sim (for consistency with other builds).
Florent Kermarrec [Thu, 21 May 2020 07:06:29 +0000 (09:06 +0200)]
build/sim: rename dut to sim (for consistency with other builds).

4 years agointegration/soc: set build_name to platform.name when not specified.
Florent Kermarrec [Thu, 21 May 2020 07:05:45 +0000 (09:05 +0200)]
integration/soc: set build_name to platform.name when not specified.

4 years agosoftware/liblitespi: fix #endif location.
Florent Kermarrec [Wed, 20 May 2020 21:20:45 +0000 (23:20 +0200)]
software/liblitespi: fix #endif location.

4 years agoMerge pull request #516 from antmicro/i2s_support_arty
enjoy-digital [Wed, 20 May 2020 17:49:42 +0000 (19:49 +0200)]
Merge pull request #516 from antmicro/i2s_support_arty

Add I2S support to Arty

4 years agoMerge pull request #534 from fjullien/fix_litex_sim_warn
enjoy-digital [Wed, 20 May 2020 17:49:04 +0000 (19:49 +0200)]
Merge pull request #534 from fjullien/fix_litex_sim_warn

litex/sim: fix compiler warnings

4 years agolitex/sim: fix compiler warnings
Franck Jullien [Wed, 20 May 2020 13:34:19 +0000 (15:34 +0200)]
litex/sim: fix compiler warnings

4 years agoExtend I2S capabilities
Pawel Sagan [Thu, 12 Mar 2020 13:54:41 +0000 (14:54 +0100)]
Extend I2S capabilities

This commit:
* adds the support for I2S standard mode,
* extends I2S left justified mode,
* allows to configure sample size for tx/rx in 1-32 bits range,
* implements I2S master mode,
* allows to concatenate channels or used the padded mode.

This required to rework the FSM.

4 years agocores/cpu: add cv32e40p
Piotr Binkowski [Tue, 19 May 2020 15:05:25 +0000 (17:05 +0200)]
cores/cpu: add cv32e40p

4 years agosoftware/bios/isr: add support for cv32e40p
Piotr Binkowski [Wed, 20 May 2020 11:35:18 +0000 (13:35 +0200)]
software/bios/isr: add support for cv32e40p

4 years agolitex_setup: add pythondata for cv32e40p
Piotr Binkowski [Wed, 20 May 2020 11:46:13 +0000 (13:46 +0200)]
litex_setup: add pythondata for cv32e40p

4 years agoMerge pull request #533 from antmicro/fix-dummy-bits-function-name
enjoy-digital [Wed, 20 May 2020 10:54:09 +0000 (12:54 +0200)]
Merge pull request #533 from antmicro/fix-dummy-bits-function-name

software/liblitespi/spiflash: fix dummy bits setup function name

4 years agosoftware/liblitespi/spiflash: fix dummy bits setup function name
Jan Kowalewski [Wed, 20 May 2020 09:47:40 +0000 (11:47 +0200)]
software/liblitespi/spiflash: fix dummy bits setup function name

4 years agolitex_setup: move requests import to avoid having to install it on travis.
Florent Kermarrec [Wed, 20 May 2020 09:30:50 +0000 (11:30 +0200)]
litex_setup: move requests import to avoid having to install it on travis.

4 years ago.travis: install requests package before running litex_setup.py.
Florent Kermarrec [Wed, 20 May 2020 09:24:57 +0000 (11:24 +0200)]
.travis: install  requests package before running litex_setup.py.

4 years agotargets/netv2: remove LiteSPI integration (not mature enough to be directly integrate...
Florent Kermarrec [Wed, 20 May 2020 09:18:59 +0000 (11:18 +0200)]
targets/netv2: remove LiteSPI integration (not mature enough to be directly integrated on targets).

The LiteSPI integration can be prototype in the LiteSPI example designs. Once mature and
fully tested, we could integrate it to the targets.

4 years agosoftware/liblitespi/spiflash: review/simplify/update and test on arty.
Florent Kermarrec [Wed, 20 May 2020 09:13:25 +0000 (11:13 +0200)]
software/liblitespi/spiflash: review/simplify/update and test on arty.

4 years agobuild/xilinx: simplify LITEX_ENV_ISE/VIVADO handling.
Florent Kermarrec [Wed, 20 May 2020 08:00:39 +0000 (10:00 +0200)]
build/xilinx: simplify LITEX_ENV_ISE/VIVADO handling.

4 years agosoftware/bios: cleanup includes and specify the lib in the include.
Florent Kermarrec [Wed, 20 May 2020 07:55:19 +0000 (09:55 +0200)]
software/bios: cleanup includes and specify the lib in the include.

This ease understanding from which lib the file is included and also allow
having simple filenames in the libs.

4 years agosoftware: create liblitespi and mode litespi code to it (with some parts commented...
Florent Kermarrec [Wed, 20 May 2020 07:32:45 +0000 (09:32 +0200)]
software: create liblitespi and mode litespi code to it (with some parts commented out for now).

4 years agosoc/software/bios: add autoconfiguration functionality for LiteSPI core
Jan Kowalewski [Fri, 15 May 2020 14:41:15 +0000 (16:41 +0200)]
soc/software/bios: add autoconfiguration functionality for LiteSPI core

4 years agolitex_setup: add automatic update of litex_setup (because it also changes) and be...
Florent Kermarrec [Wed, 20 May 2020 07:04:13 +0000 (09:04 +0200)]
litex_setup: add automatic update of litex_setup (because it also changes) and be sure we are on master branch before update.

4 years agoMerge pull request #531 from gsomlo/gls-bios-linker
enjoy-digital [Wed, 20 May 2020 06:08:37 +0000 (08:08 +0200)]
Merge pull request #531 from gsomlo/gls-bios-linker

software/bios: fix link order to avoid undefined symbol errors

4 years agosoftware/bios: fix link order to avoid undefined symbol errors
Gabriel Somlo [Tue, 19 May 2020 20:20:58 +0000 (16:20 -0400)]
software/bios: fix link order to avoid undefined symbol errors

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
4 years agobuild/xilinx: source settings64.sh automatically just before build if LITEX_ENV_ISE...
Florent Kermarrec [Tue, 19 May 2020 14:21:52 +0000 (16:21 +0200)]
build/xilinx: source settings64.sh automatically just before build if LITEX_ENV_ISE/LITEX_ENV_VIVADO environment variables are set.

4 years agointegration/soc_core: avoid cpu_variant check if custom cpu_cls is passed.
Florent Kermarrec [Tue, 19 May 2020 14:01:57 +0000 (16:01 +0200)]
integration/soc_core: avoid cpu_variant check if custom cpu_cls is passed.

4 years agolitex_setup: add litehyperbus and remove hyperbus core/test.
Florent Kermarrec [Tue, 19 May 2020 13:49:25 +0000 (15:49 +0200)]
litex_setup: add litehyperbus and remove hyperbus core/test.

4 years agointegration/builder: simplify default output_dir to "build/platform".
Florent Kermarrec [Tue, 19 May 2020 11:59:56 +0000 (13:59 +0200)]
integration/builder: simplify default output_dir to "build/platform".

All SoC are now based on the same base class and naming was too complicated.

4 years agolitex_setup: add sha1 support on git clone/pull and fix microwatt to a specific sha1.
Florent Kermarrec [Tue, 19 May 2020 08:44:36 +0000 (10:44 +0200)]
litex_setup: add sha1 support on git clone/pull and fix microwatt to a specific sha1.

The pythondata are generated automatically from external sources, some of them are
stable, some others still under development, so allow specifying a specific sha1
commit for sources that are moving and breaking LiteX support.

4 years agoMerge pull request #530 from enjoy-digital/bios-libs
enjoy-digital [Tue, 19 May 2020 06:18:44 +0000 (08:18 +0200)]
Merge pull request #530 from enjoy-digital/bios-libs

BIOS: move cores' specific code to libs and cleanup.

4 years agosoftware/libbase: remove linker-sdram (unused).
Florent Kermarrec [Mon, 18 May 2020 21:35:48 +0000 (23:35 +0200)]
software/libbase: remove linker-sdram (unused).

4 years agosoftware/bios: mode spisdcard code to liblitesdcard.
Florent Kermarrec [Mon, 18 May 2020 21:33:34 +0000 (23:33 +0200)]
software/bios: mode spisdcard code to liblitesdcard.

4 years agosoftware/bios: rename commands to cmds and update with libs' names.
Florent Kermarrec [Mon, 18 May 2020 21:26:51 +0000 (23:26 +0200)]
software/bios: rename commands to cmds and update with libs' names.

4 years agosoftware/bios: move hw flags definitions to respective libs, remove hw/flags.h.
Florent Kermarrec [Mon, 18 May 2020 21:09:31 +0000 (23:09 +0200)]
software/bios: move hw flags definitions to respective libs, remove hw/flags.h.

4 years agosoftware: create liblitescard and move sdcard init/test code to it.
Florent Kermarrec [Mon, 18 May 2020 20:49:12 +0000 (22:49 +0200)]
software: create liblitescard and move sdcard init/test code to it.

4 years agosoftware: create liblitedram and move sdram init/test code to it.
Florent Kermarrec [Mon, 18 May 2020 20:39:59 +0000 (22:39 +0200)]
software: create liblitedram and move sdram init/test code to it.

4 years agobios/software: rename cmd_dram/cmd_sdcard/cmd_spi_flash to cmd_litedram/cmd_litesdcar...
Florent Kermarrec [Mon, 18 May 2020 20:19:02 +0000 (22:19 +0200)]
bios/software: rename cmd_dram/cmd_sdcard/cmd_spi_flash to cmd_litedram/cmd_litesdcard/cmd_spiflash.

4 years agosoftware/bios/commands: rename cmd_mdio to cmd_liteeth.
Florent Kermarrec [Mon, 18 May 2020 20:16:20 +0000 (22:16 +0200)]
software/bios/commands: rename cmd_mdio to cmd_liteeth.

4 years agosoftware/bios: move mdio to libliteeth.
Florent Kermarrec [Mon, 18 May 2020 19:09:41 +0000 (21:09 +0200)]
software/bios: move mdio to libliteeth.

4 years agosoftware/bios: rename libnet to libliteeth and move all ethernet files to it.
Florent Kermarrec [Mon, 18 May 2020 19:04:54 +0000 (21:04 +0200)]
software/bios: rename libnet to libliteeth and move all ethernet files to it.

4 years agosoftware/bios: rename cmd_mem_access to cmd_mem.
Florent Kermarrec [Mon, 18 May 2020 17:59:28 +0000 (19:59 +0200)]
software/bios: rename cmd_mem_access to cmd_mem.

4 years agocpu/microwatt/add_sources: add use_ghdl_yosys_synth parameter to convert microwatt...
Florent Kermarrec [Mon, 18 May 2020 15:28:41 +0000 (17:28 +0200)]
cpu/microwatt/add_sources: add use_ghdl_yosys_synth parameter to convert microwatt to verilog using GHDL-Yosys-plugin and use converted verilog for build.

4 years agocpu/microwatt: update microwatt_wraper.vhdl
Florent Kermarrec [Mon, 18 May 2020 14:38:08 +0000 (16:38 +0200)]
cpu/microwatt: update microwatt_wraper.vhdl

4 years agouptime: rework and integrate it in Timer to ease software support.
Florent Kermarrec [Sun, 17 May 2020 09:03:21 +0000 (11:03 +0200)]
uptime: rework and integrate it in Timer to ease software support.

4 years agobios: add uptime command and rewrite cmd_bios comments.
Florent Kermarrec [Sat, 16 May 2020 08:02:31 +0000 (10:02 +0200)]
bios: add uptime command and rewrite cmd_bios comments.

4 years agosoc: improve uptime comments.
Florent Kermarrec [Sat, 16 May 2020 08:01:39 +0000 (10:01 +0200)]
soc: improve uptime comments.

4 years agoMerge pull request #526 from rprinz08/master
enjoy-digital [Fri, 15 May 2020 14:03:37 +0000 (16:03 +0200)]
Merge pull request #526 from rprinz08/master

Make booting from SD-Card to behave same as from SPI flash

4 years agosoc/SoCController: add uptime since start (disabled by default) and allow features...
Florent Kermarrec [Fri, 15 May 2020 12:47:10 +0000 (14:47 +0200)]
soc/SoCController: add uptime since start (disabled by default) and allow features to be enabled/disabled.

4 years agoMake booting from SD-Card to behave same as from SPI flash
rprinz08 [Fri, 15 May 2020 10:07:52 +0000 (12:07 +0200)]
Make booting from SD-Card to behave same as from SPI flash

4 years agobios/sdram: always show bitslip on two digits to keep scan aligned.
Florent Kermarrec [Thu, 14 May 2020 13:20:52 +0000 (15:20 +0200)]
bios/sdram: always show bitslip on two digits to keep scan aligned.

4 years agoMerge pull request #517 from ozbenh/csr-access-rework
enjoy-digital [Thu, 14 May 2020 13:04:52 +0000 (15:04 +0200)]
Merge pull request #517 from ozbenh/csr-access-rework

csr: Rework accessors

4 years agocsr: Rework accessors
Benjamin Herrenschmidt [Wed, 13 May 2020 11:50:44 +0000 (21:50 +1000)]
csr: Rework accessors

Have all the new compound accessors be written in terms of the simple
ones and fix how CSR_ACCCESORS_DEFINED can be used to override the
simple ones but keep the definitions of the other ones around.

This *should* also also fix incorrect multiple accesses done
by  64-bit CPUs to 32-bit CSR busses, and make the accessors not
depend on CONFIG_CSR_ALIGNMENT being the same as sizeof(unsigned long)*8

In addition, the generated csr.h now will include system.h
always when with_access_functions is True. This guarantees that the
higher level accessors are defined. The extern prototypes for the
simple accessors when CSR_ACCCESORS_DEFINED are removed and system.h
is responsible for providing them. It is also added to hw/common.h

This allows system.h to set CSR_ACCCESORS_DEFINED when necessary, in
which case it's responsible for both declaring and defining the simple
accessors. That way, it can make them inline rather than forcing them
to be extern which at least on microwatt saves spaces.

One can continue to use -DCSR_ACCCESORS_DEFINED but in that case a system.h
will have to be provided with at least the extern definitions.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
4 years agoCHANGES: update.
Florent Kermarrec [Thu, 14 May 2020 07:34:37 +0000 (09:34 +0200)]
CHANGES: update.

4 years agoMerge pull request #518 from enjoy-digital/csr_base
enjoy-digital [Thu, 14 May 2020 06:02:37 +0000 (08:02 +0200)]
Merge pull request #518 from enjoy-digital/csr_base

export: add define of CSR_BASE if not already defined and use it for …

4 years agoMerge pull request #523 from DurandA/patch-5
enjoy-digital [Thu, 14 May 2020 05:17:46 +0000 (07:17 +0200)]
Merge pull request #523 from DurandA/patch-5

Update litex_term help

4 years agoUpdate litex_term help
Arnaud Durand [Wed, 13 May 2020 20:50:09 +0000 (22:50 +0200)]
Update litex_term help

Specify the use of kernel address with flash flag.

4 years agoplatforms/nexys4ddr: add card detect pin to sdcard.
Florent Kermarrec [Wed, 13 May 2020 17:11:46 +0000 (19:11 +0200)]
platforms/nexys4ddr: add card detect pin to sdcard.

4 years agointegration/soc: review/simplify interconnect and add logger.info.
Florent Kermarrec [Wed, 13 May 2020 16:26:54 +0000 (18:26 +0200)]
integration/soc: review/simplify interconnect and add logger.info.

4 years agoMerge pull request #519 from ozbenh/point2point
enjoy-digital [Wed, 13 May 2020 14:48:21 +0000 (16:48 +0200)]
Merge pull request #519 from ozbenh/point2point

soc: Revive generation of a PointToPoint interconnect

4 years agosoc: Revive generation of a PointToPoint interconnect
Benjamin Herrenschmidt [Wed, 13 May 2020 14:06:15 +0000 (00:06 +1000)]
soc: Revive generation of a PointToPoint interconnect

When there's only one master, one slave, and that slave is at 0

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
4 years agoexport: add define of CSR_BASE if not already defined and use it for CSRs definitions...
Florent Kermarrec [Wed, 13 May 2020 13:52:09 +0000 (15:52 +0200)]
export: add define of CSR_BASE if not already defined and use it for CSRs definitions/accesses.

This will allow more flexibility when integrating standalone cores.

4 years agotest/test_targets: workaround to fix travis.
Florent Kermarrec [Wed, 13 May 2020 09:04:40 +0000 (11:04 +0200)]
test/test_targets: workaround to fix travis.

4 years agocpu/soc_core: automatically set csr mapping to 0x00000000 when using CPUNone, remove...
Florent Kermarrec [Wed, 13 May 2020 07:31:20 +0000 (09:31 +0200)]
cpu/soc_core: automatically set csr mapping to 0x00000000 when using CPUNone, remove csr_base parameter that was used for that.

4 years agobios/boot: review/fix #503.
Florent Kermarrec [Wed, 13 May 2020 06:44:17 +0000 (08:44 +0200)]
bios/boot: review/fix #503.

- copy_image_from_flash_to_ram is now used by all CPUs.
- copy_image_from_flash_to_ram already show the flash address, no need to duplicate it.

4 years agoMerge pull request #503 from rprinz08/master
enjoy-digital [Wed, 13 May 2020 06:36:43 +0000 (08:36 +0200)]
Merge pull request #503 from rprinz08/master

BIOS boot firmware from SPI with address offset

4 years agoMerge pull request #513 from mubes/bios_linker
enjoy-digital [Wed, 13 May 2020 05:52:37 +0000 (07:52 +0200)]
Merge pull request #513 from mubes/bios_linker

Bios linker edits to prevent inappropriate optimisation

4 years agoBios linker edits to prevent inappropriate optimisation
Dave Marples [Tue, 12 May 2020 22:32:49 +0000 (23:32 +0100)]
Bios linker edits to prevent inappropriate optimisation

4 years agofixed bug in BIOS spi flash "fw" command
rprinz08 [Tue, 12 May 2020 14:58:42 +0000 (16:58 +0200)]
fixed bug in BIOS spi flash "fw" command

4 years agoremoved FLASH_BOOT_OFFSET, replaced memcyp with copy_image_from_flash_to_ram
rprinz08 [Tue, 12 May 2020 14:57:21 +0000 (16:57 +0200)]
removed FLASH_BOOT_OFFSET, replaced memcyp with copy_image_from_flash_to_ram

4 years agocores/spi_flash: add back old SpiFlashDualQuad and rename new one as SpiFlashQuadRead...
Florent Kermarrec [Tue, 12 May 2020 14:51:47 +0000 (16:51 +0200)]
cores/spi_flash: add back old SpiFlashDualQuad and rename new one as SpiFlashQuadReadWrite.

4 years agoMerge pull request #478 from antmicro/extended_spi_flash
enjoy-digital [Tue, 12 May 2020 14:42:01 +0000 (16:42 +0200)]
Merge pull request #478 from antmicro/extended_spi_flash

Extended SPI flash support

4 years agoMerge pull request #510 from mubes/colorlight_usb
enjoy-digital [Tue, 12 May 2020 14:35:29 +0000 (16:35 +0200)]
Merge pull request #510 from mubes/colorlight_usb

Colorlight usb

4 years agointegration/soc: review/simplify changes for standalone cores.
Florent Kermarrec [Tue, 12 May 2020 14:18:26 +0000 (16:18 +0200)]
integration/soc: review/simplify changes for standalone cores.

- do the CSR alignment update only if CPU is not CPUNone.
- revert PointToPoint interconnect when 1 master and 1 slave since this will
break others use cases and will prevent mapping slave to a specific location.
It's probably better to let the synthesis tools optimize the 1:1 mapping directly.
- add with_soc_interconnect parameter to add_sdram that defaults to True. When
set to False, only the LiteDRAMCore will be instantiated and interconnect with
the SoC will not be added.

4 years agoFix dumb missing line
Dave Marples [Tue, 12 May 2020 13:40:11 +0000 (14:40 +0100)]
Fix dumb missing line

4 years agoMerge pull request #511 from ozbenh/standalone-cores
enjoy-digital [Tue, 12 May 2020 12:55:44 +0000 (14:55 +0200)]
Merge pull request #511 from ozbenh/standalone-cores

Improve standalone cores

4 years agointerconnect/wishbonebridge: refresh/simplify.
Florent Kermarrec [Tue, 12 May 2020 10:53:01 +0000 (12:53 +0200)]
interconnect/wishbonebridge: refresh/simplify.

This should also improve Wishbone timings.

Tested on iCEBreaker:
./icebreaker.py --cpu-type=None --uart-name=uartbone --csr-csv=csr.csv --build --flash

With the following script:

#!/usr/bin/env python3

import sys

from litex import RemoteClient

wb = RemoteClient()
wb.open()

# # #

print("scratch: 0x{:08x}".format(wb.regs.ctrl_scratch.read()))

errors = 0
for i in range(2):
for j in range(32):
wb.write(wb.mems.sram.base + 4*j, i + j)
for j in range(32):
if wb.read(wb.mems.sram.base + 4*j) != (i + j):
errors += 1
print("sram errors: {:d}".format(errors))

# # #

wb.close()

4 years agoWB2CSR: Use CSR address_width for the wishbone bus
Benjamin Herrenschmidt [Tue, 12 May 2020 11:37:36 +0000 (21:37 +1000)]
WB2CSR: Use CSR address_width for the wishbone bus

Currently, we create a wishbone interface with the default address
width (30 bits) for the bridge. Instead, create an interface that
has the same number of address bits as the CSR bus.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
4 years agosoc_core: Add option to override CSR base
Benjamin Herrenschmidt [Tue, 12 May 2020 11:35:12 +0000 (21:35 +1000)]
soc_core: Add option to override CSR base

When creating standalone IP cores such as standalone LiteDRAM without
a CPU, the CSR are presented externally via a wishbone with just enough
address bits to access individual CSRs (14), and no address decoding
otherwise. It is expected that the design using such core will have
its own address decoder gating cyc/stb.

However, such a design might still need to use LiteX code such as
the sdram init code, which relies on the generated csr.h. Thus we
want to be able to control the CSR base address used by that generated
csr.h.

This could be handled instead by having the "host" code provide
modified csr_{read,write}_simple() that include the necessary base
address. However, such an approach would make things complicated
if the design includes multiple such standalone cores with separate
CSR busses (such as LiteDRAM and LiteEth).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>