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