Commit bf1916f1 authored by Grzegorz Daniluk's avatar Grzegorz Daniluk Committed by Adam Wujek

wrc simulation: fix indentation to make checkpatch happy

parent 6d6018d7
...@@ -10,9 +10,9 @@ ...@@ -10,9 +10,9 @@
* **************************************************************************** * ****************************************************************************
* Description: * Description:
* This file provides the main() function that replaces the main function of * This file provides the main() function that replaces the main function of
* wrc_main.c file when WRPC is compiled for testbench. This is done by * wrc_main.c file when WRPC is compiled for testbench. This is done by
* configuring WRPC using make menuconfig: * configuring WRPC using make menuconfig:
* a) by using the default wrpc_sim_defconfig, i.e. "make wrpc_sim_defconfig", or * a) by using the default wrpc_sim_defconfig, i.e. "make wrpc_sim_defconfig",or
* b) by chosing in make menuconfig the following opton: * b) by chosing in make menuconfig the following opton:
* "Build simple software for test of WR PTP Core in simulatin" * "Build simple software for test of WR PTP Core in simulatin"
* *
...@@ -32,60 +32,62 @@ ...@@ -32,60 +32,62 @@
#include "softpll_ng.h" #include "softpll_ng.h"
#include <wrpc.h> /*needed for htons()*/ #include <wrpc.h> /*needed for htons()*/
void wrc_run_task(struct wrc_task *t); int wrpc_test_1(void);
/* /*
* This is a variable that is meant to be set by testbench through memory-manipulation. * This is a variable that is meant to be set by testbench through
* memory-manipulation.
* *
* To allow this, there are still some elements missing: * To allow this, there are still some elements missing:
* - the test_number variable needs to be at a known address, this is already done * - the test_number variable needs to be at a known address, this is already
* for other variables (for VLANs?), so the same needs to be done for this * done for other variables (for VLANs?), so the same needs to be done for
* this
* - testbench needs to be modified appropriately * - testbench needs to be modified appropriately
* *
* The idea behind is that different tests for different testbenches are compiled in * The idea behind is that different tests for different testbenches are
* this file, and the proper test is loaded based on this variable. Each testbench * compiled in this file, and the proper test is loaded based on this variable.
* sets the proper testbench number at th startup * Each testbench sets the proper testbench number at th startup
*/ */
static int test_number = 0; static int test_number;
/* /*
* Basic initialization required for simulation * Basic initialization required for simulation
*/ */
static void wrc_sim_initialize(void) static void wrc_sim_initialize(void)
{ {
uint8_t mac_addr[6]; uint8_t mac_addr[6];
sdb_find_devices(); sdb_find_devices();
timer_init(1); timer_init(1);
//Source MAC used by WRPC's Endpoint /* Source MAC used by WRPC's Endpoint */
mac_addr[0] = 0xDE; mac_addr[0] = 0xDE;
mac_addr[1] = 0xAD; mac_addr[1] = 0xAD;
mac_addr[2] = 0xBE; mac_addr[2] = 0xBE;
mac_addr[3] = 0xEF; mac_addr[3] = 0xEF;
mac_addr[4] = 0xBA; mac_addr[4] = 0xBA;
mac_addr[5] = 0xBE; mac_addr[5] = 0xBE;
ep_init(mac_addr); ep_init(mac_addr);
ep_enable(1, 1); ep_enable(1, 1);
minic_init(); minic_init();
shw_pps_gen_init(); shw_pps_gen_init();
spll_very_init(); spll_very_init();
} }
/* /*
* This is a test used by: * This is a test used by:
* - WRPC testbench located in "testbench/wrc_core" folder of the wr-cores repository * - WRPC testbench located in "testbench/wrc_core" folder of the wr-cores
* (git://ohwr.org/hdl-core-lib/wr-cores.git) * repository (git://ohwr.org/hdl-core-lib/wr-cores.git)
* *
* This test: * This test:
* - sends min-size frames of PTP EtherType (0x88f7) and Dst MAC (01:1B:19:00:00:00) * - sends min-size frames of PTP EtherType (0x88f7) and Dst MAC
* with embedded sequence number and flags providing information about the previously * (01:1B:19:00:00:00) with embedded sequence number and flags providing
* received frame * information about the previously received frame
* - checkes whether the transmitted frames are successfully received back in a proper * - checkes whether the transmitted frames are successfully received back in a
* sequence (it is supposed that the testbench loops back the frames) * proper sequence (it is supposed that the testbench loops back the frames)
* - embeds in the next frame flag and return value regarding the previously received * - embeds in the next frame flag and return value regarding the previously
* frames, i.e.: * received frames, i.e.:
* # the flags say: * # the flags say:
* 0xAA: this is the first frame (no previous frames) * 0xAA: this is the first frame (no previous frames)
* 0xBB: previous frame was successfully received * 0xBB: previous frame was successfully received
...@@ -95,80 +97,79 @@ static void wrc_sim_initialize(void) ...@@ -95,80 +97,79 @@ static void wrc_sim_initialize(void)
*/ */
int wrpc_test_1(void) int wrpc_test_1(void)
{ {
struct hw_timestamp hwts; struct hw_timestamp hwts;
struct wr_ethhdr_vlan tx_hdr; struct wr_ethhdr_vlan tx_hdr;
struct wr_ethhdr rx_hdr; struct wr_ethhdr rx_hdr;
int recvd, i, q_required; int j;
int j; uint8_t tx_payload[NET_MAX_SKBUF_SIZE - 32];
uint8_t tx_payload[NET_MAX_SKBUF_SIZE - 32]; uint8_t rx_payload[NET_MAX_SKBUF_SIZE - 32];
uint8_t rx_payload[NET_MAX_SKBUF_SIZE - 32]; int ret = 0;
int ret; int tx_cnt = 0, rx_cnt = 0, pl_cnt;
int tx_cnt=0, rx_cnt=0, pl_cnt; /* error code:
// error code: * 0xAA - first
// 0xAA - first * 0xBB - normal
// 0xBB - normal * 0xE* - error code:
// 0xE* - error code: * 0 - Error: returned zero value
// 0 - Error: returned zero value * 1 - Error: wrong seqID
// 1 - Error: wrong seqID * 2 - Error: error of rx */
// 2 - Error: error of rx int code = 0xAA;
int code=0xAA;
/** prepare dummy frame */
/// prepare dummy frame /* payload */
//payload for (j = 0; j < 80; ++j)
for(j=0; j<80; ++j) { tx_payload[j] = 0xC7;/* j; */
tx_payload[j] = 0xC7;//j;
} /* MAC address and EtherType of PTP */
//MAC address and EtherType of PTP memcpy(tx_hdr.dstmac, "\x01\x1B\x19\x00\x00\x00", 6);
memcpy(tx_hdr.dstmac, "\x01\x1B\x19\x00\x00\x00", 6); tx_hdr.ethtype = htons(0x88f7);
tx_hdr.ethtype = htons(0x88f7);
/** main loop, send test frames */
/// main loop, send test frames for (;;) {
for (;;) /* seqID */
{ tx_payload[0] = 0xFF & (tx_cnt >> 8);
// seqID tx_payload[1] = 0xFF & tx_cnt;
tx_payload[0] = 0xFF & (tx_cnt >> 8);
tx_payload[1] = 0xFF & tx_cnt; tx_payload[2] = 0xFF & (code >> 8);
tx_payload[3] = 0xFF & code;
tx_payload[2] = 0xFF & (code >> 8);
tx_payload[3] = 0xFF & code; /* rx return value */
tx_payload[4] = 0xFF & (ret >> 8);
// rx return value tx_payload[5] = 0xFF & ret;
tx_payload[4] = 0xFF & (ret >> 8);
tx_payload[5] = 0xFF & ret; /* A frame is sent out with sequenceID (firt octet) and awaited
* reception. */
/* A frame is sent out with sequenceID (firt octet) and awaited reception. */ minic_tx_frame(&tx_hdr, tx_payload, 62, &hwts);
minic_tx_frame(&tx_hdr, tx_payload, 62, &hwts); tx_cnt++;
tx_cnt++; ret = minic_rx_frame(&rx_hdr, rx_payload, NET_MAX_SKBUF_SIZE,
ret=minic_rx_frame(&rx_hdr, rx_payload, NET_MAX_SKBUF_SIZE, &hwts); &hwts);
/// check whether the received value is OK /** check whether the received value is OK */
if(ret == 0) if (ret == 0)
code = 0xE0; // Error: returned zero value code = 0xE0; /* Error: returned zero value */
else if(ret > 0 ) { else if (ret > 0) {
if(pl_cnt == rx_cnt) if (pl_cnt == rx_cnt) {
{ rx_cnt++;
rx_cnt++; code = 0xBB; /* OK */
code = 0xBB; // OK } else {
} rx_cnt = pl_cnt+1;
else { code = 0xE1; /* Error: wrong seqID */
rx_cnt = pl_cnt+1; }
code = 0xE1; // Error: wrong seqID } else
} code = 0xE2; /* Error: error of rx */
} }
else
code = 0xE2; // Error: error of rx
}
} }
int main(void)
void main(void)
{ {
wrc_sim_initialize(); wrc_sim_initialize();
switch (test_number) { switch (test_number) {
case 0: case 0:
wrpc_test_1(); wrpc_test_1();
break; break;
default: default:
while(1); while (1)
} ;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment