Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, 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
@dvdkhlng 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
@sbourdeauducq sbourdeauducq README: update 1631e96
@sbourdeauducq sbourdeauducq README: update directory structure 3b53e8f
@sbourdeauducq sbourdeauducq libfpvm: remove broken depend target baaf2f3
@sbourdeauducq 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
@wpwrak wpwrak softusb-input/Makefile: minor cleanup (whitespace and .PHONY) ad89aec
Commits on Mar 02, 2012
@wpwrak wpwrak tools/asm/pfpu: renamed M1_{HOST,USER,PW} to MM_* and removed defaults
Following discussion on #milkymist, the names are now "official".
@wpwrak wpwrak softusb-input/Makefile: added target "upload" to upload softusb-input…
….bin to M1

Uses ftp-upload from the eponymous package.
@wpwrak wpwrak Merge branch 'master' of f1a0886
@wpwrak 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.
@wpwrak 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
@wpwrak 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.
@wpwrak 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.
@wpwrak 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
@wpwrak 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%.
@wpwrak 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%
@wpwrak wpwrak softusb: when exhausting retries, reset the device up to three times
This brings the LV3 success rate to 50/50 = 100%.
@wpwrak wpwrak softusb: use #defines instead of open-coded retry constants 56e57ba
@wpwrak wpwrak Merge branch 'hid' of into hid 7696bf9
Commits on Mar 10, 2012
@xiangfu xiangfu softusb-input debug: fix hexdump format 5487292
Commits on Mar 21, 2012
@mwalle 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 <>
@mwalle mwalle flterm: report usage errors to the user
Don't silently ignore errors while parsing the parameters.

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

Signed-off-by: Michael Walle <>
@mwalle mwalle softusb: convert to non blocking assignments
Signed-off-by: Michael Walle <>
Commits on Apr 16, 2012
@xiangfu xiangfu Merge branch 'master' into hid b5de0d0
@mwalle 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 <>
@mwalle 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 <>
@mwalle 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 <>
@mwalle mwalle navre: add dbg_pc port to test benches
This will prevent some verilog warnings.

Signed-off-by: Michael Walle <>
@mwalle 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
@mwalle mwalle navre: convert ALU seq process to NBA where possible
Introduce temporary signals for blocking assignments where needed.

Signed-off-by: Michael Walle <>
@mwalle 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
@mwalle 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 xiangfu Merge branch 'hid' f2b0568
Commits on May 21, 2012
@sbourdeauducq sbourdeauducq bios/boot: fix off by one error in SFL magic string 889a57c
Commits on May 27, 2012
@sbourdeauducq sbourdeauducq software/libbase: fix memcpy handling of buffers with differing align…
@sbourdeauducq sbourdeauducq software/libbase: memcpy: same with 2 alignment c7ace9a
Commits on Jun 04, 2012
@mwalle mwalle softusb: interrrupt support for navre
Signed-off-by: Michael Walle <>
Commits on Nov 14, 2012
@mwalle 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 <>
@mwalle 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 <>
@mwalle mwalle lm32: remove unneeded parameter in lm32_dp_ram
addr_depth can be computed by addr_width.

Signed-off-by: Michael Walle <>
@mwalle mwalle lm32: fix documentation style
Signed-off-by: Michael Walle <>
@mwalle mwalle lm32: add lm32 test bench
Signed-off-by: Michael Walle <>
@mwalle mwalle lm32: clear memories in testbench
Signed-off-by: Michael Walle <>
@mwalle mwalle lm32: add pipeline tracing to testbench
Signed-off-by: Michael Walle <>
@mwalle mwalle lm32: add simple pipe test program
Signed-off-by: Michael Walle <>
@mwalle 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 <>
@mwalle 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 <>
@mwalle 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
@mwalle mwalle lm32: fix test bench typo
Signed-off-by: Michael Walle <>
Commits on Nov 30, 2012
@mwalle 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
@mwalle mwalle lm32: move into submodule
Move the lm32 sources into a submodule.

Signed-off-by: Michael Walle <>
@sbourdeauducq sbourdeauducq remove LICENSE.LATTICE (now into lm32 submodule) 5cec7ea
Commits on Jan 08, 2013
@sbourdeauducq sbourdeauducq softusb/navre: use localparam
Based on patch by Florent Kermarrec
@sbourdeauducq 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
@ldoolitt 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