top: use two slots for the framebuffer ASMI port
[litex.git] / README
diff --git a/README b/README
index 5dc6b64241bb9e569a3c9d3895397b055d2ceef0..eff63f5135854c41c4c79fe1fac8451230778376 100644 (file)
--- a/README
+++ b/README
@@ -14,41 +14,58 @@ Note that the -NG version is still experimental work in progress. For the
 production version of Milkymist SoC, visit:
   https://github.com/milkymist/milkymist
 
-[> Instructions
----------------
+[> Instructions (software)
+--------------------------
+1. Compile and install binutils. Take the latest version from GNU.
+  ./configure --target=lm32-elf
+  make
+  make install
+  
+2. Compile and install LLVM and Clang.
+  git clone git://github.com/milkymist/llvm-lm32.git
+  cd llvm-lm32/tools
+  git clone git://github.com/milkymist/clang-lm32.git clang
+  cd ..
+  mkdir build
+  cmake ..
+  make
+  make install
+
+3. Build compiler-rt.
+  git clone git://github.com/milkymist/compiler-rt-lm32.git
+  cd compiler-rt-lm32
+  make lm32
+
+4. Set the CRTDIR environment variable to where libcompiler_rt.a is.
+  export CRTDIR=/path_to/compiler-rt-lm32/lm32/lm32
+
+5. Build and flash the BIOS (part of this source distribution).
+  cd software/bios
+  make
+  make flash
+
+The second command requires m1nor, FJMEM and UrJTAG.
+These tools can be found respectively at:
+  http://projects.qi-hardware.com/index.php/p/wernermisc/
+  https://github.com/milkymist/fjmem-m1
+  http://urjtag.org
+  
+[> Instructions (gateware)
+--------------------------
 First, download and install Migen from:
   https://github.com/milkymist/migen
 
-Then, you will need to fetch the "Spartan-6 FPGA DDR/DDR2 SDRAM PHY core"
-(PHY only solution, we do not need the NWL memory controller) from:
-  http://www.xilinx.com/products/intellectual-property/1-1MFEDB.htm
-Downloading it is free of charge, but it cannot be redistributed in
-source form due to copyright restrictions.
-
-Place the Verilog source code of the PHY (contents of
-phy_rtl/spartan6_soft_phy) into the verilog/s6ddrphy folder.
-Then run (from verilog/s6ddrphy):
-  quilt push -a
-in order to apply patches that make the PHY more compliant with the DFI
-specification in general, and in particular with the capability to send
-multiple SDRAM commands in one system clock cycle, which our new SDRAM
-controller is capable of doing.
-The patches are against version 1.04 of the PHY.
-
 Once this is done, build the bitstream with:
-  python3 build.py
+  make
 This will generate the build/soc.bit programming file.
+Use:
+  make load
+to load it with UrJTAG.
 
 The SoC expects a bootloader to be located in flash at 0x860000, just
 like the legacy SoC did. However, there is no binary compatibility and a
 new BIOS needs to be built and flashed for the -NG SoC.
 
-You can find the source code of a compatible BIOS in the software/bios
-directory. It compiles with Clang and LLVM by default, and you can find
-the modified version with support for LM32 at:
-  https://github.com/milkymist/llvm-lm32
-  https://github.com/milkymist/clang-lm32
-
 Enjoy!
 
 [> Misc
@@ -67,8 +84,7 @@ without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 PARTICULAR PURPOSE. See the GNU General Public License for more details.
 
 The authors grant the additional permissions that the code can be used in
-conjunction with the LatticeMico32 CPU core from Lattice and the
-Spartan-6 FPGA DDR/DDR2 SDRAM PHY core from Xilinx and Northwest Logic.
+conjunction with the LatticeMico32 CPU core from Lattice.
 
 Unless otherwise noted, Milkymist-NG's source code is copyright (C)
 2011-2012 Sebastien Bourdeauducq. Other authors retain ownership of their