Werner Almesberger
bac21bf8cb
ubb-la/Makefile (CFLAGS): even -O1 isn't safe; use -O0 instead
...
While -O1 gets rid of the unexpected read in the simple code of a synthetic
test, it's still there in the more complex environment we have in ubb-la.c
Turning off optimization completely seems to do the trick.
2013-01-24 17:35:52 -03:00
Werner Almesberger
00ef01ada8
ubb-patgen/Makefile (CFLAGS): -O9 is currently unsafe; use -O1
...
Higher optimizations can cause the generation of code that unexpectedly
does the equivalent of PDFUNS = PDFUNS;
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56098
2013-01-24 15:34:04 -03:00
Werner Almesberger
e1eea4fa86
ubb-la/Makefile (CFLAGS): -O9 is currently unsafe; use -O1
...
Higher optimizations can cause the generation of code that unexpectedly
does the equivalent of PDFUNS = PDFUNS;
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56098
2013-01-24 15:31:59 -03:00
Werner Almesberger
2c5b3625a7
ubb-la/: data capture via UBB and MSC+DMA (WIP)
2013-01-23 11:54:23 -03:00
Werner Almesberger
d4c1f5666c
ubb-la/hw/: proof-of-concept passive LA adapter board
...
Note that the pull-ups on DAT1 through DAT3 and the pull-whichever-way on
DAT0 are likely to get in the way of any real-life use. But it's good enough
for exploring the system's characteristics and limitations.
2013-01-23 11:52:11 -03:00
Werner Almesberger
5025f360cc
ubb-patgen/ubb-patgen.c: use symbolic bit/field definitions for DMA
2013-01-20 19:16:36 -03:00
Werner Almesberger
5efafd6fcc
libubb/include/ubb/regs4740.h: add symbolic bit/field definitions for DMA
2013-01-20 19:16:17 -03:00
Werner Almesberger
486471e8fc
ubb-patgen/ubb-patgen.c: use symbolic bit/field definitions for MSC_*
2013-01-20 17:34:39 -03:00
Werner Almesberger
4cb68b7ece
libubb/mmcclk.c: use symbolic bit/field definitions for MSC_*
2013-01-20 17:34:17 -03:00
Werner Almesberger
8509c1f7b9
libubb/include/ubb/regs4740.h: add symbolic bit/field definitions for MSC_*
2013-01-20 17:34:01 -03:00
Werner Almesberger
a31351545c
ubb-patgen/timeline.fig: timeline of pattern generation (description in README)
2013-01-18 14:18:44 -03:00
Werner Almesberger
8dda1200c1
ubb/solder-cable.fig: drawing to illustrate soldering a cable to UBB
2013-01-16 22:53:14 -03:00
Werner Almesberger
f920c6695b
ubb-patgen/README: add "!\r" to UART example
2013-01-16 12:08:10 -03:00
Werner Almesberger
5be0b56aa1
swuart-chat/chat.c: options -r and -t to select pins; bit rate argument
2013-01-16 12:07:27 -03:00
Werner Almesberger
b8f2a8b764
ubb-patgen/ubb-patgen.c (send_buffer): track physmem_xlat_vec renaming
2013-01-16 10:30:41 -03:00
Werner Almesberger
e669a1b2d1
libubb/physmem.c (physmem_xlat_vec): rename to physmem_xlat
2013-01-16 10:29:46 -03:00
Werner Almesberger
35d4b9f381
libubb/physmem.c: remove physmem_xlat; cache open pagemap fd
...
To avoid contamination, we open the pagemap file with O_CLOEXEC.
2013-01-16 10:26:51 -03:00
Werner Almesberger
2de15b9aec
ubb-patgen/ubb-patgen.c (send_buffer): use physmem_xlat_vec
2013-01-16 10:16:09 -03:00
Werner Almesberger
3161d5555b
libubb/physmem.c (physmem_xlat_vec): more general version of physmem_xlat
2013-01-16 10:15:24 -03:00
Werner Almesberger
66080fe72e
ubb-patgen/ubb-patgen.c: support trigger sequences, e.g., 01 for a rising edge
2013-01-16 04:45:49 -03:00
Werner Almesberger
4729d00b30
ubb-patgen/ubb-patgen.c: run at realtime priority while waiting for trigger
2013-01-16 03:56:17 -03:00
Werner Almesberger
6d749fafb8
ubb-patgen/ubb-patgen.c (main): sort options alphabetically in "switch" statement
2013-01-16 03:45:22 -03:00
Werner Almesberger
2161341267
ubb-patgen/ubb-patgen.c: new option -w to add delay before sending the pattern
2013-01-16 03:44:30 -03:00
Werner Almesberger
0129a59f86
ubb-patgen/ubb-patgen.c: new option -d to debounce the trigger
2013-01-16 03:30:04 -03:00
Werner Almesberger
39f4e48f8d
ubb-patgen/ubb-patgen.c: new option -i to select frequency by cycle time
2013-01-16 01:58:16 -03:00
Werner Almesberger
c124e1a819
ubb-patgen/ubb-patgen.c: accept SI suffixes and a unit for durations as well
2013-01-16 01:11:57 -03:00
Werner Almesberger
9930ae6576
ubb-patgen/ubb-patgen.c: move frequency difference warning into select_freq
...
This way, all frequency selections print a warning when there's a difference.
2013-01-15 23:48:57 -03:00
Werner Almesberger
ff38f1c249
ubb-patgen/ubb-patgen.c (send_buffer): use physmem_flush instead of cacheflush
2013-01-15 23:31:30 -03:00
Werner Almesberger
a8f905a85f
libubb/physmem.c: new function physmem_flush to flush cached writes to memory
...
This is mainly a wrapper for the "cacheflush" system call.
2013-01-15 23:30:02 -03:00
Werner Almesberger
752a77f015
ubb-patgen/ubb-patgen.c (show_frequencies): show duplicate entries only one
...
This only affects "quiet" operation since entries with the same frequency
differ in the why it's calculated in non-quiet operation.
2013-01-15 23:14:25 -03:00
Werner Almesberger
d5ea5d9ae9
ubb-patgen/README: brief description how ubb-patgen works
2013-01-15 19:34:58 -03:00
Werner Almesberger
0bb711e625
ubb-patgen/ubb-patgen.c: new option -t 0|1 to start pattern on TRIGGER/CLK
...
The trigger delay is typically in the order of 2 us but, since we're not
disabling interrupts or such, could also be much larger.
2013-01-15 18:40:16 -03:00
Werner Almesberger
10b0dea29c
libubb/mmcclk.c (BUS_LIMIT_MHZ): explain the 56 MHz limit
2013-01-15 18:01:27 -03:00
Werner Almesberger
1c76cab66c
ubb-patgen/ubb-patgen.c: new option -m MASK to choose which DATx lines to use
2013-01-15 17:40:49 -03:00
Werner Almesberger
d60ef14022
ubb-patgen/ubb-patgen.c: new option -p to force interpretation as pattern
...
In the unlikely event that we have a file with the same name.
2013-01-15 17:09:08 -03:00
Werner Almesberger
69aba6ae19
ubb-patgen/ubb-patgen.c: accept file (- for standard input) as pattern source
2013-01-15 17:05:33 -03:00
Werner Almesberger
653910b64b
ubb-patgen/table/mktab: make the long vertical axes thinner
...
Looks a bit less old-fashioned that way.
2013-01-15 16:45:08 -03:00
Werner Almesberger
3c9443294d
ubb-patgen/table/: generate a PNG with a table of MMC bus clock frequencies
2013-01-15 16:14:48 -03:00
Werner Almesberger
1aedd4b57b
ubb-patgen/ubb-patgen.c: option -q when dumping frequencies suppressed details
...
... and avoids pretty-printing.
2013-01-15 16:10:14 -03:00
Werner Almesberger
eedb0f0106
ubb-patgen/ubb-patgen.c: "ubb-patgen -f FREQ" calculates the frequency
...
This can then be used by generators to generate an oversampled pattern.
2013-01-15 14:42:00 -03:00
Werner Almesberger
1111156a97
ubb-patgen/ubb-patgen.c: remove pattern frequency and use -f for bus clock
...
Let's leave fancy oversampling calculations to the user.
2013-01-15 14:24:00 -03:00
Werner Almesberger
6e6767175f
ubb-patgen/ubb-patgen.c: clean up usage (-c selects clkout only; -C to monitor)
...
... and active_s is no longer used with a pattern.
2013-01-15 14:08:38 -03:00
Werner Almesberger
72f2125287
libubb/mmcclk.c (mmcclk_start): also reset the MMC controller
2013-01-15 14:08:03 -03:00
Werner Almesberger
a5fbf55419
ubb-patgen/ubb-patgen.c: clean up section structure
2013-01-15 13:02:19 -03:00
Werner Almesberger
dad97398d3
ubb-patgen/ubb-patgen.c (dma_pattern): mlockall (before address translation and DMA)
2013-01-14 23:32:37 -03:00
Werner Almesberger
c6306ff591
ubb-patgen/ubb-patgen.c: DMA works now. Get rid of the PIO option.
2013-01-14 23:29:23 -03:00
Werner Almesberger
b6ee672266
ubb-patgen/: flush dcache and write buffer before doing DMA
2013-01-14 23:26:24 -03:00
Werner Almesberger
908b0631d1
ubb-patgen/ubb-patgen.c: DMA has mystery glitches. Use PIO for now.
2013-01-14 22:18:46 -03:00
Werner Almesberger
3febc9072a
ubb-patgen/ubb-patgen.c (dma_pattern): move pattern parser to parse_pattern
...
... and introduce pattern multipliers <hex>{<repetitions>}
2013-01-14 19:26:15 -03:00
Werner Almesberger
e5cb1c98ea
ubb-patgen/ubb-patgen.c: describe the pattern transfer logic
2013-01-14 17:01:13 -03:00