xref: /openbmc/u-boot/cmd/wol.c (revision 3f0492f2)
1*d8970daeSLothar Felten // SPDX-License-Identifier: GPL-2.0+
2*d8970daeSLothar Felten /*
3*d8970daeSLothar Felten  * (C) Copyright 2018
4*d8970daeSLothar Felten  * Lothar Felte, lothar.felten@gmail.com
5*d8970daeSLothar Felten  */
6*d8970daeSLothar Felten 
7*d8970daeSLothar Felten /*
8*d8970daeSLothar Felten  * Wake-on-LAN support
9*d8970daeSLothar Felten  */
10*d8970daeSLothar Felten #include <common.h>
11*d8970daeSLothar Felten #include <command.h>
12*d8970daeSLothar Felten #include <net.h>
13*d8970daeSLothar Felten 
14*d8970daeSLothar Felten #if defined(CONFIG_CMD_WOL)
15*d8970daeSLothar Felten void wol_set_timeout(ulong);
16*d8970daeSLothar Felten 
do_wol(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])17*d8970daeSLothar Felten int do_wol(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
18*d8970daeSLothar Felten {
19*d8970daeSLothar Felten 	/* Validate arguments */
20*d8970daeSLothar Felten 	if (argc < 2)
21*d8970daeSLothar Felten 		return CMD_RET_USAGE;
22*d8970daeSLothar Felten 	wol_set_timeout(simple_strtol(argv[1], NULL, 10) * 1000);
23*d8970daeSLothar Felten 	if (net_loop(WOL) < 0)
24*d8970daeSLothar Felten 		return CMD_RET_FAILURE;
25*d8970daeSLothar Felten 	return CMD_RET_SUCCESS;
26*d8970daeSLothar Felten }
27*d8970daeSLothar Felten 
28*d8970daeSLothar Felten U_BOOT_CMD(
29*d8970daeSLothar Felten 	wol,	2,	1,	do_wol,
30*d8970daeSLothar Felten 	"wait for an incoming wake-on-lan packet",
31*d8970daeSLothar Felten 	"Timeout"
32*d8970daeSLothar Felten );
33*d8970daeSLothar Felten #endif
34