Archive for category Milkymist
Milkymist One flasher
Michael writes:
i’m happy to announce that we are now able to program the onboard flash without the Xilinx tools (and JTAG pod). Please have a look at [1] and its README.
ATM it works with my homemade FT2232C JTAG pod but should work with every other supported JTAG cable (by UrJTAG), too. Esp. the FT2232H based one by Yanjun Luo.
The time for flashing the bitstream is around 25s (without verify).
So, this means we have to use one less proprietary and bloated program. Thanks!
Workshop Réalisation de patches Milkymist, 19 août 19:45@/tmp/lab
Posted by lekernel in Geek collectives, Milkymist on August 14, 2010
Video Jam Session sur plate-forme Milkymist One!
CE QUE C’EST
- Une introduction au système de synthèse de visuels sur [http://www.milkymist.org Milkymist] (venez à l’heure pour ne pas manquer la présentation)
- L’écriture de vos propre patches
- L’occasion de jeter un oeil aux premiers prototypes…
- …et de les utiliser pour tester vos propre patches!
- L’occasion d’une soirée sympa, même si vous venez en “spectateur”
CE QUE CE N’EST PAS
- Un workshop FPGA
- Un workshop de développement de logiciel embarqué
- Un workshop nécessitant des compétences techniques avancées
- Une démonstration exhaustive de toutes les possibilités de la plate-forme, il manque encore énormément de choses qui prendront des mois à développer.
- Une représentation de la facilité d’utilisation finale de la plate-forme; l’interface graphique intégrée n’est pas encore développée.
AMENEZ
- Pour interagir avec les visuels et/ou pour l’ambiance de la salle:
- Vos tables DMX, qui pourront servir à interagir avec votre patch
- Vos spots (PAR à LED ou non) DMX qui pourront etre contrôlés par le patch. Plus il y en aura, plus ça mettra une ambiance psyché dans la salle, façon trip glasses sans les lunettes.
- Un gradateur DMX si vous avez des vieux PARs à incandescence.
- Vos claviers et contrôleurs MIDI, qui pourront servir à interagir avec votre patch
- Câbles DMX (XLR 3 broches) et MIDI
- Vos CDs, vinyls, … ou toute autre source sonore, vous pouvez aussi venir mixer en live
Ca réagit bien à la techno minimale avec des bonnes basses.
INFOS PRATIQUES
Jeudi 19 août à partir de 19:45 au /tmp/lab
Inscriptions sur la page du wiki /tmp/lab.
Comment venir: les infos sont ici.
Milkymist SoC 0.8 released
- Support for DMX. Reflash your board now to play with RGB LED fixtures and DMX controllers
DMX channels 1-4 are mapped as dmx1-4 for the output port and idmx1-4 for the input port in the patches. See the two example patches using DMX. And no, even though the FPGA core supports all the 512 DMX channels, there is no way to use other channels in the patches without modifying the software which is just “proof of concept” now. - Support for memory card (in 4-bit SD mode, not SPI)
- 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é (ie full C toolchain support), except conditional jumps on I/O registers (won’t be needed)
- Navré bugfixes
Despite some improvements (which were enough to validate the PCB design), USB still does not work completely and the road is still long before we have full OHCI support. This will be part of the next release.
Milkymist SoC 0.7 released
Changes:
- 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
Follow those instructions to upgrade your board – as the memory map changed since the last release, you will need to upgrade to be able to run the latest software.
Building a free OHCI host controller for USB
Implementing an OHCI host controller is not a straightforward task. The USB protocol is quite complex – making full hardware implementations difficult and inefficient – and its polled nature would put a heavy burden on a CPU if it were all implemented in software. The OHCI specification also makes things worse with regards to the controller’s complexity, by offloading a lot of work to the controller hardware.
An hybrid solution, dubbed “softusb”, was therefore chosen. The USB controller includes a small dedicated microprocessor that runs a software version of an OHCI-compliant USB host stack. Only the parts that need very precise timing – namely data serialization and deserialization – is fully implemented in hardware. It is noteworthy that this approach enables switching between a host and a device controller by simply replacing the microprocessor’s program (and adding the appropriate pull-up/pull-down resistors on the D+/D-).
After unsuccessful experiments with ZPU which turned out to be extremely slow and realizing that all other open source small microprocessors were in general very bad, I ended up designing my own AVR compatible core called Navré.
The Navré core is built on the same 2-stage pipelined architecture as the original AVR, and also executes most instructions in one cycle. On Spartan-6 technology, it occupies about 400 LUTs and can run at speeds between 60MHz and 85MHz (depending on the memory configuration), well above the 48MHz clock used for USB. As far as I know, this makes it the fastest and smallest 8-bit open source microprocessor on the planet, which runs code one order of magnitude faster than ZPU and does not waste FPGA resources on a 32-bit datapath which is not really needed for the USB application. The Navré source code is extremely simple, with less than 700 lines of self-contained Verilog HDL.
Currently, all “minimal core” instructions are implemented, and “classic core” instructions are being worked on so that Navré will have full C compiler toolchain support enabling the efficient development of the USB stack. More work should also go in the validation of the core, perhaps using a test suite similar to that of simulavr. Nonetheless, it is capable today of running correctly small C and assembler programs such as the recursive computation of Fibonacci numbers.
The Navré core uses on-chip RAM to store its program (loaded by the main CPU of the SoC) and data. The data memory is shared with the main SoC CPU, and will be used to store the OHCI descriptors and data. It sports a 32-bit interface on the SoC side to enable high bandwidth transfers of USB data without hogging the main CPU’s time.
Once completed, the softusb core will power the two USB ports of the Milkymist One interactive VJ station. An OHCI driver is already available for RTEMS.
NB: I will be looking shortly for a USB protocol analyzer to assist me with the debugging of the OHCI stack. If you happen to sell or lend one or know where I could get one for cheap, let me know. Thanks!
RMLL slides
The slides for the upcoming Milkymist presentation at RMLL (Bordeaux, France, July 6-11 2010) are available here (in French).
So, see you at RMLL! I should also have a demonstration board on the Hackable Devices booth for you to play with.
All M1 boards are gone
I am pleased to announce that we now have allocated all our Milkymist One prototypes to developers all around the globe. Thank you for your great interest in the project!
If you are interested in getting a board and are coming too late, you can still send an email to be on the waiting list for the next PCB run.
There are other ways to get involved. Software development (Flickernoise, Genode FX, RTEMS) is also a major component of the project and can be done in the QEMU emulator or, in some cases, even by compiling for a different architecture (such as the popular Linux/x86).
