linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] NFC: NCI protocol proposal
@ 2011-08-09 15:04 Elias, Ilan
  2011-08-09 17:43 ` Lauro Ramos Venancio
  2011-08-11 18:08 ` Samuel Ortiz
  0 siblings, 2 replies; 6+ messages in thread
From: Elias, Ilan @ 2011-08-09 15:04 UTC (permalink / raw)
  To: aloisio.almeida@openbossa.org, lauro.venancio@openbossa.org,
	samuel@sortiz.org
  Cc: linux-wireless@vger.kernel.org

Hi Lauro, Aloisio, Samuel, all,

We would like to implement the NFC Controller Interface (NCI) protocol for the NFC subsystem.
The NCI is a standard communication protocol between an NFC Controller (NFCC) and a Device Host (DH), defined by the NFC Forum.

The NCI protocol implementation will be chip independent and responsible for:
	- Reset, initialization and configuration of the NFC controller
	- Sending commands/data to the NFC controller
	- Receiving responses/notifications/data from the NFC controller
	- Flow control for Control and Data Messages
	- Segmentation and reassembly for Control and Data Messages
	- An addressing scheme for NFC Execution Environments (NFCEE), e.g. 	secure element
	- An addressing scheme for Remote NFC Endpoints (NFCEE or RF targets) 	(via logical connections)

The NCI protocol will be added to the NFC subsystem below the NFC core:
 
+--------------------------------------+
|              USER SPACE              |
+--------------------------------------+
     ^                        ^
     | low-level              | control
     | data exchange          | operations
     |                        |
     |                        v
     |                  +-----------+
     | AF_NFC           |  netlink  |
     | socket           +-----------+
     | raw                    ^
     |                        |
     v                        v
+---------+             +-----------+
| rawsock | <---------> | NFC core  |
+---------+             +-----------+
                	            ^
                              |
                              v
              	      +-----------+
                        | NCI core  |
                        +-----------+
				      ^
				      |
				      V
			      +-----------+
			      |  driver   |
			      +-----------+

The driver will register itself to the NCI core, and in turn the NCI core will register itself to the NFC core.

We need to add the following 2 control operations (via generic netlink):
	- Dev_up, which turn on the NFC controller (this operation may take a 	few seconds, as it can download new FW to the NFC controller)
	- Dev_down, which turn off the NFC controller
The dev_up/down approach was also used with HCI protocol in the BlueZ project.

We suggest placing the NCI code in the net\nfc folder (beside the NFC code), as it's a generic and chip independent protocol, and not a driver.
This approach was also used with HCI protocol in the BlueZ project.
The driver itself will be located at drivers\nfc folder.

The NCI code will be divided in a few files, e.g. nci_core, nci_rsp, nci_ntf etc.

We'll appreciate your comments.

Thanks & BR
Ilan Elias
Texas Instruments

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-08-14 11:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-09 15:04 [RFC] NFC: NCI protocol proposal Elias, Ilan
2011-08-09 17:43 ` Lauro Ramos Venancio
2011-08-09 18:02   ` Johannes Berg
2011-08-11 15:38     ` Elias, Ilan
2011-08-11 18:08 ` Samuel Ortiz
2011-08-14 11:51   ` Elias, Ilan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).