Subject: Re: regarding pci vga card output with powerpc

From: sudheer <[email-masked]>
Date: Thu, 10 Aug 2006 10:38:35 +0530

Andrey Volkov wrote:
> urwithsudheer wrote:
>> Hello All,
>> I am working with a pci based vga card. I have connected the vga card 
>> next to the  pci slot of my target processor on the baseboard.
>> I have connected a monitor to the vga card.
>> When i boot linux from minicom, i could see all the kernel log 
>> messages on both the minicom and vga card monitor. But on the vga 
>> monitor, i could not see any messages after asking for login as below:
>> .
>> .
>>
>> Mounting filesystems
>> Running depmod
>> Setting up networking on loopback device:
>> Setting up networking on eth0:
>> eth0: PHY is Marvell 88E11x1 (1410cc2)
>> Adding static route for default gateway to 192.168.3.1:
>> Setting nameserver to 192.168.0.1 in /etc/resolv.conf:
>> Starting inetd:
>>
>> login:
>>
>>
>> Though i am entering my login and passwd at the minicom, nothing 
>> comes on to the vga monitor. But i am able to write to vga monitor 
>> using the following commands from minicom:
>>
>> # echo "Hello" > /dev/tty1
>> # echo "Hi " > /dev/tty1
>> My requirement is to get on the vga monitor whatever i am typing on 
>> the minicom after logging into the linux like .
>> ls or pwd commands.
>>
>> Anyone pl help me.
>>
>> Thanks & Regards
>> Sudheer
>>
>
> See Documentation/kernel-parameters.txt.
>
> If be short, add:
>
>     console=/dev/ttySxx console=/dev/tty1
>
> (both) to a kernel parameters string.
>
I got upto login prompt on the vga monitor only after giving the above 
parameters in my u-boot bootargs.
u-boot=> set bootargs console=tty1 console=ttyS0,115200.

I have added in the serial driver  linux/drivers/serial/serial_core.c
   in the function  uart_write(struct tty_struct *tty, const unsigned 
char * buf, int count)
   The lines in the if directive.
  
if (c <= 0)
                        break;
                memcpy(circ->buf + circ->head, buf, c);
/* added to test vga */
#if 1
                memcpy(tempbuf, circ->buf + circ->head, c);
                  for(i=0;i<c;i++)
                  printk("%c", tempbuf[i]);
#endif

 circ->head = (circ->head + c) & (UART_XMIT_SIZE - 1);
                buf += c;

Then as i expected, all the letters i enter in the minicom came twice on 
the minicom.

login:rroooott
Password: Password:
login  on `ttyS0'ogin  on `ttyS0'login[83]: root

 ~ # ~ # llss
 ~ # ~ # iiffccoonnffiigg

And whatever i enter on the minicom also gets print on the vga monitor  
but only once.
When i comment the if directive, On the vga monitor i could see only 
upto login prompt.

I don't know why the printk statement i added in the serial driver 
prints on the vga monitor.

As said by shkatikannan, i am going through the vga driver to copy to 
the frambuffer. But  yet couldn't get it exactly in the code where to copy.

Please tell me if i am in the wrong path.

Thanks & Regards
Sudheer

> -- 
> Regards
> Andrey