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
Werner Almesberger
1eb8e64811
libubb/mmcclk.c: helper functions for selecting and configuring the MMC bus clock
...
Experimental.
2013-01-07 15:19:19 -03:00
Werner Almesberger
a593da0cd0
libubb/Makefile: unleak mmcclk.o and mis-typed mmclk.h
2013-01-07 14:20:39 -03:00
Werner Almesberger
2004d8c90a
ubblib/Makefile: don't generate the versioned shared library
...
We only need libubb.so for installation.
2013-01-07 11:47:53 -03:00
Werner Almesberger
b557adf95e
ubbctl/Makefile: add copyright header
2013-01-07 08:25:16 -03:00
Werner Almesberger
7b8a2e13ed
ubbctl/Makefile: make default build shared; add target "static"
2013-01-07 08:24:11 -03:00
Werner Almesberger
64c14fb709
libubb/Makefile: build also a shared version of libubb; better cleanup
...
The improved cleanup removes the library after a partially successful build.
2013-01-07 08:21:00 -03:00