/*
 * (C) Copyright 2000-2004
 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 *
 * (C) Copyright 2012
 * Ilya Yanok <ilya.yanok@gmail.com>
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */
#include <common.h>
#include <spl.h>
#include <net.h>

DECLARE_GLOBAL_DATA_PTR;

void spl_net_load_image(const char *device)
{
	int rv;

	env_init();
	env_relocate();
	setenv("autoload", "yes");
	load_addr = CONFIG_SYS_TEXT_BASE - sizeof(struct image_header);
	rv = eth_initialize(gd->bd);
	if (rv == 0) {
		printf("No Ethernet devices found\n");
		hang();
	}
	if (device)
		setenv("ethact", device);
	rv = NetLoop(BOOTP);
	if (rv < 0) {
		printf("Problem booting with BOOTP\n");
		hang();
	}
	spl_parse_image_header((struct image_header *)load_addr);
}
