03831d35f7499c87d51205817c93e9a8d42c4baestevel * CDDL HEADER START
03831d35f7499c87d51205817c93e9a8d42c4baestevel * The contents of this file are subject to the terms of the
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Common Development and Distribution License, Version 1.0 only
03831d35f7499c87d51205817c93e9a8d42c4baestevel * (the "License"). You may not use this file except in compliance
03831d35f7499c87d51205817c93e9a8d42c4baestevel * with the License.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
03831d35f7499c87d51205817c93e9a8d42c4baestevel * See the License for the specific language governing permissions
03831d35f7499c87d51205817c93e9a8d42c4baestevel * and limitations under the License.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * When distributing Covered Code, include this CDDL HEADER in each
03831d35f7499c87d51205817c93e9a8d42c4baestevel * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * If applicable, add the following below this CDDL HEADER, with the
03831d35f7499c87d51205817c93e9a8d42c4baestevel * fields enclosed by brackets "[]" replaced with your own identifying
03831d35f7499c87d51205817c93e9a8d42c4baestevel * information: Portions Copyright [yyyy] [name of copyright owner]
03831d35f7499c87d51205817c93e9a8d42c4baestevel * CDDL HEADER END
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Copyright 2002-2003 Sun Microsystems, Inc. All rights reserved.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Use is subject to license terms.
03831d35f7499c87d51205817c93e9a8d42c4baestevel#pragma ident "%Z%%M% %I% %E% SMI"
03831d35f7499c87d51205817c93e9a8d42c4baestevel * send_file.c: to support firmware download (get fw S-records from the
03831d35f7499c87d51205817c93e9a8d42c4baestevel * user-specified file and send S-records string down to the service processor
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Determine the length of the file
03831d35f7499c87d51205817c93e9a8d42c4baestevel while ((fgets(ADM_Line, ADM_LINE_SIZE, FilePtr) != NULL) &&
03831d35f7499c87d51205817c93e9a8d42c4baestevel while (BootRetry > 0) {
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Initialize Timeout each time just to be robust.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Since this operation is not time critical, this is
03831d35f7499c87d51205817c93e9a8d42c4baestevel * not a concern.
03831d35f7499c87d51205817c93e9a8d42c4baestevel /* If we timeout, decrement BootRetry and try again */
03831d35f7499c87d51205817c93e9a8d42c4baestevel if ((Status = ADM_Boot_recv(&Message, &Timeout)) != 0) {
03831d35f7499c87d51205817c93e9a8d42c4baestevel /* We got a timeout */
03831d35f7499c87d51205817c93e9a8d42c4baestevel /* we got a message back, see what it is */
03831d35f7499c87d51205817c93e9a8d42c4baestevel * We got a valid acknowledge, break out of
03831d35f7499c87d51205817c93e9a8d42c4baestevel * loop and start to download next s-record
03831d35f7499c87d51205817c93e9a8d42c4baestevel /* See if we ever got a response */
03831d35f7499c87d51205817c93e9a8d42c4baestevel "download"));
03831d35f7499c87d51205817c93e9a8d42c4baestevel /* Show % progress */
03831d35f7499c87d51205817c93e9a8d42c4baestevel /* Show final % progress (should normally be 100%) */
03831d35f7499c87d51205817c93e9a8d42c4baestevel return (0);
03831d35f7499c87d51205817c93e9a8d42c4baestevel "SC reported range error"));
03831d35f7499c87d51205817c93e9a8d42c4baestevel "SC reported verify error"));
03831d35f7499c87d51205817c93e9a8d42c4baestevel "SC reported erase error"));
03831d35f7499c87d51205817c93e9a8d42c4baestevel "SC reported int_wp error"));
03831d35f7499c87d51205817c93e9a8d42c4baestevel "SC reported wp error"));
03831d35f7499c87d51205817c93e9a8d42c4baestevel "SC reported vpp error"));
03831d35f7499c87d51205817c93e9a8d42c4baestevel gettext("scadm: SC returned unknown error"), cmd, dat1);