aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/vme/TODO
blob: 2201ff6f74d1ef4ae811eefc8965457725e1643e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
				TODO
				====

API
===

DMA Resource Allocation incomplete
----------------------------------

The current DMA resource Allocation provides no means of selecting the
suitability of a DMA controller based on it's supported modes of operation, as
opposed to the resource allocation mechanisms for master and slave windows:

	struct vme_resource *vme_dma_request(struct device *dev);

As opposed to:

	struct vme_resource * vme_master_request(struct device *dev,
		vme_address_t aspace, vme_cycle_t cycle, vme_width_t width);

The TSI148 can perform, VME-to-PCI, PCI-to-VME, PATTERN-to-VME, PATTERN-to-PCI,
VME-to-VME and PCI-to-PCI transfers. The CA91C142 can only provide VME-to-PCI
and PCI-to-VME.

Add a mechanism to select a VME controller based on source/target type,
required aspace, cycle and width requirements.


Master window broadcast select mask
-----------------------------------

API currently provides no method to set or get Broadcast Select mask. Suggest
somthing like:

	int vme_master_bmsk_set (struct vme_resource *res, int mask);
	int vme_master_bmsk_get (struct vme_resource *res, int *mask);


Interrupt Generation
--------------------

Add optional timeout when waiting for an IACK.


CR/CSR Buffer
-------------

The VME API provides no functions to access the buffer mapped into the CR/CSR
space.


Mailboxes
---------

Whilst not part of the VME specification, they are provided by a number of
chips. They are currently not supported at all by the API.


Core
====

- Rename vme_master_resource's "pci_resource" to be bus agnostic.
- Improve generic sanity checks (Such as does an offset and size fit within a
  window and parameter checking).

Bridge Support
==============

Tempe (tsi148)
--------------

- Driver can currently only support a single bridge.
- 2eSST Broadcast mode.
- Mailboxes unsupported.
- Improve error detection.
- Control of prefetch size, threshold.
- Arbiter control
- Requestor control

Universe II (ca91c142)
----------------------

- Driver can currently only support a single bridge.
- DMA unsupported.
- RMW transactions unsupported.
- Location Monitors unsupported.
- Mailboxes unsupported.
- Error Detection.
- Control of prefetch size, threshold.
- Arbiter control
- Requestor control
- Slot detection

Universe I (ca91x042)
---------------------

Currently completely unsupported.