Sun Microsystems, Inc.  Sun System Handbook - ISO 3.4 June 2011 Internal/Partner Edition
   Home | Current Systems | Former STK Products | EOL Systems | Components | General Info | Search | Feedback

Asset ID: 1-71-1006072.1
Update Date:2009-11-30
Keywords:

Solution Type  Technical Instruction Sure

Solution  1006072.1 :   Stop-A doesn't send a hard break on systems with USB keyboard.  


Related Items
  • Sun Blade 2000 Workstation
  •  
  • Sun Fire V480 Server
  •  
  • Sun Fire 280R Server
  •  
  • Sun Netra 20 Server
  •  
  • Sun Fire V880 Server
  •  
  • Sun Blade 1000 Workstation
  •  
Related Categories
  • GCS>Sun Microsystems>Desktops>Workstations
  •  
  • GCS>Sun Microsystems>Servers>Entry-Level Servers
  •  
  • GCS>Sun Microsystems>Servers>NEBS-Certified Servers
  •  

PreviouslyPublishedAs
208468


Description
USB keyboards cannot get the ok prompt if the OS is experiencing a hard hang, because of the nature of USB interrupts. So in order to get to the ok prompt, another method is needed to generate a hard interrupt.


Steps to Follow
This document currently applies to Sun Fire[TM] B1000, Sun Fire[TM] B2000, Sun Fire[TM] 280R, Sun Fire[TM] V480 and Sun Fire[TM] V880 platforms, and it will also apply to all future platforms that use the todds1287 chip to drive the power button/switch on the front of the machine.

 These platforms introduce USB functionality on graphical desktops, which disables the ability to generate a hard break by unplugging/plugging the keyboard cable.

These platforms now support a Power Button Abort condition that allow a system to enter the debugger or monitor (by sending three interrupts at level 15). The interrupts are triggered by pressing the Power Switch on the front of the machine 3 times within 1.5 seconds. On the third press, a call is made to the routine abort_sequence_enter() to enter the debugger/monitor (OBP).

On systems fitted with a key switch, the key setting must be in either the On or Diagnostic for the Power Button Abort to function. If the key switch is in the Secure position, then the power button abort is ignored.

The functionality is enabled by default in the todds1287 driver and is available in the following Solaris[TM] Releases Solaris[TM] 10 build 17 Solaris[TM] 9 Update 3 Solaris[TM] 8 patch 109888-17

NOTE: Since debug_enter() uses a softint to abort the machine, break points may be required in debug_enter() within kadb for hung machines. For example:

   boot kadb -d
debug_enter:b
:c

NOTE 2: In addition, KEYBOARD_ABORT must be set to  enable  in /etc/default/kbd in order for this method to work.  This is the default for Solaris,  disable  is the default for Trusted Solaris.



Product
Sun Fire V880 Server
Sun Fire V480 Server
Sun Fire 280R Server
Sun Blade 2000 Workstation
Sun Blade 1000 Workstation
Netra 20 Server

Internal Comments
There are seven (7) driver tunables which can be set in /etc/system to change the behavior of the power button, they are listed as follows :

set todds1287:power_button_abort_interval = 150000000



   This specifies the interval for the break
sequence to be generated    Default = 1500000000
(1.5 Seconds)    Values is specified in
Nanoseconds


set todds1287:power_button_abort_presses = 3                                                         

   Required number of power button pushes to
issue a break    Default = 3
   Values > 0


set todds1287:power_button_abort_enable = 0                                                        

   Disables the power break sequence
   Default = 1 (Enabled)    Values =
(0 or 1)


set todds1287:power_button_enable = 0                                                         

   Disables the ability to power down the system
   Default = 1 (Enabled)    Values =
(0 or 1)


The last 3 tunables should be left as default,


set todds1287:ds1287_interrupt_priority = 15                                                         

 9 Sets the interrupt level of the powerbutton
interrupts    Default = 15 (12 is equivalent to the
old ZS Hard break interrupt)    Values = (9 to
15)


set todds1287:ds1287_softint_priority = 2                                                         

   This changes the softint level
   Default = 2    Values = (1 to 9)
inclusive


set todds1287:power_button_debounce = 5000000                                                         

   This increases the
interval for a power button debounce    Default =
5000000 (5 Milliseconds)    Value is specified in
Nanoseconds


Reference Documents


BugID 4692023 power button can be enhanced to provide hard break
functionality


PSARC 2002/416




todds1287
source code
driver


hang, break, USB, todds1287, power button, L1-A, hung, crash dump, core
Previously Published As
51261

Change History
Date: 2009-11-20
User name: Dencho Kojucharov
Action: Updated
Comments: Currency check, audited by Dencho Kojucharov, Entry-Level SPARC Content Team
Date: 2006-01-12
User Name: 115669
Action: Add Comment
Comment: What exactly is the definition of a "hard" break?
Can one generate a "soft" break?

It also talks about Solaris 10 build 17 - is this relevant given it was never relased to customer? Would "Solaris 10" suffice?
Equally, I would expect it to be Solaris 9 with a certain patch level rather than Solaris 9 U3. Is this correct? Or can Solaris 9 FCS not be patched to enable it to work?
There is also no punctuation in the list of minimum OS's - it is a continuous stream of words and letters :-)
NOTE 2 mentions that the KEYBOARD_ABORT must be set to enable in /etc/default/kbd. What about the setting "alternate"? Is this ignored?

Attachments
This solution has no attachment
  Copyright © 2011 Sun Microsystems, Inc.  All rights reserved.
 Feedback