Ethernet emulation using a shared mailbox between two processors in a feature phone
First Claim
1. A feature wireless-communications device comprising:
- a wireless transceiver circuit for sending and receiving wireless data over a wireless network using wireless protocols;
a base-band processor, coupled to control the wireless transceiver circuit, for executing routines using a first operating system that contains a first network stack for a network protocol that is a different protocol than the wireless protocols;
an applications processor for executing routines using a second operating system that contains a second network stack for the network protocol that is a different protocol than the wireless protocols;
a shared memory having a first buffer that is written by the base-band processor and read by the applications processor and a second buffer that is written by the applications processor and read by the base-band processor;
a first general-purpose input-output (GPIO) module, coupled to read a signal on a GPIO line and generate a first interrupt to the base-band processor in response to the signal on the GPIO line;
a second GPIO module, coupled to write the signal onto the GPIO line in response to a command from the applications processor;
a shared mailbox, coupled to be written by the applications processor and by the base-band processor, having a plurality of mailbox locations, wherein writing to a first mailbox location in the shared mailbox generates a second interrupt to the applications processor;
a first physical-network-emulating driver, executed by the base-band processor in response to the first interrupt, the first physical-network-emulating driver reading a first network packet from the second buffer in the shared memory in response to the first interrupt; and
a second physical-network-emulating driver, executed by the applications processor in response to the second interrupt, the second physical-network-emulating driver reading a second network packet from the first buffer in the shared memory in response to the second interrupt;
wherein the first network packet is sent to the first network stack by the first physical-network-emulating driver, the first network stack removing a packet header from the first network packet before sending data from the first network packet to a program executing on the base-band processor;
wherein the second network packet is sent to the second network stack by the second physical-network-emulating driver, the second network stack removing a packet header from the second network packet before sending data from the second network packet to an application program executing on the applications processor,whereby communication between processors is emulated by the first and second physical-network-emulating drivers over an emulated physical network using the shared memory.
3 Assignments
0 Petitions
Accused Products
Abstract
A feature phone has a base-band processor and an applications processor that communicate with each other by emulating an internal Ethernet within the phone. TCP/IP stacks in each processor receive data from high-level applications for transmission to the other processor. Ethernet-emulating drivers are called by the IP layers. An Ethernet-emulating transmit driver writes IP-packet data to a shared memory and sends an interrupt to the other processor, which activates a receive routine that reads the IP packet data from the shared memory and sends it up through the TCP/IP stack. There is no twisted-pair cable or other media since the shared memory acts as the transfer media. A shared mailbox holds the packet length and sends an interrupt to one processor when written, while a general-purpose input-output GPIO module sends an interrupt to the other processor. The internal emulated-Ethernet is entirely within the phone and separate from cellular networks.
-
Citations
22 Claims
-
1. A feature wireless-communications device comprising:
-
a wireless transceiver circuit for sending and receiving wireless data over a wireless network using wireless protocols; a base-band processor, coupled to control the wireless transceiver circuit, for executing routines using a first operating system that contains a first network stack for a network protocol that is a different protocol than the wireless protocols; an applications processor for executing routines using a second operating system that contains a second network stack for the network protocol that is a different protocol than the wireless protocols; a shared memory having a first buffer that is written by the base-band processor and read by the applications processor and a second buffer that is written by the applications processor and read by the base-band processor; a first general-purpose input-output (GPIO) module, coupled to read a signal on a GPIO line and generate a first interrupt to the base-band processor in response to the signal on the GPIO line; a second GPIO module, coupled to write the signal onto the GPIO line in response to a command from the applications processor; a shared mailbox, coupled to be written by the applications processor and by the base-band processor, having a plurality of mailbox locations, wherein writing to a first mailbox location in the shared mailbox generates a second interrupt to the applications processor; a first physical-network-emulating driver, executed by the base-band processor in response to the first interrupt, the first physical-network-emulating driver reading a first network packet from the second buffer in the shared memory in response to the first interrupt; and a second physical-network-emulating driver, executed by the applications processor in response to the second interrupt, the second physical-network-emulating driver reading a second network packet from the first buffer in the shared memory in response to the second interrupt; wherein the first network packet is sent to the first network stack by the first physical-network-emulating driver, the first network stack removing a packet header from the first network packet before sending data from the first network packet to a program executing on the base-band processor; wherein the second network packet is sent to the second network stack by the second physical-network-emulating driver, the second network stack removing a packet header from the second network packet before sending data from the second network packet to an application program executing on the applications processor, whereby communication between processors is emulated by the first and second physical-network-emulating drivers over an emulated physical network using the shared memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for transferring data from a first processor to a second processor within a mobile device comprising:
-
receiving first application data from a first application executing on the first processor; forming a first packet header with a network address of the second processor as a destination address and a network address of the first processor as a source address; encapsulating the first application data with the first packet header to form a first network packet; writing the first network packet to a shared memory using a first write pointer; writing a packet length of the first network packet to a first shared mailbox; activating an output line to the second processor to interrupt the second processor; in response to the interrupt to the second processor, the second processor reading the packet length from the first shared mailbox; reading the first network packet from the shared memory using a second read pointer and discarding any data past the packet length; incrementing the second read pointer; extracting the first application data from the first network packet by discarding the first packet header read from the shared memory using the second read pointer but passing the first application data to a second application executing on the second processor; the second processor clearing the first shared mailbox; and once the first shared mailbox has been cleared, incrementing the first write pointer and de-activating the output line, whereby application data is encapsulated with the first packet header and stored in the shared memory, but never transmitted over a network medium when being transmitted from the first processor to the second processor within the mobile device. - View Dependent Claims (13, 14, 15, 16)
-
-
17. An applications processor for communicating with a base-band processor comprising:
-
processing means for executing high-level programs using an operating system; network stack means, executing in response to the operating system, for encapsulating data from the high-level programs with a packet header; shared memory means for storing data as network packets; inter-processor interface means, coupled between the shared memory means and the base-band processor, for allowing the base-band processor to read and write packets to the shared memory means; shared mailbox means, coupled to the inter-processor interface means and to the processing means, for generating a first interrupt in response to the base-band processor writing to a first location in the shared mailbox means; output means, coupled to the processing means, for driving an interrupt signal onto an output line to the base-band processor; physical-layer receive means, executing on the processing means, for reading a network packet from the shared memory means in response to the first interrupt, the physical-layer receive means passing the network packet to the network stack means, the network stack means removing the packet header and sending packet data to one of the high-level programs; and physical-layer transmit means, executing on the processing means, for writing the network packet to the shared memory means, the physical-layer receive means receiving the network packet with the packet header from the network stack means; wherein the physical-layer transmit means is also for causing generation of the interrupt signal from the output means to the output line after the network packet is written to the shared memory means, whereby network packets with packet headers are sent between processors using the shared memory means. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification