- 04 Dec, 2014 3 commits
-
-
Adam Wujek authored
merge load-fpga.c and load-virtex.c Signed-off-by: Adam Wujek <adam.wujek@cern.ch>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
- 28 Nov, 2014 37 commits
-
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This moves the query_ports() and get_port_state() to be shared memory lookups. The hal_client.c file now accesses shared memory at init time, and performes the two functions above by looking in shared memory. The thing is sill suboptimal, because the "exported" hexp_port_state_t structure is only slightly different from struct hal_port_state. And most fields being looked up are never filled. Last but not least, halexp_get_timing_state() is not ready to be converted to shared memory at this point in time (timing data is not stored to shmem yet). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This has no effect on the code functionality. Even if it affects libwr, this is a hal-only change. The functions in libwr that the hal itself uses, now receive a pointer to ports[], which is thus back a static pointer within wrsw_hal/hal_ports.c. This change allows moving the RPC queries to be shared memory lookups, by using the ports[] pointer in the client; so both the client and the server can access the same shared mamory using libwr functions. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
They are the usual 0 and -1: some functions returned the names, but no caller was checking the names. Also, PORT_BUSY (which was 1) was never used specially, so it is turned into a normal -1 error. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Even though the idea of using a single helper process for all web queries is sound, this is not it. No more comments from me. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Adam Wujek authored
Also fix makefiles and documentation Signed-off-by: Adam Wujek <adam.wujek@cern.ch>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This allows other process to access port information without making several RPC calls. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
The stdout and stderr of the basic WR tools are piled to the "logger" process, to get actual logs saved, if so configured for. Thus, we should not reopen the output channels to /dev/null Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This is the first step to move the "get_port_state" query to shared memory. The internal structures of hal_ports.c will be allocated in shared memory, so the calls to halexp_* will just convert the data, without context-switching to the hal process. I couldn't add the functions to libwr/hal_client.c where they belong, because the choice of using the same "halexp" names for local and remote calls would lead to duplicate symbol definitions when linking the hal (the hal process links libwr, but can't link hal_client.o). Thus, libwr/hal_shmem.c is created, to host the parts of hal/hal_ports.c that are needed to convert data. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com> Acked-by: Maciej Lipinski <maciej.lipinski@cern.ch>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
LOCK_STATE_* macros were defined locally and not used (only LOCK_STATE_NONE was used, but 0 is better since the relevant function says "returns 0 or 1"). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
HAL_PORT_MODE_* were defined locally and never used. The code uses HEXP_PORT_MODE_* instead (defined in <hal/hal_exports.h> and used in several places). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
After this commit, all symbols in hal_ports are of the form hal_port_* (all but one, that is not used and I'll remove it in another commit). I'm not smart enough to track the origin of the various names, so I need this. I need this especially in this file because I'm going to export stuff using shmem, to avoid a lot of context switches. Thus, the "private" structure hal_port_state is not a typedef any more, as a first step in becoming public. It doesn't make sense to have two almost-identical structures, where one is copied to the other one item at a time to deal with the minor differences. (It happened for some reason: I'm not complaining hard, but it's time to get rid of this). Unfortunately, two functions were called "halexp", and relied on a prototype shared by the RPC server (this file) and the RPC client. While the convention made sense at first, it now shows its limits, so the exported one is called hal_port_* like everything in the file, but for this I need to add structure names (but I left the typedef at this point, to avoid massive name changes around). If I didn't introduce bugs, the code is the same as it was. I did it one symbol at a time while build-checking each steps (and I even have the commits to track any error). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
pps_gen.c had a missing semicolon because of this bug. Fix the macro to behave properly withing if/else. And fix the user, adding the missing semicolon. We all know that these two functions should be static inline, and the fpga base pointer should be void *, but that's for later. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This header is almost obsolete, as we'll move to SDB soon. Meanwhile, sort out the tab/space mess and indent with spaces only, so it looks good to everybody (including greg who insists on one tab every 2 spaces -- which works for indentation, but not for for alignment at end-of-line). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
We'd better use less CPU power to run the HAL, even if this shows down response times for management queries (until we move most of it to shmem). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
The code was hardwired to /dev/ttyS2 and 115200 baud. So we are sure nobody is using it, and it actually can't be used at all. If needed, we know it's in the history. Signed-off-by: Alessandro Rubini <rubini@gnudd.com> Ackec-by: Grzegorz Daniluk <grzegorz.daniluk@cern.ch>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
The compiler noted already, by not generating code. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
I didn't take all suggestions by Lindent, I avoided to commit the stupid ones (when on separate hunks). This mainly changes the spacing of "if( condition)", spaces after commas in arguments, the placing of the pointer symbol and the placement of braces. I would have avoided the last item, but it's not simple. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This is a semi-automatic pass. To work on this I need to have it in 80 columns, and sanely indented. This pass is not changing brace placement or whatever: it is just a "fill-region" in emacs plus manual split of strings and shortening of comments. You can "git diff --word-diff=color" to check. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This allows private headers to be clearly private (in userspace/wrsw_hal/). rt_ipc.h is used by phytool too, so it is not private and is now in include/. As a side effect, remove -I../wrs_hal from makefile. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
To delay for less than 1ms (was: 10ms) we must busy-loop, because the kernel is jiffy-based. No way out of it. The implementation, however, was based on gettimeofday(), which means we couldn't really strace the hal process, as it appeared to only call gettimeofday all the time. This code uses a local software loop, after a calibration step of around 20ms (depends on CPU speed). Moreover, by calling usleep() for longer-than-1ms delays it doesn't use 100% cpu power during the initial led blinking. Now strace on the process shows what it really is doing (besides user-spac-only i2c accesses). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
We don't need to print binary and get mad with static storage. If any, we print hex. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
shw_malloc and shw_free are not used (well, i2c_free used shw_free, but there is no associated alloc anywhere, so I removed it too). The idea of a "malloc-or-exit" kind of function is good, but we'd better make sense of things (and simplify where unused legacy remains) before finding and fixing all unlikely error paths. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This is a completely automatic pass, before we start making order in this library (note: there is a missing semicolon in pps_gen.c:82 but it will be fixed in a later commit -- the bug is in the macro being called, so the missing semicolon is ok for the compiler). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-