diff --git a/milkymist-wiki/wiki.html b/milkymist-wiki/wiki.html new file mode 100644 index 0000000..1e2d713 --- /dev/null +++ b/milkymist-wiki/wiki.html @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Main Page

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+


+Welcome to the Milkymist wiki +

Consult the main project page for downloads and official information. +

NB! Because of the impossible combination of spam and vandalism problems and of lack of time to fix them properly, account creation is currently disabled. Contact sebastien at milkymist -dot- org to get an account and the possibility to edit pages here. +

+ + +
+

The Milkymist Code and Issue Tracker. +

+
+

[edit] Resources for users

+ +

[edit] Milkymist Vacation Club

+
+ +

[edit] Development

+

[edit] Getting started

+ +

[edit] SoC/FPGA

+ +

[edit] General software

+ +

[edit] RTEMS

+ +

[edit] Flickernoise

+ +

[edit] uClinux

+ +

[edit] Milkymist devices

+ +

[edit] Code

+

You can find all the code on our GitHub organization page. +

+

[edit] Resources

+ + + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/images/0/03/DDR_U14_1-6_100uF_b.jpg b/milkymist-wiki/wiki/images/0/03/DDR_U14_1-6_100uF_b.jpg new file mode 100644 index 0000000..7492dd8 Binary files /dev/null and b/milkymist-wiki/wiki/images/0/03/DDR_U14_1-6_100uF_b.jpg differ diff --git a/milkymist-wiki/wiki/images/1/16/DDR_U14_1-6_10nF.jpg b/milkymist-wiki/wiki/images/1/16/DDR_U14_1-6_10nF.jpg new file mode 100644 index 0000000..3cd7046 Binary files /dev/null and b/milkymist-wiki/wiki/images/1/16/DDR_U14_1-6_10nF.jpg differ diff --git a/milkymist-wiki/wiki/images/1/18/Kristianpaul-20100712T040620-hpurqrr.png b/milkymist-wiki/wiki/images/1/18/Kristianpaul-20100712T040620-hpurqrr.png new file mode 100644 index 0000000..267fa86 Binary files /dev/null and b/milkymist-wiki/wiki/images/1/18/Kristianpaul-20100712T040620-hpurqrr.png differ diff --git a/milkymist-wiki/wiki/images/2/23/Counter.diff b/milkymist-wiki/wiki/images/2/23/Counter.diff new file mode 100644 index 0000000..0fc5c35 --- /dev/null +++ b/milkymist-wiki/wiki/images/2/23/Counter.diff @@ -0,0 +1,283 @@ +diff --git a/boards/avnet-sp3aevl/rtl/system.v b/boards/avnet-sp3aevl/rtl/system.v +index 33e7b26..178cfb1 100644 +--- a/boards/avnet-sp3aevl/rtl/system.v ++++ b/boards/avnet-sp3aevl/rtl/system.v +@@ -36,8 +36,7 @@ module system( + + // GPIO + input [2:0] btn, // 3 +- output [3:0] led, // 2 (2 LEDs for UART activity) +- input count ++ output [3:0] led // 2 (2 LEDs for UART activity) + ); + + //------------------------------------------------------------------ +@@ -309,8 +308,7 @@ wire [13:0] csr_a; + wire csr_we; + wire [31:0] csr_dw; + wire [31:0] csr_dr_uart, +- csr_dr_sysctl, +- csr_dr_counter; ++ csr_dr_sysctl; + + //--------------------------------------------------------------------------- + // WISHBONE to CSR bridge +@@ -334,7 +332,6 @@ csrbrg csrbrg( + .csr_di( + csr_dr_uart + |csr_dr_sysctl +- |csr_dr_counter + ) + ); + +@@ -519,30 +516,4 @@ sysctl #( + .hard_reset(hard_reset) + ); + +- +-//--------------------------------------------------------------------------- +-// Counter +-//--------------------------------------------------------------------------- +-//wire [13:0] gpio_output +- +-counter #( +- .csr_addr(4'h2) +-) counter ( +- .sys_clk(sys_clk), +- .sys_rst(sys_rst), +- +- //.gpio_irq(gpio_irq), +- //.timer0_irq(timer0_irq), +- //.timer1_irq(timer1_irq), +- +- .csr_a(csr_a), +- .csr_we(csr_we), +- .csr_di(csr_dw), +- .csr_do(csr_dr_counter), //with CSR remenber add it there too +- +- .count_input(count) //count is fot the pin +- +-// .hard_reset(hard_reset) +-); +- + endmodule +diff --git a/boards/avnet-sp3aevl/sources.mak b/boards/avnet-sp3aevl/sources.mak +index 47ea9e8..797628a 100644 +--- a/boards/avnet-sp3aevl/sources.mak ++++ b/boards/avnet-sp3aevl/sources.mak +@@ -22,6 +22,5 @@ NORFLASH_SRC=$(wildcard $(CORES_DIR)/norflash8/rtl/*.v) + BRAM_SRC=$(wildcard $(CORES_DIR)/bram/rtl/*.v) + UART_SRC=$(wildcard $(CORES_DIR)/uart/rtl/*.v) + SYSCTL_SRC=$(wildcard $(CORES_DIR)/sysctl/rtl/*.v) +-COUNTER_SRC=$(wildcard $(CORES_DIR)/counter/rtl/*.v) + +-CORES_SRC=$(CONBUS_SRC) $(LM32_SRC) $(CSRBRG_SRC) $(NORFLASH_SRC) $(BRAM_SRC) $(UART_SRC) $(SYSCTL_SRC) $(COUNTER_SRC) ++CORES_SRC=$(CONBUS_SRC) $(LM32_SRC) $(CSRBRG_SRC) $(NORFLASH_SRC) $(BRAM_SRC) $(UART_SRC) $(SYSCTL_SRC) +diff --git a/boards/avnet-sp3aevl/synthesis/common.ucf b/boards/avnet-sp3aevl/synthesis/common.ucf +index 97fe532..60f9568 100644 +--- a/boards/avnet-sp3aevl/synthesis/common.ucf ++++ b/boards/avnet-sp3aevl/synthesis/common.ucf +@@ -61,9 +61,6 @@ NET "led(1)" LOC = C16 | IOSTANDARD = LVCMOS33; + NET "led(2)" LOC = C15 | IOSTANDARD = LVCMOS33; + NET "led(3)" LOC = B15 | IOSTANDARD = LVCMOS33; + +-# ==== Counter ==== +-NET "count" LOC = E13 | IOSTANDARD = LVCMOS33; +- + # ==== Prohibit Special Pins ==== + CONFIG PROHIBIT = T12; # FPGA_INIT_B + CONFIG PROHIBIT = D5; # FPGA_PUDC +diff --git a/cores/counter/doc/Makefile b/cores/counter/doc/Makefile +deleted file mode 100644 +index 884d3c0..0000000 +--- a/cores/counter/doc/Makefile ++++ /dev/null +@@ -1,23 +0,0 @@ +-TEX=counter.tex +- +-DVI=$(TEX:.tex=.dvi) +-PS=$(TEX:.tex=.ps) +-PDF=$(TEX:.tex=.pdf) +-AUX=$(TEX:.tex=.aux) +-LOG=$(TEX:.tex=.log) +- +-all: $(PDF) +- +-%.dvi: %.tex +- latex $< +- +-%.ps: %.dvi +- dvips $< +- +-%.pdf: %.ps +- ps2pdf $< +- +-clean: +- rm -f $(DVI) $(PS) $(PDF) $(AUX) $(LOG) +- +-.PHONY: clean +diff --git a/cores/counter/doc/counter.tex b/cores/counter/doc/counter.tex +deleted file mode 100644 +index 3b8a917..0000000 +--- a/cores/counter/doc/counter.tex ++++ /dev/null +@@ -1,46 +0,0 @@ +-\documentclass[a4paper,11pt]{article} +-\usepackage{fullpage} +-\usepackage[latin1]{inputenc} +-\usepackage[T1]{fontenc} +-\usepackage[normalem]{ulem} +-\usepackage[english]{babel} +-\usepackage{listings,babel} +-\lstset{breaklines=true,basicstyle=\ttfamily} +-\usepackage{graphicx} +-\usepackage{moreverb} +-\usepackage{url} +-\usepackage{tabularx} +- +-\title{Simple Counter} +-\author{Cristian Paul Penaranda Rojas} +-\date{September 2010} +-\begin{document} +-\setlength{\parindent}{0pt} +-\setlength{\parskip}{5pt} +-\maketitle{} +-\section{Overview} +- +-The counter have basic functionallity, is not intended for real applications yet, just educational porpuses: +- +-\section{Control} +- +-The counter can support maximum count of 32 bits also enable/disable by control registers. +- +-It is possible to generate an interrupt when the counter overflow. +- +-\begin{tabularx}{\textwidth}{|l|l|l|X|} +-\hline +-\bf{Offset} & \bf{Read/Write} & \bf{Default} & \bf{Description} \\ +-\hline +-0x00 & W & 0 & Enable. \\ +-\hline +-0x04 & R & N/A & Count. \\ +-\hline +-\end{tabularx}\\ +- +- +-\section*{Copyright notice} +-Copyright \copyright 2010 Cristian Paul Penaranda Rojas. \\ +-Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the LICENSE.FDL file at the root of the Milkymist source distribution. +- +-\end{document} +diff --git a/cores/counter/rtl/count.v b/cores/counter/rtl/count.v +deleted file mode 100644 +index ae3e43a..0000000 +--- a/cores/counter/rtl/count.v ++++ /dev/null +@@ -1,107 +0,0 @@ +-/* +- * Milkymist VJ SoC +- * +- * Copyright (C) 2010 Cristian Paul Peñaranda Rojas +- * Copyright (C) 2007, 2008, 2009, 2010 Sebastien Bourdeauducq +- * +- * This program is free software: you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation, version 3 of the License. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program. If not, see . +- */ +- +-module counter #( +- parameter csr_addr = 4'h0 +-) ( +- input sys_clk, +- input sys_rst, +- +- /* Interrupts & count */ +- //output reg count_irq, +- output reg [31:0] counter0, +- output reg [31:0] counter_c0, +- output reg [31:0] counter_in0, +- +- /* CSR bus interface */ +- input [13:0] csr_a, +- input csr_we, +- input [31:0] csr_di, +- output reg [31:0] csr_do, +- +- /* count clk input*/ +- input count_input +- +-); +- +- +- +-/* Synchronize the input */ +-reg count_in0; +-reg count_in; +-always @(posedge sys_clk) begin +- count_in0 <= count_input; +- count_in <= count_in0; +-end +- +-/* Detect level changes and generate count */ +-reg count_inbefore; +-always @(posedge sys_clk) count_inbefore <= count_in; +-wire count_diff = count_inbefore ^ count_in; +-reg count_irqen; +-always @(posedge sys_clk) begin +- if(sys_rst) +- counter0 <= 32'd0; +- else +- counter0 <= counter0 + 1; //count +-end +- +-/* +- * Logic and CSR interface +- */ +- +-wire csr_selected = csr_a[13:10] == csr_addr; +-//counter_0 = counter0; +-//wire [31:0] counter_0 = {counter0}; +-wire [31:0] counter_0 = counter0; +-//:counter0 = counter_c0; +- +-always @(posedge sys_clk) begin +- if(sys_rst) begin +- csr_do <= 32'd0; +- +-// counter_irq <= 1'b0; +- +- counter_c0 <= 32'd0; +- +- if(csr_selected) begin +- /* CSR Writes */ +- if(csr_we) begin +- case(csr_a[3:0]) +- /* control registers */ +- // 0000 enable +- // 0001 counter soft reset +- //4'b0000: en1 <= csr_di[0]; +- //4'b0001: counter_irqen <= csr_di[ninputs-1:0]; +- 4'b0000: counter_in0 <= csr_di[31:0]; //not used yet +- endcase +- end +- +- /* CSR Reads */ +- case(csr_a[3:0]) +- /* status registers */ +- /* 0100 count*/ +- 4'b0100: csr_do <= counter_0; +- //pending irq when counter overflow +- endcase +- end +- end +-end +- +-endmodule diff --git a/milkymist-wiki/wiki/images/2/26/Pulse_A5_U15_49ohms_100uF.jpg b/milkymist-wiki/wiki/images/2/26/Pulse_A5_U15_49ohms_100uF.jpg new file mode 100644 index 0000000..6bb8b60 Binary files /dev/null and b/milkymist-wiki/wiki/images/2/26/Pulse_A5_U15_49ohms_100uF.jpg differ diff --git a/milkymist-wiki/wiki/images/2/2a/Patches_language_Illustrations_1.png b/milkymist-wiki/wiki/images/2/2a/Patches_language_Illustrations_1.png new file mode 100644 index 0000000..e2ba659 Binary files /dev/null and b/milkymist-wiki/wiki/images/2/2a/Patches_language_Illustrations_1.png differ diff --git a/milkymist-wiki/wiki/images/4/44/Patches_language_Illustrations_3.png b/milkymist-wiki/wiki/images/4/44/Patches_language_Illustrations_3.png new file mode 100644 index 0000000..8d45c35 Binary files /dev/null and b/milkymist-wiki/wiki/images/4/44/Patches_language_Illustrations_3.png differ diff --git a/milkymist-wiki/wiki/images/4/45/DQ14_U15_33ohms_10nF_a.jpg b/milkymist-wiki/wiki/images/4/45/DQ14_U15_33ohms_10nF_a.jpg new file mode 100644 index 0000000..f39db50 Binary files /dev/null and b/milkymist-wiki/wiki/images/4/45/DQ14_U15_33ohms_10nF_a.jpg differ diff --git a/milkymist-wiki/wiki/images/4/46/FN110_DesigningforDDR3MemoryonFreescaleMicroprocessors.pdf.bz2 b/milkymist-wiki/wiki/images/4/46/FN110_DesigningforDDR3MemoryonFreescaleMicroprocessors.pdf.bz2 new file mode 100644 index 0000000..429c6c2 Binary files /dev/null and b/milkymist-wiki/wiki/images/4/46/FN110_DesigningforDDR3MemoryonFreescaleMicroprocessors.pdf.bz2 differ diff --git a/milkymist-wiki/wiki/images/4/4e/Patches_language_Illustrations_4.png b/milkymist-wiki/wiki/images/4/4e/Patches_language_Illustrations_4.png new file mode 100644 index 0000000..258e320 Binary files /dev/null and b/milkymist-wiki/wiki/images/4/4e/Patches_language_Illustrations_4.png differ diff --git a/milkymist-wiki/wiki/images/5/53/Pulse_A5_U15_33ohms_10nF.jpg b/milkymist-wiki/wiki/images/5/53/Pulse_A5_U15_33ohms_10nF.jpg new file mode 100644 index 0000000..5f3f414 Binary files /dev/null and b/milkymist-wiki/wiki/images/5/53/Pulse_A5_U15_33ohms_10nF.jpg differ diff --git a/milkymist-wiki/wiki/images/6/61/Mmarduino.jpg b/milkymist-wiki/wiki/images/6/61/Mmarduino.jpg new file mode 100644 index 0000000..9c13c0d Binary files /dev/null and b/milkymist-wiki/wiki/images/6/61/Mmarduino.jpg differ diff --git a/milkymist-wiki/wiki/images/6/65/Curlybracket-light-04.jpg b/milkymist-wiki/wiki/images/6/65/Curlybracket-light-04.jpg new file mode 100644 index 0000000..b783d29 Binary files /dev/null and b/milkymist-wiki/wiki/images/6/65/Curlybracket-light-04.jpg differ diff --git a/milkymist-wiki/wiki/images/6/68/Patches_language_Illustrations_8.png b/milkymist-wiki/wiki/images/6/68/Patches_language_Illustrations_8.png new file mode 100644 index 0000000..7ac5196 Binary files /dev/null and b/milkymist-wiki/wiki/images/6/68/Patches_language_Illustrations_8.png differ diff --git a/milkymist-wiki/wiki/images/7/72/Patches_language_Illustrations_7.png b/milkymist-wiki/wiki/images/7/72/Patches_language_Illustrations_7.png new file mode 100644 index 0000000..3f666ba Binary files /dev/null and b/milkymist-wiki/wiki/images/7/72/Patches_language_Illustrations_7.png differ diff --git a/milkymist-wiki/wiki/images/7/7f/Yann-addr.png b/milkymist-wiki/wiki/images/7/7f/Yann-addr.png new file mode 100644 index 0000000..0cc8f1a Binary files /dev/null and b/milkymist-wiki/wiki/images/7/7f/Yann-addr.png differ diff --git a/milkymist-wiki/wiki/images/9/95/Patches_language_Illustrations_6.png b/milkymist-wiki/wiki/images/9/95/Patches_language_Illustrations_6.png new file mode 100644 index 0000000..5f6434f Binary files /dev/null and b/milkymist-wiki/wiki/images/9/95/Patches_language_Illustrations_6.png differ diff --git a/milkymist-wiki/wiki/images/9/99/Comet.png b/milkymist-wiki/wiki/images/9/99/Comet.png new file mode 100644 index 0000000..9f366c0 Binary files /dev/null and b/milkymist-wiki/wiki/images/9/99/Comet.png differ diff --git a/milkymist-wiki/wiki/images/9/9d/Ddv.png b/milkymist-wiki/wiki/images/9/9d/Ddv.png new file mode 100644 index 0000000..b385406 Binary files /dev/null and b/milkymist-wiki/wiki/images/9/9d/Ddv.png differ diff --git a/milkymist-wiki/wiki/images/a/a1/C165_10nF.jpg b/milkymist-wiki/wiki/images/a/a1/C165_10nF.jpg new file mode 100644 index 0000000..088a770 Binary files /dev/null and b/milkymist-wiki/wiki/images/a/a1/C165_10nF.jpg differ diff --git a/milkymist-wiki/wiki/images/a/a4/C165_100uF_b.jpg b/milkymist-wiki/wiki/images/a/a4/C165_100uF_b.jpg new file mode 100644 index 0000000..6eec435 Binary files /dev/null and b/milkymist-wiki/wiki/images/a/a4/C165_100uF_b.jpg differ diff --git a/milkymist-wiki/wiki/images/b/b0/Screenshot-video-in.png b/milkymist-wiki/wiki/images/b/b0/Screenshot-video-in.png new file mode 100644 index 0000000..a122e3f Binary files /dev/null and b/milkymist-wiki/wiki/images/b/b0/Screenshot-video-in.png differ diff --git a/milkymist-wiki/wiki/images/b/b4/Clk_DDR.jpg b/milkymist-wiki/wiki/images/b/b4/Clk_DDR.jpg new file mode 100644 index 0000000..3ff8b4b Binary files /dev/null and b/milkymist-wiki/wiki/images/b/b4/Clk_DDR.jpg differ diff --git a/milkymist-wiki/wiki/images/b/bf/Patches_language_Illustrations_5.png b/milkymist-wiki/wiki/images/b/bf/Patches_language_Illustrations_5.png new file mode 100644 index 0000000..65f4363 Binary files /dev/null and b/milkymist-wiki/wiki/images/b/bf/Patches_language_Illustrations_5.png differ diff --git a/milkymist-wiki/wiki/images/c/cd/DQ14_U15_33ohms_10nF_c.jpg b/milkymist-wiki/wiki/images/c/cd/DQ14_U15_33ohms_10nF_c.jpg new file mode 100644 index 0000000..f98a87c Binary files /dev/null and b/milkymist-wiki/wiki/images/c/cd/DQ14_U15_33ohms_10nF_c.jpg differ diff --git a/milkymist-wiki/wiki/images/d/d1/Mvc.jpg b/milkymist-wiki/wiki/images/d/d1/Mvc.jpg new file mode 100644 index 0000000..950c267 Binary files /dev/null and b/milkymist-wiki/wiki/images/d/d1/Mvc.jpg differ diff --git a/milkymist-wiki/wiki/images/d/d3/Wall_paper_1.png b/milkymist-wiki/wiki/images/d/d3/Wall_paper_1.png new file mode 100644 index 0000000..547b02e Binary files /dev/null and b/milkymist-wiki/wiki/images/d/d3/Wall_paper_1.png differ diff --git a/milkymist-wiki/wiki/images/d/d4/DQ14_U15_33ohms_10nF_b.jpg b/milkymist-wiki/wiki/images/d/d4/DQ14_U15_33ohms_10nF_b.jpg new file mode 100644 index 0000000..0c1579f Binary files /dev/null and b/milkymist-wiki/wiki/images/d/d4/DQ14_U15_33ohms_10nF_b.jpg differ diff --git a/milkymist-wiki/wiki/images/d/d7/Patches_language_Illustrations_2.png b/milkymist-wiki/wiki/images/d/d7/Patches_language_Illustrations_2.png new file mode 100644 index 0000000..06e9f36 Binary files /dev/null and b/milkymist-wiki/wiki/images/d/d7/Patches_language_Illustrations_2.png differ diff --git a/milkymist-wiki/wiki/images/d/d8/Flickernoise.png b/milkymist-wiki/wiki/images/d/d8/Flickernoise.png new file mode 100644 index 0000000..2afd41e Binary files /dev/null and b/milkymist-wiki/wiki/images/d/d8/Flickernoise.png differ diff --git a/milkymist-wiki/wiki/images/e/e3/Patches_language_Illustrations_9.png b/milkymist-wiki/wiki/images/e/e3/Patches_language_Illustrations_9.png new file mode 100644 index 0000000..c11e039 Binary files /dev/null and b/milkymist-wiki/wiki/images/e/e3/Patches_language_Illustrations_9.png differ diff --git a/milkymist-wiki/wiki/images/e/e4/Install2-300x200.jpg b/milkymist-wiki/wiki/images/e/e4/Install2-300x200.jpg new file mode 100644 index 0000000..5a22f49 Binary files /dev/null and b/milkymist-wiki/wiki/images/e/e4/Install2-300x200.jpg differ diff --git a/milkymist-wiki/wiki/images/f/fc/Keyboard-settings-bindings.png b/milkymist-wiki/wiki/images/f/fc/Keyboard-settings-bindings.png new file mode 100644 index 0000000..1111e38 Binary files /dev/null and b/milkymist-wiki/wiki/images/f/fc/Keyboard-settings-bindings.png differ diff --git a/milkymist-wiki/wiki/images/thumb/0/03/DDR_U14_1-6_100uF_b.jpg/120px-DDR_U14_1-6_100uF_b.jpg b/milkymist-wiki/wiki/images/thumb/0/03/DDR_U14_1-6_100uF_b.jpg/120px-DDR_U14_1-6_100uF_b.jpg new file mode 100644 index 0000000..2017271 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/0/03/DDR_U14_1-6_100uF_b.jpg/120px-DDR_U14_1-6_100uF_b.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/1/16/DDR_U14_1-6_10nF.jpg/120px-DDR_U14_1-6_10nF.jpg b/milkymist-wiki/wiki/images/thumb/1/16/DDR_U14_1-6_10nF.jpg/120px-DDR_U14_1-6_10nF.jpg new file mode 100644 index 0000000..681f6b5 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/1/16/DDR_U14_1-6_10nF.jpg/120px-DDR_U14_1-6_10nF.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/1/18/Kristianpaul-20100712T040620-hpurqrr.png/120px-Kristianpaul-20100712T040620-hpurqrr.png b/milkymist-wiki/wiki/images/thumb/1/18/Kristianpaul-20100712T040620-hpurqrr.png/120px-Kristianpaul-20100712T040620-hpurqrr.png new file mode 100644 index 0000000..7527a7b Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/1/18/Kristianpaul-20100712T040620-hpurqrr.png/120px-Kristianpaul-20100712T040620-hpurqrr.png differ diff --git a/milkymist-wiki/wiki/images/thumb/1/18/Kristianpaul-20100712T040620-hpurqrr.png/240px-Kristianpaul-20100712T040620-hpurqrr.png b/milkymist-wiki/wiki/images/thumb/1/18/Kristianpaul-20100712T040620-hpurqrr.png/240px-Kristianpaul-20100712T040620-hpurqrr.png new file mode 100644 index 0000000..de9c5c4 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/1/18/Kristianpaul-20100712T040620-hpurqrr.png/240px-Kristianpaul-20100712T040620-hpurqrr.png differ diff --git a/milkymist-wiki/wiki/images/thumb/1/18/Kristianpaul-20100712T040620-hpurqrr.png/800px-Kristianpaul-20100712T040620-hpurqrr.png b/milkymist-wiki/wiki/images/thumb/1/18/Kristianpaul-20100712T040620-hpurqrr.png/800px-Kristianpaul-20100712T040620-hpurqrr.png new file mode 100644 index 0000000..e0a7941 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/1/18/Kristianpaul-20100712T040620-hpurqrr.png/800px-Kristianpaul-20100712T040620-hpurqrr.png differ diff --git a/milkymist-wiki/wiki/images/thumb/2/26/Pulse_A5_U15_49ohms_100uF.jpg/120px-Pulse_A5_U15_49ohms_100uF.jpg b/milkymist-wiki/wiki/images/thumb/2/26/Pulse_A5_U15_49ohms_100uF.jpg/120px-Pulse_A5_U15_49ohms_100uF.jpg new file mode 100644 index 0000000..7692816 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/2/26/Pulse_A5_U15_49ohms_100uF.jpg/120px-Pulse_A5_U15_49ohms_100uF.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/2/2a/Patches_language_Illustrations_1.png/120px-Patches_language_Illustrations_1.png b/milkymist-wiki/wiki/images/thumb/2/2a/Patches_language_Illustrations_1.png/120px-Patches_language_Illustrations_1.png new file mode 100644 index 0000000..22df5ce Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/2/2a/Patches_language_Illustrations_1.png/120px-Patches_language_Illustrations_1.png differ diff --git a/milkymist-wiki/wiki/images/thumb/2/2a/Patches_language_Illustrations_1.png/320px-Patches_language_Illustrations_1.png b/milkymist-wiki/wiki/images/thumb/2/2a/Patches_language_Illustrations_1.png/320px-Patches_language_Illustrations_1.png new file mode 100644 index 0000000..270a391 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/2/2a/Patches_language_Illustrations_1.png/320px-Patches_language_Illustrations_1.png differ diff --git a/milkymist-wiki/wiki/images/thumb/4/44/Patches_language_Illustrations_3.png/120px-Patches_language_Illustrations_3.png b/milkymist-wiki/wiki/images/thumb/4/44/Patches_language_Illustrations_3.png/120px-Patches_language_Illustrations_3.png new file mode 100644 index 0000000..45f8b31 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/4/44/Patches_language_Illustrations_3.png/120px-Patches_language_Illustrations_3.png differ diff --git a/milkymist-wiki/wiki/images/thumb/4/44/Patches_language_Illustrations_3.png/320px-Patches_language_Illustrations_3.png b/milkymist-wiki/wiki/images/thumb/4/44/Patches_language_Illustrations_3.png/320px-Patches_language_Illustrations_3.png new file mode 100644 index 0000000..17aad0b Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/4/44/Patches_language_Illustrations_3.png/320px-Patches_language_Illustrations_3.png differ diff --git a/milkymist-wiki/wiki/images/thumb/4/45/DQ14_U15_33ohms_10nF_a.jpg/120px-DQ14_U15_33ohms_10nF_a.jpg b/milkymist-wiki/wiki/images/thumb/4/45/DQ14_U15_33ohms_10nF_a.jpg/120px-DQ14_U15_33ohms_10nF_a.jpg new file mode 100644 index 0000000..bd6379b Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/4/45/DQ14_U15_33ohms_10nF_a.jpg/120px-DQ14_U15_33ohms_10nF_a.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/4/4e/Patches_language_Illustrations_4.png/120px-Patches_language_Illustrations_4.png b/milkymist-wiki/wiki/images/thumb/4/4e/Patches_language_Illustrations_4.png/120px-Patches_language_Illustrations_4.png new file mode 100644 index 0000000..959c8bb Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/4/4e/Patches_language_Illustrations_4.png/120px-Patches_language_Illustrations_4.png differ diff --git a/milkymist-wiki/wiki/images/thumb/4/4e/Patches_language_Illustrations_4.png/320px-Patches_language_Illustrations_4.png b/milkymist-wiki/wiki/images/thumb/4/4e/Patches_language_Illustrations_4.png/320px-Patches_language_Illustrations_4.png new file mode 100644 index 0000000..141fc78 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/4/4e/Patches_language_Illustrations_4.png/320px-Patches_language_Illustrations_4.png differ diff --git a/milkymist-wiki/wiki/images/thumb/5/53/Pulse_A5_U15_33ohms_10nF.jpg/120px-Pulse_A5_U15_33ohms_10nF.jpg b/milkymist-wiki/wiki/images/thumb/5/53/Pulse_A5_U15_33ohms_10nF.jpg/120px-Pulse_A5_U15_33ohms_10nF.jpg new file mode 100644 index 0000000..e9ee767 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/5/53/Pulse_A5_U15_33ohms_10nF.jpg/120px-Pulse_A5_U15_33ohms_10nF.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/6/61/Mmarduino.jpg/120px-Mmarduino.jpg b/milkymist-wiki/wiki/images/thumb/6/61/Mmarduino.jpg/120px-Mmarduino.jpg new file mode 100644 index 0000000..c48e53d Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/6/61/Mmarduino.jpg/120px-Mmarduino.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/6/61/Mmarduino.jpg/400px-Mmarduino.jpg b/milkymist-wiki/wiki/images/thumb/6/61/Mmarduino.jpg/400px-Mmarduino.jpg new file mode 100644 index 0000000..c306d9a Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/6/61/Mmarduino.jpg/400px-Mmarduino.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/6/65/Curlybracket-light-04.jpg/120px-Curlybracket-light-04.jpg b/milkymist-wiki/wiki/images/thumb/6/65/Curlybracket-light-04.jpg/120px-Curlybracket-light-04.jpg new file mode 100644 index 0000000..bbb5a1d Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/6/65/Curlybracket-light-04.jpg/120px-Curlybracket-light-04.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/6/65/Curlybracket-light-04.jpg/320px-Curlybracket-light-04.jpg b/milkymist-wiki/wiki/images/thumb/6/65/Curlybracket-light-04.jpg/320px-Curlybracket-light-04.jpg new file mode 100644 index 0000000..15a05f8 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/6/65/Curlybracket-light-04.jpg/320px-Curlybracket-light-04.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/6/65/Curlybracket-light-04.jpg/800px-Curlybracket-light-04.jpg b/milkymist-wiki/wiki/images/thumb/6/65/Curlybracket-light-04.jpg/800px-Curlybracket-light-04.jpg new file mode 100644 index 0000000..0357608 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/6/65/Curlybracket-light-04.jpg/800px-Curlybracket-light-04.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/6/68/Patches_language_Illustrations_8.png/120px-Patches_language_Illustrations_8.png b/milkymist-wiki/wiki/images/thumb/6/68/Patches_language_Illustrations_8.png/120px-Patches_language_Illustrations_8.png new file mode 100644 index 0000000..a016936 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/6/68/Patches_language_Illustrations_8.png/120px-Patches_language_Illustrations_8.png differ diff --git a/milkymist-wiki/wiki/images/thumb/6/68/Patches_language_Illustrations_8.png/320px-Patches_language_Illustrations_8.png b/milkymist-wiki/wiki/images/thumb/6/68/Patches_language_Illustrations_8.png/320px-Patches_language_Illustrations_8.png new file mode 100644 index 0000000..0446ee7 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/6/68/Patches_language_Illustrations_8.png/320px-Patches_language_Illustrations_8.png differ diff --git a/milkymist-wiki/wiki/images/thumb/7/72/Patches_language_Illustrations_7.png/120px-Patches_language_Illustrations_7.png b/milkymist-wiki/wiki/images/thumb/7/72/Patches_language_Illustrations_7.png/120px-Patches_language_Illustrations_7.png new file mode 100644 index 0000000..6c6e05a Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/7/72/Patches_language_Illustrations_7.png/120px-Patches_language_Illustrations_7.png differ diff --git a/milkymist-wiki/wiki/images/thumb/7/72/Patches_language_Illustrations_7.png/320px-Patches_language_Illustrations_7.png b/milkymist-wiki/wiki/images/thumb/7/72/Patches_language_Illustrations_7.png/320px-Patches_language_Illustrations_7.png new file mode 100644 index 0000000..28ff591 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/7/72/Patches_language_Illustrations_7.png/320px-Patches_language_Illustrations_7.png differ diff --git a/milkymist-wiki/wiki/images/thumb/7/7f/Yann-addr.png/120px-Yann-addr.png b/milkymist-wiki/wiki/images/thumb/7/7f/Yann-addr.png/120px-Yann-addr.png new file mode 100644 index 0000000..da01b69 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/7/7f/Yann-addr.png/120px-Yann-addr.png differ diff --git a/milkymist-wiki/wiki/images/thumb/9/95/Patches_language_Illustrations_6.png/120px-Patches_language_Illustrations_6.png b/milkymist-wiki/wiki/images/thumb/9/95/Patches_language_Illustrations_6.png/120px-Patches_language_Illustrations_6.png new file mode 100644 index 0000000..5558476 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/9/95/Patches_language_Illustrations_6.png/120px-Patches_language_Illustrations_6.png differ diff --git a/milkymist-wiki/wiki/images/thumb/9/95/Patches_language_Illustrations_6.png/320px-Patches_language_Illustrations_6.png b/milkymist-wiki/wiki/images/thumb/9/95/Patches_language_Illustrations_6.png/320px-Patches_language_Illustrations_6.png new file mode 100644 index 0000000..785a414 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/9/95/Patches_language_Illustrations_6.png/320px-Patches_language_Illustrations_6.png differ diff --git a/milkymist-wiki/wiki/images/thumb/9/99/Comet.png/120px-Comet.png b/milkymist-wiki/wiki/images/thumb/9/99/Comet.png/120px-Comet.png new file mode 100644 index 0000000..593c348 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/9/99/Comet.png/120px-Comet.png differ diff --git a/milkymist-wiki/wiki/images/thumb/9/99/Comet.png/320px-Comet.png b/milkymist-wiki/wiki/images/thumb/9/99/Comet.png/320px-Comet.png new file mode 100644 index 0000000..d9ecff7 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/9/99/Comet.png/320px-Comet.png differ diff --git a/milkymist-wiki/wiki/images/thumb/9/99/Comet.png/800px-Comet.png b/milkymist-wiki/wiki/images/thumb/9/99/Comet.png/800px-Comet.png new file mode 100644 index 0000000..5f13d41 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/9/99/Comet.png/800px-Comet.png differ diff --git a/milkymist-wiki/wiki/images/thumb/9/9d/Ddv.png/120px-Ddv.png b/milkymist-wiki/wiki/images/thumb/9/9d/Ddv.png/120px-Ddv.png new file mode 100644 index 0000000..05f5722 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/9/9d/Ddv.png/120px-Ddv.png differ diff --git a/milkymist-wiki/wiki/images/thumb/9/9d/Ddv.png/320px-Ddv.png b/milkymist-wiki/wiki/images/thumb/9/9d/Ddv.png/320px-Ddv.png new file mode 100644 index 0000000..c55af3c Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/9/9d/Ddv.png/320px-Ddv.png differ diff --git a/milkymist-wiki/wiki/images/thumb/9/9d/Ddv.png/609px-Ddv.png b/milkymist-wiki/wiki/images/thumb/9/9d/Ddv.png/609px-Ddv.png new file mode 100644 index 0000000..819bab6 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/9/9d/Ddv.png/609px-Ddv.png differ diff --git a/milkymist-wiki/wiki/images/thumb/a/a1/C165_10nF.jpg/120px-C165_10nF.jpg b/milkymist-wiki/wiki/images/thumb/a/a1/C165_10nF.jpg/120px-C165_10nF.jpg new file mode 100644 index 0000000..2cccd05 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/a/a1/C165_10nF.jpg/120px-C165_10nF.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/a/a4/C165_100uF_b.jpg/120px-C165_100uF_b.jpg b/milkymist-wiki/wiki/images/thumb/a/a4/C165_100uF_b.jpg/120px-C165_100uF_b.jpg new file mode 100644 index 0000000..e19aff4 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/a/a4/C165_100uF_b.jpg/120px-C165_100uF_b.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/b/b0/Screenshot-video-in.png/120px-Screenshot-video-in.png b/milkymist-wiki/wiki/images/thumb/b/b0/Screenshot-video-in.png/120px-Screenshot-video-in.png new file mode 100644 index 0000000..c09b624 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/b/b0/Screenshot-video-in.png/120px-Screenshot-video-in.png differ diff --git a/milkymist-wiki/wiki/images/thumb/b/b0/Screenshot-video-in.png/200px-Screenshot-video-in.png b/milkymist-wiki/wiki/images/thumb/b/b0/Screenshot-video-in.png/200px-Screenshot-video-in.png new file mode 100644 index 0000000..2d4d7b2 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/b/b0/Screenshot-video-in.png/200px-Screenshot-video-in.png differ diff --git a/milkymist-wiki/wiki/images/thumb/b/b4/Clk_DDR.jpg/120px-Clk_DDR.jpg b/milkymist-wiki/wiki/images/thumb/b/b4/Clk_DDR.jpg/120px-Clk_DDR.jpg new file mode 100644 index 0000000..9f16760 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/b/b4/Clk_DDR.jpg/120px-Clk_DDR.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/b/bf/Patches_language_Illustrations_5.png/120px-Patches_language_Illustrations_5.png b/milkymist-wiki/wiki/images/thumb/b/bf/Patches_language_Illustrations_5.png/120px-Patches_language_Illustrations_5.png new file mode 100644 index 0000000..2f98d56 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/b/bf/Patches_language_Illustrations_5.png/120px-Patches_language_Illustrations_5.png differ diff --git a/milkymist-wiki/wiki/images/thumb/b/bf/Patches_language_Illustrations_5.png/320px-Patches_language_Illustrations_5.png b/milkymist-wiki/wiki/images/thumb/b/bf/Patches_language_Illustrations_5.png/320px-Patches_language_Illustrations_5.png new file mode 100644 index 0000000..0dfe0a4 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/b/bf/Patches_language_Illustrations_5.png/320px-Patches_language_Illustrations_5.png differ diff --git a/milkymist-wiki/wiki/images/thumb/c/cd/DQ14_U15_33ohms_10nF_c.jpg/120px-DQ14_U15_33ohms_10nF_c.jpg b/milkymist-wiki/wiki/images/thumb/c/cd/DQ14_U15_33ohms_10nF_c.jpg/120px-DQ14_U15_33ohms_10nF_c.jpg new file mode 100644 index 0000000..8dd69d9 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/c/cd/DQ14_U15_33ohms_10nF_c.jpg/120px-DQ14_U15_33ohms_10nF_c.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d1/Mvc.jpg/120px-Mvc.jpg b/milkymist-wiki/wiki/images/thumb/d/d1/Mvc.jpg/120px-Mvc.jpg new file mode 100644 index 0000000..b0a6d7a Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d1/Mvc.jpg/120px-Mvc.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d1/Mvc.jpg/240px-Mvc.jpg b/milkymist-wiki/wiki/images/thumb/d/d1/Mvc.jpg/240px-Mvc.jpg new file mode 100644 index 0000000..4360b99 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d1/Mvc.jpg/240px-Mvc.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d1/Mvc.jpg/800px-Mvc.jpg b/milkymist-wiki/wiki/images/thumb/d/d1/Mvc.jpg/800px-Mvc.jpg new file mode 100644 index 0000000..bc4096b Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d1/Mvc.jpg/800px-Mvc.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d3/Wall_paper_1.png/120px-Wall_paper_1.png b/milkymist-wiki/wiki/images/thumb/d/d3/Wall_paper_1.png/120px-Wall_paper_1.png new file mode 100644 index 0000000..52e6b60 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d3/Wall_paper_1.png/120px-Wall_paper_1.png differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d3/Wall_paper_1.png/320px-Wall_paper_1.png b/milkymist-wiki/wiki/images/thumb/d/d3/Wall_paper_1.png/320px-Wall_paper_1.png new file mode 100644 index 0000000..5f3bced Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d3/Wall_paper_1.png/320px-Wall_paper_1.png differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d4/DQ14_U15_33ohms_10nF_b.jpg/120px-DQ14_U15_33ohms_10nF_b.jpg b/milkymist-wiki/wiki/images/thumb/d/d4/DQ14_U15_33ohms_10nF_b.jpg/120px-DQ14_U15_33ohms_10nF_b.jpg new file mode 100644 index 0000000..6ebd444 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d4/DQ14_U15_33ohms_10nF_b.jpg/120px-DQ14_U15_33ohms_10nF_b.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d7/Patches_language_Illustrations_2.png/120px-Patches_language_Illustrations_2.png b/milkymist-wiki/wiki/images/thumb/d/d7/Patches_language_Illustrations_2.png/120px-Patches_language_Illustrations_2.png new file mode 100644 index 0000000..4381520 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d7/Patches_language_Illustrations_2.png/120px-Patches_language_Illustrations_2.png differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d7/Patches_language_Illustrations_2.png/320px-Patches_language_Illustrations_2.png b/milkymist-wiki/wiki/images/thumb/d/d7/Patches_language_Illustrations_2.png/320px-Patches_language_Illustrations_2.png new file mode 100644 index 0000000..1006787 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d7/Patches_language_Illustrations_2.png/320px-Patches_language_Illustrations_2.png differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d8/Flickernoise.png/120px-Flickernoise.png b/milkymist-wiki/wiki/images/thumb/d/d8/Flickernoise.png/120px-Flickernoise.png new file mode 100644 index 0000000..5bf53e1 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d8/Flickernoise.png/120px-Flickernoise.png differ diff --git a/milkymist-wiki/wiki/images/thumb/d/d8/Flickernoise.png/200px-Flickernoise.png b/milkymist-wiki/wiki/images/thumb/d/d8/Flickernoise.png/200px-Flickernoise.png new file mode 100644 index 0000000..26caeae Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/d/d8/Flickernoise.png/200px-Flickernoise.png differ diff --git a/milkymist-wiki/wiki/images/thumb/e/e3/Patches_language_Illustrations_9.png/120px-Patches_language_Illustrations_9.png b/milkymist-wiki/wiki/images/thumb/e/e3/Patches_language_Illustrations_9.png/120px-Patches_language_Illustrations_9.png new file mode 100644 index 0000000..4bd7b97 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/e/e3/Patches_language_Illustrations_9.png/120px-Patches_language_Illustrations_9.png differ diff --git a/milkymist-wiki/wiki/images/thumb/e/e3/Patches_language_Illustrations_9.png/320px-Patches_language_Illustrations_9.png b/milkymist-wiki/wiki/images/thumb/e/e3/Patches_language_Illustrations_9.png/320px-Patches_language_Illustrations_9.png new file mode 100644 index 0000000..7df10c2 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/e/e3/Patches_language_Illustrations_9.png/320px-Patches_language_Illustrations_9.png differ diff --git a/milkymist-wiki/wiki/images/thumb/e/e4/Install2-300x200.jpg/120px-Install2-300x200.jpg b/milkymist-wiki/wiki/images/thumb/e/e4/Install2-300x200.jpg/120px-Install2-300x200.jpg new file mode 100644 index 0000000..7cca3eb Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/e/e4/Install2-300x200.jpg/120px-Install2-300x200.jpg differ diff --git a/milkymist-wiki/wiki/images/thumb/f/fc/Keyboard-settings-bindings.png/120px-Keyboard-settings-bindings.png b/milkymist-wiki/wiki/images/thumb/f/fc/Keyboard-settings-bindings.png/120px-Keyboard-settings-bindings.png new file mode 100644 index 0000000..9cd7802 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/f/fc/Keyboard-settings-bindings.png/120px-Keyboard-settings-bindings.png differ diff --git a/milkymist-wiki/wiki/images/thumb/f/fc/Keyboard-settings-bindings.png/320px-Keyboard-settings-bindings.png b/milkymist-wiki/wiki/images/thumb/f/fc/Keyboard-settings-bindings.png/320px-Keyboard-settings-bindings.png new file mode 100644 index 0000000..9e527c0 Binary files /dev/null and b/milkymist-wiki/wiki/images/thumb/f/fc/Keyboard-settings-bindings.png/320px-Keyboard-settings-bindings.png differ diff --git a/milkymist-wiki/wiki/index.php?title=BIOS_reference.html b/milkymist-wiki/wiki/index.php?title=BIOS_reference.html new file mode 100644 index 0000000..70e3138 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=BIOS_reference.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + BIOS reference - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

BIOS reference

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

[edit] History

+

The Milkymist BIOS is based on FreeMAC, originally written for running on the ARM embedded processors of Prism54 Wi-Fi cards. It has undergone major modifications since then. +

+

[edit] Boot process

+

The BIOS is the first program to be executed by the Milkymist SoC once the FPGA is configured. It is stored into off-chip flash and executed in place. Details of the boot process can be found in http://www.milkymist.org/socdoc/bios.pdf. +

+

[edit] Commands

+
Output of the "help" command
+
Output of the "mw & rd" commands
+


+Bios allow you runs some few commands but very useful if you know how use it: +

+
 mr  :  read address space
+
+
 mr <address> [length]
+ 
+ mw  :  write address space
+
+
 mw <address> <value> [count]
+
+

Remember when writing values ALL of then are 32 bits, or will be shirked to that size, so if you write: +

+
mw 0xb0000800 0x03  : that’s actually 0x00000003 written in addresses  0xb0000800, 801, 802, 803 
+
+
mw 0xb0000801 0x03  : that’s actually 0x00000003 written in addresses  0xb0000800, 801, 802, 803 
+
+
mw 0xb0000800 0x11223344 : that’s actually 0x11223344 written in addresses  0xb0000800, 801, 802, 803 
+
+
mr 0xb0000800 4 : will return 11 22 33 44         ."3D
+
+
mr 0xb0000800 5 : will return 11 22 33 44 00      ."3D.
+
+
+

[count] assumes same length +


+GPIO Examples for the avnet board port. +

+
mr 0x80001000 8
+
+

Read the status of push buttons (try touching some and read at the same time) +

+
mw 0x80001004 1
+
+

Put LED 2 on +

+
mw 0x80001004 2
+
+

Put LED 3 on +

+
mw 0x80001004 2
+
+

Put LEDs off +

+
mw 0x80001004 0
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Build_the_libftdi-1.0_and_new_ftdi_eeprom.html b/milkymist-wiki/wiki/index.php?title=Build_the_libftdi-1.0_and_new_ftdi_eeprom.html new file mode 100644 index 0000000..09e1192 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Build_the_libftdi-1.0_and_new_ftdi_eeprom.html @@ -0,0 +1,563 @@ + + + + + + + + + + + + + + + + Build the libftdi-1.0 and new ftdi eeprom - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Build the libftdi-1.0 and new ftdi eeprom

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

[edit] ftdi library variants

+

This is the chip support library, you will need it for your tools. +

There are currently 3 independent variants. You need to select one! +

+ + + + + + + + +
method +comment +
D2XX +Binary drivers from [ftdichip.com] +
libftdi +Git repository at [libftdi] however this requires libboost to compile which pulls in a ton of additional code and is less portable than the method below. +
libftdi-1.0 +Git repository at [libftdi-1.0] this is the preferred method, discussed in the next steps +
+


+

+

[edit] 1. Build the libftdi-1.0

+

1.1. First, get a clone of the repository : +

1.1.1. Create and go to a directory where you want to store the git projects +

+
 # mkdir ~/git
+ # cd ~/git
+
+

1.1.2. Clone the repository +

+
 # git clone git://developer.intra2net.com/libftdi-1.0
+ Cloning into libftdi-1.0...
+ remote: Counting objects: 2008, done.
+ remote: Compressing objects: 100% (942/942), done.
+ remote: Total 2008 (delta 1285), reused 1643 (delta 1056)
+ Receiving objects: 100% (2008/2008), 902.65 KiB | 449 KiB/s, done.
+ Resolving deltas: 100% (1285/1285), done.
+
+

It'l create a directory called libftdi-1.0 with some file in it. +

1.2. Prepare to build with the autotools +

1.2.1. Go to the directory of libftdi-1.0, you need some file +

+
 # ln -s /usr/share/libtool/config/config.guess
+ # ln -s /usr/share/libtool/config/config.sub
+ # ln -s /usr/share/libtool/config/install-sh
+ # ln -s /usr/share/libtool/config/ltmain.sh
+ # ln -s /usr/share/libtool/config/missing
+ # ln -s /usr/share/libtool/config/depcomp
+
+

1.2.2 Build the auto-conguration +

+
 # autoscan
+ # aclocal
+ # autoheader
+ # autoconf
+ # automake
+
+

1.3.1. Now, you can normally build and install the libftdi +

+
 # ./configure
+ ...
+
+
 # make
+ ...
+
+

1.3.2. You need to be root for installing the lib +

+
 (root)# make install
+ ...
+
+

1.3.3. Quit root, and if there's no error, you can continue to build ftdi_eeprom, you maybe needs run +

+
 # ldconfig.
+
+

[edit] 2. Build the ftdi_eeprom tool

+

2.1. Go to the directory ftdi_eeprom +

+
 # cd ftdi_eeprom
+
+

2.2. Replace it in libftdi-1.0/ftdi_eeprom/main.c : +

+
 /***************************************************************************
+	                         main.c  -  description
+	                       -------------------
+	begin                : Mon Apr  7 12:05:22 CEST 2003
+	copyright            : (C) 2003,2008 by Intra2net AG
+	email                : opensource@intra2net.com
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License version 2 as     *
+ *   published by the Free Software Foundation.                            *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <confuse.h>
+#include "../src/ftdi.h"
+#include "ftdi_eeprom_version.h.in"
+
+int str_to_cbus(char *str, int max_allowed)
+{
+	#define MAX_OPTION 14
+	const char* options[MAX_OPTION] = {
+	 "TXDEN", "PWREN", "RXLED", "TXLED", "TXRXLED", "SLEEP",
+	 "CLK48", "CLK24", "CLK12", "CLK6",
+	 "IO_MODE", "BITBANG_WR", "BITBANG_RD", "SPECIAL"};
+	int i;
+	max_allowed += 1;
+	if (max_allowed > MAX_OPTION) max_allowed = MAX_OPTION;
+	for (i=0; i<max_allowed; i++) {
+	    if (!(strcmp(options[i], str))) {
+	        return i;
+	    }
+	}
+	printf("WARNING: Invalid cbus option '%s'\n", str);
+	return 0;
+}
+
+int main(int argc, char *argv[])
+{
+	/*
+	configuration options
+	*/
+	cfg_opt_t opts[] =
+	{
+	    CFG_INT("vendor_id", 0, 0),
+	    CFG_INT("product_id", 0, 0),
+	    CFG_BOOL("self_powered", cfg_true, 0),
+	    CFG_BOOL("remote_wakeup", cfg_true, 0),
+	    CFG_STR_LIST("chip_type", "{AM,BM,2232C,R,2232H,4232H,other}", 0),
+	    CFG_BOOL("in_is_isochronous", cfg_false, 0),
+	    CFG_BOOL("out_is_isochronous", cfg_false, 0),
+	    CFG_BOOL("suspend_pull_downs", cfg_false, 0),
+	    CFG_BOOL("use_serial", cfg_false, 0),
+	    CFG_BOOL("change_usb_version", cfg_false, 0),
+	    CFG_INT("usb_version", 0, 0),
+	    CFG_INT("max_power", 0, 0),
+	    CFG_STR("manufacturer", "Acme Inc.", 0),
+	    CFG_STR("product", "USB Serial Converter", 0),
+	    CFG_STR("serial", "08-15", 0),
+	    CFG_BOOL("high_current", cfg_false, 0),
+	    CFG_STR_LIST("cbus0", "{TXDEN,PWREN,RXLED,TXLED,TXRXLED,SLEEP,CLK48,CLK24,CLK12,CLK6,IO_MODE,BITBANG_WR,BITBANG_D,SPECIAL}", 0),
+	    CFG_STR_LIST("cbus1", "{TXDEN,PWREN,RXLED,TXLED,TXRXLED,SLEEP,CLK48,CLK24,CLK12,CLK6,IO_MODE,BITBANG_WR,BITBANG_D,SPECIAL}", 0),
+	    CFG_STR_LIST("cbus2", "{TXDEN,PWREN,RXLED,TXLED,TXRXLED,SLEEP,CLK48,CLK24,CLK12,CLK6,IO_MODE,BITBANG_WR,BITBANG_D,SPECIAL}", 0),
+	    CFG_STR_LIST("cbus3", "{TXDEN,PWREN,RXLED,TXLED,TXRXLED,SLEEP,CLK48,CLK24,CLK12,CLK6,IO_MODE,BITBANG_WR,BITBANG_D,SPECIAL}", 0),
+	    CFG_STR_LIST("cbus4", "{TXDEN,PWRON,RXLED,TXLED,TX_RX_LED,SLEEP,CLK48,CLK24,CLK12,CLK6}", 0),
+	    CFG_BOOL("invert_txd", cfg_false, 0),
+	    CFG_BOOL("invert_rxd", cfg_false, 0),
+	    CFG_BOOL("invert_rts", cfg_false, 0),
+	    CFG_BOOL("invert_cts", cfg_false, 0),
+	    CFG_BOOL("invert_dtr", cfg_false, 0),
+	    CFG_BOOL("invert_dsr", cfg_false, 0),
+	    CFG_BOOL("invert_dcd", cfg_false, 0),
+	    CFG_BOOL("invert_ri", cfg_false, 0),
+	    CFG_END()
+	};
+	cfg_t *cfg;
+
+	/*
+	normal variables
+	*/
+	unsigned char		_read = 0, _erase = 0, _flash = 0;
+	int					size_check;
+	int					i;
+	char *				type;
+	unsigned int		invert;
+	FILE *				fp;
+	unsigned short		device_vid = 0;
+	unsigned short		device_pid = 0;
+	FILE *				device;
+	struct ftdi_context	ftdi;
+	struct ftdi_eeprom *eeprom;
+
+	printf("\nFTDI eeprom generator v%s\n", EEPROM_VERSION_STRING);
+	printf ("(c) Intra2net AG <opensource@intra2net.com>\n");
+
+	if (argc < 3)
+	{
+		printf("Syntax sample :\n");
+		printf("           %s --read-eeprom  /dev/bus/usb/002/003 ftdi-backup.conf\n", argv[0]);
+		printf("           %s --erase-eeprom /dev/bus/usb/002/003\n", argv[0]);
+		printf("           %s --flash-eeprom /dev/bus/usb/002/003 ftdi-source.conf\n", argv[0]);
+		exit (-1);
+	}
+	else
+	{
+		if (strcmp(argv[1], "--read-eeprom") == 0)
+		    _read = 1;
+		else if (strcmp(argv[1], "--erase-eeprom") == 0)
+		    _erase = 1;
+		else if (strcmp(argv[1], "--flash-eeprom") == 0)
+		    _flash = 1;
+	}
+
+	ftdi_init(&ftdi);
+	ftdi_eeprom_initdefaults (&ftdi, "Acme Inc.", "FTDI Chip", NULL);
+	eeprom = ftdi.eeprom;
+
+	if ((device = fopen(argv[2], "r")) == NULL)
+	{
+		printf ("Can't open device file\n");
+		exit (-1);
+	}
+
+	fseek(device, 8, SEEK_SET);
+	fread(&device_vid, 1, 2, device);
+	fread(&device_pid, 1, 2, device);
+
+	fclose(device);
+
+	printf("\nFound device with VID:PID : 0x%X:0x%X\n", device_vid, device_pid);
+
+	i = ftdi_usb_open(&ftdi, device_vid, device_pid);
+
+	if (i == 0)
+	{
+	    printf("EEPROM size: %d\n", eeprom->size);
+	}
+	else
+	{
+	    printf("Unable to find FTDI devices under given vendor/product id: 0x%X/0x%X\n", device_vid, device_pid);
+	    printf("Error code: %d (%s)\n", i, ftdi_get_error_string(&ftdi));
+	    exit (-1);
+	}
+
+
+	if (_read)
+	{
+	    printf("FTDI read eeprom: %d\n", ftdi_read_eeprom(&ftdi));
+
+	    ftdi_eeprom_decode(&ftdi, 0);
+
+	    const char* chip_types[] = {"other", "", "AM", "", "BM", "2232C", "R", "2232H", "4232H"};
+		    
+	    FILE *fp = fopen (argv[3], "wb");
+/*
+To implement
+	    CFG_BOOL("high_current", cfg_false, 0),
+	    CFG_STR_LIST("cbus0", "{TXDEN,PWREN,RXLED,TXLED,TXRXLED,SLEEP,CLK48,CLK24,CLK12,CLK6,IO_MODE,BITBANG_WR,BITBANG_D,SPECIAL}", 0),
+	    CFG_STR_LIST("cbus1", "{TXDEN,PWREN,RXLED,TXLED,TXRXLED,SLEEP,CLK48,CLK24,CLK12,CLK6,IO_MODE,BITBANG_WR,BITBANG_D,SPECIAL}", 0),
+	    CFG_STR_LIST("cbus2", "{TXDEN,PWREN,RXLED,TXLED,TXRXLED,SLEEP,CLK48,CLK24,CLK12,CLK6,IO_MODE,BITBANG_WR,BITBANG_D,SPECIAL}", 0),
+	    CFG_STR_LIST("cbus3", "{TXDEN,PWREN,RXLED,TXLED,TXRXLED,SLEEP,CLK48,CLK24,CLK12,CLK6,IO_MODE,BITBANG_WR,BITBANG_D,SPECIAL}", 0),
+	    CFG_STR_LIST("cbus4", "{TXDEN,PWRON,RXLED,TXLED,TX_RX_LED,SLEEP,CLK48,CLK24,CLK12,CLK6}", 0),
+	    CFG_BOOL("invert_txd", cfg_false, 0),
+	    CFG_BOOL("invert_rxd", cfg_false, 0),
+	    CFG_BOOL("invert_rts", cfg_false, 0),
+	    CFG_BOOL("invert_cts", cfg_false, 0),
+	    CFG_BOOL("invert_dtr", cfg_false, 0),
+	    CFG_BOOL("invert_dsr", cfg_false, 0),
+	    CFG_BOOL("invert_dcd", cfg_false, 0),
+	    CFG_BOOL("invert_ri", cfg_false, 0),
+*/
+		fprintf(fp, "vendor_id=0x%04x\n", eeprom->vendor_id);
+		fprintf(fp, "product_id=0x%04x\n", eeprom->product_id);
+		fprintf(fp, "self_powered=%s\n", eeprom->self_powered?"true":"false");
+		fprintf(fp, "remote_wakeup=%s\n", eeprom->remote_wakeup?"true":"false");
+		fprintf(fp, "chip_type=%s\n", chip_types[ftdi.type]);
+		fprintf(fp, "max_power=%d\n", eeprom->max_power);
+		fprintf(fp, "in_is_isochronous=%s\n", eeprom->in_is_isochronous?"true":"false");
+		fprintf(fp, "out_is_isochronous=%s\n", eeprom->out_is_isochronous?"true":"false");
+		fprintf(fp, "suspend_pull_downs=%s\n", eeprom->suspend_pull_downs?"true":"false");
+		fprintf(fp, "use_serial=%s\n", eeprom->use_serial?"true":"false");
+		fprintf(fp, "change_usb_version=%s\n", eeprom->use_usb_version?"true":"false");
+		fprintf(fp, "usb_version=%d\n", eeprom->usb_version);
+		fprintf(fp, "manufacturer=\"%s\"\n", eeprom->manufacturer);
+		fprintf(fp, "product=\"%s\"\n", eeprom->product);
+		fprintf(fp, "serial=\"%s\"\n", eeprom->serial);
+
+	    fclose (fp);
+
+	    goto cleanup;
+	}
+	else if (_erase)
+	{
+	    printf("FTDI erase eeprom: %d\n", ftdi_erase_eeprom(&ftdi));
+	}
+	else if (_flash)
+	{
+		if ((fp = fopen(argv[3], "r")) == NULL)
+		{
+			printf ("Can't open configuration file\n");
+			exit (-1);
+		}
+		fclose (fp);
+
+		cfg = cfg_init(opts, 0);
+		cfg_parse(cfg, argv[3]);
+
+		if (cfg_getbool(cfg, "self_powered") && cfg_getint(cfg, "max_power") > 0)
+			printf("Hint: Self powered devices should have a max_power setting of 0.\n");
+
+		eeprom->vendor_id = cfg_getint(cfg, "vendor_id");
+		eeprom->product_id = cfg_getint(cfg, "product_id");
+
+		type = cfg_getstr(cfg, "chip_type");
+		if (!strcmp(type, "AM")) {
+			ftdi.type = TYPE_AM;
+		} else if (!strcmp(type, "BM")) {
+			ftdi.type = TYPE_BM;
+		} else if (!strcmp(type, "2232C")) {
+			ftdi.type = TYPE_2232C;
+		} else if (!strcmp(type, "R")) {
+			ftdi.type = TYPE_R;
+		} else if (!strcmp(type, "2232H")) {
+			ftdi.type = TYPE_2232H;
+		} else if (!strcmp(type, "4232H")) {
+			ftdi.type = TYPE_4232H;
+		}
+
+		eeprom->self_powered = cfg_getbool(cfg, "self_powered");
+		eeprom->remote_wakeup = cfg_getbool(cfg, "remote_wakeup");
+		eeprom->max_power = cfg_getint(cfg, "max_power");
+		eeprom->in_is_isochronous = cfg_getbool(cfg, "in_is_isochronous");
+		eeprom->out_is_isochronous = cfg_getbool(cfg, "out_is_isochronous");
+		eeprom->suspend_pull_downs = cfg_getbool(cfg, "suspend_pull_downs");
+		eeprom->use_serial = cfg_getbool(cfg, "use_serial") == 0 ? 0 : USE_SERIAL_NUM;
+		eeprom->use_usb_version = cfg_getbool(cfg, "change_usb_version");
+		eeprom->usb_version = cfg_getint(cfg, "usb_version");
+		eeprom->manufacturer = cfg_getstr(cfg, "manufacturer");
+		eeprom->product = cfg_getstr(cfg, "product");
+		eeprom->serial = cfg_getstr(cfg, "serial");
+		eeprom->high_current = cfg_getbool(cfg, "high_current");
+		eeprom->cbus_function[0] = str_to_cbus(cfg_getstr(cfg, "cbus0"), 13);
+		eeprom->cbus_function[1] = str_to_cbus(cfg_getstr(cfg, "cbus1"), 13);
+		eeprom->cbus_function[2] = str_to_cbus(cfg_getstr(cfg, "cbus2"), 13);
+		eeprom->cbus_function[3] = str_to_cbus(cfg_getstr(cfg, "cbus3"), 13);
+		eeprom->cbus_function[4] = str_to_cbus(cfg_getstr(cfg, "cbus4"), 9);
+
+		invert = 0;
+		if (cfg_getbool(cfg, "invert_rxd")) invert |= INVERT_RXD;
+		if (cfg_getbool(cfg, "invert_txd")) invert |= INVERT_TXD;
+		if (cfg_getbool(cfg, "invert_rts")) invert |= INVERT_RTS;
+		if (cfg_getbool(cfg, "invert_cts")) invert |= INVERT_CTS;
+		if (cfg_getbool(cfg, "invert_dtr")) invert |= INVERT_DTR;
+		if (cfg_getbool(cfg, "invert_dsr")) invert |= INVERT_DSR;
+		if (cfg_getbool(cfg, "invert_dcd")) invert |= INVERT_DCD;
+		if (cfg_getbool(cfg, "invert_ri")) invert |= INVERT_RI;
+		eeprom->invert = invert;
+
+		size_check = ftdi_eeprom_build(&ftdi);
+
+		if (size_check == -1)
+		{
+			printf ("Sorry, the eeprom can only contain 128 bytes (100 bytes for your strings).\n");
+			printf ("You need to short your string by: %d bytes\n", size_check);
+			goto cleanup;
+		} else if (size_check < 0) {
+			printf ("ftdi_eeprom_build(): error: %d\n", size_check);
+		}
+		else
+		{
+			printf ("Used eeprom space: %d bytes\n", 128-size_check);
+		}
+
+	    printf ("FTDI write eeprom: %d\n", ftdi_write_eeprom(&ftdi));
+
+		cfg_free(cfg);
+	}
+
+cleanup:
+/*
+fp = fopen("eeprom.img", "w");
+fwrite(eeprom->buf, 1, 128, fp);
+fclose (fp);
+*/
+	printf("FTDI close: %d\n", ftdi_usb_close(&ftdi));
+
+	ftdi_deinit (&ftdi);
+
+	printf("\n");
+
+	return 0;
+}
+
+

2.3. Compile the source +

+
 # gcc main.c -I/usr/include/libusb-1.0/ -lconfuse -L/usr/local/lib/ -lftdi -o ftdi_eeprom
+
+


+That's all. +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Building_the_RTEMS_toolset_on_Debian.html b/milkymist-wiki/wiki/index.php?title=Building_the_RTEMS_toolset_on_Debian.html new file mode 100644 index 0000000..16212aa --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Building_the_RTEMS_toolset_on_Debian.html @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + Building the RTEMS toolset on Debian - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Building the RTEMS toolset on Debian

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

This How-To documents the steps I followed to install the RTEMS 4.11 (as of 6 February 2011) toolset on Debian Squeeze Stable. +

In this case, the host was a almost fresh install of Debian; immediately after rebooting into Debian after installation, +

+

Contents

+ +
+

[edit] Build essentials

+

This single command was enough to install the missing pieces +

+
+sudo apt-get install m4 patch  build-essential texinfo cvs \
+    libncurses5-dev libgmp3-dev libmpfr-dev libmpc-dev
+
+

[edit] texinfo

+

Attempting to build binutils will fail without makeinfo installed - even though only a warning will be reported. So we install texinfo (which includes makeinfo) first. +

+
 $ sudo aptitude install texinfo
+
+

[edit] Build RTEMS Tools

+

[edit] Assumptions

+

Assume a root directory rtems. Under that, create two directories: archive and tools. For this How-To, You MUST use the Lattice Mico32 as the target. For each tool below, the examples assume you start in the ~/rtems/tools directory. +

Note: This section very nearly duplicates what is contained in the "Getting Started with RTEMS" document, with the aforementioned "sudo" invocations added. +

+

[edit] Tools needed

+

You will need to download the tarballs of the RTEMS Build Toolset which includes the following: +

+
  • Binutils - 2.21 +
  • GCC (gcc-core) - 4.5.2-RC-20101208 +
  • GCC (gcc-g++) - 4.5.2-RC-20101208 +
  • GDB - 7.2 +
  • Newlib - 1.19 +
  • GMP (Multi-precision arithmetic library) - 4.3.2 +
  • MPC (Multi-precision complex floating-point library) - 0.8.1 +
  • MPFR (Multi-precision floating-point computation library) - 2.4.2 +
+

You can find the above mentioned tarballs in http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/ +You can get it too trough ftp.rtems.com +

+

[edit] Unpack archives

+
 tar xjf ../archive/binutils-2.21.tar.bz2
+ tar xjf ../archive/gcc-core-4.5.2-RC-20101208.tar.bz2
+ tar xjf ../archive/gcc-g++-4.5.2-RC-20101208.tar.bz2
+ tar xzf ../archive/newlib-1.19.0.tar.gz
+ tar xjf ../archive/gdb-7.2.tar.bz2
+ tar xjf ../archive/gmp-4.3.2.tar.bz2
+ tar xzf ../archive/mpc-0.8.1.tar.gz
+ tar xjf ../archive/mpfr-2.4.2.tar.bz2
+
+

[edit] Applying RTEMS patches

+

The patches can be downloaded from http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/ for 4.11 version. You are required to download the following files. +

+
 binutils-2.21-rtems4.11-20110107.diff
+ gcc-core-4.5.2-RC-20101208-rtems4.11-20101210.diff
+ newlib-1.19.0-rtems4.11-20110109.diff
+
+

Remember, RTEMS is an active project. the above mentioned toolset patches might have newer versions. Make sure you check the modified date and pick up the latest diff file. +


+

+
 cd binutils-2.21
+ cat ../../archive/binutils-2.21-rtems4.11-20110107.diff | patch -p1 --dry-run
+ cat ../../archive/binutils-2.21-rtems4.11-20110107.diff | patch -p1
+ cd ../gcc-4.5.2-RC-20101208/
+ cat ../../archive/gcc-core-4.5.2-RC-20101208-rtems4.11-20101210.diff | patch -p1 --dry-run
+ cat ../../archive/gcc-core-4.5.2-RC-20101208-rtems4.11-20101210.diff | patch -p1
+ cd ../newlib-1.19.0/
+ cat ../../archive/newlib-1.19.0-rtems4.11-20110109.diff | patch -p1 --dry-run
+ cat ../../archive/newlib-1.19.0-rtems4.11-20110109.diff | patch -p1
+ cd ..
+
+

At every step check for any errors. +

+

[edit] Config and build binutils-2.20.1

+
 Target Processor --target=lm32-rtems4.11 
+ Installation Point --prefix=/opt/rtems-4.11
+
+

Adjust these as you please. +

+
 mkdir b-binutils
+ cd b-binutils
+ ../binutils-2.21/configure --target=lm32-rtems4.11 --prefix=/opt/rtems-4.11
+ make all
+ make info
+ make install
+ cd ..
+
+

Now, set the path to include the just-built executables +

+
 export PATH=/opt/rtems-4.11/bin:${PATH}
+
+

[edit] Config and build gcc

+
 cd gcc-4.5.2-RC-20101208/
+ ln -s ../newlib-1.19.0/newlib .
+ cd ..
+ mkdir b-gcc
+ cd b-gcc/
+ ../gcc-4.5.2-RC-20101208/configure --target=lm32-rtems4.11 --with-gnu-as --with-newlib --verbose --enable-threads --enable-languages="c,c++" --prefix=/opt/rtems-4.11
+ make all
+ make info
+ make install
+ cd ..
+
+

Notes: +

+
  • Optionally you can build gdb also. +
  • You can avoid install stuff as root/sudo, if you previously give permissions in your /opt folder to your user. +
+
chown -R your_user:your_user /opt
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Compiling_a_lightweight_AEMB_toolchain.html b/milkymist-wiki/wiki/index.php?title=Compiling_a_lightweight_AEMB_toolchain.html new file mode 100644 index 0000000..e5f208f --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Compiling_a_lightweight_AEMB_toolchain.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + Compiling a lightweight AEMB toolchain - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Compiling a lightweight AEMB toolchain

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

NB! This page applies to old SoC designs that were using AEMB. Current designs use Mico32 and need a different toolchain. +

To compile the BIOS and the demonstration firmware which come with the SoC core distribution, you do not need all the features of the complete Microblaze toolchain. This section explains how to compile a toolchain without the spurious features. +

For Microblaze support, a modified version of the GNU toolchain should be used. It is available from the Petalogix website at http://www.petalogix.com/resources/downloads/mb-gcc. +To install it, the following commands are used: + +mkdir /usr/microblaze +

export PATH=$PATH:/usr/microblaze/bin +

cd microblaze-toolchain-sources/srcs/binutils +

mkdir build +

cd build +

../configure --target=microblaze --prefix=/usr/microblaze +

make all CFLAGS="-O2 -g -DMICROBLAZE -DEDK" CXXFLAGS="-O2 -g -DMICROBLAZE -DEDK" +

make install +

ln -s /usr/microblaze/bin/microblaze-as /usr/microblaze/bin/mb-as +

ln -s /usr/microblaze/bin/microblaze-ld /usr/microblaze/bin/mb-ld +

ln -s /usr/microblaze/bin/microblaze-ar /usr/microblaze/bin/mb-ar +

ln -s /usr/microblaze/bin/microblaze-ranlib /usr/microblaze/bin/mb-ranlib +

cd ../../gcc +

mkdir build +

cd build +

../configure --target=microblaze --prefix=/usr/microblaze --enable-languages="c" +

make all CFLAGS="-O2 -g -DMICROBLAZE -DEDK" CXXFLAGS="-O2 -g -DMICROBLAZE -DEDK" +

make install +

ln -s /usr/microblaze/bin/microblaze-gcc /usr/microblaze/bin/mb-gcc + +

This differs from the usual installation procedure by disabling C++ support and Newlib. The Milkymist BIOS and demonstration firmware do not use C++ and come with their own lightweight C library and startup code. +

If using another firmware with the Milkymist SoC, this toolchain may not be suitable. +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Compiling_a_lightweight_Mico32_toolchain.html b/milkymist-wiki/wiki/index.php?title=Compiling_a_lightweight_Mico32_toolchain.html new file mode 100644 index 0000000..b8eb418 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Compiling_a_lightweight_Mico32_toolchain.html @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + Compiling a lightweight Mico32 toolchain - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Compiling a lightweight Mico32 toolchain

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

To build a full toolchain and RTEMS see the page: RTEMS_build_instructions. +

If you wish to just build a basic tool chain without RTEMS the following directions will suffice: +

+
  • We must build the tools out of their source trees. We create a "build" directory at the top of the source tree, from which we run the build commands. +
  • To configure binutils: ../configure --target=lm32-elf --prefix=/usr/mico32 +
  • To configure gcc: ../configure --target=lm32-elf --prefix=/usr/mico32 --enable-languages="c". You may want to add --disable-libgcc --disable-libssp. +
+


+Here's a script download and build a unified GCC source tree on OS X with known compiling versions of the software (OS X does not have GMP, MPC, or MPFR so a unified source tree is the easiest approach): +

+
#!/bin/sh
+#
+# script to build lm32 GCC toolchain
+#
+TOPDIR=`pwd`
+
+mkdir $TOPDIR/tarballs
+cd $TOPDIR/tarballs
+
+curl ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz -o newlib-1.19.0.tar.gz
+curl http://fileboar.com/gcc/releases/gcc-4.5.3/gcc-4.5.3.tar.bz2 -o gcc-4.5.3.tar.bz2
+curl http://ftp.gnu.org/gnu/gdb/gdb-7.2a.tar.bz2 -o gdb-7.2a.tar.bz2
+curl http://ftp.gnu.org/gnu/binutils/binutils-2.21.1.tar.bz2 -o binutils-2.21.1.tar.bz2
+curl http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz -o mpc-0.9.tar.gz
+curl http://www.mpfr.org/mpfr-3.0.1/mpfr-3.0.1.tar.bz2 -o mpfr-3.0.1.tar.bz2
+curl ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.bz2 -o gmp-5.0.2.tar.bz2
+
+mkdir $TOPDIR/src
+cd $TOPDIR/src
+tar xzvf ../tarballs/newlib-1.19.0.tar.gz
+tar xzvf ../tarballs/gdb-7.2a.tar.bz2
+tar xzvf ../tarballs/binutils-2.21.1.tar.bz2
+tar xzvf ../tarballs/mpc-0.9.tar.gz
+tar xzvf ../tarballs/mpfr-3.0.1.tar.bz2
+tar xvzf ../tarballs/gmp-5.0.2.tar.bz2
+tar xvzf ../tarballs/gcc-4.5.3.tar.bz2
+
+cd $TOPDIR/src/gcc-4.5.3
+
+rm -rf bfd binutils gas gold gprof opcodes newlib libgloss gdb mpc mpfr gmp
+ln -s ../binutils-2.21.1/bfd bfd
+ln -s ../binutils-2.21.1/binutils binutils
+ln -s ../binutils-2.21.1/gas gas
+ln -s ../binutils-2.21.1/gold gold
+ln -s ../binutils-2.21.1/gprof gprof
+ln -s ../binutils-2.21.1/opcodes opcodes
+ln -s ../binutils-2.21.1/ld ld
+
+ln -s ../newlib-1.19.0/newlib newlib
+ln -s ../newlib-1.19.0/libgloss libgloss
+
+ln -s ../gdb-7.2 gdb
+ln -s ../mpc-0.9 mpc
+ln -s ../mpfr-3.0.1 mpfr
+ln -s ../gmp-5.0.2 gmp
+
+mkdir $TOPDIR/build
+cd $TOPDIR/build
+
+../src/gcc-4.5.3/configure  --prefix=/usr/mico32 --enable-languages=c --target=lm32-elf --disable-libssp --disable-libgcc
+
+make
+make install
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Development_Environment.html b/milkymist-wiki/wiki/index.php?title=Development_Environment.html new file mode 100644 index 0000000..c02e209 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Development_Environment.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + Development Environment - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Development Environment

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

MilkyMist consists of several components that need to be build using different tools. On this page you will find the instruction for setting up a development environment to build all of these components. +

+

Contents

+ +
+

[edit] Required tools

+

You will need: +

+
  • GNU Make, +
  • Bourne Again Shell (bash), +
  • Xilinx ISE for synthesizing the FPGA bitstream (WebPack is enough), +
  • LatticeMico32 toolchain for building the SoC software, +
+

For the host-side tools: +

+
  • native GCC toolchain, +
  • libGD, +
+

For the demonstration firmware: +

+
  • clang, +
  • gcc-avr, +
  • RE2C, +
  • Lemon parser generator, +
  • Scilab. +
+


+

+

[edit] LM32 Toolchain and Flickernoise

+

For systems where a prebuilt package is not available see the RTEMS_build_instructions and Flickernoise_build_instructions +

+

[edit] Download locations

+

Xilinx ISE needs to be downloaded from the Xilinx website at http://www.xilinx.com/support/download/index.htm. After you have created a user account, you can continue to download the ISE Design Suite. For synthesizing the bitstream of Milkymist the ISE Webpack will suffice. You are advised to download the Single File Download Image (tar) using the Download Manager instead of the Web Install Client. The download is not very reliable without the Download Manager and you will probably have to retry several times if you don't use it. +

The LatticeMico32 toolchain is provided as a thirdparty component on the Milkymist website at http://milkymist.org/3rdparty/. The GCC 4.4 built is currently the recommended version. +

Although re2c (lexer) and lemon (parser generator) are quite well known, they are not provided by all the distributions as a standard component. When needed, it will be explained how to obtain and install it in the distribution specific instructions. +

Scilab is a numerical computational package used by the demonstration firmware. Several download options are provided on their website: http://www.scilab.org/products/scilab/download +

+

[edit] CentOS/RHEL

+

To build to bitstream and firmware on CentOS/RHEL it is advised to use the latest version available of the installation media and preferred to use a 32-bit version. +

+

[edit] Additional packages needed

+

Enable the EPEL repository on CentOS/RHEL 5 using the command +

+
 su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm'
+
+

Fedora Electronic Lab will be used as the basis of the system. This will provide packages for hardware design and simulation. Most of them aren't used in the process of building the software side of Milkymist, but could be used to participate in the overall hardware design. +

To use the LatticeMico32 toolchain on CentOS/RHEL you need to install a package that provides libmpfr and to build the demonstration firmware you need lemon. Since CentOS/RHEL and the EPEL repository do not provide these, we have created some packages that will provide the necessary libraries. Signed packages can be downloaded from http://gbraad.fedorapeople.org/files/el5/ or http://files.gbraad.nl/milkymist/. +

+

[edit] Steps

+

Install ISE Webpack in /opt/Xilinx/. Unpack and run ./xsetup +

Since CentOS/RHEL does not support the group install function, you will need to install the Fedora Electronic Lab as mentioned on https://fedorahosted.org/fedora-electronic-lab/wiki/FAQ#EPELRepository. It will form the basis of the rest of the system. +

+
 yum install alliance dfu-programmer dinotrace eclipse-cdt eclipse-subclipse electric emacs-verilog-mode \
+ eqntott espresso-ab geda-docs geda-examples geda-gattrib geda-gnetlist geda-gschem geda-gsymcheck geda-symbols \
+ geda-utils gerbv gnucap gplcver gpsim gputils gtkwave gtkwave irsim iverilog iverilog linsmith magic netgen \
+ ngspice pcb perl-Hardware-Verilog-Parser perl-Hardware-Vhdl-Parser perl-ModelSim-List perl-Perlilog perl-Verilog \
+ perl-Verilog-Readmem qucs qucs tkcvs tkgate toped vhd2vl vrq xcircuit freehdl octave-forge
+
+

To be able to build the host and demonstration firmware +

+
 yum install gd-devel gmp re2c
+ rpm -ivh mpfr-2.4.1-2.i386.rpm
+ rpm -ivh lemon-3.6.17-1.i386.rpm
+ cd /opt
+ tar xzvf scilab-5.2.0.bin.linux-i686.tar.gz
+ tar xjvf micotoolchain44.tar.bz2
+
+

and include these as paths to your .bash_profile +

+
 export PATH=/opt/scilab/bin:/opt/mico32/bin/:$PATH
+
+

To be able to get the source code from the repository you need Git. +

+
 yum install git gitk
+
+

To build the FPGA bitstream and demonstration firmware +

+
 . /opt/Xilinx/11.1/settings32.sh
+ cd ~/Projects/Milkymist
+ ./build_bitstream
+ ./build_bios
+ ./build_demo
+
+

[edit] Fedora

+

[edit] Fedora 12/13

+

[edit] Steps

+

Install ISE Webpack in /opt/Xilinx. Unpack and run ./xsetup. +

disable or set SE-Linux to permissive. Instructions +

+
 setenforce 0
+
+

To install the basic system, you will need the Fedora Electronic Lab. +

+
 yum groupinstall "Electronic Lab"
+
+

To build the host and demonstration firmware +

+
 yum install gd-devel re2c lemon
+ cd /opt
+ tar xzvf scilab-5.2.0.bin.linux-i686.tar.gz
+ tar xjvf micotoolchain44.tar.bz2 
+
+

and include these as paths to your .bash_profile +

+
 export PATH=/opt/scilab/bin:/opt/mico32/bin/:$PATH
+
+

To be able to get the source code from the repository you need Git. +

+
 yum install git gitk
+
+

To build the FPGA bitstream +

+
 . /opt/Xilinx/12.1/settings32.sh
+ cd ~/Projects/Milkymist
+ ./build_bitstream
+
+

Due to the way the ISE settings control the LD_LIBRARY_PATH, you should preferably build the rest of the Milkymist components from a separate bash instance, else a build using the LatticeMico32 toolchain will fail. +

+

[edit] Fedora 14

+

[edit] Steps

+

To install the Milkymist development tools provided by Fedora: +

+
 yum groupinstall Milkymist
+
+

You will still need to install ISE to build the bitstream. +

+

[edit] Debian/Ubuntu

+

To make your life easier, Debian packages are available for the LatticeMico32 GCC toolchain used for building Milkymist software, and for flterm, the RS232 software upload program. +

This could be outdate, please use and compile RTEMS toolchain instead +

Add this line to your /etc/apt/sources.list: +

+
 deb http://www.milkymist.org/debian/ ./
+
+

and install with: +

+
 apt-get update
+ apt-get install gcc-lm32 flterm
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=FAQ.html b/milkymist-wiki/wiki/index.php?title=FAQ.html new file mode 100644 index 0000000..bb3ec29 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=FAQ.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + FAQ - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

FAQ

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] Is DVI supported?

+

No. Most video projectors use VGA extension cords. +

+

[edit] What is the maximum video resolution of the device?

+

This depends on the FPGA design, and the board itself should support resolutions up to 1280x1024. +The FPGA design and software have only been tested at 640x480 so far, but this is surprisingly enough to produce good effects. +

+

[edit] Do I need to know about FPGAs to participate in development?

+

Not at all. Once the FPGA is programmed, it contains a microprocessor which behaves like any other one. If you don't touch the FPGA at all, you can think of it as a powerful microcontroller containing graphics accelerators, which you can program using C or C++. See here for more details about what is inside the FPGA. +

+

[edit] Do I always need to install FPGA tools?

+

No. If you only intend to do software development, you can download a pre-built binary bitstream and load it into your FPGA. The FPGA will then behave like any other system-on-chip or microcontroller. +

+

[edit] What hardware do I need if I only want to do software?

+

A Milkymist One, a JTAG cable (optional if your board is pre-flashed) and a 3.3V serial (RS232) cable. +

+

[edit] How do I download my software into the system-on-chip?

+

The first program to be executed is the BIOS (bootloader), stored in NOR Flash. You can just flash one of the supplied images ; usually you don't have to modify this part. +From there, you have many options. The most flexible one is the download over the serial port using the supplied flterm program. You can also write your binary image to a memory card and the system will boot from it. The boot process is detailed in the BIOS reference manual. +

+

[edit] What compilers are supported?

+

GCC 4.5.1 and above. However, GCC isn't exactly good, and we would welcome a LLVM port. +

+

[edit] Can I port Milkymist SoC to Altera/Lattice/Actel/XXX FPGAs?

+

With a little effort, yes. HDL code in this project is designed to be portable. Most design elements are inferred; and you will only need to replace elements that cannot be inferred such as PLLs. +

Actel FPGAs might be slow, though. +

+

[edit] What operating system is the system-on-chip running?

+

There are RTEMS and Linux available. The Milkymist One devices ship with RTEMS, and here's why. +

+

[edit] Do you intend to sell ready-for-use boards?

+

Yes, we are already doing so. You can buy one. +

+

[edit] What is the license for the code?

+

Most of it is covered by the GNU GPL v3. +

+

[edit] FPGA projects are not really open source, you need a proprietary toolchain!

+

As far as Milkymist is concerned, the source code is standard Verilog HDL (compliant with the IEEE specification 1364-2005), is designed with portability as one of the first goals, has been shown to work almost unmodified on both major FPGA vendors (Altera and Xilinx), and can be simulated with many free and open source simulators (Icarus Verilog, GPL Cver, Verilator, VCOMP). Parts of the source code have even been shown to synthesize unmodified in TSMC 90nm cells with the Synopsys ASIC tools. Milkymist isn't more "Faux-pen Source" than all other open source software is because it requires a proprietary microprocessor to run. +

We are also developing a free toolchain to address this problem. +

+

[edit] How to contact authors?

+

Your suggestions, bug reports, bugfixes and patches are much appreciated. Please use the mailing list instead of contacting an author directly, unless you have a good reason to do so. +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:C165_100uF_b.jpg.html b/milkymist-wiki/wiki/index.php?title=File:C165_100uF_b.jpg.html new file mode 100644 index 0000000..b5512aa --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:C165_100uF_b.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:C165 100uF b.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:C165 100uF b.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Measurement on RC1 board with a 100uF capacitor in parallel +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:43, 10 September 2010Thumbnail for version as of 11:43, 10 September 2010640×480 (165 KB)Admin (Talk | contribs) (Measurement on RC1 board with a 100uF capacitor in parallel)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:C165_10nF.jpg.html b/milkymist-wiki/wiki/index.php?title=File:C165_10nF.jpg.html new file mode 100644 index 0000000..70c6292 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:C165_10nF.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:C165 10nF.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:C165 10nF.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Measurement on RC1 board +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:42, 10 September 2010Thumbnail for version as of 11:42, 10 September 2010640×480 (146 KB)Admin (Talk | contribs) (Measurement on RC1 board)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Clk_DDR.jpg.html b/milkymist-wiki/wiki/index.php?title=File:Clk_DDR.jpg.html new file mode 100644 index 0000000..0b7f33f --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Clk_DDR.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:Clk DDR.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Clk DDR.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

DDR differential clock, measured on R91 on RC1 board +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:44, 10 September 2010Thumbnail for version as of 11:44, 10 September 2010640×480 (126 KB)Admin (Talk | contribs) (DDR differential clock, measured on R91 on RC1 board)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Comet.png.html b/milkymist-wiki/wiki/index.php?title=File:Comet.png.html new file mode 100644 index 0000000..f7a896d --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Comet.png.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:Comet.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Comet.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Default wallpaper for RC3 boards. From http://hubblesite.org/newscenter/archive/releases/2004/52/ +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:53, 1 April 2011Thumbnail for version as of 11:53, 1 April 20111,024×768 (724 KB)Admin (Talk | contribs) (Default wallpaper for RC3 boards. From http://hubblesite.org/newscenter/archive/releases/2004/52/)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Curlybracket-light-04.jpg.html b/milkymist-wiki/wiki/index.php?title=File:Curlybracket-light-04.jpg.html new file mode 100644 index 0000000..e60423a --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Curlybracket-light-04.jpg.html @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + File:Curlybracket-light-04.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Curlybracket-light-04.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current07:26, 31 March 2011Thumbnail for version as of 07:26, 31 March 20112,048×1,371 (878 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+

Metadata

+

This file contains additional information, probably added from the digital camera or scanner used to create or digitize it. +If the file has been modified from its original state, some details may not fully reflect the modified file. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:DDR_U14_1-6_100uF_b.jpg.html b/milkymist-wiki/wiki/index.php?title=File:DDR_U14_1-6_100uF_b.jpg.html new file mode 100644 index 0000000..56cc797 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:DDR_U14_1-6_100uF_b.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:DDR U14 1-6 100uF b.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:DDR U14 1-6 100uF b.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Measurement between pins 1-6 of U14 on RC1 board (100uF capacitors installed on C165 and C161, 100nF capacitors installed on C162, C166, C159, C160) +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:47, 10 September 2010Thumbnail for version as of 11:47, 10 September 2010640×480 (175 KB)Admin (Talk | contribs) (Measurement between pins 1-6 of U14 on RC1 board (100uF capacitors installed on C165 and C161, 100nF capacitors installed on C162, C166, C159, C160))
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:DDR_U14_1-6_10nF.jpg.html b/milkymist-wiki/wiki/index.php?title=File:DDR_U14_1-6_10nF.jpg.html new file mode 100644 index 0000000..d7c9eb2 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:DDR_U14_1-6_10nF.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:DDR U14 1-6 10nF.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:DDR U14 1-6 10nF.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Measurement between pins 1-6 of U14 on RC1 board +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:45, 10 September 2010Thumbnail for version as of 11:45, 10 September 2010640×480 (144 KB)Admin (Talk | contribs) (Measurement between pins 1-6 of U14 on RC1 board)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:DQ14_U15_33ohms_10nF_a.jpg.html b/milkymist-wiki/wiki/index.php?title=File:DQ14_U15_33ohms_10nF_a.jpg.html new file mode 100644 index 0000000..5df98e2 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:DQ14_U15_33ohms_10nF_a.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:DQ14 U15 33ohms 10nF a.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:DQ14 U15 33ohms 10nF a.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

DQ14 of U15 on RC1 board, SoC v0.8 +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:49, 10 September 2010Thumbnail for version as of 11:49, 10 September 2010640×480 (103 KB)Admin (Talk | contribs) (DQ14 of U15 on RC1 board, SoC v0.8)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:DQ14_U15_33ohms_10nF_b.jpg.html b/milkymist-wiki/wiki/index.php?title=File:DQ14_U15_33ohms_10nF_b.jpg.html new file mode 100644 index 0000000..1a637fa --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:DQ14_U15_33ohms_10nF_b.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:DQ14 U15 33ohms 10nF b.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:DQ14 U15 33ohms 10nF b.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

DQ14 of U15 on RC1 board, SoC v0.8 +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:50, 10 September 2010Thumbnail for version as of 11:50, 10 September 2010640×480 (112 KB)Admin (Talk | contribs) (DQ14 of U15 on RC1 board, SoC v0.8)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:DQ14_U15_33ohms_10nF_c.jpg.html b/milkymist-wiki/wiki/index.php?title=File:DQ14_U15_33ohms_10nF_c.jpg.html new file mode 100644 index 0000000..2a8ae51 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:DQ14_U15_33ohms_10nF_c.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:DQ14 U15 33ohms 10nF c.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:DQ14 U15 33ohms 10nF c.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

DQ14 of U15 on RC1 board, SoC v0.8 +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:50, 10 September 2010Thumbnail for version as of 11:50, 10 September 2010640×480 (120 KB)Admin (Talk | contribs) (DQ14 of U15 on RC1 board, SoC v0.8)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Ddv.png.html b/milkymist-wiki/wiki/index.php?title=File:Ddv.png.html new file mode 100644 index 0000000..4dad61d --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Ddv.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Ddv.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Ddv.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current20:51, 1 September 2011Thumbnail for version as of 20:51, 1 September 2011744×733 (154 KB)Admin (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:FN110_DesigningforDDR3MemoryonFreescaleMicroprocessors.pdf.bz2.html b/milkymist-wiki/wiki/index.php?title=File:FN110_DesigningforDDR3MemoryonFreescaleMicroprocessors.pdf.bz2.html new file mode 100644 index 0000000..53831bd --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:FN110_DesigningforDDR3MemoryonFreescaleMicroprocessors.pdf.bz2.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + File:FN110 DesigningforDDR3MemoryonFreescaleMicroprocessors.pdf.bz2 - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:FN110 DesigningforDDR3MemoryonFreescaleMicroprocessors.pdf.bz2

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+
+

FN110_DesigningforDDR3MemoryonFreescaleMicroprocessors.pdf.bz2‎ + (file size: 2.93 MB, MIME type: application/x-bzip) +

+
+
Warning: This file may contain malicious code, by executing it your system may be compromised.
+

Designing for DDR3 Memory on Freescale Microprocessors +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:16, 3 September 2009No thumbnail (2.93 MB)Admin (Talk | contribs) (Designing for DDR3 Memory on Freescale Microprocessors)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Flickernoise.png.html b/milkymist-wiki/wiki/index.php?title=File:Flickernoise.png.html new file mode 100644 index 0000000..cbc759b --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Flickernoise.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Flickernoise.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Flickernoise.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current17:46, 21 October 2010Thumbnail for version as of 17:46, 21 October 2010640×480 (31 KB)Admin (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Install2-300x200.jpg.html b/milkymist-wiki/wiki/index.php?title=File:Install2-300x200.jpg.html new file mode 100644 index 0000000..6f27cd3 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Install2-300x200.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:Install2-300x200.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Install2-300x200.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Close up of the Serial/JTAG board connected to the MM1 +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current20:49, 11 January 2011Thumbnail for version as of 20:49, 11 January 2011300×200 (25 KB)Henk (Talk | contribs) (Close up of the Serial/JTAG board connected to the MM1)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Keyboard-settings-bindings.png.html b/milkymist-wiki/wiki/index.php?title=File:Keyboard-settings-bindings.png.html new file mode 100644 index 0000000..a90a092 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Keyboard-settings-bindings.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Keyboard-settings-bindings.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Keyboard-settings-bindings.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current03:50, 14 April 2011Thumbnail for version as of 03:50, 14 April 2011640×480 (158 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Kristianpaul-20100712T040620-hpurqrr.png.html b/milkymist-wiki/wiki/index.php?title=File:Kristianpaul-20100712T040620-hpurqrr.png.html new file mode 100644 index 0000000..829e0d7 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Kristianpaul-20100712T040620-hpurqrr.png.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:Kristianpaul-20100712T040620-hpurqrr.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Kristianpaul-20100712T040620-hpurqrr.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

MM avnet port doing basic led stuff +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current14:44, 13 July 2010Thumbnail for version as of 14:44, 13 July 20101,024×600 (84 KB)Kristianpaul (Talk | contribs) (MM avnet port doing basic led stuff)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Mmarduino.jpg.html b/milkymist-wiki/wiki/index.php?title=File:Mmarduino.jpg.html new file mode 100644 index 0000000..6a05f70 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Mmarduino.jpg.html @@ -0,0 +1,327 @@ + + + + + + + + + + + + + + + + File:Mmarduino.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Mmarduino.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current20:52, 1 September 2011Thumbnail for version as of 20:52, 1 September 2011768×512 (112 KB)Admin (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+

Metadata

+

This file contains additional information, probably added from the digital camera or scanner used to create or digitize it. +If the file has been modified from its original state, some details may not fully reflect the modified file. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Mvc.jpg.html b/milkymist-wiki/wiki/index.php?title=File:Mvc.jpg.html new file mode 100644 index 0000000..55a2cd0 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Mvc.jpg.html @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + File:Mvc.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Mvc.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Milkymist Vacation Club stamp of approval +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:19, 21 November 2011Thumbnail for version as of 15:19, 21 November 2011960×720 (74 KB)Admin (Talk | contribs) (Milkymist Vacation Club stamp of approval)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_1.png.html b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_1.png.html new file mode 100644 index 0000000..b4daebd --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_1.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Patches language Illustrations 1.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Patches language Illustrations 1.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:13, 8 August 2011Thumbnail for version as of 15:13, 8 August 2011640×480 (3 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_2.png.html b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_2.png.html new file mode 100644 index 0000000..9cd44b9 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_2.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Patches language Illustrations 2.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Patches language Illustrations 2.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:13, 8 August 2011Thumbnail for version as of 15:13, 8 August 2011640×480 (113 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_3.png.html b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_3.png.html new file mode 100644 index 0000000..361be4d --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_3.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Patches language Illustrations 3.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Patches language Illustrations 3.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:13, 8 August 2011Thumbnail for version as of 15:13, 8 August 2011640×480 (109 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_4.png.html b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_4.png.html new file mode 100644 index 0000000..1b737de --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_4.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Patches language Illustrations 4.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Patches language Illustrations 4.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:13, 8 August 2011Thumbnail for version as of 15:13, 8 August 2011640×480 (115 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_5.png.html b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_5.png.html new file mode 100644 index 0000000..9887a3b --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_5.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Patches language Illustrations 5.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Patches language Illustrations 5.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:13, 8 August 2011Thumbnail for version as of 15:13, 8 August 2011640×480 (292 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_6.png.html b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_6.png.html new file mode 100644 index 0000000..9fa98ad --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_6.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Patches language Illustrations 6.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Patches language Illustrations 6.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:13, 8 August 2011Thumbnail for version as of 15:13, 8 August 2011640×480 (230 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_7.png.html b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_7.png.html new file mode 100644 index 0000000..55dd490 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_7.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Patches language Illustrations 7.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Patches language Illustrations 7.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:13, 8 August 2011Thumbnail for version as of 15:13, 8 August 2011640×480 (151 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_8.png.html b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_8.png.html new file mode 100644 index 0000000..806855d --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_8.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Patches language Illustrations 8.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Patches language Illustrations 8.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:13, 8 August 2011Thumbnail for version as of 15:13, 8 August 2011640×480 (160 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_9.png.html b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_9.png.html new file mode 100644 index 0000000..b0d43d7 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Patches_language_Illustrations_9.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Patches language Illustrations 9.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Patches language Illustrations 9.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current15:14, 8 August 2011Thumbnail for version as of 15:14, 8 August 2011640×480 (223 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Pulse_A5_U15_33ohms_10nF.jpg.html b/milkymist-wiki/wiki/index.php?title=File:Pulse_A5_U15_33ohms_10nF.jpg.html new file mode 100644 index 0000000..45a8f97 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Pulse_A5_U15_33ohms_10nF.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:Pulse A5 U15 33ohms 10nF.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Pulse A5 U15 33ohms 10nF.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Measurement on RC1 board, A5 pin of U15 +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:48, 10 September 2010Thumbnail for version as of 11:48, 10 September 2010640×480 (120 KB)Admin (Talk | contribs) (Measurement on RC1 board, A5 pin of U15)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Pulse_A5_U15_49ohms_100uF.jpg.html b/milkymist-wiki/wiki/index.php?title=File:Pulse_A5_U15_49ohms_100uF.jpg.html new file mode 100644 index 0000000..448bc33 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Pulse_A5_U15_49ohms_100uF.jpg.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + File:Pulse A5 U15 49ohms 100uF.jpg - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Pulse A5 U15 49ohms 100uF.jpg

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Measurement on RC1 board, A5 pin of U15 (49 ohm resistors and extra capacitors installed) +

+ + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current11:48, 10 September 2010Thumbnail for version as of 11:48, 10 September 2010640×480 (120 KB)Admin (Talk | contribs) (Measurement on RC1 board, A5 pin of U15 (49 ohm resistors and extra capacitors installed))
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Screenshot-video-in.png.html b/milkymist-wiki/wiki/index.php?title=File:Screenshot-video-in.png.html new file mode 100644 index 0000000..4d94dec --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Screenshot-video-in.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Screenshot-video-in.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Screenshot-video-in.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current06:54, 11 April 2011Thumbnail for version as of 06:54, 11 April 2011640×480 (138 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Wall_paper_1.png.html b/milkymist-wiki/wiki/index.php?title=File:Wall_paper_1.png.html new file mode 100644 index 0000000..21fdf43 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Wall_paper_1.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Wall paper 1.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Wall paper 1.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current07:25, 31 March 2011Thumbnail for version as of 07:25, 31 March 2011640×509 (372 KB)Xiangfu (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=File:Yann-addr.png.html b/milkymist-wiki/wiki/index.php?title=File:Yann-addr.png.html new file mode 100644 index 0000000..ca6242a --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=File:Yann-addr.png.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + File:Yann-addr.png - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

File:Yann-addr.png

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + +

File history

Click on a date/time to view the file as it appeared at that time. +

(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) + + +
Date/TimeThumbnailDimensionsUserComment
current00:12, 25 March 2010Thumbnail for version as of 00:12, 25 March 2010196×22 (1 KB)Fallenou (Talk | contribs)
+(Latest | Earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500) +
+
+

The following page links to this file: +

+ + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Flashing_the_Milkymist_One.html b/milkymist-wiki/wiki/index.php?title=Flashing_the_Milkymist_One.html new file mode 100644 index 0000000..4953d81 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Flashing_the_Milkymist_One.html @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + Flashing the Milkymist One - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Flashing the Milkymist One

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + +

Contents

+ +
+
+

There are several ways to flash your Milkymist One. Our goal is to make it as easy as possible. +

+

[edit] Web update (recommended)

+

This is the preferred method for all users. +

+
  • Connect the M1 to the internet. DHCP is default, for manual network setup open the "System Settings" dialog. +
  • Click "Web Update" in the control panel. +
    • Update from web +
      In "Update" window, click on "Update from Web" +
      +
    • Update from files +
      • Download flickernoise.fbi, bios.bin and soc.fpg from http://www.milkymist.org/updates/current +
      • cd to the downlaoded files location +
      • Transfer files from local machine to M1 via FTP +
        On local machine: +
        $ ftp M1_IP_Address +
        When prompt enter login name and password +
        ftp> cd ssd +
        ftp> put flickernoise.fbi +
        ftp> put bios.bin +
        ftp> put soc.fpg +
        +
      • Click "Update from files" +
      • In "Update from files" window, browse to each file then click on "Flash" button. +
      +
    +
+

[edit] Automated JTAG method (for developers)

+

this method needs recently UrJtag installed in your system, first connect your computer to Jtag-serial-daughterboard. +

+

[edit] Reflash all

+
 $ wget https://raw.github.com/milkymist/scripts/master/scripts/reflash_m1.sh
+ $ chmod +x reflash_m1.sh
+ $ sudo ./reflash_m1.sh --qi
+
+

[edit] Flash BIOS with mac address

+
 $ sudo ./reflash_m1.sh --bios-mac 00 17    # $1 $2 is the last two mac address with Hexadecimal
+
+

[edit] Full JTAG reflash (for developers or badly bricked boards)

+

[edit] Flash Memory Distribution

+

You should be aware of this assignment before try write/erase the flash: +

+
STANDBY BITSTREAM           (0x00000000) /* 640k */
+RESCUE BITSTREAM            (0x000A0000) /* 1536k */
+RESCUE BIOS                 (0x00220000) /* 128k */
+MAC ADDRESS                 (0x002200E0) /* MAC within rescue BIOS */
+RESCUE SPLASH               (0x00240000) /* 640k */
+RESCUE APP                  (0x002E0000) /* 4096k */
+REGULAR BITSTREAM           (0x006E0000) /* 1536k */
+REGULAR BIOS                (0x00860000) /* 128k */
+REGULAR SPLASH              (0x00880000) /* 640k */
+REGULAR APP                 (0x00920000) /* remaining space (23424k) */
+
+

(from flash.h) +

+
+
#define FLASH_SECTOR_SIZE     (128*1024) 
+#define FLASH_PARTITION_COUNT (5)
+#define FLASH_PARTITIONS { \
+ { .start_address = 0x806E0000, .length = 0x0180000 }, \  Regular BitStream
+ { .start_address = 0x80860000, .length = 0x0020000 }, \  Regular BIOS
+ { .start_address = 0x80880000, .length = 0x00A0000 }, \  Regular Splash
+ { .start_address = 0x80920000, .length = 0x0400000 }, \  Regular APP(Flickernoise)
+ { .start_address = 0x80D20000, .length = 0x12E0000 }, \  Data partition
+}
+
+

from c/libbsp/lm32/milkymist/include/system_conf.h +

+

[edit] Using UrJTAG

+

This method uses just Free Software and the jtag-serial pod that came with your M1, This is the preferred procedure: works with the Milkymist JTAG pod, faster, and no heavy proprietary software. +

+

[edit] pre-compile images

+
  1. Try re-using files from http://milkymist.org/updates/ for flashing your board +
  2. Develop Snapshots http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/ +
+

[edit] compile urjtag

+

you may need install those libs in debian +

+
$ sudo apt-get install libftdi-dev libusb-1.0-0-dev bison flex python-dev dh-autoreconf
+$ git clone git://urjtag.git.sourceforge.net/gitroot/urjtag/urjtag
+$ cd urjtag/urjtag
+$ ./autogen.sh --with-libusb --with-libftdi --without-ftd2xx --disable-svf --disable-bsdl
+
+
......
+jtag is now configured for
+ Detected libusb      : 1.0
+ Detected libftdi     : yes (no async mode)
+ Detected libftd2xx   : no
+ Detected inpout32    : no
+ Build SVF player     : no
+ Build BSDL subsystem : no
+ Bus drivers          : arm9tdmi au1500 avr32 bcm1250 blackfin bscoach ejtag ejtag_dma fjmem ixp425 ixp435 ixp465 jopcyc h7202 lh7a400 mpc5200 mpc824x mpc837x ppc405ep
+                                 ppc440gx_ebc8 prototype pxa2x0 pxa27x s3c4510 sa1110 sh7727 sh7750r sh7751r sharc_21065L sharc_21369_ezkit slsup3 tx4925 zefant_xs3 
+ Cable drivers        : arcom byteblaster dlc5 ea253 ei012 ft2232 gpio ice100 igloo jlink keithkoep lattice mpcbdm triton usbblaster vsllink wiggler xpc 
+ Lowlevel drivers     : direct ftdi ppdev
+
+
$ make && sudo make install
+
+

if you hit the error below during install: +

+
make[1]: Entering directory '/home/user/urjtag/urjtag/po'
+/bin/sh @MKINSTALLDIRS@ /usr/local/share
+/bin/sh: Can't open @MKINSTALLDIRS@
+make[1]: *** [install-data-yes] Error 127
+
+

then run +

+
$ echo install: > po/Makefile
+
+

then run command 'make sudo install' again +

+
$ ldconfig #make jtag find the liburjtag.so.0
+$ sudo ldconfig #you may also needs this for update root ldconfig
+
+
  • lockflash/unlockflash commands +
+
apply those two patches for get lockflash/unlockflash commands, usage just like "eraseflash", those patches is base on r1979
+
+

[edit] download fjmem

+

Get the FJMEM core for Milkymist and synthesize it (you'll need ISE Webpack) +Alternatively, a pre-synthesized bitstream is available fjmem.bit.bz2 +

+

[edit] flash system

+
  • save these commands to a batchfile, see here for more. +
+
cable milkymist
+detect
+instruction CFG_OUT  000100 BYPASS
+instruction CFG_IN   000101 BYPASS
+pld load fjmem.bit                # LED D2 flashs
+initbus fjmem opcode=000010       # Tells UrJTAG that a FJMEM core is present and how to address it.
+frequency 6000000
+detectflash 0
+endian big
+flashmem 0 standby.fpg noverify   # during flash, D3 flashs
+flashmem 0x6E0000 soc.fpg noverify
+flashmem 0x860000 bios.bin noverify
+flashmem 0x220000 bios-rescue.bin noverify
+flashmem 0x880000 splash.raw noverify
+flashmem 0x920000 flickernoise.fbi noverify
+
+
  • run UrJTAG +
+
$ jtag batchfile
+
+
  • Power cycle the board. It should boot! +
+

[edit] flash data partition

+ +
$ wget http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-firmware-07062011-0000/data.flash5.bin
+
+
  • this step will DELETE all files under /flash, backup first. then save those command to a patch file named flash.data +
+
$ more flash.data
+cable milkymist
+detect
+instruction CFG_OUT 000100 BYPASS
+instruction CFG_IN 000101 BYPASS
+pld load fjmem.bit
+initbus fjmem opcode=000010
+frequency 6000000
+detectflash 0
+endian big
+eraseflash 0xD20000 151
+flashmem   0xD20000 data.flash5.bin noverify
+
+
  • run UrJTAG +
+
$ jtag flash.data
+
+

[edit] info

+
  • You can use "pld load" for loading customs bit-streams directly. +
+
  • Consider flashing bios-rescue.bin in case you need update/fix your MAC Address (set at crt0.S) +
+
  • If you get permission problems, this udev rule might be useful: +
+
 SUBSYSTEM=="usb", ATTRS{idVendor}=="20b7", ATTRS{idProduct}=="0713", MODE="0666"
+
+

[edit] Using the Xilinx tools

+

Do you really want to do it this way? +

This method uses both non-Free and Bloated Software plus an expensive Xilinx cable +

+
  • You need a JTAG cable supported by the Xilinx tools. The Milkymist JTAG pod is not compatible. +
  • Run impact -batch and enter the commands below. Flashing takes several minutes. +
  • Power cycle the board. It should boot! +
+

[edit] Impact batch commands

+
setMode -bscan
+setCable -p auto
+identify -inferir
+identifyMPM
+attachflash -position 1 -bpi "28F256J3F"
+assignfiletoattachedflash -position 1 -file "bitstream.mcs"
+program -p 1 -dataWidth 16 -rs1 NONE -rs0 NONE -bpionly -e
+(repeat the two lines above for every other .mcs file you need)
+quit
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Flickernoise_Patching_Language.html b/milkymist-wiki/wiki/index.php?title=Flickernoise_Patching_Language.html new file mode 100644 index 0000000..313860b --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Flickernoise_Patching_Language.html @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + Flickernoise Patching Language - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Flickernoise Patching Language

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

[edit] handbook

+

Please read handbook.pdf for how the patching variables works, pdf source is here. +

+

[edit] comments

+
// will comments the line as in C++
+
+

[edit] Illustrations

+
+
decay=0
+wave_mode=6
+
+










+

+
+
video_a=1
+decay=0
+wave_mode=2
+
+









+

+
+
video_a=1
+decay=0
+wave_mode=3
+wave_scale=7
+
+








+

+
+
video_a=1
+decay=0
+wave_mode=5
+wave_scale=7
+
+








+

+
+
video_a=1
+decay=1
+wave_mode=5
+wave_scale=7
+per_frame=wave_r=wave_r+0.5*sin(time*1.13);
+per_frame=wave_g=wave_g+0.5*sin(time*1.23);
+per_frame=wave_b=wave_b+0.5*sin(time*1.33);
+
+






+

+
+
video_a=0
+decay=1
+zoom=0.98
+wave_mode=6
+wave_scale=7
+per_frame=wave_r=wave_r+0.5*sin(time*1.13);
+per_frame=wave_g=wave_g+0.5*sin(time*1.23);
+per_frame=wave_b=wave_b+0.5*sin(time*1.33);
+per_frame=rot=0.1*sin(time);
+
+





+

+
+
video_a=0
+decay=1
+zoom=0.98
+wave_mode=6
+wave_scale=7
+per_frame=wave_r=wave_r+0.5*sin(time*1.13);
+per_frame=wave_g=wave_g+0.5*sin(time*1.23);
+per_frame=wave_b=wave_b+0.5*sin(time*1.33);
+per_frame=rot=0.1*sin(time);
+per_frame=zoom=zoom+0.1*sin(4*time);
+
+




+

+
+
video_a=0
+decay=1
+zoom=0.98
+wave_mode=6
+wave_scale=7
+wave_thick=3
+wave_usedots=1
+per_frame=wave_r=wave_r+0.5*sin(time*1.13);
+per_frame=wave_g=wave_g+0.5*sin(time*1.23);
+per_frame=wave_b=wave_b+0.5*sin(time*1.33);
+per_frame=rot=0.1*sin(time);
+per_frame=zoom=zoom+0.1*sin(4*time);
+
+


+

+
+
video_a=0
+decay=1
+zoom=0.98
+wave_mode=6
+wave_scale=7
+wave_thick=3
+wave_usedots=1
+per_frame=wave_r=wave_r+0.5*sin(time*1.13);
+per_frame=wave_g=wave_g+0.5*sin(time*1.23);
+per_frame=wave_b=wave_b+0.5*sin(time*1.33);
+per_frame=rot=0.1*sin(time);
+per_frame=zoom=zoom+0.1*sin(4*time);
+per_frame=decay=pass;
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Flickernoise_build_instructions.html b/milkymist-wiki/wiki/index.php?title=Flickernoise_build_instructions.html new file mode 100644 index 0000000..742afc0 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Flickernoise_build_instructions.html @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + Flickernoise build instructions - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Flickernoise build instructions

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+
Flickernoise screenshot
+
Flickernoise Video-in Performance
+

Contents

+ +
+

[edit] Build products

+

The Automatic or Manual build procedures create the Flickernoise VJ application for the Milkymist One. The final Flickernoise executable is an ELF binary. From that, you can either: +

+
  • try the ELF binary in the QEMU emulator with qemu-system-lm32 -M milkymist -kernel flickernoise +
  • generate a raw binary file with make flickernoise.ralf, suitable for TFTP netbooting (recommended), booting from the memory card or downloading over the serial line with flterm. Using flterm is not recommended as this method is slow because of the large size of the binary. +
  • generate a FBI image with make flickernoise.fbi that you can use with the auto-upgrade feature of Flickernoise (0.2+). +
+

[edit] Automatic build

+

xiangfu wrote some Makefiles to compile the lm32 toolchain and flickernoise. Please read the README.html for detailed directions and host specific requirements. Build steps are below: +

+
  • Download the script files: +
+
   $ git clone git://github.com/milkymist/scripts.git
+
+
  • Read and follow the directions in the README.html file: +
+
   $ cd scripts  
+   $ vi README
+
+

[edit] Manual build steps

+

Note: The automatic build procedure is the preferred way of building the Flickernoise application. +

+

[edit] RTEMS and toolchain

+

First you need to follow the RTEMS build instructions. We will assume you have installed both RTEMS and the toolchain in /opt/rtems (or /opt/rtems-VERSION). Not installing RTEMS and the toolchain in the same directory tends to cause problems w.r.t. finding include files. +

We recommend using the GCC 4.5.1 based toolchain, which works reasonably well. You will however need to patch GCC a bit so the base C libraries can use all the features of our LM32 implementation: +

+
diff -Naur gcc-4.5.1.orig/gcc/config/lm32/t-lm32 gcc-4.5.1/gcc/config/lm32/t-lm32
+--- gcc-4.5.1.orig/gcc/config/lm32/t-lm32	2010-03-30 12:26:24.000000000 +0200
++++ gcc-4.5.1/gcc/config/lm32/t-lm32	2010-11-28 12:42:30.047795004 +0100
+@@ -1,2 +1,2 @@
+ # for multilib
+-MULTILIB_OPTIONS = mmultiply-enabled mbarrel-shift-enabled
++MULTILIB_OPTIONS = mbarrel-shift-enabled mmultiply-enabled mdivide-enabled msign-extend-enabled
+
+

Once you have the toolchain and RTEMS installed: +

+
  • make sure the toolchain binary directory (e.g. /opt/rtems/bin) is in your PATH, so that the lm32-rtems4.11-* family of commands is found. +
+
export PATH=/opt/rtems-4.11/bin:$PATH 
+
+
  • set the RTEMS_MAKEFILE_PATH environment variable, e.g. to /opt/rtems-4.11/lm32-rtems4.11/milkymist +
+
export RTEMS_MAKEFILE_PATH=/opt/rtems-4.11/lm32-rtems4.11/milkymist
+
+

[edit] libpng

+

We use libpng 1.5.6. Sometimes, GNU/Autocrap-infected software packages happen to work almost correctly, and libpng is one of those rare cases. +

+
CC=lm32-rtems4.11-gcc CFLAGS="-O9 -Wall -mbarrel-shift-enabled -mmultiply-enabled -mdivide-enabled -msign-extend-enabled -I $RTEMS_MAKEFILE_PATH/lib/include -B $RTEMS_MAKEFILE_PATH/lib -specs bsp_specs -qrtems" CPPFLAGS="-DPNG_NO_FLOATING_ARITHMETIC -DPNG_NO_FLOATING_POINT" ./configure --disable-shared --prefix=$RTEMS_MAKEFILE_PATH --host=lm32-rtems4.11
+make
+make install
+
+

Again, move the include files: +

+
mv /opt/rtems-4.11/lm32-rtems4.11/milkymist/include/* /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib/include
+
+

[edit] libjpeg

+

This is known to work with jpegsrc v8c from IJG. +

+
wget http://www.ijg.org/files/jpegsrc.v8c.tar.gz
+
+
CFLAGS="-O9 -Wall -mbarrel-shift-enabled -mmultiply-enabled -mdivide-enabled -msign-extend-enabled -I $RTEMS_MAKEFILE_PATH/lib/include -B $RTEMS_MAKEFILE_PATH/lib -specs bsp_specs -qrtems" ./configure --host=lm32-rtems4.11 --disable-shared --prefix=$RTEMS_MAKEFILE_PATH
+make
+make install
+mv /opt/rtems-4.11/lm32-rtems4.11/milkymist/include/* /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib/include
+
+

[edit] libcurl

+

Tested with curl 7.22.0. Configure with the usual Autocrap command line (as above). Special parameters are: --host=lm32-rtems4.11 --disable-shared --without-librtmp --disable-ftp --disable-ldap --disable-ldaps --disable-rtsp --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smtp --disable-gopher --disable-manual --prefix=$RTEMS_MAKEFILE_PATH +

Then you need to hack the generated files: +

+
  • at the end of lib/setup.h add #define HAVE_SOCKET 1 +
+

[edit] expat

+

Works with expat 2.0.1. Edit conftools/config.sub and replace ppc with lm32, then proceed like with Freetype. +

+

[edit] Softusb firmware

+

You will need gcc-avr. +

Make sure the RTEMS_MAKEFILE_PATH environment variable is set (see above). +

Run these commands from the top directory of the SoC distribution: +

+
 $ cd softusb-input
+ $ make
+ # make install
+
+

[edit] libFPVM

+

Flickernoise uses the FPVM compilation library to generate microcode for the PFPU. It is part of the SoC distribution. +

You will need Lemon and RE2C to compile libFPVM. +

Make sure the RTEMS_MAKEFILE_PATH environment variable is set (see above). +

dont forget PATH too, ie PATH=/opt/rtems-4.11/bin:$PATH +

Run these commands from the top directory of the SoC distribution: +

+
 $ cd software/libfpvm
+ $ make
+ # make install
+
+

[edit] MTK

+

MTK (Milkymist Toolkit) is a lightweight and portable GUI toolkit, based on Genode FX. +

After you have cloned the git repository, compilation and installation are very simple: +

+
make milkymist
+make install-milkymist
+
+

(Again, these commands requires the RTEMS_MAKEFILE_PATH environment variable) +

+

[edit] liboscparse (lop)

+

Liboscparse is used to implement Opensoundcontrol (OSC). It is based on liblo, but it does not use the GNU/Autocrap "build system" and does not contain any network-dependent code (the original liblo networking code does not play nice with RTEMS). +

Run the following commands (making sure the environment variables listed above are set): +

+
 make
+ make install
+
+

[edit] Yaffs

+

rtems-yaffs2 YAFFS (Yet Another Flash File System) is now in its second generation and provides a fast robust file system for NAND and NOR Flash. +

After you have cloned the git repository, compilation is very simple: +

+
make -f Makefile.rtems
+make -f Makefile.rtems install
+
+

(Again, this command requires the RTEMS_MAKEFILE_PATH environment variable) +

+

[edit] Flickernoise

+

Compile it with: +

+
 cd src
+ make
+
+

Do not forget to set the RTEMS_MAKEFILE_PATH environment variable to the right directory where your RTEMS is installed. +

This produces an ELF binary. From that, you can either: +

+
  • try the ELF binary in the QEMU emulator with qemu-system-lm32 -M milkymist -kernel flickernoise +
  • generate a raw binary file with make flickernoise.ralf, suitable for TFTP netbooting (recommended), booting from the memory card or downloading over the serial line with flterm. Using flterm is not recommended as this method is slow because of the large size of the binary. +
  • generate a FBI image with make flickernoise.fbi that you can use with the auto-upgrade feature of Flickernoise (0.2+). +
  • generate a MCS flash image with make flickernoise.mcs that you can download into the board's flash memory so that Flickernoise automatically starts at every boot. +
+

[edit] Extra libraries (normally not needed)

+

[edit] freetype2

+

This is known to work with freetype 2.4.4. +

+
wget http://ufpr.dl.sourceforge.net/project/freetype/freetype2/2.4.4/freetype-2.4.4.tar.gz
+
+
CFLAGS="-O9 -Wall -mbarrel-shift-enabled -mmultiply-enabled -mdivide-enabled -msign-extend-enabled -I $RTEMS_MAKEFILE_PATH/lib/include -B $RTEMS_MAKEFILE_PATH/lib -specs bsp_specs -qrtems" ./configure --host=lm32-rtems4.11 --disable-shared --prefix=$RTEMS_MAKEFILE_PATH
+make
+make install
+mv /opt/rtems-4.11/lm32-rtems4.11/milkymist/include/* /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib/include
+
+

[edit] libgd

+

This works with GD 2.0.33. +

RTEMS lacks the required include file bits/wordsize.h so we create one: +

+
mkdir /opt/rtems-4.11/lm32-rtems4.11/include/bits
+cat << EOF > /opt/rtems-4.11/lm32-rtems4.11/include/bits/wordsize.h
+#define __WORDSIZE 32
+EOF
+
+

Edit the beginning of the Makefile to set: +

+
COMPILER=lm32-rtems4.11-gcc
+AR=lm32-rtems4.11-ar
+CFLAGS=-O9 -Wall -mbarrel-shift-enabled -mmultiply-enabled -mdivide-enabled -msign-extend-enabled -fsingle-precision-constant -I$(RTEMS_MAKEFILE_PATH)/lib/include -I/opt/rtems-4.11/lm32-rtems4.11/milkymist/lib/include/freetype2 -g -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE -DHAVE_FT2BUILD_H
+LIBS=-lgd -lpng -lz -ljpeg -lfreetype -lm
+INCLUDEDIRS=-I.
+LIBDIRS=
+
+

Also, they seem to have forgotten gd_security.c to the list of objects, so add it to LIBOBJS. +

Compile with: +

+
make libgd.a
+
+

Then copy libgd.a to /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib and gd.h, gdcache.h, gd_io.h, gdfontg.h, gdfontl.h, gdfontmb.h, gdfonts.h and gdfontt.h to /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib/include. +

+

[edit] openjpeg

+

We use openjpeg version 1.2. +

+
wget http://www.openjpeg.org/openjpeg_v1_2.tar.gz
+
+

Uncompress the archive, and edit the Makefile: +

+
  1. set CC = lm32-rtems4.11-gcc -mbarrel-shift-enabled -mmultiply-enabled -mdivide-enabled -msign-extend-enabled +
  2. set AR = lm32-rtems4.11-ar +
  3. for the target OpenJPEG, comment out $(SHAREDLIB) +
+

RTEMS lacks memory.h so we create a fake one: +

+
echo "#include <string.h>" > libopenjpeg/memory.h
+
+

Type make to compile. Then ranlib and copy the library and its include file to the RTEMS directory: +

+
lm32-rtems4.11-ranlib libopenjpeg.a
+cp libopenjpeg.a /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib
+cp libopenjpeg/openjpeg.h /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib/include
+
+

[edit] jbig2dec

+

We use jbig2dec 0.11. +

+
wget http://ghostscript.com/~giles/jbig2/jbig2dec/jbig2dec-0.11.tar.gz
+
+

You will first need to re-generate config.sub using a recent version of automake. Indeed, the steaming pile of shit that constitutes GNU/Autocrap has a hardcoded list of CPUs it would support, and lm32 isn't included with many software packages. +

+
rm config.sub
+automake --add-missing
+
+

Ignore any warning about version mismatches that automake may puke out - trying to fix it actually makes the problem worse. +

Run the configure script, compile and install: +

+
CFLAGS="-O9 -Wall -mbarrel-shift-enabled \ 
+-mmultiply-enabled -mdivide-enabled -msign-extend-enabled \
+-I $RTEMS_MAKEFILE_PATH/lib/include \
+-B $RTEMS_MAKEFILE_PATH/lib -specs bsp_specs -qrtems" \
+./configure --host=lm32-rtems4.11 --disable-shared --prefix=$RTEMS_MAKEFILE_PATH
+make
+make install
+
+

Again, move the include file: +

+
mv /opt/rtems-4.11/lm32-rtems4.11/milkymist/include/* /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib/include
+
+

[edit] mupdf

+

These instructions are known to work with mupdf 0.7. +

+
wget http://mupdf.com/download/mupdf-0.7.tar.gz
+
+

First, compile the code generation tools natively: +

+
gcc -o build/release/cmapdump ./mupdf/cmapdump.c  -lfreetype -ljpeg -lz -lm -Ifitz
+gcc -o build/release/fontdump ./mupdf/fontdump.c  -lfreetype -ljpeg -lz -lm -Ifitz
+
+

Then, edit Makerules and: +

+
  1. comment out the two lines at the beginning setting the OS variable +
  2. set CC := lm32-rtems4.11-gcc +
  3. set CFLAGS := -Ifitz -Imupdf -Wall -O9 -Wall -mbarrel-shift-enabled -mmultiply-enabled -mdivide-enabled -msign-extend-enabled -I $(RTEMS_MAKEFILE_PATH)/lib/include -I $(RTEMS_MAKEFILE_PATH)/lib/include/freetype2 -B $(RTEMS_MAKEFILE_PATH)/lib -specs bsp_specs -qrtems +
+

Compile the MuPDF library with: +

+
make build=release build/release/libmupdf.a
+
+

Finally, copy the includes and binaries to the RTEMS folder: +

+
cp fitz/fitz.h /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib/include
+cp mupdf/mupdf.h /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib/include
+cp build/release/libmupdf.a /opt/rtems-4.11/lm32-rtems4.11/milkymist/lib
+
+

[edit] FFMPEG

+
#undef __STRICT_ANSI__
+#include <stdlib.h>
+
+
CFLAGS="-O9 -Wall -mbarrel-shift-enabled -mmultiply-enabled -mdivide-enabled -msign-extend-enabled -I $RTEMS_MAKEFILE_PATH/lib/include -B $RTEMS_MAKEFILE_PATH/lib -specs bsp_specs -qrtems" ./configure --cross-prefix=lm32-rtems4.11- --enable-cross-compile --target-os=none --arch=lm32 --disable-shared --disable-network --prefix=$RTEMS_MAKEFILE_PATH
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Flickernoise_roadmap.html b/milkymist-wiki/wiki/index.php?title=Flickernoise_roadmap.html new file mode 100644 index 0000000..d46fa74 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Flickernoise_roadmap.html @@ -0,0 +1,363 @@ + + + + + + + + + + + + + + + + Flickernoise roadmap - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Flickernoise roadmap

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] 0.1 (November 19th, 2010)

+
  • Patch rendering support (same features as in the demo renderer) +
  • Support patch change on: +
    • keyboard events +
    • IR events +
    • OSC events +
    • MIDI events +
    +
  • DMX variables +
  • OSC variables +
  • GUI settings for keyboard, IR, MIDI, OSC, DMX +
  • DMX table +
  • DMX spy +
  • Performance load and save +
  • Audio mix table +
  • Patch editor +
  • Variable monitor +
  • Wallpaper +
+

[edit] 0.2 (December 23rd, 2010)

+
  • Video input support +
  • Flash upgrade support +
  • YAFFS2 flash filesystem +
  • Configurable system settings +
  • DHCP client support +
  • Performance autostart +
  • FTP server +
  • Telnet server +
  • Text messages from OpenSoundControl +
+

[edit] 0.3 (April 6th, 2011)

+
  • Support for 640x480, 800x600 and 1024x768 resolutions (GUI only) +
  • New color theme +
  • Quiet autostart mode +
  • GUI usability improvements: +
    • Mouse wheel scrolling support +
    • Delete key working on selected text in editor +
    • Ctrl-A selects all text +
    • File dialog box: extension filter, hide /dev, open files with double click +
    • Scroll bars in patch editor +
    +
  • File manager +
  • Optional: PDF reader (online help) +
  • Selectable wallpaper +
  • Screenshots (Xiangfu) +
  • More DMX channels +
  • Display MTK version +
  • Mount memory card in read only mode +
  • Optional: LZMA compression of the flash boot image +
+

[edit] 0.4 (May 23rd, 2011)

+
  • RSS wall +
  • Simple performance mode (just use all patches found in flash) +
  • Active pushbuttons: +
    • LEFT (PB3/F9): update the entire box over Ethernet, download new patches from shared pool. (To be finalized) +
    • MIDDLE (PB2/F10): boot, start rendering some patch right away using simple performance mode. Press again (long press) to turn off. +
    • RIGHT (PB1/F11): switch to next patch (in simple performance mode) +
    +
  • Support for different keyboard maps: US, French, German +
  • Automatic build of patch sets for keyboard and MIDI +
  • Display line numbers in patch editor +
  • Display explicative dialog box in rescue mode +
  • Improved network settings: DNS, gateway +
  • Do not load system configuration in rescue mode +
  • Renamed /flash to /ssd +
  • Web update (incomplete/experimental) +
  • F1 key to display patch name when rendering +
  • Bugfixes: +
    • Crash with autostart when resolution is 640x480 +
    • All known Ethernet instability problems +
    • DHCP IP address not taken when DHCP is enabled at boot +
    • Subdirectories not always working on flash +
    • First patch dialog box not updated on performance file load +
    +
+

[edit] 1.0RC1 (July 13th, 2011)

+
  • Support for French language +
  • Automatic update over the internet +
  • Online patch pool +
  • Keyboard shortcut: Meta key + arrows/enter to move/click the mouse +
  • File dialog: search option +
  • Simple performance mode options: +
    • patch title display at patch switch +
    • automatic patch switch after delay +
    • L pushbutton for previous patch +
    +
  • Keyboard shortcuts to change video input parameters live in rendering mode: +
    • F5/F6: brightness +/- +
    • F7/F8: contrast +/- +
    +
  • Changed F8 "Start rendering" shortcut to F2 +
  • Changed F8 "Stop rendering" shortcut to ESC +
  • MIDI variables +
  • OpenSoundControl and IR patch configuration autobuild +
  • MIDI and IR: remove capture button, always capture when window is open +
  • Update and show system settings dialog box on resolution switch shortcut +
  • Disable memory card automount +
+

[edit] 1.0 (November 13th, 2011)

+
  • Use US keyboard layout by default +
  • Simple mode: reset timer on manual patch switch +
  • Do not allow empty filenames in file dialogs +
  • Fix MIDI synchronization (Werner) +
  • Fix MIDI over OSC (Werner) +
  • Support for upstream RTEMS 4.11 +
  • Support for upstream YAFFS +
+

[edit] 1.1 (November 29th, 2011)

+
  • Support the inclusion of user-supplied pictures in PNG and JPG formats into the patches. +
  • Support patch mashup. +
  • Support selection of composite on any connector, S-Video and Component sources in the GUI. +
  • Keyboard shortcuts to switch between composite video sources: F1/F2/F3 to select green/blue/red inputs (respectively). +
  • Screenshot shortcut remapped to Ctrl-Pause +
  • In simple performance mode, skip "advanced" patches (MIDI/DMX/OSC) and patches that use video input when no video signal is present. +
  • Always run DHCP in the background instead of using the regular RTEMS configuration. Use periodic retries in case of failure. +
  • Send a black screen instead of no signal during startup. +
  • Prevent going outside of /ssd in file dialogs. +
  • MIDI/DMX configuration: holding the mouse on the midiX/idmxX label sets the channel on MIDI/DMX events (Werner) +
  • New PFPU scheduler from Werner. +
  • Improve patch compiler register allocation, so we can use more variables in the patches. +
  • Random delay in simple mode. +
  • Simplify shutdown dialog. +
+

[edit] 1.2 (March 1st, 2012)

+
  • Major improvements: +
    • Experimental support for USB-MIDI devices (e.g. LV3 and ICON) +
    • Support for image sequences +
    • Improved patch syntax +
    • Improved MIDI management +
    +
  • Minor improvements: +
    • Sound level indicator +
    • Fullscreen video-in preview button +
    • Basic cache for compiled patches +
    • Improved network management +
    • Enable DMX chain mode by default +
    • Change the ftpd root to /ssd +
    • Disable performance window buttons when compiling +
    • Adjusted VGA timings for compatibility with more screens +
    • Load USB firmware through ioctl interface +
    +
+

[edit] Next

+
  • Disable mouse click exit rendering mode +
  • Ctrl+H : display keyboard shortcut information in rendering mode +
+
Hold F9 / Hold left button: Web update
+F1 / F2 / F3: Set video in CVBS green/blue/red
+F5 / F6: Increase/decrease brightness
+F7 / F8: Increase/decrease contrast
+Ctrl+Esc: Exit fun
+F1: Show patch name(simple mode)
+F9 / RIGHT: Next patch(simple mode)
+F11 / LEFT: Previous patch(simple mode)
+Ctrl+Alt+Del / Hold F10 / Hold middle button: Reboot
+PrtScr: Screenshot
+Ctrl+F1: Switch resolution
+
+
  • Add MIC boost support and enable by default +
  • New USB firmware loading mechanism +
  • New usb command. allow load usbsoft-input firmware from file. useful for debug usbsoft-input.bin +
  • FPL: new grammar: accept Perl-like var = expr if cond syntax (new-style only) +
  • FPL: Remove legacy midiX variables, check wheel.fnp for new midi grammar +
  • FPL: if can no longer be used as a variable name +
  • Modernize "Geiss & Werner - Tornado (Rain Dance MIDI RMX).fnp" +
  • Fixed issue #35 take the currect settings to full screen +
  • Build with latest RTEMS 2012-03-30 15:19:18 +
  • Update the rtems-yaffs2 with latest RTEMS api +
+

[edit] Other ideas

+
  • Replace control panel buttons with icons (desktop) +
  • Remote control "SMS" mode, maybe by OSC? +
  • More wave modes +
  • Video input variable delay +
  • In-video triggers +
  • Online video streaming (WebM/Theora) +
  • German language support. +
  • Use Freetype for font rendering everywhere. +
  • Chinese language support. +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Flickernoise_user_manual.html b/milkymist-wiki/wiki/index.php?title=Flickernoise_user_manual.html new file mode 100644 index 0000000..6eca64b --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Flickernoise_user_manual.html @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + Flickernoise user manual - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Flickernoise user manual

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Flickernoise User Manual +

+
+

Contents

+ +
+

[edit] keyboard bindings

+

bind keys to different patches. switch them when press the key +

+

[edit] keyboard shortcuts

+
  1. Ctrl + Alt + Del : reboot Milkymist one +
  2. long press F10/Middle_Button : shutdown Milkymist one +
  3. press Middle_Button : start Milkymist one +
+

[edit] GUI mode

+
  1. Ctrl + F1 : switch screen resolution +
  2. Ctrl + Pause : take Screenshot save to /flash/ +
+

[edit] Rendering Mode

+
  1. F1/F2/F3 : switch composite video sources +
  2. F5/F6 : video input brightness +
  3. F7/F8 : video input contrast +
  4. F9/Left_Button : previous patch in simple mode +
  5. F11/Right_Button : next patch in simple mode +
  6. Ctrl+ESC : exit rendering mode +
+

[edit] Rescue Mode

+

press LEFT and MIDDLE at same time will boot to rescue mode, you have to using 'shutdown' in GUI for reboot to normal mode +

+

[edit] What you want

+

if you have any idea about shortcuts, please send email to devel AT lists.milkymist DOT org +

+

[edit] The Three Buttons

+
  • short press Middle_button start Milkymist one. +
  • long press Middle_button show slash screen when boot. +
  • long press Middle_button shutdown Milkymist one after power on. +
  • press Left + Middle + Right reboot Milkymist one. +
  • press Middle + Right boot to RESCUE mode, for fix the regular system. +
  • press Middle + left boot to TEST mode, the screen will like random noise pattern, wait input on serial console. +
  • Left_Button map to keyboard F9 after boot. +
  • Middle_Button map to keyboard F10 after boot. +
  • Right_Button map to keyboard F11 after boot. +
+

[edit] OSC

+

osc message address and type +

+
     "/midi", "m"
+     "/patch", "i"
+     "/variable", "if"
+     "/osd", "s"
+
+
  • oscsend 192.168.0.42 4444 /osd s "you are watching Milkymist one" +
  • oscsend 192.168.0.2 4444 /patch i 1 +
+

[edit] Capture screenshot

+
  • At the desired screen view, press Ctrl+Pause key +
  • Screenshot files will be created as /ssd/Screenshot-xx.png +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=GCC_bug_list.html b/milkymist-wiki/wiki/index.php?title=GCC_bug_list.html new file mode 100644 index 0000000..97176e1 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=GCC_bug_list.html @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + GCC bug list - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

GCC bug list

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=GSoC_application_2011.html b/milkymist-wiki/wiki/index.php?title=GSoC_application_2011.html new file mode 100644 index 0000000..5a8d8e1 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=GSoC_application_2011.html @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + GSoC application 2011 - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

GSoC application 2011

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + +
+

Don't apply to GSoC, it's a waste of time. Don't get a job at Google, either. +

+
+


+This is for Google Summer of Code 2011 Application. +

http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/faqs +

+

[edit] Timeline

+
  • Feb 28, mentoring orgs can submit apps +
  • March 11, mentoring apps deadline +
  • March 18, announcement about accepted mentoring organizations +
  • March 28, student app period opens +
  • April 8, student app period closes +
  • Then there are more dates, but these are the key ones! +
+ + +

Contents

+ +
+
+

[edit] Application

+

[edit] Describe your organization.

+

Milkymist is the leading open source system-on-chip design. It is today the fastest open source system-on-chip capable of running Linux, and it comes with an extensive set of features and graphics accelerators. +

On the surface, Milkymist is promoted as a visual synthesizer. The project develops a stand-alone device in a small form factor that is capable of rendering MilkDrop-esque visuals effects in real time. It has a high level of interaction with many sensors and uses live audio and video streams. +

The flexibility of the FPGA used as a central component enables advanced users to modify the design, and also permits compact integration of many interfaces (Ethernet, OSC, MIDI, DMX512, video inputs). This makes Milkymist the platform of choice for both anyone looking to build a fast open source processor and for the mobile VJ (video performance artist). +

The IP cores that make up the system-on-chip are entirely written in open source synthesizable Verilog HDL and come with test benches and documentation. This makes Milkymist a great library for re-usable logic cores to serve as a base for other open source hardware. In this regard, Milkymist is similar to projects such as LEON3/GRLIB (http://www.gaisler.com/cms/index.php?option=com_content&task=section&id=13&Itemid=125), OpenSPARC (http://www.opensparc.net/) and OpenCores (http://www.opencores.org). +

The project is led by Sébastien Bourdeauducq with a strong community of over 30 active in the IRC chat channel. Development boards, for starters the Milkymist One board: http://en.qi-hardware.com/wiki/Milkymist_One, and now available end-user products using the open source system-on-chip are available in collaboration with Sharism at Work Ltd (http://www.sharism.cc). +

The mentors we have for Google Summer of Code 2011 are: +

+
  • Sébastien Bourdeauducq (Milkymist founder) +
  • Jon Phillips +
  • Eric Rannaud (Ulogic) +
+

[edit] Why is your organization applying to participate in GSoC 2010? What do you hope to gain by participating?

+

The first hardware is real and manufactured. The code is already well developed. Some parts have even been re-used in prestigious development projects, for example the Milkymist memory controller is being used in the NASA CoNNeCT experiment: http://www.nasa.gov/mission_pages/station/science/experiments/CoNNeCT.html). However, there is still a significant effort needed to make the software work well. +

At present all developers on the project are self-employed and work on the project in spare time, while taking on extra work to keep the project alive. GSoC 2011 is important to provide some stimulation to the community and get some younger participants from around the world involved. +

This effort encompasses work on the device drivers, board support package, graphics libraries, user interface, and end user application. The primary goal of this GSoC application is therefore to recruit more software developers, to provide a good and open source operating system support and end-user applications for the open hardware system-on-chip. +

There are also some hardware tasks that can still be done, for the HDL designers among students. +

+

[edit] Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.

+

No, we are hopeful to participate this year. Jon Phillips is helping us with the application this year and supporting contributors. He has been a mentor for Inkscape the first year of GSoC, Creative Commons and StatusNet. He will help guide the mentors and project through the summer. +

+

[edit] If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?

+

Yes, we applied last year and were not accepted. We have talked with Google employees about this and are submitting a more solid application this year. +

+

[edit] What license(s) does your project use?

+

GPLv3 for the most part. The LatticeMico32 CPU core is using a license specific to Lattice Semiconductor, which is BSD-style. All license details are in the "Credits" section of the README file: http://github.com/lekernel/milkymist/blob/master/README . Students are encouraged to use GPL, but other open source licenses compatible with it might also be used after agreement. Compatibility with GPL is a high priority. +

+

[edit] What is the URL for your ideas page?

+

http://www.milkymist.org/wiki/index.php?title=GSoC_ideas_2011 +

+

[edit] What is the main development mailing list for your organization?

+

Milkymist-devel +

+ +

[edit] What is the main IRC channel for your organization?

+

Channel #milkymist on the FreeNode network (irc.freenode.net) +

+

[edit] Does your organization have an application template you would like to see students use? If so, please provide it now.

+

http://www.milkymist.org/wiki/index.php?title=GSoC_2011_Template +

+

[edit] Who will be your backup organization administrator?

+

Jon Phillips (Link id: rejon) +

+

[edit] What criteria did you use to select these individuals as mentors? Please be as specific as possible.

+
  • High personal involvement in open source software or hardware. +
  • Technical expertise in the many specific areas that the Milkymist project requires: Linux kernel development, logic design (Ulogic), embedded GUI toolkit design (Genode FX). +
  • Interest in the Milkymist project. +
  • Time for and interest in mentoring students. +
  • Good contact with the administrator. +
+

[edit] What is your plan for dealing with disappearing students?

+

We will collect contact information (email + mobile + home phone number) and mentors should regularly check up (at least every week) and report to the administrator. +

We will require an initial blog post that will be posted on our main website http://milkymist.org at the beginning of the project. Then, we will require a mid-stream blog post and then a final blog post as well. +

We will have weekly meetings as well for the project with the mentors and students encouraged to attend. These will be simple check-ins, but crucial to keep students moving forward on the project. +

In case a student really disappears, we will inform Google and go without their contribution. +

+

[edit] What is your plan for dealing with disappearing mentors?

+

This should not happen, however, the administrator will regularly check that the mentors are still on the project (at least once a week). The administrator will have contact information (email + home + mobile phone) of all mentors. +

In case a mentor does disappear, we will inform Google and assign their students to other mentors. The number of students per mentor should be kept low (0 to 2) to limit the problems this would cause. +

+

[edit] What steps will you take to encourage students to interact with your project's community before, during and after the program?

+

As mentioned before, we will have the students write an initial blog post, a midterm and a final blog post to let the community (and world) know about their work for the summer. +

The Milkymist project has an IRC channel and a mailing list where developers meet. We will ask that students and mentors be always present there during their work (if network connectivity permits), and are subscribed to the mailing list (if not already so). +

If students and mentors are geographically close enough, we will have meetings, workshops and code sprints at hackerspaces such as /tmp/lab (http://www.tmplab.org) or La Suite Logique (http://www.lasuitelogique.org) in Paris. +

We intend to be open to the student's contributions and ideas, even though they might not be perfect. We'll encourage the students to discuss them with their mentors, on the mailing list and IRC. We'll provide fast answers to their questions to keep motivation up. +

We hope that the students will enjoy contributing to the project and use the many opportunities that we provide to link with interesting people. +

+

[edit] What will you do to ensure that your accepted students stick with the project after GSoC concludes?

+

We will give complete sub-projects to the students and then ask them if they can be sub-project maintainers. By giving them such ownership and control over their work, we hope to get them personally involved in it. +

We also hope that they will appreciate to work on an unusual project that brings openness to a new level: the design of the chip their software would run on. They could even design parts of the chip! +

Finally, we will work to be able to integrate student's code in the releases, so that they can see their code being actually used, which should motivate their continued involvement. +

Community commitment will ensure that the student will feel reward of contributing after the GSoC period. +

Also, by helping the students to promote their work, this will benefit GSoC and the students in announcing the constant activity for the project. +

+

[edit] If you are a small or new organization applying to GSoC, please list a larger, established GSoC organization or a Googler that can vouch for you here.

+

Jon Phillips (http://rejon.org) from Inkscape, Open Clip Art Library, Creative Commons, Status.Net, and Fabricatorz vouches for this project. I personally will administer it. Chris DiBona, Cat, Carol, and DeWitt can vouch for me. My organization Fabricatorz (http://fabricatorz.com) and our community for open hardware, http://qi-hardware.com vouches for this project. +

I'm http://rejon.org/bio +


+

+

[edit] If you are a large organization who is vouching for a small organization applying to GSoC for their first time this year, please list their name and why you think they'd be good candidates for GSoC here:

+

Sebastien and the entire Milkymist.org project is exemplary. There hasn't existed a real affordable and fun open source microprocessor project. I (Jon Phillips) think this project is world changing and the beginning of bringing real hardware hacking to the home and developers desk. I think that innovation and the student engagement will be beyond the effects of Arduino and other open hardware projects that have existed yet. I personally vouch for the heroic efforts of the community. I have never seen a more impressive team of hardware hackers also maintaining such a level of quality. +


+

+

[edit] Project Ideas

+

[edit] Linux port (device drivers)

+

There needs to be linux ports of the device drivers still: Ethernet, improvements of the framebuffer driver, sound (ALSA), video input (V4L), graphics acceleration, DMX, MIDI, infrared. +

+

[edit] Patch Store + Online Upgrade

+

The goal is to build a patch store where patches for milkymist will be available and anyone may contribute for othrs to use. Also, there should be the capability to update the milkymist from the web as an online upgrade. This technology should all be standards based. +

+

[edit] On-Video Controls

+

Flickernoise (the VJ application) can already render effects on the device using the video input, in the style of Visikord. However, it currently lacks active areas and motion-directed effects like those demonstrated on this video. The goal of this task is to implement such interaction possibilities. +

+

[edit] File Manager

+

The embedded GUI application needs a file manager implemented using the MTK GUI toolkit, for standard file operations (rename, move, delete, create directories, ...). Ideally, it should also double as FTP client to enable easy file transfers between two Milkymist devices, which already include a FTP server. +

+

[edit] OHCI Support

+

The current USB FPGA core ("softusb") is based on a microprocessor compatible with gcc-avr that handles the details of the USB protocol and the communication with the host. The softusb firmware is currently only capable of talking to input devices using a simple ad hoc protocol to communicate the input events to the host. The goal of this task is to rewrite the softusb firmware and perhaps make some modifications to the Verilog HDL code in order to support the standard OHCI host protocol for USB. +

+

[edit] LM32 MMU

+

I'd do it this way, but the applicant or mentor can disagree as long as it works great. The main design goals are to use little FPGA resources, avoid complex logic that would reduce the system clock frequency, and have no impact on performance when the MMU is disabled and a minimal impact when it is enabled. +

+
  • MMU can be completely disabled, for initial TLB loading and backwards compatibility +
  • Separate instruction and data TLBs +
  • Virtual indexes and physical tags +
  • TLBs running concurrently in the CPU pipeline with the I and D caches, with one cycle latency +
  • TLB storage implemented on FPGA block RAM, enabling a large number of entries to be stored efficiently +
  • Thanks to this large number of entries, we can assume we have a low rate of minor TLB misses, and we handle said misses entirely in software (no hardware-managed system memory backing of the TLB). +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=HDL_guidelines.html b/milkymist-wiki/wiki/index.php?title=HDL_guidelines.html new file mode 100644 index 0000000..e10b64b --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=HDL_guidelines.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + HDL guidelines - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

HDL guidelines

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

[edit] General guidelines

+
  • The code quality standard for inclusion of HDL modules is higher than what you may be used to. +
  • Use Verilog HDL. +
  • Use available FPGA resources sparingly and carefully. System-on-chip means you cannot take the whole FPGA for yourself. +
  • Your design must meet timing. +
  • Your design must work with Xst or another free of charge synthesizer. Most people cannot afford the licenses of Mentor Graphics, Synopsys, etc. +
  • Your simulation must run with GPL Cver, Icarus Verilog or Verilator for the same reason. The free versions of Modelsim are tolerated as they are reasonably easy to obtain from FPGA vendors, but not recommended. +
  • Keep everything synchronous. Reset signal is synchronous as well. If you really need to use multiple clock domains or another form of asynchronous logic, explain why. +
  • Your design must come with a proper functional testbench. +
  • LaTeX documentation is appreciated. +
  • Use the same directory organization as elsewhere in the project. See http://github.com/lekernel/milkymist/tree/master/cores/hpdmc_ddr32/ for an example. +
  • You must use a license compatible with GNU GPL. +
+

[edit] Coding style

+
  • Use "always @(*)" whenever possible. +
  • Use Verilog-2001 port definitions, e.g. "module fnord(input foo, output bar);" instead of "module fnord(foo, bar); input foo; output bar;". +
  • Always specify the bit lengths of the constants. +
  • Use the same indentation schemes as in other places. Indentation character is a tabulation (width 8). See http://github.com/lekernel/milkymist/tree/master/cores/hpdmc_ddr32/rtl for examples. +
  • No full_case or parallel_case directive. If your case statement is full or parallel, just make a full or parallel description. +
  • Give explicit names to your ports, signals, and states. +
  • Comment your code. +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=How_to_design_logic_synthesis_and_place-and-route_tools.html b/milkymist-wiki/wiki/index.php?title=How_to_design_logic_synthesis_and_place-and-route_tools.html new file mode 100644 index 0000000..a5cbdc0 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=How_to_design_logic_synthesis_and_place-and-route_tools.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + How to design logic synthesis and place-and-route tools - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

How to design logic synthesis and place-and-route tools

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

While many researchers and engineers agree that several obstacles stem from the proprietary tools of the FPGA vendors, writing an alternative from scratch has always been perceived to be far too complex of a task. +This perception comes largely from the lack of generic knowledge about the internals of a synthesis and place-and-route tool and the absence of published details regarding particular FPGA architectures and bitstream formats. In order to encourage the development of alternative tools, we will attempt to shed some light on these concepts and give hints about how the Xilinx Spartan-6 architecture and bitstream format work and how they could be fully understood. +

Part of the OHWR workshop held in Grenoble on October 9th, 2011. +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=How_to_handle_an_interrupt.html b/milkymist-wiki/wiki/index.php?title=How_to_handle_an_interrupt.html new file mode 100644 index 0000000..dbec027 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=How_to_handle_an_interrupt.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + How to handle an interrupt - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

How to handle an interrupt

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

WIP some snipets from [slides| http://lekernel.net/presentations/masteri2l/conf/mm_i2l.pdf] +

Interruptions. +

Example : serial port +

+
  • Register at 0xe0000000. +
+
  • Interruption 0 after a character is received +
  • Interruption 1 after a character is received sent +
+
void transmit(char c)
+{
+/* write a character */
+*((volatile unsigned int *)0xe0000000) = c;
+/* after a character is received */
+while(!(lm32_interrupts_pending() & (1 << 0)));
+/* acknowledge interrupt */
+lm32_interrupt_ack(1 << 0);
+}
+
+
char receive()
+{
+/* reception loop */
+while(!(lm32_interrupts_pending() & (1 << 1)));
+/* acknowledge interruption */
+lm32_interrupt_ack(1 << 1);
+/* read character */
+return *((volatile unsigned int *)0xe0000000);
+}
+
+


+You need some asm at startup https://github.com/milkymist/milkymist/blob/master/software/bios/crt0.S#L63 +

Then a interrupt service routine, a software routine that is executed in response to an interrupt https://github.com/milkymist/milkymist/blob/master/software/bios/isr.c#L32 +

And the lib for uart for this example in this case https://github.com/milkymist/milkymist/blob/master/software/libbase/uart.c#L48 +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=How_to_make_a_simple_core_for_CSR_bus.html b/milkymist-wiki/wiki/index.php?title=How_to_make_a_simple_core_for_CSR_bus.html new file mode 100644 index 0000000..c5dc138 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=How_to_make_a_simple_core_for_CSR_bus.html @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + How to make a simple core for CSR bus - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

How to make a simple core for CSR bus

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

There is AVNET Spartan 3 Evaluation board that will be used for learning purposes, for this board there is fork of the Milkymist SoC with basic core functionality: +(This example need to be ported to the Milkymist One Board) +

Bus data is fixed at 32bits, remenber that ! +

+
* LM32 Processor
+* CRS Bus
+* GPIO
+* UART
+* 16kbits On Chip Ram (2 KBytes)
+
+

In the milkymist-avnet directory you'll find two interesting folders: +

+
   cores  <- source code of the system modules, you can find both rtl and doc folder for each one
+   boards/avnet-sp3aevl <- related to the synthesis and core setup for specific board
+
+

Especially the file: +

+
 boards/avnet-sp3aevl/sources.mak
+
+

Points the included sources for the system, so you should consider add the new folders here, appending this: +

+
 COUNTER_SRC=$(wildcard $(CORES_DIR)/counter/rtl/*.v)
+
+

And fix last line as follow (note new directory is included): +

+
 CORES_SRC=$(CONBUS_SRC) $(LM32_SRC) $(CSRBRG_SRC) $(NORFLASH_SRC) $(BRAM_SRC) $(UART_SRC) $(SYSCTL_SRC) $(COUNTER)
+
+

Before continue is good idea create a git branch so you can make sure what you change later using commits or even merging code with master branch, run thisy: +

+
 git checkout -b counter
+
+

Try make sure git know what changed and or new files added using: +

+
git add <filename>
+
+

and when you selected all the files that would be part of the commit, that’s for the end all the tutorial when we got the new feature working :) +

For the first edited file: +

+
git add  boards/avnet-sp3aevl/sources.mak
+
+

Remember do same for others. +

This assume also you created the new directory. +

Now create new folders: +

+
mkdir cores/counter
+mkdir cores/counter/rtl
+mkdir cores/counter/doc
+
+

Then simply do: +

+
git commit -m "commit message"
+
+

Now is time to start coding new core template, before i suggest keep in mind file: +

+
boards/avnet-sp3aevl/rtl/system.v
+
+

Later we will need to add some lines there according to the core features. +

New core file: +

+
 cores/customcore/rtl/counter.v
+
+

This core is intended to be simple as possible, mainly it is re-used code from the sysctl core for the GPIO input and CSR bus. +

The counter have a single external clock input which is need to be synced with then Milkymist clock, to avoid Clock Domain Crossing Issues. +

You can read more information in fpg4fun about how to implement a solution in verilog. +


+The counter code diff is here: +

+
http://milkymist.org/wiki/images/2/23/Counter.diff
+
+


+Check module in/out defintion +

Input is defined: +

+
     input  count_input
+
+

Now adding the counter core to the system editing: +

+
boards/avnet-sp3aevl/rtl/system.v
+
+

This requires a bit more of editing, check code here: +

+
http://milkymist.org/wiki/images/2/23/Counter.diff
+
+


+Take look close to: +

+
* GPIO 
+* CSR Bus
+* WISHBONE to CSR bridge (For OR part check CSR bus topology)
+
+

The big part is from line 522, in wich: +

+
* some parameters are filled with real values
+* core is linked to CSR
+* core input pin is linked to physical pin defined in the UCF file
+
+


+Assign FPGA pins for external input editing file: +

+
 boards/avnet-sp3aevl/synthesis/common.ucf
+
+

With the new content: +

+
NET "count(0)" LOC = E13 | IOSTANDARD = LVCMOS33;
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=How_to_talk_with_milkymist_cores.html b/milkymist-wiki/wiki/index.php?title=How_to_talk_with_milkymist_cores.html new file mode 100644 index 0000000..486f53e --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=How_to_talk_with_milkymist_cores.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + How to talk with milkymist cores - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

How to talk with milkymist cores

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Basically Memory-mapped I/O http://wikimedia.org/wikipedia/en/wiki/MMIO +

Some sniptes +

/* PLEASE notice the use of volatile */ +

volatile unsigned int *my_peripheral; +

/* peripheral memory mapped at 0xc0001004 */ +

my_peripheral = (unsigned int *)0xc0001004; +

/* write word to peripheral */ +

+
  • my_peripheral = 0xbaadf00d; +
+

/* read word from peripheral */ +

printf("Result: %08x\n", *my_peripheral); +


+also +


+

+
  1. define MM_READ(reg) (*((volatile unsigned int *)(reg))) +
  2. define MM_WRITE(reg, val) *((volatile unsigned int *)(reg)) = val +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=IRC_quotes.html b/milkymist-wiki/wiki/index.php?title=IRC_quotes.html new file mode 100644 index 0000000..0ffe9eb --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=IRC_quotes.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + IRC quotes - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

IRC quotes

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+
 <proppy> lekernel: un fpga c'est une sorte de super arduino ?
+
+
 <alban__> le fpga, c'est le porno de la programmation en fait.
+ <alban__> porno : tu vois vraiment tout
+ <alban__> les langages de haut niveau, c'est du soft, tout est suggéré
+ <alban__> que là, non, tu vois les bits qui s'emboitent
+
+
 <MrFreeze^> http://www.hitex.com/index.php?id=1489 < milkymist rentre là dessus ? :))
+ (...)
+ <MrFreeze^> c'est clairement du gadget
+ <MrFreeze^> un fpga de poche
+
+
 <lekernel> well, I call things as they are
+ <lekernel> synthesizers that crash, fail to synthesize code properly, 
+ do not recognize even simple constructs, generate netlists that could be
+ trivially optimized, etc. are called crap
+
+
 <larsc> TMM: most open software projects depend on closed hardware.
+ so it's only fair that a open hardware project depends on closed software ;)
+
+
 <mwalle> compiling gcc is pain in the ass..
+
+

Milkymist IRC channel: #milkymist on FreeNode (irc.freenode.net) LOGs +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=ISE_Tips.html b/milkymist-wiki/wiki/index.php?title=ISE_Tips.html new file mode 100644 index 0000000..76d193e --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=ISE_Tips.html @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + ISE Tips - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

ISE Tips

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

[edit] Getting USB JTAG cables to work

+

Always use libusb with the Xilinx programming tools as outlined in http://www.xilinx.com/support/answers/29310.htm. The supplied kernel drivers (Jungo windrvr) are abominable. +

+

[edit] Fixing GLIBC version conflicts

+

ISE comes with its own outdated version of libstdc++. When you use the settings32.sh script, the environment variables are set so that ISE's libstdc++ is always used ; and recent programs that depend on a modern libstdc++ will refuse to start. +

To work around this, use the command export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH after you have sourced the settings script. Fortunately enough, ISE will not complain even though it now uses your system libstdc++. You will also gain some RAM as the shared library will now be actually shared ; and RAM is precious when you run ISE tools. +

+

[edit] Getting FPGA Editor to run

+

See http://www.research.ibm.com/people/g/gdittma/wisdom/xilinx.html : +

+
+These messages are brought to you by a questionable toolkit called Wind/U that is used to port Windows software to operating systems. Most of these messages can be ignored without lasting effect on the quality of your life. The last line, however, is a real problem. As it turns out, the toolkit ports the deficiencies in standard conformance from the Microsoft world to the target system: It cannot handle the standard display coordinates of 0.0. Therefore, we have to simplify matters for it: +export DISPLAY=:0 +
+

Try also : +

in fonts.txt add : +

*SystemFontSpec:-adobe-helvetica-medium-r-normal--14-*-*-*-p-*-*-* +

*systemFont:-adobe-courier-medium-r-normal--12-*-*-*-p-*-*-* +

and use command : +

xrdb -merge fallback.txt +

See also : +http://www.xilinx.com/support/answers/3578.htm +

On Debian install the following packages : +apt-get install libmotif3 libstdc++5 xfonts-100dpi xfonts-75dpi +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Installing_the_Spartan_3A_evaluation_kit_mini-port.html b/milkymist-wiki/wiki/index.php?title=Installing_the_Spartan_3A_evaluation_kit_mini-port.html new file mode 100644 index 0000000..25b3b4c --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Installing_the_Spartan_3A_evaluation_kit_mini-port.html @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + Installing the Spartan 3A evaluation kit mini-port - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Installing the Spartan 3A evaluation kit mini-port

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

This is a tutorial about how to install Milkymist on the Spartan 3A evaluation kit. +

You can find information about this board here. You can still buy it, it's pretty cheap ($49). +

The avnet-sp3aevl port of Milkymist is now maintained by Yann Sionneau (aka Fallenou on Freenode #milkymist). +

You can contact him if you have any question about this port or how to install it at File:yann-addr.png +

The git repository is available here : http://github.com/fallen/milkymist-avnet +


+

+

Contents

+ +
+

[edit] Checkout the git repository

+
  • Be sure to have the git tool installed in your computer +
+
  • Git can be installed this way under debian (and ubuntu) : +
+
 # apt-get update && apt-get install git-core
+
+
  • clone the git repository of the avnet-sp3aevl port of Milkymist : +
+
 $ git clone git://github.com/fallen/milkymist-avnet.git
+
+


+

+

[edit] Install the LatticeMico32 GCC toolchain

+

You can : +

+ +
  • or install pre-compiled binary from Milkymist repository, which is faster and simpler, but is only available as debian (.deb) packages +
+

To install the pre-compiled binary you can : +

+
  • Add this line to your /etc/apt/sources.list : +
+
 deb http://www.milkymist.org/debian/ ./
+
+
  • Type these commands as super-user to install : +
+
 # apt-get update
+ # apt-get install gcc-lm32
+
+
  • You can also install gtkterm which is a serial console terminal software, useful to interact with Milkymist on the Spartan 3A evaluation kit board : +
+
 # apt-get install gtkterm
+
+


+

+

[edit] Install Xilinx Synthesis Tools (XST)

+ +
  • Click on the "Download ISE WebPACK software for Windows and Linux" link +
+
  • Register yourself and signin +
+
  • Download the "SW, ISE WebPACK 11.1 Single File Download Image" or newer (~ 2,67 GB) +
+
  • Get a license (Xilinx e-mails it to you) +
+
  • Install ISE WebPACK in your computer +
+


+

+

[edit] Install ASTriAEKiPro

+
  • This software is used to send the bitstream (FPGA design file) to the FPGA, and to send the bios into the parallel flash memory chip which is on-board. +
+ +
  • At the moment the latest version is 1.2.1 +
+
  • Download the debian package and install it like this : +
+
 # dpkg -i astriaekipro_1.2.1-2_i386.deb
+
+


+

+

[edit] Get the BPI server bitstream

+ +
  • Click on the "Support Files & Downloads" link at the bottom of the page +
+
  • Register yourself and signin +
+
  • Download the "Avnet Programming Utility 3.41i" +
+
  • At this point you have several choices : +
+
    • Install it on a Microsoft Windows and get the file bpi_server_v036.bit from the Program Files\Avnet\AvProg directory +
    +
+
    • Install it on Linux using WINE and get the file bpi_server_v036.bit from the ~/.wine/drive_c/Program Files/Avnet/AvProg directory +
    +
+
    • Install the unshield tool to extract the desired data from the data1.cab : +
    +
+
 # apt-get install unshield
+ $ unzip AvProg_v341i_setup.zip 
+ $ unshield -g "App Executables" x data1.cab
+
+
  • Now you have the bpi_server_v036.bit file, you can delete the other unneeded files +
+


+

+

[edit] Build Milkymist

+
  • Go to your Milkymist source code top directory +
+
  • Tell your system about the Xilinx Synthesis Tools (XST) : +
+
 $ source path/to/your/Xilinx/ISEWebPACK/Installation/Xilinx/11.1/settings32.sh
+
+
  • Build Milkymist's FPGA design bitstream (system.bit) : +
+
 $ ./build_bitstream.sh
+
+
  • Build Milkymist's bios : +
+
 $ ./build_bios.sh
+
+


+

+

[edit] Load Milkymist's design into FPGA

+
  • Go to the build dir (which contains the system.bit) : +
+
 $ cd boards/avnet-sp3aevl/synthesis/build
+
+
    • You may want to just load the design into the FPGA via Slave Serial (if you power cycle the board, Milkymist will be wiped out from the board) : +
    +
+
 ~/milkymist-avnet/boards/avnet-sp3aevl/synthesis/build$ astriaekipro -s -p /dev/ttyACM0 -b system.bit
+
+
    • Or load the design into the SPI Flash (the design will stay even if you power cycle the board) : +
    +
+
 ~/milkymist-avnet/boards/avnet-sp3aevl/synthesis/build$ astriaekipro -w -p /dev/ttyACM0 -b system.bit
+
+


+

+

[edit] Load Milkymist's bios into parallel flash memory chip

+
  • Load the BSP server into the FPGA via Slave Serial : +
+
 ~$ astriaekipro -s -p /dev/ttyACM0 -b bpi_server_v036.bit
+
+
  • Go to the bios directory : +
+
 ~$ cd ~/milkymist-avnet/software/bios
+
+
  • Erase the parallel flash memory chip on-board : +
+
 ~/milkymist-avnet/software/bios$ astriaekipro -p /dev/ttyACM0 -E
+
+
  • Load the bios into the parallel flash memory chip on-board : +
+
 ~/milkymist-avnet/software/bios$ astriaekipro -b bios.bin -W --bpi-mode=direct -p /dev/ttyACM0
+
+


+

+

[edit] Power cycle the board

+
  • Just power cycle the board and you are good to go ! +
+
  • You can now access Milkymist's bios launching gtkterm, just configure the port to be /dev/ttyACM0 and speed 115200 8,N,1 +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Interactive_visuals_workshop_with_Milkymist_One_and_Arduino.html b/milkymist-wiki/wiki/index.php?title=Interactive_visuals_workshop_with_Milkymist_One_and_Arduino.html new file mode 100644 index 0000000..a0d75c1 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Interactive_visuals_workshop_with_Milkymist_One_and_Arduino.html @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + Interactive visuals workshop with Milkymist One and Arduino - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Interactive visuals workshop with Milkymist One and Arduino

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

[edit] Practical info

+ +

[edit] Workshop announcement

+

PLEASE DISTRIBUTE WIDELY :-) Thanks! +

+
Arduino and Milkymist One
+
Typical Milkymist One installation
+

The Milkymist One is an open hardware live video synthesizer. Connect a camera and a videoprojector, press the power button, and seconds later, everything you film becomes live psychedelic effects of color and light. Point the camera at a dancer on stage, at people attending your party, at toys, use UV-glow paint... there are no limits to creativity! If no camera setup is available, the Milkymist One can produce purely generative effects which react to the ambient sound, making it an ideal option for music bands, clubs and party organizers who want a turnkey solution for simple visual effects. VJ's will appreciate the possibility to design new visual effects using the Flickernoise Patching (FNP) language, which allows you to create unique and personal shows without requiring extensive experience with computer programming. And if you do program computers, you will certainly like the fact that the complete Milkymist One design is open source. +

Arduino is an open source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. It became very popular and people have developed an immense variety of sensory interfaces for the Arduino in the form of "shields", along with software making them easy to use. +

Join us in Berlin to enjoy the best of these two worlds. Bring your Arduino (and its shields), laptop (for programming the Arduino) and Milkymist One video synthesizer, and we will teach you how you can make the Milkymist One and the Arduino talk together to create interactive video installations. If you do not have those items, there will be a limited quantity available for lending at the workshop. +

Some ideas of sensor shields to bring? Accelerometers, capacitive input sensors, potentiometers, joysticks, pressure sensors, Arduinome, and more! We could also help you assemble your own shield out of junk electronics (bring some!) at the workshop, if you want. +

This workshop is kindly hosted by Planet Modulor, as part of the People in Beta festival lasting the whole day. You are invited to take a look around. +

WORKSHOP ORGANIZERS
+Sébastien Bourdeauducq is an inventor passionate about science, electronics and open source. After working for several small companies - which included developing the Wi-Fi driver infrastructure for the Nabaztag/tag - he founded Milkymist in the summer of 2007. The project combined his interest for the world of music with the desire to learn about and open up system-on-chip design, and it has now grown into a full-fledged open source project and commercial venture. Since 2011, he is also providing electronics engineering services for the CERN's open hardware repository. Sébastien holds an engineering degree from Supélec and a MSc in SoC design from KTH. His hobbies include traveling, urbex and hackerspaces. +

Fabienne "fbz" Serriere is a hardware person who likes spreading open hardware through hands-on workshops. She has worked on realtime low latency controllers for artists and musicians, massively multichannel audio, hardware reverse engineering, and open source hardware. In the past she has worked on writing hardware how-to's for popular online publications. She organizes a yearly hands-on event for hardware called hardhack (http://hardhack.org). She documents her work on her personal blog (http://fabienne.us). +

PRACTICAL INFO
+Date: October 1st, 2011
+Time: 14:00
+Price: free, just drop in
+Duration: 4 hours (but feel free to come and go)
+Location: Planet Modulor (close to betahaus)
+Prinzenstr. 85 +10969 Berlin
+U-Bahn: Moritzplatz +

FOR MORE INFORMATION
+See http://www.milkymist.org, http://www.arduino.cc and http://www.betahaus.de +

Please repost & share! +

+

[edit] Hardware

+ + + + + + + + + + + + + + + + + + + + + + +
Quantity +What +Who +
3 +Milkymist One +Sébastien: 3 +
2 +CVBS cameras +Sébastien: 2 +
3 +VGA screens +Sébastien: 2 +
3 +USB keyboards +Sébastien: 2 +
3 +USB mice +Sébastien: 1 +
3 +Arduino +Fabienne: 3 +
3 +MIDI TX adapters for Arduino + +
? +Shields +? +
+Power strips +Sébastien +
11 +Soldering iron +Sébastien: 1 Fabienne: 10 +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=JTAG.html b/milkymist-wiki/wiki/index.php?title=JTAG.html new file mode 100644 index 0000000..d05cb65 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=JTAG.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + JTAG - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

JTAG

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

[edit] Hardware

+
  • Design like Turtelizer with both JTAG and UART in one cable +
  • 2.5V JTAG, 3.3V UART +
  • Proper connectors and pinouts - check the Milkymist One schematics +
  • Chip: FT2232H - we want a fast JTAG +
+

[edit] Software

+ + + + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=JTAG_windows_driver.html b/milkymist-wiki/wiki/index.php?title=JTAG_windows_driver.html new file mode 100644 index 0000000..7466574 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=JTAG_windows_driver.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + JTAG windows driver - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

JTAG windows driver

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

How-to modify the FTDI driver for Windows to easily support Milkymist. +

Considering the new PID and VID for the JTAG cable are : +

+
  • VID : 20B7 +
  • PID : 0713 +
+

1. Download the VCP driver for Windows from FTDI [1] +

2. Extract-it +

3. Open to edit the file ftdibus.inf +

3.1.a. Search for a line like this +

+
 %USB\VID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_03
+
+

3.1.b. Under this line, add this two lines +

+
 %USB\VID_20B7&PID_0713&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_20B7&PID_0713&MI_00
+ %USB\VID_20B7&PID_0713&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_20B7&PID_0713&MI_01
+
+

3.2.a. Search for a line like this +

+
 %USB\VID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_03
+
+

3.2.b. Under this line, add this two lines +

+
 %USB\VID_20B7&PID_0713&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_20B7&PID_0713&MI_00
+ %USB\VID_20B7&PID_0713&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_20B7&PID_0713&MI_01
+
+

3.3.a. Search for a line like this +

+
 USB\VID_0403&PID_6011&MI_03.DeviceDesc="USB Serial Converter D"
+
+

3.3.b. Under this line, add this two lines +

+
 USB\VID_20B7&PID_0713&MI_00.DeviceDesc="Milkymist USB JTAG"
+ USB\VID_20B7&PID_0713&MI_01.DeviceDesc="Milkymist USB Serial"
+
+

4. Open to edit the file ftdiport.inf +

4.1.a. Search for a line like this +

+
 %VID_0403&PID_6011.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6011
+
+

4.1.b. Under this line, add this two lines +

+
 %VID_20B7&PID_0713.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_20B7&PID_0713
+
+

4.2.a. Search for a line like this +

+
 %VID_0403&PID_6011.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6011
+
+

4.2.b. Under this line, add this two lines +

+
 %VID_20B7&PID_0713.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_20B7&PID_0713
+
+

4.3.a. Search for a line like this +

+
 VID_0403&PID_6011.DeviceDesc="USB Serial Port"
+
+

4.3.b. Under this line, add this two lines +

+
 VID_20B7&PID_0713.DeviceDesc="Milkymist USB JTAG/Serial"
+
+


+Now, you can install the driver. +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=LM32_documentation_errata.html b/milkymist-wiki/wiki/index.php?title=LM32_documentation_errata.html new file mode 100644 index 0000000..a8b0732 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=LM32_documentation_errata.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + LM32 documentation errata - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

LM32 documentation errata

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] Fields of the CFG CSR

+ + + + + + + + +
Document + LatticeMico32 Processor Reference Manual v8.0 +
Page(s) + 12-13 +
Description + Bit 3 should be the X field, and bit 4 should be the U field. The U field means that the CPU has user instructions (the documentation says it's "reserved"). "G" bit '1 = data cache is implemented'. This is incorrect -- the G big actually indicates whether debug is implemented. +
+

[edit] EID register

+ + + + + + + + +
Document + LatticeMico32 Processor Reference Manual v8.0 +
Page(s) + 9, table 4 +
Description + EID is described as the LM32 Revision Number. Later text describes this as the "Exception ID", which seems to fit better -- the LM32 Revision is accessible as part of the CFG CSR. +
+

[edit] Verilog configuration options

+ + + + + + + + +
Document + LatticeMico32 Processor Reference Manual v8.0 +
Page(s) + 35, table 16 +
Description + Configuration options have had the CFG_ prefix dropped with no note of this. Either prefix the config options with CFG_, or make a note to this effect in the text. Furthermore, DIVIDE_ENABLED is actually called MC_DIVIDE_ENABLED. +
+

[edit] Cache associativity

+ + + + + + + + +
Document + LatticeMico32 Processor Reference Manual v8.0 +
Page(s) + 37, table 16 +
Description + ICACHE_Associativity and DCACHE_Associativity do not explain clearly what is meant by "associativity" -- in this case, 1=Direct Mapped, 2=two-way set-associative. +
+

[edit] RAISE/SCALL instruction

+ + + + + + + + +
Document + LatticeMico32 Processor Reference Manual v8.0 +
Page(s) + 50/77 +
Description + RAISE instruction (p.50, opcode 101011) is listed in the Instruction Descriptions as "SCALL" (p. 77). There is no indication which of these names is correct. +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Linux.html b/milkymist-wiki/wiki/index.php?title=Linux.html new file mode 100644 index 0000000..1ca3698 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Linux.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + + + Linux - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Linux

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Right now Milkymist ships with the RTEMS operating system. Linux actually does boot on the device, but the special capabilities of the Milkymist are not ported to work. We hope that this can be made to happen. +

+ + +
+

Our Linux development is focused here: https://github.com/milkymist/linux-milkymist +

+
+

Contents

+ +
+

[edit] The Importance of Linux

+

From Werner: +

+
+200% agreed on the importance of having Linux - already for escaping
+USB driver hell. (Well, the major hell. You'll still get the minor
+hell of fishing exciting new bugs out of the host controller.)
+
+But I think you're putting the cart before the horse when it comes to
+the distribution. The choice of distribution should be driven by the
+availability of able hands who will do all that messy maintenance work.
+That may be OpenWrt, but maybe it's OE, Debian, or such.
+
+I wouldn't worry so much about which distribution you end up with, as
+long as someone else is taking care of maintaining it ;-)
+
+

[edit] Latest

+
+Here is what I know about Linux on Milkymist One:
+
+For over a year, Takeshi Matsuya in Japan worked on it, but I
+haven't seen commits from him after March 2011.
+Sources are here
+https://github.com/tmatsuya/linux-2.6/commits/master
+Lars started doing some work in December/January, and lately
+has been continuing, I think. You can see Lars committing stuff
+just yesterday... There may also have been others helping, Michael
+Walle maybe? I am not sure.
+
+Many people told me they think Linux only make sense and will take
+off with an MMU, which first has to be added to the Milkymist SoC.
+Latest status was that there was some planning, but afaik nobody
+started implementing yet
+http://lists.milkymist.org/pipermail/devel-milkymist.org/2011-April/001418.html
+http://lists.milkymist.org/pipermail/devel-milkymist.org/2011-April/001472.html
+
+I am pretty sure that Linux will boot on M1 today, it did already
+many months ago and Lars and others have been doing more work since
+then. However, I am not sure about the status of peripheral support
+(drivers) on M1. It could be that quite a few are missing -
+video-in, mimi, dmx, ?
+
+That's all I know, hope it helps.
+Wolfgang
+
+

[edit] OpenWrt

+

From Lars Peter Clausen: +

+
+
+Well it works more or less, I can boot a kernel and run my OpenWrt userland.
+Though peripheral support is limited to the basics. So VGA, Keyboard and
+network will work but none of the fancy stuff that makes the milkymist unique,
+like dmx or rendering.
+
+

you can find openwrt images, SDK, etc. here with folder name openwrt-milkymist.minimal-yyyymmdd-HHMM. source code is here +

+

[edit] boot OpenWrt

+
  1. wget http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-openwrt.minimal-20120127-1251/openwrt-lm32-root.ext4 -O initrd.bin +
  2. wget http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-openwrt.minimal-20120127-1251/simpleImage.milkymist_one -O boot.bin +
  3. copy them to your tftp folder like /var/lib/tftpboot, change your IP to 192.168.0.14 +
  4. press 'ESC' while m1 booting. type 'netboot' +
  5. boot log +
+
+I: MAC address: 10:e2:d5:00:00:00
+I: Press Q or ESC to abort boot
+I: Booting from network...
+I: MAC      : 10:e2:d5:00:00:00
+I: Local IP : 192.168.0.42
+I: Remote IP: 192.168.0.14
+I: Successfully downloaded 2257896 bytes from boot.bin over TFTP
+I: Unable to download cmdline.txt over TFTP
+I: No command line parameters found
+I: Successfully downloaded 4217856 bytes from initrd.bin over TFTP
+I: Booting...
+P�b
+B�K
+P
+D�I�M�N�C
+c
+inux version 3.0.0+ (xiangfu@fidelio) (gcc version 4.5.4 20110526 (prerelease) (Linaro GCC 4.5-2011.06-0) ) #1 Thu Aug 4 17:54:19 CEST 2011
+bootconsole [early0] enabled
+... ...
+NET: Registered protocol family 15
+RAMDISK: ext2 filesystem found at block 0
+RAMDISK: Loading 4096KiB [1 disk] into ram disk... done.
+VFS: Mounted root (ext2 filesystem) readonly on device 1:0.
+devtmpfs: mounted
+Freeing unused kernel mem: 104k freed
+init started: BusyBox v1.18.5 (2011-08-04 17:45:52 CEST)
+
+BusyBox v1.18.5 (2011-08-04 17:45:52 CEST) hush - the humble shell
+Enter 'help' for a list of built-in commands.
+
+/ # help
+Built-in commands:
+------------------
+.         Run commands in a file
+bg        Resume a job in the background
+break     Exit from a loop
+cd        Change directory
+continue  Start new loop iteration
+... ...
+
+

[edit] TODO

+

Please help us by listing what needs to be done and what you want to help with. +

+
  • MMU +
  • Minimac2 driver (current uclinux support old version) +
  • AC97 driver +
  • USB device/host driver (also need work around softusb core) +
  • Memorycard driver +
  • VGA frame-buffer driver +
+ + +
This section is incomplete. You can help by expanding it. +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=M1_PCB_errata_and_changes.html b/milkymist-wiki/wiki/index.php?title=M1_PCB_errata_and_changes.html new file mode 100644 index 0000000..c3dc90d --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=M1_PCB_errata_and_changes.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + M1 PCB errata and changes - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

M1 PCB errata and changes

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] RC1 errata and areas of improvements

+

[edit] Major errors

+

These errors prevent parts of the unmodified board from working. +

+
  • Connect P[15:8] instead of P[7:0] on the video decoder chip U21 +
  • The MIDI optoisolator is not suitable. Replace it with a 6N138S/6N138_X007 and lower R54 to 120 ohms. Connect pin 8 to 3.3V and leave pin 7 unconnected. +
  • For USB to work reliably, 15K pull down resistors must be installed on the D+ and D- lines of each USB port (between the 24 ohm resistors and the ports). Add the possibility to make them pull-up resistors to 3.3V (i.e. add placeholders for pull-ups) so the USB ports could work in device mode with a small PCB modification. +
+

[edit] Manufacturing issues

+
  • The installed IR detectors do not work. +
  • R39 and R30 are swapped (no symptom). +
  • R147, R148 and R150 are missing (unreliable DDC). +
+

[edit] Minor errors and improvements

+

These errors do not alter the functionality of the board. +

+
  • Add 1K pull-down resistor on ETH_RESET_N (specification says reset should be low during power-up) +
  • Add 1K pull-down resistor on VIDEOIN_RESET_N (the application schematics includes external POR circuitry) +
  • Add notch to mark pin 1 of J3 on silkscreen +
  • Use red, green and blue connectors for J18 +
  • We might want a larger soldered area under the pads of U10 +
  • Indicate "+/- 5%" and pinout (positive in the middle) near J11 on silkscreen +
  • Add a 5V supply pin on the GPIO expansion header +
  • Add a test point at the output of the MIDI optoisolator +
  • Add test points on the USB signals (3.3V FPGA side: VP, VM, RCV, OE) +
  • To reduce audio output noise, power the LM4550 analog supply through an additional TPS76301 set to 4.3V. +
  • In order to be able to detect board revisions, route 4 FPGA I/O pins to placeholders for 0402 pull-up resistors. The combination of placed and non-placed resistors encodes the board revision. The RC2 board should be encoded as 0001 (ie place only 1 resistor) to distinguish it from RC1 which does not have any resistor. Use 1K resistors for pull-ups. +
  • Improve power supply immunity: +
    • Use at least one via for each power or ground pin of the FPGA (i.e. no via sharing) +
    • Add more and bigger decoupling capacitors and more power vias around the SDRAM +
    • Use several vias to connect decoupling capacitors whenever possible, especially the big ones (>= 10uF) +
    +
  • Add a 0402 capacitor placeholder between PROGRAM_B and ground to be able to delay FPGA configuration if needed +
  • Indicate "Not 5V tolerant" near J21 (GPIO expansion header) +
+

[edit] RC2 errata and areas of improvements

+
  • Power supply overvoltage and reversed polarity protection +
  • Video input overvoltage protection +
  • Reduce video input antialias filter capacitors to 120pF +
  • Switch to WM9707 codec for improved audio quality +
  • Fix intermittent "no FPGA configuration at power-up" problem +
  • Use SMD crystal for video input +
  • Bigger Milkymist logo +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=M1_RC1_signal_integrity_measurements.html b/milkymist-wiki/wiki/index.php?title=M1_RC1_signal_integrity_measurements.html new file mode 100644 index 0000000..0a89cc1 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=M1_RC1_signal_integrity_measurements.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + M1 RC1 signal integrity measurements - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

M1 RC1 signal integrity measurements

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] Setup

+

Measurements were carried out using an Agilent 20Gs/s oscilloscope with a 6 GHz bandwidth and a 7 GHz Agilent differential probe. +

Two boards were used: +

+
  • Board A is the original RC1, with no modification (original decoupling capacitors and 33 ohm DDR series resistors) +
  • Board B has the DDR series resistors replaced with 49 ohm resistors and additional 100uF capacitors were installed on C165 and C161 and 100nF capacitors on C162, C166, C159 and C160. The original capacitors were still present and the installed capacitors were soldered in parallel (on top of them). +
+

[edit] Power supply

+

Measurements show that the decoupling capacitors of the DDR are a bit weak. The spike depicted below happens when the DRAM is refreshed; transfers cause similar (but less marked) transients. +

Board B with the additional capacitors has less noise in the power supply. +

+

[edit] Measurements at the C165 pins

+

[edit] Board A

+

A transient of roughly 100mV peak to peak is present. +

File:C165 10nF.jpg +

+

[edit] Board B

+

The additional 100uF capacitor effectively removes the voltage transient at its pins. +

File:C165 100uF b.jpg +

+

[edit] Measurements at pins 1 and 6 of U14

+

Again, noise and transients are present, but not as marked as on C165. From the measurements taken, the extra capacitors' effect is unclear. +

+

[edit] Board A

+

File:DDR U14 1-6 10nF.jpg +

+

[edit] Board B

+

File:DDR U14 1-6 100uF b.jpg +

+

[edit] DDR clock

+

Measured on the board A only, the DDR differential clock is clean and meets the amplitude requirement of the DDRAM datasheet (see p. 21). Individual signal measurement was not performed. +

File:Clk DDR.jpg +

+

[edit] Address line

+

Measurement was taken on the A5 line of U15 with the FPGA transmitting a continuous 12.5MHz square wave using the SSTLII class I I/O standard. Using the 49 ohm resistor results in less overshoot, but also slower rise and fall times. +

+

[edit] Board A

+

File:Pulse A5 U15 33ohms 10nF.jpg +

+

[edit] Board B

+

File:Pulse A5 U15 49ohms 100uF.jpg +

+

[edit] Data line

+

The DQ14 pin at the U15 DRAM was measured on board A with the demo firmware running on SoC v0.8. The DRAM and the FPGA are alternatively driving the pin. The scope probe was inverted so the zero point is actually at the top. Slow transistions of the signal to 0 correspond to the DQ line being tri-stated and discharging. Measurements do not expose particular signal integrity problems on DQ. +

File:DQ14 U15 33ohms 10nF a.jpg +

File:DQ14 U15 33ohms 10nF b.jpg +

File:DQ14 U15 33ohms 10nF c.jpg +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=M1_launch_PR.html b/milkymist-wiki/wiki/index.php?title=M1_launch_PR.html new file mode 100644 index 0000000..2a128be --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=M1_launch_PR.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + M1 launch PR - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

M1 launch PR

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contact: Sébastien Bourdeauducq
+Tel: +49 (0) 3060953932
+Cell phone: +49 (0) 17639295103
+Email: sebastien@milkymist.org
+

DRAFT - DO NOT PUBLISH +

FROM MUSIC TO VJING IN 3 MINUTES
+New Open Source Device Makes it Easier to Set Up a Quality Live Visual Show
+

MINSK - September 22, 2011 - At a growing number of concerts and other happenings, video performance artists known as "VJs" enhance the attendees' experience using pre-recorded video loops played on their laptop, mixed live and projected to a large screen. According to its inventor Sébastien Bourdeauducq, the Milkymist One video synthesizer that Sharism at Work Ltd. just started shipping brings more interactivity by integrating low-latency live camera input and accepting controls from a wide range of external sensors. The Milkymist One should also popularize the emerging activity of VJs by making it easier for newcomers to set up a video installation. What more, the device is entirely based on open source software and hardware, including its microprocessor design. +

Smaller than a netbook, the Milkymist One processes live footage of a dancer or performer and synthesizes the video stream through hardware-accelerated programmable effects, with an imperceptible response time that would be difficult to achieve with a laptop. The device is sound-reactive and also supports external controls through MIDI, DMX, OpenSoundControl, USB and infrared interfaces. The Milkymist One contains a built-in effect editor to let users create their own visual experiences without the need for a laptop, using a simple programming language inspired by the MilkDrop music visualization software, for which tens of thousands of effects have been contributed. Thanks to its integrated Ethernet port, the Milkymist One can connect to the Internet to download firmware upgrades and more effects, listing just a few of its functions. +

[QUOTE] +

Newcomers to video processing technology should also find the Milkymist One interesting. The synthesizer provides a turnkey solution for bands, clubs and party organizers to enhance their events with an entertaining visual show, without the complexities associated with laptop-based solutions. By default, the Milkymist One starts producing sound-reactive video effects as soon as it is powered on. If no camera is available, the Milkymist One can produce purely generative abstract effects. Getting the latest firmware and effects from the Internet is often as simple as the press of a single button. +

The complete Milkymist One software and hardware design is published under open source licenses, following the model popularized by Linux. The openness extends to the design of the microprocessor and graphics accelerators that power the device. The Milkymist One developers chose this to bring about more efficient design processes, user empowerment, and better quality hardware. +

Early adopters can purchase a Milkymist One from the online store Sharism.cc at the price of $499, effective immediately. +

About Sharism at Work Ltd.
+XXX +

+
# # #
+
+

High resolution pictures of the Milkymist One are available at http://www.milkymist.org/mmone.html. If you would like more information about this topic, please call Sébastien Bourdeauducq at +49 (0) 17639295103 or e-mail him at sebastien@milkymist.org. +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=MM1_Serial_JTAG_interface_board.html b/milkymist-wiki/wiki/index.php?title=MM1_Serial_JTAG_interface_board.html new file mode 100644 index 0000000..c1c6597 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=MM1_Serial_JTAG_interface_board.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + MM1 Serial JTAG interface board - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

MM1 Serial JTAG interface board

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] Hardware

+

File:install2-300x200.jpg +

+
 Features:
+ * Chip: FT2232H
+ * USB 2.0  480 Mbs interface  VID:PID == 20b7:0713
+ * 3.3V UART with speeds up to 12 Mbs
+ * 2.0-3.3 V JTAG
+
+

Note: On MM1 RC2 you might need to clip the serial header pins in order to align JTAG and serial connector with the interface card. +


+

+

[edit] Software

+

[edit] Enabling UART kernel support

+

Recent Linux kernels contain kernel support, enable CONFIG_USB_SERIAL_FTDI_SIO in your kernel config file: +

+
 make menuconfig
+ 
+ Select:
+  Device drivers/
+    USB Support/
+      USB Serial Converter Support/
+        USB FTDI Single Port Serial Driver
+
+

This will build the ftdi_sio module. Then after loading the module you should see something like below in the dmesg. +

+
 [ xxxx.xxxxxx] usb 3-1: FTDI USB Serial Device converter now attached to ttyUSB0
+
+

Now connect your terminal emulator of choice and have fun. +

+

[edit] Using the JTAG interface

+

The JTAG enables you to: +

1. Reprogram the FPGA or flash chip of the MM1, see Flashing the Milkymist One +

2. Do some JTAG assisted debugging, TODO +

+

[edit] Compiling JTAG tools

+

Get the source: +

+
 # git clone git://urjtag.git.sourceforge.net/gitroot/urjtag/urjtag
+
+

Alternatively you can download a snapshot from [gitweb] which saves some space and bandwidth +

Create the configure files +

Before you attempt to compile URJTAG make sure you have the following: +

1. libftdi-1.0 Build the libftdi-1.0 and new ftdi eeprom +

you can skip building the eeprom tool if your device is already preconfigured. +

2. gettext +

A recent version of gettext is needed if autogen complains about the missing cvs +

+
 ./autogen.sh
+
+

Once you see ft2232 listed as a cable driver, you are ready for the next step. +

Make & install +

+
 make
+ make install
+
+

Test +

+
 jtag
+ > cable milkymist
+ > detect
+
+

Your FPGA type should be detected. +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Milkymist_Linux_cheat_sheet.html b/milkymist-wiki/wiki/index.php?title=Milkymist_Linux_cheat_sheet.html new file mode 100644 index 0000000..057aade --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Milkymist_Linux_cheat_sheet.html @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + Milkymist Linux cheat sheet - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Milkymist Linux cheat sheet

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] Kernel compilation

+
 make mrproper
+ ARCH=lm32 make defconfig
+ ARCH=lm32 make menuconfig
+ ARCH=lm32 CROSS_COMPILE=lm32-elf- make simpleImage.milkymist_one
+
+

To boot with flterm (slow): flterm --port /dev/ttyUSB0 --kernel arch/lm32/boot/simpleImage.milkymist_one +

Warning! "vmlinux" images do not contain the DTS and will not boot. +

+

[edit] Building userspace binaries

+

The following commands should be used. Using the current lm32-linux toolchain, it's VERY easy to produce broken binaries that crash the board when run. +

+
 lm32-linux-gcc -Wl,-q -mmultiply-enabled -mdivide-enabled -mbarrel-shift-enabled -msign-extend-enabled [...]
+ lm32-linux-strip --strip-unneeded --strip-debug --remove-section=.note --remove-section=.comment [...]
+
+

These commands are kludgy and are necessary to be compatible with Theobroma's f*ed up FDPIC loader, that we need to fix. +

+

[edit] Building SDL

+
 ./configure --without-x --enable-video-fbcon --disable-shared --enable-static \
+ --prefix=/home/lekernel/sdl-lm32 --disable-esd --disable-alsa \
+ --disable-video-directfb --disable-sdl-dlopen --disable-arts --host=lm32-linux \
+ --build=i686-pc-linux-gnu
+ make
+ make install
+
+

[edit] Building DoPE (Genode FX) SDL-based demo

+

Edit lib/sdl/scrdrv.c and hardcode your screen resolution: +

+
 static long set_screen(long width, long height, long depth)
+ {
+   scr_width  = 640;
+   scr_height = 480;
+   scr_depth  = 16;
+   (...)
+   screen = SDL_SetVideoMode(scr_width, scr_height, scr_depth, SDL_SWSURFACE);
+
+
 CROSS_PREFIX=lm32-linux- CFLAGS=-I/home/lekernel/sdl-lm32/include\ \
+ -mmultiply-enabled\ -mdivide-enabled\ -mbarrel-shift-enabled\ \
+ -msign-extend-enabled LDFLAGS=-L/home/lekernel/sdl-lm32/lib make sdl
+ 
+ # linking fails, do it manually:
+ cd test/sdl
+ lm32-linux-gcc -L/home/lekernel/sdl-lm32/lib -L../../lib/sdl \
+ -Wl,--start-group  platform.o test.o disp_img.o settings.o grid.o \
+ dopecmd.o colors.o slides.o slideshow.o led.o -ldope -Wl,--end-group -Wl,-q \
+ -lSDL -lpthread -o dopetest
+ lm32-linux-strip --strip-unneeded --strip-debug --remove-section=.note --remove-section=.comment dopetest
+
+

[edit] Forcing gigabit Ethernet cards in 100M mode

+

If you are using a gigabit PHY (ML401) and you are connected in 1000M mode, Minimac does not support it. +If the other side is running Linux, this will put its Ethernet interface in 100M mode: +

+
 ethtool -s eth0 advertise 0x008
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Milkymist_devices_roadmap.html b/milkymist-wiki/wiki/index.php?title=Milkymist_devices_roadmap.html new file mode 100644 index 0000000..1c6a37a --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Milkymist_devices_roadmap.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + Milkymist devices roadmap - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Milkymist devices roadmap

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] Milkymist One Early Developer Kit (EDK)

+
  • Containing: +
    • M1 bare board +
    • JTAG/serial adapter +
    • Power adapter +
    • USB cable +
    • Leaflet +
    +
  • Acrylic case as a kit, sold separately +
  • Release date: December 2010 +
  • Primary audience: hackers, makers, electronics enthusiasts. Sell through electronics shops. +
+

[edit] Milkymist One

+
  • Retail box +
  • Milkymist One video synthesizer (case fully assembled) +
  • Accessories: +
    • a CVBS mini-camera +
    • a silicone USB keyboard +
    • an RCA video cable +
    • a minijack-minijack and a minijack-RCA audio cables +
    • an Ethernet cable +
    • a 5V power supply for the Milkymist One +
    • a 12V power supply for the camera +
    • US, EU, UK and AU power adapters +
    • remote control +
    +
  • Leaflet +
  • FCC/CE certification +
  • First devices: +
    • JTAG/serial adapter +
    • USB cable (pointing up) +
    +
  • Release date: September 2011 +
  • Primary audience: more general public, VJs, artists, musicians. Sell through music shops. +
  • M1 launch PR +
+

[edit] Milkymist Live

+
  • Integrated controls +
  • Integrated LCD screen (dual-head) +
  • Touchpad +
  • One VGA output +
  • Two video inputs +
  • One USB port for keyboard +
  • One MIDI input +
  • Metal case +
  • Release date: TBD +
+

[edit] Auxiliary products

+

[edit] Flickernoise handbook

+
  • At some point (i.e. when it is mature enough), we may want to print and sell the Flickernoise handbook. +
+

[edit] Dual-head add-on

+
  • Adds a second VGA output to the M1 +
  • To use GUI live +
  • Low color depth, R-2R DAC +
+

[edit] Protected GPIO add-on

+
  • For connecting sensors, motors, DIY electronics, etc. a la Arduino +
  • Plugs on the expansion connector +
  • Brings a GPIO header outside the case +
  • With level translators +
  • 5V tolerant (or more) +
  • Optical isolation for maximum protection +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Part_list.html b/milkymist-wiki/wiki/index.php?title=Part_list.html new file mode 100644 index 0000000..c6c101c --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Part_list.html @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + Part list - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Part list

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] Power supply

+
  • 5V to USB and AC'97 analog +
  • 3.3V to FPGA I/O and peripherals +
  • 2.5V to FPGA auxiliary supply and DDR SDRAM +
  • 1.8V to Video ADC +
  • 1.2V to FPGA core +
+

Requirements: +

+
  • 5V: 1050mA +
  • 3.3V: 800mA +
  • 2.5V: 1700mA +
  • 1.8V: 90mA +
  • 1.2V: 650mA +
+
  • 5V from regulated wall plug power supply +
  • 3.3V. Part number: LP38690DT-3.3 (National) +
  • 2.5V. Part number: PTH04000W (TI) +
  • 1.8V. Part number: TPS76301 (TI) +
  • 1.2V. Part number: LP38511TJ-ADJ (National) +
+

[edit] FPGA

+

Part number: XC6SLX45-FGG484-2 (Spartan-6) +

+
  • Required I/O: ~200 +
  • Available I/O: 316 +
+

Rough and pessimistic estimate of power consumption: +

+
  • VCCINT 650mA +
  • VCCAUX 2.5/3.3 100mA +
  • VCCIO 3.3 100mA +
  • VCCIO 2.5 600mA (SDRAM) +
+

[edit] NOR flash

+

We use flash in 8-bit mode as throughput is not important and this simplifies the PCB design. +Intel parts are directly supported for programming by Xilinx iMPACT. +

Part number: JS28F256J3F105 (Numonyx) - Might change later to a smaller density. +

Power: 3.3V 30mA +

+

[edit] SDRAM

+

32-bit DDR SDRAM (two 16-bit chips), 64MB +

Micron chips have good documentation and I've spent enough time troubleshooting SDRAM, so we use them. +

Part number: MT46V16M16P-6T IT:K +

On prototype: MT46V32M16P-5B:F TR +

Power: 2.5V 2x195mA (Idd) + 600mA (I/O ?) = 1A +

+

[edit] Serial debug console

+

We just use a 4-pin header on the PCB, with VCC, TX, RX and GND. +

I/O budget: 2 +

+

[edit] Memory card

+

Micro-SD connector, directly connected to the FPGA. +

Part number: Molex 500901-0801 (Farnell 1344008) +

Power: 100mA 3.3V +

See http://www.interfacebus.com/MicroSD_Card_Pinout.html +

+

[edit] Ethernet

+

We use RMII to reduce the pin count. A PHY is directly connected to the FPGA. +

Part number: KSZ8001L (Farnell 1100673) +

Power: 3.3V 100mA +

+

[edit] Audio

+

AC'97 codec chip +

Part number: LM4550 (National) +

Power: 5V 50mA 3.3V 50mA +

+

[edit] VGA

+

Must support the 75MHz pixel clock of the 1024x768@70Hz mode (http://web.mit.edu/6.111/www/s2004/NEWKIT/vga.shtml) +

24 bpp (8 bits per channel) +

Part number: ADV7125KSTZ140 (Analog Devices, 140MHz, LQFP48) +

Power: 3.3V 75mA +

+

[edit] USB

+

2 Full-Speed host ports. +

Controller chips suck (sourcing problems, poor documentation, NDAs, obsolescence, expensive, gas factories, etc.) so we use the transceiver only. +

Part number: MIC2550A (x2) (Digikey) +

Power: 3.3V - negligible ; 5V - 1A +

+

[edit] Video input

+

Part number: ADV7181BBSTZ (Analog Devices, LQFP48) +

Power supply: +

+
  • 1.8V (Digital Core + PLL): 90mA +
  • 3.3V (Digital I/O + Analog): 182mA +
+

[edit] DMX512

+

Two DMX512 plugs allow daisy chaining of the device with possible injection of additional DMX commands to control stage lights through the preset. +

Needs a RS485 transceiver connected to the FPGA. +

3.3V transceiver +

Part number: SN75HVD12D (x2) (Farnell 1100957) +

Power: 3.3V 120mA +

+

[edit] MIDI

+

One MIDI receiving interface enables control of the visuals with MIDI keyboards and other gadgets. +

See http://pinouts.ru/DevicesCables/pc2midicable_pinout.shtml +

+

[edit] IR

+

IR sensor module with integrated 38kHz demodulator. Make it possible to use regular TV remote controls in place of the USB keyboard. +

Part number: TSOP4838 (Vishay) +

+

[edit] Buttons/LEDs

+
  • 3 pushbuttons Part number: FSMRA2JH/1825027-5 (Tyco Electronics) +
  • 2 LEDs +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Pending_RTEMS_PRs.html b/milkymist-wiki/wiki/index.php?title=Pending_RTEMS_PRs.html new file mode 100644 index 0000000..b9858b6 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Pending_RTEMS_PRs.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + Pending RTEMS PRs - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Pending RTEMS PRs

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=RTEMS_build_instructions.html b/milkymist-wiki/wiki/index.php?title=RTEMS_build_instructions.html new file mode 100644 index 0000000..d23d98f --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=RTEMS_build_instructions.html @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + RTEMS build instructions - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

RTEMS build instructions

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

This is a tutorial on how to build RTEMS on the Milkymist One board. +

Questions about the Milkymist BSP for RTEMS ? +

GO ask them on irc.freenode.net on #milkymist +

I (Yann Sionneau aka Fallenou on IRC) or lekernel or mwalle will try to answer :) +

+

Contents

+ +
+

[edit] Build an RTEMS toolchain

+

xiangfu wrote some Makefiles to compile the lm32 toolchain and flickernoise. Please read the README.html for detailed directions and host specific requirements. Build steps are below: +

+
  • Download the script files: +
+
   $ git clone git://github.com/milkymist/scripts.git
+
+
  • Read and follow the directions in the README.html file: +
+
   $ cd scripts  
+   $ vi README
+
+

[edit] Historical Information

+

The following information is out of date but may be useful if you run into problems. + +

+
  • Alternatively, you can follow the following tutorial on RTEMS's wiki : +
+
 http://www.rtems.org/wiki/index.php/Building_the_RTEMS_toolset_on_Ubuntu
+
+
or this local tutorial for Debian
+
+
Building the RTEMS toolset on Debian
+
+
  • If you are under ubuntu 10.04 i guess you do not need to compile autoconf and automake from sources, the version provided by ubuntu is recent enough. +
  • So basically doing the following should be ok : +
+
 # aptitude install m4 patch  build-essential texinfo cvs libncurses5-dev libgmp3-dev libmpfr-dev libmpc-dev autoconf autotools-dev
+
+ +
  • Follow the steps of the "Phase 2." of RTEMS' wiki page to configure and build the toolchain. +
    • Do not forget that you are building the toolchain for RTEMS 4.11 and not 4.9 +
    • Your target is not powerpc-rtems4.9 but lm32-rtems4.11 +
    • Do not forget to apply the patches, and follow the build order indicated in the RTEMS wiki, you must build gcc against newlib. +
    +
+

[edit] Other Build Scripts

+
  1. one script_file for auto download and build +
  2. another one script_file from rtems.org cvs +
  3. yet another one Makefile for auto download and build +
+

[edit] Checkout the RTEMS port to Milkymist

+

Yann Sionneau developped as part of a Google Summer of Code (2010) a Board Support Package (BSP) for the Milkymist One board which makes it possible to run RTEMS on Milkymist One board using Milkymist SoC ! +

The BSP is available on his git repository hosted on github : http://github.com/fallen/rtems-milkymist +


+

+
  • Be sure to have the git tool installed in your computer +
+
  • Git can be installed this way under debian (and ubuntu) : +
+
 # aptitude update && aptitude install git-core
+
+
  • Clone the git repository of the RTEMS port to Milkymist : +
+
 ~$ git clone git://github.com/fallen/rtems-milkymist.git
+
+

[edit] Building RTEMS port to Milkymist

+
  • Go to the root of the source tree : +
+
 ~$ cd rtems-milkymist
+
+
  • Put your lm32-rtems4.11 toolchain in your PATH environment variable : +
+
 ~$ export PATH=/opt/rtems-4.11/bin:$PATH
+
+
  • Run bootstrap (to generate the Makefile.in and other autotools related files) : +
+
 ~/rtems-milkymist$  ./bootstrap -c && ./bootstrap -p && ./bootstrap
+
+
  • Go make some coffee, drink the coffee, refill your mug and drink again ... ok you're done ! +
+
  • Create a directory to host the binaries you're going to create : +
+
 $ cd ~/
+ ~$ mkdir bsp-milkymist
+
+
  • Do configure and make ! +
+
 ~$ cd bsp-milkymist
+ ~/bsp-milkymist$ ../rtems-milkymist/configure --target=lm32-rtems4.11 --enable-rtemsbsp=milkymist \ 
+                  --enable-testsuites=samples --enable-posix --disable-itron --enable-networking --disable-multiprocessing
+ ~/bsp-milkymist$ make all
+ ~/bsp-milkymist$ sudo -s (or simply su in debian)
+ ~/bsp-milkymist# export PATH=$PATH:/opt/rtems-4.11/bin
+ ~/bsp-milkymist# make install
+
+
  • You can go drink some more coffee ! +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=RTEMS_resources.html b/milkymist-wiki/wiki/index.php?title=RTEMS_resources.html new file mode 100644 index 0000000..461e01a --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=RTEMS_resources.html @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + RTEMS resources - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

RTEMS resources

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

[edit] Flash disk

+ + + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Recommended_ISE_versions.html b/milkymist-wiki/wiki/index.php?title=Recommended_ISE_versions.html new file mode 100644 index 0000000..0155a44 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Recommended_ISE_versions.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + Recommended ISE versions - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Recommended ISE versions

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Because timing results vary with ISE versions, this page keeps track of the recommended ISE version with which each SoC release is known to meet timing. +

+ + + + + + + + + + + + + + + + + + + + +
Milkymist SoC + ISE +
0.9 + 12.2 +
1.0RC1 + 12.2 +
1.0RC2 + 12.4 +
1.0RC3 + 13.1 +
1.0RC4 + 13.1 +
1.0 + 13.1 +
1.0.1 + 13.3 +
1.1 + 13.3 +
1.2 + 13.4 +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Research.html b/milkymist-wiki/wiki/index.php?title=Research.html new file mode 100644 index 0000000..e271045 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Research.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + Research - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Run_RTEMS_sample_applications_on_the_Milkymist_One_board_and_on_Qemu.html b/milkymist-wiki/wiki/index.php?title=Run_RTEMS_sample_applications_on_the_Milkymist_One_board_and_on_Qemu.html new file mode 100644 index 0000000..902a1ec --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Run_RTEMS_sample_applications_on_the_Milkymist_One_board_and_on_Qemu.html @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + + Run RTEMS sample applications on the Milkymist One board and on Qemu - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Run RTEMS sample applications on the Milkymist One board and on Qemu

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

This is a tutorial on how to run RTEMS sample applications on the Milkymist One board and on Qemu. +

Questions about the Milkymist BSP for RTEMS ? +

GO ask them on irc.freenode.net on #milkymist +

I (Yann Sionneau aka Fallenou on IRC) or lekernel or mwalle will try to answer :) +

+

Contents

+ +
+

[edit] First you must build the RTEMS port to Milkymist

+ +

[edit] Run the sample applications

+

[edit] Run the sample applications on the Milkymist One board

+

Go to the bsp-milkymist directory, say we wanna test the "hello world" sample : +

+
 ~$ cd bsp-milkymist/
+ ~/bsp-milkymist$ cd lm32-rtems4.11/c/milkymist/testsuites/samples/hello
+
+
  • Plug your RS-232 serial usb wire to your computer and to the Serial port of the board +
+
  • Install flterm (the software for uploading the application into on-board Flash through RS-232 line) : +
    • This software is available in milkymist's debian repository (works for ubuntu too), just do : +
    +
+
 # echo "deb http://www.milkymist.org/debian ./" >> /etc/apt/sources.list
+ # aptitude update && aptitude install flterm
+
+
  • Power-on the board +
+
  • Then upload the sample application hello.exe to the board : +
+
 ~/bsp-milkymist/lm32-rtems4.11/c/milkymist/testsuites/samples/hello$ flterm --kernel hello.ralf --port /dev/ttyUSB0
+
+
  • If nothing is uploading then push two push-buttons, then push the third and release it, then release the two others. (in this order) +
+

[edit] Run the sample applications on Qemu

+
  • You must compile Qemu with Milkymist support, Check this wiki page Using QEMU +
+
  • Go to the binary directory +
+
 ~$ cd bsp-milkymist/lm32-rtems4.11/c/milkymist/testsuites/samples/hello
+
+
  • Run the .exe binary file with Qemu +
+
 ~/bsp-milkymist/lm32-rtems4.11/c/milkymist/testsuites/samples/hello$ ~/path/to/qemu-lm32/lm32-softmmu/qemu-system-lm32 -M milkymist -kernel hello.exe -nographic
+
+
  • How to run the others samples : +
+
    • milkymist_networking - starts a shell that you can reach through a telnetd daemon over the network +
    +
+
 ~$ cd ~/bsp-milkymist/lm32-rtems4.11/c/milkymist/testsuites/samples/milkymist_networking
+ milkymist_networking$ ~/path/to/qemu-lm32/lm32-softmmu/qemu-system-lm32 -M milkymist -kernel milkymist_networking.exe \
+ -nographic -net nic -net user,net=192.168.101.0/24,restrict=n,host=192.168.101.254,hostfwd=::5555-192.168.101.100:23 \
+ -net dump
+ milkymist_networking$ telnet 127.0.0.1 5555
+ Trying ::1...
+ Trying 127.0.0.1...
+ Connected to localhost.
+ Escape character is '^]'.
+ == Starting shell inside telnetd ==
+ 
+ Welcome to rtems-4.10.99.0(LM32/lm32/milkymist)
+ COPYRIGHT (c) 1989-2008.
+ On-Line Applications Research Corporation (OAR).
+ 
+ running on (LM32/lm32)
+ /dev/pty0 login: root
+ root
+ Password: 
+ 
+ RTEMS SHELL (Ver.1.0-FRC):/dev/pty0. Oct 27 2010. 'help' to list commands.
+ [/] # 
+
+
      • a .pcap file will be generated with a dump of the network packets involved in the sample run, so that you can monitor the network activity of the sample, you can open this file with wireshark. +
      +
    +
+
    • milkymist-networking2 - sends a UDP packet to 4.2.2.1:1234 with "toto" as payload +
    +
+
 ~$ cd ~/bsp-milkymist/lm32-rtems4.11/c/milkymist/testsuites/samples/milkymist_networking2
+ milkymist_networking2$ ~/path/to/qemu-lm32/lm32-softmmu/qemu-system-lm32 -M milkymist -kernel milkymist_networking2.exe \
+ -nographic -net nic -net user,net=192.168.101.0/24,restrict=n,host=192.168.101.254 -net dump
+
+
      • a .pcap file will be generated with a dump of the network packets involved in the sample run, so that you can monitor the network activity of the sample, you can open this file with wireshark. +
      +
    +
+
    • milkymist-networking3 - listens on the TCP port 23 for connections, and echoes what you type (no more than 4 bytes/line), ends with "quit" +
    +
+
 ~$ cd ~/bsp-milkymist/lm32-rtems4.11/c/milkymist/testsuites/samples/milkymist_networking3
+ milkymist_networking3$ ~/path/to/qemu-lm32/lm32-softmmu/qemu-system-lm32 -M milkymist -kernel milkymist_networking3.exe \
+ -nographic -net nic -net user,net=192.168.101.0/24,restrict=n,host=192.168.101.254,hostfwd=::5555-192.168.101.100:23 \
+ -net dump
+ milkymist_networking3$ telnet 127.0.0.1 23
+ toto
+ tata
+ quit
+
+
      • a .pcap file will be generated with a dump of the network packets involved in the sample run, so that you can monitor the network activity of the sample, you can open this file with wireshark. +
      +
    +
+

[edit] Another example of application built against RTEMS : tftpclient

+

[edit] Run the tftpclient on the Milkymist One board

+

tftpclient is an example application that you can build against RTEMS kernel. +

This application downloads a file from a tftp server and prints it's content to the serial console. +

This application has been added to the network-demos provided by RTEMS as a CVS module, it is available on Yann's github +

+
  • Checkout the github repo of network-demos : +
+
 ~$ git clone git://github.com/fallen/network-demos.git
+
+
  • Compile the applications against RTEMS kernel : +
+
 ~$ cd network-demos
+ ~$ export PATH=$PATH:/opt/rtems-4.11/bin
+ ~/network-demos$ RTEMS_MAKEFILE_PATH=/opt/rtems-4.11/lm32-rtems4.11/milkymist make all
+
+
  • Install a tftpd server on your computer : +
+
 ~# aptitude install tftpd
+
+
  • Configure it : +
+
 ~# touch /etc/xinetd.d/tftp
+ ~# vim /etc/xinetd.d/tftp
+
+
  • Put this in the file : +
+
 service tftp
+ {
+   protocol    = udp 
+   port        = 69
+   socket_type = dgram
+   wait        = yes 
+   user        = nobody
+   server      = /usr/sbin/in.tftpd
+   server_args = /tftpboot
+   disable     = no
+ }
+
+
  • Create the tftp root directory and put your file in it +
+
 ~# mkdir /tftpboot
+ ~# cp yourfile /tftpboot/sample.data
+ ~# chown -R nobody /tftpboot
+ ~# chmod -R 777 /tftpboot
+
+
  • Restart xinetd : +
+
 ~# /etc/init.d/xinetd restart
+
+
  • Upload the file to the board using the procedure described previously : +
+
 ~/network-demos$ cd tftpclient/o-optimize
+ ~/network-demos/tftpclient/o-optimize$ lm32-rtems4.11-objcopy -Obinary tftpclient.exe
+ ~/network-demos/tftpclient/o-optimize$ flterm --kernel tftpclient.exe --port /dev/ttyUSB0
+
+
  • While uploading the binary into the board, set-up your network configuration : +
+
 ~# ifconfig eth0 192.168.101.254 netmask 255.255.255.0
+
+

You can change the ip address taken by the board, the ip address of the gateway it's supposed to use, the ip address of the tftp server, the port of the tftp server and the name of the file tftpclient is supposed to download and print in the network-demos/networkconfig.h and directly into network-demos/tftpclient/init.c +

+

[edit] Run the tftpclient on Qemu

+
  • Go through all the previous sections untill you reach the "Restart xinetd" point. +
+
  • Go to the tftpclient binary directory +
+
 ~$ cd ~/dev/network-demos/tftpclient/o-optimize
+
+
  • Create a TAP device interface (do this as root) : +
+
 ~# aptitude install uml-utilities
+ ~# tunctl -u YOUR_USER -g YOUR_GROUP -t tap0
+
+
  • Start the tftpclient with Qemu (in user) : +
+
 o-optimize$ ~/path/to/lm32-qemu/lm32-softmmu/qemu-system-lm32 -kernel tftpclient.exe -nographic -net nic -net tap,iface=tap0,script=no,downscript=no -net dump
+
+
  • It will show you the content of the /tftpboot/sample.data file +
+
  • It will produce a .pcap file with all the network activity involved in this tftp transaction. You can open this file with wireshark. +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=SoC_Roadmap.html b/milkymist-wiki/wiki/index.php?title=SoC_Roadmap.html new file mode 100644 index 0000000..e7d5c5b --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=SoC_Roadmap.html @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + SoC Roadmap - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

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 +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Talk:How_to_make_a_simple_core_for_CSR_bus.html b/milkymist-wiki/wiki/index.php?title=Talk:How_to_make_a_simple_core_for_CSR_bus.html new file mode 100644 index 0000000..b2577d2 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Talk:How_to_make_a_simple_core_for_CSR_bus.html @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + Talk:How to make a simple core for CSR bus - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Talk:How to make a simple core for CSR bus

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

due not support for language formating i think is better move code to github or soemthign else +

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=USB.html b/milkymist-wiki/wiki/index.php?title=USB.html new file mode 100644 index 0000000..ef2f24d --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=USB.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + USB - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Update_JTAG_firmware_on_Windows.html b/milkymist-wiki/wiki/index.php?title=Update_JTAG_firmware_on_Windows.html new file mode 100644 index 0000000..1849bcc --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Update_JTAG_firmware_on_Windows.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + Update JTAG firmware on Windows - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Update JTAG firmware on Windows

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

How-to modify the FTDI firware on Windows using FT_Prog. +

Assume you have installed the FTDI USB driver, if don't, read this : JTAG windows driver +

Considering the new PID and VID for the JTAG cable are : +

+
  • VID : 20B7 +
  • PID : 0713 +
+


+1. Download FT_Prog utility for Windows from FTDI [1] +

2. Extract-it +

3. Run FT_PROG.exe +

4. First, erasing the flash of the cable to ensure no data corruption : +

4.1. Plug the JTAG cable +

4.2. Press the F5 keyboard key +

Now, if it find the cable, you have many information, on the left, in Device Tree box. +

4.3. Now, press Ctrl + P to open the Program Devices window +

4.4. Click on Erase button +

4.5. Unplug the cable +

5. Now, update the cable firmware +

5.1. Plug the JTAG cable +

5.2. Press the F5 keyboard key +

Now, if it find the cable, you have many information, on the left, in Device Tree box. +

5.3. Unroll USB Device Descriptor +

5.4.1. On the right change Custom VID/PID combo box to Custom VID/PID +

5.4.2. Change the Vendor ID edit box to 20B7 and confirm you want to change it +

5.4.3. Change the Product ID edit box to 0713 and confirm you want to change it +

5.5. Now, press Ctrl + P to open the Program Devices window +

5.6. Click on Program button +

5.7. Close the Program Devices window +

Wait and you see on the status bar Finished Programming +

5.8. Unplug the cable +

6. Now, update the USB driver +

6.1 Plug the JTAG cable +

6.2 Install the driver you have edited +

You can verify on the windows Device manager in USB controllers, look if you have : +

+
 Milkymist USB JTAG
+ Milkymist USB Serial
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Useful_FPGA_docs.html b/milkymist-wiki/wiki/index.php?title=Useful_FPGA_docs.html new file mode 100644 index 0000000..b63223b --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Useful_FPGA_docs.html @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + Useful FPGA docs - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Useful FPGA docs

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+ + + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=User:Kristianpaul.html b/milkymist-wiki/wiki/index.php?title=User:Kristianpaul.html new file mode 100644 index 0000000..6de1802 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=User:Kristianpaul.html @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + User:Kristianpaul - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

User:Kristianpaul

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Learning verilog with the milkymist +

kristianpaul.org +

+ + + + + +
+
+
+
+
+
+
Views
+ +
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=User:Xiangfu.html b/milkymist-wiki/wiki/index.php?title=User:Xiangfu.html new file mode 100644 index 0000000..3afc4c4 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=User:Xiangfu.html @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + User:Xiangfu - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

User:Xiangfu

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+
Email_Me
+Blog
+QQ: 123956172
+QQ group: 90586412 (Copyleft Hardware)
+
+ + + + + +
+
+
+
+
+
+
Views
+ +
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Using_GDB_in-system_debugger.html b/milkymist-wiki/wiki/index.php?title=Using_GDB_in-system_debugger.html new file mode 100644 index 0000000..085b43f --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Using_GDB_in-system_debugger.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + Using GDB in-system debugger - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Using GDB in-system debugger

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] Compiling GDB

+

A patch is needed to make direct serial connections work. It was merged in GDB 7.3. +Compile GDB with the target lm32-rtems4.11. +Those steps should be included in the build scripts. +

+

[edit] Obtaining Flickernoise debug information

+

When building Flickernoise, the file bin/flickernoise.elf contains the debug information. Starting with Flickernoise 1.0RC1, this file is provided with the releases to make debugging easier. With +earlier versions, you have to compile Flickernoise yourself (the build scripts automate that). +

Make sure the .elf file and the code that the M1 is running are in sync! If in doubt, netboot the binary that was just built. +

+

[edit] Running GDB

+
lm32-rtems4.11-gdb flickernoise.elf
+
+

[edit] Connecting to the target

+

[edit] Directly

+

Use these commands in GDB: +

+
set remote interrupt-on-connect on
+set remote interrupt-sequence BREAK
+target remote /dev/ttyUSB0
+
+

[edit] With flterm pass-through

+

To use it start flterm with --gdb-passthrough. Then start gdb and run the following commands: +

+
set remote interrupt-on-connect on
+target remote <pseudo terminal printed by flterm>
+
+

Note: there is _no_ 'set remote interrupt-sequence BREAK'. flterm takes +care of converting Ctrl+C (ETX) to a BREAK. +

+

[edit] Over JTAG

+

With OpenOCD.Does not work reliably yet. +

+

[edit] Tips

+

To track down GDB connection problems: +

+
set debug remote 1
+
+

[edit] GDB commands

+

When reporting a freeze, include at least the output from the backtrace command that gives a stack trace. +

+ + + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Using_QEMU.html b/milkymist-wiki/wiki/index.php?title=Using_QEMU.html new file mode 100644 index 0000000..b57730a --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Using_QEMU.html @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + Using QEMU - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Using QEMU

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Contents

+ +
+

[edit] Build and Install QEMU

+

Mico32 support is available in the QEMU source tree and in QEMU releases since 0.10. If your distribution packages an outdated version, you will need to build QEMU from the source code. To get the QEMU source code you will need the git version control system installed. You can get git from git-scm.com +

Prior to building QEMU sure you have libsdl-dev installed (following line works on debian & ubuntu) : +

+
# aptitude install libsdl-dev
+
+

In fedora: +

+
# yum install SDL-devel
+
+

On OS X install SDL from source code (the frameworks installed by the SDL OS X disk image aren't recognized by the configure script): +

+
$ curl http://www.libsdl.org/release/SDL-1.2.14.tar.gz -o SDL-1.2.14.tar.gz
+$ tar xvzf SDL-1.2.14.tar.gz
+$ cd SDL-1.2.14
+$ ./configure 
+$ make 
+# make install
+
+

Checkout the latest version of the QEMU source code: +

+
$ git clone git://git.qemu.org/qemu.git
+$ cd qemu
+
+

Compile and install qemu for lm32 target with sdl support : +

+
$ ./configure --target-list="lm32-softmmu" --enable-sdl [other options? see configure --help]
+  on OS X:
+$ ./configure --target-list="lm32-softmmu" --enable-sdl --enable-cocoa
+$ make
+# make install
+
+

[edit] Basic usage

+

Command line to run Flickernoise using qemu : +

+
$ qemu-system-lm32 -M milkymist -kernel flickernoise
+
+

Command line to run Linux using qemu : +

+
$ qemu-system-lm32 -M milkymist -nographic -kernel [ELF kernel] -initrd [initrd] \
+-append "root=/dev/ram"
+
+

Command line to run the sample Hello World application : +

+
$ qemu-system-lm32 -M milkymist -kernel compile-flickernoise/build_dir/bsp-milkymist/lm32-rtems4.11/c/milkymist/testsuites/samples/hello/hello.exe -nographic
+
+

[edit] GDB

+

It is also possible to use GDB. For this purpose, add “-s -S” to the above command line, and run: +

+
 $ lm32-linux-gdb vmlinux
+ (gdb) target remote localhost:1234
+
+

[edit] Networking

+
 $ lm32-softmmu/qemu-system-lm32 -M milkymist -kernel bios.elf
+ -nographic -net nic -net user,net=172.16.0.0/24,host=172.16.0.254,tftp=/milkymist
+
+

To use the real network: change the option to -net nic -net tap +

+

[edit] binfmt_misc

+
  • create a /usr/bin/mmqemu.sh file with: +
+
#!/bin/sh
+exec qemu-system-lm32 -M milkymist -kernel $1
+
+
  • make it executable +
+
chmod 755 /usr/bin/mmqemu.sh
+
+
  • register the binfmt format +
+
echo ':lm32:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x8a:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/mmqemu.sh:' > /proc/sys/fs/binfmt_misc/register
+
+
  • you can now run MM binaries directly from the shell, i.e. "./flickernoise" will automatically run it in a QEMU window. +
+

[edit] Audio

+

In case having problems setting up right audio device just try this: +

+
export QEMU_AUDIO_DRV=none
+
+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Visualizers.html b/milkymist-wiki/wiki/index.php?title=Visualizers.html new file mode 100644 index 0000000..5d5c29b --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Visualizers.html @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + Visualizers - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Wallpaper.html b/milkymist-wiki/wiki/index.php?title=Wallpaper.html new file mode 100644 index 0000000..56a40ea --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Wallpaper.html @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + Wallpaper - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Wallpaper

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

[edit] how to setup wallpaper

+
  1. copy your wallpaper (must be PNG format) to /ssd/ +
  2. setup the correct wallpaper path in 'Settings' +
+

[edit] wallpapers

+

the flickernoise now support PNG image, 640 x 480, 8-bit/color RGB, non-interlaced here are some examples: +

+

+ + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=What_the_Xilinx_tools_really_are.html b/milkymist-wiki/wiki/index.php?title=What_the_Xilinx_tools_really_are.html new file mode 100644 index 0000000..3acf524 --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=What_the_Xilinx_tools_really_are.html @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + What the Xilinx tools really are - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

What the Xilinx tools really are

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

Most Xilinx tools aren't really Xilinx, they are rebranded and modified NeoCAD tools. NeoCAD was bought out by Xilinx in the 90s: +http://findarticles.com/p/articles/mi_m0EKF/is_n2059_v41/ai_16836512/ +

NeoCAD actually started by reverse engineering bitstream formats and developing an independent toolchain (see http://www.cl.cam.ac.uk/~sd410/papers/fpga_security.pdf) +

Example output from NeoCAD tools (not so different from today's tools!): http://www.slac.stanford.edu/BFROOT/www/Detector/Trigger/ift/Interface/FC/FC_LBL/fc_code/orca/neocad.dir.v.1.1/5_1.par +

Interestingly enough, Lattice tools are also based on NeoCAD tools. +

+

[edit] File format extensions

+
  • NGD = Neocad Generic Database +
  • NCD = Neocad Circuit Description +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/index.php?title=Working_ftdi_eeprom.html b/milkymist-wiki/wiki/index.php?title=Working_ftdi_eeprom.html new file mode 100644 index 0000000..ac5303d --- /dev/null +++ b/milkymist-wiki/wiki/index.php?title=Working_ftdi_eeprom.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + Working ftdi eeprom - Milkymist Wiki + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +

Working ftdi eeprom

+
+

From Milkymist Wiki

+
+
Jump to: navigation, search
+

I modifie the ftdi_eeprom, from the libftdi-1.0 GIT [1] . +

You can first Build the libftdi-1.0 and new ftdi_eeprom +

+

Contents

+ +
+

[edit] Change

+
  • must specifie a device-file (to ensure you flash this you want) +
+
 Syntax sample :
+ ./ftdi_eeprom --read-eeprom  /dev/bus/usb/002/003 ftdi-backup.conf
+ ./ftdi_eeprom --erase-eeprom /dev/bus/usb/002/003
+ ./ftdi_eeprom --flash-eeprom /dev/bus/usb/002/003 ftdi-source.conf
+
+
  • backup eeprom in a conf-file (more easy to edit) +
  • no use of raw file (useless) +
+

[edit] Find the device-file

+

Use lsusb in root : +

+
 (root)# lsusb
+ Bus 007 Device 002: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
+ Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
+ Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
+ Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
+ Bus 002 Device 057: ID 20b7:0713
+ Bus 002 Device 004: ID 05a9:7670 OmniVision Technologies, Inc. OV7670 Webcam
+ Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
+ Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
+ Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
+ Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
+
+

You search for VID and PID of Milkymist JTAG, 20b7:0713, and get the Bus ID 002 and Device ID 057 +

On Linux, you construct the device-file name like this /dev/bus/002/057 +

Note : the Device ID increment if you replug the device +


+

+

[edit] MM1 JTAG Config-file

+

The config-file I use ftdi-source.conf : +

+
 vendor_id=0x20b7
+ product_id=0x0713
+ self_powered=false
+ remote_wakeup=false
+ chip_type=2232H
+ max_power=0
+ in_is_isochronous=false
+ out_is_isochronous=false
+ suspend_pull_downs=false
+ use_serial=false
+ change_usb_version=false
+ usb_version=0
+ manufacturer="Milkymist"
+ product="Milkymist USB JTAG/Serial"
+ serial="08-15"
+
+

[edit] Caution (RESET)

+

I only test this with the 2232H of the Milkymist JTAG. +

Use with caution. +

If the eeprom is blank, --read-eeprom make a config-file with blank parameter. +

The --read-eeprom command don't generate the invert en cbus parameter +


+If you break the config of the cable (your OS don't see it), you can reset with : +

+
  1. unplug the cable +
  2. put the pin 1 of the eeprom to the ground (USB connector is easy) +
  3. plug the cable and verifie your OS found it +
  4. remove the shunt without unplug the cable +
  5. erase or reflash it +
  6. replug-it and verifie +
+ + + + + + +
+
+
+
+
+
+
Views
+
+ +
+
+
+
Personal tools
+ +
+ + + + + +
+
+ +
+ + + diff --git a/milkymist-wiki/wiki/opensearch_desc.php b/milkymist-wiki/wiki/opensearch_desc.php new file mode 100644 index 0000000..972aee7 --- /dev/null +++ b/milkymist-wiki/wiki/opensearch_desc.php @@ -0,0 +1 @@ +Milkymist Wiki (en)Milkymist Wiki (en)http://milkymist.org/favicon.icohttp://milkymist.org/wiki/index.php?title=Special:Search \ No newline at end of file diff --git a/milkymist-wiki/wiki/skins/common/ajax.js?195 b/milkymist-wiki/wiki/skins/common/ajax.js?195 new file mode 100644 index 0000000..afcfa70 --- /dev/null +++ b/milkymist-wiki/wiki/skins/common/ajax.js?195 @@ -0,0 +1,167 @@ +// remote scripting library +// (c) copyright 2005 modernmethod, inc +var sajax_debug_mode = false; +var sajax_request_type = "GET"; + +/** +* if sajax_debug_mode is true, this function outputs given the message into +* the element with id = sajax_debug; if no such element exists in the document, +* it is injected. +*/ +function sajax_debug(text) { + if (!sajax_debug_mode) return false; + + var e= document.getElementById('sajax_debug'); + + if (!e) { + e= document.createElement("p"); + e.className= 'sajax_debug'; + e.id= 'sajax_debug'; + + var b= document.getElementsByTagName("body")[0]; + + if (b.firstChild) b.insertBefore(e, b.firstChild); + else b.appendChild(e); + } + + var m= document.createElement("div"); + m.appendChild( document.createTextNode( text ) ); + + e.appendChild( m ); + + return true; +} + +/** +* compatibility wrapper for creating a new XMLHttpRequest object. +*/ +function sajax_init_object() { + sajax_debug("sajax_init_object() called..") + var A; + try { + // Try the new style before ActiveX so we don't + // unnecessarily trigger warnings in IE 7 when + // set to prompt about ActiveX usage + A = new XMLHttpRequest(); + } catch (e) { + try { + A=new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + A=new ActiveXObject("Microsoft.XMLHTTP"); + } catch (oc) { + A=null; + } + } + } + if (!A) + sajax_debug("Could not create connection object."); + + return A; +} + +/** +* Perform an ajax call to mediawiki. Calls are handeled by AjaxDispatcher.php +* func_name - the name of the function to call. Must be registered in $wgAjaxExportList +* args - an array of arguments to that function +* target - the target that will handle the result of the call. If this is a function, +* if will be called with the XMLHttpRequest as a parameter; if it's an input +* element, its value will be set to the resultText; if it's another type of +* element, its innerHTML will be set to the resultText. +* +* Example: +* sajax_do_call('doFoo', [1, 2, 3], document.getElementById("showFoo")); +* +* This will call the doFoo function via MediaWiki's AjaxDispatcher, with +* (1, 2, 3) as the parameter list, and will show the result in the element +* with id = showFoo +*/ +function sajax_do_call(func_name, args, target) { + var i, x, n; + var uri; + var post_data; + uri = wgServer + + ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript) + + "?action=ajax"; + if (sajax_request_type == "GET") { + if (uri.indexOf("?") == -1) + uri = uri + "?rs=" + encodeURIComponent(func_name); + else + uri = uri + "&rs=" + encodeURIComponent(func_name); + for (i = 0; i < args.length; i++) + uri = uri + "&rsargs[]=" + encodeURIComponent(args[i]); + //uri = uri + "&rsrnd=" + new Date().getTime(); + post_data = null; + } else { + post_data = "rs=" + encodeURIComponent(func_name); + for (i = 0; i < args.length; i++) + post_data = post_data + "&rsargs[]=" + encodeURIComponent(args[i]); + } + x = sajax_init_object(); + if (!x) { + alert("AJAX not supported"); + return false; + } + + try { + x.open(sajax_request_type, uri, true); + } catch (e) { + if (window.location.hostname == "localhost") { + alert("Your browser blocks XMLHttpRequest to 'localhost', try using a real hostname for development/testing."); + } + throw e; + } + if (sajax_request_type == "POST") { + x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1"); + x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + } + x.setRequestHeader("Pragma", "cache=yes"); + x.setRequestHeader("Cache-Control", "no-transform"); + x.onreadystatechange = function() { + if (x.readyState != 4) + return; + + sajax_debug("received (" + x.status + " " + x.statusText + ") " + x.responseText); + + //if (x.status != 200) + // alert("Error: " + x.status + " " + x.statusText + ": " + x.responseText); + //else + + if ( typeof( target ) == 'function' ) { + target( x ); + } + else if ( typeof( target ) == 'object' ) { + if ( target.tagName == 'INPUT' ) { + if (x.status == 200) target.value= x.responseText; + //else alert("Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")"); + } + else { + if (x.status == 200) target.innerHTML = x.responseText; + else target.innerHTML= "
Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")
"; + } + } + else { + alert("bad target for sajax_do_call: not a function or object: " + target); + } + + return; + } + + sajax_debug(func_name + " uri = " + uri + " / post = " + post_data); + x.send(post_data); + sajax_debug(func_name + " waiting.."); + delete x; + + return true; +} + +/** + * @return boolean whether the browser supports XMLHttpRequest + */ +function wfSupportsAjax() { + var request = sajax_init_object(); + var supportsAjax = request ? true : false; + delete request; + return supportsAjax; +} + diff --git a/milkymist-wiki/wiki/skins/common/commonPrint.css?195.css b/milkymist-wiki/wiki/skins/common/commonPrint.css?195.css new file mode 100644 index 0000000..ecf146d --- /dev/null +++ b/milkymist-wiki/wiki/skins/common/commonPrint.css?195.css @@ -0,0 +1,267 @@ +/* +** MediaWiki Print style sheet for CSS2-capable browsers. +** Copyright Gabriel Wicke, http://www.aulinx.de/ +** +** Derived from the plone (http://plone.org/) styles +** Copyright Alexander Limi +*/ + +/* Thanks to A List Apart (http://alistapart.com/) for useful extras */ +a.stub, +a.new{ color:#ba0000; text-decoration:none; } + +#toc { + /*border:1px solid #2f6fab;*/ + border:1px solid #aaaaaa; + background-color:#f9f9f9; + padding:5px; +} +.tocindent { + margin-left: 2em; +} +.tocline { + margin-bottom: 0px; +} + +/* images */ +div.floatright { + float: right; + clear: right; + margin: 0; + position:relative; + border: 0.5em solid White; + border-width: 0.5em 0 0.8em 1.4em; +} +div.floatright p { font-style: italic;} +div.floatleft { + float: left; + margin: 0.3em 0.5em 0.5em 0; + position:relative; + border: 0.5em solid White; + border-width: 0.5em 1.4em 0.8em 0; +} +div.floatleft p { font-style: italic; } +/* thumbnails */ +div.thumb { + margin-bottom: 0.5em; + border-style: solid; border-color: White; + width: auto; + overflow: hidden; +} +div.thumb div { + border:1px solid #cccccc; + padding: 3px !important; + background-color:#f9f9f9; + font-size: 94%; + text-align: center; +} +div.thumb div a img { + border:1px solid #cccccc; +} +div.thumb div div.thumbcaption { + border: none; + padding: 0.3em 0 0.1em 0; +} +div.magnify { display: none; } +div.tright { + float: right; + clear: right; + border-width: 0.5em 0 0.8em 1.4em; +} +div.tleft { + float: left; + margin-right:0.5em; + border-width: 0.5em 1.4em 0.8em 0; +} +img.thumbborder { + border: 1px solid #dddddd; +} + +/* table standards */ +table.rimage { + float:right; + width:1pt; + position:relative; + margin-left:1em; + margin-bottom:1em; + text-align:center; +} + +body { + background: White; + /*font-size: 11pt !important;*/ + color: Black; + margin: 0; + padding: 0; +} + +.noprint, +div#jump-to-nav, +div.top, +div#column-one, +#colophon, +.editsection, +.toctoggle, +.tochidden, +div#f-poweredbyico, +div#f-copyrightico, +li#viewcount, +li#about, +li#disclaimer, +li#privacy { + /* Hides all the elements irrelevant for printing */ + display: none; +} + +ul { + list-style-type: square; +} + +#content { + background: none; + border: none ! important; + padding: 0 ! important; + margin: 0 ! important; +} +#footer { + background : white; + color : black; + border-top: 1px solid black; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: bold; +} + +p, .documentDescription { + margin: 1em 0 ! important; + line-height: 1.2em; +} + +.tocindent p { + margin: 0 0 0 0 ! important; +} + +pre { + border: 1pt dashed black; + white-space: pre; + font-size: 8pt; + overflow: auto; + padding: 1em 0; + background : white; + color : black; +} + +table.listing, +table.listing td { + border: 1pt solid black; + border-collapse: collapse; +} + +a { + color: Black !important; + background: none !important; + padding: 0 !important; +} + +a:link, a:visited { + color: #520; + background: transparent; + text-decoration: underline; +} + +#content a.external.text:after, #content a.external.autonumber:after { + /* Expand URLs for printing */ + content: " (" attr(href) ") "; +} + +#globalWrapper { + width: 100% !important; + min-width: 0 !important; +} + +#content { + background : white; + color : black; +} + +#column-content { + margin: 0 !important; +} + +#column-content #content { + padding: 1em; + margin: 0 !important; +} +/* MSIE/Win doesn't understand 'inherit' */ +a, a.external, a.new, a.stub { + color: black ! important; + text-decoration: none ! important; +} + +/* Continue ... */ +a, a.external, a.new, a.stub { + color: inherit ! important; + text-decoration: inherit ! important; +} + +img { border: none; } +img.tex { vertical-align: middle; } +span.texhtml { font-family: serif; } + +#siteNotice { display: none; } + +table.gallery { + border: 1px solid #cccccc; + margin: 2px; + padding: 2px; + background-color:#ffffff; +} + +table.gallery tr { + vertical-align:top; +} + +div.gallerybox { + border: 1px solid #cccccc; + margin: 2px; + background-color:#f9f9f9; + width: 150px; +} + +div.gallerybox div.thumb { + text-align: center; + border: 1px solid #cccccc; + margin: 2px; +} + +div.gallerytext { + font-size: 94%; + padding: 2px 4px; +} + +/* +** Diff rendering +*/ +table.diff { background:white; } +td.diff-otitle { background:#ffffff; } +td.diff-ntitle { background:#ffffff; } +td.diff-addedline { + background:#ccffcc; + font-size: smaller; + border: solid 2px black; +} +td.diff-deletedline { + background:#ffffaa; + font-size: smaller; + border: dotted 2px black; +} +td.diff-context { + background:#eeeeee; + font-size: smaller; +} +.diffchange { + color: silver; + font-weight: bold; + text-decoration: underline; +} diff --git a/milkymist-wiki/wiki/skins/common/images/gnu-fdl.png b/milkymist-wiki/wiki/skins/common/images/gnu-fdl.png new file mode 100644 index 0000000..1371aba Binary files /dev/null and b/milkymist-wiki/wiki/skins/common/images/gnu-fdl.png differ diff --git a/milkymist-wiki/wiki/skins/common/images/magnify-clip.png b/milkymist-wiki/wiki/skins/common/images/magnify-clip.png new file mode 100644 index 0000000..50abcb6 Binary files /dev/null and b/milkymist-wiki/wiki/skins/common/images/magnify-clip.png differ diff --git a/milkymist-wiki/wiki/skins/common/images/poweredby_mediawiki_88x31.png b/milkymist-wiki/wiki/skins/common/images/poweredby_mediawiki_88x31.png new file mode 100644 index 0000000..ce1765d Binary files /dev/null and b/milkymist-wiki/wiki/skins/common/images/poweredby_mediawiki_88x31.png differ diff --git a/milkymist-wiki/wiki/skins/common/metadata.js?195 b/milkymist-wiki/wiki/skins/common/metadata.js?195 new file mode 100644 index 0000000..a73b693 --- /dev/null +++ b/milkymist-wiki/wiki/skins/common/metadata.js?195 @@ -0,0 +1,49 @@ +// Exif metadata display for MediaWiki file uploads +// +// Add an expand/collapse link and collapse by default if set to +// (with JS disabled, user will see all items) +// +// attachMetadataToggle("mw_metadata", "More...", "Fewer..."); + + +function attachMetadataToggle(tableId, showText, hideText) { + if (document.createTextNode) { + var box = document.getElementById(tableId); + if (!box) + return false; + + var tbody = box.getElementsByTagName('tbody')[0]; + + var row = document.createElement('tr'); + + var col = document.createElement('td'); + col.colSpan = 2; + + var link = document.createElement('a'); + link.href = '#'; + + link.onclick = function() { + if (box.className == 'mw_metadata collapsed') { + changeText(link, hideText); + box.className = 'mw_metadata expanded'; + } else { + changeText(link, showText); + box.className = 'mw_metadata collapsed'; + } + return false; + } + + var text = document.createTextNode(hideText); + + link.appendChild(text); + col.appendChild(link); + row.appendChild(col); + tbody.appendChild(row); + + // And collapse! + link.onclick(); + + return true; + } + return false; +} diff --git a/milkymist-wiki/wiki/skins/common/shared.css?195.css b/milkymist-wiki/wiki/skins/common/shared.css?195.css new file mode 100644 index 0000000..bd30616 --- /dev/null +++ b/milkymist-wiki/wiki/skins/common/shared.css?195.css @@ -0,0 +1,313 @@ +/** + * CSS in this file is used by *all* skins (that have any CSS at all). Be + * careful what you put in here, since what looks good in one skin may not in + * another, but don't ignore the poor non-Monobook users either. + */ +.mw-plusminus-null { color: #aaa; } + +.texvc { direction: ltr; unicode-bidi: embed; } +img.tex { vertical-align: middle; } +span.texhtml { font-family: serif; } + +/* add a bit of margin space between the preview and the toolbar */ +/* this replaces the ugly


we used to insert into the page source */ +#wikiPreview.ontop { margin-bottom: 1em; } + +/* Stop floats from intruding into edit area in previews */ +#toolbar, #wpTextbox1 { clear: both; } + +div#mw-js-message { + margin: 1em 5%; + padding: 0.5em 2.5%; + border: solid 1px #ddd; + background-color: #fcfcfc; +} + +/* Edit section links */ +.editsection { + float: right; + margin-left: 5px; +} + +/** + * File histories + */ +table.filehistory { + border:1px solid #ccc; + border-collapse:collapse; +} + +table.filehistory th, +table.filehistory td { + padding: 0 0.2em 0 0.2em; + vertical-align:top; + border:1px solid #ccc; +} +table.filehistory th { + text-align: left; +} +table.filehistory td.mw-imagepage-filesize, +table.filehistory th.mw-imagepage-filesize { + white-space:nowrap; +} + +table.filehistory td.filehistory-selected { + font-weight: bold; +} + +/* + * rev_deleted stuff + */ +li span.deleted, span.history-deleted { + text-decoration: line-through; + color: #888; + font-style: italic; +} + +/** + * Forms + */ +body.ltr td.mw-label { text-align: right; } +body.ltr td.mw-input { text-align: left; } +body.ltr td.mw-submit { text-align: left; } +body.rtl td.mw-label { text-align: left; } +body.rtl td.mw-input { text-align: right; } +body.rtl td.mw-submit { text-align: right; } + +td.mw-label { vertical-align: top; } +td.mw-submit { white-space: nowrap; } + +/** + * Image captions + */ +body.rtl .thumbcaption { text-align:right; } +body.rtl .magnify { float:left; } + +body.ltr .thumbcaption { text-align:left; } +body.ltr .magnify { float:right; } + +/** + * Hidden categories + */ +.mw-hidden-cats-hidden { display: none; } +.catlinks-allhidden { display: none; } + +/* Convenience links to edit block, delete and protect reasons */ +p.mw-ipb-conveniencelinks, p.mw-protect-editreasons, +p.mw-filedelete-editreasons, p.mw-delete-editreasons { + font-size: 90%; + float: right; +} + +/* Search results */ +div.searchresult { + font-size: 95%; + width:38em; +} +.mw-search-results li { + padding-bottom: 1em; + list-style:none; +} +.mw-search-result-data { + color: green; + font-size: 97%; +} + +td#mw-search-menu { + padding-left:6em; + font-size:85%; +} + +div#mw-search-interwiki { + float: right; + width: 18em; + border-style: solid; + border-color: #AAAAAA; + border-width: 1px; + margin-top: 2ex; +} + +div#mw-search-interwiki li { + font-size: 95%; +} + +.mw-search-interwiki-more { + float: right; + font-size: 90%; +} + +span.searchalttitle { + font-size: 95%; +} + +div.searchdidyoumean { + font-size: 127%; + margin-bottom: 1ex; + margin-top: 1ex; + /* Note that this color won't affect the link, as desired. */ + color: #c00; +} + +div.searchdidyoumean em { + font-weight: bold; +} + +.searchmatch { + font-weight: bold; +} + +div.searchresults { + border:1px solid darkblue; + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + padding-right: 20px; +} + +/* + * UserRights stuff + */ +.mw-userrights-disabled { + color: #888; +} + +table.mw-userrights-groups * td,table.mw-userrights-groups * th { + padding-right: 1.5em; +} + +/* + * OpenSearch ajax suggestions + */ +.os-suggest { + overflow: auto; + overflow-x: hidden; + position: absolute; + top: 0px; + left: 0px; + width: 0px; + background-color: white; + background-color: Window; + border-style: solid; + border-color: #AAAAAA; + border-width: 1px; + z-index:99; + visibility:hidden; + font-size:95%; +} + +table.os-suggest-results { + font-size: 95%; + cursor: pointer; + border: 0; + border-collapse: collapse; + width: 100%; +} + +td.os-suggest-result, td.os-suggest-result-hl { + white-space: nowrap; + background-color: white; + background-color: Window; + color: black; + color: WindowText; + padding: 2px; +} +td.os-suggest-result-hl, +td.os-suggest-result-hl-webkit { + background-color: #4C59A6; + color: white; +} +td.os-suggest-result-hl { + /* System colors are misimplemented in Safari 3.0 and earlier, + making highlighted text illegible... */ + background-color: Highlight; + color: HighlightText; +} + +.os-suggest-toggle { + position: relative; + left: 1ex; + font-size: 65%; +} +.os-suggest-toggle-def { + position: absolute; + top: 0px; + left: 0px; + font-size: 65%; + visibility: hidden; +} + +/* Page history styling */ +/* the auto-generated edit comments */ +.autocomment { color: gray; } +#pagehistory .history-user { + margin-left: 0.4em; + margin-right: 0.2em; +} +#pagehistory span.minor { font-weight: bold; } +#pagehistory li { border: 1px solid white; } +#pagehistory li.selected { + background-color: #f9f9f9; + border: 1px dashed #aaa; +} + +/* + * Special:ListGroupRights styling + * Special:Statistics styling +*/ + +table.mw-listgrouprights-table, +table.mw-statistics-table { + border: 1px solid #ccc; + border-collapse: collapse; +} + +table.mw-listgrouprights-table tr { + vertical-align: top; +} + +table.mw-listgrouprights-table td, table.mw-listgrouprights-table th, +table.mw-statistics-table td, table.mw-statistics-table th { + padding: 0.5em 0.2em 0.5em 0.2em; + border: 1px solid #ccc; +} + +td.mw-statistics-numbers { + text-align: right; +} + +/* Special:SpecialPages styling */ +h4.mw-specialpagesgroup { + background-color: #dcdcdc; + padding: 2px; + margin: .3em 0em 0em 0em; +} +.mw-specialpagerestricted { + font-weight: bold; +} + +#shared-image-dup, #shared-image-conflict { + font-style: italic; +} + +/* Special:EmailUser styling */ +table.mw-emailuser-table { + width: 98%; +} +td#mw-emailuser-sender, td#mw-emailuser-recipient { + font-weight: bold; +} + +/* + * Recreating deleted page warning + * Reupload file warning + * Page protection warning + * incl. log entries for these warnings + */ +div.mw-warning-with-logexcerpt { + padding: 3px; + margin-bottom: 3px; + border: 2px solid #2F6FAB; +} +div.mw-warning-with-logexcerpt ul li { + font-size: 90%; +} diff --git a/milkymist-wiki/wiki/skins/common/wikibits.js?195 b/milkymist-wiki/wiki/skins/common/wikibits.js?195 new file mode 100644 index 0000000..089d22d --- /dev/null +++ b/milkymist-wiki/wiki/skins/common/wikibits.js?195 @@ -0,0 +1,995 @@ +// MediaWiki JavaScript support functions + +var clientPC = navigator.userAgent.toLowerCase(); // Get client info +var is_gecko = /gecko/.test( clientPC ) && + !/khtml|spoofer|netscape\/7\.0/.test(clientPC); +var webkit_match = clientPC.match(/applewebkit\/(\d+)/); +if (webkit_match) { + var is_safari = clientPC.indexOf('applewebkit') != -1 && + clientPC.indexOf('spoofer') == -1; + var is_safari_win = is_safari && clientPC.indexOf('windows') != -1; + var webkit_version = parseInt(webkit_match[1]); +} +var is_khtml = navigator.vendor == 'KDE' || + ( document.childNodes && !document.all && !navigator.taintEnabled ); +// For accesskeys; note that FF3+ is included here! +var is_ff2 = /firefox\/[2-9]|minefield\/3/.test( clientPC ); +// These aren't used here, but some custom scripts rely on them +var is_ff2_win = is_ff2 && clientPC.indexOf('windows') != -1; +var is_ff2_x11 = is_ff2 && clientPC.indexOf('x11') != -1; +if (clientPC.indexOf('opera') != -1) { + var is_opera = true; + var is_opera_preseven = window.opera && !document.childNodes; + var is_opera_seven = window.opera && document.childNodes; + var is_opera_95 = /opera\/(9.[5-9]|[1-9][0-9])/.test( clientPC ); +} + +// Global external objects used by this script. +/*extern ta, stylepath, skin */ + +// add any onload functions in this hook (please don't hard-code any events in the xhtml source) +var doneOnloadHook; + +if (!window.onloadFuncts) { + var onloadFuncts = []; +} + +function addOnloadHook(hookFunct) { + // Allows add-on scripts to add onload functions + if(!doneOnloadHook) { + onloadFuncts[onloadFuncts.length] = hookFunct; + } else { + hookFunct(); // bug in MSIE script loading + } +} + +function hookEvent(hookName, hookFunct) { + addHandler(window, hookName, hookFunct); +} + +function importScript(page) { + var uri = wgScript + '?title=' + + encodeURIComponent(page.replace(/ /g,'_')).replace('%2F','/').replace('%3A',':') + + '&action=raw&ctype=text/javascript'; + return importScriptURI(uri); +} + +var loadedScripts = {}; // included-scripts tracker +function importScriptURI(url) { + if (loadedScripts[url]) { + return null; + } + loadedScripts[url] = true; + var s = document.createElement('script'); + s.setAttribute('src',url); + s.setAttribute('type','text/javascript'); + document.getElementsByTagName('head')[0].appendChild(s); + return s; +} + +function importStylesheet(page) { + return importStylesheetURI(wgScript + '?action=raw&ctype=text/css&title=' + encodeURIComponent(page.replace(/ /g,'_'))); +} + +function importStylesheetURI(url) { + return document.createStyleSheet ? document.createStyleSheet(url) : appendCSS('@import "' + url + '";'); +} + +function appendCSS(text) { + var s = document.createElement('style'); + s.type = 'text/css'; + s.rel = 'stylesheet'; + if (s.styleSheet) s.styleSheet.cssText = text //IE + else s.appendChild(document.createTextNode(text + '')) //Safari sometimes borks on null + document.getElementsByTagName('head')[0].appendChild(s); + return s; +} + +// special stylesheet links +if (typeof stylepath != 'undefined' && typeof skin != 'undefined') { + if (is_opera_preseven) { + importStylesheetURI(stylepath+'/'+skin+'/Opera6Fixes.css'); + } else if (is_opera_seven && !is_opera_95) { + importStylesheetURI(stylepath+'/'+skin+'/Opera7Fixes.css'); + } else if (is_khtml) { + importStylesheetURI(stylepath+'/'+skin+'/KHTMLFixes.css'); + } +} + +if (wgBreakFrames) { + // Un-trap us from framesets + if (window.top != window) { + window.top.location = window.location; + } +} + +function showTocToggle() { + if (document.createTextNode) { + // Uses DOM calls to avoid document.write + XHTML issues + + var linkHolder = document.getElementById('toctitle'); + if (!linkHolder) { + return; + } + + var outerSpan = document.createElement('span'); + outerSpan.className = 'toctoggle'; + + var toggleLink = document.createElement('a'); + toggleLink.id = 'togglelink'; + toggleLink.className = 'internal'; + toggleLink.href = 'javascript:toggleToc()'; + toggleLink.appendChild(document.createTextNode(tocHideText)); + + outerSpan.appendChild(document.createTextNode('[')); + outerSpan.appendChild(toggleLink); + outerSpan.appendChild(document.createTextNode(']')); + + linkHolder.appendChild(document.createTextNode(' ')); + linkHolder.appendChild(outerSpan); + + var cookiePos = document.cookie.indexOf("hidetoc="); + if (cookiePos > -1 && document.cookie.charAt(cookiePos + 8) == 1) { + toggleToc(); + } + } +} + +function changeText(el, newText) { + // Safari work around + if (el.innerText) { + el.innerText = newText; + } else if (el.firstChild && el.firstChild.nodeValue) { + el.firstChild.nodeValue = newText; + } +} + +function toggleToc() { + var toc = document.getElementById('toc').getElementsByTagName('ul')[0]; + var toggleLink = document.getElementById('togglelink'); + + if (toc && toggleLink && toc.style.display == 'none') { + changeText(toggleLink, tocHideText); + toc.style.display = 'block'; + document.cookie = "hidetoc=0"; + } else { + changeText(toggleLink, tocShowText); + toc.style.display = 'none'; + document.cookie = "hidetoc=1"; + } +} + +var mwEditButtons = []; +var mwCustomEditButtons = []; // eg to add in MediaWiki:Common.js + +function escapeQuotes(text) { + var re = new RegExp("'","g"); + text = text.replace(re,"\\'"); + re = new RegExp("\\n","g"); + text = text.replace(re,"\\n"); + return escapeQuotesHTML(text); +} + +function escapeQuotesHTML(text) { + var re = new RegExp('&',"g"); + text = text.replace(re,"&"); + re = new RegExp('"',"g"); + text = text.replace(re,"""); + re = new RegExp('<',"g"); + text = text.replace(re,"<"); + re = new RegExp('>',"g"); + text = text.replace(re,">"); + return text; +} + + +/** + * Set the accesskey prefix based on browser detection. + */ +var tooltipAccessKeyPrefix = 'alt-'; +if (is_opera) { + tooltipAccessKeyPrefix = 'shift-esc-'; +} else if (!is_safari_win && is_safari && webkit_version > 526) { + tooltipAccessKeyPrefix = 'ctrl-alt-'; +} else if (!is_safari_win && (is_safari + || clientPC.indexOf('mac') != -1 + || clientPC.indexOf('konqueror') != -1 )) { + tooltipAccessKeyPrefix = 'ctrl-'; +} else if (is_ff2) { + tooltipAccessKeyPrefix = 'alt-shift-'; +} +var tooltipAccessKeyRegexp = /\[(ctrl-)?(alt-)?(shift-)?(esc-)?(.)\]$/; + +/** + * Add the appropriate prefix to the accesskey shown in the tooltip. + * If the nodeList parameter is given, only those nodes are updated; + * otherwise, all the nodes that will probably have accesskeys by + * default are updated. + * + * @param Array nodeList -- list of elements to update + */ +function updateTooltipAccessKeys( nodeList ) { + if ( !nodeList ) { + // skins without a "column-one" element don't seem to have links with accesskeys either + var columnOne = document.getElementById("column-one"); + if ( columnOne ) + updateTooltipAccessKeys( columnOne.getElementsByTagName("a") ); + // these are rare enough that no such optimization is needed + updateTooltipAccessKeys( document.getElementsByTagName("input") ); + updateTooltipAccessKeys( document.getElementsByTagName("label") ); + return; + } + + for ( var i = 0; i < nodeList.length; i++ ) { + var element = nodeList[i]; + var tip = element.getAttribute("title"); + if ( tip && tooltipAccessKeyRegexp.exec(tip) ) { + tip = tip.replace(tooltipAccessKeyRegexp, + "["+tooltipAccessKeyPrefix+"$5]"); + element.setAttribute("title", tip ); + } + } +} + +/** + * Add a link to one of the portlet menus on the page, including: + * + * p-cactions: Content actions (shown as tabs above the main content in Monobook) + * p-personal: Personal tools (shown at the top right of the page in Monobook) + * p-navigation: Navigation + * p-tb: Toolbox + * + * This function exists for the convenience of custom JS authors. All + * but the first three parameters are optional, though providing at + * least an id and a tooltip is recommended. + * + * By default the new link will be added to the end of the list. To + * add the link before a given existing item, pass the DOM node of + * that item (easily obtained with document.getElementById()) as the + * nextnode parameter; to add the link _after_ an existing item, pass + * the node's nextSibling instead. + * + * @param String portlet -- id of the target portlet ("p-cactions", "p-personal", "p-navigation" or "p-tb") + * @param String href -- link URL + * @param String text -- link text (will be automatically lowercased by CSS for p-cactions in Monobook) + * @param String id -- id of the new item, should be unique and preferably have the appropriate prefix ("ca-", "pt-", "n-" or "t-") + * @param String tooltip -- text to show when hovering over the link, without accesskey suffix + * @param String accesskey -- accesskey to activate this link (one character, try to avoid conflicts) + * @param Node nextnode -- the DOM node before which the new item should be added, should be another item in the same list + * + * @return Node -- the DOM node of the new item (an LI element) or null + */ +function addPortletLink(portlet, href, text, id, tooltip, accesskey, nextnode) { + var node = document.getElementById(portlet); + if ( !node ) return null; + node = node.getElementsByTagName( "ul" )[0]; + if ( !node ) return null; + + var link = document.createElement( "a" ); + link.appendChild( document.createTextNode( text ) ); + link.href = href; + + var item = document.createElement( "li" ); + item.appendChild( link ); + if ( id ) item.id = id; + + if ( accesskey ) { + link.setAttribute( "accesskey", accesskey ); + tooltip += " ["+accesskey+"]"; + } + if ( tooltip ) { + link.setAttribute( "title", tooltip ); + } + if ( accesskey && tooltip ) { + updateTooltipAccessKeys( new Array( link ) ); + } + + if ( nextnode && nextnode.parentNode == node ) + node.insertBefore( item, nextnode ); + else + node.appendChild( item ); // IE compatibility (?) + + return item; +} + +function getInnerText(el) { + if (typeof el == "string") return el; + if (typeof el == "undefined") { return el }; + if (el.textContent) return el.textContent; // not needed but it is faster + if (el.innerText) return el.innerText; // IE doesn't have textContent + var str = ""; + + var cs = el.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + str += ts_getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + str += cs[i].nodeValue; + break; + } + } + return str; +} + + +/** + * Set up accesskeys/tooltips from the deprecated ta array. If doId + * is specified, only set up for that id. Note that this function is + * deprecated and will not be supported indefinitely -- use + * updateTooltipAccessKey() instead. + * + * @param mixed doId string or null + */ +function akeytt( doId ) { + // A lot of user scripts (and some of the code below) break if + // ta isn't defined, so we make sure it is. Explictly using + // window.ta avoids a "ta is not defined" error. + if (!window.ta) window.ta = new Array; + + // Make a local, possibly restricted, copy to avoid clobbering + // the original. + var ta; + if ( doId ) { + ta = [doId]; + } else { + ta = window.ta; + } + + // Now deal with evil deprecated ta + var watchCheckboxExists = document.getElementById( 'wpWatchthis' ) ? true : false; + for (var id in ta) { + var n = document.getElementById(id); + if (n) { + var a = null; + var ak = ''; + // Are we putting accesskey in it + if (ta[id][0].length > 0) { + // Is this object a object? If not assume it's the next child. + + if (n.nodeName.toLowerCase() == "a") { + a = n; + } else { + a = n.childNodes[0]; + } + // Don't add an accesskey for the watch tab if the watch + // checkbox is also available. + if (a && ((id != 'ca-watch' && id != 'ca-unwatch') || !watchCheckboxExists)) { + a.accessKey = ta[id][0]; + ak = ' ['+tooltipAccessKeyPrefix+ta[id][0]+']'; + } + } else { + // We don't care what type the object is when assigning tooltip + a = n; + ak = ''; + } + + if (a) { + a.title = ta[id][1]+ak; + } + } + } +} + +var checkboxes; +var lastCheckbox; + +function setupCheckboxShiftClick() { + checkboxes = []; + lastCheckbox = null; + var inputs = document.getElementsByTagName('input'); + addCheckboxClickHandlers(inputs); +} + +function addCheckboxClickHandlers(inputs, start) { + if ( !start) start = 0; + + var finish = start + 250; + if ( finish > inputs.length ) + finish = inputs.length; + + for ( var i = start; i < finish; i++ ) { + var cb = inputs[i]; + if ( !cb.type || cb.type.toLowerCase() != 'checkbox' ) + continue; + var end = checkboxes.length; + checkboxes[end] = cb; + cb.index = end; + cb.onclick = checkboxClickHandler; + } + + if ( finish < inputs.length ) { + setTimeout( function () { + addCheckboxClickHandlers(inputs, finish); + }, 200 ); + } +} + +function checkboxClickHandler(e) { + if (typeof e == 'undefined') { + e = window.event; + } + if ( !e.shiftKey || lastCheckbox === null ) { + lastCheckbox = this.index; + return true; + } + var endState = this.checked; + var start, finish; + if ( this.index < lastCheckbox ) { + start = this.index + 1; + finish = lastCheckbox; + } else { + start = lastCheckbox; + finish = this.index - 1; + } + for (var i = start; i <= finish; ++i ) { + checkboxes[i].checked = endState; + } + lastCheckbox = this.index; + return true; +} + +function toggle_element_activation(ida,idb) { + if (!document.getElementById) { + return; + } + document.getElementById(ida).disabled=true; + document.getElementById(idb).disabled=false; +} + +function toggle_element_check(ida,idb) { + if (!document.getElementById) { + return; + } + document.getElementById(ida).checked=true; + document.getElementById(idb).checked=false; +} + +/* + Written by Jonathan Snook, http://www.snook.ca/jonathan + Add-ons by Robert Nyman, http://www.robertnyman.com + Author says "The credit comment is all it takes, no license. Go crazy with it!:-)" + From http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/ +*/ +function getElementsByClassName(oElm, strTagName, oClassNames){ + var arrReturnElements = new Array(); + if ( typeof( oElm.getElementsByClassName ) == "function" ) { + /* Use a native implementation where possible FF3, Saf3.2, Opera 9.5 */ + var arrNativeReturn = oElm.getElementsByClassName( oClassNames ); + if ( strTagName == "*" ) + return arrNativeReturn; + for ( var h=0; h < arrNativeReturn.length; h++ ) { + if( arrNativeReturn[h].tagName.toLowerCase() == strTagName.toLowerCase() ) + arrReturnElements[arrReturnElements.length] = arrNativeReturn[h]; + } + return arrReturnElements; + } + var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); + var arrRegExpClassNames = new Array(); + if(typeof oClassNames == "object"){ + for(var i=0; i 0) { + if (table.tHead && table.tHead.rows.length > 0) { + firstRow = table.tHead.rows[table.tHead.rows.length-1]; + } else { + firstRow = table.rows[0]; + } + } + if (!firstRow) return; + + // We have a first row: assume it's the header, and make its contents clickable links + for (var i = 0; i < firstRow.cells.length; i++) { + var cell = firstRow.cells[i]; + if ((" "+cell.className+" ").indexOf(" unsortable ") == -1) { + cell.innerHTML += '  ' + + '' + + '' + + '↓'; + } + } + if (ts_alternate_row_colors) { + ts_alternate(table); + } +} + +function ts_getInnerText(el) { + return getInnerText( el ); +} + +function ts_resortTable(lnk) { + // get the span + var span = lnk.getElementsByTagName('span')[0]; + + var td = lnk.parentNode; + var tr = td.parentNode; + var column = td.cellIndex; + + var table = tr.parentNode; + while (table && !(table.tagName && table.tagName.toLowerCase() == 'table')) + table = table.parentNode; + if (!table) return; + + if (table.rows.length <= 1) return; + + // Generate the number transform table if it's not done already + if (ts_number_transform_table == null) { + ts_initTransformTable(); + } + + // Work out a type for the column + // Skip the first row if that's where the headings are + var rowStart = (table.tHead && table.tHead.rows.length > 0 ? 0 : 1); + + var itm = ""; + for (var i = rowStart; i < table.rows.length; i++) { + if (table.rows[i].cells.length > column) { + itm = ts_getInnerText(table.rows[i].cells[column]); + itm = itm.replace(/^[\s\xa0]+/, "").replace(/[\s\xa0]+$/, ""); + if (itm != "") break; + } + } + + // TODO: bug 8226, localised date formats + var sortfn = ts_sort_generic; + var preprocessor = ts_toLowerCase; + if (/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/.test(itm)) { + preprocessor = ts_dateToSortKey; + } else if (/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/.test(itm)) { + preprocessor = ts_dateToSortKey; + } else if (/^\d\d[\/.-]\d\d[\/.-]\d\d$/.test(itm)) { + preprocessor = ts_dateToSortKey; + // pound dollar euro yen currency cents + } else if (/(^[\u00a3$\u20ac\u00a4\u00a5]|\u00a2$)/.test(itm)) { + preprocessor = ts_currencyToSortKey; + } else if (ts_number_regex.test(itm)) { + preprocessor = ts_parseFloat; + } + + var reverse = (span.getAttribute("sortdir") == 'down'); + + var newRows = new Array(); + var staticRows = new Array(); + for (var j = rowStart; j < table.rows.length; j++) { + var row = table.rows[j]; + if((" "+row.className+" ").indexOf(" unsortable ") < 0) { + var keyText = ts_getInnerText(row.cells[column]); + var oldIndex = (reverse ? -j : j); + var preprocessed = preprocessor( keyText ); + + newRows[newRows.length] = new Array(row, preprocessed, oldIndex); + } else staticRows[staticRows.length] = new Array(row, false, j-rowStart); + } + + newRows.sort(sortfn); + + var arrowHTML; + if (reverse) { + arrowHTML = '↓'; + newRows.reverse(); + span.setAttribute('sortdir','up'); + } else { + arrowHTML = '↑'; + span.setAttribute('sortdir','down'); + } + + for (var i = 0; i < staticRows.length; i++) { + var row = staticRows[i]; + newRows.splice(row[2], 0, row); + } + + // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones + // don't do sortbottom rows + for (var i = 0; i < newRows.length; i++) { + if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") == -1) + table.tBodies[0].appendChild(newRows[i][0]); + } + // do sortbottom rows only + for (var i = 0; i < newRows.length; i++) { + if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") != -1) + table.tBodies[0].appendChild(newRows[i][0]); + } + + // Delete any other arrows there may be showing + var spans = getElementsByClassName(tr, "span", "sortarrow"); + for (var i = 0; i < spans.length; i++) { + spans[i].innerHTML = '↓'; + } + span.innerHTML = arrowHTML; + + if (ts_alternate_row_colors) { + ts_alternate(table); + } +} + +function ts_initTransformTable() { + if ( typeof wgSeparatorTransformTable == "undefined" + || ( wgSeparatorTransformTable[0] == '' && wgDigitTransformTable[2] == '' ) ) + { + digitClass = "[0-9,.]"; + ts_number_transform_table = false; + } else { + ts_number_transform_table = {}; + // Unpack the transform table + // Separators + ascii = wgSeparatorTransformTable[0].split("\t"); + localised = wgSeparatorTransformTable[1].split("\t"); + for ( var i = 0; i < ascii.length; i++ ) { + ts_number_transform_table[localised[i]] = ascii[i]; + } + // Digits + ascii = wgDigitTransformTable[0].split("\t"); + localised = wgDigitTransformTable[1].split("\t"); + for ( var i = 0; i < ascii.length; i++ ) { + ts_number_transform_table[localised[i]] = ascii[i]; + } + + // Construct regex for number identification + digits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', '\\.']; + maxDigitLength = 1; + for ( var digit in ts_number_transform_table ) { + // Escape regex metacharacters + digits.push( + digit.replace( /[\\\\$\*\+\?\.\(\)\|\{\}\[\]\-]/, + function( s ) { return '\\' + s; } ) + ); + if (digit.length > maxDigitLength) { + maxDigitLength = digit.length; + } + } + if ( maxDigitLength > 1 ) { + digitClass = '[' + digits.join( '', digits ) + ']'; + } else { + digitClass = '(' + digits.join( '|', digits ) + ')'; + } + } + + // We allow a trailing percent sign, which we just strip. This works fine + // if percents and regular numbers aren't being mixed. + ts_number_regex = new RegExp( + "^(" + + "[+-]?[0-9][0-9,]*(\\.[0-9,]*)?(E[+-]?[0-9][0-9,]*)?" + // Fortran-style scientific + "|" + + "[+-]?" + digitClass + "+%?" + // Generic localised + ")$", "i" + ); +} + +function ts_toLowerCase( s ) { + return s.toLowerCase(); +} + +function ts_dateToSortKey(date) { + // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX + if (date.length == 11) { + switch (date.substr(3,3).toLowerCase()) { + case "jan": var month = "01"; break; + case "feb": var month = "02"; break; + case "mar": var month = "03"; break; + case "apr": var month = "04"; break; + case "may": var month = "05"; break; + case "jun": var month = "06"; break; + case "jul": var month = "07"; break; + case "aug": var month = "08"; break; + case "sep": var month = "09"; break; + case "oct": var month = "10"; break; + case "nov": var month = "11"; break; + case "dec": var month = "12"; break; + // default: var month = "00"; + } + return date.substr(7,4)+month+date.substr(0,2); + } else if (date.length == 10) { + if (ts_europeandate == false) { + return date.substr(6,4)+date.substr(0,2)+date.substr(3,2); + } else { + return date.substr(6,4)+date.substr(3,2)+date.substr(0,2); + } + } else if (date.length == 8) { + yr = date.substr(6,2); + if (parseInt(yr) < 50) { + yr = '20'+yr; + } else { + yr = '19'+yr; + } + if (ts_europeandate == true) { + return yr+date.substr(3,2)+date.substr(0,2); + } else { + return yr+date.substr(0,2)+date.substr(3,2); + } + } + return "00000000"; +} + +function ts_parseFloat( s ) { + if ( !s ) { + return 0; + } + if (ts_number_transform_table != false) { + var newNum = '', c; + + for ( var p = 0; p < s.length; p++ ) { + c = s.charAt( p ); + if (c in ts_number_transform_table) { + newNum += ts_number_transform_table[c]; + } else { + newNum += c; + } + } + s = newNum; + } + + num = parseFloat(s.replace(/,/g, "")); + return (isNaN(num) ? s : num); +} + +function ts_currencyToSortKey( s ) { + return ts_parseFloat(s.replace(/[^0-9.,]/g,'')); +} + +function ts_sort_generic(a, b) { + return a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : a[2] - b[2]; +} + +function ts_alternate(table) { + // Take object table and get all it's tbodies. + var tableBodies = table.getElementsByTagName("tbody"); + // Loop through these tbodies + for (var i = 0; i < tableBodies.length; i++) { + // Take the tbody, and get all it's rows + var tableRows = tableBodies[i].getElementsByTagName("tr"); + // Loop through these rows + // Start at 1 because we want to leave the heading row untouched + for (var j = 0; j < tableRows.length; j++) { + // Check if j is even, and apply classes for both possible results + var oldClasses = tableRows[j].className.split(" "); + var newClassName = ""; + for (var k = 0; k < oldClasses.length; k++) { + if (oldClasses[k] != "" && oldClasses[k] != "even" && oldClasses[k] != "odd") + newClassName += oldClasses[k] + " "; + } + tableRows[j].className = newClassName + (j % 2 == 0 ? "even" : "odd"); + } + } +} + +/* + * End of table sorting code + */ + + +/** + * Add a cute little box at the top of the screen to inform the user of + * something, replacing any preexisting message. + * + * @param String -or- Dom Object message HTML to be put inside the right div + * @param String className Used in adding a class; should be different for each + * call to allow CSS/JS to hide different boxes. null = no class used. + * @return Boolean True on success, false on failure + */ +function jsMsg( message, className ) { + if ( !document.getElementById ) { + return false; + } + // We special-case skin structures provided by the software. Skins that + // choose to abandon or significantly modify our formatting can just define + // an mw-js-message div to start with. + var messageDiv = document.getElementById( 'mw-js-message' ); + if ( !messageDiv ) { + messageDiv = document.createElement( 'div' ); + if ( document.getElementById( 'column-content' ) + && document.getElementById( 'content' ) ) { + // MonoBook, presumably + document.getElementById( 'content' ).insertBefore( + messageDiv, + document.getElementById( 'content' ).firstChild + ); + } else if ( document.getElementById('content') + && document.getElementById( 'article' ) ) { + // Non-Monobook but still recognizable (old-style) + document.getElementById( 'article').insertBefore( + messageDiv, + document.getElementById( 'article' ).firstChild + ); + } else { + return false; + } + } + + messageDiv.setAttribute( 'id', 'mw-js-message' ); + messageDiv.style.display = 'block'; + if( className ) { + messageDiv.setAttribute( 'class', 'mw-js-message-'+className ); + } + + if (typeof message === 'object') { + while (messageDiv.hasChildNodes()) // Remove old content + messageDiv.removeChild(messageDiv.firstChild); + messageDiv.appendChild (message); // Append new content + } + else { + messageDiv.innerHTML = message; + } + return true; +} + +/** + * Inject a cute little progress spinner after the specified element + * + * @param element Element to inject after + * @param id Identifier string (for use with removeSpinner(), below) + */ +function injectSpinner( element, id ) { + var spinner = document.createElement( "img" ); + spinner.id = "mw-spinner-" + id; + spinner.src = stylepath + "/common/images/spinner.gif"; + spinner.alt = spinner.title = "..."; + if( element.nextSibling ) { + element.parentNode.insertBefore( spinner, element.nextSibling ); + } else { + element.parentNode.appendChild( spinner ); + } +} + +/** + * Remove a progress spinner added with injectSpinner() + * + * @param id Identifier string + */ +function removeSpinner( id ) { + var spinner = document.getElementById( "mw-spinner-" + id ); + if( spinner ) { + spinner.parentNode.removeChild( spinner ); + } +} + +function runOnloadHook() { + // don't run anything below this for non-dom browsers + if (doneOnloadHook || !(document.getElementById && document.getElementsByTagName)) { + return; + } + + // set this before running any hooks, since any errors below + // might cause the function to terminate prematurely + doneOnloadHook = true; + + updateTooltipAccessKeys( null ); + akeytt( null ); + setupCheckboxShiftClick(); + sortables_init(); + + // Run any added-on functions + for (var i = 0; i < onloadFuncts.length; i++) { + onloadFuncts[i](); + } +} + +/** + * Add an event handler to an element + * + * @param Element element Element to add handler to + * @param String attach Event to attach to + * @param callable handler Event handler callback + */ +function addHandler( element, attach, handler ) { + if( window.addEventListener ) { + element.addEventListener( attach, handler, false ); + } else if( window.attachEvent ) { + element.attachEvent( 'on' + attach, handler ); + } +} + +/** + * Add a click event handler to an element + * + * @param Element element Element to add handler to + * @param callable handler Event handler callback + */ +function addClickHandler( element, handler ) { + addHandler( element, 'click', handler ); +} + +/** + * Removes an event handler from an element + * + * @param Element element Element to remove handler from + * @param String remove Event to remove + * @param callable handler Event handler callback to remove + */ +function removeHandler( element, remove, handler ) { + if( window.removeEventListener ) { + element.removeEventListener( remove, handler, false ); + } else if( window.detachEvent ) { + element.detachEvent( 'on' + remove, handler ); + } +} +//note: all skins should call runOnloadHook() at the end of html output, +// so the below should be redundant. It's there just in case. +hookEvent("load", runOnloadHook); diff --git a/milkymist-wiki/wiki/skins/monobook/audio.png b/milkymist-wiki/wiki/skins/monobook/audio.png new file mode 100644 index 0000000..1c56bdc Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/audio.png differ diff --git a/milkymist-wiki/wiki/skins/monobook/bullet.gif b/milkymist-wiki/wiki/skins/monobook/bullet.gif new file mode 100644 index 0000000..b43de48 Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/bullet.gif differ diff --git a/milkymist-wiki/wiki/skins/monobook/discussionitem_icon.gif b/milkymist-wiki/wiki/skins/monobook/discussionitem_icon.gif new file mode 100644 index 0000000..baec471 Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/discussionitem_icon.gif differ diff --git a/milkymist-wiki/wiki/skins/monobook/document.png b/milkymist-wiki/wiki/skins/monobook/document.png new file mode 100644 index 0000000..b48138e Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/document.png differ diff --git a/milkymist-wiki/wiki/skins/monobook/external.png b/milkymist-wiki/wiki/skins/monobook/external.png new file mode 100644 index 0000000..419c06f Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/external.png differ diff --git a/milkymist-wiki/wiki/skins/monobook/file_icon.gif b/milkymist-wiki/wiki/skins/monobook/file_icon.gif new file mode 100644 index 0000000..847f648 Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/file_icon.gif differ diff --git a/milkymist-wiki/wiki/skins/monobook/headbg.jpg b/milkymist-wiki/wiki/skins/monobook/headbg.jpg new file mode 100644 index 0000000..5491c6e Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/headbg.jpg differ diff --git a/milkymist-wiki/wiki/skins/monobook/lock_icon.gif b/milkymist-wiki/wiki/skins/monobook/lock_icon.gif new file mode 100644 index 0000000..8a87e28 Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/lock_icon.gif differ diff --git a/milkymist-wiki/wiki/skins/monobook/mail_icon.gif b/milkymist-wiki/wiki/skins/monobook/mail_icon.gif new file mode 100644 index 0000000..50a87a9 Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/mail_icon.gif differ diff --git a/milkymist-wiki/wiki/skins/monobook/main.css?195.css b/milkymist-wiki/wiki/skins/monobook/main.css?195.css new file mode 100644 index 0000000..7e5809b --- /dev/null +++ b/milkymist-wiki/wiki/skins/monobook/main.css?195.css @@ -0,0 +1,1537 @@ +/* +** MediaWiki 'monobook' style sheet for CSS2-capable browsers. +** Copyright Gabriel Wicke - http://wikidev.net/ +** License: GPL (http://www.gnu.org/copyleft/gpl.html) +** +** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John +** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, +** Michael Zeltner and Geir Bækholt) +** All you guys rock :) +*/ + +#column-content { + width: 100%; + float: right; + margin: 0 0 .6em -12.2em; + padding: 0; +} +#content { + margin: 2.8em 0 0 12.2em; + padding: 0 1em 1em 1em; + position: relative; + z-index: 2; +} +#column-one { + padding-top: 160px; +} +#content { + background: white; + color: black; + border: 1px solid #aaa; + border-right: none; + line-height: 1.5em; +} +/* the left column width is specified in class .portlet */ + +/* Font size: +** We take advantage of keyword scaling- browsers won't go below 9px +** More at http://www.w3.org/2003/07/30-font-size +** http://style.cleverchimp.com/font_size_intervals/altintervals.html +*/ + +body { + font: x-small sans-serif; + background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; + color: black; + margin: 0; + padding: 0; +} + +/* scale back up to a sane default */ +#globalWrapper { + font-size: 127%; + width: 100%; + margin: 0; + padding: 0; +} +.visualClear { + clear: both; +} + +/* general styles */ + +table { + font-size: 100%; + color: black; + /* we don't want the bottom borders of

s to be visible through + floated tables */ + background-color: white; +} +fieldset table { + /* but keep table layouts in forms clean... */ + background: none; +} +a { + text-decoration: none; + color: #002bb8; + background: none; +} +a:visited { + color: #5a3696; +} +a:active { + color: #faa700; +} +a:hover { + text-decoration: underline; +} +a.stub { + color: #772233; +} +a.new, #p-personal a.new { + color: #ba0000; +} +a.new:visited, #p-personal a.new:visited { + color: #a55858; +} + +img { + border: none; + vertical-align: middle; +} +p { + margin: .4em 0 .5em 0; + line-height: 1.5em; +} +p img { + margin: 0; +} + +hr { + height: 1px; + color: #aaa; + background-color: #aaa; + border: 0; + margin: .2em 0 .2em 0; +} + +h1, h2, h3, h4, h5, h6 { + color: black; + background: none; + font-weight: normal; + margin: 0; + padding-top: .5em; + padding-bottom: .17em; + border-bottom: 1px solid #aaa; +} +h1 { font-size: 188%; } +h1 .editsection { font-size: 53%; } +h2 { font-size: 150%; } +h2 .editsection { font-size: 67%; } +h3, h4, h5, h6 { + border-bottom: none; + font-weight: bold; +} +h3 { font-size: 132%; } +h3 .editsection { font-size: 76%; font-weight: normal; } +h4 { font-size: 116%; } +h4 .editsection { font-size: 86%; font-weight: normal; } +h5 { font-size: 100%; } +h5 .editsection { font-weight: normal; } +h6 { font-size: 80%; } +h6 .editsection { font-size: 125%; font-weight: normal; } + +ul { + line-height: 1.5em; + list-style-type: square; + margin: .3em 0 0 1.5em; + padding: 0; + list-style-image: url(bullet.gif); +} +ol { + line-height: 1.5em; + margin: .3em 0 0 3.2em; + padding: 0; + list-style-image: none; +} +li { + margin-bottom: .1em; +} +dt { + font-weight: bold; + margin-bottom: .1em; +} +dl { + margin-top: .2em; + margin-bottom: .5em; +} +dd { + line-height: 1.5em; + margin-left: 2em; + margin-bottom: .1em; +} + +fieldset { + border: 1px solid #2f6fab; + margin: 1em 0 1em 0; + padding: 0 1em 1em; + line-height: 1.5em; +} +fieldset.nested { + margin: 0 0 0.5em 0; + padding: 0 0.5em 0.5em; +} +legend { + padding: .5em; + font-size: 95%; +} +form { + border: none; + margin: 0; +} + +textarea { + width: 100%; + padding: .1em; +} + +input.historysubmit { + padding: 0 .3em .3em .3em !important; + font-size: 94%; + cursor: pointer; + height: 1.7em !important; + margin-left: 1.6em; +} +select { + vertical-align: top; +} +abbr, acronym, .explain { + border-bottom: 1px dotted black; + color: black; + background: none; + cursor: help; +} +q { + font-family: Times, "Times New Roman", serif; + font-style: italic; +} +/* disabled for now +blockquote { + font-family: Times, "Times New Roman", serif; + font-style: italic; +}*/ +code { + background-color: #f9f9f9; +} +pre { + padding: 1em; + border: 1px dashed #2f6fab; + color: black; + background-color: #f9f9f9; + line-height: 1.1em; +} + +/* +** the main content area +*/ + +#siteSub { + display: none; +} +#jump-to-nav { + display: none; +} + +#contentSub, #contentSub2 { + font-size: 84%; + line-height: 1.2em; + margin: 0 0 1.4em 1em; + color: #7d7d7d; + width: auto; +} +span.subpages { + display: block; +} + +/* Some space under the headers in the content area */ +#bodyContent h1, #bodyContent h2 { + margin-bottom: .6em; +} +#bodyContent h3, #bodyContent h4, #bodyContent h5 { + margin-bottom: .3em; +} +#firstHeading { + margin-bottom: .1em; + /* These two rules hack around bug 2013 (fix for more limited bug 11325). + When bug 2013 is fixed properly, they should be removed. */ + line-height: 1.2em; + padding-bottom: 0; +} + +/* user notification thing */ +.usermessage { + background-color: #ffce7b; + border: 1px solid #ffa500; + color: black; + font-weight: bold; + margin: 2em 0 1em; + padding: .5em 1em; + vertical-align: middle; +} +#siteNotice { + text-align: center; + font-size: 95%; + padding: 0 .9em; +} +#siteNotice p { + margin: 0; + padding: 0; +} +.success { + color: green; + font-size: larger; +} +.error { + color: red; + font-size: larger; +} +.errorbox, .successbox { + font-size: larger; + border: 2px solid; + padding: .5em 1em; + float: left; + margin-bottom: 2em; + color: #000; +} +.errorbox { + border-color: red; + background-color: #fff2f2; +} +.successbox { + border-color: green; + background-color: #dfd; +} +.errorbox h2, .successbox h2 { + font-size: 1em; + font-weight: bold; + display: inline; + margin: 0 .5em 0 0; + border: none; +} + +.catlinks { + border: 1px solid #aaa; + background-color: #f9f9f9; + padding: 5px; + margin-top: 1em; + clear: both; +} +/* currently unused, intended to be used by a metadata box +in the bottom-right corner of the content area */ +.documentDescription { + /* The summary text describing the document */ + font-weight: bold; + display: block; + margin: 1em 0; + line-height: 1.5em; +} +.documentByLine { + text-align: right; + font-size: 90%; + clear: both; + font-weight: normal; + color: #76797c; +} + +/* emulate center */ +.center { + width: 100%; + text-align: center; +} +*.center * { + margin-left: auto; + margin-right: auto; +} +/* small for tables and similar */ +.small, .small * { + font-size: 94%; +} +table.small { + font-size: 100%; +} + +/* +** content styles +*/ + +#toc, +.toc, +.mw-warning { + border: 1px solid #aaa; + background-color: #f9f9f9; + padding: 5px; + font-size: 95%; +} +#toc h2, +.toc h2 { + display: inline; + border: none; + padding: 0; + font-size: 100%; + font-weight: bold; +} +#toc #toctitle, +.toc #toctitle, +#toc .toctitle, +.toc .toctitle { + text-align: center; +} +#toc ul, +.toc ul { + list-style-type: none; + list-style-image: none; + margin-left: 0; + padding-left: 0; + text-align: left; +} +#toc ul ul, +.toc ul ul { + margin: 0 0 0 2em; +} +#toc .toctoggle, +.toc .toctoggle { + font-size: 94%; +} + +.mw-warning { + margin-left: 50px; + margin-right: 50px; + text-align: center; +} + +/* images */ +div.floatright, table.floatright { + clear: right; + float: right; + position: relative; + margin: 0 0 .5em .5em; + border: 0; +/* + border: .5em solid white; + border-width: .5em 0 .8em 1.4em; +*/ +} +div.floatright p { font-style: italic; } +div.floatleft, table.floatleft { + float: left; + clear: left; + position: relative; + margin: 0 .5em .5em 0; + border: 0; +/* + margin: .3em .5em .5em 0; + border: .5em solid white; + border-width: .5em 1.4em .8em 0; +*/ +} +div.floatleft p { font-style: italic; } +/* thumbnails */ +div.thumb { + margin-bottom: .5em; + border-style: solid; + border-color: white; + width: auto; +} +div.thumbinner { + border: 1px solid #ccc; + padding: 3px !important; + background-color: #f9f9f9; + font-size: 94%; + text-align: center; + overflow: hidden; +} +html .thumbimage { + border: 1px solid #ccc; +} +html .thumbcaption { + border: none; + text-align: left; + line-height: 1.4em; + padding: 3px !important; + font-size: 94%; +} +div.magnify { + float: right; + border: none !important; + background: none !important; +} +div.magnify a, div.magnify img { + display: block; + border: none !important; + background: none !important; +} +div.tright { + clear: right; + float: right; + border-width: .5em 0 .8em 1.4em; +} +div.tleft { + float: left; + clear: left; + margin-right: .5em; + border-width: .5em 1.4em .8em 0; +} +img.thumbborder { + border: 1px solid #dddddd; +} +.hiddenStructure { + display: none; +} + +/* +** classes for special content elements like town boxes +** intended to be referenced directly from the wiki src +*/ + +/* +** User styles +*/ +/* table standards */ +table.rimage { + float: right; + position: relative; + margin-left: 1em; + margin-bottom: 1em; + text-align: center; +} +.toccolours { + border: 1px solid #aaa; + background-color: #f9f9f9; + padding: 5px; + font-size: 95%; +} + +/* +** edit views etc +*/ +.special li { + line-height: 1.4em; + margin: 0; + padding: 0; +} + +/* +** keep the whitespace in front of the ^=, hides rule from konqueror +** this is css3, the validator doesn't like it when validating as css2 +*/ +#bodyContent a.external, +#bodyContent a[href ^="gopher://"] { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} +#bodyContent a[href ^="https://"], +.link-https { + background: url(lock_icon.gif) center right no-repeat; + padding-right: 16px; +} +#bodyContent a[href ^="mailto:"], +.link-mailto { + background: url(mail_icon.gif) center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="news://"] { + background: url(news_icon.png) center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="ftp://"], +.link-ftp { + background: url(file_icon.gif) center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="irc://"], +#bodyContent a.extiw[href ^="irc://"], +.link-irc { + background: url(discussionitem_icon.gif) center right no-repeat; + padding-right: 18px; +} +#bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"], +#bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"], +#bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"], +#bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"], +#bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"], +#bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"], +.link-audio { + background: url("audio.png") center right no-repeat; + padding-right: 13px; +} +#bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"], +#bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"], +#bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"], +#bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"], +.link-video { + background: url("video.png") center right no-repeat; + padding-right: 13px; +} +#bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"], +#bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"], +#bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"], +.link-document { + background: url("document.png") center right no-repeat; + padding-right: 12px; +} + +/* disable interwiki styling */ +#bodyContent a.extiw, +#bodyContent a.extiw:active { + color: #36b; + background: none; + padding: 0; +} +#bodyContent a.external { + color: #36b; +} +/* this can be used in the content area to switch off +special external link styling */ +#bodyContent .plainlinks a { + background: none !important; + padding: 0 !important; +} +/* +** Structural Elements +*/ + +/* +** general portlet styles (elements in the quickbar) +*/ +.portlet { + border: none; + margin: 0 0 .5em; + padding: 0; + float: none; + width: 11.6em; + overflow: hidden; +} +.portlet h4 { + font-size: 95%; + font-weight: normal; + white-space: nowrap; +} +.portlet h5 { + background: transparent; + padding: 0 1em 0 .5em; + display: inline; + height: 1em; + text-transform: lowercase; + font-size: 91%; + font-weight: normal; + white-space: nowrap; +} +.portlet h6 { + background: #ffae2e; + border: 1px solid #2f6fab; + border-style: solid solid none solid; + padding: 0 1em 0 1em; + text-transform: lowercase; + display: block; + font-size: 1em; + height: 1.2em; + font-weight: normal; + white-space: nowrap; +} +.pBody { + font-size: 95%; + background-color: white; + color: black; + border-collapse: collapse; + border: 1px solid #aaa; + padding: 0 .8em .3em .5em; +} +.portlet h1, +.portlet h2, +.portlet h3, +.portlet h4 { + margin: 0; + padding: 0; +} +.portlet ul { + line-height: 1.5em; + list-style-type: square; + list-style-image: url(bullet.gif); + font-size: 95%; +} +.portlet li { + padding: 0; + margin: 0; +} + +/* +** Logo properties +*/ + +#p-logo { + top: 0; + left: 0; + position: absolute; /*needed to use z-index */ + z-index: 3; + height: 155px; + width: 12em; + overflow: visible; +} +#p-logo h5 { + display: none; +} +#p-logo a, +#p-logo a:hover { + display: block; + height: 155px; + width: 12.2em; + background-repeat: no-repeat; + background-position: 35% 50% !important; + text-decoration: none; +} + +/* +** Search portlet +*/ +#p-search { + position: relative; + z-index: 3; +} +input.searchButton { + margin-top: 1px; + font-size: 95%; +} +#searchGoButton { + padding-left: .5em; + padding-right: .5em; + font-weight: bold; +} +#searchInput { + width: 10.9em; + margin: 0; + font-size: 95%; +} +#p-search .pBody { + padding: .5em .4em .4em .4em; + text-align: center; +} + +/* +** the personal toolbar +*/ +#p-personal { + position: absolute; + left: 0; + top: 0; + z-index: 0; +} +#p-personal { + width: 100%; + white-space: nowrap; + padding: 0; + margin: 0; + border: none; + background: none; + overflow: visible; + line-height: 1.2em; +} +#p-personal h5 { + display: none; +} +#p-personal .portlet, +#p-personal .pBody { + z-index: 0; + padding: 0; + margin: 0; + border: none; + overflow: visible; + background: none; +} +/* this is the ul contained in the portlet */ +#p-personal ul { + border: none; + line-height: 1.4em; + color: #2f6fab; + padding: 0 2em 0 3em; + margin: 0; + text-align: right; + list-style: none; + z-index: 0; + background: none; + cursor: default; +} +#p-personal li { + z-index: 0; + border: none; + padding: 0; + display: inline; + color: #2f6fab; + margin-left: 1em; + line-height: 1.2em; + background: none; +} +#p-personal li a { + text-decoration: none; + color: #005896; + padding-bottom: .2em; + background: none; +} +#p-personal li a:hover { + background-color: white; + padding-bottom: .2em; + text-decoration: none; +} +#p-personal li.active a:hover { + background-color: transparent; +} +/* the icon in front of the user name, single quotes +in bg url to hide it from iemac */ +li#pt-userpage, +li#pt-anonuserpage, +li#pt-login { + background: url(user.gif) top left no-repeat; + padding-left: 20px; + text-transform: none; +} +#p-personal ul { + text-transform: lowercase; +} +#p-personal li.active { + font-weight: bold; +} +/* +** the page-related actions- page/talk, edit etc +*/ +#p-cactions { + position: absolute; + top: 1.3em; + left: 11.5em; + margin: 0; + white-space: nowrap; + width: 76%; + line-height: 1.1em; + overflow: visible; + background: none; + border-collapse: collapse; + padding-left: 1em; + list-style: none; + font-size: 95%; +} +#p-cactions ul { + list-style: none; +} +#p-cactions li { + display: inline; + border: 1px solid #aaa; + border-bottom: none; + padding: 0 0 .1em 0; + margin: 0 .3em 0 0; + overflow: visible; + background: white; +} +#p-cactions li.selected { + border-color: #fabd23; + padding: 0 0 .2em 0; + font-weight: bold; +} +#p-cactions li a { + background-color: #fbfbfb; + color: #002bb8; + border: none; + padding: 0 .8em .3em; + position: relative; + z-index: 0; + margin: 0; + text-decoration: none; +} +#p-cactions li.selected a { + z-index: 3; + padding: 0 1em .2em!important; + background-color: white; +} +#p-cactions .new a { + color: #ba0000; +} +#p-cactions li a:hover { + z-index: 3; + text-decoration: none; + background-color: white; +} +#p-cactions h5 { + display: none; +} +#p-cactions li.istalk { + margin-right: 0; +} +#p-cactions li.istalk a { + padding-right: .5em; +} +#p-cactions #ca-addsection a { + padding-left: .4em; + padding-right: .4em; +} +/* offsets to distinguish the tab groups */ +li#ca-talk { + margin-right: 1.6em; +} +li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { + margin-left: 1.6em; +} +#p-cactions .pBody { + font-size: 1em; + background-color: transparent; + color: inherit; + border-collapse: inherit; + border: 0; + padding: 0; +} +#p-cactions .hiddenStructure { + display: none; +} +#p-cactions li a { + text-transform: lowercase; +} + +#p-lang { + position: relative; + z-index: 3; +} + +/* TODO: #t-iscite is only used by the Cite extension, come up with some + * system which allows extensions to add to this file on the fly + */ +#t-ispermalink, #t-iscite { + color: #999; +} +/* +** footer +*/ +#footer { + background-color: white; + border-top: 1px solid #fabd23; + border-bottom: 1px solid #fabd23; + margin: .6em 0 1em 0; + padding: .4em 0 1.2em 0; + text-align: center; + font-size: 90%; +} +#footer li { + display: inline; + margin: 0 1.3em; +} +#f-poweredbyico, #f-copyrightico { + margin: 0 8px; + position: relative; + top: -2px; /* Bump it up just a tad */ +} +#f-poweredbyico { + float: right; + height: 1%; +} +#f-copyrightico { + float: left; + height: 1%; +} + +/* js pref toc */ +#preftoc { + margin: 0; + padding: 0; + width: 100%; + clear: both; +} +#preftoc li { + background-color: #f0f0f0; + color: #000; +} +#preftoc li { + margin: 1px -2px 1px 2px; + float: left; + padding: 2px 0 3px 0; + border: 1px solid #fff; + border-right-color: #716f64; + border-bottom: 0; + position: relative; + white-space: nowrap; + list-style-type: none; + list-style-image: none; + z-index: 3; +} +#preftoc li.selected { + font-weight: bold; + background-color: #f9f9f9; + border: 1px solid #aaa; + border-bottom: none; + cursor: default; + top: 1px; + padding-top: 2px; + margin-right: -3px; +} +#preftoc > li.selected { + top: 2px; +} +#preftoc a, +#preftoc a:active { + display: block; + color: #000; + padding: 0 .7em; + position: relative; + text-decoration: none; +} +#preftoc li.selected a { + cursor: default; + text-decoration: none; +} +#prefcontrol { + padding-top: 2em; + clear: both; +} +#preferences { + margin: 0; + border: 1px solid #aaa; + clear: both; + padding: 1.5em; + background-color: #F9F9F9; +} +.prefsection { + border: none; + padding: 0; + margin: 0; +} +.prefsection fieldset { + border: 1px solid #aaa; + float: left; + margin-right: 2em; +} +.prefsection legend { + font-weight: bold; +} +.prefsection table, .prefsection legend { + background-color: #F9F9F9; +} +.mainLegend { + display: none; +} +div.prefsectiontip { + font-size: x-small; + padding: .2em 2em; + color: #666; +} +.btnSavePrefs { + font-weight: bold; + padding-left: .3em; + padding-right: .3em; +} + +.preferences-login { + clear: both; + margin-bottom: 1.5em; +} + +.prefcache { + font-size: 90%; + margin-top: 2em; +} + +div#userloginForm form, +div#userlogin form#userlogin2 { + margin: 0 3em 1em 0; + border: 1px solid #aaa; + clear: both; + padding: 1.5em 2em; + background-color: #f9f9f9; + float: left; +} +.rtl div#userloginForm form, +.rtl div#userlogin form#userlogin2 { + float: right; +} + +div#userloginForm table, +div#userlogin form#userlogin2 table { + background-color: #f9f9f9; +} + +div#userloginForm h2, +div#userlogin form#userlogin2 h2 { + padding-top: 0; +} + +div#userlogin .captcha, +div#userloginForm .captcha { + border: 1px solid #bbb; + padding: 1.5em 2em; + background-color: white; +} + +#loginend, #signupend { + clear: both; +} + +#userloginprompt, #languagelinks { + font-size: 85%; +} + +#login-sectiontip { + font-size: 85%; + line-height: 1.2; + padding-top: 2em; +} + +#userlogin .loginText, #userlogin .loginPassword { + width: 12em; +} + +#userloginlink a, #wpLoginattempt, #wpCreateaccount { + font-weight: bold; +} + +/* +** IE/Mac fixes, hope to find a validating way to move this +** to a separate stylesheet. This would work but doesn't validate: +** @import("IEMacFixes.css"); +*/ +/* tabs: border on the a, not the div */ +* > html #p-cactions li { border: none; } +* > html #p-cactions li a { + border: 1px solid #aaa; + border-bottom: none; +} +* > html #p-cactions li.selected a { border-color: #fabd23; } +/* footer icons need a fixed width */ +* > html #f-poweredbyico, +* > html #f-copyrightico { width: 88px; } +* > html #bodyContent, +* > html #bodyContent pre { + overflow-x: auto; + width: 100%; + padding-bottom: 25px; +} + +/* more IE fixes */ +/* float/negative margin brokenness */ +* html #footer {margin-top: 0;} +* html #column-content { + display: inline; + margin-bottom: 0; +} +* html div.editsection { font-size: smaller; } +#pagehistory li.selected { position: relative; } + +/* Mac IE 5.0 fix; floated content turns invisible */ +* > html #column-content { + float: none; +} +* > html #column-one { + position: absolute; + left: 0; + top: 0; +} +* > html #footer { + margin-left: 13.2em; +} +.redirectText { + font-size: 150%; + margin: 5px; +} + +.printfooter { + display: none; +} + +.not-patrolled { + background-color: #ffa; +} +div.patrollink { + clear: both; + font-size: 75%; + text-align: right; +} +span.newpage, span.minor, span.bot { + font-weight: bold; +} +span.unpatrolled { + font-weight: bold; + color: red; +} + +.sharedUploadNotice { + font-style: italic; +} + +span.updatedmarker { + color: black; + background-color: #0f0; +} + +table.gallery { + border: 1px solid #ccc; + margin: 2px; + padding: 2px; + background-color: white; +} + +table.gallery tr { + vertical-align: top; +} + +table.gallery td { + vertical-align: top; + background-color: #f9f9f9; + border: solid 2px white; +} +/* Keep this temporarily so that cached pages will display right */ +table.gallery td.galleryheader { + text-align: center; + font-weight: bold; +} +table.gallery caption { + font-weight: bold; +} + +div.gallerybox { + margin: 2px; +} + +div.gallerybox div.thumb { + text-align: center; + border: 1px solid #ccc; + margin: 2px; +} + +div.gallerytext { + overflow: hidden; + font-size: 94%; + padding: 2px 4px; +} + +span.comment { + font-style: italic; +} + +span.changedby { + font-size: 95%; +} + +.previewnote { + text-indent: 3em; + color: #c00; + border-bottom: 1px solid #aaa; + padding-bottom: 1em; + margin-bottom: 1em; +} + +.previewnote p { + margin: 0; + padding: 0; +} + +.editExternally { + border: 1px solid gray; + background-color: #ffffff; + padding: 3px; + margin-top: 0.5em; + float: left; + font-size: small; + text-align: center; +} +.editExternallyHelp { + font-style: italic; + color: gray; +} + +.toggle { + margin-left: 2em; + text-indent: -2em; +} + +/* Classes for EXIF data display */ +table.mw_metadata { + font-size: 0.8em; + margin-left: 0.5em; + margin-bottom: 0.5em; + width: 300px; +} + +table.mw_metadata caption { + font-weight: bold; +} + +table.mw_metadata th { + font-weight: normal; +} + +table.mw_metadata td { + padding: 0.1em; +} + +table.mw_metadata { + border: none; + border-collapse: collapse; +} + +table.mw_metadata td, table.mw_metadata th { + text-align: center; + border: 1px solid #aaaaaa; + padding-left: 0.1em; + padding-right: 0.1em; +} + +table.mw_metadata th { + background-color: #f9f9f9; +} + +table.mw_metadata td { + background-color: #fcfcfc; +} + +table.collapsed tr.collapsable { + display: none; +} + + +/* filetoc */ +ul#filetoc { + text-align: center; + border: 1px solid #aaaaaa; + background-color: #f9f9f9; + padding: 5px; + font-size: 95%; + margin-bottom: 0.5em; + margin-left: 0; + margin-right: 0; +} + +#filetoc li { + display: inline; + list-style-type: none; + padding-right: 2em; +} + +input#wpSummary { + width: 80%; +} + +/* @bug 1714 */ +input#wpSave, input#wpDiff { + margin-right: 0.33em; +} + +#wpSave { + font-weight: bold; +} + +/* Classes for article validation */ + +table.revisionform_default { + border: 1px solid #000000; +} + +table.revisionform_focus { + border: 1px solid #000000; + background-color:#00BBFF; +} + +tr.revision_tr_default { + background-color:#EEEEEE; +} + +tr.revision_tr_first { + background-color:#DDDDDD; +} + +p.revision_saved { + color: green; + font-weight:bold; +} + +#mw_trackbacks { + border: solid 1px #bbbbff; + background-color: #eeeeff; + padding: 0.2em; +} + + +/* Allmessages table */ + +#allmessagestable th { + background-color: #b2b2ff; +} + +#allmessagestable tr.orig { + background-color: #ffe2e2; +} + +#allmessagestable tr.new { + background-color: #e2ffe2; +} + +#allmessagestable tr.def { + background-color: #f0f0ff; +} + + +/* noarticletext */ +div.noarticletext { + border: 1px solid #ccc; + background: #fff; + padding: .2em 1em; + color: #000; +} + +div#searchTargetContainer { + left: 10px; + top: 10px; + width: 90%; + background: white; +} + +div#searchTarget { + padding: 3px; + margin: 5px; + background: #F0F0F0; + border: solid 1px blue; +} + +div#searchTarget ul li { + list-style: none; +} + +div#searchTarget ul li:before { + color: orange; + content: "\00BB \0020"; +} + +div#searchTargetHide { + float:right; + border:solid 1px black; + background:#DCDCDC; + padding:2px; +} + +#powersearch p { + margin-top:0px; +} + +div.multipageimagenavbox { + border: solid 1px silver; + padding: 4px; + margin: 1em; + background: #f0f0f0; +} + +div.multipageimagenavbox div.thumb { + border: none; + margin-left: 2em; + margin-right: 2em; +} + +div.multipageimagenavbox hr { + margin: 6px; +} + +table.multipageimage td { + text-align: center; +} + +/** Special:Version */ + +table#sv-ext, table#sv-hooks, table#sv-software { + margin: 1em; + padding:0em; +} + +#sv-ext td, #sv-hooks td, #sv-software td, +#sv-ext th, #sv-hooks th, #sv-software th { + border: 1px solid #A0A0A0; + padding: 0 0.15em 0 0.15em; +} +#sv-ext th, #sv-hooks th, #sv-software th { + background-color: #F0F0F0; + color: black; + padding: 0 0.15em 0 0.15em; +} +tr.sv-space{ + height: 0.8em; + border:none; +} +tr.sv-space td { display: none; } + +/* + Table pager (e.g. Special:Imagelist) + - remove underlines from the navigation link + - collapse borders + - set the borders to outsets (similar to Special:Allmessages) + - remove line wrapping for all td and th, set background color + - restore line wrapping for the last two table cells (description and size) +*/ +.TablePager { min-width: 80%; } +.TablePager_nav a { text-decoration: none; } +.TablePager { border-collapse: collapse; } +.TablePager, .TablePager td, .TablePager th { + border: 1px solid #aaaaaa; + padding: 0 0.15em 0 0.15em; +} +.TablePager th { background-color: #eeeeff } +.TablePager td { background-color: #ffffff } +.TablePager tr:hover td { background-color: #eeeeff } + +.imagelist td, .imagelist th { white-space: nowrap } +.imagelist .TablePager_col_links { background-color: #eeeeff } +.imagelist .TablePager_col_img_description { white-space: normal } +.imagelist th.TablePager_sort { background-color: #ccccff } + +.templatesUsed { margin-top: 1.5em; } + +.mw-summary-preview { + margin: 0.1em 0; +} + +/* Friendlier slave lag warnings */ +div.mw-lag-warn-normal, +div.mw-lag-warn-high { + padding: 3px; + text-align: center; + margin: 3px auto; +} +div.mw-lag-warn-normal { + border: 1px solid #FFCC66; + background-color: #FFFFCC; +} +div.mw-lag-warn-high { + font-weight: bold; + border: 2px solid #FF0033; + background-color: #FFCCCC; +} + +.MediaTransformError { + background-color: #ccc; + padding: 0.1em; +} +.MediaTransformError td { + text-align: center; + vertical-align: middle; + font-size: 90%; +} + +/** Special:Search stuff */ +div#mw-search-interwiki-caption { + text-align: center; + font-weight: bold; + font-size: 95%; +} + +.mw-search-interwiki-project { + font-size: 97%; + text-align: left; + padding-left: 0.2em; + padding-right: 0.15em; + padding-bottom: 0.2em; + padding-top: 0.15em; + background: #cae8ff; +} + +/* God-damned hack for the crappy layout */ +.os-suggest { + font-size: 127%; +} diff --git a/milkymist-wiki/wiki/skins/monobook/news_icon.png b/milkymist-wiki/wiki/skins/monobook/news_icon.png new file mode 100644 index 0000000..dd1541d Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/news_icon.png differ diff --git a/milkymist-wiki/wiki/skins/monobook/user.gif b/milkymist-wiki/wiki/skins/monobook/user.gif new file mode 100644 index 0000000..c9c9ab9 Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/user.gif differ diff --git a/milkymist-wiki/wiki/skins/monobook/video.png b/milkymist-wiki/wiki/skins/monobook/video.png new file mode 100644 index 0000000..38103da Binary files /dev/null and b/milkymist-wiki/wiki/skins/monobook/video.png differ