Gabriel Somlo [Fri, 27 Mar 2020 11:01:02 +0000 (07:01 -0400)]
software/libbase/spisdcard: add delay to goidle loop
In `spi_sdcard_goidle()`, insert a `busy_wait()` into the CMD55+ACMD41
loop to avoid exhausting the retry counter before the card has a chance
to be ready (required on the trellisboard, also tested OK on nexys4ddr).
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Gabriel Somlo [Fri, 27 Mar 2020 10:58:06 +0000 (06:58 -0400)]
software/bios: factor out busy_wait() function
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Gabriel Somlo [Fri, 27 Mar 2020 11:07:30 +0000 (07:07 -0400)]
software/libbase/spisdcard: fix width of address parameter
Host address parameter types should match CPU word width, so
use `unsigned long` to be correct on both 32 and 64 bit CPUs.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Florent Kermarrec [Fri, 27 Mar 2020 17:44:48 +0000 (18:44 +0100)]
soc/cores/spi: make dynamic clk divider optional (can be enabled with add_clk_divider method) and only use it in add_spi_sdcard.
enjoy-digital [Thu, 26 Mar 2020 14:36:39 +0000 (15:36 +0100)]
Merge pull request #439 from antmicro/fix-compiler-rt
Update removed llvm compiler-rt repo
Kamil Rakoczy [Thu, 26 Mar 2020 09:56:28 +0000 (10:56 +0100)]
Update removed llvm compiler-rt repo
Florent Kermarrec [Thu, 26 Mar 2020 08:45:19 +0000 (09:45 +0100)]
targets/add_constant: avoid specifying value when value is None (=default).
Florent Kermarrec [Thu, 26 Mar 2020 06:46:32 +0000 (07:46 +0100)]
software/libbase/spisdcard: add USE_SPISDCARD_RECLOCKING define to easily disable reclocking.
Florent Kermarrec [Wed, 25 Mar 2020 18:07:06 +0000 (19:07 +0100)]
integration/soc/add_uart: add USB CDC support (with ValentyUSB core).
Florent Kermarrec [Wed, 25 Mar 2020 17:57:26 +0000 (18:57 +0100)]
tools/litex_sim: simplify using uart_name=sim.
Florent Kermarrec [Wed, 25 Mar 2020 17:56:58 +0000 (18:56 +0100)]
integration/soc/add_uart: add Model/Sim.
Florent Kermarrec [Wed, 25 Mar 2020 17:53:00 +0000 (18:53 +0100)]
integration/soc/add_uart: cleanup.
Florent Kermarrec [Wed, 25 Mar 2020 15:36:53 +0000 (16:36 +0100)]
build/tools: add replace_in_file function.
Florent Kermarrec [Wed, 25 Mar 2020 08:31:51 +0000 (09:31 +0100)]
tools/litex_term: use 64 bytes as default payload_lengh (work for all confniguration) and add small delay between frames for FT245 FIFO.
The delay still need to be investigated.
Florent Kermarrec [Wed, 25 Mar 2020 08:21:28 +0000 (09:21 +0100)]
bios/boot: update comments.
enjoy-digital [Wed, 25 Mar 2020 08:18:31 +0000 (09:18 +0100)]
Merge pull request #437 from feliks-montez/bugfix/fix-serialboot-frames
flush rx buffer when bad crc and fix frame payload length
Florent Kermarrec [Wed, 25 Mar 2020 07:47:43 +0000 (08:47 +0100)]
test/test_targets: remove versa_ecp3.
Florent Kermarrec [Tue, 24 Mar 2020 19:04:18 +0000 (20:04 +0100)]
boards/targets: update SDRAM to use new GENSDRPHY and new ECP5PLL phase support.
Florent Kermarrec [Tue, 24 Mar 2020 19:02:57 +0000 (20:02 +0100)]
boards/platforms: remove versa_ecp3 (ECP3 no longer supported).
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).
Florent Kermarrec [Tue, 24 Mar 2020 18:09:05 +0000 (19:09 +0100)]
cores/clock/ECP5PLL: add phase support.
Florent Kermarrec [Tue, 24 Mar 2020 18:08:38 +0000 (19:08 +0100)]
build/lattice/common: change LatticeECPXDDROutputImpl from ECP3 to ECP5.
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.
Feliks [Tue, 24 Mar 2020 03:04:36 +0000 (23:04 -0400)]
flush rx buffer when bad crc and fix frame payload length
Florent Kermarrec [Mon, 23 Mar 2020 17:47:41 +0000 (18:47 +0100)]
soc/doc/csr: allow CSRField.reset to be a Migen Constant.
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.
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.
Florent Kermarrec [Sat, 21 Mar 2020 20:39:34 +0000 (21:39 +0100)]
targets: remove Etherbone imports.
Florent Kermarrec [Sat, 21 Mar 2020 18:55:00 +0000 (19:55 +0100)]
targets: switch to add_etherbone method.
Florent Kermarrec [Sat, 21 Mar 2020 18:54:36 +0000 (19:54 +0100)]
integration/soc: add add_etherbone method.
Florent Kermarrec [Sat, 21 Mar 2020 18:36:31 +0000 (19:36 +0100)]
integration/soc/add_ethernet: add name parameter (defaults to ethmac).
Florent Kermarrec [Sat, 21 Mar 2020 18:36:06 +0000 (19:36 +0100)]
targets: always use sys_clk_freq on SDRAM modules.
Florent Kermarrec [Sat, 21 Mar 2020 17:26:58 +0000 (18:26 +0100)]
targets: fix typos in previous changes.
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
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…
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
Florent Kermarrec [Fri, 20 Mar 2020 22:36:29 +0000 (23:36 +0100)]
targets: switch to add_ethernet method instead of EthernetSoC.
Florent Kermarrec [Fri, 20 Mar 2020 21:02:36 +0000 (22:02 +0100)]
targets: switch to SoCCore/add_sdram instead of SoCSDRAM.
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).
Florent Kermarrec [Fri, 20 Mar 2020 17:58:31 +0000 (18:58 +0100)]
targets/arty: use new ISERDESE2 MEMORY mode.
Florent Kermarrec [Fri, 20 Mar 2020 17:54:51 +0000 (18:54 +0100)]
Merge branch 'master' of github.com/enjoy-digital/litex
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
rob-ng15 [Fri, 20 Mar 2020 11:35:05 +0000 (11:35 +0000)]
Use <stdint.h> to provide structure sizes
rob-ng15 [Fri, 20 Mar 2020 11:34:24 +0000 (11:34 +0000)]
Use <stdint.h> for structure sizes
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.
Florent Kermarrec [Fri, 20 Mar 2020 08:58:09 +0000 (09:58 +0100)]
targets/nexys4ddr: use LiteXSoC's add_spi_sdcard method.
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.
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
Gabriel Somlo [Thu, 19 Mar 2020 23:13:47 +0000 (19:13 -0400)]
targets/nexys4ddr: add '--with-spi-sdcard' build option
Gabriel Somlo [Thu, 19 Mar 2020 22:04:27 +0000 (18:04 -0400)]
platforms/nexys4ddr: add spisdcard pins.
Synchronize with litex-boards commit #
57bcadb.
Gabriel Somlo [Thu, 19 Mar 2020 22:20:30 +0000 (18:20 -0400)]
targets/nexys4ddr: make sdcard reset conditional
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>
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.
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.
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>
Gabriel Somlo [Thu, 19 Mar 2020 23:24:22 +0000 (19:24 -0400)]
bios/boot.c: cosmetic: re-indent spisdcardboot() for consistency
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
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.
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).
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
Piotr Binkowski [Fri, 13 Mar 2020 14:34:44 +0000 (15:34 +0100)]
litex_sim: add support for hybrid mac
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
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>
Florent Kermarrec [Wed, 18 Mar 2020 18:05:54 +0000 (19:05 +0100)]
platforms/kcu105: fix pcie tx0 p/n swap.
rob-ng15 [Tue, 17 Mar 2020 09:51:11 +0000 (09:51 +0000)]
SPI hardware bitbanging from SD CARD
rob-ng15 [Tue, 17 Mar 2020 09:50:45 +0000 (09:50 +0000)]
SPI hardware bitbanging from SD CARD
rob-ng15 [Tue, 17 Mar 2020 09:50:16 +0000 (09:50 +0000)]
SPI hardware bitbanging from SD CARD
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
Piotr Esden-Tempski [Fri, 13 Mar 2020 05:35:04 +0000 (22:35 -0700)]
Updating the vendored wavedrom js files.
Florent Kermarrec [Thu, 12 Mar 2020 11:20:48 +0000 (12:20 +0100)]
soc/intergration: rename mr_memory_x parameter to 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
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.
Florent Kermarrec [Wed, 11 Mar 2020 11:57:29 +0000 (12:57 +0100)]
Merge branch 'master' of github.com/enjoy-digital/litex
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).
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
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
Florent Kermarrec [Wed, 11 Mar 2020 11:06:15 +0000 (12:06 +0100)]
cores/gpio: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 10:04:42 +0000 (11:04 +0100)]
cores/icap: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 09:58:22 +0000 (10:58 +0100)]
cores/spi: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 09:38:28 +0000 (10:38 +0100)]
cores/pwm: add CSR descriptions.
Florent Kermarrec [Wed, 11 Mar 2020 09:05:14 +0000 (10:05 +0100)]
cores/xadc: add CSR descriptions.
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>
Florent Kermarrec [Tue, 10 Mar 2020 16:02:28 +0000 (17:02 +0100)]
targets/kcu105: move cd_pll4x.
Florent Kermarrec [Tue, 10 Mar 2020 15:48:07 +0000 (16:48 +0100)]
targets/kcu105: simplify CRG using USIDELAYCTRL.
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.
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>
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>
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.
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
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
Florent Kermarrec [Tue, 10 Mar 2020 10:11:33 +0000 (11:11 +0100)]
cores/clock: add logging to visualize clkin/clkouts and computed config.