Florent Kermarrec [Mon, 18 Jun 2018 16:01:47 +0000 (18:01 +0200)]
soc/integration/cpu_interface: add shadow_base parameter
enjoy-digital [Mon, 18 Jun 2018 09:21:06 +0000 (11:21 +0200)]
Merge pull request #75 from xobs/bios-windows-build
soc: bios: fix windows build
Sean Cross [Mon, 18 Jun 2018 09:13:54 +0000 (17:13 +0800)]
soc: bios: fix windows build
The BIOS builds just fine on Windows, but afterwards tries to run
`chmod`. This command does not exist on Windows, and is unnecessary.
Add a conditional guard to prevent this command from running on Windows.
Signed-off-by: Sean Cross <sean@xobs.io>
Florent Kermarrec [Tue, 12 Jun 2018 13:39:22 +0000 (15:39 +0200)]
targets: change a7/k7ddrphy imports to s7ddrphy
Florent Kermarrec [Tue, 12 Jun 2018 08:54:20 +0000 (10:54 +0200)]
soc/cores/cpu: add add_sources static method
When creating SoC with multiple sub-SoC already generated, we need an
easy way to add cpu sources.
enjoy-digital [Wed, 30 May 2018 17:35:04 +0000 (19:35 +0200)]
Merge pull request #72 from bunnie/fix_riscv_boothelper
fix the vexriscv boot helper
bunnie [Wed, 30 May 2018 17:24:22 +0000 (01:24 +0800)]
fix the vexriscv boot helper
enjoy-digital [Mon, 28 May 2018 22:13:59 +0000 (00:13 +0200)]
Merge pull request #71 from DeanoC/master
Fix for missing connectors for arty boards
Deano Calver [Thu, 24 May 2018 18:55:52 +0000 (21:55 +0300)]
Fix for missing connectors for arty boards
Florent Kermarrec [Thu, 24 May 2018 06:10:05 +0000 (08:10 +0200)]
litex_term: cleanup getkey and revert default settings on KeyboardInterrupt
Florent Kermarrec [Wed, 9 May 2018 14:28:28 +0000 (16:28 +0200)]
README: add list of supported CPUs/Cores and add link to tutorials
Florent Kermarrec [Wed, 9 May 2018 13:39:25 +0000 (15:39 +0200)]
soc/integration/cpu_interface: use riscv64 toolchain instead of riscv32 (prebuild toolchain for windows can be found at gnutoolchains.com/)
Dolu1990 [Wed, 9 May 2018 12:31:05 +0000 (14:31 +0200)]
add VexRiscv support (imported/adapted from misoc)
Florent Kermarrec [Wed, 9 May 2018 12:39:31 +0000 (14:39 +0200)]
add VexRiscv submodule
Florent Kermarrec [Wed, 9 May 2018 11:25:38 +0000 (13:25 +0200)]
allow multiple riscv32 softcores (use picorv32 cpu_type instead of riscv32)
Florent Kermarrec [Tue, 1 May 2018 10:02:54 +0000 (12:02 +0200)]
build: use our own fhdl/verilog code (needed to avoid combinatorial loop in simulation)
Florent Kermarrec [Mon, 30 Apr 2018 22:46:26 +0000 (00:46 +0200)]
soc/intergration/soc_core: don't delete uart/timer0 interrupts
Florent Kermarrec [Mon, 30 Apr 2018 22:44:13 +0000 (00:44 +0200)]
xilinx/programmer: fix programmer
Florent Kermarrec [Thu, 12 Apr 2018 15:55:46 +0000 (17:55 +0200)]
build/xilinx/vivado: add vivado ip support
Florent Kermarrec [Thu, 12 Apr 2018 15:23:46 +0000 (17:23 +0200)]
soc_core: uncomment uart interrupt deletion
Florent Kermarrec [Wed, 4 Apr 2018 13:40:53 +0000 (15:40 +0200)]
gen/sim: fix import to use litex simulator instead of migen simulator
Florent Kermarrec [Mon, 12 Mar 2018 08:33:05 +0000 (09:33 +0100)]
build/xilinx/common/XilinxDDROutputImplS6: DDR_ALIGNMENT="C0" requires SRTYPE to be "ASYNC"
Florent Kermarrec [Thu, 8 Mar 2018 11:58:54 +0000 (12:58 +0100)]
bios/sdram: update kuddrphy initialization procedure
Florent Kermarrec [Wed, 7 Mar 2018 20:39:10 +0000 (21:39 +0100)]
soc/software/main: go to new line at startup
Florent Kermarrec [Wed, 7 Mar 2018 14:24:39 +0000 (15:24 +0100)]
software/bios/main: add missing space
Florent Kermarrec [Mon, 5 Mar 2018 08:59:06 +0000 (09:59 +0100)]
soc/integration/soc_core: improve error message for missing csrs
enjoy-digital [Mon, 5 Mar 2018 07:38:25 +0000 (08:38 +0100)]
Merge pull request #68 from mithro/improve-csr-missing-error-message
Improving error message when csr name is not found.
enjoy-digital [Sun, 4 Mar 2018 18:50:39 +0000 (19:50 +0100)]
Merge pull request #69 from mithro/conda-support
Adding conda environment and simple travis build
Tim 'mithro' Ansell [Sun, 4 Mar 2018 02:09:05 +0000 (18:09 -0800)]
travis: Adding some color.
Tim 'mithro' Ansell [Sun, 4 Mar 2018 01:37:43 +0000 (17:37 -0800)]
travis: Move the conda install into script so it can be folded.
Tim 'mithro' Ansell [Sun, 4 Mar 2018 00:46:38 +0000 (16:46 -0800)]
travis: Making the output more readable.
Tim 'mithro' Ansell [Sun, 4 Mar 2018 00:41:53 +0000 (16:41 -0800)]
travis: Build all the SoCs (without gateware).
- TODO: Build the simulator SoC.
Tim 'mithro' Ansell [Sun, 4 Mar 2018 00:20:27 +0000 (16:20 -0800)]
Adding a travis config which tests the conda environment still works.
Tim 'mithro' Ansell [Sun, 4 Mar 2018 00:19:47 +0000 (16:19 -0800)]
Adding conda environment example.
This is a very light weight way of doing something similar to the
litex-buildenv.
Tim 'mithro' Ansell [Sun, 4 Mar 2018 00:02:44 +0000 (16:02 -0800)]
Improving error message when csr name is not found.
Before;
```
"/usr/local/lib/python3.5/dist-packages/litex-0.1-py3.5.egg/litex/soc/integration/soc_core.py",
line 258, in get_csr_dev_address
return self.csr_map[name]
KeyError: 'core'
```
Now;
```
Traceback (most recent call last):
File "XXXX/github/enjoy-digital/litex/litex/soc/integration/soc_core.py", line 259, in get_csr_dev_address
return self.csr_map[name]
KeyError: 'ddrphy'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
...
File "XXXX/github/enjoy-digital/litex/litex/soc/interconnect/csr_bus.py", line 199, in scan
mapaddr = self.address_map(name, None)
File "XXXX/github/enjoy-digital/litex/litex/soc/integration/soc_core.py", line 269, in get_csr_dev_address
) from e
RuntimeError: Unable to find ddrphy in your SoC's csr address map.
Check BaseSoC.csr_map in XXXX/github/enjoy-digital/litex/litex/boards/targets/arty.py
Found l2_cache, timer0, ddrphy2, buttons, sdram, identifier_mem, uart, uart_phy, leds, crg in the csr_map
```
enjoy-digital [Sat, 3 Mar 2018 07:29:18 +0000 (08:29 +0100)]
Merge pull request #67 from cr1901/vivado-paths
xilinx/vivado: Provide a fallback mechanism for using the same root f…
enjoy-digital [Sat, 3 Mar 2018 07:28:57 +0000 (08:28 +0100)]
Merge pull request #65 from cr1901/tinyfpga-serial
platforms/tinyfpga_b: Move serial peripheral out of default I/O, make it
William D. Jones [Sat, 3 Mar 2018 02:48:49 +0000 (21:48 -0500)]
xilinx/vivado: Provide a fallback mechanism for using the same root for Vivado and ISE toolchains.
Florent Kermarrec [Fri, 2 Mar 2018 23:07:50 +0000 (00:07 +0100)]
build/xilinx/platform: fix merge
Tim Ansell [Fri, 2 Mar 2018 20:11:35 +0000 (12:11 -0800)]
Merge pull request #66 from cr1901/arty_s7
boards/arty_s7: Fix IOStandard on System Clock.
William D. Jones [Fri, 2 Mar 2018 18:31:24 +0000 (13:31 -0500)]
boards/arty_s7: Fix IOStandard on System Clock.
Florent Kermarrec [Thu, 1 Mar 2018 09:15:43 +0000 (10:15 +0100)]
README: add migen installation to quick start guide
Florent Kermarrec [Wed, 28 Feb 2018 22:45:26 +0000 (23:45 +0100)]
build/xilinx/vivado: revert toolchain_path
Florent Kermarrec [Wed, 28 Feb 2018 22:10:24 +0000 (23:10 +0100)]
build: fix merge
Florent Kermarrec [Wed, 28 Feb 2018 15:45:34 +0000 (16:45 +0100)]
build: merge with migen.build
27beffe7
Florent Kermarrec [Wed, 28 Feb 2018 13:11:58 +0000 (14:11 +0100)]
boards/kcu105: regroup sfp tx and rx
William D. Jones [Wed, 27 Dec 2017 20:11:36 +0000 (15:11 -0500)]
platforms/tinyfpga_b: Move serial peripheral out of default I/O, make it
optional via `add_extension`.
Florent Kermarrec [Fri, 23 Feb 2018 13:37:10 +0000 (14:37 +0100)]
README: add section for newcomers
Florent Kermarrec [Fri, 23 Feb 2018 13:15:41 +0000 (14:15 +0100)]
README: cleanup
Florent Kermarrec [Fri, 23 Feb 2018 13:08:13 +0000 (14:08 +0100)]
README: update, migen is no longer forked
Florent Kermarrec [Fri, 23 Feb 2018 12:38:19 +0000 (13:38 +0100)]
replace litex.gen imports with migen imports
Florent Kermarrec [Fri, 23 Feb 2018 12:37:26 +0000 (13:37 +0100)]
remove migen fork from litex
Florent Kermarrec [Fri, 23 Feb 2018 12:36:32 +0000 (13:36 +0100)]
bump to 0.2.dev
Florent Kermarrec [Thu, 22 Feb 2018 10:52:10 +0000 (11:52 +0100)]
uniformize with litex cores and make things more clear about what LiteX vs Migen/MiSoC
enjoy-digital [Wed, 21 Feb 2018 08:47:29 +0000 (09:47 +0100)]
Merge pull request #64 from q3k/q3k/axi4lite
Preliminary AXI4Lite support: CSR bridge
Sergiusz Bazanski [Wed, 21 Feb 2018 00:00:58 +0000 (00:00 +0000)]
Change AXI interface and tidy code
Inspired by parts of https://github.com/peteut/migen-misc/
Sergiusz Bazanski [Tue, 20 Feb 2018 21:27:51 +0000 (21:27 +0000)]
Preliminary AXI4Lite CSR bridge support
This change introduces an AXI4Lite to CSR bridge. Hopefully it will
become extended in the future with full AXI support and more structures
(Wishbone bridge, interconnect, ...). For now this will do.
The bridge has been simulated (and includes an FHDL testbench) and
tested in hardware (on a Zynq 7020).
enjoy-digital [Mon, 19 Feb 2018 11:27:25 +0000 (12:27 +0100)]
Merge pull request #60 from q3k/for-upstream/top-level-module-selection
Top module selection (for Verilator and Diamond)
enjoy-digital [Sat, 10 Feb 2018 20:37:38 +0000 (21:37 +0100)]
Merge pull request #57 from rohitk-singh/master
WIP - BIOS: Flashboot without main ram
Florent Kermarrec [Tue, 6 Feb 2018 18:17:54 +0000 (19:17 +0100)]
board/targets/nexys4ddr: use MT47H64M16
Florent Kermarrec [Tue, 6 Feb 2018 18:08:46 +0000 (19:08 +0100)]
boards/platforms/nexys4ddr: add user_sw, user_btn, fix ddr3
Florent Kermarrec [Tue, 6 Feb 2018 13:43:20 +0000 (14:43 +0100)]
boards: add nexys4ddr
enjoy-digital [Fri, 26 Jan 2018 00:58:37 +0000 (01:58 +0100)]
Merge pull request #61 from PaulSchulz/master
platform/arty.py: Move Pmod definitions to 'connectors' section.
enjoy-digital [Fri, 26 Jan 2018 00:57:50 +0000 (01:57 +0100)]
Merge pull request #63 from cr1901/arty_s7
boards/platforms: Add Arty S7 Board.
William D. Jones [Thu, 25 Jan 2018 23:36:32 +0000 (18:36 -0500)]
boards/platforms: Add Arty S7 Board.
Paul Schulz [Wed, 24 Jan 2018 03:02:42 +0000 (13:32 +1030)]
Merge branch 'master' of https://github.com/enjoy-digital/litex into upstream
Florent Kermarrec [Tue, 23 Jan 2018 09:39:13 +0000 (10:39 +0100)]
software/common: revert PYTHON to python3 (since breaking things)
Florent Kermarrec [Tue, 23 Jan 2018 09:33:05 +0000 (10:33 +0100)]
bios: fix riscv processor print
Florent Kermarrec [Tue, 23 Jan 2018 09:28:16 +0000 (10:28 +0100)]
sim: rename top module to dut and use --top-module parameter (needed for picorv32 simulation)
Paul Schulz [Tue, 23 Jan 2018 05:41:25 +0000 (16:11 +1030)]
platform/arty.py: Move Pmod definitions to 'connectors' section.
Sergiusz Bazanski [Tue, 23 Jan 2018 01:17:04 +0000 (01:17 +0000)]
Specify top-level module in Lattice Diemond build script.
When building multi-source files the toolchain gets confused as to which
module is top-level. This ensures that the build_name of the design is
selected.
Sergiusz Bazanski [Tue, 23 Jan 2018 01:15:28 +0000 (01:15 +0000)]
Build top module as 'dut' in Verilator and set it as top-level.
When building a design with PicoRV32 we end up with multiple top-level
modules and Verilator becomes confused as to which is the right one.
This change ensures the dut.v generated by the sim build process has
it's top-level name set to 'dut' and that verilator is invoked with this
name.
enjoy-digital [Tue, 23 Jan 2018 00:43:23 +0000 (01:43 +0100)]
Merge pull request #59 from q3k/for-upstream/multiple-synthesis-directives
Allow for multiple synthesis directives in specials.
Sergiusz Bazanski [Tue, 23 Jan 2018 00:23:20 +0000 (00:23 +0000)]
Allow for multiple synthesis directives in specials.
This is needed to specify timing constraints on some Lattice Diamond
library specials, like the EHXPLLL.
To keep backwards compatibility we allow the directive to still be a
single string. If it's not, we assume it's an iterable.
Florent Kermarrec [Mon, 22 Jan 2018 23:35:20 +0000 (00:35 +0100)]
minor cleanup
enjoy-digital [Mon, 22 Jan 2018 21:09:46 +0000 (22:09 +0100)]
Merge pull request #58 from q3k/for-upstream/picorv32-support
Implement IRQ for PicoRV32 on LiteX
Sergiusz Bazanski [Mon, 22 Jan 2018 18:31:18 +0000 (18:31 +0000)]
Implement IRQ software support for RISC-V.
Well, at least PicoRV32-specific. Turns out there is no RISC-V
specification for simple microcontroller-like interrupts, so PicoRV32
implements its' own based on custom opcodes.
It's somewhat esoteric, and for example doesn't offer a global interrupt
enable/disable. For this we implement a thin wrapper in assembly and
then expose it via a few helpers in irq.h.
Sergiusz Bazanski [Mon, 22 Jan 2018 18:35:47 +0000 (18:35 +0000)]
Import PicoRV32-specific instruction macros.
These come from the PicoRV32 repo and are released under the public
domain [1].
[1] - https://github.com/cliffordwolf/picorv32/blob/
70f3c33ac8348a46eeca92796721dcf8cbcc326c/firmware/custom_ops.S
Sergiusz Bazanski [Mon, 22 Jan 2018 18:19:40 +0000 (18:19 +0000)]
Write init files that respect CPU's endianness.
This is required for PicoRV32 support. We also drive-by enable
explicit specification of run= in Builder.build() by callers.
Sergiusz Bazanski [Mon, 22 Jan 2018 18:20:42 +0000 (18:20 +0000)]
Set the MABI and MArch of the riscv target.
Again, this should be tunable, and synchronized with the core settings.
Sergiusz Bazanski [Mon, 22 Jan 2018 18:15:53 +0000 (18:15 +0000)]
Enable hardware multiplier and divider in PicoRV32
This should become tunable later once we can configure whether we link
in the soft mul library or not.
Sergiusz Bazanski [Sun, 21 Jan 2018 21:46:25 +0000 (21:46 +0000)]
Replace __riscv__ macros with __riscv.
The __riscv__ form is deprecated [1].
[1] - https://github.com/riscv/riscv-toolchain-conventions#cc-preprocessor-definitions
Sergiusz Bazanski [Sun, 21 Jan 2018 21:46:01 +0000 (21:46 +0000)]
Export trap signal from PicoRV32.
This is useful for handling crashes from hardware.
Sergiusz Bazanski [Mon, 22 Jan 2018 18:35:24 +0000 (18:35 +0000)]
Bump PicoRV32 version.
Ewen McNeill [Fri, 19 Jan 2018 01:37:53 +0000 (12:37 +1100)]
BIOS: Flashboot without main ram
Modified flashboot() to skip copy to main ram if there is no main
ram, and instead execute in place out of SPI flash. (For this to
work the linker .ld will also need to redirect references to be
inside the SPI flash mapping.)
Florent Kermarrec [Fri, 19 Jan 2018 17:41:13 +0000 (18:41 +0100)]
software/bios: add litex logo
enjoy-digital [Fri, 19 Jan 2018 16:59:47 +0000 (17:59 +0100)]
Merge pull request #56 from cr1901/mimasv2
Add mimasv2 platform (pulled from litex-buildenv).
William D. Jones [Fri, 19 Jan 2018 11:16:04 +0000 (06:16 -0500)]
Add mimasv2 platform (pulled from litex-buildenv).
Tim Ansell [Thu, 18 Jan 2018 05:33:02 +0000 (16:33 +1100)]
Merge pull request #53 from mithro/allow-forcing-colorama
Support forcing colorama colors on.
Tim 'mithro' Ansell [Thu, 18 Jan 2018 03:41:45 +0000 (14:41 +1100)]
Support forcing colorama colors on.
This is needed if you want colors but are using pipes and similar.
Tim Ansell [Thu, 18 Jan 2018 02:40:28 +0000 (13:40 +1100)]
Merge pull request #52 from ewen-naos-nz/tftp-alt-port
BIOS: Support alternate TFTP server port
Ewen McNeill [Thu, 18 Jan 2018 02:10:28 +0000 (13:10 +1100)]
BIOS: TFTP: try UDP/69 if specified port fails
Ewen McNeill [Thu, 18 Jan 2018 02:09:34 +0000 (13:09 +1100)]
BIOS: set TFTP_SERVER_PORT from enviroment
Ewen McNeill [Thu, 18 Jan 2018 01:03:35 +0000 (12:03 +1100)]
BIOS: allow BIOS to specify TFTP server port
Swaps hard coded PORT_OUT in tftp.c for parameter on the tftp_get()
and tftp_put() functions. Allow TFTP_SERVER_PORT used by BIOS to be
set at compile time from compiler defines.
enjoy-digital [Tue, 16 Jan 2018 20:37:24 +0000 (21:37 +0100)]
Merge pull request #51 from felixheld/liteeth-untangling
Include the ethernet related header files conditionally
Felix Held [Tue, 16 Jan 2018 03:33:49 +0000 (14:33 +1100)]
Include the ethernet related header files conditionally
Only including those header files in the litex firmware is the first step to
move the firmware parts of liteeth to the liteeth tree.
Tim Ansell [Sat, 13 Jan 2018 08:12:50 +0000 (19:12 +1100)]
Merge pull request #49 from mithro/fix-uart-override
soc_core: Don't fail if name is the same.
Tim 'mithro' Ansell [Sat, 13 Jan 2018 08:10:57 +0000 (19:10 +1100)]
soc_core: Don't fail if name is the same.
Otherwise you can't override the UART with another UART, you get an
error like;
```
File "/home/tansell/github/timvideos/HDMI2USB-litex-firmware/third_party/litex/litex/soc/integration/soc_core.py", line 176, in __init__
interrupt, mod_name, interrupt_rmap[interrupt]))
AssertionError: Interrupt vector conflict for IRQ 2, user defined uart conflicts with SoC inbuilt uart
```
Tim Ansell [Sat, 13 Jan 2018 08:07:04 +0000 (19:07 +1100)]
Merge pull request #48 from mithro/fix-constants
cpu_interface: Fix indenting on constant generation.
Tim 'mithro' Ansell [Sat, 13 Jan 2018 08:05:26 +0000 (19:05 +1100)]
cpu_interface: Fix indenting on constant generation.
This was preventing constants from getting added to the csr.h header
file.