Florent Kermarrec [Mon, 24 Sep 2018 21:22:59 +0000 (23:22 +0200)]
soc/cores/clock: create specific S7IDELAYCTRL module
Florent Kermarrec [Mon, 24 Sep 2018 21:20:12 +0000 (23:20 +0200)]
soc/cores/clock: add S7MMCM support
Florent Kermarrec [Mon, 24 Sep 2018 20:58:23 +0000 (22:58 +0200)]
soc/cores/clocks/S7PLL: add speedgrade support, default to -1 (slowest)
Florent Kermarrec [Mon, 24 Sep 2018 20:49:30 +0000 (22:49 +0200)]
targets/arty: use new clock abstraction module (compile, untested on board)
Florent Kermarrec [Mon, 24 Sep 2018 18:25:57 +0000 (20:25 +0200)]
soc/cores: init clock abstraction module
Florent Kermarrec [Mon, 24 Sep 2018 10:43:29 +0000 (12:43 +0200)]
sim/verilator: add multithread support (default=1)
Florent Kermarrec [Mon, 24 Sep 2018 08:59:32 +0000 (10:59 +0200)]
soc_core: use cpu instead of cpu_or_bridge internally (keep retro-compat for now)
Florent Kermarrec [Mon, 24 Sep 2018 08:58:10 +0000 (10:58 +0200)]
boards/targets: uniformize things between targets
Florent Kermarrec [Mon, 24 Sep 2018 06:01:32 +0000 (08:01 +0200)]
soc_core/get_mem_data: add endianness support and use it in builder/initialize_rom to avoid duplication
Florent Kermarrec [Mon, 24 Sep 2018 00:45:05 +0000 (02:45 +0200)]
cores/cpu: add software informations to cpu and simplify cpu_interface
Florent Kermarrec [Mon, 24 Sep 2018 00:03:30 +0000 (02:03 +0200)]
boards/plarforms: fix issues found while testing simple design on all platforms
Florent Kermarrec [Mon, 24 Sep 2018 00:01:47 +0000 (02:01 +0200)]
test/test_targets: test simple design with all platforms
Florent Kermarrec [Mon, 24 Sep 2018 00:01:15 +0000 (02:01 +0200)]
soc_core: add uart-stub argument
Florent Kermarrec [Sun, 23 Sep 2018 23:24:51 +0000 (01:24 +0200)]
setup.py: add litex_simple exec (to ease building simple design)
Florent Kermarrec [Sun, 23 Sep 2018 23:15:33 +0000 (01:15 +0200)]
test/test_targets: update and reorganize targets
Florent Kermarrec [Sun, 23 Sep 2018 08:23:00 +0000 (10:23 +0200)]
ease RemoteClient import
enjoy-digital [Sun, 23 Sep 2018 07:59:37 +0000 (09:59 +0200)]
Merge pull request #108 from xobs/use-csr-accessors
Use csr accessors when generating `csr.h`
Sean Cross [Sat, 22 Sep 2018 14:33:15 +0000 (16:33 +0200)]
csr: use external csr_readl()/csr_writel() if present
If the variable CSR_ACCESSORS_DEFINED is set, then use external
csr_readl() and csr_writel() instead of locally-generated inline
functions.
With this patch, csr.h can be used with etherbone.h and litex_server to
prototype drivers remotely.
Signed-off-by: Sean Cross <sean@xobs.io>
Sean Cross [Sat, 22 Sep 2018 14:30:05 +0000 (16:30 +0200)]
csr: use readl()/writel() accessors for accessing mmio
Instead of directly dereferencing pointers, use variants on readl()/writel().
This way we can replace these functions with others for remote access
when writing drivers and code outside of the litex environment.
Signed-off-by: Sean Cross <sean@xobs.io>
Tim Ansell [Sat, 22 Sep 2018 14:21:35 +0000 (15:21 +0100)]
Merge pull request #106 from cr1901/data-crt0
libbase/crt0-lm32.S: Add provisions for loading .data from flash.
William D. Jones [Fri, 21 Sep 2018 14:14:50 +0000 (10:14 -0400)]
libbase/crt0-lm32.S: Add provisions for loading .data from flash.
:100644 100644
e0cd7153 34428845 M litex/soc/software/libbase/crt0-lm32.S
Florent Kermarrec [Fri, 21 Sep 2018 05:37:31 +0000 (07:37 +0200)]
README: add migen/litex clarification
Florent Kermarrec [Thu, 20 Sep 2018 10:20:48 +0000 (12:20 +0200)]
targets/sim: generate analyzer.csv
Florent Kermarrec [Thu, 20 Sep 2018 09:17:18 +0000 (11:17 +0200)]
targets/sim: generate csr.csv
Florent Kermarrec [Wed, 19 Sep 2018 23:14:00 +0000 (01:14 +0200)]
targets/sim: add rom-init
Florent Kermarrec [Wed, 19 Sep 2018 22:49:38 +0000 (00:49 +0200)]
targets/sim: add ram-init param to allow initializing ram from file (faster than tftp)
Florent Kermarrec [Wed, 19 Sep 2018 22:46:06 +0000 (00:46 +0200)]
integration/soc_core: add get_mem_data function to read memory content from file
Florent Kermarrec [Wed, 19 Sep 2018 21:59:42 +0000 (23:59 +0200)]
soc/intergration/builder: fix when no sdram
Florent Kermarrec [Wed, 19 Sep 2018 20:19:51 +0000 (22:19 +0200)]
targets/sim: merge in a single class and ease configuration
Florent Kermarrec [Wed, 19 Sep 2018 17:21:14 +0000 (19:21 +0200)]
Merge branch 'master' of github.com/enjoy-digital/litex
Florent Kermarrec [Wed, 19 Sep 2018 17:19:50 +0000 (19:19 +0200)]
targets: replace MiniSoC with EthernetSoC
Florent Kermarrec [Wed, 19 Sep 2018 17:17:32 +0000 (19:17 +0200)]
targets/sim: add EtherboneSoC target (allow accessing wishbone over in simulation with litex_server)
enjoy-digital [Tue, 18 Sep 2018 06:19:09 +0000 (08:19 +0200)]
Merge pull request #101 from cr1901/icestorm-migen-pull
Icestorm Improvements
William D. Jones [Tue, 18 Sep 2018 01:17:24 +0000 (21:17 -0400)]
Pull in
b2740d9 from Migen. nextpnr now default, write out build scripts on dry run.
Florent Kermarrec [Thu, 13 Sep 2018 04:33:54 +0000 (06:33 +0200)]
bios/sdram: mode sdhw()
Florent Kermarrec [Thu, 13 Sep 2018 04:30:37 +0000 (06:30 +0200)]
bios/sdram: add missing #ifdef
Florent Kermarrec [Thu, 13 Sep 2018 03:31:35 +0000 (05:31 +0200)]
targets: self.pll_sys --> pll_sys
Florent Kermarrec [Thu, 13 Sep 2018 03:26:51 +0000 (05:26 +0200)]
bios/sdram: show all read scans when failing.
Florent Kermarrec [Wed, 12 Sep 2018 04:02:23 +0000 (06:02 +0200)]
cpu/lm32: re-enable multiplier/divider in minimal variant (does not seem to work correctly on hardware otherwise)
Florent Kermarrec [Sun, 9 Sep 2018 00:10:50 +0000 (02:10 +0200)]
soc_sdram: update with litedram
enjoy-digital [Sat, 8 Sep 2018 01:55:23 +0000 (03:55 +0200)]
Merge pull request #99 from cr1901/mk-copy-main-ram
Add COPY_TO_MAIN_RAM generated Makefile variable to distinguish systems with/without "main_ram" region.
William D. Jones [Sat, 8 Sep 2018 01:49:24 +0000 (21:49 -0400)]
Add COPY_TO_MAIN_RAM generated Makefile variable to distinguish systems with/without main_ram region.
enjoy-digital [Sat, 8 Sep 2018 01:48:04 +0000 (03:48 +0200)]
Merge pull request #100 from cr1901/tinyprog-fix
lattice/programmer: Use --program-image option with tinyprog if addre…
Florent Kermarrec [Fri, 7 Sep 2018 09:51:17 +0000 (11:51 +0200)]
soc_sdram: revert vivado l2 cache workaround (still seems to cause issues on some cases...)
Florent Kermarrec [Fri, 7 Sep 2018 08:37:15 +0000 (10:37 +0200)]
targets: pass endianness to LiteEThMAC, tftp working with RISC-V, still need to fix txlen
William D. Jones [Fri, 7 Sep 2018 08:05:49 +0000 (04:05 -0400)]
lattice/programmer: Use --program-image option with tinyprog if address is given.
Jean-François Nguyen [Mon, 3 Sep 2018 18:31:16 +0000 (20:31 +0200)]
libnet/microudp: (WIP) fix endianness issues
enjoy-digital [Thu, 6 Sep 2018 16:23:29 +0000 (18:23 +0200)]
Merge pull request #98 from jfng/fix_typo
fix typo and unused include
Jean-François Nguyen [Thu, 6 Sep 2018 15:07:14 +0000 (17:07 +0200)]
fix typo and unused include
Florent Kermarrec [Thu, 6 Sep 2018 14:40:30 +0000 (16:40 +0200)]
cpu/minerva: add workaround on import until code is released
Florent Kermarrec [Thu, 6 Sep 2018 06:48:14 +0000 (08:48 +0200)]
setup.py: create litex_sim exec to ease simulation
Jean-François Nguyen [Wed, 5 Sep 2018 18:36:17 +0000 (20:36 +0200)]
add Minerva support
Florent Kermarrec [Wed, 5 Sep 2018 11:01:51 +0000 (13:01 +0200)]
litex_server: update pcie and remove bar_size parameter
Tim Ansell [Tue, 4 Sep 2018 03:49:33 +0000 (20:49 -0700)]
Merge pull request #96 from cr1901/tinyfpga_bx
build/platforms: Add TinyFPGA BX board and programmer.
William D. Jones [Tue, 28 Aug 2018 21:08:45 +0000 (17:08 -0400)]
build/platforms: Add TinyFPGA BX board and programmer.
Tim Ansell [Tue, 4 Sep 2018 03:13:45 +0000 (20:13 -0700)]
Merge pull request #95 from cr1901/lm32-lite
Add lm32 "lite" variant, remove mult/div from "minimal" and update compiler flags accordingly.
William D. Jones [Mon, 3 Sep 2018 23:48:19 +0000 (19:48 -0400)]
Add lm32 "lite" variant, remove mult/div from "minimal" and update compiler flags accordingly.
Florent Kermarrec [Fri, 31 Aug 2018 06:44:22 +0000 (08:44 +0200)]
README: update
enjoy-digital [Tue, 28 Aug 2018 09:46:35 +0000 (11:46 +0200)]
Merge pull request #94 from cr1901/nextpnr
lattice/icestorm: Add nextpnr pnr as alternate pnr tool.
William D. Jones [Tue, 28 Aug 2018 09:17:32 +0000 (05:17 -0400)]
lattice/icestorm: Add nextpnr pnr as alternate pnr tool.
Tim Ansell [Fri, 24 Aug 2018 04:08:28 +0000 (14:08 +1000)]
Merge pull request #93 from phlipped/master
Fix URL for liteUSB
phlipped [Fri, 24 Aug 2018 04:03:16 +0000 (14:03 +1000)]
Fix URL for liteUSB
Tim Ansell [Thu, 23 Aug 2018 03:17:40 +0000 (13:17 +1000)]
Merge pull request #91 from cr1901/ignore-fix
.gitignore: litex/build contains valid source, so exclude from .gitig…
Tim Ansell [Thu, 23 Aug 2018 03:15:49 +0000 (13:15 +1000)]
Merge pull request #92 from cr1901/l2-gate
software/bios: Gate flush_l2_cache() if L2 Cache isn't present.
William D. Jones [Thu, 23 Aug 2018 03:04:20 +0000 (23:04 -0400)]
.gitignore: litex/build contains valid source, so exclude from .gitignore.
William D. Jones [Thu, 23 Aug 2018 03:03:08 +0000 (23:03 -0400)]
software/bios: Gate flush_l2_cache() if L2 Cache isn't present.
Florent Kermarrec [Wed, 22 Aug 2018 21:15:32 +0000 (23:15 +0200)]
bios/sdram: improve/simplify read window selection
Compute a score for each window and select the best
Florent Kermarrec [Wed, 22 Aug 2018 13:20:28 +0000 (15:20 +0200)]
sim: run as root only when needed (ethernet module present)
Florent Kermarrec [Wed, 22 Aug 2018 12:28:37 +0000 (14:28 +0200)]
builder: change call to get_sdram_phy_c_header and also pass timing_settings
Florent Kermarrec [Wed, 22 Aug 2018 11:40:22 +0000 (13:40 +0200)]
soc_sdram: cosmetic
Florent Kermarrec [Wed, 22 Aug 2018 11:28:23 +0000 (13:28 +0200)]
soc_sdram: vivado is now able to implement the l2_cache correctly (tested with vivado 2017.2 and >)
Florent Kermarrec [Tue, 21 Aug 2018 17:10:22 +0000 (19:10 +0200)]
soc_core: add cpu_endianness
Florent Kermarrec [Tue, 21 Aug 2018 16:15:57 +0000 (18:15 +0200)]
builder: get_sdram_phy_header renamed to get_sdram_phy_c_header
Florent Kermarrec [Tue, 21 Aug 2018 12:52:28 +0000 (14:52 +0200)]
soc_sdram: use new LiteDRAMWishbone2Native and port.data_width
Florent Kermarrec [Tue, 21 Aug 2018 09:04:15 +0000 (11:04 +0200)]
vexriscv: update
Florent Kermarrec [Mon, 20 Aug 2018 13:36:51 +0000 (15:36 +0200)]
soc/integration: move sdram_init to litedram
Florent Kermarrec [Sat, 18 Aug 2018 12:15:43 +0000 (14:15 +0200)]
Vexriscv: update csr-defs.h
Florent Kermarrec [Sat, 18 Aug 2018 12:14:00 +0000 (14:14 +0200)]
update Vexriscv
Florent Kermarrec [Sat, 18 Aug 2018 11:45:22 +0000 (13:45 +0200)]
bios/sdram: changes to ease manual read window selection
Florent Kermarrec [Fri, 17 Aug 2018 14:08:32 +0000 (16:08 +0200)]
litex_server: allow multiple clients to connect to the same server
Florent Kermarrec [Fri, 17 Aug 2018 06:32:32 +0000 (08:32 +0200)]
cpu/lm32: add minimal variant with no i/d cache, pipelined barrel shifter and multiplier (useful to build SoC on small FPGAs like ice40)
Florent Kermarrec [Thu, 16 Aug 2018 17:47:43 +0000 (19:47 +0200)]
bios/boot: flush all caches before running from ram
Florent Kermarrec [Thu, 16 Aug 2018 13:13:27 +0000 (15:13 +0200)]
sim/verilator: catch ctrl-c on exit and revert default termios settings
Florent Kermarrec [Thu, 16 Aug 2018 08:03:43 +0000 (10:03 +0200)]
cpu_interace: use riscv64-unknown-elf if available else riscv32-unknown-elf
Florent Kermarrec [Tue, 14 Aug 2018 16:33:28 +0000 (18:33 +0200)]
bios/sdram: fix read_level_scan result
enjoy-digital [Sun, 12 Aug 2018 17:34:52 +0000 (19:34 +0200)]
Merge pull request #86 from pgielda/patch-1
Fix generating csr.csv file
Peter Gielda [Sun, 12 Aug 2018 11:37:39 +0000 (13:37 +0200)]
Fix generating csr.csv file
Fix generating csr.csv file when no absolute path is given.
Florent Kermarrec [Wed, 8 Aug 2018 06:53:54 +0000 (08:53 +0200)]
soc/intergration/cpu_interface: typo
Florent Kermarrec [Tue, 7 Aug 2018 07:02:09 +0000 (09:02 +0200)]
bios/main: use edata instead of erodata
Florent Kermarrec [Tue, 7 Aug 2018 06:59:34 +0000 (08:59 +0200)]
picorv32: add reset signal
Florent Kermarrec [Mon, 6 Aug 2018 10:23:50 +0000 (12:23 +0200)]
soc/software/bios: add reboot command
Florent Kermarrec [Mon, 6 Aug 2018 10:23:16 +0000 (12:23 +0200)]
soc/integration/soc_core: add Controller with reset, scratch and bus_errors registers
Florent Kermarrec [Mon, 6 Aug 2018 10:21:18 +0000 (12:21 +0200)]
soc/interconnect/wishbone: add Timeout to avoid stalling bus when not responding and generate error.
Florent Kermarrec [Mon, 6 Aug 2018 10:19:23 +0000 (12:19 +0200)]
soc/cores/cpu: add reset signal
enjoy-digital [Fri, 27 Jul 2018 09:59:28 +0000 (11:59 +0200)]
Merge pull request #81 from xobs/vexriscv-to-wishbone
Push Vexriscv debug directly on the Wishbone bus
Sean Cross [Fri, 27 Jul 2018 07:21:19 +0000 (15:21 +0800)]
tools: remove vexriscv_debug
This program is no longer needed.
The `openocd_vexriscv` package natively supports `etherbone`, and now
that the vexriscv debug module is available on Wishbone instead of as a
CSR, this module no longer works.
This change simplifies both tooling (because there is one fewer program
to run) and integration (because you don't need to modify your CSRs
anymore, just `register_mem()`.)
Signed-off-by: Sean Cross <sean@xobs.io>
Sean Cross [Fri, 27 Jul 2018 07:02:31 +0000 (15:02 +0800)]
vexriscv: reset wishbone bus on CPU reset
If the CPU is resetting during a Wishbone transfer, assert the ERR line.
Because the resetOut line is likely multiple cycles long, this should
give Wishbone enough time to finish its transfer, which will cause d.stb
and i.stb to go to 0, which will return d_err and i_err to 0.
Signed-off-by: Sean Cross <sean@xobs.io>
Sean Cross [Thu, 19 Jul 2018 09:47:28 +0000 (17:47 +0800)]
vexriscv: put debug bus directly on wishbone bus
By placing the VexRiscv debug bus on the Wishbone bus, the Etherbone
core can access 32-bit values directly from the core. Additionally,
both reading and writing are supported without the need to do a SYNC
register as before.
Additionally, the address of the Wishbone bus won't move around anymore,
as it's fixed when doing `self.register_mem()`.
Signed-off-by: Sean Cross <sean@xobs.io>
Florent Kermarrec [Fri, 20 Jul 2018 08:11:41 +0000 (10:11 +0200)]
add litex_setup script to clone and install Migen, LiteX and LiteX's cores
Florent Kermarrec [Fri, 20 Jul 2018 08:01:33 +0000 (10:01 +0200)]
build/generic_platform: use list for sources instead of set
Ideally, we want to use an ordered set (to be able to keep compilation order), to avoid using an external package, we use a list.