* Authors:
* - Jan Dolezal <pm.jenik@gmail.com>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * This document contains proprietary information belonging to Czech
+ * Technical University in Prague. Passing on and copying of this
+ * document, and communication of its contents is not permitted
+ * without prior written authorization.
*
* File : cmd_netstats.c
*
* Abstract:
- * This file contains commands for net statistics (ethernet interface and LwIP)
+ * This file contains commands for net statistics (ethernet interface and LwIP)
*
*/
int cmd_do_read_linkstat(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
{
- if(!isPostInitialized())
- {
+ if (!isPostInitialized()) {
rpp_sci_printf("Eth not initialized run 'ethinit' command first.\n");
return FAILURE;
}
struct netif *netif = rpp_eth_get_netif(INTERFACE_INSTANCE_NUMBER);
- if(rpp_eth_phylinkstat(INTERFACE_INSTANCE_NUMBER))
- rpp_sci_printf("%c%c%d : UP\r\n", netif->name[0], netif->name[1], netif->num);
- else
- rpp_sci_printf("%c%c%d : DOWN\r\n", netif->name[0], netif->name[1], netif->num);
- return SUCCESS;
+ if (rpp_eth_phylinkstat(INTERFACE_INSTANCE_NUMBER))
+ rpp_sci_printf("%c%c%d : UP\r\n", netif->name[0], netif->name[1], netif->num);
+ else
+ rpp_sci_printf("%c%c%d : DOWN\r\n", netif->name[0], netif->name[1], netif->num);
+ return SUCCESS;
}
int cmd_do_read_mac(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
{
- if(!isPostInitialized())
- {
+ if (!isPostInitialized()) {
rpp_sci_printf("Eth not initialized run 'ethinit' command first.\n");
return FAILURE;
}
- uint8_t macaddr[18];
- rpp_eth_get_macAddrStr(INTERFACE_INSTANCE_NUMBER,macaddr);
- rpp_sci_printf((const char*)"%s\n", macaddr);
- return SUCCESS;
+ uint8_t macaddr[18];
+ rpp_eth_get_macAddrStr(INTERFACE_INSTANCE_NUMBER,macaddr);
+ rpp_sci_printf((const char *)"%s\n", macaddr);
+ return SUCCESS;
}
int cmd_do_read_ip(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
{
- if(!isPostInitialized())
- {
+ if (!isPostInitialized()) {
rpp_sci_printf("Eth not initialized run 'ethinit' command first.\n");
return FAILURE;
}
- struct netif *netif = rpp_eth_get_netif(INTERFACE_INSTANCE_NUMBER);
- uint8_t ipString[16];
- rpp_eth_getIPDecimalStr(netif->ip_addr, ipString);
- rpp_sci_printf("Address: %s\r\n", ipString);
- rpp_eth_getIPDecimalStr(netif->netmask, ipString);
- rpp_sci_printf("Netmask: %s\r\n", ipString);
- rpp_eth_getIPDecimalStr(netif->gw, ipString);
- rpp_sci_printf("Gateway: %s\r\n", ipString);
- return SUCCESS;
+ struct netif *netif = rpp_eth_get_netif(INTERFACE_INSTANCE_NUMBER);
+ uint8_t ipString[16];
+ rpp_eth_getIPDecimalStr(netif->ip_addr, ipString);
+ rpp_sci_printf("Address: %s\r\n", ipString);
+ rpp_eth_getIPDecimalStr(netif->netmask, ipString);
+ rpp_sci_printf("Netmask: %s\r\n", ipString);
+ rpp_eth_getIPDecimalStr(netif->gw, ipString);
+ rpp_sci_printf("Gateway: %s\r\n", ipString);
+ return SUCCESS;
}
volatile struct emac_tx_bd *temporary = bufferDescriptor - 1;
/* first try space before given bd */
- if((uint32_t) temporary >= EMAC_CTRL_RAM_BASE_m(0) && temporary->next == bufferDescriptor)
+ if ((uint32_t)temporary >= EMAC_CTRL_RAM_BASE_m(0) && temporary->next == bufferDescriptor)
return temporary;
temporary = bufferDescriptor->next;
- while(temporary != bufferDescriptor && temporary != NULL)
- {
- if(temporary->next == bufferDescriptor)
- return temporary;
- temporary = (temporary + 1); /* going through memory, if you want to go through bd chains put here 'temporary = temporary->next;' */
- if( (uint32_t)(temporary+1) > EMAC_CTRL_RAM_BASE_m(0)+SIZE_EMAC_CTRL_RAM){ /* when out of CPPI RAM */
- temporary = (struct emac_tx_bd *) EMAC_CTRL_RAM_BASE_m(0); /* continue scanning from the beginning */
- }
- }
- return (struct emac_tx_bd *)-1; /* not found */
+ while (temporary != bufferDescriptor && temporary != NULL) {
+ if (temporary->next == bufferDescriptor)
+ return temporary;
+ temporary = (temporary + 1); /* going through memory, if you want to go through bd chains put here 'temporary = temporary->next;' */
+ if ( (uint32_t)(temporary+1) > EMAC_CTRL_RAM_BASE_m(0)+SIZE_EMAC_CTRL_RAM) /* when out of CPPI RAM */
+ temporary = (struct emac_tx_bd *)EMAC_CTRL_RAM_BASE_m(0); /* continue scanning from the beginning */
+ }
+ return (struct emac_tx_bd *)-1; /* not found */
}
void print_bd_content(volatile struct emac_tx_bd *bufferDescriptor, boolean_t humanReadable)
{
- uint16_t data;
- rpp_sci_printf("Buffer Descriptor at 0x%08x\n", bufferDescriptor);
- rpp_sci_printf("Next BD:\t0x%08x\n", bufferDescriptor->next);
- rpp_sci_printf("Data ptr:\t0x%08x\n", bufferDescriptor->bufptr);
- rpp_sci_printf("Buf offset:\t%d\tBuf length:\t%d\n", (bufferDescriptor->bufoff_len >> 16), (bufferDescriptor->bufoff_len & 0xffff));
- if(!humanReadable)
- {
- rpp_sci_printf("Flags:\t\t0x%04x\t", (bufferDescriptor->flags_pktlen >> 16));
- }
- else
- {
- data = bufferDescriptor->flags_pktlen;
- rpp_sci_printf("Flags:\t%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n", (data & EMAC_DSC_FLAG_SOP)?"SOP":"", (data & EMAC_DSC_FLAG_EOP)?"EOP":"", (data & EMAC_DSC_FLAG_OWNER)?"OWNER":"", (data & EMAC_DSC_FLAG_EOQ)?"EOQ":"", (data & EMAC_DSC_FLAG_TDOWNCMPLT)?"TDWN":"", (data & EMAC_DSC_FLAG_PASSCRC)?"PSCRC":"", (data & EMAC_DSC_FLAG_JABBER)?"JBR":"", (data & EMAC_DSC_FLAG_OVERSIZE)?"OVSZ":"", (data & EMAC_DSC_FLAG_FRAGMENT)?"FRGM":"", (data & EMAC_DSC_FLAG_UNDERSIZED)?"UNSZ":"", (data & EMAC_DSC_FLAG_CONTROL)?"CTRL":"", (data & EMAC_DSC_FLAG_OVERRUN)?"OVRUN":"", (data & EMAC_DSC_FLAG_CODEERROR)?"CODEERR":"", (data & EMAC_DSC_FLAG_ALIGNERROR)?"ALGNERR":"", (data & EMAC_DSC_FLAG_CRCERROR)?"CRCERR":"", (data & EMAC_DSC_FLAG_NOMATCH)?"NOMATCH":"");
- }
- rpp_sci_printf("Pkt length:\t%d\n", (bufferDescriptor->flags_pktlen & 0xffff));
- rpp_sci_printf("Pbuf ptr:\t0x%08x\n", bufferDescriptor->pbuf);
+ uint16_t data;
+
+ rpp_sci_printf("Buffer Descriptor at 0x%08x\n", bufferDescriptor);
+ rpp_sci_printf("Next BD:\t0x%08x\n", bufferDescriptor->next);
+ rpp_sci_printf("Data ptr:\t0x%08x\n", bufferDescriptor->bufptr);
+ rpp_sci_printf("Buf offset:\t%d\tBuf length:\t%d\n", (bufferDescriptor->bufoff_len >> 16), (bufferDescriptor->bufoff_len & 0xffff));
+ if (!humanReadable)
+ rpp_sci_printf("Flags:\t\t0x%04x\t", (bufferDescriptor->flags_pktlen >> 16));
+ else
+ {
+ data = bufferDescriptor->flags_pktlen;
+ rpp_sci_printf("Flags:\t%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n", (data & EMAC_DSC_FLAG_SOP) ? "SOP" : "", (data & EMAC_DSC_FLAG_EOP) ? "EOP" : "", (data & EMAC_DSC_FLAG_OWNER) ? "OWNER" : "", (data & EMAC_DSC_FLAG_EOQ) ? "EOQ" : "", (data & EMAC_DSC_FLAG_TDOWNCMPLT) ? "TDWN" : "", (data & EMAC_DSC_FLAG_PASSCRC) ? "PSCRC" : "", (data & EMAC_DSC_FLAG_JABBER) ? "JBR" : "", (data & EMAC_DSC_FLAG_OVERSIZE) ? "OVSZ" : "", (data & EMAC_DSC_FLAG_FRAGMENT) ? "FRGM" : "", (data & EMAC_DSC_FLAG_UNDERSIZED) ? "UNSZ" : "", (data & EMAC_DSC_FLAG_CONTROL) ? "CTRL" : "", (data & EMAC_DSC_FLAG_OVERRUN) ? "OVRUN" : "", (data & EMAC_DSC_FLAG_CODEERROR) ? "CODEERR" : "", (data & EMAC_DSC_FLAG_ALIGNERROR) ? "ALGNERR" : "", (data & EMAC_DSC_FLAG_CRCERROR) ? "CRCERR" : "", (data & EMAC_DSC_FLAG_NOMATCH) ? "NOMATCH" : "");
+ }
+ rpp_sci_printf("Pkt length:\t%d\n", (bufferDescriptor->flags_pktlen & 0xffff));
+ rpp_sci_printf("Pbuf ptr:\t0x%08x\n", bufferDescriptor->pbuf);
}
/*
*/
void print_bds_state(uint8_t mode, uint8_t param)
{
- volatile struct emac_tx_bd *bufferDescriptor = (struct emac_tx_bd *) EMAC_CTRL_RAM_BASE_m(0);
+ volatile struct emac_tx_bd *bufferDescriptor = (struct emac_tx_bd *)EMAC_CTRL_RAM_BASE_m(0);
uint16_t index = 0;
+
rpp_sci_printf("TX:");
- while(index < 409)
- {
- if(!(index%10)){
+ while (index < 409) {
+ if (!(index%10)) {
rpp_sci_printf(" ");
- if(!(index%50))rpp_sci_printf("\n");
+ if (!(index%50)) rpp_sci_printf("\n");
}
- if(index == 204){
+ if (index == 204)
rpp_sci_printf("\nRX: ");
+ if (mode == 0) {
+ if (bufferDescriptor->flags_pktlen & ((1 << 15) >> (param%16)))
+ rpp_sci_printf("f");
+ else
+ rpp_sci_printf(".");
}
- if (mode == 0){
- if(bufferDescriptor->flags_pktlen & ((1 << 15) >> (param%16))){
- rpp_sci_printf("f");
- }else{
- rpp_sci_printf(".");
- }
- }else if(mode == 1){
- if(bufferDescriptor->next == NULL){
- rpp_sci_printf("0");
- }else{
- rpp_sci_printf(".");
- }
- }else return;
- bufferDescriptor++;
- index++;
+ else if (mode == 1) {
+ if (bufferDescriptor->next == NULL)
+ rpp_sci_printf("0");
+ else
+ rpp_sci_printf(".");
+ }
+ else return;
+ bufferDescriptor++;
+ index++;
}
rpp_sci_printf("\n");
}
#define BUF_SIZE 15
-unsigned long readNum(uint8_t minamount, uint8_t maxamount, boolean_t hex){
+unsigned long readNum(uint8_t minamount, uint8_t maxamount, boolean_t hex)
+{
unsigned long out = 0;
uint8_t input_buffer[BUF_SIZE];
uint8_t buf_index = 0;
uint8_t input;
- do{
- input = rpp_sci_getc();
- if(input == '\b' && buf_index>0){
- input_buffer[buf_index] = '\0';
- buf_index--;
- echo('\b');
- echo( ' ');
- echo('\b');
- }else if(buf_index>=maxamount){
- continue;
- }else if(input <= '9' && input >= '0'){
- input_buffer[buf_index] = input - '0';
- echo(input);
- buf_index++;
- }else if(hex && (input <= 'f' && input >= 'a')){
- input_buffer[buf_index] = input - ('a' - 10);
- echo(input);
- buf_index++;
- }else if(hex && (input <= 'F' && input >= 'A')){
- input_buffer[buf_index] = input - ('A' - 10);
- echo((input + ('a' - 'A')));
- buf_index++;
- }
- }while( (input != '\r' && input != '\n' && buf_index<BUF_SIZE) || buf_index<minamount);
- input = 0; /* use as index */
- while(input < buf_index){
- if(hex){
- out = (out << 4) + input_buffer[input];
- }else{
- out = (out*10) + input_buffer[input];
- }
- input++;
- }
- return out;
+
+ do {
+ input = rpp_sci_getc();
+ if (input == '\b' && buf_index > 0) {
+ input_buffer[buf_index] = '\0';
+ buf_index--;
+ echo('\b');
+ echo( ' ');
+ echo('\b');
+ }
+ else if (buf_index >= maxamount)
+ continue;
+ else if (input <= '9' && input >= '0') {
+ input_buffer[buf_index] = input - '0';
+ echo(input);
+ buf_index++;
+ }
+ else if (hex && (input <= 'f' && input >= 'a')) {
+ input_buffer[buf_index] = input - ('a' - 10);
+ echo(input);
+ buf_index++;
+ }
+ else if (hex && (input <= 'F' && input >= 'A')) {
+ input_buffer[buf_index] = input - ('A' - 10);
+ echo((input + ('a' - 'A')));
+ buf_index++;
+ }
+ } while ( (input != '\r' && input != '\n' && buf_index < BUF_SIZE) || buf_index < minamount);
+ input = 0; /* use as index */
+ while (input < buf_index) {
+ if (hex)
+ out = (out << 4) + input_buffer[input];
+ else
+ out = (out*10) + input_buffer[input];
+ input++;
+ }
+ return out;
}
int cmd_do_bufferdescriptors(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
{
- uint8_t pindex;
+ uint8_t pindex;
uint8_t input;
volatile struct emac_tx_bd *bufferDescriptor;
boolean_t run = TRUE, interactive = FALSE, overview = FALSE;
+
#if RPP_ETH_STATS
boolean_t isrRun = FALSE, rb = FALSE, tb = FALSE;
#endif
/* if eth not initialized return */
- if(!isPostInitialized())
- {
+ if (!isPostInitialized()) {
rpp_sci_printf("Eth not initialized run 'ethinit' command first.\n");
return FAILURE;
}
- /* examine parameters */
- for(pindex = 1;param[pindex] != 0;pindex++)
- {
- if (strncmp((char *) param[pindex], "-i", 3) == 0) {
- interactive = TRUE;
- break;
- } else if (strncmp((char *) param[pindex], "-o", 3) == 0) {
- overview = TRUE;
- break;
- }
+ /* examine parameters */
+ for (pindex = 1; param[pindex] != 0; pindex++) {
+ if (strncmp((char *)param[pindex], "-i", 3) == 0) {
+ interactive = TRUE;
+ break;
+ }
+ else if (strncmp((char *)param[pindex], "-o", 3) == 0) {
+ overview = TRUE;
+ break;
+ }
#if RPP_ETH_STATS
- else if (strncmp((char *) param[pindex], "-r", 3) == 0) {
- isrRun = TRUE;
- break;
- }
- else if (strncmp((char *) param[pindex], "-rb", 4) == 0) {
- rb = TRUE;
- break;
- } else if (strncmp((char *) param[pindex], "-tb", 4) == 0) {
- tb = TRUE;
- break;
- }
+ else if (strncmp((char *)param[pindex], "-r", 3) == 0) {
+ isrRun = TRUE;
+ break;
+ }
+ else if (strncmp((char *)param[pindex], "-rb", 4) == 0) {
+ rb = TRUE;
+ break;
+ }
+ else if (strncmp((char *)param[pindex], "-tb", 4) == 0) {
+ tb = TRUE;
+ break;
+ }
#endif
- }
+ }
struct netif *netif = rpp_eth_get_netif(INTERFACE_INSTANCE_NUMBER);
- if(netif == NULL)
- {
+ if (netif == NULL) {
rpp_sci_printf("netif err\n");
return -1;
}
- if(interactive)
- while(run){
+ if (interactive)
+ while (run) {
input = rpp_sci_getc();
- if(input == 'b'){ /* print buffer descriptor at given address */
+ if (input == 'b') { /* print buffer descriptor at given address */
rpp_sci_printf("-? 0x");
- bufferDescriptor = (struct emac_tx_bd *) readNum(8,8,TRUE);
+ bufferDescriptor = (struct emac_tx_bd *)readNum(8,8,TRUE);
rpp_sci_printf("\n");
/* check it fits EMAC CPPI RAM */
/*if(bufferDescriptor >= EMAC_CTRL_RAM_BASE_m(INTERFACE_INSTANCE_NUMBER) && (bufferDescriptor + sizeof(struct emac_tx_bd)) <= EMAC_CTRL_RAM_BASE_m(INTERFACE_INSTANCE_NUMBER) + SIZE_EMAC_CTRL_RAM)
- {*/
- print_bd_content(bufferDescriptor, FALSE);
+ {*/
+ print_bd_content(bufferDescriptor, FALSE);
/*}
- else
- {
- rpp_sci_printf("address not from BD CPPI RAM range\n");
- }*/
- while(1){
+ else
+ {
+ rpp_sci_printf("address not from BD CPPI RAM range\n");
+ }*/
+ while (1) {
input = rpp_sci_getc();
- if (input == 'n'){ /* next */
+ if (input == 'n') { /* next */
bufferDescriptor = bufferDescriptor->next;
- if(bufferDescriptor != NULL){
+ if (bufferDescriptor != NULL)
print_bd_content(bufferDescriptor, FALSE);
- }else{
+ else {
rpp_sci_printf("NULL\n");
break;
}
- }else if(input == 'p'){ /* previous */
+ }
+ else if (input == 'p') { /* previous */
bufferDescriptor = findPreviousBD(bufferDescriptor);
- if((int32_t)bufferDescriptor != -1)
- {
- if(bufferDescriptor == NULL){
- rpp_sci_printf("NULL\n");
- break;
- }else{
- print_bd_content(bufferDescriptor, FALSE);
- }
+ if ((int32_t)bufferDescriptor != -1) {
+ if (bufferDescriptor == NULL) {
+ rpp_sci_printf("NULL\n");
+ break;
+ }
+ else
+ print_bd_content(bufferDescriptor, FALSE);
}
else
{
rpp_sci_printf("not found\n");
break;
}
- }else if(input == 'r'){ /* reprint */
- if((int32_t)bufferDescriptor == -1 || bufferDescriptor == NULL)break;
- print_bd_content(bufferDescriptor, FALSE);
- }else break;
+ }
+ else if (input == 'r') { /* reprint */
+ if ((int32_t)bufferDescriptor == -1 || bufferDescriptor == NULL) break;
+ print_bd_content(bufferDescriptor, FALSE);
+ }
+ else break;
}
}
- if (input == 'q'){ /* quit */
+ if (input == 'q') { /* quit */
run = FALSE;
continue;
}
#if RPP_ETH_STATS
- else if(input == 's'){ /* general statistics */
+ else if (input == 's') /* general statistics */
printStatistics();
- }else if(input == 't'){ /* print tx channel */
+ else if (input == 't') { /* print tx channel */
print_tx_channel_stat();
continue;
- }else if(input == 'r'){ /* print rx channel */
+ }
+ else if (input == 'r') { /* print rx channel */
print_rx_channel_stat();
continue;
}
#endif
- else if(input == 'a'){ /* autocheck consistency of buffer descriptors */
+ else if (input == 'a') { /* autocheck consistency of buffer descriptors */
- }else if(input == 'o'){ /* overview */
- uint8_t mode = rpp_sci_getc() - '0';
- uint8_t param = rpp_sci_getc() - '0';
- print_bds_state(mode, param);
- }else if(input == 'c'){ /* convert */
- rpp_sci_printf("0x%08x", bd_addr((uint16_t)readNum(1, 3, FALSE)));
}
+ else if (input == 'o') { /* overview */
+ uint8_t mode = rpp_sci_getc() - '0';
+ uint8_t param = rpp_sci_getc() - '0';
+ print_bds_state(mode, param);
+ }
+ else if (input == 'c') /* convert */
+ rpp_sci_printf("0x%08x", bd_addr((uint16_t)readNum(1, 3, FALSE)));
}
else
{
- if(overview){
- rpp_sci_printf(" --- OVERVIEWS ---\n");
+ if (overview) {
+ rpp_sci_printf(" --- OVERVIEWS ---\n");
rpp_sci_printf("bd->next points to NULL\n");
- print_bds_state(1, 0);
+ print_bds_state(1, 0);
rpp_sci_printf("bds with EMAC_DSC_FLAG_SOP\n");
- print_bds_state(0, 0);
+ print_bds_state(0, 0);
rpp_sci_printf("bds with EMAC_DSC_FLAG_EOP\n");
- print_bds_state(0, 1);
+ print_bds_state(0, 1);
rpp_sci_printf("bds with EMAC_DSC_FLAG_OWNER\n");
- print_bds_state(0, 2);
+ print_bds_state(0, 2);
rpp_sci_printf("bds with EMAC_DSC_FLAG_EOQ\n");
- print_bds_state(0, 3);
+ print_bds_state(0, 3);
rpp_sci_printf("bds with EMAC_DSC_FLAG_TDOWNCMPLT\n");
- print_bds_state(0, 4);
+ print_bds_state(0, 4);
rpp_sci_printf("bds with EMAC_DSC_FLAG_PASSCRC\n");
- print_bds_state(0, 5);
- rpp_sci_printf("\nPress any key ...\r");
- rpp_sci_getc();
- /* These flags are not so much important */
+ print_bds_state(0, 5);
+ rpp_sci_printf("\nPress any key ...\r");
+ rpp_sci_getc();
+ /* These flags are not so much important */
rpp_sci_printf("bds with EMAC_DSC_FLAG_JABBER\n");
- print_bds_state(0, 6);
+ print_bds_state(0, 6);
rpp_sci_printf("bds with EMAC_DSC_FLAG_OVERSIZE\n");
- print_bds_state(0, 7);
+ print_bds_state(0, 7);
rpp_sci_printf("bds with EMAC_DSC_FLAG_FRAGMENT\n");
- print_bds_state(0, 8);
+ print_bds_state(0, 8);
rpp_sci_printf("bds with EMAC_DSC_FLAG_UNDERSIZED\n");
- print_bds_state(0, 9);
+ print_bds_state(0, 9);
rpp_sci_printf("bds with EMAC_DSC_FLAG_CONTROL\n");
- print_bds_state(0, 10);
+ print_bds_state(0, 10);
rpp_sci_printf("bds with EMAC_DSC_FLAG_OVERRUN\n");
- print_bds_state(0, 11);
+ print_bds_state(0, 11);
rpp_sci_printf("bds with EMAC_DSC_FLAG_CODEERROR\n");
- print_bds_state(0, 12);
+ print_bds_state(0, 12);
rpp_sci_printf("bds with EMAC_DSC_FLAG_ALIGNERROR\n");
- print_bds_state(0, 13);
+ print_bds_state(0, 13);
rpp_sci_printf("bds with EMAC_DSC_FLAG_CRCERROR\n");
- print_bds_state(0, 14);
+ print_bds_state(0, 14);
rpp_sci_printf("bds with EMAC_DSC_FLAG_NOMATCH\n");
- print_bds_state(0, 15);
+ print_bds_state(0, 15);
}
#if RPP_ETH_STATS
- if(isrRun){
+ if (isrRun) {
rpp_sci_printf(" --- NUMBER OF ISR RUNS ---\n");
rpp_sci_printf("TxIsr: %d", countEMACCore0TxIsr);
rpp_sci_printf("RxIsr: %d", countEMACCore0RxIsr);
}
- return ERR_OK;
+ return ERR_OK;
}
#if LWIP_DHCP
int cmd_do_dhcp(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
{
- if(!isPostInitialized())
- {
+ if (!isPostInitialized()) {
rpp_sci_printf("Eth not initialized run 'ethinit' command first.\n");
return FAILURE;
}
- rpp_sci_printf("not implemented yet.");
- return ERR_OK;
+ rpp_sci_printf("not implemented yet.");
+ return ERR_OK;
}
#endif
#if LWIP_STATS_DISPLAY
int cmd_do_lwip(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
{
- if(!isPostInitialized())
- {
+ if (!isPostInitialized()) {
rpp_sci_printf("Eth not initialized run 'ethinit' command first.\n");
return FAILURE;
}
stats_display();
rpp_sci_printf("\n");
- return ERR_OK;
+ return ERR_OK;
}
#endif
{
int8_t retVal = rpp_eth_init_postInit(0, NULL); /* post OS startup init of eth (LwIP) for application usage -- waits for a while, for auto-negotiation of ethernet speed and DHCP if used */
- switch(retVal){
+ switch (retVal) {
case FAILURE:
rpp_sci_printf("already initialized\n");
break;
return retVal;
}
-#endif /* DOCGEN */
-
-cmd_des_t const cmd_des_linkstat={
- 0,0,
- "ethlinkstat","Print current status of ethernet interface",
-
- "### Command syntax ###\n"
- "\n"
- " ethlinkstat\n"
- "\n"
- "### Description ###\n"
- "\n"
- "This command reads PHY link status assigned to ethernet interface and\n"
- "prints interface name and informs about PHY's status to the output.\n"
- "\n"
- "### Example ###\n"
- "\n"
- " --> ethlinkstat\n"
- " et0 : UP\n"
- "\n"
- " --> ethlinkstat\n"
- " et0 : DOWN\n",
- CMD_HANDLER(cmd_do_read_linkstat), (void *)&cmd_list_netstats
+#endif /* DOCGEN */
+
+cmd_des_t const cmd_des_linkstat = {
+ 0,0,
+ "ethlinkstat","Print current status of ethernet interface",
+
+ "### Command syntax ###\n"
+ "\n"
+ " ethlinkstat\n"
+ "\n"
+ "### Description ###\n"
+ "\n"
+ "This command reads PHY link status assigned to ethernet interface and\n"
+ "prints interface name and informs about PHY's status to the output.\n"
+ "\n"
+ "### Example ###\n"
+ "\n"
+ " --> ethlinkstat\n"
+ " et0 : UP\n"
+ "\n"
+ " --> ethlinkstat\n"
+ " et0 : DOWN\n",
+ CMD_HANDLER(cmd_do_read_linkstat), (void *)&cmd_list_netstats
};
-cmd_des_t const cmd_des_mac={
- 0,0,
- "ethmac","Print current MAC address of ethernet interface",
-
- "### Command syntax ###\n"
- "\n"
- " ethmac\n"
- "\n"
- "### Description ###\n"
- "\n"
- "This command obtains MAC address from ethernet interface structure\n"
- "and prints it to the output.\n"
- "\n"
- "### Example ###\n"
- "\n"
- " --> ethmac\n"
- " 12:34:56:78:9a:bc\n",
- CMD_HANDLER(cmd_do_read_mac), (void *)&cmd_list_netstats
+cmd_des_t const cmd_des_mac = {
+ 0,0,
+ "ethmac","Print current MAC address of ethernet interface",
+
+ "### Command syntax ###\n"
+ "\n"
+ " ethmac\n"
+ "\n"
+ "### Description ###\n"
+ "\n"
+ "This command obtains MAC address from ethernet interface structure\n"
+ "and prints it to the output.\n"
+ "\n"
+ "### Example ###\n"
+ "\n"
+ " --> ethmac\n"
+ " 12:34:56:78:9a:bc\n",
+ CMD_HANDLER(cmd_do_read_mac), (void *)&cmd_list_netstats
};
-cmd_des_t const cmd_des_ip={
- 0,0,
- "ethip","Print current IP address of network interface",
-
- "### Command syntax ###\n"
- "\n"
- " ethip\n"
- "\n"
- "### Description ###\n"
- "\n"
- "This command reads current IP address, netmask and gateway of network\n"
- "interface and prints these to the output.\n"
- "\n"
- "### Example ###\n"
- "\n"
- " --> ethip\n"
- " Address: 192.168.247.1\n"
- " Netmask: 255.255.255.0\n"
- " Gateway: 192.168.247.255\n",
- CMD_HANDLER(cmd_do_read_ip), (void *)&cmd_list_netstats
+cmd_des_t const cmd_des_ip = {
+ 0,0,
+ "ethip","Print current IP address of network interface",
+
+ "### Command syntax ###\n"
+ "\n"
+ " ethip\n"
+ "\n"
+ "### Description ###\n"
+ "\n"
+ "This command reads current IP address, netmask and gateway of network\n"
+ "interface and prints these to the output.\n"
+ "\n"
+ "### Example ###\n"
+ "\n"
+ " --> ethip\n"
+ " Address: 192.168.247.1\n"
+ " Netmask: 255.255.255.0\n"
+ " Gateway: 192.168.247.255\n",
+ CMD_HANDLER(cmd_do_read_ip), (void *)&cmd_list_netstats
};
-cmd_des_t const cmd_des_bufferdescriptors={
- 0,CDESM_SPACE_SEP,
- "ethbd","Examine emac buffer descriptors",
-
- "### Command syntax ###\n"
- "\n"
- " ethbd\n"
- "\n"
- "### Description ###\n"
- "After startup you use keys to control what will be done.\n"
- "\n"
- "- q - quit\n"
- "- s - general statistics\n"
- "- t - transmit channel status\n"
- "- r - receive channel status\n"
- "- b - after giving address of bd it prints bd content\n"
- "- a - checks consistency of buffer descriptors\n"
- "\n"
- "\n"
- "### Example ###\n"
- "\n"
- " --> ethbd\n",
- CMD_HANDLER(cmd_do_bufferdescriptors), (void *)&cmd_list_netstats
+cmd_des_t const cmd_des_bufferdescriptors = {
+ 0,CDESM_SPACE_SEP,
+ "ethbd","Examine emac buffer descriptors",
+
+ "### Command syntax ###\n"
+ "\n"
+ " ethbd\n"
+ "\n"
+ "### Description ###\n"
+ "After startup you use keys to control what will be done.\n"
+ "\n"
+ "- q - quit\n"
+ "- s - general statistics\n"
+ "- t - transmit channel status\n"
+ "- r - receive channel status\n"
+ "- b - after giving address of bd it prints bd content\n"
+ "- a - checks consistency of buffer descriptors\n"
+ "\n"
+ "\n"
+ "### Example ###\n"
+ "\n"
+ " --> ethbd\n",
+ CMD_HANDLER(cmd_do_bufferdescriptors), (void *)&cmd_list_netstats
};
#if LWIP_DHCP
-cmd_des_t const cmd_des_dhcp={
- 0,0,
- "dhcp","Prints and controls DHCP",
-
- "### Command syntax ###\n"
- "\n"
- " dhcp\n"
- "\n"
- "### Description ###\n"
- "\n"
- "\n"
- ".\n"
- "\n"
- "### Example ###\n"
- "\n"
- " --> dhcp\n"
- " \n",
- CMD_HANDLER(cmd_do_dhcp), (void *)&cmd_list_netstats
+cmd_des_t const cmd_des_dhcp = {
+ 0,0,
+ "dhcp","Prints and controls DHCP",
+
+ "### Command syntax ###\n"
+ "\n"
+ " dhcp\n"
+ "\n"
+ "### Description ###\n"
+ "\n"
+ "\n"
+ ".\n"
+ "\n"
+ "### Example ###\n"
+ "\n"
+ " --> dhcp\n"
+ " \n",
+ CMD_HANDLER(cmd_do_dhcp), (void *)&cmd_list_netstats
};
#endif
#if LWIP_STATS_DISPLAY
-cmd_des_t const cmd_des_lwip={
- 0,0,
- "lwip","Prints statistics for the LwIP stack",
-
- "### Command syntax ###\n"
- "\n"
- " lwip\n"
- "\n"
- "### Description ###\n"
- "\n"
- "Sections printed:\n"
- "LINK\n"
- "ETHARP\n"
- "IP\n"
- "ICMP\n"
- "UDP\n"
- "TCP\n"
- "MEM HEAP\n"
- "MEM RAW_PCB\n"
- "MEM UDP_PCB\n"
- "MEM TCP_PCB\n"
- "MEM TCP_PCB_LISTEN\n"
- "MEM TCP_SEB\n"
- "MEM NETBUF\n"
- "MEM NETCONN\n"
- "MEM TCPIP_MSG_API\n"
- "MEM TCPIP_MSG_INPKT\n"
- "MEM SYS_TIMEOUT\n"
- "MEM PBUF_REF/ROM\n"
- "MEM PBUF_POOL\n"
- "SYS\n"
- ".\n"
- "Shown sections depends on modules compiled in.\n"
- " \n",
- CMD_HANDLER(cmd_do_lwip), (void *)&cmd_list_netstats
+cmd_des_t const cmd_des_lwip = {
+ 0,0,
+ "lwip","Prints statistics for the LwIP stack",
+
+ "### Command syntax ###\n"
+ "\n"
+ " lwip\n"
+ "\n"
+ "### Description ###\n"
+ "\n"
+ "Sections printed:\n"
+ "LINK\n"
+ "ETHARP\n"
+ "IP\n"
+ "ICMP\n"
+ "UDP\n"
+ "TCP\n"
+ "MEM HEAP\n"
+ "MEM RAW_PCB\n"
+ "MEM UDP_PCB\n"
+ "MEM TCP_PCB\n"
+ "MEM TCP_PCB_LISTEN\n"
+ "MEM TCP_SEB\n"
+ "MEM NETBUF\n"
+ "MEM NETCONN\n"
+ "MEM TCPIP_MSG_API\n"
+ "MEM TCPIP_MSG_INPKT\n"
+ "MEM SYS_TIMEOUT\n"
+ "MEM PBUF_REF/ROM\n"
+ "MEM PBUF_POOL\n"
+ "SYS\n"
+ ".\n"
+ "Shown sections depends on modules compiled in.\n"
+ " \n",
+ CMD_HANDLER(cmd_do_lwip), (void *)&cmd_list_netstats
};
-#endif
-
-cmd_des_t const cmd_des_ethinit={
- 0,0,
- "ethinit","Post OS startup eth initialization",
-
- "### Command syntax ###\n"
- "\n"
- " ethinit\n"
- "\n"
- "### Description ###\n"
- "This command finishes autonegotiation of PHY and initialize LwIP stack.\n"
- "\n"
- "\n"
- "### Example ###\n"
- "\n"
- " --> ethinit\n"
- " \n",
- CMD_HANDLER(cmd_do_ethinit), (void *)&cmd_list_netstats
+#endif /* if LWIP_STATS_DISPLAY */
+
+cmd_des_t const cmd_des_ethinit = {
+ 0,0,
+ "ethinit","Post OS startup eth initialization",
+
+ "### Command syntax ###\n"
+ "\n"
+ " ethinit\n"
+ "\n"
+ "### Description ###\n"
+ "This command finishes autonegotiation of PHY and initialize LwIP stack.\n"
+ "\n"
+ "\n"
+ "### Example ###\n"
+ "\n"
+ " --> ethinit\n"
+ " \n",
+ CMD_HANDLER(cmd_do_ethinit), (void *)&cmd_list_netstats
};
/** List of commands for lwip, defined as external */
-cmd_des_t const *cmd_list_netstats[]={
- &cmd_des_linkstat,
- &cmd_des_mac,
- &cmd_des_ip,
- &cmd_des_bufferdescriptors,
+cmd_des_t const *cmd_list_netstats[] = {
+ &cmd_des_linkstat,
+ &cmd_des_mac,
+ &cmd_des_ip,
+ &cmd_des_bufferdescriptors,
#if LWIP_DHCP
- &cmd_des_dhcp,
+ &cmd_des_dhcp,
#endif
#if LWIP_STATS_DISPLAY
- &cmd_des_lwip,
+ &cmd_des_lwip,
#endif
- &cmd_des_ethinit,
- NULL
+ &cmd_des_ethinit,
+ NULL
};