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.
Commits on Jul 03, 2011
@sbourdeauducq sbourdeauducq gdbstub: disable break on entering debug ROM 86601af
Commits on Jul 10, 2011
@sbourdeauducq sbourdeauducq Update README c9a2887
@sbourdeauducq sbourdeauducq Update headers 446a023
@sbourdeauducq sbourdeauducq Bump version number 2a9a0e3
@sbourdeauducq sbourdeauducq fmlmeter: add memory address capture support cb312e3
Commits on Jul 11, 2011
@sbourdeauducq sbourdeauducq Enable ISE 13.2 BRAM silicon bug workaround (Xilinx AR 39999) 13a368c
@sbourdeauducq sbourdeauducq Out of order memory controller model ed576c0
@sbourdeauducq sbourdeauducq Model parameters 3f5163c
@sbourdeauducq sbourdeauducq hpdmc: peak performance test d09f6ca
@sbourdeauducq sbourdeauducq fmlmeter: record write bit 7330f84
@sbourdeauducq sbourdeauducq Display memory read/write stats 7dda0b9
Commits on Jul 13, 2011
@sbourdeauducq sbourdeauducq FML: early ack 8cfa0da
Commits on Jul 18, 2011
@sbourdeauducq sbourdeauducq TMU prefetch (WIP): tag memory (untested) cfaf399
Commits on Jul 20, 2011
@sbourdeauducq sbourdeauducq TMU prefetch (WIP): split tag memory results between fragment FIFO an…
…d fetch unit
@sbourdeauducq sbourdeauducq TMU: buffer: arbitrary depth de40a86
@sbourdeauducq sbourdeauducq TMU prefetch: use miss mask c63ee15
@sbourdeauducq sbourdeauducq TMU prefetch: remove useless buffers 91cd851
@sbourdeauducq sbourdeauducq TMU prefetch: serialize simultaneous texel cache misses 40a2656
@mwalle mwalle lm32: sync to upstream v3.6 sources
 - feature: support for dynamically switching EBA to DEBA via a GPIO.
 - bug: EA now reports instruction that caused the data abort, rather than
   next instruction.
@mwalle mwalle lm32: new license headers for lm32 source files
These headers were introduced with LatticeMico System 1.3.
@mwalle mwalle lm32: update changelog 552fc7b
@mwalle mwalle Update Lattice License Agreement 31d8a86
Commits on Jul 21, 2011
@sbourdeauducq sbourdeauducq TMU prefetch: texel fetch 5bfeabb
@sbourdeauducq sbourdeauducq TMU prefetch: configurable memory data FIFO depth 156c0ca
@sbourdeauducq sbourdeauducq TMU prefetch: top level design 8c17500
Commits on Jul 24, 2011
@sbourdeauducq sbourdeauducq TMU prefetch: true dual port RAM module d7b6428
@sbourdeauducq sbourdeauducq TMU prefetch: quad port RAM module 926a3bd
@sbourdeauducq sbourdeauducq TMU prefetch: cache data memory. Prefetch complete but untested. 70d9ba9
@sbourdeauducq sbourdeauducq TMU prefetch: fixed compilation errors 44b92e5
@sbourdeauducq sbourdeauducq TMU: check fdest cache valid bit 373917a
@sbourdeauducq sbourdeauducq TMU: check for address generator busy a4e66b5
@sbourdeauducq sbourdeauducq TMU prefetch: fix Xst warnings 3ad5eb9
Commits on Jul 25, 2011
@sbourdeauducq sbourdeauducq TMU: get simulation to run f2ff607
@sbourdeauducq sbourdeauducq TMU prefetch: fix qpram module f88e7e5
@sbourdeauducq sbourdeauducq TMU prefetch: ack fragment FIFO on datamem resume df38f91
@sbourdeauducq sbourdeauducq TMU prefetch: generate datamem busy signal 79679fb
@sbourdeauducq sbourdeauducq TMU prefetch: fix split module 09d45f6
@sbourdeauducq sbourdeauducq TMU prefetch: assert busy during memory burst in texel fetch unit 7be5065
@sbourdeauducq sbourdeauducq tmubench: send data to UART only 64ec831
@sbourdeauducq sbourdeauducq TMU: make fragment, fetch and commit FIFO sizes configurable at top l…
@sbourdeauducq sbourdeauducq renderer: enlarge texture buffers 4939ee3
Commits on Jul 26, 2011
@sbourdeauducq sbourdeauducq TMU prefetch: flush cache 7abd367
@sbourdeauducq sbourdeauducq TMU prefetch: fix commit FIFO write indexing df573f9
@sbourdeauducq sbourdeauducq TMU prefetch: faster commit c219760
@sbourdeauducq sbourdeauducq TMU prefetch: even faster commit 639f124
@sbourdeauducq sbourdeauducq TMU prefetch: fix qpram read-after-write 2c430c9
@sbourdeauducq sbourdeauducq TMU prefetch: fix pipe ack generation in tagmem 9a06b83
@sbourdeauducq sbourdeauducq TMU: testbench: display mask on bus writes c43799e
Commits on Jul 27, 2011
@sbourdeauducq sbourdeauducq demo: cleanup output 72a4243
Commits on Aug 02, 2011
@mwalle mwalle lm32: gdbstub save and restore IE/IM/IP
This fixes issue #27.
@sbourdeauducq sbourdeauducq Update debug ROM e6000e3
Commits on Aug 14, 2011
@mwalle mwalle gdbstub: cosmetic cleanups 8682817
Commits on Aug 24, 2011
Xiangfu Liu tools: flterm: add log 10b1a33
@sbourdeauducq sbourdeauducq flterm: cosmetic changes + bump version number 2353955
Commits on Aug 25, 2011
Xiangfu Liu tools: flterm: check logfd, check ascii, flush each line 9aa4a60
Commits on Aug 26, 2011
Xiangfu Liu flterm: add check if c is 0x00 3ccb7ef
Commits on Sep 13, 2011
@mwalle mwalle uart: add status and control register 58cf888
@mwalle mwalle update header files for new uart core c475927
@mwalle mwalle libhpdmc: support new uart core 2b05b36
@mwalle mwalle gdbstub: support new uart core 8255baf
@mwalle mwalle monitor: update gdbstub rom 8694f47
@mwalle mwalle bios/demo: support new uart core 25c54ad
@mwalle mwalle reassign interrupts
Remove 'holes' from the interrupt map.
Commits on Oct 01, 2011
@sbourdeauducq sbourdeauducq libbase: add abort() 7414dca
@sbourdeauducq sbourdeauducq fpvm: new scheduler from Werner (NEEDS REPLACEMENT OF alloca()) 0c4c26d
Commits on Oct 03, 2011
@wpwrak wpwrak lnfpus.c: replaced calloc with stack-based allocation 00237e5
@wpwrak wpwrak lnfpus.c: made thread-safe by removing global variable "sc" 2c00c05
Commits on Nov 10, 2011
@sbourdeauducq sbourdeauducq gdbstub: fix off-by-one error (Michael Walle) 8c9a376
@sbourdeauducq sbourdeauducq Update gdbstub rom adc92ab
Commits on Nov 12, 2011
@sbourdeauducq sbourdeauducq Drive PHY reset when Ethernet is disabled 981c25f
@sbourdeauducq sbourdeauducq BIOS: sanitize exception vectors 4def59a
@sbourdeauducq sbourdeauducq Generate bus errors on the first 512KB to catch NULL pointers 02c81d5
Commits on Nov 13, 2011
@wpwrak wpwrak softusb-input: also accept 3 byte reports, e.g., from wheelless mice 6b83fa4
@wpwrak wpwrak softusb-input: use symbolic constants for packet ID values 85b2d1c
@wpwrak wpwrak softusb: use macro to construct (address, EP) value
0x81 meaning "address 1, endpoint 1" looks like the ubiquitous 0x81
meaning "direction IN, endpoint 1". This patch makes things a little
less misleading.
@wpwrak wpwrak softusb: don't interrupt the host if we're ignoring the packet anyway 40404f9
@wpwrak wpwrak softusb: renamed "fs" to "full_speed"
No need to be *that* tight-lipped ...
@wpwrak wpwrak softusb: separate EP-specific state from port-specific state
This is made a little easier by the rest of the code ignoring the
data toggle in SETUP requests. Otherwise, EP0 would need some state
as well.
@wpwrak wpwrak softusb: support composite USB devices
For this, we parse the entire configuration descriptor and look at
all interface descriptors. Furthermore, we set the endpoint number
according to the endpoint descriptor(s) following the interface
descriptor, instead of hard-coding it.

Here is a brief description of how composite devices are structured:

Note that this doesn't help with combi-devices that present
themselves as independent devices plus a hub.

We still bail out at the first interface descriptor we don't
understand, to avoid wandering into crazy things that may be lurking
at tne end of the configuration descriptor. (I did this on a whim.
Maybe we don't need that extra dose of paranoia.)
@wpwrak wpwrak softusb: added hack for Rii RF mini-keyboard
Unlike the ACME rodent, the mouse pad of the Rii RF mini-keyboard
sends reports with report ID and 16 bit resolution. This patch just
identifies these reports by their sheer size and then rearranges the
packet content before further processing.
@sbourdeauducq sbourdeauducq tools: allow overriding the C compiler for distributions like Fedora …
…who can't package clang correctly
@sbourdeauducq sbourdeauducq tools: use the CC variable b5cbe7a
Commits on Nov 14, 2011
@sbourdeauducq sbourdeauducq USB: try enumerating full speed devices 0d3a651
@sbourdeauducq sbourdeauducq USB: retry address setting fe5b41e
@sbourdeauducq sbourdeauducq USB: generate SOFs 99b5926
@sbourdeauducq sbourdeauducq USB: shorter timeouts, fewer retries bd3ddb7
Commits on Nov 15, 2011
@sbourdeauducq sbourdeauducq softusb: increase program memory size to 8K 305d145
@wpwrak wpwrak softusb: remove compiler warning about unused variable 0decd11
@wpwrak wpwrak softusb: implement the reset recovery interval
Sections and of the USB 2.0 spec say the a host has
to wait for at least 10 ms (Trstrcy) after reset before it can expect
a device to be able to receive data.

In Linux drivers/usb/core/hub.c:hub_port_reset we find this:

	/* TRSTRCY = 10 ms; plus some extra */
	msleep(10 + 40);

So let's use 50 ms.
@sbourdeauducq sbourdeauducq USB: send SOFs and keepalives on both ports and immediately after reset f6c7474
Commits on Nov 19, 2011
@wpwrak wpwrak softusb: 4 kB hack f1c0fe7
@wpwrak wpwrak softusb: use OE# of port A for trigger c8111e5
@wpwrak wpwrak softusb: send SETUP and DATA0 back-to-back edf599e
@wpwrak wpwrak softusb: simplify and correct data toggle in control transactions
This patch does three things:

1) it replaces get_data_token with a simpler and more efficient
   version that doesn't unconditionally toggle

2) it only toggles the transmitter-side sequence if the DATAx
   packet is acknowledged (USB 1.1 sec 8.6 pg 168 and USB 2.0
   sec 8.6 pg 232)

3) it always sends DATA1 in the status stage, in accordance with
   USB 1.1 sec 8.5.2 pg 165 and USB 2.0 sec 8.5.3 pg 226.

In testing, this patch reduced the probability of the low-speed device
used (the Rii RF keyboard) registering. This seems to simply be the
effect of bugs eliminated in later patches having a greater effect,
and does not constitute a regression of code correctness.
@wpwrak wpwrak softusb: in SETUP, only use IN data with the right sequence bit
This also removes the functional regression of the previous commit.
@wpwrak wpwrak softusb: use toggle() also for bulk/interrupt 7c9748b
@wpwrak wpwrak softusb: swap in_reply and out_reply 9a26965
@wpwrak wpwrak softusb: move all IN transfers to function usb_in
Besides reducing some redundancy, this patch also makes the following

- retry on timeout (e.g., if the DATAx packet was garbled) in the data
  stage of control transfers instead of failing the entire transfer

- retry IN tranfers in the status stage

- reject IN transfers in the status stage if they have the wrong
  sequence bit (more USB 1.1 sec 8.5.2 and USB 2.0 sec 8.5.3)

- slightly reduce the information in debugging output since control
  and bulk/interrupt now use the same code path for IN transfers

The streamlined code path also makes full-speed work occasionally.
@wpwrak wpwrak softusb: move all OUT transfers to function usb_out
This is mainly cosmetic, to reduce the amount of code. It adds
retry on timeout, though.

Again, as a side-effect, debug messages become a bit less detailed.
@wpwrak wpwrak suftusb: remove one now unused debug message 309d30d
@sbourdeauducq sbourdeauducq Revert 4KB hack 6e8c7b1
@wpwrak wpwrak softusb: partially unroll usb_in
This patch partially unrolls usb_in and takes decisions on the further
disposition of a packet at early as possible. The objective is to
minimize the processing needed between EOP of the DATAx packet and the
sending of an ACK.

The patch also changes error handling in two ways:

1) when deciding to discard a packet, always wait until the device
   really stops sending

2) packets with a garbled PID are treated as non-fatal errors
@wpwrak wpwrak softusb: send ACKs from dedicated inline function
To accelerate sending ACKs, this patch avoids the call setup overhead
of usb_tx and introduces a dedicated inline function. In experiments,
this reduced EOP-to-ACK time by about 10 full-speed bit times.
@wpwrak wpwrak softusb: fail garbled packets fatally again
As the result of more testing that showed no degradation in performance,
this reverts to the original logic of failing garbled packets harder.
@wpwrak wpwrak softusb: convert last remaining use of usb_rx to usb_rx_ack
Since usb_rx is now only used to receive ACK/NAK, we can replace it
with a more streamlined version. This should also marginally improve
error handling.
@wpwrak wpwrak softusb: clear EPs on disconnect
Along with the logic to handle multiple interfaces, commit
a26dc51 also introduced the following

When a keyboard or composite device with keyboard was replaced by a
mouse after enumeration, the stack would still poll the "keyboard",
which most likely resulted in the mouse data to be b drained and

This patch clears the EP roles on disconnect.
@sbourdeauducq sbourdeauducq softusb: update copyright notice 3a7e212
Commits on Nov 21, 2011
@mwalle mwalle flterm: make kernel image optional
This way flterm can be used as a 'normal' terminal emulator.
@sbourdeauducq sbourdeauducq flterm: bump version number and fix print_usage output 327bdc7
@mwalle mwalle bios: fix initrd end pointer
initrd_end points just past the last byte of the initrd. This way initramfs
images works.
Commits on Nov 22, 2011
Xiangfu Liu connect the dependency between softusb and libhal, add libs dependenc…
…y to bios

Signed-off-by: Xiangfu Liu <>
@sbourdeauducq sbourdeauducq Cleanup BIOS makefile 1ee812a
@mwalle mwalle sysctl: change offsets and new frequency register
Reorganize register offsets and introduce new register to read the system
clock frequency.
@mwalle mwalle sysctl: new debug control register
Introduce a debug control register. It can be used to lock the gdbstub ROM
and enable/disable bus errors. The gdbstub ROM will be read/writeable until
one writes the corresponding lock bit to this register. This will ease
future gdbstub updates.
@mwalle mwalle monitor: introduce write lock
Make ROM writeable unless the lock is set.
@mwalle mwalle soc: connect write lock register to monitor core d0a720b
@mwalle mwalle gdbstub: set correct uart speed
Set the UART speed to a fixed value when gdbstub is called and restore its
previous value if gdbstub exits.
@mwalle mwalle update monitor rom 173f00d
@mwalle mwalle bios: lock gdbstub ROM
For now, unconditionally lock the GDB stub ROM as soon as possible.
@mwalle mwalle gdbstub: disable bus errors
Disable bus errors while the gdbstub is running. This will prevent nested
gdbstub invokations.
@mwalle mwalle soc: add enable signal to bus errors 327d65c
@mwalle mwalle bios: enable bus errors
By default bus errors are disabled, enable them.
@sbourdeauducq sbourdeauducq sysctl: fix ICAP address decoding 0f65527
@sbourdeauducq sbourdeauducq software: remove redundant clk_frequency 028c9f6
Commits on Nov 23, 2011
@sbourdeauducq sbourdeauducq Fix assignment to bus_errors_en 4c22685
@sbourdeauducq sbourdeauducq softusb: new DPLL 81eddbd
Commits on Nov 24, 2011
@sbourdeauducq sbourdeauducq fpvm: new fpvm_set_bind_callback API 4c7e4c9
@sbourdeauducq sbourdeauducq Update copyright notices 60b370e
@sbourdeauducq sbourdeauducq fpvm: accessor functions 50436b5
@sbourdeauducq sbourdeauducq fpvm: support source-only binding 0aeb5c1
Commits on Nov 27, 2011
@kristianpaul back to MM upstream conbus for now bdfed2a
@kristianpaul mkboot integration in the board flash Makefile 2e8e6b5
@kristianpaul added some utils to bios (namuru memory test and support to visualize…
… accumulators)
@kristianpaul Ignore log files in git cc06e1e
@kristianpaul Merge branch 'master' into gps-sdr-testing
Solved conflict around:
@kristianpaul namuru correlator sampling is system_clock (65535Hz)/4 , achieved by …
…the accum sample signal and its counter
@sbourdeauducq sbourdeauducq standby: auto-on be2f599
Commits on Nov 28, 2011
@sbourdeauducq sbourdeauducq standby: work around intermittent reconfiguration problem b6241f0
Commits on Nov 30, 2011
@sbourdeauducq sbourdeauducq Bump version number 33e91c9
@wpwrak wpwrak softusb: move implementation of trigger into macros
This is just a bit of cleanup.

- Werner
@wpwrak wpwrak softusb: correct misunderstanding of use of rx_pending
Note that this change increases the risk of rx_pending vs. rx_active
@wpwrak 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.
@wpwrak wpwrak softusb: move (still hard-coded) device address to #define efd771a
@wpwrak wpwrak softusb: move retrieval of device descriptor to separate function b2fc9ce
@wpwrak 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).
@wpwrak 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 [.]"
@wpwrak 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.
@wpwrak wpwrak softusb: use symbolic names for various USB constants 4923a9d
@wpwrak wpwrak softusb: move protocol identification (interface descriptor) to separ…
…ate function
@wpwrak wpwrak softusb: remove trailing whitespace
Some lines had trailing tabs. Those can sometimes trip patch.
@wpwrak 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.
@wpwrak 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.
@wpwrak wpwrak softusb: added detection of MIDI devices (WIP) 0294551
@wpwrak wpwrak softusb: move protocol-specfic data processing to separate functions
This will prevent "poll" from getting too cluttered when MIDI is added.
@wpwrak wpwrak softusb: protect macro arguments in comloc.h
This change is purely cosmetic.
@wpwrak wpwrak softusb: poll MIDI EPs and pass control changes to the LM32
Adding other events should be easy, but one step at a time.
@sbourdeauducq sbourdeauducq Constrain VGA DAC timing. This fixes the 'gradient bug' that can occu…
…r depending on PAR results.
Commits on Dec 01, 2011
@wpwrak 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.
@wpwrak 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.
@wpwrak 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 ...
@wpwrak 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.
Commits on Dec 02, 2011
Xiangfu Liu bios: make the LIBS as .PHONY
Signed-off-by: Xiangfu Liu <>
Commits on Dec 03, 2011
@wpwrak 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
@kristianpaul small fix, bad coding style, blocking where should be non-blocking a6abb25
@kristianpaul Merge branch 'master' into gps-sdr-testing f41cc07
Commits on Dec 07, 2011
@wpwrak 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.
@wpwrak wpwrak fpvm.c: replace code patterns involving add_isn with macros 9cc6afe
@wpwrak wpwrak fpvm.c: replace code patterns of register allocation with macro 81aea32
@wpwrak wpwrak fpvm.c: replace code patterns with constant register with macro d0e72af
@wpwrak wpwrak fpvm.c: replace code patterns involving add_inv_sqrt and add_int with…
… macros
@wpwrak wpwrak fpvm.c: replace code patterns involving "compile" with macros 9631279
@wpwrak 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 <>
@wpwrak 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
@wpwrak 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.
@wpwrak wpwrak libfpvm: pass token in struct ast_node
This will help with further optimizations.
@wpwrak wpwrak fpvm.c: use token instead of operator name in operator2opcode 1cf5a46
@wpwrak wpwrak fpvm.c: use token instead of operator name in "compile" 08249b0
@wpwrak wpwrak libfpvm: infrastructure for efficient unique ID pointers 8acc7a1
@wpwrak wpwrak libfpvm: use unique strings in interface between scanner and parser 91963c5
@wpwrak wpwrak libfpvm: convert constants already in fpvm_parse
That way, we don't need to carry the string along.
@wpwrak wpwrak libfpvm: copy only pointer to identifier into AST, not the entire string c164d92
@wpwrak wpwrak libfpvm: copy only pointer into bindings, not the entire string 0500751
@wpwrak 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.
Commits on Dec 12, 2011
@kristianpaul added support for short int signed read from unsigned int reg from ac…
@kristianpaul fake usb irq value and removing non-needed code HACK d1e4dab
@wpwrak wpwrak fpvm.c: renaming decision in fpvm_assign got reversed 9e61c7f
@wpwrak wpwrak libfpvm: add also functions and internal variables to fnp.ids 08f9c18
@wpwrak 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
@wpwrak wpwrak libfpvm: don't store non-identifiers in the cache of unique identifiers 57d8617
@wpwrak wpwrak unique.c: use libc functions instead of DIY replacements b92595f
@wpwrak 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".
@wpwrak wpwrak libfpvm: git rm -rf lm32-rtems/ 75e8acb
@wpwrak 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.
@wpwrak wpwrak libfpvm: split parser from fpvm.c (to fpvm-export.c) 9ffb383
@wpwrak wpwrak libfpvm: export ast.h and split internal communication (to parser_itf.h) 20b0f1c
@wpwrak wpwrak libfpvm: departure of scanner and parser 4fdae4a
@wpwrak 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.
@wpwrak wpwrak milkymist: ANSI-style fpvm_version declaration d30353b
@sbourdeauducq sbourdeauducq Remove demo firmware 6f50e96
@kristianpaul Merge branch 'master' into gps-sdr-testing ffbc89b
Commits on Dec 14, 2011
@wpwrak wpwrak milkymist: remove unused variables in libbase/softfloat.c 555e97f
@wpwrak wpwrak milkymist: use -Wstrict-prototypes
And fix resulting warnings.
@wpwrak 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.
@wpwrak wpwrak milkymist: use -Wold-style-definition f043b4c
@wpwrak wpwrak milkymist: use -Wshadow
Only one minor conflict found.
@sbourdeauducq sbourdeauducq Remove libmath 14ad8ba
Commits on Dec 23, 2011
@kristianpaul updated gold codes 99cc5f5
@kristianpaul cosmetic changes c877aa2
@kristianpaul NOW is really update prn/gold codes from namuru datasheet f9a4ec3
Commits on Dec 27, 2011
@wpwrak wpwrak software/libfpvm/Makefile: update dependencies
They still contained lots of old junk.
@wpwrak wpwrak fpvm.c: suppress compiler warning caused by -Wunused-value
This warning was generated when compiling x86-linux/, which uses clang
instead of gcc.
Commits on Dec 29, 2011
@wpwrak wpwrak milkymist: declare "code" argument of pfpu_dump "const"
A small bit of cleanup, to allow Flickernoise to do the same.

- Werner
Commits on Dec 30, 2011
@wpwrak wpwrak libfpvm: rename op_not to op_negate
We'll soon use "not", and this would get confusing.
@wpwrak wpwrak libfpvm: end enum ast_op with op_vops, for parser-internal extensions 9f71dde
Commits on Jan 07, 2012
@wpwrak 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.
Commits on Jan 10, 2012
@wpwrak wpwrak libfpvm: introduce "struct sym" as abstraction for an identifier
This has ripple effects all through libfpvm but shouldn't change
Commits on Jan 11, 2012
@wpwrak wpwrak libfpvm: rename "struct sym" to "struct fpvm_sym" 8dbe0fd
Commits on Jan 12, 2012
@wpwrak 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.
Commits on Jan 13, 2012
@wpwrak wpwrak libfpvm/x86-linux/Makefile: support silent builds as well 9f8e947
Commits on Jan 15, 2012
@wpwrak wpwrak tools/asm: PFPU assembler 8696dfc
@wpwrak 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.
@wpwrak wpwrak tools/asm/pfpu: fix processing of option -i
The option -i wasn't shifted off, causing pfpuasm and ultimately cpp
to fail.
@wpwrak 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
Commits on Jan 16, 2012
@wpwrak 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
@wpwrak wpwrak asm/fpvm: fpvm-like execution engine
This engine also accepts symbolic register names. Uses pfpu for
stepwise execution.
@wpwrak 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
Commits on Jan 17, 2012
@wpwrak wpwrak libfpvm: rename op_not to op_bnot, to follow MilkDrop naming f2650b2
Commits on Jan 25, 2012
@wpwrak wpwrak libfpvm: added operators for logical AND and OR (untested, WIP) 530ae74
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


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