17ac2fe2dSIlya Yanok /* 27ac2fe2dSIlya Yanok * (C) Copyright 2000-2004 37ac2fe2dSIlya Yanok * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 47ac2fe2dSIlya Yanok * 57ac2fe2dSIlya Yanok * (C) Copyright 2012 67ac2fe2dSIlya Yanok * Ilya Yanok <ilya.yanok@gmail.com> 77ac2fe2dSIlya Yanok * 81a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 97ac2fe2dSIlya Yanok */ 107ac2fe2dSIlya Yanok #include <common.h> 117ac2fe2dSIlya Yanok #include <spl.h> 127ac2fe2dSIlya Yanok #include <net.h> 137ac2fe2dSIlya Yanok 147ac2fe2dSIlya Yanok DECLARE_GLOBAL_DATA_PTR; 157ac2fe2dSIlya Yanok 167ac2fe2dSIlya Yanok void spl_net_load_image(const char *device) 177ac2fe2dSIlya Yanok { 187ac2fe2dSIlya Yanok int rv; 197ac2fe2dSIlya Yanok 207ac2fe2dSIlya Yanok env_init(); 217ac2fe2dSIlya Yanok env_relocate(); 227ac2fe2dSIlya Yanok setenv("autoload", "yes"); 237ac2fe2dSIlya Yanok load_addr = CONFIG_SYS_TEXT_BASE - sizeof(struct image_header); 24d2eaec60SJoe Hershberger rv = eth_initialize(); 257ac2fe2dSIlya Yanok if (rv == 0) { 267ac2fe2dSIlya Yanok printf("No Ethernet devices found\n"); 277ac2fe2dSIlya Yanok hang(); 287ac2fe2dSIlya Yanok } 297ac2fe2dSIlya Yanok if (device) 307ac2fe2dSIlya Yanok setenv("ethact", device); 31*bc0571fcSJoe Hershberger rv = net_loop(BOOTP); 327ac2fe2dSIlya Yanok if (rv < 0) { 337ac2fe2dSIlya Yanok printf("Problem booting with BOOTP\n"); 347ac2fe2dSIlya Yanok hang(); 357ac2fe2dSIlya Yanok } 367ac2fe2dSIlya Yanok spl_parse_image_header((struct image_header *)load_addr); 377ac2fe2dSIlya Yanok } 38