Commit Graph

7712 Commits

Author SHA1 Message Date
Florent Kermarrec c494ea231b cpu: Add initial NaxRiscv support (From out of tree prototyping in litex_naxriscv_test).
- Supporting rv32ima for now.
- No interrupt support yet.
- AXI4 direct interfaces to LiteDRAM (fixed at 128-bit for now).
- AXI4-Lite interfaces to LiteX main bus.
- Pre-generated netlist used for now (need to allow customization/re-generation).
- Running in simulation with: litex_sim --cpu-type=naxriscv
- Running on hardware with: python3 -m litex_boards.targets.digilent_arty --cpu-type=naxriscv --build --load

Demo with Linux and Doom on SDS1104X-E scope:
https://twitter.com/enjoy_digital/status/1493996880593887235
2022-02-17 10:28:48 +01:00
Florent Kermarrec 38a047bed1 cpu: Add initial NEORV32 support (From out of tree prototyping in litex_neorv32_test repo).
- Only configured for rv32i for now (need to create variants).
- I/DBus interfaces probably not optimal (latency).
- Converted from VHDL to Verilog through GHDL-Yosys-Synth (should also support direct VHDL use with toolchains supporting it).
- Interrupt not yet implemented.
- Running in simulation with litex_sim --cpu-type=neorv32.
- Running on Arty with: python3 -m litex_boards.targets.digilent_arty --cpu-type=neorv32 --build --load:
        __   _ __      _  __
       / /  (_) /____ | |/_/
      / /__/ / __/ -_)>  <
     /____/_/\__/\__/_/|_|
   Build your hardware, easily!

 (c) Copyright 2012-2022 Enjoy-Digital
 (c) Copyright 2007-2015 M-Labs

 BIOS built on Feb 14 2022 16:10:24
 BIOS CRC passed (83edf3c3)

 Migen git sha1: ac70301
 LiteX git sha1: 0d218306

--=============== SoC ==================--
CPU:		NEORV32 @ 100MHz
BUS:		WISHBONE 32-bit @ 4GiB
CSR:		32-bit data
ROM:		128KiB
SRAM:		8KiB
L2:		8KiB
SDRAM:		524288KiB 16-bit @ 800MT/s (CL-7 CWL-5)

--========== Initialization ============--
Initializing SDRAM @0x40000000...
Switching SDRAM to software control.
Read leveling:
  m0, b00: |00000000000000000000000000000000| delays: -
  m0, b01: |11000000000000000000000000000000| delays: 01+-01
  m0, b02: |00011111111111111000000000000000| delays: 10+-07
  m0, b03: |00000000000000000000111111111111| delays: 26+-06
  m0, b04: |00000000000000000000000000000000| delays: -
  m0, b05: |00000000000000000000000000000000| delays: -
  m0, b06: |00000000000000000000000000000000| delays: -
  m0, b07: |00000000000000000000000000000000| delays: -
  best: m0, b02 delays: 10+-07
  m1, b00: |00000000000000000000000000000000| delays: -
  m1, b01: |10000000000000000000000000000000| delays: 00+-00
  m1, b02: |00111111111111111000000000000000| delays: 09+-07
  m1, b03: |00000000000000000001111111111111| delays: 25+-06
  m1, b04: |00000000000000000000000000000000| delays: -
  m1, b05: |00000000000000000000000000000000| delays: -
  m1, b06: |00000000000000000000000000000000| delays: -
  m1, b07: |00000000000000000000000000000000| delays: -
  best: m1, b02 delays: 09+-07
Switching SDRAM to hardware control.
Memtest at 0x40000000 (2.0MiB)...
  Write: 0x40000000-0x40200000 2.0MiB
   Read: 0x40000000-0x40200000 2.0MiB
Memtest OK
Memspeed at 0x40000000 (Sequential, 2.0MiB)...
  Write speed: 9.3MiB/s
   Read speed: 13.2MiB/s

--============== Boot ==================--
Booting from serial...
Press Q or ESC to abort boot completely.
sL5DdSMmkekro
Timeout
No boot medium found

--============= Console ================--

litex>
2022-02-17 09:59:30 +01:00
Florent Kermarrec d37ef60e70 remote/comm_udp: Increase timeout. 2022-02-16 17:57:24 +01:00
Florent Kermarrec edf65107fb libliteeth/tftp: Implement blocksize support (RFC2348) and increase blocksize from 512 bytes to 1024 bytes (mechanically increase filesize limitation from 32MB to 64MB).
See https://datatracker.ietf.org/doc/html/rfc2348.
2022-02-16 16:46:26 +01:00
Florent Kermarrec f46d1c190b cpu/integration: Fix csr_decode. 2022-02-15 22:17:45 +01:00
enjoy-digital 9f2ffbb7ef
Merge pull request #1208 from trabucayre/cpu_fix_csr_decoding
Cpu fix csr decoding
2022-02-15 22:05:51 +01:00
Florent Kermarrec 855bc26f16 litex_setup/cv32e41p: Only install it with full config. 2022-02-15 09:45:23 +01:00
enjoy-digital 2993928b31
Merge pull request #1207 from pcotret/cv32e41p_support
Add support for the CV32E41P RISC-V CPU
2022-02-15 09:43:03 +01:00
enjoy-digital de6238e7c0
Merge pull request #1201 from shenki/microwatt-countzero
microwatt: Move to latest and add countzero module
2022-02-15 09:36:43 +01:00
Gwenhael Goavec-Merou 0427006663 soc/cores/cpu: eos, zynq7000 & zynqmp: don't decode CSR address 2022-02-15 07:32:26 +01:00
Gwenhael Goavec-Merou af69c572d8 litex/soc/integration/soc: SocRegion: allows to bypass decoding; SoC: add attribute to bypass CSR decoding 2022-02-15 07:31:19 +01:00
Pascal Cotret d4448827ac add cv32e41p 2022-02-14 22:43:34 +01:00
Pascal Cotret d506b4418e add isr support for cv32e41p 2022-02-14 22:09:46 +01:00
Pascal Cotret 86373605ce add pythondata for cv32e41p 2022-02-14 22:06:25 +01:00
Florent Kermarrec 0d2183062d cpu/serv: Remove duplicated separator. 2022-02-14 11:52:29 +01:00
Florent Kermarrec f91941731a build/xilinx/platform: Add specialized add_platform_command to handle yosys+nextpnr specificities.
Also remove symbiflow+nextpnr commented flow.
2022-02-14 10:44:13 +01:00
Florent Kermarrec 378c430dd0 soc/add_sdram: Fix typo when removing Rocket specific hardcoding. 2022-02-12 21:47:08 +01:00
Florent Kermarrec dff33885de cpu/zynqmp: Use dict for fpd/lpd selection. 2022-02-09 16:03:53 +01:00
enjoy-digital 80fd8e26a7
Merge pull request #1203 from trabucayre/zynqmp_complete_axi
zynqmp/core: allows users to select data_size and interface id
2022-02-09 15:46:46 +01:00
Gwenhael Goavec-Merou b0d9223b78 zynqmp/core: allows users to select data_size and interface id 2022-02-09 07:03:44 +01:00
Florent Kermarrec ad78965f41 soc/add_sdram/axi: Avoid some Rocket specific hardcoding (to use it on other CPUs). 2022-02-08 18:30:55 +01:00
Florent Kermarrec 7cc781f7be cpu/zynq7000: Add Ilia to copyrights. 2022-02-07 07:57:59 +01:00
Florent Kermarrec b749b3acb7 cpu/zynqmp: Add missing header/copyrights. 2022-02-07 07:57:29 +01:00
enjoy-digital bd3d063d87
Merge pull request #1199 from sergachev/feature/zynqmp
cores/cpu: add ZynqMP (UltraScale+ MPSoC) support
2022-02-07 07:53:25 +01:00
Joel Stanley 420934e206 microwatt: Move to latest and add countzero module
Mcrowatt has renamed countbits to countzero. Update to the latest and
update the file list.

Signed-off-by: Joel Stanley <joel@jms.id.au>
2022-02-07 12:22:11 +10:30
Ilia Sergachev 5aee6359e6 cores/cpu: add ZynqMP (UltraScale+ MPSoC) support 2022-02-06 13:50:48 +01:00
Florent Kermarrec 55a790308f cores/bitbang: Add TODO. 2022-02-04 09:01:00 +01:00
enjoy-digital 8dd2940bd0
Merge pull request #1197 from fjullien/align_vtg_hsync_vsync
video: align hsync and vsync generated by the vtg
2022-02-04 08:32:46 +01:00
Franck Jullien 25152fe4de video: align hsync and vsync generated by the vtg 2022-02-03 14:26:50 +01:00
Florent Kermarrec 26c44af3f7 cores/bitbang: Simplify HAS_I2C by doing it directly in collect_i2c_info. 2022-02-03 11:34:40 +01:00
enjoy-digital 8f5d971491
Merge pull request #1196 from fjullien/fix_efinix_tri_state
efinix: fix EfinixTristateImpl
2022-02-03 11:13:11 +01:00
enjoy-digital ef0c2043f1
Merge pull request #1195 from fjullien/i2c_multi_devices
i2c: handle multiple i2c controllers in the BIOS
2022-02-03 11:12:57 +01:00
Franck Jullien 5cc08dfa64 i2c: handle multiple i2c controllers in the BIOS
A new command is introduced: "i2c_dev".
With this command you can list i2c devices and choose on to be active.
2022-02-03 09:27:10 +01:00
Florent Kermarrec 9413f5dc14 cores/bitbang: Fix typos in init changes. 2022-02-02 15:35:06 +01:00
Florent Kermarrec 8baf5cacc1 CHANGES: Update. 2022-02-02 12:05:46 +01:00
Florent Kermarrec 7ed448cd52 cores/bitbang: Attach I2C init table directly to I2C cores and avoid global add_i2c_init_table SoC method. 2022-02-02 10:57:50 +01:00
enjoy-digital 732529ecdf
Merge pull request #1193 from fjullien/i2c_master_init_values
i2c: automatic device init by the BIOS
2022-02-02 09:59:31 +01:00
Franck Jullien 7a714c74af i2c: automatic device init by the BIOS
The BIOS can now initialize I2C peripherals during the boot.
The add_i2c_init_table method of the soc speficy parameters:

self.submodules.i2c = I2CMaster(pads)
self.add_i2c_init_table("i2c", i2c_addr=0x4c, table=it6263_i2c_hdmi_tx)

it6263_i2c_hdmi_tx = [
  (0x05, 0x40),
  (0x04, 0x3D),
  (0x04, 0x1D)
  ...

The table is a list of tupple as (address, value).
2022-02-01 21:22:51 +01:00
Franck Jullien be8e825a0b efinix: fix EfinixTristateImpl 2022-02-01 21:14:35 +01:00
Florent Kermarrec 78ecf50ad5 cores/jtag: Make primitive selection more flexible (and simplify new devices support). 2022-02-01 12:44:18 +01:00
Florent Kermarrec b59fdae588 cores/jtag: Simplify/Cleanup. 2022-02-01 11:32:04 +01:00
Florent Kermarrec 1c5d91dce1 cores/jtag: Deprecate JTAG Atlantic support (Advantageously replaced by JTAG-UART). 2022-02-01 11:19:36 +01:00
Florent Kermarrec 6f6a10db5c CHANGES: Update. 2022-01-31 17:00:51 +01:00
enjoy-digital 0711998dab
Merge pull request #1191 from david-sawatzke/dev/doc_atomic_writes
Fix generation of documentation of `atomic_write` CSRStorage
2022-01-31 16:48:02 +01:00
Florent Kermarrec 52a0497032 altera/jtag: Minor cosmetic cleanups, avoid some duplications. 2022-01-31 16:08:08 +01:00
Florent Kermarrec b2448ba50e soc/cores/jtag: Review/Cleanup JTAGTAPFSM and avoid specific CorrectedOngoingResetFSM. 2022-01-31 16:07:50 +01:00
enjoy-digital 40799332a0
Merge pull request #1188 from jevinskie/jev/altera-jtag
Add JTAGbone support for Altera Max 10 and Cyclone 10 LP
2022-01-31 16:07:30 +01:00
David Sawatzke a981f935f2 Fix generation of documentation of `atomic_write` CSRStorage
Can't decrement a range by 1, this (probably) never worked.

Also improves the generated text.
2022-01-30 18:05:52 +01:00
Jevin Sweval 349087a8c0 Add JTAGbone support for Altera Max 10 and Cyclone 10 LP 2022-01-29 13:27:53 -08:00
Florent Kermarrec bfad61cd2a build/builder: Simplify/Review #1190.
- Only do copy in Builder.
- Use relative path for copied files (will be useful to create self-contained gateware archive).
2022-01-28 19:32:12 +01:00