litex.git
4 years agoboards/platforms: remove versa_ecp3 (ECP3 no longer supported).
Florent Kermarrec [Tue, 24 Mar 2020 19:02:57 +0000 (20:02 +0100)]
boards/platforms: remove versa_ecp3 (ECP3 no longer supported).

4 years agobuild/lattice/diamond: remove ECP3 support. (ECP3 is not used and no longer interesti...
Florent Kermarrec [Tue, 24 Mar 2020 18:36:57 +0000 (19:36 +0100)]
build/lattice/diamond: remove ECP3 support. (ECP3 is not used and no longer interesting now that ECP5 has an open-source toolchain).

4 years agocores/clock/ECP5PLL: add phase support.
Florent Kermarrec [Tue, 24 Mar 2020 18:09:05 +0000 (19:09 +0100)]
cores/clock/ECP5PLL: add phase support.

4 years agobuild/lattice/common: change LatticeECPXDDROutputImpl from ECP3 to ECP5.
Florent Kermarrec [Tue, 24 Mar 2020 18:08:38 +0000 (19:08 +0100)]
build/lattice/common: change LatticeECPXDDROutputImpl from ECP3 to ECP5.

4 years agoFix off-by-one error on almost full condition for prefetch
bunnie [Tue, 24 Mar 2020 06:11:23 +0000 (14:11 +0800)]
Fix off-by-one error on almost full condition for prefetch

This causes a DRC error on the Xilinx tools when the prefetch
lines setting is 1. Don't know why this wasn't caught earlier,
but it just popped up in CI.

4 years agosoc/doc/csr: allow CSRField.reset to be a Migen Constant.
Florent Kermarrec [Mon, 23 Mar 2020 17:47:41 +0000 (18:47 +0100)]
soc/doc/csr: allow CSRField.reset to be a Migen Constant.

4 years agocpu/vexriscv/mem_map_linux: move main_ram to allow up to 1GB.
Florent Kermarrec [Mon, 23 Mar 2020 14:35:33 +0000 (15:35 +0100)]
cpu/vexriscv/mem_map_linux: move main_ram to allow up to 1GB.

4 years agosoftware/bios/boot/linux: move emulator.bin to main_ram and allow defining custom...
Florent Kermarrec [Mon, 23 Mar 2020 14:06:32 +0000 (15:06 +0100)]
software/bios/boot/linux: move emulator.bin to main_ram and allow defining custom ram offsets.

4 years agotargets: remove Etherbone imports.
Florent Kermarrec [Sat, 21 Mar 2020 20:39:34 +0000 (21:39 +0100)]
targets: remove Etherbone imports.

4 years agotargets: switch to add_etherbone method.
Florent Kermarrec [Sat, 21 Mar 2020 18:55:00 +0000 (19:55 +0100)]
targets: switch to add_etherbone method.

4 years agointegration/soc: add add_etherbone method.
Florent Kermarrec [Sat, 21 Mar 2020 18:54:36 +0000 (19:54 +0100)]
integration/soc: add add_etherbone method.

4 years agointegration/soc/add_ethernet: add name parameter (defaults to ethmac).
Florent Kermarrec [Sat, 21 Mar 2020 18:36:31 +0000 (19:36 +0100)]
integration/soc/add_ethernet: add name parameter (defaults to ethmac).

4 years agotargets: always use sys_clk_freq on SDRAM modules.
Florent Kermarrec [Sat, 21 Mar 2020 18:36:06 +0000 (19:36 +0100)]
targets: always use sys_clk_freq on SDRAM modules.

4 years agotargets: fix typos in previous changes.
Florent Kermarrec [Sat, 21 Mar 2020 17:26:58 +0000 (18:26 +0100)]
targets: fix typos in previous changes.

4 years agoMerge pull request #436 from rob-ng15/master
enjoy-digital [Sat, 21 Mar 2020 08:26:25 +0000 (09:26 +0100)]
Merge pull request #436 from rob-ng15/master

Reclock spi sdcard access after initialisation

4 years agoMerge pull request #435 from enjoy-digital/spi_master_clk_divider
enjoy-digital [Sat, 21 Mar 2020 08:25:37 +0000 (09:25 +0100)]
Merge pull request #435 from enjoy-digital/spi_master_clk_divider

soc/core/spi: add Clk Divider CSR (defaults to sys_clk_freq/spi_clk_f…

4 years agoReclock spi sdcard access after initialisation
rob-ng15 [Sat, 21 Mar 2020 07:37:21 +0000 (07:37 +0000)]
Reclock spi sdcard access after initialisation

Depends upon https://github.com/enjoy-digital/litex/pull/435

After initialising the card, reclock the card, aiming for ~16MHz (divider is rounded up, as slower speed is safer), but a maximum of half of the processor speed.

Tested with the card being clocked to 12.5MHz on de10nano

4 years agotargets: switch to add_ethernet method instead of EthernetSoC.
Florent Kermarrec [Fri, 20 Mar 2020 22:36:29 +0000 (23:36 +0100)]
targets: switch to add_ethernet method instead of EthernetSoC.

4 years agotargets: switch to SoCCore/add_sdram instead of SoCSDRAM.
Florent Kermarrec [Fri, 20 Mar 2020 21:02:36 +0000 (22:02 +0100)]
targets: switch to SoCCore/add_sdram instead of SoCSDRAM.

4 years agosoc/core/spi: add Clk Divider CSR (defaults to sys_clk_freq/spi_clk_freq).
Florent Kermarrec [Fri, 20 Mar 2020 18:49:42 +0000 (19:49 +0100)]
soc/core/spi: add Clk Divider CSR (defaults to sys_clk_freq/spi_clk_freq).

4 years agotargets/arty: use new ISERDESE2 MEMORY mode.
Florent Kermarrec [Fri, 20 Mar 2020 17:58:31 +0000 (18:58 +0100)]
targets/arty: use new ISERDESE2 MEMORY mode.

4 years agoMerge branch 'master' of http://github.com/enjoy-digital/litex
Florent Kermarrec [Fri, 20 Mar 2020 17:54:51 +0000 (18:54 +0100)]
Merge branch 'master' of github.com/enjoy-digital/litex

4 years agoMerge pull request #434 from rob-ng15/master
enjoy-digital [Fri, 20 Mar 2020 17:05:21 +0000 (18:05 +0100)]
Merge pull request #434 from rob-ng15/master

Use <stdint.h> to provide structure sizes

4 years agoUse <stdint.h> to provide structure sizes
rob-ng15 [Fri, 20 Mar 2020 11:35:05 +0000 (11:35 +0000)]
Use <stdint.h> to provide structure sizes

4 years agoUse <stdint.h> for structure sizes
rob-ng15 [Fri, 20 Mar 2020 11:34:24 +0000 (11:34 +0000)]
Use <stdint.h> for structure sizes

4 years agointegration/soc: add add_spi_flash method to add SPI Flash support to the SoC.
Florent Kermarrec [Fri, 20 Mar 2020 09:24:31 +0000 (10:24 +0100)]
integration/soc: add add_spi_flash method to add SPI Flash support to the SoC.

4 years agotargets/nexys4ddr: use LiteXSoC's add_spi_sdcard method.
Florent Kermarrec [Fri, 20 Mar 2020 08:58:09 +0000 (09:58 +0100)]
targets/nexys4ddr: use LiteXSoC's add_spi_sdcard method.

4 years agointegration/soc: add add_spi_sdcard method to add SPI mode SDCard support to the...
Florent Kermarrec [Fri, 20 Mar 2020 08:57:37 +0000 (09:57 +0100)]
integration/soc: add add_spi_sdcard method to add SPI mode SDCard support to the SoC.

4 years agoMerge pull request #433 from gsomlo/gls-rocket-spisdcard
enjoy-digital [Fri, 20 Mar 2020 08:41:56 +0000 (09:41 +0100)]
Merge pull request #433 from gsomlo/gls-rocket-spisdcard

Support SPI-mode SDCard booting on Litex+Rocket (64bit) configuration

4 years agotargets/nexys4ddr: add '--with-spi-sdcard' build option
Gabriel Somlo [Thu, 19 Mar 2020 23:13:47 +0000 (19:13 -0400)]
targets/nexys4ddr: add '--with-spi-sdcard' build option

4 years agoplatforms/nexys4ddr: add spisdcard pins.
Gabriel Somlo [Thu, 19 Mar 2020 22:04:27 +0000 (18:04 -0400)]
platforms/nexys4ddr: add spisdcard pins.

Synchronize with litex-boards commit #57bcadb.

4 years agotargets/nexys4ddr: make sdcard reset conditional
Gabriel Somlo [Thu, 19 Mar 2020 22:20:30 +0000 (18:20 -0400)]
targets/nexys4ddr: make sdcard reset conditional

4 years agosoftware/libbase/spisdcard: fix 4-byte FAT fields on 64-bit CPUs
Gabriel Somlo [Fri, 20 Mar 2020 01:50:54 +0000 (21:50 -0400)]
software/libbase/spisdcard: fix 4-byte FAT fields on 64-bit CPUs

On 64-bit architectures (e.g., Rocket), 'unsigned long' means
eight (not four) bytes. Use 'unsigned int' wherever a FAT data
structure requires a four-byte field!

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
4 years agoMerge pull request #432 from esden/csr-doc-fix-int
Sean Cross [Fri, 20 Mar 2020 01:20:02 +0000 (09:20 +0800)]
Merge pull request #432 from esden/csr-doc-fix-int

Don't let python convert lane number to float.

4 years agoDon't let python convert lane number to float.
Piotr Esden-Tempski [Fri, 20 Mar 2020 01:12:41 +0000 (18:12 -0700)]
Don't let python convert lane number to float.

While at it also:
* Don't multilane for reg >= 8 bit width.
* Only check if we should switch to multilane after finding min field width.

4 years agobios: make SPI SDCard boot configs other than linux-on-litex-vexriscv
Gabriel Somlo [Thu, 19 Mar 2020 23:36:24 +0000 (19:36 -0400)]
bios: make SPI SDCard boot configs other than linux-on-litex-vexriscv

When NOT on linux-on-litex-vexriscv, we load 'boot.bin' to MAIN_RAM_BASE,
and jump to it.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
4 years agobios/boot.c: cosmetic: re-indent spisdcardboot() for consistency
Gabriel Somlo [Thu, 19 Mar 2020 23:24:22 +0000 (19:24 -0400)]
bios/boot.c: cosmetic: re-indent spisdcardboot() for consistency

4 years agoMerge pull request #431 from antmicro/hybrid-mac
enjoy-digital [Thu, 19 Mar 2020 21:10:33 +0000 (22:10 +0100)]
Merge pull request #431 from antmicro/hybrid-mac

litex_sim: add support for hybrid mac

4 years agosoftware/libbase/bios: rename spi.c/h to spisdcard.h, also rename functions.
Florent Kermarrec [Thu, 19 Mar 2020 10:02:15 +0000 (11:02 +0100)]
software/libbase/bios: rename spi.c/h to spisdcard.h, also rename functions.

4 years agosoftware/bios/main: revert USDDRPHY_DEBUG (merge issue with SPI SD CARD PR).
Florent Kermarrec [Thu, 19 Mar 2020 09:47:28 +0000 (10:47 +0100)]
software/bios/main: revert USDDRPHY_DEBUG (merge issue with SPI SD CARD PR).

4 years agoMerge pull request #429 from rob-ng15/master
enjoy-digital [Thu, 19 Mar 2020 09:41:09 +0000 (10:41 +0100)]
Merge pull request #429 from rob-ng15/master

SPI hardware bitbanging from SD CARD

4 years agolitex_sim: add support for hybrid mac
Piotr Binkowski [Fri, 13 Mar 2020 14:34:44 +0000 (15:34 +0100)]
litex_sim: add support for hybrid mac

4 years agoMerge pull request #430 from gsomlo/gls-sdclk-stub
enjoy-digital [Thu, 19 Mar 2020 08:05:02 +0000 (09:05 +0100)]
Merge pull request #430 from gsomlo/gls-sdclk-stub

bios/sdcard: provide sdclk_set_clk() stub for clocker-less targets

4 years agobios/sdcard: provide sdclk_set_clk() stub for clocker-less targets
Gabriel Somlo [Sat, 14 Mar 2020 19:54:07 +0000 (15:54 -0400)]
bios/sdcard: provide sdclk_set_clk() stub for clocker-less targets

Targets which lack an adjustable clocker will not expose the required
registers. Provide a stub sdclk_set_clk() routine for those situations.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
4 years agoplatforms/kcu105: fix pcie tx0 p/n swap.
Florent Kermarrec [Wed, 18 Mar 2020 18:05:54 +0000 (19:05 +0100)]
platforms/kcu105: fix pcie tx0 p/n swap.

4 years agoSPI hardware bitbanging from SD CARD
rob-ng15 [Tue, 17 Mar 2020 09:51:11 +0000 (09:51 +0000)]
SPI hardware bitbanging from SD CARD

4 years agoSPI hardware bitbanging from SD CARD
rob-ng15 [Tue, 17 Mar 2020 09:50:45 +0000 (09:50 +0000)]
SPI hardware bitbanging from SD CARD

4 years agoSPI hardware bitbanging from SD CARD
rob-ng15 [Tue, 17 Mar 2020 09:50:16 +0000 (09:50 +0000)]
SPI hardware bitbanging from SD CARD

4 years agosoc/cores/clock: make sure specific clkoutn_divide_range is only used as a fallback...
Florent Kermarrec [Mon, 16 Mar 2020 10:44:39 +0000 (11:44 +0100)]
soc/cores/clock: make sure specific clkoutn_divide_range is only used as a fallback solution.

4 years agoMerge pull request #425 from esden/csr-cod-split-reg
Sean Cross [Sat, 14 Mar 2020 10:08:24 +0000 (18:08 +0800)]
Merge pull request #425 from esden/csr-cod-split-reg

Make CSR documentation diagrams, with more than 8 bits, be split into multiple lanes.

4 years agoAdd bit more logic to decide when to switch to multilane CSR documentation.
Piotr Esden-Tempski [Fri, 13 Mar 2020 21:24:27 +0000 (14:24 -0700)]
Add bit more logic to decide when to switch to multilane CSR documentation.

Now we only generate multilane bitfield documentation when the CSR has
fields, and the smallest field is less than 8bit long. As this is when
we start running into space problems with the field names.

4 years agoSplit CSR documentation diagrams with more than 8 bits into multiple lanes.
Piotr Esden-Tempski [Fri, 13 Mar 2020 05:08:54 +0000 (22:08 -0700)]
Split CSR documentation diagrams with more than 8 bits into multiple lanes.

In cases when each CSR bit has a name and we use CSR with more than 8
bits, the register diagram quickly becomes crowded and hard to read.

With this patch we split the register into multiple lanes of 8 bits
each.

4 years agoMerge pull request #427 from enjoy-digital/s7mmcm_fractional_divide
enjoy-digital [Fri, 13 Mar 2020 17:06:23 +0000 (18:06 +0100)]
Merge pull request #427 from enjoy-digital/s7mmcm_fractional_divide

cores/clock: simplify Fractional Divide support on S7MMCM.

4 years agocores/clock: simplify Fractional Divide support on S7MMCM.
Florent Kermarrec [Fri, 13 Mar 2020 14:51:18 +0000 (15:51 +0100)]
cores/clock: simplify Fractional Divide support on S7MMCM.

Specific clkoutn_divide_range can now be provided by specialized XilinxClocking classes.
When provided, the specific range will be used. Floats are also now supported in the
range definition/iteration.

4 years agoMerge pull request #421 from betrusted-io/clk0_fractional
enjoy-digital [Fri, 13 Mar 2020 13:15:24 +0000 (14:15 +0100)]
Merge pull request #421 from betrusted-io/clk0_fractional

add fractional division options to clk0 config on PLL

4 years agotest: add initial (minimal) test for clock abstraction modules.
Florent Kermarrec [Fri, 13 Mar 2020 11:24:36 +0000 (12:24 +0100)]
test: add initial (minimal) test for clock abstraction modules.

Also fix divclk_divide_range on S6DCM.

4 years agotargets/icebreaker: add description of the board, link to crowdsupply campagin and...
Florent Kermarrec [Fri, 13 Mar 2020 08:37:23 +0000 (09:37 +0100)]
targets/icebreaker: add description of the board, link to crowdsupply campagin and to the more complete example.

4 years agoMerge pull request #426 from esden/update-wavedrom
Sean Cross [Fri, 13 Mar 2020 05:44:13 +0000 (13:44 +0800)]
Merge pull request #426 from esden/update-wavedrom

Updating the vendored wavedrom js files.

4 years agoUpdating the vendored wavedrom js files.
Piotr Esden-Tempski [Fri, 13 Mar 2020 05:35:04 +0000 (22:35 -0700)]
Updating the vendored wavedrom js files.

4 years agosoc/intergration: rename mr_memory_x parameter to memory_x.
Florent Kermarrec [Thu, 12 Mar 2020 11:20:48 +0000 (12:20 +0100)]
soc/intergration: rename mr_memory_x parameter to memory_x.

4 years agoMerge pull request #424 from esden/generate-memory-x
enjoy-digital [Thu, 12 Mar 2020 11:12:48 +0000 (12:12 +0100)]
Merge pull request #424 from esden/generate-memory-x

Add --mr-memory-x parameter to generate memory regions memory.x file

4 years agoAdd --mr-memory-x parameter to generate memory regions memory.x file.
Piotr Esden-Tempski [Thu, 12 Mar 2020 01:07:33 +0000 (18:07 -0700)]
Add --mr-memory-x parameter to generate memory regions memory.x file.

This file is used by rust embedded target pacs.

4 years agoMerge branch 'master' of http://github.com/enjoy-digital/litex
Florent Kermarrec [Wed, 11 Mar 2020 11:57:29 +0000 (12:57 +0100)]
Merge branch 'master' of github.com/enjoy-digital/litex

4 years agosoftware: revert LTO changes (Disable it).
Florent Kermarrec [Wed, 11 Mar 2020 11:56:40 +0000 (12:56 +0100)]
software: revert LTO changes (Disable it).

It seems LTO is not yet fully working with all configurations, so it's better
reverting the changes for now.
- cause issues with LM32 available compilers.
- seems to cause issues with min/lite variant of VexRiscv.
- seems to cause issues with some litex-buildenv configurations. (see https://github.com/enjoy-digital/litex/issues/417).

4 years agoMerge pull request #422 from xobs/core-doc-fixes
Sean Cross [Wed, 11 Mar 2020 11:38:42 +0000 (19:38 +0800)]
Merge pull request #422 from xobs/core-doc-fixes

Core doc fixes

4 years agoMerge pull request #423 from gsomlo/gls-ethmac-fixes
enjoy-digital [Wed, 11 Mar 2020 11:33:50 +0000 (12:33 +0100)]
Merge pull request #423 from gsomlo/gls-ethmac-fixes

integration/soc: add_ethernet: honor self.map["ethmac"], if present

4 years agocores/gpio: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 11:06:15 +0000 (12:06 +0100)]
cores/gpio: add CSR descriptions.

4 years agocores/icap: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 10:04:42 +0000 (11:04 +0100)]
cores/icap: add CSR descriptions.

4 years agocores/spi: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 09:58:22 +0000 (10:58 +0100)]
cores/spi: add CSR descriptions.

4 years agocores/pwm: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 09:38:28 +0000 (10:38 +0100)]
cores/pwm: add CSR descriptions.

4 years agocores/xadc: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 09:05:14 +0000 (10:05 +0100)]
cores/xadc: add CSR descriptions.

4 years agointegration/soc: add_ethernet: honor self.map["ethmac"], if present
Gabriel Somlo [Tue, 10 Mar 2020 23:45:45 +0000 (19:45 -0400)]
integration/soc: add_ethernet: honor self.map["ethmac"], if present

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
4 years agotargets/kcu105: move cd_pll4x.
Florent Kermarrec [Tue, 10 Mar 2020 16:02:28 +0000 (17:02 +0100)]
targets/kcu105: move cd_pll4x.

4 years agotargets/kcu105: simplify CRG using USIDELAYCTRL.
Florent Kermarrec [Tue, 10 Mar 2020 15:48:07 +0000 (16:48 +0100)]
targets/kcu105: simplify CRG using USIDELAYCTRL.

4 years agocores/clock/USIDELAYCTRL: use separate reset/ready counters and set cd_sys.rst intern...
Florent Kermarrec [Tue, 10 Mar 2020 15:45:38 +0000 (16:45 +0100)]
cores/clock/USIDELAYCTRL: use separate reset/ready counters and set cd_sys.rst internally.

This is the behaviour that was duplicated in each target. Integrating it here
will allow simplifying the targets.

4 years agosoc/cores/spi_opi: documentation fixes
Sean Cross [Tue, 10 Mar 2020 12:40:04 +0000 (20:40 +0800)]
soc/cores/spi_opi: documentation fixes

The ModuleDoc-generated documentation for the spi_opi module produced
slightly invalid output due to ambiguities in how rst assigns headers.
As a result, sections from the spi_opi document would appear as full
sections.

This cleans up these errors so that it parses properly under sphinx.

Signed-off-by: Sean Cross <sean@xobs.io>
4 years agosoc/cores/i2s: fix rst parsing errors
Sean Cross [Tue, 10 Mar 2020 12:37:55 +0000 (20:37 +0800)]
soc/cores/i2s: fix rst parsing errors

The ModuleDoc-generated documentation for the i2s module produced
slightly invalid output due to ambiguities in how rst assigns headers.
As a result, sections from the i2s document would appear as full
sections.

This cleans up these errors so that it parses properly under sphinx.

Signed-off-by: Sean Cross <sean@xobs.io>
4 years agobios: add more Ultrascale SDRAM debug with sdram_cdly command to set clk/cmd delay.
Florent Kermarrec [Tue, 10 Mar 2020 12:08:49 +0000 (13:08 +0100)]
bios: add more Ultrascale SDRAM debug with sdram_cdly command to set clk/cmd delay.

4 years agoadd fractional division options to clk0 config on PLL
bunnie [Tue, 10 Mar 2020 10:48:30 +0000 (18:48 +0800)]
add fractional division options to clk0 config on PLL

S7 MMCMs allow fractional divider on clock 0. Add a fallback
to try fractional values on clock 0 if a solution can't be found.

This is necessary for e.g. generating both a 100MHz and 48MHz
clock from a 12MHz source with margin=0

4 years agoMerge pull request #419 from gsomlo/gls-ultra-sdram-fixup
enjoy-digital [Tue, 10 Mar 2020 10:43:23 +0000 (11:43 +0100)]
Merge pull request #419 from gsomlo/gls-ultra-sdram-fixup

software/bios: fixup for Ultrascale SDRAM debug

4 years agocores/clock: add logging to visualize clkin/clkouts and computed config.
Florent Kermarrec [Tue, 10 Mar 2020 10:11:33 +0000 (11:11 +0100)]
cores/clock: add logging to visualize clkin/clkouts and computed config.

4 years agointegration/soc: add FPGA device and System clock to logs.
Florent Kermarrec [Tue, 10 Mar 2020 10:10:23 +0000 (11:10 +0100)]
integration/soc: add FPGA device and System clock to logs.

4 years agotargets/icebreaker: create CRG after SoC.
Florent Kermarrec [Tue, 10 Mar 2020 10:09:56 +0000 (11:09 +0100)]
targets/icebreaker: create CRG after SoC.

4 years agosoftware/bios: fixup for Ultrascale SDRAM debug
Gabriel Somlo [Mon, 9 Mar 2020 14:24:30 +0000 (10:24 -0400)]
software/bios: fixup for Ultrascale SDRAM debug

Keep CSR accesses independent of csr_data_width and csr_alignment.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
4 years agointegration/soc: set use_rom when cpu_reset_address is defined in a rom region.
Florent Kermarrec [Mon, 9 Mar 2020 18:36:39 +0000 (19:36 +0100)]
integration/soc: set use_rom when cpu_reset_address is defined in a rom region.

4 years agoboards/platforms/icebreaker: cleanup a bit.
Florent Kermarrec [Mon, 9 Mar 2020 18:16:02 +0000 (19:16 +0100)]
boards/platforms/icebreaker: cleanup a bit.

4 years agosoftware/common: fix LTO checks.
Florent Kermarrec [Mon, 9 Mar 2020 18:08:27 +0000 (19:08 +0100)]
software/common: fix LTO checks.

4 years agosoc/cores/clock/iCE40PLL: add SB_PLL40_PAD support.
Florent Kermarrec [Mon, 9 Mar 2020 18:03:05 +0000 (19:03 +0100)]
soc/cores/clock/iCE40PLL: add SB_PLL40_PAD support.

4 years agobuild/lattice/icestorm: add timingstrict parameter and default to False. (similar...
Florent Kermarrec [Mon, 9 Mar 2020 18:02:23 +0000 (19:02 +0100)]
build/lattice/icestorm: add timingstrict parameter and default to False. (similar behavior than others backends)

4 years agotargets/icebreaker: simplify, use standard VexRiscv, add iCE40PLL and run BIOS from...
Florent Kermarrec [Mon, 9 Mar 2020 16:02:29 +0000 (17:02 +0100)]
targets/icebreaker: simplify, use standard VexRiscv, add iCE40PLL and run BIOS from SPI Flash.

4 years agolattice/icestorm: enable DSP inference with Yosys and avoid setting SPI Flash in...
Florent Kermarrec [Mon, 9 Mar 2020 15:51:11 +0000 (16:51 +0100)]
lattice/icestorm: enable DSP inference with Yosys and avoid setting SPI Flash in deep sleep mode after configuration which prevent running ROM CPU code from SPI Flash.

4 years agoboards: add initial icebreaker platform/target from litex-boards.
Florent Kermarrec [Mon, 9 Mar 2020 10:56:55 +0000 (11:56 +0100)]
boards: add initial icebreaker platform/target from litex-boards.

4 years agosoftware/bios: add Ultrascale SDRAM debug functions.
Florent Kermarrec [Mon, 9 Mar 2020 09:55:31 +0000 (10:55 +0100)]
software/bios: add Ultrascale SDRAM debug functions.

4 years agoboards/platforms/kcu105: avoid unnecessary {{}} on INTERNAL_VREF.
Florent Kermarrec [Mon, 9 Mar 2020 08:37:31 +0000 (09:37 +0100)]
boards/platforms/kcu105: avoid unnecessary {{}} on INTERNAL_VREF.

4 years agointegration/soc/SoCRegion: add size_pow2 and use this internally for checks since...
Florent Kermarrec [Sun, 8 Mar 2020 18:17:31 +0000 (19:17 +0100)]
integration/soc/SoCRegion: add size_pow2 and use this internally for checks since decoder is using rounded size to next power or 2.

4 years agosoc: allow creating SoC without BIOS.
Florent Kermarrec [Fri, 6 Mar 2020 19:05:27 +0000 (20:05 +0100)]
soc: allow creating SoC without BIOS.

By default the behaviour is unchanged and the SoC will provide a ROM:
./arty.py

Bus Regions: (4)
rom                 : Origin: 0x00000000, Size: 0x00008000, Mode: R, Cached: True Linker: False
sram                : Origin: 0x01000000, Size: 0x00001000, Mode: RW, Cached: True Linker: False
main_ram            : Origin: 0x40000000, Size: 0x10000000, Mode: RW, Cached: True Linker: False
csr                 : Origin: 0x82000000, Size: 0x00010000, Mode: RW, Cached: False Linker: False

The integrated rom can be disabled with:
./arty.py --integrated-rom-size=0

but the SoC builder will check for a user provided rom, and if not provided will complains:
ERROR:SoC:CPU needs rom Region to be defined as Bus or Linker Region.

When a rom is provided, the CPU will use the rom base address as cpu_reset_address.

If the user just wants the CPU to start at a specified address without providing a rom,
the cpu_reset_address parameter can be used:

./arty.py --integrated-rom-size=0 --cpu-reset-address=0x01000000

If the provided reset address is not located in any defined Region, an error will
be produced:
ERROR:SoC:CPU needs reset address 0x00000000 to be in a defined Region.

When no rom is provided, the builder will not build the BIOS.

4 years agoMerge pull request #416 from enjoy-digital/csr_svd
enjoy-digital [Fri, 6 Mar 2020 18:00:13 +0000 (19:00 +0100)]
Merge pull request #416 from enjoy-digital/csr_svd

Add SVD export capability to Builder (csr_svd parameter) and targets …

4 years agointegration/builder: rename software methods to _prepare_rom_software/_generate_rom_s...
Florent Kermarrec [Fri, 6 Mar 2020 13:53:59 +0000 (14:53 +0100)]
integration/builder: rename software methods to _prepare_rom_software/_generate_rom_software/_initialize_rom_software.

4 years agointegration/builder: generate csr maps before compiling software.
Florent Kermarrec [Fri, 6 Mar 2020 13:20:32 +0000 (14:20 +0100)]
integration/builder: generate csr maps before compiling software.

4 years agoAdd SVD export capability to Builder (csr_svd parameter) and targets (--csr-svd argum...
Florent Kermarrec [Fri, 6 Mar 2020 07:36:52 +0000 (08:36 +0100)]
Add SVD export capability to Builder (csr_svd parameter) and targets (--csr-svd argument) and fix svd regression.

This allows generating SVD export files during the build as we are already doing for .csv or .json.

Use with Builder:
builder = Builder(soc, csr_svd="csr.svd")

Use with target:
./arty.py --csr-svd=csr.svd