Commits on Mar 4, 2012
  1. softusb: when exhausting retries, reset the device up to three times

    This brings the LV3 success rate to 50/50 = 100%.
    wpwrak committed Mar 4, 2012
  2. 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 committed Mar 4, 2012
  3. 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 committed Mar 4, 2012
Commits on Mar 3, 2012
  1. 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.
    wpwrak committed Mar 3, 2012
  2. 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 committed Mar 3, 2012
  3. 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 committed Mar 3, 2012
Commits on Mar 2, 2012
  1. 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.
    wpwrak committed Mar 2, 2012
  2. 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 committed Mar 2, 2012
  3. softusb-input/Makefile: added target "upload" to upload softusb-input…

    ….bin to M1
    Uses ftp-upload from the eponymous package.
    wpwrak committed Mar 2, 2012
  4. tools/asm/pfpu: renamed M1_{HOST,USER,PW} to MM_* and removed defaults

    Following discussion on #milkymist, the names are now "official".
    wpwrak committed Mar 2, 2012
Commits on Mar 1, 2012
  1. Makefile: install softusb-input to sdk-install

    Xiangfu Liu committed Mar 1, 2012
Commits on Feb 24, 2012
  1. README: update

    sbourdeauducq committed Feb 24, 2012
  2. adjust the map -t from 2 to 20 fit for ISE 13.4

    Xiangfu Liu committed with sbourdeauducq Feb 24, 2012
Commits on Feb 23, 2012
  1. Makefile: add sdk-install, tools-install

    Xiangfu Liu committed Feb 23, 2012
Commits on Feb 21, 2012
  1. VGA: fix the vsync pulses

    Xiangfu Liu committed Feb 21, 2012
Commits on Feb 10, 2012
  1. 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
    fpgaminer committed with Xiangfu Liu Feb 10, 2012
Commits on Feb 8, 2012
  1. fix 'make install' target

    Just a slight fix.  Don't like non-distribution stuff to populate /usr/bin
    dvdkhlng committed with Xiangfu Liu Feb 7, 2012
Commits on Jan 25, 2012
Commits on Jan 17, 2012
Commits on Jan 16, 2012
  1. asm/mod.fpvm: modulo calculation example

    Run with
    ./fpvm mod.fpvm
    Or, more entertaining
    ./fpvm -x mod.fpvm
    For every last gory detail, use
    ./fpvm -d -x mod.fpvm
    wpwrak committed Jan 16, 2012
  2. asm/fpvm: fpvm-like execution engine

    This engine also accepts symbolic register names. Uses pfpu for
    stepwise execution.
    wpwrak committed Jan 16, 2012
  3. asm/pfpu: new option -v; cleanup

    This patch contains the following changes:
    - new option -v for verbose operation. By default, pfpu now only displays
      the result line and ignores the rest of the session.
    - send nc's diagnostics to standard output so that we can suppress
      its "connected" line (alas, this means that error messages are
      only shown in verbose mode)
    - added header comment
    wpwrak committed Jan 16, 2012
Commits on Jan 15, 2012
  1. pfpuasm: auto-NOP, pass all regs, and some syntax corrections

    A number of small improvements:
    - VECTOUT doesn't need a destination register (use 0)
    - QUAKE is unary, not binary
    - option -a to automatically fill the latency slots with NOP
      (without caring about efficiency)
    - all registers referenced (read or write) are listed
    wpwrak committed Jan 15, 2012
  2. tools/asm/pfpu: fix processing of option -i

    The option -i wasn't shifted off, causing pfpuasm and ultimately cpp
    to fail.
    wpwrak committed Jan 15, 2012
  3. tools/asm/pfpu: quick and dirty script to run pfpuasm and execute the…

    … result
    The environment variable M1_HOST defines on which M1 to execute
    the code. M1_USER and M1_PW define the telnet access.
    wpwrak committed Jan 15, 2012
  4. tools/asm: PFPU assembler

    wpwrak committed Jan 15, 2012
Commits on Jan 13, 2012
Commits on Jan 12, 2012
  1. libfpvm: make op_not a regular operator and implement it in all cases

    We can substitute  !X  it with  X == 0. This catches cases where boolean
    not is used algorithmically and not directly with if.
    wpwrak committed Jan 12, 2012
Commits on Jan 11, 2012