Florent Kermarrec [Mon, 10 Jun 2019 13:06:57 +0000 (15:06 +0200)]
tools/litex_term: exit on 2 consecutive CTRL-C
When running OS with LiteX and when LiteXTerm is use, we want to be able to
send CTRl-C to the OS. Ensure a specific sequence is sent to close the terminal.
Florent Kermarrec [Mon, 10 Jun 2019 10:57:10 +0000 (12:57 +0200)]
cpu/vexriscv: update submodule
Florent Kermarrec [Sun, 9 Jun 2019 17:36:09 +0000 (19:36 +0200)]
doc: add litex-hub logo
Florent Kermarrec [Sat, 8 Jun 2019 22:36:46 +0000 (00:36 +0200)]
doc: redesign new logo
Florent Kermarrec [Fri, 7 Jun 2019 22:45:30 +0000 (00:45 +0200)]
doc: add new logo
Florent Kermarrec [Fri, 7 Jun 2019 16:36:46 +0000 (18:36 +0200)]
cpu/vexriscv: update submodule
Florent Kermarrec [Fri, 7 Jun 2019 10:28:20 +0000 (12:28 +0200)]
build/sim: allow configuring verilator optimization level
Florent Kermarrec [Fri, 7 Jun 2019 09:50:57 +0000 (11:50 +0200)]
build/sim: allow defining start/end cycles for tracing
Florent Kermarrec [Fri, 7 Jun 2019 09:16:39 +0000 (11:16 +0200)]
build/sim: use -O0 for verilator compilation
In most of the case, execution speed is already fast enough with -O0 and
with complex design -O0 is a lost faster to compile than -O3. In the future
we could add a switch to choose which optimization we want.
Florent Kermarrec [Fri, 7 Jun 2019 09:14:36 +0000 (11:14 +0200)]
soc/integration/soc_core: list rocket as supported CPU
Florent Kermarrec [Fri, 7 Jun 2019 09:10:04 +0000 (11:10 +0200)]
software/bios: change prompt to "litex" in green.
Florent Kermarrec [Wed, 5 Jun 2019 21:43:16 +0000 (23:43 +0200)]
integration/soc_core: improve readibility (add separators/comments)
Florent Kermarrec [Wed, 5 Jun 2019 18:03:19 +0000 (20:03 +0200)]
test/test_targets: add de10lite
enjoy-digital [Wed, 5 Jun 2019 17:44:54 +0000 (19:44 +0200)]
Merge pull request #196 from msloniewski/de10lite_support
De10lite support
enjoy-digital [Wed, 5 Jun 2019 17:20:15 +0000 (19:20 +0200)]
Merge pull request #195 from antmicro/extend_generated_headers
Extend generated headers & csv
msloniewski [Wed, 5 Jun 2019 16:53:49 +0000 (18:53 +0200)]
boards/targets: add target for de10lite platform
msloniewski [Wed, 5 Jun 2019 16:53:30 +0000 (18:53 +0200)]
boards/platforms: add de10lite Terasic platform support
msloniewski [Wed, 5 Jun 2019 16:52:40 +0000 (18:52 +0200)]
build/altera: Add possibility to turn off generation of .rbf file
For some FPGAs (e.g. MAX10) .rbf file cannot be generated.
Add possibility to turn off that feature for those chips.
Mateusz Holenko [Wed, 5 Jun 2019 15:27:27 +0000 (17:27 +0200)]
integration/builder: generate flash_boot address to csv
Mateusz Holenko [Wed, 5 Jun 2019 15:35:47 +0000 (17:35 +0200)]
integration/builder: generate shadow_base address to mem.h and csv
enjoy-digital [Tue, 4 Jun 2019 19:49:18 +0000 (21:49 +0200)]
Merge pull request #193 from gsomlo/gls-memcpy-fix
software/libbase: memcpy: simple, arch-width agnostic implementation
Gabriel L. Somlo [Tue, 4 Jun 2019 18:42:54 +0000 (14:42 -0400)]
software/libbase: memcpy: simple, arch-width agnostic implementation
Remove optimizations targeted specifically at rv32 architecture,
allowing memcpy to work on all word sizes.
Since this is "only" the BIOS, it is also arguably better to
optimize for size rather than performance, given that control
will be quickly handed over to some other program being loaded.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Tim Ansell [Sun, 2 Jun 2019 23:54:20 +0000 (16:54 -0700)]
Merge pull request #192 from sutajiokousagi/pr_c99_types
fix signed char type to be explicitly signed
bunnie [Mon, 3 Jun 2019 06:00:27 +0000 (06:00 +0000)]
fix signed char type to be explicitly signed
bunnie [Sun, 2 Jun 2019 22:26:18 +0000 (22:26 +0000)]
update stdint.h to include c99 types
needed for some third party libraries to compile
Tim Ansell [Sun, 2 Jun 2019 20:00:20 +0000 (13:00 -0700)]
Merge pull request #191 from sergachev/master
Fix interrupt_name in soc_core/add_interrupt
Ilia Sergachev [Sun, 2 Jun 2019 18:56:02 +0000 (20:56 +0200)]
fix csr_name in add_csr()
Ilia Sergachev [Sun, 2 Jun 2019 18:48:08 +0000 (20:48 +0200)]
fix interrupt_name
Florent Kermarrec [Sun, 2 Jun 2019 17:22:09 +0000 (19:22 +0200)]
test/test_targets: add de2_115, de1soc
Florent Kermarrec [Sun, 2 Jun 2019 17:10:44 +0000 (19:10 +0200)]
boards/platform/arty: add Arty A7-100 variant
enjoy-digital [Sun, 2 Jun 2019 16:40:57 +0000 (18:40 +0200)]
Merge pull request #189 from open-design/terasic-boards
Add support for Terasic DE2-115 and Terasic DE1-SoC boards
Tim Ansell [Sun, 2 Jun 2019 15:15:52 +0000 (08:15 -0700)]
Merge pull request #190 from sutajiokousagi/pr_c99_types
update stdint.h to include c99 types
Antony Pavlov [Mon, 27 May 2019 08:17:51 +0000 (11:17 +0300)]
boards: add Terasic DE2-115 initial support
See https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=502&PartNo=1
for board details.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Antony Pavlov [Wed, 29 May 2019 06:12:48 +0000 (09:12 +0300)]
boards: add Terasic DE1-SoC Board support
See https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=836
for board details.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
enjoy-digital [Thu, 30 May 2019 20:40:39 +0000 (22:40 +0200)]
Merge pull request #188 from gsomlo/gls-csr-cleanup
Miscellaneous cleanup patches
Gabriel L. Somlo [Wed, 29 May 2019 14:07:43 +0000 (10:07 -0400)]
soc/integration/cpu_interface: improve code legibility
Factor out code appearing in both branches of an if/else.
Florent Kermarrec [Wed, 29 May 2019 08:25:25 +0000 (10:25 +0200)]
soc/interconnect/gearbox: add msb_first/lsb_first order
Florent Kermarrec [Tue, 28 May 2019 07:55:06 +0000 (09:55 +0200)]
boards/targets/arty: generate 25MHz ethernet clock with S7PLL
Allow ethernet to work when sys_clk_freq != 100MHz
Tim Ansell [Sun, 26 May 2019 10:01:31 +0000 (03:01 -0700)]
Merge pull request #187 from open-design/indent
litex/boards/targets: don't use tab for indentation
Antony Pavlov [Sun, 26 May 2019 08:59:13 +0000 (11:59 +0300)]
litex/boards/targets: don't use tab for indentation
Fix pep8 E101 "indentation contains mixed spaces and tab" error.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Florent Kermarrec [Sat, 25 May 2019 08:02:31 +0000 (10:02 +0200)]
soc/interconnect/axi: add round/robin arbitration between writes/reads
Florent Kermarrec [Sat, 25 May 2019 07:30:54 +0000 (09:30 +0200)]
travis: update RISC-V toolchain
Florent Kermarrec [Sat, 25 May 2019 07:24:48 +0000 (09:24 +0200)]
bios/irc: remove compilation workaround
Florent Kermarrec [Sat, 25 May 2019 07:24:25 +0000 (09:24 +0200)]
README: update RISC-V toolchain
Florent Kermarrec [Fri, 24 May 2019 08:39:48 +0000 (10:39 +0200)]
.gitmodules/rocket: switch to https://github.com/enjoy-digital/rocket-litex-verilog
Florent Kermarrec [Fri, 24 May 2019 08:13:24 +0000 (10:13 +0200)]
software/bios/isr.c: workaround compilation issue (need to be fixed)
Florent Kermarrec [Fri, 24 May 2019 08:08:16 +0000 (10:08 +0200)]
soc/integration/soc_core: revert default mem_map (do specific RocketChip remapping for now)
Florent Kermarrec [Fri, 24 May 2019 07:37:33 +0000 (09:37 +0200)]
boards/targets: revert default sys_clk_freq on nexys4ddr/versa_ecp5 (but add parameter to configure it)
enjoy-digital [Fri, 24 May 2019 08:15:02 +0000 (10:15 +0200)]
Merge pull request #186 from gsomlo/gls-rocket
Experimental Support for 64-bit RocketChip
Gabriel L. Somlo [Thu, 23 May 2019 20:27:17 +0000 (16:27 -0400)]
fixup: generated-verilog submodule for experimental Rocket support
FIXME: This patch uses https://github.com/gsomlo/rocket-litex-verilog,
however in the long term it would perhaps be better if enjoy-digital
hosted the generated-verilog repository.
Once that's in place, I'd be happy to re-spin (and squash) this patch
on top of its parent -- GLS
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