Grant Grundler | 20 Mar 00:19

Re: J5000 LCD heartbeat

On Sat, Mar 19, 2005 at 10:33:24PM +0000, David Pye wrote:
> The other thing is that the kernel version which is displayed on the lcd by 
> default is overwritten partly by a:
> 
> INI CC01 
> 
> It's not a huge issue for me, as I can overwrite it again by echo'ing my 
> message into /proc/pdc/lcd post boot.

This is the firmware showing the "Chassis Log" as emitted by the kernel.
Some platforms (e.g. A500/rp2470) use chassis logs to set the LED
properly.

> Is it possible to make the write to the display later in the boot process, so 
> it occurs after the INI CC01 is printed?

I would think it's possible.
You want to track down where the CC01 chassis_log is emitted then 
propose a better place to initialize LED display?

Another idea is the chassis log code might want to clear the LED
diplay when displaying a chassis log and then a few seconds later
refresh the LED display with the original contents or something.

> (Incidentally, the INI CC01 is only on the screen - /proc/pdc/led returns the 
> normal kernel version - I assume this is because the message was printed by 
> the hardware, itself?)

The firmware. IIRC, /proc/pdc/led just returns a cached value.

(Continue reading)

David Pye | 20 Mar 20:18
Picon

Re: J5000 LCD heartbeat

On Saturday 19 March 2005 23:19, Grant Grundler wrote:
> On Sat, Mar 19, 2005 at 10:33:24PM +0000, David Pye wrote:
> > The other thing is that the kernel version which is displayed on the lcd
> > by default is overwritten partly by a:
> >
> > INI CC01
> >
> > It's not a huge issue for me, as I can overwrite it again by echo'ing my
> > message into /proc/pdc/lcd post boot.
>
> This is the firmware showing the "Chassis Log" as emitted by the kernel.
> Some platforms (e.g. A500/rp2470) use chassis logs to set the LED
> properly.
>
> > Is it possible to make the write to the display later in the boot
> > process, so it occurs after the INI CC01 is printed?
>
> I would think it's possible.
> You want to track down where the CC01 chassis_log is emitted then
> propose a better place to initialize LED display?

I think I have an idea that it's related to CPU1 init, but I haven't confirmed 
this yet - depending on your feedback to the idea below, I won't bother 
tracing it down.

> Another idea is the chassis log code might want to clear the LED
> diplay when displaying a chassis log and then a few seconds later
> refresh the LED display with the original contents or something.

At the very least, I think it needs to clear the lcd display before it sends 
(Continue reading)

Thibaut VARENE | 20 Mar 20:40

Re: J5000 LCD heartbeat

On Sun, 20 Mar 2005 19:18:29 +0000
David Pye <dmp <at> davidmpye.dyndns.org> wrote:

> On Saturday 19 March 2005 23:19, Grant Grundler wrote:
> > On Sat, Mar 19, 2005 at 10:33:24PM +0000, David Pye wrote:
> >
> > > Is it possible to make the write to the display later in the boot
> > > process, so it occurs after the INI CC01 is printed?
> >
> > I would think it's possible.
> > You want to track down where the CC01 chassis_log is emitted then
> > propose a better place to initialize LED display?
> 
> I think I have an idea that it's related to CPU1 init, but I haven't
> confirmed this yet - depending on your feedback to the idea below, I
> won't bother tracing it down.

Don't bother. I have that kind of message left on my j5k LCD has well,
that's been there for ages, without problem.

> > Another idea is the chassis log code might want to clear the LED
> > diplay when displaying a chassis log and then a few seconds later
> > refresh the LED display with the original contents or something.
> 
> At the very least, I think it needs to clear the lcd display before it
> sends the chassis code to the PDC.  How does this sound:

If you think about the firmware code that drives the display of chassis
messages, it's firmware, changing how it works is pretty much not
possible at that point. If you think about the PDC Chassis driver, that
(Continue reading)

David Pye | 20 Mar 20:52
Picon

Re: J5000 LCD heartbeat

Hi, and thanks for your reply.

On Sunday 20 March 2005 19:40, you wrote:

> > I think I have an idea that it's related to CPU1 init, but I haven't
> > confirmed this yet - depending on your feedback to the idea below, I
> > won't bother tracing it down.
>
> Don't bother. I have that kind of message left on my j5k LCD has well,
> that's been there for ages, without problem.

Well, I'd like to see it gone myself, even though it doesn't do anything 
unpleasant. It is a little messy, at least having it mangled up with the 
Linux default text is.

If all it takes to prevent it is to make the lcd init happen slightly later in 
the boot process (ie after the chassis code was emitted), I'd have thought it 
would be an easy win.

> If you think about the firmware code that drives the display of chassis
> messages, it's firmware, changing how it works is pretty much not
> possible at that point. If you think about the PDC Chassis driver, that
> code doesn't work (read, "isn't activated") on j5k and other System Map
> firmware machines, it only works on PDC PAT machines (eg high end
> servers).

Yeah, true. So, if the PDC chassis driver isn't used on the j5k, how does the 
chassis message get sent from the kernel to the PDC?  I haven't worked that 
out yet.

(Continue reading)

Thibaut VARENE | 20 Mar 21:03

Re: J5000 LCD heartbeat

On Sun, 20 Mar 2005 19:52:29 +0000
David Pye <dmp <at> davidmpye.dyndns.org> wrote:

> Hi, and thanks for your reply.
> 
> On Sunday 20 March 2005 19:40, you wrote:
> 
> > > I think I have an idea that it's related to CPU1 init, but I haven't
> > > confirmed this yet - depending on your feedback to the idea below, I
> > > won't bother tracing it down.
> >
> > Don't bother. I have that kind of message left on my j5k LCD has well,
> > that's been there for ages, without problem.
> 
> Well, I'd like to see it gone myself, even though it doesn't do anything
> unpleasant. It is a little messy, at least having it mangled up with the
> Linux default text is.
> 
> If all it takes to prevent it is to make the lcd init happen slightly
> later in the boot process (ie after the chassis code was emitted), I'd
> have thought it would be an easy win.

it's not that simple.
If you want to have it gone, add 
@reboot echo "" > /proc/pdc/lcd
in your root crontab :)

> > If you think about the firmware code that drives the display of
> > chassis messages, it's firmware, changing how it works is pretty much
> > not possible at that point. If you think about the PDC Chassis driver,
(Continue reading)

David Pye | 20 Mar 23:57
Picon

Re: J5000 LCD heartbeat

On Sunday 20 March 2005 20:03, Thibaut VARENE wrote:
> On Sun, 20 Mar 2005 19:52:29 +0000
>
> David Pye <dmp <at> davidmpye.dyndns.org> wrote:
> > Hi, and thanks for your reply.
> >
> > On Sunday 20 March 2005 19:40, you wrote:
> > > > I think I have an idea that it's related to CPU1 init, but I haven't
> > > > confirmed this yet - depending on your feedback to the idea below, I
> > > > won't bother tracing it down.
> > >
> > > Don't bother. I have that kind of message left on my j5k LCD has well,
> > > that's been there for ages, without problem.
<snip>

> it's not that simple.
> If you want to have it gone, add
> @reboot echo "" > /proc/pdc/lcd
> in your root crontab :)

I think that's a perfectly acceptable solution for me, so I've done that. 
Thankyou!
<snip>

> > > > Did you have any hints you could give me as to fix my very
> > > > occasional heartbeat issue either?
> > >
> > > I recall that the LCD heartbeat is quite slow on my j5k as well, but
> > > nothing really awful, afaicr.
> >
(Continue reading)

David Pye | 21 Mar 00:17
Picon

Re: J5000 LCD heartbeat

On Sunday 20 March 2005 22:57, David Pye wrote:

> Well, I've had a bit of a play with this, and think I have a feel of what
> causes it.
>
> The led_LCD_driver() fires each time the tasklet decides the led statuses
> should change, but each time it only updates at best one of the four LEDs.
>
> Every time it fires, it either updates one led, or it writes the command
> register, to avoid sleeping.   This means, that it requires eight fires of
> the tasklet (and eight times of it having decided an LCD state should flip)
> before the heartbeat will be written to.  It seems to be a rare occasion
> that these all line up (most of the time the heartbeat has pulsed back to
> its previous state before the LCD panel itself gets updated.

      
It appears my hunch was correct
  /* update the LCD/LEDs */
        if (currentleds != lastleds || led_type == LED_HASLCD) {
            led_func_ptr(currentleds);
            lastleds = currentleds;
        }

If I modify the conditional as above, so it fires the led_func_ptr each time 
the tasklet fires for LCD users (even if the leds haven't nominally changed) 
my heart beats!

Admittedly, it doesn't QUITE beat right, because of the rate the tasklet 
fires, and the rate at which the heart is supposed to beat.

(Continue reading)

Stuart Brady | 20 Mar 22:52

Re: [parisc-linux] Re: J5000 LCD heartbeat

On Sun, Mar 20, 2005 at 09:03:57PM +0100, Thibaut VARENE wrote:
> it's not that simple.
> If you want to have it gone, add 
> @reboot echo "" > /proc/pdc/lcd
> in your root crontab :)

BTW, If anyone really wants scrolling, this script should do it.  It has
to use character 16 for spaces, which is a bit broken -- YMMV.

====================
#!/bin/bash

STR="Linux $(uname -r)   "
END=""

# Prevent the PDC from stripping leading spaces by
# using character 16 (octal 20) as a space...

STR="$(echo "$STR" | tr ' ' '\20')"

while(true); do
	echo "${STR}${END}" > /proc/pdc/lcd
	END="${END}${STR:0:1}"
	STR="${STR:1}"
	if [ -z "${STR:-}" ]; then
		STR="${END}"
		END=""
	fi
	sleep 0.25
done
(Continue reading)

Grant Grundler | 20 Mar 00:20

Re: [parisc-linux] Re: J5000 LCD heartbeat

On Sat, Mar 19, 2005 at 04:19:11PM -0700, Grant Grundler wrote:
> I would think it's possible.
> You want to track down where the CC01 chassis_log is emitted then 
> propose a better place to initialize LED display?

sorry - meant LCD here

> Another idea is the chassis log code might want to clear the LED
> diplay when displaying a chassis log and then a few seconds later
> refresh the LED display with the original contents or something.

and here.

grant


Gmane