xref: /rk3399_rockchip-uboot/test/dm/eth.c (revision e58780dcb7b8656ebc2dd6ba6d0da728bc65bf40)
1bfacad7dSJoe Hershberger /*
2bfacad7dSJoe Hershberger  * Copyright (c) 2015 National Instruments
3bfacad7dSJoe Hershberger  *
4bfacad7dSJoe Hershberger  * (C) Copyright 2015
5bfacad7dSJoe Hershberger  * Joe Hershberger <joe.hershberger@ni.com>
6bfacad7dSJoe Hershberger  *
7bfacad7dSJoe Hershberger  * SPDX-License-Identifier:	GPL-2.0
8bfacad7dSJoe Hershberger  */
9bfacad7dSJoe Hershberger 
10bfacad7dSJoe Hershberger #include <common.h>
11bfacad7dSJoe Hershberger #include <dm.h>
12bfacad7dSJoe Hershberger #include <dm/test.h>
13bfacad7dSJoe Hershberger #include <dm/ut.h>
14bfacad7dSJoe Hershberger #include <fdtdec.h>
15bfacad7dSJoe Hershberger #include <malloc.h>
16bfacad7dSJoe Hershberger #include <net.h>
17bfacad7dSJoe Hershberger 
18bfacad7dSJoe Hershberger DECLARE_GLOBAL_DATA_PTR;
19bfacad7dSJoe Hershberger 
20bfacad7dSJoe Hershberger static int dm_test_eth(struct dm_test_state *dms)
21bfacad7dSJoe Hershberger {
22bfacad7dSJoe Hershberger 	NetPingIP = string_to_ip("1.1.2.2");
23bfacad7dSJoe Hershberger 
24bfacad7dSJoe Hershberger 	setenv("ethact", "eth@10002000");
25bfacad7dSJoe Hershberger 	ut_assertok(NetLoop(PING));
26bfacad7dSJoe Hershberger 	ut_asserteq_str("eth@10002000", getenv("ethact"));
27bfacad7dSJoe Hershberger 
28bfacad7dSJoe Hershberger 	setenv("ethact", "eth@10003000");
29bfacad7dSJoe Hershberger 	ut_assertok(NetLoop(PING));
30bfacad7dSJoe Hershberger 	ut_asserteq_str("eth@10003000", getenv("ethact"));
31bfacad7dSJoe Hershberger 
32bfacad7dSJoe Hershberger 	setenv("ethact", "eth@10004000");
33bfacad7dSJoe Hershberger 	ut_assertok(NetLoop(PING));
34bfacad7dSJoe Hershberger 	ut_asserteq_str("eth@10004000", getenv("ethact"));
35bfacad7dSJoe Hershberger 
36bfacad7dSJoe Hershberger 	return 0;
37bfacad7dSJoe Hershberger }
38bfacad7dSJoe Hershberger DM_TEST(dm_test_eth, DM_TESTF_SCAN_FDT);
39*e58780dcSJoe Hershberger 
40*e58780dcSJoe Hershberger static int dm_test_eth_alias(struct dm_test_state *dms)
41*e58780dcSJoe Hershberger {
42*e58780dcSJoe Hershberger 	NetPingIP = string_to_ip("1.1.2.2");
43*e58780dcSJoe Hershberger 	setenv("ethact", "eth0");
44*e58780dcSJoe Hershberger 	ut_assertok(NetLoop(PING));
45*e58780dcSJoe Hershberger 	ut_asserteq_str("eth@10002000", getenv("ethact"));
46*e58780dcSJoe Hershberger 
47*e58780dcSJoe Hershberger 	setenv("ethact", "eth1");
48*e58780dcSJoe Hershberger 	ut_assertok(NetLoop(PING));
49*e58780dcSJoe Hershberger 	ut_asserteq_str("eth@10004000", getenv("ethact"));
50*e58780dcSJoe Hershberger 
51*e58780dcSJoe Hershberger 	/* Expected to fail since eth2 is not defined in the device tree */
52*e58780dcSJoe Hershberger 	setenv("ethact", "eth2");
53*e58780dcSJoe Hershberger 	ut_assertok(NetLoop(PING));
54*e58780dcSJoe Hershberger 	ut_asserteq_str("eth@10002000", getenv("ethact"));
55*e58780dcSJoe Hershberger 
56*e58780dcSJoe Hershberger 	setenv("ethact", "eth5");
57*e58780dcSJoe Hershberger 	ut_assertok(NetLoop(PING));
58*e58780dcSJoe Hershberger 	ut_asserteq_str("eth@10003000", getenv("ethact"));
59*e58780dcSJoe Hershberger 
60*e58780dcSJoe Hershberger 	return 0;
61*e58780dcSJoe Hershberger }
62*e58780dcSJoe Hershberger DM_TEST(dm_test_eth_alias, DM_TESTF_SCAN_FDT);
63