Hi Ilan, 2011/8/9 Elias, Ilan <ilane@xxxxxx>: > 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. It sounds very good for me. This is the same architecture Samuel is implementing for the NFC HCI. > > 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. I am not completely convinced that we need the dev up/down. Why is it not possible to load the FW in the probe? > > 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. I agree. Lauro ��.n��������+%������w��{.n�����{���zW����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f