[ixp] [ixp1200] rebooting the enp-2505

Kenneth M. Mackenzie kenmac at cc.gatech.edu
Thu Jul 18 10:28:45 EDT 2002


[Tommy wrote:]
> > Hi everyone, I'm wondering if there is any safe way to reboot the board 
> > w/o rebooting the host system?  I have the board installed in Linux and 
> > hated to reboot it just to rebooot the enp board.  Thanks.

[Scott wrote:]
> I don't know about the ENP-2505 board, but we reboot the evaluation
> systems all the time without rebooting Linux.  The thing to watch for

Hi Tommy,

  The ENP-2505 is nicer about this because it has the PCI bridge chip
in it.  The bridge chip's PCI registers survive at least a soft reset
of the IXP (what you get if you type "reboot" to linux on the IXP).
So you do not have to do anything special on the host if you just type
reboot to linux on the IXP.

  If you do *hard* reset of the ENP-2505 (by making a wiring change
to the board to short the two reset pins), I suspect you will have to
save/restore the bridge chip registers as Scott describes.

  There's yet a third way to reset the IXP (a squishy reset?) which is
to write one the PCI space configuration registers.  We don't actively
use this one since early experiments we did suggested it didn't
actually reset everything and we had to resort to the hard reset.

  In practice, I've found that for the things we do the soft reset
covers almost all the problems we have.  As a result we've been lazy
and not even wired up a hard reset on most of our boards.  In other
words, we do a soft reset if we can and for a hard reset reboot the
workstation.  The latter is sufficiently rare that it hasn't been
an annoyance.

  Here's a script we use that uses kermit to log into a card (via
serial in case the pciDg connection is hosed), issue the reboot
command, then remove the drivers from the host making it ready to boot
again.  It's specific to our site (uses one of our drivers, has serial
port assignments wired in etc) but gives you an idea of what you could
do.  Scripting these sorts of things will measureably lower your blood
pressure...

regards,
-- Ken

----------------

#!/bin/sh
#							30-May-02
#
# RCS: $Id: unbootixp,v 1.1 2002/06/13 20:24:46 kenmac Exp $
# unbootixp

#********************************************************************#
#								     #
# this script shuts down IXP cards so that they can be rebooted from #
# scratch.  To shut down a card, do this:			     #
#								     #
#   PHASE 1:  (per bv)	  invoke "reboot" on the card		     #
#   PHASE 2:		  ifconfig down, rmmod drivers		     #
#								     #
#********************************************************************#

PATH=/bin:/sbin:/usr/sbin:/usr/bin:.

DEVICE=eth2
PASSWORD=*******
KERMIT=/usr/bin/kermit

phase0 ()
{
    echo START PHASE 0 ON IXP $IXPNO

    rm -f /tmp/bootit.tmp
    touch /tmp/bootit.tmp
    echo set line $SERIAL_LINE			>> /tmp/bootit.tmp
    echo set baud 38400				>> /tmp/bootit.tmp
    echo set carrier-watch off 			>> /tmp/bootit.tmp
    
    echo output \\13				>> /tmp/bootit.tmp

    echo input 10 ogin:				>> /tmp/bootit.tmp
    echo output root\\13			>> /tmp/bootit.tmp
    echo input 10 ssword:			>> /tmp/bootit.tmp
    echo output $PASSWORD\\13			>> /tmp/bootit.tmp

    echo input 10 \$				>> /tmp/bootit.tmp
    echo output reboot\\13			>> /tmp/bootit.tmp
    echo input 10 \$				>> /tmp/bootit.tmp
    echo output exit\\13			>> /tmp/bootit.tmp
    echo hangup					>> /tmp/bootit.tmp
    echo exit					>> /tmp/bootit.tmp
    $KERMIT /tmp/bootit.tmp -0
    rm -f /tmp/bootit.tmp
    
    echo END PHASE 0 ON IXP $IXPNO
}

#*****************#
#		  #
# guts of phase 0 #
#		  #
#*****************#

echo START PHASE 0

if [ -e /proc/driver/ixp0 ]; then
  IXPNO=0
  CARDNO=1
  CARD_INTERNAL_IP=192.168.0.2
  SERIAL_LINE=/dev/ttyS1
  phase0
fi

if [ -e /proc/driver/ixp1 ]; then
  IXPNO=1
  CARDNO=2
  CARD_INTERNAL_IP=192.168.0.3
  SERIAL_LINE=/dev/ttyS0
  phase0
fi

echo END PHASE 0

#*************************#
#			  #
# phase 1: remove drivers #
#			  #
#*************************#

echo START PHASE 1

ifconfig $DEVICE down
rmmod pciDgNet
rmmod pciDg
rmmod ixp1200

echo END PHASE 1

echo "Done unbooting.  Wait 10 seconds before running bootixp"



More information about the ixp1200 mailing list