Re: PowerMac hack breaks Efika

2007-07-04 Thread Hollis Blanchard
On Mon, 2007-07-02 at 14:48 +0200, Stefan Reinauer wrote:
 * Robert Millan [EMAIL PROTECTED] [070702 10:17]:
  The following lines in grub_ofconsole_init():
  
/* The latest PowerMacs don't actually initialize the screen for us, so we
 * use this trick to re-open the output device.  */
grub_ieee1275_interpret (output-device output, 0);
  
  break Efika (SmartFirmware) and possibly other implementations.  After this
  command is run, all console output is supressed.
  
  I'm not sure why (found that via regression test), but on Efika the
  output-device is screen (/[EMAIL PROTECTED]/[EMAIL PROTECTED]).
  
 Can you examine the output property of the /chosen node and see what its
 original vallue is?
 
  I suppose the right fix would be to check for PowerMacs before running this,
  but I'm not sure how.  Any ideas?
  
 There's some property in the / or /cpu or /openprom noe that can be
 used. Don't have a ppc machine from Apple here right now.
 
 Why does Apple Powerbook need this? What's their default output device?

(Note: this is about PowerMacs too, not just PowerBooks.)

The default output device is a graphics card. However, console output
doesn't actually display to the default output device (presumably to
preserve Apple's logo splash screen). Yes, this violates section 7.4.5
of IEEE1275.

To get console output, we need to open the output device. However, we
can't hardcode a particular device (e.g. the screen device alias),
since that could break users with serial console.

'output-device' returns a string specifying the default output device.
'output' changes console output to the specified device. In other words,
this command opens the output device that should already be open.

I believe I tested this code on briQ, which shares a code lineage with
Efika, but Efika certainly could have broken something.

It's entirely possible that a particular firmware does not correctly
implement these commands. We already have a framework for such cases,
and we already work around SmartFirmware bugs with it.
 1. define a GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag in
include/grub/ieee1275/ieee1275.h
 2. call grub_ieee1275_set_flag() in grub_ieee1275_find_options()
 3. use grub_ieee1275_test_flag() in grub_ofconsole_init()

-Hollis



___
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel


Re: PowerMac hack breaks Efika

2007-07-02 Thread Stefan Reinauer
* Robert Millan [EMAIL PROTECTED] [070702 10:17]:
 The following lines in grub_ofconsole_init():
 
   /* The latest PowerMacs don't actually initialize the screen for us, so we
* use this trick to re-open the output device.  */
   grub_ieee1275_interpret (output-device output, 0);
 
 break Efika (SmartFirmware) and possibly other implementations.  After this
 command is run, all console output is supressed.
 
 I'm not sure why (found that via regression test), but on Efika the
 output-device is screen (/[EMAIL PROTECTED]/[EMAIL PROTECTED]).
 
Can you examine the output property of the /chosen node and see what its
original vallue is?

 I suppose the right fix would be to check for PowerMacs before running this,
 but I'm not sure how.  Any ideas?
 
There's some property in the / or /cpu or /openprom noe that can be
used. Don't have a ppc machine from Apple here right now.

Why does Apple Powerbook need this? What's their default output device?

Stefan

-- 
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
  Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: [EMAIL PROTECTED]  • http://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866


___
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel


Re: PowerMac hack breaks Efika

2007-07-02 Thread Robert Millan
On Mon, Jul 02, 2007 at 02:48:49PM +0200, Stefan Reinauer wrote:
 * Robert Millan [EMAIL PROTECTED] [070702 10:17]:
  The following lines in grub_ofconsole_init():
  
/* The latest PowerMacs don't actually initialize the screen for us, so we
 * use this trick to re-open the output device.  */
grub_ieee1275_interpret (output-device output, 0);
  
  break Efika (SmartFirmware) and possibly other implementations.  After this
  command is run, all console output is supressed.
  
  I'm not sure why (found that via regression test), but on Efika the
  output-device is screen (/[EMAIL PROTECTED]/[EMAIL PROTECTED]).
  
 Can you examine the output property of the /chosen node and see what its
 original vallue is?

I'm not sure if this is what you want:  (I'm pretty new to OF)

ok cd /chosen
ok .properties
name  chosen
stdin 0x7C5F0E8 (130412776)
stdout0x7C5F038 (130412600)
bootpath  
bootargs  
memory0x7C54E28 (130371112)
mmu   0x7C55818 (130373656)

  I suppose the right fix would be to check for PowerMacs before running this,
  but I'm not sure how.  Any ideas?
  
 There's some property in the / or /cpu or /openprom noe that can be
 used. Don't have a ppc machine from Apple here right now.

I don't either, but Jordi Mallach does.  I'm CCing him.

 Why does Apple Powerbook need this?

No idea (other than the C comment above).  Maybe Hollis can explain.

 What's their default output device?

According to Jordi, output-device is set to screen.

-- 
Robert Millan

My spam trap is [EMAIL PROTECTED]  Note: this address is only intended
for spam harvesters.  Writing to it will get you added to my black list.


___
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel