diff options
author | Thomas Huth <thuth@linux.vnet.ibm.com> | 2012-02-27 11:39:17 +0100 |
---|---|---|
committer | Thomas Huth <thuth@linux.vnet.ibm.com> | 2012-02-27 11:39:17 +0100 |
commit | a603c2e6f42f5b40e7d443ed669a61498ef09991 (patch) | |
tree | 10228fc8748ed1a5de470bb346fd952470b8d265 | |
parent | cf13fc9beeb62e4b172905636ff61776c9cae3d8 (diff) | |
download | SLOF-a603c2e6f42f5b40e7d443ed669a61498ef09991.zip SLOF-a603c2e6f42f5b40e7d443ed669a61498ef09991.tar.gz SLOF-a603c2e6f42f5b40e7d443ed669a61498ef09991.tar.bz2 |
Removed obsolete netflash code.
Flashing on JS2x is done via the "update-flash" Forth code nowadays (see the
file slof/fs/update_flash.fs for details), so there is no need to maintain the
obsolete netflash code anymore.
Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
-rw-r--r-- | clients/net-snk/app/Makefile | 1 | ||||
-rw-r--r-- | clients/net-snk/app/main.c | 2 | ||||
-rw-r--r-- | clients/net-snk/app/netapps/Makefile | 9 | ||||
-rw-r--r-- | clients/net-snk/app/netapps/netflash.c | 188 | ||||
-rw-r--r-- | clients/net-snk/oflib/rtas.c | 109 |
5 files changed, 4 insertions, 305 deletions
diff --git a/clients/net-snk/app/Makefile b/clients/net-snk/app/Makefile index e872f08..8b0c08f 100644 --- a/clients/net-snk/app/Makefile +++ b/clients/net-snk/app/Makefile @@ -20,7 +20,6 @@ CFLAGS +=$(ADDCFLAGS) OBJS = main.o OBJDIRS = netlib/netlib.o netapps/netboot.o -OBJDIRS += netapps/netflash.o OBJDIRS += netapps/ping.o OBJDIRS += netapps/args.o diff --git a/clients/net-snk/app/main.c b/clients/net-snk/app/main.c index d92111a..d894aa2 100644 --- a/clients/net-snk/app/main.c +++ b/clients/net-snk/app/main.c @@ -33,8 +33,6 @@ main(int argc, char *argv[]) if (strcmp(argv[0], "netboot") == 0 && argc >= 5) return netboot(argc, argv); - if (strcmp(argv[0], "netflash") == 0) - return netflash(argc, argv); if (strcmp(argv[0], "ping") == 0) return ping(argc, argv); #ifdef SNK_BIOSEMU_APPS diff --git a/clients/net-snk/app/netapps/Makefile b/clients/net-snk/app/netapps/Makefile index a40cb95..70b990a 100644 --- a/clients/net-snk/app/netapps/Makefile +++ b/clients/net-snk/app/netapps/Makefile @@ -17,13 +17,12 @@ endif include $(TOP)/make.rules CFLAGS += -I../ -I../../../../lib/ -Wall -W -OBJS = netboot.o netflash.o -OBJS += ping.o -OBJS += args.o + +OBJS = netboot.o ping.o args.o all: $(OBJS) -clean: - $(RM) -f *.o *.a *.i +clean: + $(RM) -f *.o *.a *.i include $(TOP)/make.depend diff --git a/clients/net-snk/app/netapps/netflash.c b/clients/net-snk/app/netapps/netflash.c deleted file mode 100644 index 1c0c07c..0000000 --- a/clients/net-snk/app/netapps/netflash.c +++ /dev/null @@ -1,188 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2004, 2008 IBM Corporation - * All rights reserved. - * This program and the accompanying materials - * are made available under the terms of the BSD License - * which accompanies this distribution, and is available at - * http://www.opensource.org/licenses/bsd-license.php - * - * Contributors: - * IBM Corporation - initial implementation - *****************************************************************************/ - -#include <netlib/tftp.h> -#include <netlib/dhcp.h> -#include <netlib/ethernet.h> -#include <netlib/ipv4.h> -#include <rtas.h> -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <sys/socket.h> -#include "netapps.h" - -int netflash(int argc, char * argv[]) -{ - char buf[256]; - int rc; - int manage_mode = 0; - static int len = 0x800000; //max flash size - char * buffer = NULL; - short arp_failed = 0; - filename_ip_t fn_ip; - int fd_device; - tftp_err_t tftp_err; - char * ptr; - uint8_t own_mac[6]; - - printf("\n Flasher 1.4 \n"); - memset(&fn_ip, 0, sizeof(filename_ip_t)); - - if (argc == 3 && argv[2][0] == '-' && argv[2][1] == 'c' && argv[2][2] == 0) - manage_mode = 1; - else if (argc == 3 && - argv[2][0] == '-' && argv[2][1] == 'r' && argv[2][2] == 0) - manage_mode = 1; - else if (argc == 4 && - argv[2][0] == '-' && argv[2][1] == 'f' && argv[2][2] == 0) - { - manage_mode = 0; - buffer = (char *)strtol(argv[1],0,16); - if ((long)buffer == -1) { - printf(" Bad buffer address. Exiting...\n"); - return -1; - } - } - else - { - printf(" Usage: netflash [options] [<filename>]\n"); - printf(" Options:\n"); - printf(" -f <filename> flash temporary image\n"); - printf(" -c commit temporary image\n"); - printf(" -r reject temporary image\n"); - printf(" Bad arguments. Exiting...\n\n"); - return -1; - } - - if (manage_mode == 1) { - if (argv[2][1] == 99) - return rtas_ibm_manage_flash(1); - else - return rtas_ibm_manage_flash(0); - } - - /* Get mac_addr from device */ - printf(" Reading MAC address from device: "); - fd_device = socket(0, 0, 0, (char *) own_mac); - if (fd_device == -1) { - printf("\nE3000: Could not read MAC address\n"); - return -100; - } - else if (fd_device == -2) { - printf("\nE3006: Could not initialize network device\n"); - return -101; - } - - printf("%02x:%02x:%02x:%02x:%02x:%02x\n", - own_mac[0], own_mac[1], own_mac[2], - own_mac[3], own_mac[4], own_mac[5]); - - // init ethernet layer - set_mac_address(own_mac); - - // identify the BOOTP/DHCP server via broadcasts - // don't do this, when using DHCP !!! - // fn_ip.server_ip = 0xFFFFFFFF; - // memset(fn_ip.server_mac, 0xff, 6); - - /* Get ip address for our mac address */ - printf(" Requesting IP address via DHCP: "); - arp_failed = dhcp(0, &fn_ip, 30); - - if(arp_failed >= 0) { - // reinit network stack - set_ipv4_address(fn_ip.own_ip); - } - - if (arp_failed == -1) { - printf("\n DHCP: Could not get ip address\n"); - return 1; - } - - if (arp_failed == -2) { - sprintf - (buf,"\n ARP request to TFTP server (%d.%d.%d.%d) failed", - ((fn_ip.server_ip >> 24) & 0xFF), ((fn_ip.server_ip >> 16) & 0xFF), - ((fn_ip.server_ip >> 8) & 0xFF), ( fn_ip.server_ip & 0xFF)); - return 1; - } - - printf("%d.%d.%d.%d\n", - ((fn_ip.own_ip >> 24) & 0xFF), ((fn_ip.own_ip >> 16) & 0xFF), - ((fn_ip.own_ip >> 8) & 0xFF), (fn_ip.own_ip & 0xFF)); - - /* Load file via TFTP into buffer provided by OpenFirmware */ - - for(ptr = argv[3]; *ptr != 0; ++ptr) - if(*ptr == '\\') - *ptr = '/'; - - printf(" Requesting file \"%s\" via TFTP\n",argv[3]); - - strcpy((char *) fn_ip.filename,argv[3]); - - rc = tftp(&fn_ip, (unsigned char*) buffer, len, 20, &tftp_err, 0, 512, 4); - - dhcp_send_release(); - - if (rc > 0) - { - printf (" TFTP: Received %s (%d KBytes)\n", fn_ip.filename, rc/1024); - printf (" Now flashing:\n"); - rc = rtas_ibm_update_flash_64((long long)buffer, rc); - return rc; - } - else if (rc == -1) - { - printf (" Tftp: Could not load file %s\n", fn_ip.filename); - return 1; - } - else if (rc == -2) - { - printf (" Tftp: Buffer to small for %s\n", fn_ip.filename); - return 1; - } - else if (rc <= -10 && rc >= -15) - { - printf("\n ICMP ERROR: Destination unreachable: "); - switch(rc) { - case -ICMP_NET_UNREACHABLE-10: - printf("net unreachable"); - break; - case -ICMP_HOST_UNREACHABLE-10: - printf("host unreachable"); - break; - case -ICMP_PROTOCOL_UNREACHABLE-10: - printf("protocol unreachable"); - break; - case -ICMP_PORT_UNREACHABLE-10: - printf("port unreachable"); - break; - case -ICMP_FRAGMENTATION_NEEDED-10: - printf("fragmentation needed and DF set"); - break; - case -ICMP_SOURCE_ROUTE_FAILED-10: - printf("source route failed"); - break; - default: - printf(" UNKNOWN: this should not happen!"); - break; - } - printf("\n"); - return 1; - } - else if(rc < 0) - printf(" UNKNOWN: rc = %d!", rc); - - return 0; -} diff --git a/clients/net-snk/oflib/rtas.c b/clients/net-snk/oflib/rtas.c index 8606823..d0ef12a 100644 --- a/clients/net-snk/oflib/rtas.c +++ b/clients/net-snk/oflib/rtas.c @@ -150,14 +150,7 @@ static int read_pci_config_token = 0; static int write_pci_config_token = 0; static int ibm_read_pci_config_token = 0; static int ibm_write_pci_config_token = 0; -static int ibm_update_flash_64_and_reboot_token = 0; -static int ibm_update_flash_64_token = 0; -static int manage_flash_token = 0; -static int system_reboot_token = 0; static int get_time_of_day_token = 0; -static int set_time_of_day_token = 0; -static int start_cpu_token = 0; -static int stop_self_token = 0; void rtas_init() @@ -170,15 +163,7 @@ rtas_init() ibm_read_pci_config_token = rtas_token("ibm,read-pci-config"); write_pci_config_token = rtas_token("write-pci-config"); ibm_write_pci_config_token = rtas_token("ibm,write-pci-config"); - ibm_update_flash_64_and_reboot_token = - rtas_token("ibm,update-flash-64-and-reboot"); - ibm_update_flash_64_token = rtas_token("ibm,update-flash-64"); - manage_flash_token = rtas_token("ibm,manage-flash-image"); - system_reboot_token = rtas_token("system-reboot"); get_time_of_day_token = rtas_token("get-time-of-day"); - set_time_of_day_token = rtas_token("set-time-of-day"); - start_cpu_token = rtas_token("start-cpu"); - stop_self_token = rtas_token("stop-self"); } @@ -216,62 +201,6 @@ rtas_pci_config_write(long long puid, int size, int bus, int devfn, return rc; } -/* a simple blocklist like this will us give no animation during flashing */ - -struct block_list { - long long size; //size of blocklist in bytes - long long address; //address of memory area - long long length; //lenght of memory area -}; - -int -rtas_ibm_update_flash_64_and_reboot(long long address, long long length) -{ - int rc; - struct block_list block_list; - block_list.size = sizeof(block_list); - block_list.address = address; - block_list.length = length; - if (ibm_update_flash_64_and_reboot_token) - rtas_call(ibm_update_flash_64_and_reboot_token, 1, 1, &rc, - &block_list); - - return rc; -} - -int -rtas_ibm_manage_flash(int mode) -{ - int rc; - if (manage_flash_token) - rtas_call(manage_flash_token, 1, 1, &rc, mode); - return rc; -} - -int -rtas_ibm_update_flash_64(long long address, long long length) -{ - int rc; - struct block_list block_list; - block_list.size = sizeof(block_list); - block_list.address = address; - block_list.length = length; - if (ibm_update_flash_64_token) - rtas_call(ibm_update_flash_64_token, 1, 1, &rc, &block_list); - - return rc; -} - -int -rtas_system_reboot() -{ - int rc; - if (system_reboot_token) - rtas_call(system_reboot_token, 0, 1, &rc); - return rc; -} - - int rtas_get_time_of_day(dtime * get) { @@ -298,41 +227,3 @@ rtas_get_time_of_day(dtime * get) return rc; } - -int -rtas_set_time_of_day(dtime * set) -{ - int rc = -1; - if (set_time_of_day_token) - rtas_call(set_time_of_day_token, 7, 1, &rc, set->year, - set->month, set->day, set->hour, set->minute, - set->second, set->nano); - return rc; -} - - -int -rtas_start_cpu(int pid, thread_t func_ptr, int r3) -{ - int rc; - if (start_cpu_token) - rtas_call(start_cpu_token, 3, 1, &rc, pid, - (int) (long) func_ptr, (int) r3); - printk("start-cpu called %d %x %x %x\n", rc, start_cpu_token, pid, - (long) func_ptr); - return rc; -} - -int -rtas_stop_self() -{ - int rc; - // fixme - stop_self_token = 0x20; - - if (stop_self_token) { - rtas_call(stop_self_token, 0, 1, &rc); - printk("TOK\n"); - } - return rc; -} |