Gabriel L. Somlo [Thu, 9 May 2019 12:47:06 +0000 (08:47 -0400)]
soc/cores/cpu/rocket: Support for 64-bit RocketChip (experimental)
Simulate a Rocket-based 64-bit LiteX SoC with the following command:
litex/tools/litex_sim.py [--with-sdram] --cpu-type=rocket
NOTE: Synthesizes to FPGA and passes timing at 50MHz on nexys4ddr
(with vivado) and ecp5versa (with yosys/trellis/nextpnr), but at
this time does not yet properly initialize physical on-board DRAM.
On ecp5versa, using '--with-ethernet', up to 97% of the available
TRELLIS_SLICE capacity is utilized.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
enjoy-digital [Thu, 23 May 2019 13:52:33 +0000 (15:52 +0200)]
Merge pull request #185 from gsomlo/gls-sim-sdram
tools/litex_sim: restore functionality of '--with-sdram' option
Gabriel L. Somlo [Thu, 23 May 2019 12:53:26 +0000 (08:53 -0400)]
tools/litex_sim: restore functionality of '--with-sdram' option
After LiteDRAM commit #
50e1d478, an additional positional argument
('databits') is required by the PhySettings() constructor.
The value used here (32) will generate a 64MByte simulated SDRAM.
enjoy-digital [Tue, 21 May 2019 05:19:15 +0000 (07:19 +0200)]
Merge pull request #183 from xobs/usb-to-0x43
Use 0x43/0xc3 for USB bridge magic packet
Sean Cross [Tue, 21 May 2019 01:35:09 +0000 (02:35 +0100)]
remote: usb: print "access denied" error
When we get an error with errno 13, it means that the user doesn't
have access to the USB device. Rather than silently eating this
error and returning -1, print out a message to aid in debugging.
Signed-off-by: Sean Cross <sean@xobs.io>
Sean Cross [Tue, 21 May 2019 01:14:18 +0000 (09:14 +0800)]
remote: usb: use 0x43/0xc3 for packet header
The previous value -- 0xc0 -- is used by Windows all the time to query
special descriptors. This was causing a conflict when using the USB
bridge on a Windows device.
Change the magic packet from "Vendor: Device" queries to "Vendor:
Other" by setting the bottom two bits.
Signed-off-by: Sean Cross <sean@xobs.io>
Florent Kermarrec [Fri, 17 May 2019 20:21:57 +0000 (22:21 +0200)]
soc/cores/minerva: update to latest
enjoy-digital [Fri, 17 May 2019 14:33:34 +0000 (16:33 +0200)]
Merge pull request #182 from gsomlo/gls-nexys4-eth-fixup
boards/nexys4ddr: ethernet support fix-up
Gabriel L. Somlo [Fri, 17 May 2019 14:06:12 +0000 (10:06 -0400)]
boards/nexys4ddr: ethernet support fix-up
Commit
5f6e7874 added ethernet support, let's now also expose it via
the "--with-ethernet" command line argument.
Florent Kermarrec [Thu, 16 May 2019 13:15:30 +0000 (15:15 +0200)]
Merge branch 'master' of github.com/enjoy-digital/litex
Florent Kermarrec [Thu, 16 May 2019 13:14:55 +0000 (15:14 +0200)]
soc_core: remove csr_expose and add add_csr_master method
This could be useful in specific case were we don't have a wishbone master
but just want to have a csr bus and allow the user to define it.
/!\ Since there is no arbitration on between the CSR masters, use this with
precaution /!\
Florent Kermarrec [Wed, 15 May 2019 20:40:32 +0000 (22:40 +0200)]
software/include/base/csr-defs.h: add specific CSR_IRQ_MASK/PENDING for Minerva
Florent Kermarrec [Tue, 14 May 2019 09:44:15 +0000 (11:44 +0200)]
software/bios/boot: remove specific linux commands (not needed with device tree)
Florent Kermarrec [Tue, 14 May 2019 09:02:09 +0000 (11:02 +0200)]
boards/targets/de0nano: reduce to 50MHz sys_clk, simplify CRG
Florent Kermarrec [Tue, 14 May 2019 08:31:40 +0000 (10:31 +0200)]
platforms/de0nano: change serial pins (put then next to the GND pin)
Florent Kermarrec [Mon, 13 May 2019 08:59:26 +0000 (10:59 +0200)]
cpu/vexriscv/core: update
Florent Kermarrec [Mon, 13 May 2019 08:59:03 +0000 (10:59 +0200)]
cpu/vexriscv: update submodule (new linux variant)
Florent Kermarrec [Mon, 13 May 2019 08:18:23 +0000 (10:18 +0200)]
boards/nexys4ddr: add ethernet support (RMII 100Mbps)
Florent Kermarrec [Sat, 11 May 2019 10:39:02 +0000 (12:39 +0200)]
boards/targets/netv2: +x
Florent Kermarrec [Sat, 11 May 2019 07:36:53 +0000 (09:36 +0200)]
soc/cores: remove cordic
Cordic is useful for DSP cores but not as a Soc building block.
Florent Kermarrec [Sat, 11 May 2019 07:26:51 +0000 (09:26 +0200)]
LICENSE: clarify
Florent Kermarrec [Sat, 11 May 2019 07:12:20 +0000 (09:12 +0200)]
soc/interconnect: remove axi_lite
axi_lite code was defining AXI4Lite signals and doing a AXI4Lite bridge to the
CSR bus when LiteX was not having proper AXI support. LiteX now has proper AXI
support and it also cover what axi_lite was doing: To create a AXILite to CSR
bus, user can create an AXILite2Wishbone bridge and then connect the CSR bus
directly to the wishbone bus as done in the others non-AXI SoC.
Florent Kermarrec [Fri, 10 May 2019 16:55:40 +0000 (18:55 +0200)]
boards: add initial NeTV2 support (clocks, leds, dram, ethernet)
Florent Kermarrec [Fri, 10 May 2019 13:46:22 +0000 (15:46 +0200)]
soc/integration/soc_sdram: simplify/fix main_ram_size computation using new databits value of the phy
Florent Kermarrec [Fri, 10 May 2019 09:05:34 +0000 (11:05 +0200)]
soc/integration/soc_core: allow user to defined internal csr/interrupts
For some designs with different capabilities, we want to run the same software
and then have the CSRs/Interrupts defined to a specific location.
Florent Kermarrec [Thu, 9 May 2019 21:50:43 +0000 (23:50 +0200)]
boards/targets: use new add_csr method
Florent Kermarrec [Thu, 9 May 2019 21:33:08 +0000 (23:33 +0200)]
tools/litex_sim: add uart csr (required when with_uart=False with new add_csr method)
Florent Kermarrec [Thu, 9 May 2019 21:32:22 +0000 (23:32 +0200)]
soc/integration/soc_core: rework csr assignation/reservation
Similar refactor than on interrupts. Adds a add_csr method but still
retro-compatible with old way to declare CSRs.
Florent Kermarrec [Thu, 9 May 2019 10:13:15 +0000 (12:13 +0200)]
boards/targets: declare ethmac interrupt with new add_interrupt method
The previous way to define interrupt is still valid, but using add_interrupt
method will ease maintenance
Florent Kermarrec [Thu, 9 May 2019 09:57:19 +0000 (11:57 +0200)]
Merge branch 'master' of github.com/enjoy-digital/litex
Florent Kermarrec [Thu, 9 May 2019 09:54:22 +0000 (11:54 +0200)]
integration/soc_core: rework interrupt assignation/reservation
The CPUs can now reserve specific interrupts with reserved_interrupts property.
User can still define interrupts in SoCCore.interrupt_map (old way) or use
add_interrupt method. Interrupts specific to SoCCore internal modules are
allocated automatically on the remaining free interrupt ids.
Priority for the interrupts allocation:
- 1) CPU reserved interrupts.
- 2) User interrupts.
- 3) SoCCore interrupts.
Florent Kermarrec [Thu, 9 May 2019 09:48:57 +0000 (11:48 +0200)]
test/test_targets: fix test_ulx3s name
Florent Kermarrec [Thu, 9 May 2019 09:48:32 +0000 (11:48 +0200)]
boards/targets: fix ulx3s/versa_ecp5 build
Mateusz Holenko [Mon, 6 May 2019 14:49:21 +0000 (16:49 +0200)]
cpu: add `reserved_interrupts` property
enjoy-digital [Thu, 9 May 2019 06:57:31 +0000 (08:57 +0200)]
Merge pull request #179 from gsomlo/gls-xtra-addrlen
soc/integration/cpu_interface: more arch-specific address size fixes
Gabriel L. Somlo [Wed, 8 May 2019 19:36:13 +0000 (15:36 -0400)]
soc/integration/cpu_interface: more arch-specific address size fixes
When generating arch-specific include files (generated/[mem|csr].h)
ensure address literal defines are suffixed by 'L', denoting their
'unsigned long' type. This inhibits compiler warnings when values
computed based on these constants are cast to pointers.
Also ensure csr_[read|write][b|w|l]() function declarations have
'unsigned long' address arguments.
Finally, restore the correct (32-bit, (unsigned *)) expected
behavior of the MMPTR() macro, inadvertently converted to an
arch-specific sized access (unsigned long *) by commit
5c2b8685.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Florent Kermarrec [Tue, 7 May 2019 16:44:03 +0000 (18:44 +0200)]
boards/targets: make sys_clk_freq a parameter
Most of the targets can now generate an abritrary sys_clk_freq from onboard XO.
Florent Kermarrec [Tue, 7 May 2019 11:05:28 +0000 (13:05 +0200)]
boards/targets/minispartan6: for now revert experimental s6pll clocking
Florent Kermarrec [Tue, 7 May 2019 10:48:36 +0000 (12:48 +0200)]
boards/plarforms/minispartan6: default to xc6slx25
Florent Kermarrec [Tue, 7 May 2019 09:59:28 +0000 (11:59 +0200)]
bios/boot/ update linux memory mapping
Florent Kermarrec [Mon, 6 May 2019 21:51:59 +0000 (23:51 +0200)]
tools/litex_term: add json support to load images to memory, allow passing speed as float
example json file (serialboot.json):
{
"binaries/Image": "0xc0000000",
"binaries/rootfs.cpio": "0xc2000000",
"binaries/rv32.dtb": "0xc3000000",
"emulator/emulator.bin": "0x20000000"
}
example command:
lxterm --images=serialboot.json /dev/ttyUSBX
enjoy-digital [Sat, 4 May 2019 18:02:42 +0000 (20:02 +0200)]
Merge pull request #178 from daveshah1/vexriscv_linux_yosys
vexriscv: Fix some floating signals
David Shah [Sat, 4 May 2019 16:27:21 +0000 (17:27 +0100)]
vexriscv: Fix some floating signals
Signed-off-by: David Shah <dave@ds0.me>
Florent Kermarrec [Sat, 4 May 2019 09:27:01 +0000 (11:27 +0200)]
bios/boot: add specific flash_boot for linux with vexriscv
Florent Kermarrec [Fri, 3 May 2019 17:47:36 +0000 (19:47 +0200)]
bios/boot: rename MM_RAM to EMULATOR_RAM
Florent Kermarrec [Fri, 3 May 2019 11:24:06 +0000 (13:24 +0200)]
soc/get_mem_data: add direct support for regions
We now support passing filename (offset=0), json file and regions
Florent Kermarrec [Fri, 3 May 2019 09:59:06 +0000 (11:59 +0200)]
soc/interconnect/axi: add AXI2AXILite converter and use it in AXI2Wishbone
Florent Kermarrec [Fri, 3 May 2019 07:43:05 +0000 (09:43 +0200)]
soc/interconnect/axi: add AXI Lite definition
Florent Kermarrec [Fri, 3 May 2019 07:30:59 +0000 (09:30 +0200)]
soc/interconnect/axi: add comment on axi signas that are present but not used
Florent Kermarrec [Fri, 3 May 2019 07:30:26 +0000 (09:30 +0200)]
cores/cpu/vexriscv: add VexRiscvTimer and use it for the linux variant
Florent Kermarrec [Thu, 2 May 2019 16:26:35 +0000 (18:26 +0200)]
bios/boot: add liftoff banner just before booting
Florent Kermarrec [Thu, 2 May 2019 14:34:41 +0000 (16:34 +0200)]
bios/boot/netboot: only get boot.bin as default, add linux_vexriscv netboot config
Florent Kermarrec [Thu, 2 May 2019 07:58:55 +0000 (09:58 +0200)]
soc/interconnect/axi: connect axi.ar/aw when selecting write or read
Florent Kermarrec [Thu, 2 May 2019 07:27:25 +0000 (09:27 +0200)]
soc/interconnect/axi: wishbone address shift is not always 2, make it generic
Florent Kermarrec [Thu, 2 May 2019 07:26:39 +0000 (09:26 +0200)]
soc/interconnect/wishbone: allow setting adr_width (default to 30)
Florent Kermarrec [Wed, 1 May 2019 10:58:44 +0000 (12:58 +0200)]
soc/interconnect/axi/AXI2Wishbone: add buffer on axi command to be sure command is accepted before response is sent
Florent Kermarrec [Wed, 1 May 2019 10:34:12 +0000 (12:34 +0200)]
build/sim: update tapcfg
enjoy-digital [Wed, 1 May 2019 10:09:18 +0000 (12:09 +0200)]
Merge pull request #176 from gsomlo/gls-ulong-addr
software: use "unsigned long" for address values, also 8-byte alignment
Gabriel L. Somlo [Mon, 29 Apr 2019 18:49:29 +0000 (14:49 -0400)]
software: use "unsigned long" for address values, also 8-byte alignment
Enable future support for 64-bit CPU models.
Florent Kermarrec [Mon, 29 Apr 2019 15:11:42 +0000 (17:11 +0200)]
test/test_targets: comment bad variant tests for now
Florent Kermarrec [Mon, 29 Apr 2019 14:48:42 +0000 (16:48 +0200)]
soc/interconnect/axi: add burst support to AXI2Wishbone
Florent Kermarrec [Mon, 29 Apr 2019 11:11:48 +0000 (13:11 +0200)]
soc/interconnect/axi: add capabilities to AXIBurst2Beat and simplify/optimize
Florent Kermarrec [Mon, 29 Apr 2019 08:14:30 +0000 (10:14 +0200)]
integration/soc_core: use cpu name as cpu-type for all cpus (mor1kx was instanciated with or1k)
Keep or1k retro-compatibility for now but add a warning
Florent Kermarrec [Mon, 29 Apr 2019 08:12:54 +0000 (10:12 +0200)]
build/tools: add deprecated_warning
Florent Kermarrec [Mon, 29 Apr 2019 08:00:04 +0000 (10:00 +0200)]
cpu_interface: default to gcc for all cpus unless told otherwise (mor1kx default was clang)
Florent Kermarrec [Mon, 29 Apr 2019 07:58:51 +0000 (09:58 +0200)]
cpu: use property methods to return name, endianness, gcc triple/flags, linker output format
Florent Kermarrec [Sun, 28 Apr 2019 21:38:31 +0000 (23:38 +0200)]
cpu: integrate nmigen version of Minerva, add submodule
Florent Kermarrec [Sun, 28 Apr 2019 09:41:33 +0000 (11:41 +0200)]
Updating documents from LiteX BuildEnv Wiki
Kurt Kiefer [Sat, 27 Apr 2019 21:57:35 +0000 (14:57 -0700)]
fix vexriscv build
enjoy-digital [Sat, 27 Apr 2019 19:24:06 +0000 (21:24 +0200)]
Merge pull request #175 from mithro/cpu-docs
Standardizing `cpu_variants` and adding lots of documentation
Tim 'mithro' Ansell [Fri, 26 Apr 2019 22:13:28 +0000 (17:13 -0500)]
Adding testing of cpu variants.
Tim 'mithro' Ansell [Fri, 26 Apr 2019 22:08:07 +0000 (17:08 -0500)]
Work with no `cpu_variant` provided.
Tim 'mithro' Ansell [Fri, 26 Apr 2019 22:00:52 +0000 (17:00 -0500)]
Updating documents from LiteX BuildEnv Wiki
Tim 'mithro' Ansell [Fri, 26 Apr 2019 20:29:32 +0000 (15:29 -0500)]
Updating documents from LiteX BuildEnv Wiki
Tim 'mithro' Ansell [Fri, 26 Apr 2019 21:20:21 +0000 (16:20 -0500)]
Standardize the `cpu_variant` strings.
Current valid `cpu_variant` values;
* minimal (alias: min)
* lite (alias: light, zephyr, nuttx)
* standard (alias: std) - Default
* full (alias: everything)
* linux
Fully documented in the [docs/Soft-CPU.md](docs/Soft-CPU.md) file
mirrored from the
[LiteX-BuildEnv Wiki](https://github.com/timvideos/litex-buildenv/wiki).
Also support "extensions" which are added to the `cpu_variant` with a
`+`. Currently only the `debug` extension is supported. In future hope
to add `mmu` and `hmul` extensions.
Florent Kermarrec [Fri, 26 Apr 2019 21:49:06 +0000 (23:49 +0200)]
.gitmodules: use our VexRiscv-verilog
Tim 'mithro' Ansell [Fri, 26 Apr 2019 19:28:20 +0000 (14:28 -0500)]
docs: Adding script to pull useful docs from LiteX BuildEnv's wiki.
Florent Kermarrec [Thu, 25 Apr 2019 21:43:10 +0000 (23:43 +0200)]
soc/integration/soc_core: fix get_mem_data when not file is not multiple of 4 bytes
Florent Kermarrec [Thu, 25 Apr 2019 16:36:47 +0000 (18:36 +0200)]
soc/integration/soc_core: fix get_mem_data for json files
Florent Kermarrec [Thu, 25 Apr 2019 15:30:03 +0000 (17:30 +0200)]
soc/integration/soc_core: add integrated_sram_init
Florent Kermarrec [Wed, 24 Apr 2019 20:44:37 +0000 (22:44 +0200)]
soc/integration/cpu_interface: fix banner in get_mem_header
enjoy-digital [Wed, 24 Apr 2019 20:42:36 +0000 (22:42 +0200)]
Merge pull request #173 from gsomlo/gls-git-revision
build: handle exceptional case when litex/migen not deployed as git repo
Gabriel L. Somlo [Wed, 24 Apr 2019 16:50:47 +0000 (12:50 -0400)]
build: handle exceptional case when litex/migen not deployed as git repo
Florent Kermarrec [Wed, 24 Apr 2019 10:25:49 +0000 (12:25 +0200)]
tools/remote/csr_builder: allow comments in csv file and cleanup
Florent Kermarrec [Wed, 24 Apr 2019 09:32:40 +0000 (11:32 +0200)]
software/libnet/microudp: rearrange send_packet, add comments and remove txlen padding
Florent Kermarrec [Wed, 24 Apr 2019 07:55:41 +0000 (09:55 +0200)]
software/libnet/microudp: speed-up ARP by changing timeout/tries
First ARP request does not seem to be transmitted (the link is probably not
fully established). Reduce the timeout between tries and increase number of
tries.
Florent Kermarrec [Tue, 23 Apr 2019 16:09:12 +0000 (18:09 +0200)]
build/tools: fix typo
Florent Kermarrec [Tue, 23 Apr 2019 15:46:20 +0000 (17:46 +0200)]
setup.py: add short names for tools
Florent Kermarrec [Tue, 23 Apr 2019 15:46:02 +0000 (17:46 +0200)]
tools/litex_term: change TERM prompt to LXTERM
Florent Kermarrec [Tue, 23 Apr 2019 15:40:24 +0000 (17:40 +0200)]
build: add migen and litex git revision to generated file
Florent Kermarrec [Tue, 23 Apr 2019 15:15:43 +0000 (17:15 +0200)]
build/tools: git_revision is not doing what we want, return "--------" for now
Florent Kermarrec [Tue, 23 Apr 2019 12:53:00 +0000 (14:53 +0200)]
litex_setup: revert default install behaviour but add --user support
enjoy-digital [Tue, 23 Apr 2019 12:41:37 +0000 (14:41 +0200)]
Merge pull request #171 from keesj/develop_as_user
Install development packages in the user directory
Florent Kermarrec [Tue, 23 Apr 2019 12:25:27 +0000 (14:25 +0200)]
tools/litex_server: fix comms import
Florent Kermarrec [Tue, 23 Apr 2019 11:17:54 +0000 (13:17 +0200)]
soc/integration: also add sha-1/date to generated software files
Florent Kermarrec [Tue, 23 Apr 2019 10:59:25 +0000 (12:59 +0200)]
build: add sha-1/date to generated verilog, change git_version to git_revision
Kees Jongenburger [Tue, 23 Apr 2019 10:23:09 +0000 (12:23 +0200)]
Install development packages in the user directory
When in development mode install the packages in the user directory using the
--user flag from pip. This allows to install and run without the need for root
access.
Florent Kermarrec [Tue, 23 Apr 2019 09:38:08 +0000 (11:38 +0200)]
test/test_targets: cover all platforms
Florent Kermarrec [Tue, 23 Apr 2019 09:37:29 +0000 (11:37 +0200)]
boards/platforms/ulx3s: fix default clock
Florent Kermarrec [Tue, 23 Apr 2019 09:21:55 +0000 (11:21 +0200)]
boards/platforms/sp605: apply same simplifications than on others platforms