Hi Bin Hu1,
Yes, the NDK supports raw sockets and you can create a raw socket just how you guessed.
Once you create a raw socket, you will be able to receive "non standard" packets (i.e. Ethernet frame with 'type' field other than IPv4/v6 or ARP) in your application through the raw socket. Such a frame is passed to the raw module, which then writes it into the socket buffer.
So, you can write your application to handle whatever protocol you want. You would just get the data from the socket and decode it according to the protocol.
Now for the driver, my understanding is that you may need to configure the driver to be in promiscuous mode. But I would have to let the Sitara Team help you with how to do that part.
Steve