[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #31173] GRUB loses characters on HP Integrated Lights Out 2 (iLO2)

From: Oscar Perez
Subject: [bug #31173] GRUB loses characters on HP Integrated Lights Out 2 (iLO2) Virtual Serial Port session
Date: Thu, 30 Sep 2010 15:16:25 +0000
User-agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C; .NET4.0E; InfoPath.3)


                 Summary: GRUB loses characters on HP Integrated Lights Out 2
(iLO2) Virtual Serial Port session
                 Project: GNU GRUB
            Submitted by: iloguy
            Submitted on: Thu 30 Sep 2010 10:16:24 AM CDT
                Category: None
                Severity: Major
                Priority: 5 - Normal
              Item Group: Software Error
                  Status: None
                 Privacy: Public
             Assigned to: None
         Originator Name: iLO Guy
        Originator Email: address@hidden
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 1.97
         Reproducibility: Every Time
         Planned Release: None




I'm new here so please bear with me. I work for HP third level support and I
came here to file a new bug. 

Our HP Integrated Lights Out 2 (iLO2) product contains a virtual UART that
present itself to the host server as a regular COM port. iLO2 firmware has
special code that allows customers to open Telnet or SSH session to iLO2 then,
iLO2 would forward all the traffic back and forth to the server via this
virtual serial port.

The issue we have with any Grub version is related to fact that the timeout
value inside the serial_hw_put() function is way too short for iLO2. 

I explain why; Since iLO2 UART is virtual, baudrate for us is meaningless. As
soon as Grub writes one byte to the iLO2 Virtual UART TX register, iLO2 gets
the interrupt, iLO2 ISR reads the byte and stores it in a buffer. The
UART_EMPTY_TRANSMITTER bit gets automatically set whenever the ISR reads the
character from the UART. But this causes Grub to come back and write the next
byte very quickly. The process repeats and iLO2 incoming buffer gets full very
Once iLO2 buffer gets full, iLO2 will hold the UART_EMPTY_TRANSMITTER bit low
waiting for the buffer to be processed and all the data gets sent via the
network to the Telnet/SSH client.
But, if the network connection is slow or the data we have to send is too
much then, iLO2 holds the UART_EMPTY_TRANSMITTER bit low for too long, Grub
times out and Grub begins dropping characters.

We have increased our buffer size as a workaround but, I think Grub needs to
increase the timeout inside serial_hw_put() a whole lot.

How to reproduce:
- Get an HP ProLiant server with iLO2 (Any G5 or G6 server)
- Upgrade iLO2 firmware to version 2.01
- Set up Grub to use the Virtual Serial Port (Default is COM2 but, this can
be changed in ROM BIOS)
- Add at least 10 menu entries in GRUB in order to make it scroll when
navigating. This makes GRUB write lots of data to the port.
- SSH into iLO2, log in then type VSP
- Reboot server and wait for GRUB to show up.
- You should see characters being lost while navigating through the menu.


Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]