SoC Roadmap

From Milkymist Wiki

Jump to: navigation, search

Contents

[edit] Milkymist SoC 0.x series

[edit] 0.1 (August 20th, 2009)

  • First release (pre-alpha)
  • Can render a simplified version of "Geiss - Cosmic Dust 2"
  • Xilinx ML401 support only

[edit] 0.1.1 (August 24th, 2009)

[edit] 0.1.2 (September 12th, 2009)

  • BIOS boot screen
  • Chroma key support in TMU
  • Documentation for TMU improvements in 0.3
  • Minor bugfixes

[edit] 0.1.3 (November 14th, 2009)

  • Directory reorganization
  • GPLv3 license
  • Preliminary support for external software emulation library
  • Support for warm boot (from Takeshi)
  • Support for PS/2 (from Takeshi)
  • Edge-sensitive interrupts on all cores
  • Documentation update

[edit] 0.2 (January 16th, 2010)

  • Support for Ethernet (using Opencores ethmac)
  • PS/2 write support (Takeshi)
  • Hard reset support
  • Dropped support for the Avnet Spartan-3A board, now available as a fork
  • flterm 1.1 (now has default load addresses)
  • Upgraded to LatticeMico32 3.5
  • Reduced drive strength for SystemACE
  • New splash screen

[edit] 0.2.1 (January 31st, 2010)

  • Fixed DRAM write-to-read timing violation (Zeus)
  • Improved DRAM read-to-write and write-to-write timing (Zeus)
  • Cache coherent VGA framebuffer transactions
  • Minor fixes and cleanups

[edit] 0.3 (February 18th, 2010)

  • Major TMU redesign (TMU2):
    • Improved performance (2-3 times faster)
    • Rectangular rendering primitive
    • Bilinear texture filtering
    • Texture wrapping
    • Subpixel texture resolution
    • New vertex format
  • PFPU modified to support the new TMU vertex format
  • Additional MilkDrop features in the demo firmware:
    • More wave modes
    • Borders
    • Motion vectors (experimental)
    • Texture wrapping
    • Random preset chooser
    • Fine-grained decay

[edit] 0.4 (March 8th, 2010)

  • New, light Ethernet MAC (Minimac)
  • TFTP network boot from the BIOS
  • Fixed TMU2 interpolation (bug reported by Jacky)

[edit] 0.5 (April 18th, 2010)

  • System capabilities register
  • Memory performance monitoring (retrieves memory bandwidth utilization and average memory access time from the live system)
  • New PFPU instructions:
    • QUAKE (Quake-III style inverse square root approximation)
    • IF (conditional)
    • TSIGN (sign manipulation)
  • Translucency (alpha) support in TMU
  • Faster FastMemoryLink arbiter
  • Fixed DRAM write-to-read (tWTR) timing violation on fully pipelined transfers
  • New FPVM (Floating Point Virtual Machine) library for runtime compilation of PFPU programs
    • High-level API makes it easy to use the PFPU
    • Supports addition, subtraction, multiplication, fast inverse square root, square root, division (experimental), modulo (experimental), integer/float conversions, comparisons (above/below/equal), conditional statements (if), absolute value, sine, cosine, integer part, min(), max()
  • New patch parser
  • New renderer features
    • Configurable per-vertex equations
    • Video echo
    • Warp
    • Scale (sx/sy)
    • Q variables
  • New patches included
  • irender command to input patch code on the serial console
  • Build host tools using clang instead of GCC
  • Software bugfixes
    • TFTP boot in QEMU
    • Correct placement of motion vectors
    • LCD user interface race conditions
    • Renderer stop race conditions

[edit] 0.5.1 (June 10th, 2010)

  • Complete thesis report in documentation
  • 8kB->16kB texel cache
  • TMU performance monitoring
  • Fixed texel cache initialization bug
  • Fixed handling of variables read before written in per-vertex equations
  • All peripherals enabled by default (including Ethernet)
  • New SDRAM initialization system, easy compatibility with 3rd party bootloaders
  • Removed on-chip SRAM (no longer needed)
  • Increased Minimac FIFO sizes to prevent xflows
  • Faster line drawing code
  • Now comes with 62 patches

[edit] 0.6 (June 27th, 2010)

  • Support for the Milkymist One
  • OSD patch selection
  • New asynchronous FIFO design
  • Improved TMU2 rounding mode
  • Improved decay handling
  • 16kB->32kB texel cache
  • 32kB L2 cache
  • Smaller and direct mapped L1 cache
  • Limit FPS to 25 instead of 30 to ensure smooth execution on more presets
  • More patches

[edit] 0.7 (July 23rd, 2010)

  • Support for video input (not used by the demo renderer)
  • Support for MIDI (not used by the demo renderer)
  • Support for VESA DDC (not used by the demo renderer)
  • Support for RC5 infrared remote control (usable in OSD menu)
  • Flash write support (contributed by Michael Walle)
  • New memory map (contributed by Michael Walle)
  • Experimental "softusb" USB core (no functional firmware yet)
  • Increased Minimac FIFO sizes
  • Improved netboot code

[edit] 0.8 (August 14th, 2010)

  • Support for DMX
  • Support for memory card
  • Support for Synplify synthesis
  • Fixed a bug that prevented access to the upper 64M of SDRAM. The whole 128M are addressable now.
  • Rewritten USB PHY
  • All AVR Classic instructions in Navré, except conditional jumps on I/O registers
  • Navré bugfixes

[edit] 0.9 (October 3rd, 2010)

  • Extensive Navré core testing
  • Navré bugfixes
  • Wishbone burst support in L2 cache
  • Crossbar Wishbone switch
  • LM32 JTAG debugger support (Michael Walle)
  • Support for USB input devices (mouse + keyboard)
  • Text console in BIOS and demo firmware
  • MIDI THRU support
  • New memory map (Michael Walle)
  • New flash map
  • Standby and rescue bitstreams
  • ICAP write support
  • Fixed DDC EDID read, now works reliably with all monitors
  • Reduced frequency to 80MHz
  • Memory tester core
  • Board revision readout
  • Fixed SDRAM reset bug
  • Code cleanups

[edit] Milkymist SoC 1.x series

[edit] 1.0RC1 (November 18th, 2010)

  • USB bugfixes
  • MAC address readout
  • SoC version readout
  • Debugger bugfixes (Michael Walle)
  • Documentation update

[edit] 1.0RC2 (December 23rd, 2010)

  • Fix makeraw extension detection
  • Do not require LCK_cycle for standby bitstream
  • TMU: additive drawing
  • Generate byte-swapped raw bitstream images for Flickernoise flashing
  • Non-essential cores disabled in standby bitstream to ease timing closure

[edit] 1.0RC3 (April 6th, 2011)

  • Support video mode switching up to 1024x768
  • Support WM9707 audio codec
  • Support GDB serial debugging (Michael Walle)
  • flterm GDB pass-through (Michael Walle)
  • Full support for UrJTAG loading and flashing
  • Support LZMA decompression of flash boot images
  • GSI LM32 patches
  • Re-enabled all cores in rescue mode (works with ISE 13.1)
  • Support PCB revision 2 (RC3 run)
  • Memory card bugfixes

[edit] 1.0RC4 (May 23rd, 2011)

  • New Ethernet MAC (minimac2)
  • BIOS: report rescue mode to booted application
  • BIOS: disable splash screen display with a short press of the power button
  • GDB: fix max packet size reporting
  • Standby: debounce keys, only power up on rising edge

[edit] 1.0 (July 10th, 2011)

  • Fixed RC5 sampling point
  • Fixed BT656CAP IRQ timing
  • Reset Ethernet PHY during BIOS startup
  • gdbstub: disable break on entering debug ROM

[edit] 1.0.1 (November 13th, 2011)

  • Catch NULL pointers and generate bus errors
  • flterm: log support (Xiangfu Liu)
  • LM32: update to upstream 3.6 sources (Michael Walle)
  • Enable ISE 13.2 BRAM silicon bug workaround (Xilinx AR 39999)
  • gdbstub: save and restore IE/IM/IP (Michael Walle)
  • gdbstub: fix off-by-one error (Michael Walle)

[edit] 1.1 (November 29th, 2011)

  • TMU prefetch
  • New UART core (Michael Walle)
  • USB firmware bugfixes (Werner Almesberger)
  • USB DPLL fixes
  • 8K softusb program memory
  • Auto-on
  • gdbstub: set correct uart speed (Michael Walle)
  • SoC frequency readable from sysctl (Michael Walle)
  • Writable gdbstub (Michael Walle)
  • flterm: make kernel image optional (Michael Walle)

[edit] 1.2 (March 1st, 2012)

  • Experimental support for USB-MIDI devices (Werner Almesberger)
  • New PFPU compiler (Werner Almesberger)
  • Adjusted VGA timings for compatibility with more screens (Xiangfu Liu)
  • Removed demo firmware
  • Makefile cleanup (Werner Almesberger, Xiangfu Liu)

[edit] Other ideas

  • More precise VGA timings
  • Support for video encoding and network streaming
  • Support for scaled video output
  • Support for color inversion in TMU
  • Digital video output

[edit] Milkymist SoC 2.x series?

  • PHT: Pluggable HDL Templates (automatically generates interconnect, arbiters, etc.)
  • HPDMC2: out-of-order SDRAM controller with QoS and page hit optimization
  • Split transaction FML2 bus
  • Further resource-optimized CSR2 bus
  • Separate DMA backbone
  • Scatter-gather DMA controller
  • Mico32 MMU
  • 32bpp RGBA graphics everywhere

[edit] Milkymist SoC 3.x series?

  • On-the-fly hardware compilation of shaders + partial reconfiguration
Personal tools