Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
  • 99 commits
  • 233 files changed
  • 6 contributors
Nov 27, 2011
Sébastien Bourdeauducq sbourdeauducq standby: auto-on be2f599
Nov 28, 2011
Sébastien Bourdeauducq sbourdeauducq standby: work around intermittent reconfiguration problem b6241f0
Nov 30, 2011
Sébastien Bourdeauducq sbourdeauducq Bump version number 33e91c9
Werner Almesberger wpwrak softusb: move implementation of trigger into macros
This is just a bit of cleanup.

- Werner
Werner Almesberger wpwrak softusb: correct misunderstanding of use of rx_pending
Note that this change increases the risk of rx_pending vs. rx_active
Werner Almesberger wpwrak softusb: remove rx_pending vs. rx_active race
When testing rx_pending and rx_active in a loop, the following race
can have happened:

- we test rx_pending and find it clear
- the packet's last byte finishes and rx_pending is set
- the EOP is detected and rx_active is cleared
- we test rx_active and conclude that the packet has terminated

Thus, we don't reach the test of rx_pending and miss the packet's
last byte.

This patch changes the SIE_RX_PENDING register such that it allows
both rx_active and rx_pending to be retrieved atomically.
Werner Almesberger wpwrak softusb: move (still hard-coded) device address to #define efd771a
Werner Almesberger wpwrak softusb: move retrieval of device descriptor to separate function b2fc9ce
Werner Almesberger wpwrak softusb: make EP0 size variable and store it in struct port_status
Also increase size of usb_buffer in control_transfer for maximum size
full-speed EP0 (64 bytes).
Werner Almesberger wpwrak softusb: end data stage of SETUP also when size limit is reached
USB 1.1, 5.5.3, page 37: "The Data stage [...] is complete when the endpoint
[...] Has transferred exactly the amount of data specified [.]"
Werner Almesberger wpwrak softusb: set EP0 size before trying any larger accesses
For transfers of more than 8 bytes, we need to know the EP0 size
to correctly detect the end of the transfer. This patch adds a
new state to read the first 8 bytes of the device descriptor and
to set the EP0 size for the following steps in enumeration.
Werner Almesberger wpwrak softusb: use symbolic names for various USB constants 4923a9d
Werner Almesberger wpwrak softusb: move protocol identification (interface descriptor) to separ…
…ate function
Werner Almesberger wpwrak softusb: remove trailing whitespace
Some lines had trailing tabs. Those can sometimes trip patch.
Werner Almesberger wpwrak softusb: minimize time between SETUP/OUT and DATAx
By not waiting until the transmitter is idle, we can reduce the
time between the end of the SE0 indicating EOP of SETUP or OUT
and the first transition of the following DATAx to a mere two
bit times (as oppose to ~6 bit times before).

While I haven't been able to find anything in the USB standard
that would require such tight timing, AVR USB chips (i.e., the
ATmega32U2 of atusb and the AT90USB162 of the Faderfox LV3)
flat out ignore any transfers with longer delays.
Werner Almesberger wpwrak softusb: clean up device reporting
Moved reporting of the device(s) detected out of port_service, making
it a bit less cluttered and providing a more comfortable basis for
future additions.
Werner Almesberger wpwrak softusb: added detection of MIDI devices (WIP) 0294551
Werner Almesberger wpwrak softusb: move protocol-specfic data processing to separate functions
This will prevent "poll" from getting too cluttered when MIDI is added.
Werner Almesberger wpwrak softusb: protect macro arguments in comloc.h
This change is purely cosmetic.
Werner Almesberger wpwrak softusb: poll MIDI EPs and pass control changes to the LM32
Adding other events should be easy, but one step at a time.
Sébastien Bourdeauducq sbourdeauducq Constrain VGA DAC timing. This fixes the 'gradient bug' that can occu…
…r depending on PAR results.
Dec 01, 2011
Werner Almesberger wpwrak softusb: allow IN transfers with a payload of up to 64 bytes
Commit 9e05e46 increased the buffer
size for IN transfers but still only read no more than 8 bytes. Ooops.
This patch makes it receive up to 64 bytes.
Werner Almesberger wpwrak softusb: ignore the CIN when classifying USB-MIDI messages
iCON don't always send a correct CIN value. Luckily, we can use the
first byte of the actual MIDI message instead.
Werner Almesberger wpwrak softusb: don't forget notifying the host when there are news from MIDI
The host interrupt wasn't asserted when enqueuing MIDI messages.
No surprise some controls acted strangely ...
Werner Almesberger wpwrak softusb: accept everything but non-MIDI and system messages
This patch removes the limitation to control change messages. We can
now also have "piano" notes and so on.
Dec 02, 2011
Xiangfu Liu bios: make the LIBS as .PHONY
Signed-off-by: Xiangfu Liu <>
Dec 03, 2011
Werner Almesberger wpwrak libfpvm: use C operator precedence
Placing each operator at its own precedence level subtly alters the
evaluation order for +, -, *, and /, which can produce unexpected
results where rounding errors are considered.

More significantly, the precendence of % differs from that used in
C (and various other languages). For example,

2 * 3.1 % 2  with C precedence would be
(2 * 3.1) % 2 = 6.2 % 2 = 0.2   (unlike C's %, our % if really fmod)

By giving % higher precedence than *, we get
2 * (3.1 % 2) = 2 * 1.1 = 2.2  instead.

I don't know if this difference is intentional, e.g., required for
compatibility with Milkdrop. But it does at least look suspicious.

- Werner
Cristian Paul Peñaranda Rojas Merge branch 'master' into gps-sdr-testing f41cc07
Dec 07, 2011
Werner Almesberger wpwrak libfpvm: wrap some overlong lines in fpvm.c
fpvm.c contains many lines longer than 80 characters, which makes the
code hard to read. This patch wraps most of them. Some are left long,
because they will be rewritten in a later patch.
Werner Almesberger wpwrak fpvm.c: replace code patterns involving add_isn with macros 9cc6afe
Werner Almesberger wpwrak fpvm.c: replace code patterns of register allocation with macro 81aea32
Werner Almesberger wpwrak fpvm.c: replace code patterns with constant register with macro d0e72af
Werner Almesberger wpwrak fpvm.c: replace code patterns involving add_inv_sqrt and add_int with…
… macros
Werner Almesberger wpwrak fpvm.c: replace code patterns involving "compile" with macros 9631279
Werner Almesberger wpwrak fpvm.c: changed form of REG_ALLOC and REG_CONST (suggested by Michael…
… Walle)

This is the patch with just the declaration style change.
Xiangfu Liu delete all script file. Makefile soon
Signed-off-by: Xiangfu Liu <>
Xiangfu Liu use Makefile manage the build progress cleanup the gcc output, make V…
…=1 will output all detail message

Signed-off-by: Xiangfu Liu <>
Werner Almesberger wpwrak libfpvm: make scanner aware of function names and handle arity in parser
This patch makes the scanner recognize function names as distinct tokens
(and not just as identifiers). This gives the parser more information
and will also enable further changes.

The parser now only accepts functions with the correct number of
arguments. Before, mistakes like sin(a, b) or min(a) were silently
Werner Almesberger wpwrak parser.y: move node allocation and initialization to shared function
parser.y had a lot of copies of what's essentially the same code.
This patch tidies it up.
Werner Almesberger wpwrak libfpvm: pass token in struct ast_node
This will help with further optimizations.
Werner Almesberger wpwrak fpvm.c: use token instead of operator name in operator2opcode 1cf5a46
Werner Almesberger wpwrak fpvm.c: use token instead of operator name in "compile" 08249b0
Werner Almesberger wpwrak libfpvm: infrastructure for efficient unique ID pointers 8acc7a1
Werner Almesberger wpwrak libfpvm: use unique strings in interface between scanner and parser 91963c5
Werner Almesberger wpwrak libfpvm: convert constants already in fpvm_parse
That way, we don't need to carry the string along.
Werner Almesberger wpwrak libfpvm: copy only pointer to identifier into AST, not the entire string c164d92
Werner Almesberger wpwrak libfpvm: copy only pointer into bindings, not the entire string 0500751
Werner Almesberger wpwrak fpvm.c: use unique strings also in fpvm_assign ... and bring in the h…

Since everything in libfpvm now uses unique strings, we can compare
strings for equality simply by comparing pointers.
Dec 11, 2011
Cristian Paul Peñaranda Rojas added support for short int signed read from unsigned int reg from ac…
Cristian Paul Peñaranda Rojas fake usb irq value and removing non-needed code HACK d1e4dab
Dec 12, 2011
Werner Almesberger wpwrak fpvm.c: renaming decision in fpvm_assign got reversed 9e61c7f
Werner Almesberger wpwrak libfpvm: add also functions and internal variables to fnp.ids 08f9c18
Werner Almesberger wpwrak libfpvm/unique.c: fix grow_table and strcmp_n
- grow_table didn't update the array size after growing
- if string "b" was longer than "a", strcmp_n returned a positive value
  indicating a > b
Werner Almesberger wpwrak libfpvm: don't store non-identifiers in the cache of unique identifiers 57d8617
Werner Almesberger wpwrak unique.c: use libc functions instead of DIY replacements b92595f
Werner Almesberger wpwrak libfpvm/Makefile: build now for RTEMS (instead of the demo firmware)
Note that "make depend" gets a bit whiny after this change, because it
doesn't know where to find the system headers. We also get two new
compiler warnings from isalnum, due to newlib not consistently casting
to "int".
Werner Almesberger wpwrak libfpvm: git rm -rf lm32-rtems/ 75e8acb
Werner Almesberger wpwrak libfpvm: don't use TOK_* inside fpvm.c
Code generation will have no access to the token numbers assigned by the
parser, so we create our own numbering scheme and translate between
parsing and code generation.
Werner Almesberger wpwrak libfpvm: split parser from fpvm.c (to fpvm-export.c) 9ffb383
Werner Almesberger wpwrak libfpvm: export ast.h and split internal communication (to parser_itf.h) 20b0f1c
Werner Almesberger wpwrak libfpvm: departure of scanner and parser 4fdae4a
Werner Almesberger wpwrak fpvm/fpvm.h: declare bottom functions still here, not migrated functions
fpvm_init and fpvm_assign no longer live here. Instead, declare their
lower-level remains.
Werner Almesberger wpwrak milkymist: ANSI-style fpvm_version declaration d30353b
Sébastien Bourdeauducq sbourdeauducq Remove demo firmware 6f50e96
Cristian Paul Peñaranda Rojas Merge branch 'master' into gps-sdr-testing ffbc89b
Dec 14, 2011
Werner Almesberger wpwrak milkymist: remove unused variables in libbase/softfloat.c 555e97f
Werner Almesberger wpwrak milkymist: use -Wstrict-prototypes
And fix resulting warnings.
Werner Almesberger wpwrak milkymist: try -Wmissing-prototypes
The math functions have too many issues to make this viable without
substantially more fixing. Just fix what little else is there.
Werner Almesberger wpwrak milkymist: use -Wold-style-definition f043b4c
Werner Almesberger wpwrak milkymist: use -Wshadow
Only one minor conflict found.
Sébastien Bourdeauducq sbourdeauducq Remove libmath 14ad8ba
Dec 23, 2011
Cristian Paul Peñaranda Rojas updated gold codes 99cc5f5
Cristian Paul Peñaranda Rojas cosmetic changes c877aa2
Cristian Paul Peñaranda Rojas NOW is really update prn/gold codes from namuru datasheet f9a4ec3
Dec 28, 2011
Werner Almesberger wpwrak software/libfpvm/Makefile: update dependencies
They still contained lots of old junk.
Werner Almesberger wpwrak fpvm.c: suppress compiler warning caused by -Wunused-value
This warning was generated when compiling x86-linux/, which uses clang
instead of gcc.
Dec 29, 2011
Werner Almesberger wpwrak milkymist: declare "code" argument of pfpu_dump "const"
A small bit of cleanup, to allow Flickernoise to do the same.

- Werner
Dec 30, 2011
Werner Almesberger wpwrak libfpvm: rename op_not to op_negate
We'll soon use "not", and this would get confusing.
Werner Almesberger wpwrak libfpvm: end enum ast_op with op_vops, for parser-internal extensions 9f71dde
Jan 07, 2012
Werner Almesberger wpwrak libfpvm: only access node->label if we have an indentifier
We provide a function node_is_op for the library user to make this
distiction as well (used in parser_helper.c).

Note that this change means that we can't report the name of the
operator that causes an "Operation not supported" error. This is
visible to users in the case of op_not. Fix later.
Jan 09, 2012
Werner Almesberger wpwrak libfpvm: introduce "struct sym" as abstraction for an identifier
This has ripple effects all through libfpvm but shouldn't change
Jan 11, 2012
Werner Almesberger wpwrak libfpvm: rename "struct sym" to "struct fpvm_sym" 8dbe0fd
Jan 12, 2012
Werner Almesberger wpwrak 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.
Werner Almesberger wpwrak libfpvm/x86-linux/Makefile: support silent builds as well 9f8e947
Jan 15, 2012
Werner Almesberger wpwrak tools/asm: PFPU assembler 8696dfc
Werner Almesberger wpwrak 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.
Werner Almesberger wpwrak tools/asm/pfpu: fix processing of option -i
The option -i wasn't shifted off, causing pfpuasm and ultimately cpp
to fail.
Werner Almesberger wpwrak 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
Werner Almesberger wpwrak 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
Werner Almesberger wpwrak asm/fpvm: fpvm-like execution engine
This engine also accepts symbolic register names. Uses pfpu for
stepwise execution.
Werner Almesberger wpwrak 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
Jan 17, 2012
Werner Almesberger wpwrak libfpvm: rename op_not to op_bnot, to follow MilkDrop naming f2650b2
Jan 25, 2012
Werner Almesberger wpwrak libfpvm: added operators for logical AND and OR (untested, WIP) 530ae74
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


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
Feb 19, 2012
Cristian Paul Peñaranda Rojas Merge branches 'master' and 'gps-sdr-testing' into gps-sdr-testing b1c6d66
Cristian Paul Peñaranda Rojas Fix clock frequency to 4x SiGE EVB Sampling clock 5fc3020
Cristian Paul Peñaranda Rojas warning comment (to remenber my self) e2d56b8
Feb 28, 2012
Cristian Paul Peñaranda Rojas clear after read support ec596a9