Subject: Re: [PATCH] Update udbg_progress() to display the integer

From: Mike Strosaker <[email-masked]>
Date: Wed, 07 Feb 2007 00:26:41 -0600

Timur Tabi wrote:
> Benjamin Herrenschmidt wrote:
>>If we really want some way of ack'ing that the kernel reached known
>>known steps with something different than a printk-type interface, then
>>we should probably have somewhere a list of well defined numeric
>>constants and use those, but then, I don't like magic numbers.
> 
> 
> Me neither.  I think on systems like RS6000, the progress codes have already 
> been defined, so I don't think we can redefine them.
> 

I think that the LCD panel (op panel, in IBM's parlance) still has its 
uses.  As alluded to by others, the displayed messages are stored by the 
service processor, and a history of messages (the past 200 or so, I 
think) are thus visible from service processor and HMC interfaces. 
Should an error occur when a console session was not attached, these op 
panel codes can sometimes provide enough information to resolve the 
problem without needing to reproduce the error with a console 
attached... maybe not for kernel developers, but possibly for users.

The op panel on recent systems has 2 lines; the first can display 16 
characters, the second, 80.  The first line is usually used to display 
an 8 character hexadecimal progress/error message (called an SRC: System 
Reference Code), and the second line is used to display a location code 
when appropriate (e.g. when the SRC indicates a device failure).  IBM 
documents many of their OF and RTAS SRCs deep in the Hardware 
Information Center:

Error codes: 
http://publib.boulder.ibm.com/infocenter/eserver/v1r3s/index.jsp?topic=/ipha6/refcodelist.htm
Progress codes: 
http://publib.boulder.ibm.com/infocenter/eserver/v1r3s/index.jsp?topic=/ipha6/progcodesmain.htm

I've found some of theses codes useful in the past.  For example, 
CA00E1AE indicates that a partition is waiting for user input at the SMS 
menu.  An analogous SRC to indicate that it is waiting for user input at 
the yaboot prompt might be useful.

IBM reserved these SRC ranges for the exclusive use of Linux; no one 
else (AIX, RTAS, i5/OS, etc.) uses codes in these ranges:

AFxxxxxx - attention codes
BFxxxxxx - error codes
CFxxxxxx - progress codes
DFxxxxxx - dump progress codes

Yeah, magic numbers suck, but the op panel does have some physical 
constraints that prevent the printing of verbose messages.  These codes 
could be mapped to useful messages in a file in Documentation/powerpc, 
for example.

- Mike