Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

We’re showing branches in this repository, but you can also compare across forks.

base fork: fallen/milkymist-mmu
base: 0a5dc0899af0^
head fork: fallen/milkymist-mmu
compare: 819a4120699b
Commits on Feb 08, 2012
David Kühling dvdkhlng fix 'make install' target
Just a slight fix.  Don't like non-distribution stuff to populate /usr/bin


Xiangfu Liu pass ep_status to ep process 6587145
Xiangfu Liu softusb-input: add GET_HID_REPORT_DESCRIPTOR support
  so far validate_report_descriptor is empty
Xiangfu Liu cleanup code style, remove space after if be0f275
Xiangfu Liu since we handle the report ID. modify Rii RF mini-keyboard fit it b05e7e7
Commits on Feb 10, 2012
fpgaminer fpgaminer improvement for libbase uart.c
  uart_isr, when applicable, will reset CSR_UART_STAT after it has
  written new data to the UART module. If the UART module is able
  to finish that request before uart_isr writes to CSR_UART_STAT,
  then uart_isr will end up clearing the wrong event. This prevents
  uart_isr from ever being called again, and stalls all outgoing data
Commits on Feb 21, 2012
Xiangfu Liu VGA: fix the vsync pulses 71f9ba5
Commits on Feb 23, 2012
Xiangfu Liu Makefile: add sdk-install, tools-install 12368fb
Commits on Feb 24, 2012
Xiangfu Liu adjust the map -t from 2 to 20 fit for ISE 13.4 72d30fa
Sébastien Bourdeauducq sbourdeauducq README: update 1631e96
Sébastien Bourdeauducq sbourdeauducq README: update directory structure 3b53e8f
Sébastien Bourdeauducq sbourdeauducq libfpvm: remove broken depend target baaf2f3
Sébastien Bourdeauducq sbourdeauducq softusb-input: make generated include installable 6bc8e02
Commits on Mar 01, 2012
Xiangfu Liu Makefile: install softusb-input to sdk-install f0936ed
Xiangfu Liu pass ep_status to ep process 92e0be4
Xiangfu Liu softusb-input: add GET_HID_REPORT_DESCRIPTOR support
  so far validate_report_descriptor is empty
Xiangfu Liu cleanup code style, remove space after if 456091e
Xiangfu Liu since we handle the report ID. modify Rii RF mini-keyboard fit it f0f9e93
Werner Almesberger wpwrak softusb-input/Makefile: minor cleanup (whitespace and .PHONY) ad89aec
Commits on Mar 02, 2012
Werner Almesberger wpwrak tools/asm/pfpu: renamed M1_{HOST,USER,PW} to MM_* and removed defaults
Following discussion on #milkymist, the names are now "official".
Werner Almesberger wpwrak softusb-input/Makefile: added target "upload" to upload softusb-input…
….bin to M1

Uses ftp-upload from the eponymous package.
Werner Almesberger wpwrak Merge branch 'master' of f1a0886
Werner Almesberger wpwrak softusb: added access to Navre's PC via CSR
This is for debugging. Removed reading back the reset status via CSR,
since it seems not very useful and we don't have to decode the address
this way.
Werner Almesberger wpwrak softusb: added the usual set of -W... flags and corrected code accord…

The problem were:

- missing "void" in function declarations in main.c

- debug.c didn't include debug.h

None of these caused actual malfunction.
Commits on Mar 03, 2012
Werner Almesberger wpwrak softusb/navre.ld: change LENGTH of data section from 32 kB to 8 kB
This doesn't affect the code to currently generate. Just removes a
bit of potentially misleading information.
Werner Almesberger wpwrak softusb: disable RX timeout message in usb_in
We got a HUGE number of these with full-speed devices, badly spamming
the diagnostic output.

Note that this change may reduce the probability of successful
enumeration: with the timeout message, 36/50 = 72% unplug-reset-plug
cycles succeeded with LV3, while without the message, only 40/75 =
53% did.
Werner Almesberger wpwrak softusb: don't send SOF while in full-speed bus reset
We started sending SOF a little too early, making it impossible to
reset the bus without physical unplugging.

Note that resetting an LV3 via unplug-usb_load-plug leads to
successful enumeration with probability 40/75 = 53% while only
usb_load yields 23/50 = 46%.

This also introduces a failure mode not seen before where the
LV3 enumerates ("Found MIDI") but still doesn't communicate.
Subsequent bus resets are unsuccessful. Plug cycling helps.
Commits on Mar 04, 2012
Werner Almesberger wpwrak softusb: fix two typos, one of them breaking some error detection
If the OUT token to end a data phase wasn't ack'ed, we didn't notice.

This still leaves the LV3 success rate at 13/25 = 52%.
Werner Almesberger wpwrak softusb: limit IN/OUT retries in control_transfer
If hitting persistent timeouts or an unresponsive device, we could
loop forever. This would hang the entire USB subsystem, also for any
devices on the other port. Also unplugging wouldn't help. Only a
reboot or - lately - reloading the USB firmware would get out of this.

Parameter stability:

Retry limit for main data phase
|    Retry limit for the IN/OUT ending it
|    |    LV3 successes
|    |    |
 50   10  13/25 = 52%
100   10  23/50 = 46%
250   10  12/25 = 48%
250  100  29/50 = 58%
Werner Almesberger wpwrak softusb: when exhausting retries, reset the device up to three times
This brings the LV3 success rate to 50/50 = 100%.
Werner Almesberger wpwrak softusb: use #defines instead of open-coded retry constants 56e57ba
Werner Almesberger wpwrak Merge branch 'hid' of into hid 7696bf9
Commits on Mar 10, 2012
Xiangfu Liu xiangfu softusb-input debug: fix hexdump format 5487292
Commits on Mar 21, 2012
Michael Walle mwalle flterm: add speed option
Drop doublerate parameter and replace it with a generic speed parameter.
Additionally, on linux you can supply any (non-standard) baudrate.

Signed-off-by: Michael Walle <>
Michael Walle mwalle flterm: report usage errors to the user
Don't silently ignore errors while parsing the parameters.

Signed-off-by: Michael Walle <>
Sébastien Bourdeauducq sbourdeauducq Bump version numbers 6856967
Commits on Apr 03, 2012
jpbonn jpbonn Added note showing clang usage for compiling. 1ca596d
Werner Almesberger wpwrak include.mak: wrapped long line introduced by previous commit 0cf6156
Commits on Apr 08, 2012
Michael Walle mwalle fix compiler warnings
Signed-off-by: Michael Walle <>
Michael Walle mwalle enable -Werror flag by default
Signed-off-by: Michael Walle <>
Michael Walle mwalle bios: only build mkmmimg tool
Signed-off-by: Michael Walle <>
Michael Walle mwalle softusb: remap timer to 0x20..0x23
That way we have more registers addresses left for the SIE module.

Signed-off-by: Michael Walle <>
Michael Walle mwalle softusb: convert to non blocking assignments
Signed-off-by: Michael Walle <>
Commits on Apr 16, 2012
Xiangfu Liu xiangfu Merge branch 'master' into hid b5de0d0
Michael Walle mwalle Use PLLs instead of DCMs
Use two chained PLLs to generate all needed clocks. Besides lower clock
jitter, this makes it possible to switch the USB clock to 72 MHz.

Signed-off-by: Michael Walle <>
Michael Walle mwalle Switch USB clock to 72MHz
Increase the USB core frequency by 50%. While the TX side needs just simple
clock enable tweaks, the RX side needs additional states in the DPLL and
EOP state machine.

The two DPLL main transitions paths (1,3,2,0) and (5,7,6,4) are both
extended by two states - (9,a) and (d,e). The state encoding has been
chosen to match the dpll_ce logic (eg. bit 1 is 0 for clock low and bit 1
is 1 for clock high).

The EOP SM just need two additional SE0 sample states.

For further information please refer to the USB whitepaper
  Designing a robust USB serial interface engine

Signed-off-by: Michael Walle <>
Michael Walle mwalle softusb-input: adjust SOF timer
Since the core now runs with 72MHz, we have to adjust the timer value.

Signed-off-by: Michael Walle <>
Michael Walle mwalle navre: add dbg_pc port to test benches
This will prevent some verilog warnings.

Signed-off-by: Michael Walle <>
Michael Walle mwalle softusb: fix io_do width
The IO data path is only 8 bit wide.

Signed-off-by: Michael Walle <>
Commits on Apr 19, 2012
Michael Walle mwalle navre: convert ALU seq process to NBA where possible
Introduce temporary signals for blocking assignments where needed.

Signed-off-by: Michael Walle <>
Michael Walle mwalle softusb: simplify test makefile
Use pattern rules for common targets. This way future test benches won't
have to touch the Makefile anymore.

Signed-off-by: Michael Walle <>
Commits on May 10, 2012
Michael Walle mwalle navre: fix missing NBA conversion
One blocking assignment was still there. Convert it.

Signed-off-by: Michael Walle <>
Commits on May 14, 2012
Xiangfu Liu xiangfu Merge branch 'hid' f2b0568
Commits on May 21, 2012
Sébastien Bourdeauducq sbourdeauducq bios/boot: fix off by one error in SFL magic string 889a57c
Commits on May 27, 2012
Sébastien Bourdeauducq sbourdeauducq software/libbase: fix memcpy handling of buffers with differing align…
Sébastien Bourdeauducq sbourdeauducq software/libbase: memcpy: same with 2 alignment c7ace9a
Commits on Jun 04, 2012
Michael Walle mwalle softusb: interrrupt support for navre
Signed-off-by: Michael Walle <>
Commits on Nov 14, 2012
Michael Walle mwalle lm32: replace clogb2 by builtin $clog2
This function is fixed in ISE since version 14.1 (see AR #44586). If the
builtin function is used, the design can be simulated with Icarus Verilog.

Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: rename mem array in lm32_dp_ram
Be compatible with original proprietary DP RAM instantiation. This is
needed for simulation, where r0 is initialized to zero in lm32_cpu.v.

Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: remove unneeded parameter in lm32_dp_ram
addr_depth can be computed by addr_width.

Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: fix documentation style
Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: add lm32 test bench
Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: clear memories in testbench
Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: add pipeline tracing to testbench
Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: add simple pipe test program
Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: split lm32_include.v
Split lm32_include.v into common defines and actual processor
configuration. Put the first module into the rtl/ directory.

Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: replace $clog2 with macro
Unfortunately, XST does not support $clog2 with the localparam keyword
(the parameter keyword works just fine). Define a macro which replaces the
call with a constant function.

This commit can be reverted if the bug in XST is fixed.

Signed-off-by: Michael Walle <>
Michael Walle mwalle lm32: fix test bench
If simulation run with caches disabled, the test bench will throw errors.
Fix this.

Signed-off-by: Michael Walle <>
Commits on Nov 28, 2012
Michael Walle mwalle lm32: fix test bench typo
Signed-off-by: Michael Walle <>
Commits on Nov 30, 2012
Michael Walle mwalle lm32: fix watchpoints
The wp_match_n vector is off by one. Which results in undefined states, at
least in simulation.

Signed-off-by: Michael Walle <>
Commits on Dec 17, 2012
Michael Walle mwalle lm32: move into submodule
Move the lm32 sources into a submodule.

Signed-off-by: Michael Walle <>
Sébastien Bourdeauducq sbourdeauducq remove LICENSE.LATTICE (now into lm32 submodule) 5cec7ea
Commits on Jan 08, 2013
Sébastien Bourdeauducq sbourdeauducq softusb/navre: use localparam
Based on patch by Florent Kermarrec
Sébastien Bourdeauducq sbourdeauducq softusb/navre: fix instruction decoder
Based on patch by Florent Kermarrec
Commits on Jan 31, 2013
kamino kamino Makefile: fix 'make clean' rules to use BOARD instead of hardcoded mi…
Commits on Feb 01, 2013
Yann Sionneau Merge pull request #2 from kamino/master
Update Makefile
Commits on May 13, 2013
Larry Doolittle ldoolitt pfpu/test: keep up with pipeline length changes 711b989
Commits on Dec 04, 2013
Yann Sionneau [WIP] Add support for Address Space ID (ASID) to D-TLB in Milkymist SoC 819a412