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
Werner Almesberger
fa8b5b6324
ubb-patgen/ubb-patgen.c: clean up pattern generation and boundaries
...
The main change is to use only a single transfer and thus avoid tri-stating
DATx during the command phase. To control the timing, we put the first word
"manually" into the FIFO, wait until it has been sent on the bus, and only
then DMA the rest.
2013-01-14 17:01:01 -03:00
Werner Almesberger
09bf9c23ab
ubb-patgen/: add DMA-based pattern transfer (WIP)
...
Works for some patterns but seems to have issues at the edge of
transfers. Clock selection also needs more work.
2013-01-14 03:55:51 -03:00
Werner Almesberger
8d59f8a206
libubb/: add experimental physical memory allocation/mapping module
...
The API is fairly inflexible and is very likely to change.
2013-01-14 03:54:17 -03:00