# tcp/ip for tiva tm4c M4 products

**URL:** <https://forums.freertos.org/t/tcp-ip-for-tiva-tm4c-m4-products/5899>\
**Category:** Kernel\
**Created:** [April 18, 2016, 2:37am UTC](https://forums.freertos.org/t/tcp-ip-for-tiva-tm4c-m4-products/5899 "2016-04-18T02:37:04Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [April 18, 2016, 2:37am UTC](https://forums.freertos.org/t/tcp-ip-for-tiva-tm4c-m4-products/5899/1 "2016-04-18T02:37:04Z")

</div>

**[frankthetank34](https://sourceforge.net/u/frankthetank34/)** wrote on [Monday, April 18, 2016](https://sourceforge.net/p/freertos/discussion/382005/thread/63e0e08c/#283a):

Anyone aware of any ports of the freertos-plus-tcp for the TI tiva CCS compiler? I want to use the tcp socket apis on a tm4c1294 launchpad. It appears only the atsam4e and stm32f series are supported. Is that correct?

---

<div class="post-metadata">

**Author:** ![rtel](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/rtel/32/31_2.png) [@rtel](https://forums.freertos.org/u/rtel)\
**Post date:** [April 18, 2016, 7:35am UTC](https://forums.freertos.org/t/tcp-ip-for-tiva-tm4c-m4-products/5899/2 "2016-04-18T07:35:51Z")

</div>

**[rtel](https://sourceforge.net/u/rtel/)** wrote on [Monday, April 18, 2016](https://sourceforge.net/p/freertos/discussion/382005/thread/63e0e08c/#1600):

I think there was somebody on the forum using a Tiva, but we don’t have any code ourselves. If you have FreeRTOS working on the board, and you have a working network driver, then instructions on stitching in FreeRTOS+TCP can be found here: [http://www.freertos.org/FreeRTOS-Plus/FreeRTOS\_Plus\_TCP/FreeRTOS\_TCP\_Porting.html](http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/FreeRTOS_TCP_Porting.html)

---

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [April 19, 2016, 8:02pm UTC](https://forums.freertos.org/t/tcp-ip-for-tiva-tm4c-m4-products/5899/3 "2016-04-19T20:02:09Z")

</div>

**[frankthetank34](https://sourceforge.net/u/frankthetank34/)** wrote on [Tuesday, April 19, 2016](https://sourceforge.net/p/freertos/discussion/382005/thread/63e0e08c/#e7ba):

Within that link, it says that "Each MCU to which FreeRTOS+TCP is ported requires an Ethernet MAC driver. It is assumed this already exists and is known to work. " The ethernet MAC driver for the tiva products would be tivaware. However, I can’t find where this specifies what is required of the the ethernet MAC driver. Is that because the functions are only called from the “network interface port layer”?

In the example network interface.c file for the STM32 parts, there are several other functions defined. Where are prvNetworkInterfaceInput, vMACBProbePhy and others documented? Should I follow the online guide and only provide the init, and interfaceoutput functions? While also sending data via the sendeventstructtoiptask?

Do I need a prvEthernetUpdateConfig() function?

Thanks!

---

<div class="post-metadata">

**Author:** ![rtel](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/rtel/32/31_2.png) [@rtel](https://forums.freertos.org/u/rtel)\
**Post date:** [April 19, 2016, 8:20pm UTC](https://forums.freertos.org/t/tcp-ip-for-tiva-tm4c-m4-products/5899/4 "2016-04-19T20:20:11Z")

</div>

**[rtel](https://sourceforge.net/u/rtel/)** wrote on [Tuesday, April 19, 2016](https://sourceforge.net/p/freertos/discussion/382005/thread/63e0e08c/#e7ba/3439):

There are only two dependencies between the FreeRTOS+TCP code and the  
Ethernet driver, that is, the Ethernet driver must provide two  
functions. The two functions are as per the following two bullet points:

- The network interface port layer must provide a function called [xNetworkInterfaceInitialise()](http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Ethernet_Porting.html#xNetworkInterfaceInitialise)  
that initialises the MAC driver.

- The network interface port layer must provide a function called [xNetworkInterfaceOutput()](http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Ethernet_Porting.html#xNetworkInterfaceOutput)  
that sends data received from the embedded TCP/IP stack to the Ethernet  
MAC driver for transmission.

If those two functions are not provided then the code won’t link, as  
they will be undefined references.

How those functions are implemented is up to you, but it is recommended  
to map them as closely as you can to functions that are already known to  
be working that perform similar functionality.

The implementation of those functions will inevitably call other  
hardware specific function to do things like set up port pins, provide a  
clock to the MAC hardware, probe the PHY, etc., they are the other  
functions you are seeing. They are chip specific, and private to and  
only used internally by the driver - FreeRTOS+TCP does not need them to  
be defined and they can be anything that is required to make the driver  
work (and are nearly always provided for you by the chip vendor).
