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.
Tim Ansell [Sat, 13 Jan 2018 02:29:29 +0000 (13:29 +1100)]
Merge pull request #47 from felixheld/indentation-fixes
Fix all remaining indentation issues in python code
Felix Held [Sat, 13 Jan 2018 02:19:36 +0000 (13:19 +1100)]
Fix all remaining indentation issues in python code
I ran a script that shouldn't have missed any tab in the python source files.
Chris Ballance [Fri, 12 Jan 2018 18:23:08 +0000 (19:23 +0100)]
bios/sdram: make read leveling robust for KUS SDRAM
Increases the initial delay step into the valid read window as
with the original delay I was not getting out of the noisy
transition window, as evidenced by seeing read delay windows
of only 8 LSB ~10% of the time, leading to failing memory
tests
Tim Ansell [Fri, 12 Jan 2018 03:08:03 +0000 (14:08 +1100)]
Merge pull request #44 from felixheld/nexys_video-dram-fix
Fix DDR3 on nexys_video
Tim Ansell [Fri, 12 Jan 2018 03:07:32 +0000 (14:07 +1100)]
Merge pull request #45 from felixheld/arty-ddr3-fix
fix DDR3 on arty
Felix Held [Fri, 12 Jan 2018 02:54:10 +0000 (13:54 +1100)]
fix DDR3 on arty
Felix Held [Fri, 12 Jan 2018 02:33:13 +0000 (13:33 +1100)]
fix DDR3 on nexys_video
enjoy-digital [Thu, 11 Jan 2018 07:21:46 +0000 (08:21 +0100)]
Merge pull request #43 from felixheld/programmer-error-fix
fix the unsupported programmer case for kc705 and minispartan6
Felix Held [Thu, 11 Jan 2018 07:00:59 +0000 (18:00 +1100)]
fix the unsupported programmer case for kc705 and minispartan6
Tim Ansell [Thu, 11 Jan 2018 06:46:21 +0000 (17:46 +1100)]
Merge pull request #42 from felixheld/requirements-fix
add pyserial to the package requirements
Felix Held [Thu, 11 Jan 2018 06:43:16 +0000 (17:43 +1100)]
add pyserial to the package requirements
litex_term requires pyserial
Florent Kermarrec [Mon, 8 Jan 2018 16:03:19 +0000 (17:03 +0100)]
build/xilinx/vivado: only generate constraints that are not empty
Florent Kermarrec [Mon, 8 Jan 2018 11:04:33 +0000 (12:04 +0100)]
bios/sdram: revert capability to do manual read leveling since still needed with some targets
Florent Kermarrec [Mon, 8 Jan 2018 10:43:49 +0000 (11:43 +0100)]
bios/sdram: fix data error reporting
Florent Kermarrec [Mon, 8 Jan 2018 10:43:13 +0000 (11:43 +0100)]
bump year
Florent Kermarrec [Sat, 6 Jan 2018 00:33:02 +0000 (01:33 +0100)]
build: add Inverted property to IOs to ease inverting signals and propagate property to cores
Florent Kermarrec [Sat, 30 Dec 2017 17:41:49 +0000 (18:41 +0100)]
soc/integration/soc_core: avoid removing uart interrupts (break some designs)
enjoy-digital [Sat, 30 Dec 2017 10:19:12 +0000 (11:19 +0100)]
Merge pull request #40 from mithro/or1k-linux
cpu: Adding "variant" support.
enjoy-digital [Sat, 30 Dec 2017 10:17:41 +0000 (11:17 +0100)]
Merge pull request #41 from cr1901/python-3.6
fhdl/tracer: Import Python 3.5/3.6 version guards from Migen.
William D. Jones [Sat, 30 Dec 2017 00:56:52 +0000 (19:56 -0500)]
fhdl/tracer: Import Python 3.5/3.6 version guards from Migen.
Tim 'mithro' Ansell [Tue, 26 Sep 2017 00:01:36 +0000 (10:01 +1000)]
cpu: Adding "variant" support.
It is useful to support slightly different variants of the CPU
configurations. This adds a "cpu_variant" option.
For the mor1k we now have the default mor1k configuration and the
"linux" variant which enables the features needed for Linux support on
the mor1k.
Currently there are no variants for the lm32, but we will likely add a
"tiny" variant for usage on the iCE40.
Tim Ansell [Fri, 29 Dec 2017 22:57:42 +0000 (23:57 +0100)]
Merge pull request #39 from mithro/master
Wait longer before giving up on the 2nd tftp block.
Greg Darke [Mon, 6 Nov 2017 00:55:26 +0000 (16:55 -0800)]
Wait longer before giving up on the 2nd tftp block.
Previously we would wait the same number of iterations as it took us to
receive the first data block after sending the request. When using the
build in tftp server in qemu, the first wait loop succeeds (and thus
breaks when 'i' is still 0.
Since the counter was never reset between the first and second data
block, under qemu the tftp_get call would fail before ever checking if
we have received the second block of data.
Now that we initialise 'i' to 12M, we ensure that we wait the same
amount of time for the second data block as it previously did for the
third (and subsequent) blocks.
Florent Kermarrec [Fri, 29 Dec 2017 16:13:58 +0000 (17:13 +0100)]
bios/sdram: use same initialization procedure for artix7 than kintex7 excepting write leveling that is not done
Florent Kermarrec [Thu, 28 Dec 2017 21:42:58 +0000 (22:42 +0100)]
soc/integration/builder: don't build bios is user is providing rom data
enjoy-digital [Wed, 27 Dec 2017 16:52:37 +0000 (17:52 +0100)]
Merge pull request #38 from cr1901/mercury
Add Mercury baseboard support from Migen, import fixes.
Tim Ansell [Wed, 27 Dec 2017 14:44:41 +0000 (15:44 +0100)]
Merge pull request #37 from bunnie/add_tracelength
Add tracelength report generation by default to help with board layout
bunnie [Wed, 27 Dec 2017 14:40:39 +0000 (22:40 +0800)]
Add tracelength report generation by default to help with board layout
Florent Kermarrec [Tue, 26 Dec 2017 23:26:30 +0000 (00:26 +0100)]
boards/platforms/tinyfpga_b: add defaut serial pins
Florent Kermarrec [Tue, 26 Dec 2017 23:26:07 +0000 (00:26 +0100)]
build/lattice/icestorm: fix missing toolchain_path
William D. Jones [Tue, 19 Dec 2017 01:36:59 +0000 (20:36 -0500)]
Add TinyFPGA platform based on Migen.
William D. Jones [Tue, 19 Dec 2017 01:36:21 +0000 (20:36 -0500)]
Import Icestorm backend improvements from Migen.
Florent Kermarrec [Tue, 26 Dec 2017 17:11:47 +0000 (18:11 +0100)]
soc/integration/soc_core: add uart_name parameters (allow selecting uart without modifications in platform file)
Florent Kermarrec [Tue, 19 Dec 2017 09:29:29 +0000 (10:29 +0100)]
build/xilinx/programmer: fix settings in run_vivado (update)
William D. Jones [Tue, 19 Dec 2017 00:30:25 +0000 (19:30 -0500)]
Add Mercury baseboard support from Migen, import fixes.
Florent Kermarrec [Sat, 16 Dec 2017 12:20:45 +0000 (13:20 +0100)]
build/xilinx: add support for edif/ngc files
Florent Kermarrec [Sun, 10 Dec 2017 02:01:53 +0000 (03:01 +0100)]
cpu/picorv32: adapt to current version, some cleanup
Florent Kermarrec [Sun, 10 Dec 2017 01:52:01 +0000 (02:52 +0100)]
cpu: cleanup wrappers
Florent Kermarrec [Thu, 7 Dec 2017 16:57:23 +0000 (17:57 +0100)]
soc/integration/soc_core: add integrated_rom_init to allow initializing rom with custom code
Florent Kermarrec [Wed, 6 Dec 2017 21:22:05 +0000 (22:22 +0100)]
targets/sim: fix
Florent Kermarrec [Sun, 3 Dec 2017 22:06:22 +0000 (23:06 +0100)]
soc/integration/soc_core: make nmi interrupt optional
Florent Kermarrec [Fri, 24 Nov 2017 12:16:58 +0000 (13:16 +0100)]
soc/integration: add integrated_main_ram_init parameter to allow using main_ram with pre-initialized firmware
Florent Kermarrec [Thu, 23 Nov 2017 16:41:35 +0000 (17:41 +0100)]
soc/interconnect/stream: fix specific cases for last/first signal in UpConverter
Tim Ansell [Thu, 9 Nov 2017 02:51:49 +0000 (18:51 -0800)]
Merge pull request #36 from mattkelly/fix-readme-typo
Fix typo in README: experimental
Matt Kelly [Thu, 9 Nov 2017 02:38:32 +0000 (21:38 -0500)]
Fix typo in README: experimental
Florent Kermarrec [Wed, 8 Nov 2017 11:59:38 +0000 (12:59 +0100)]
soc/software/bios/sdram: add Kintex Ultrascale support