Changes between Version 5 and Version 6 of mnc_driver


Ignore:
Timestamp:
Dec 5, 2016, 7:35:31 PM (7 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • mnc_driver

    v5 v6  
    88
    99This component has a DMA capability, to access the memory mapped RX and TX ethernet packets queues.
    10 These queues are implemented by a chained buffers structure, called NIC_CHBUF, and implemented by the ''nic_chbuf_t'' structure.
     10These queues are implemented as the chained buffers structure ''nic_chbuf_t'', defined  [source:soft/giet_vm/giet_drivers/mnc_driver.h here] .
    1111
    12 It can exist only one ethernet network controller in the architecture, but to improve the throughput, it supports up to 4 channels (i.e. 4 TX and 4 RX queues), indexed by a key depending on the source IP address for the RX packets, and depending on the destination IP address for the TX packets. All channels use the same source MAC address.
     12It can exist only one Ethernet network controller in the architecture, but to improve the throughput, it supports up to 4 channels (i.e. 4 TX and 4 RX queues), indexed by a key depending on the source IP address for the RX packets, and depending on the destination IP address for the TX packets. All channels use the same source MAC address.
    1313
    14 The Ethernet packet length can have any value, between 64 to 1538 bytes.
     14The Ethernet packet length can have any value, from 64 to 1538 bytes.
    1515The data transfer unit between software and the NIC is a 4 Kbytes "container", containing an integer number of variable size packets. The max number of packets in a container is 66 packets.
    1616The first 34 words of a container are the container header :
     
    5959 * return a non-zero value if packet can be read / return zero if queue is empty.
    6060                         
    61  === 4) void  '''_mnc_write'''( unsigned int channel ,  void * buffer , unsigned int length ) ===
     61 === 4) void  '''_mnc_write'''( unsigned int channel ,  char * buffer , unsigned int length ) ===
    6262This function writes an Ethernet packet in the TX queue defined by the channel argument. It should be called after the _mnc_writable() function.
    6363 * '''channel''' : channel index
     
    6565 * '''length''' : Ethernet packet length (bytes)
    6666
    67  === 5) void  '''_mnc_read'''( unsigned int channel , void * buffer ) ===
     67 === 5) void  '''_mnc_read'''( unsigned int channel , char * buffer ) ===
    6868This function read an Ethernet packet from the RX queue defined by the channel argument. It should be called after the _mnc_readable() function.
    6969 * '''channel''' : channel index