(This is my cheat sheet. It works for me but yet may stil be incomplete
and redundant at the same time.)

Instructions:

  http://milkymist.org/wiki/index.php?title=RTEMS_build_instructions

Getting rtems:

  git clone git://git.rtems.org/rtems.git
  cd rtems
  git checkout f829d131adc5f0ec4aa079d4b8c0d65ea578cdb1 # for predictability
  ln -s /home/qi/wernermisc/m1/patches/rtems/ patches
  quilt push -a

Compiling rtems:

  cd rtems
  ./bootstrap -c && ./bootstrap -p && ./bootstrap			# 08:37
  mkdir -p build
  cd build
  ../configure --target=lm32-rtems4.11 --enable-rtemsbsp=milkymist \
    --enable-posix --disable-itron --enable-networking \
    --disable-multiprocessing --disable-tests --prefix=/opt/rtems-4.11	# 00:14
  make								# -j5	# 01:21
  make install								# 00:06

Compiling rtems-yaffs:

  cd rtems-yaffs2
  make -f Makefile.rtems
  make -f Makefile.rtems install

Compiling milkymist.git, libfpvm:

  cd software/libfpvm
  make install

Compiling milkymist.git, softusb-input:

  prerequisites:

  make -C software/libhpdmc
  make -C software/libnet
  make -C software/libbase

  make -C softusb-input
  make -C software/libhal
  make -C software/bios

  ./build_bios.sh

Compiling flickernoise.git:

  cd flickernoise/src
  make bin/flickernoise.fbi && m1nor bin/flickernoise.fbi

  (m1nor from wernermisc/m1/tools/)

Rebooting the M1:

  cd wernermisc/m1/jtag-boot
  make boot

Send patches:

  git send-email --cover-letter --thread --annotate f6c7474ae3b181157d8950e25c4705d53d9ae9c1

------------------------------

Draft items below:

---

Rebuild Flickernoise after updating the Navre firmware:

  milkymist.git:

  make -C softusb-input
  make -C softusb-input install

  flickernoise.git:

  cd src
  make clean && make -j 5 bin/flickernoise.fbi && m1nor bin/flickernoise.fbi

---

Synthesize the SoC:

cd boards/milkymist-one/flash
make -C ../synthesis -f Makefile.xst clean && make clean && time make soc.fpg
m1nor soc.fpg
# synthesis:	boards/milkymist-one/synthesis/build/system.srp
# timing:	boards/milkymist-one/synthesis/build/system-routed.par

---

debug:

flterm --gdb-passthrough  --port /dev/ttyUSB0 --kernel /dev/null
/home/qi/m1/gdb-7.3.1/gdb/gdb /home/qi/m1/flickernoise/src/bin/flickernoise
set remote interrupt-on-connect on
target remote /dev/pts/155