litedram: Add basic support for LiteX LiteDRAM
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 10 Sep 2019 17:05:32 +0000 (18:05 +0100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 8 May 2020 01:41:06 +0000 (11:41 +1000)
commit982cf166ddded32ce9a3cd156cea96e69ab85a38
treef876f8f04b4a6b7790f5f349dc183fd3990eb57a
parent31b55b2a75cd439a00c5eeb3f246e4c2805137ed
litedram: Add basic support for LiteX LiteDRAM

This comes in two parts:

 - A generator script which uses LiteX to generate litedram cores
along with their init files for various boards (currently Arty and
Nexys-video). This comes with configs for arty and nexys_video.

 - A fusesoc "generator" which uses pre-generated litedram cores

The generation process is manual on purpose. This include pre-generated
cores for the two above boards.

This is done so that one doesn't have to install LiteX to build
microwatt. In addition, the generator script or wrapper vhdl tend to
break when LiteX changes significantly which happens.

This is still rather standalone and hasn't been plumbed into the SoC
or the FPGA toplevel files yet.

At this point LiteDRAM self-initializes using a built-in VexRiscv
"Minimum" core obtained from LiteX and included in this commit. There
is some plumbing to generate and cores that are initialized by Microwatt
directly but this isn't working yet and so isn't enabled yet.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
60 files changed:
Makefile
litedram/extras/VexRiscv.v [new file with mode: 0644]
litedram/extras/fusesoc-add-files.py [new file with mode: 0644]
litedram/gen-src/arty.yml [new file with mode: 0644]
litedram/gen-src/generate.py [new file with mode: 0755]
litedram/gen-src/nexys-video.yml [new file with mode: 0644]
litedram/gen-src/sdram_init/Makefile [new file with mode: 0644]
litedram/gen-src/sdram_init/bin2hex.py [new file with mode: 0755]
litedram/gen-src/sdram_init/head.S [new file with mode: 0644]
litedram/gen-src/sdram_init/include/system.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/include/assert.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/include/compiler.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/include/ctype.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/include/errno.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/include/stdint.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/include/stdio.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/include/stdlib.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/include/string.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/include/unistd.h [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/isdigit.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/isprint.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/isspace.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/isxdigit.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/memchr.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/memcmp.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/memcpy.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/memmove.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/memset.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strcasecmp.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strcat.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strchr.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strcmp.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strcpy.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strlen.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strncasecmp.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strncmp.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strncpy.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strrchr.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strstr.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strtok.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strtol.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/strtoul.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/tolower.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/toupper.c [new file with mode: 0644]
litedram/gen-src/sdram_init/libc/src/vsnprintf.c [new file with mode: 0644]
litedram/gen-src/sdram_init/main.c [new file with mode: 0644]
litedram/gen-src/sdram_init/sdram_init.lds [new file with mode: 0644]
litedram/gen-src/wrapper-mw-init.vhdl [new file with mode: 0644]
litedram/gen-src/wrapper-self-init.vhdl [new file with mode: 0644]
litedram/generated/arty/init-cpu.txt [new file with mode: 0644]
litedram/generated/arty/litedram-wrapper.vhdl [new file with mode: 0644]
litedram/generated/arty/litedram_core.init [new file with mode: 0644]
litedram/generated/arty/litedram_core.v [new file with mode: 0644]
litedram/generated/nexys-video/init-cpu.txt [new file with mode: 0644]
litedram/generated/nexys-video/litedram-wrapper.vhdl [new file with mode: 0644]
litedram/generated/nexys-video/litedram_core.init [new file with mode: 0644]
litedram/generated/nexys-video/litedram_core.v [new file with mode: 0644]
litedram/litedram.core [new file with mode: 0644]
microwatt.core
scripts/mw_debug/Makefile