Subject: Re: regarding pci vga card output with powerpc

From: sudheer <[email-masked]>
Date: Thu, 10 Aug 2006 12:40:19 +0530

Andrey Volkov wrote:
> sudheer wrote:
>   
>> 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.
>>     
>
> Because printk didn't print to an dedicated device, but to a klog
> stream. So check your /etc/inittab and /etc/securetty, its similar
> that something wrong in this files.
>   
oh..sorry, i forgot to tell you about the other two modifications done 
in the kernel config and ramdisk.
In the kernel config-- I have selected the virtual terminal option.
In the ramdisk- etc/inittab - i added the following line:
::respawn:/sbin/getty tty1 115200 vt100.
The etc/securetty contains the following:
console
fb0
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
ttyS0
ttyS1
ttyS2
ttyS3
ttyp0
ttyp1
ttyp2
ttyp3
ttyAM0
ttyAM1
tts/0
tts/1

Do i need to use fb0, to send the  serial data to frame buffer ?

>   
>> 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
>>
>>