1
0
mirror of git://projects.qi-hardware.com/ben-blinkenlights.git synced 2024-11-04 23:15:19 +02:00
Commit Graph

244 Commits

Author SHA1 Message Date
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
Werner Almesberger
47140384ee ubb-patgen/hw/: a simple resistor on CMD is sufficient - no need for a cap
Cheaper and easier to control.
2013-01-14 03:11:39 -03:00
Werner Almesberger
52ce1947c5 ubb-patgen/: UBB-based pattern generator (WIP)
For now, it only knows to synthesize the clock and to output it.
2013-01-07 17:01:51 -03:00
Werner Almesberger
7c1f06530d ubb-patgen/hw/labels.fig: cut-out labels for the wires 2013-01-07 17:01:17 -03:00
Werner Almesberger
ed91f621e5 ubb-patgen/hw/: schematics of a pattern generator based on UBB 2013-01-07 17:00:28 -03:00
Werner Almesberger
127e18d7ed libubb/Makefile: get rid of version bureaucracy (suggested by Kyak) 2013-01-07 16:28:59 -03:00
Werner Almesberger
b18d688570 libubb/mmcclk.c (mmcclk_first): base clock calculation on state of CPCCR.PCS
Also rename BEN_SYS_CLK_HZ to BEN_PLL_CLK_HZ, since the system clock
depends on CPCCR.PCS (while we assume BEN_PLL_CLK_HZ to be constant.)
2013-01-07 16:16:31 -03:00
Werner Almesberger
2f4e1bd6d7 libubb/include/ubb/regs4740.h: add CPCCR (clock control register) 2013-01-07 16:15:38 -03:00