Paul Schulz [Tue, 23 Jan 2018 05:41:25 +0000 (16:11 +1030)]
platform/arty.py: Move Pmod definitions to 'connectors' section.
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.
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
Florent Kermarrec [Wed, 1 Nov 2017 20:12:42 +0000 (21:12 +0100)]
README: update copyrights
Florent Kermarrec [Mon, 30 Oct 2017 21:56:09 +0000 (22:56 +0100)]
soc/interconnect/stream: expose depth on SyncFIFO
Tim Ansell [Mon, 30 Oct 2017 20:54:19 +0000 (13:54 -0700)]
Merge pull request #34 from mithro/uart-irq-change
Change the default IRQs.
Tim 'mithro' Ansell [Sun, 29 Oct 2017 18:11:53 +0000 (11:11 -0700)]
Make the interrupt dicts read only.
Tim 'mithro' Ansell [Sun, 29 Oct 2017 17:52:46 +0000 (10:52 -0700)]
Make it harder to have conflicting interrupts.
Tim 'mithro' Ansell [Sun, 29 Oct 2017 17:39:01 +0000 (10:39 -0700)]
Bump the IRQ for liteeth based targets.
Tim 'mithro' Ansell [Sun, 29 Oct 2017 15:13:11 +0000 (08:13 -0700)]
Change the default IRQs.
* Reserve IRQ 0 to be used as a "non-maskable interrupt" (NMI) in the
future.
* Use IRQ 2 for the LiteX. This matches the standard mor1k config which
connects the UART to IRQ 2.
This change is needed for Linux running on LiteX as it gets grumpy with
using IRQ 0 for anything other other than an NMI.
Tim 'mithro' Ansell [Sun, 15 Oct 2017 15:24:29 +0000 (02:24 +1100)]
build/xilinx: Fixing settings finding.
* Better error messages.
* Search correct directories;
- XXX/Vivado/<version>
- XXX/<version>/ISE_DS/
Tim Ansell [Mon, 16 Oct 2017 04:07:49 +0000 (15:07 +1100)]
Merge pull request #32 from felixheld/fix-readme
remove Migen as requirement for LiteX from the quick start guide
Felix Held [Sun, 15 Oct 2017 20:27:09 +0000 (22:27 +0200)]
remove Migen as requirement for LiteX from the quick start guide
Migen currently isn't a dependency for LiteX
Florent Kermarrec [Thu, 12 Oct 2017 09:30:56 +0000 (11:30 +0200)]
soc/interconnect/stream: don't use reset less on last and first signals (not reseting these signals can cause troubles in some specific cases)
enjoy-digital [Sat, 7 Oct 2017 06:46:38 +0000 (08:46 +0200)]
Merge pull request #31 from mithro/bios-fix
Couple of small fixes.
Tim 'mithro' Ansell [Sat, 15 Apr 2017 11:31:31 +0000 (21:31 +1000)]
Output better error message for flash_proxy.
Tim 'mithro' Ansell [Tue, 26 Sep 2017 04:54:16 +0000 (14:54 +1000)]
bios: Print location jumping too.
Makes it easier to understand what is happening (and that the BIOS is
jumping to the right place).
Tim 'mithro' Ansell [Mon, 25 Sep 2017 19:33:58 +0000 (05:33 +1000)]
common: Compile with debugging symbols on.
Debugging symbols are useful when using GDB :-)
Tim 'mithro' Ansell [Mon, 25 Sep 2017 19:28:27 +0000 (05:28 +1000)]
or1k: Use EXCEPTION_STACK_SIZE of 256bytes.
or1k defines a 128 byte "red zone" after the stack that can not be
touched by the exception handler.
We also need 128 bytes to store the 32 registers.
Tim 'mithro' Ansell [Mon, 25 Sep 2017 09:32:55 +0000 (19:32 +1000)]
bios: Declare dependency on linked in .a files.
enjoy-digital [Wed, 4 Oct 2017 07:47:32 +0000 (09:47 +0200)]
Merge pull request #30 from cr1901/icestorm
Add Icestorm backend and iCEStick
William D. Jones [Wed, 4 Oct 2017 05:59:53 +0000 (01:59 -0400)]
Add iCEStick board. Tested with litescope.
William D. Jones [Wed, 4 Oct 2017 02:46:40 +0000 (22:46 -0400)]
Port IceStorm backend from Migen.
Florent Kermarrec [Fri, 29 Sep 2017 10:07:43 +0000 (12:07 +0200)]
soc/cores: add cordic
enjoy-digital [Tue, 26 Sep 2017 10:33:57 +0000 (12:33 +0200)]
Merge pull request #28 from enjoy-digital/eb-docs-2
More docs for etherbone packet fields.
Florent Kermarrec [Wed, 13 Sep 2017 11:46:55 +0000 (13:46 +0200)]
gen/fhdl/verilog: revert _printcomb_simulation and _printcomb_regular (needed for icarus simulation) and add Finish command
Florent Kermarrec [Wed, 6 Sep 2017 13:36:29 +0000 (15:36 +0200)]
soc/integration/soc_core: add ident_version parameter to allow adding soc version to identifier
Tim Ansell [Fri, 1 Sep 2017 13:57:34 +0000 (23:57 +1000)]
More docs for etherbone packet fields.
Info comes from http://www.ohwr.org/attachments/1669/spec.pdf dated 24 July 2012
enjoy-digital [Fri, 1 Sep 2017 13:54:38 +0000 (15:54 +0200)]
Merge pull request #27 from enjoy-digital/etherbone-docs
Adding a little docs to field descriptions.