From: "tiejun.chen" <tiejun.chen@windriver.com>
To: MohanReddy koppula <mohanreddykv@gmail.com>
Cc: Linuxppc-dev@lists.ozlabs.org, Nicholas Mc Guire <der.herr@hofr.at>
Subject: Re: Problem with Busybox shell
Date: Thu, 20 Jan 2011 10:11:11 +0800 [thread overview]
Message-ID: <4D3799BF.5020001@windriver.com> (raw)
In-Reply-To: <AANLkTim0xJr_sr4ZZxngTS7adDKaBpS7=_KeDMwv6mTc@mail.gmail.com>
MohanReddy koppula wrote:
> I further debugged and found that flush_to_ldisc() function is not
> called which actually wakes up the readers. This is a worker function
> and is not being scheduled. I suspected whether timer interrupts are
> generated or not. powerpc uses decrementer exceptions as timer
> interrupts. I see that timer_interrupt() function in
> arch/powerpc/kernel/time.c is not called at all. I printed even
> jiffies values and it is not incremented. And I beleivethis makes
> scheduler is not scheduling this worker thread.
>
> I think if flush_to_ldisc is not called nothing can be read from the tty.
>
> Please let me know what could be the reason for timer interrupt being
> not called.
As you know the decrement exception always is invoked by the TB REGs, unless
there is one higher priority exception to block that.
Here I show the jiffies updating path simply as follows (only one simple path,
actually the timer framework should be more complicated.):
-------
DECREMENT Exception
-> timer_interrupt
|
+ evt->event_handler(evt);
|
+ tick_handle_periodic()
|
+ tick_periodic(cpu);
Then
------
static void tick_periodic(int cpu)
{
if (tick_do_timer_cpu == cpu) {
write_seqlock(&xtime_lock);
/* Keep track of the next tick event */
tick_next_period = ktime_add(tick_next_period, tick_period);
do_timer(1);
write_sequnlock(&xtime_lock);
}
update_process_times(user_mode(get_irq_regs()));
profile_tick(CPU_PROFILING);
}
So if we cannot set/update TB we would have no decrement exception. Or the
kernel is locked/looped somewhere.
Can you track the whole process via print? Maybe you can find out something. And
I'm not familiar with 885, is is SMP?
Tiejun
>
> Thanks,
> Mohan
>
>
>
>
> On Wed, Jan 19, 2011 at 12:37 AM, tiejun.chen <tiejun.chen@windriver.com> wrote:
>> MohanReddy koppula wrote:
>>> But, if there is any problem with cable I could not have seen any
>>> character in the interrupt routine of the driver. I turned off both
>> I suppose the bootloader, i.e u-boot, works well so looks this should not be
>> issued by the cable at least.
>>
>>> software and hardware flow control as by board doesn't have hardware
>>> flow control. tty_read is called and it hangs at ldisc->read. And I
>> Any panic information? Or any dead lock? Which line in detail?
>>
>>> see that data is put into the tty buffer by the driver. Will there be
>>> any problem with copy_to_user() if there is some problem in the
>>> memory?
>> Can the serial driver support the poll mode? If so maybe you can take a try to
>> exclude any interrupt reason.
>>
>> And even you can remove all codes to initialize the corresponding PIN & CLK
>> dedicated to the serial port, then try again since the bootloader already did this.
>>
>> Tiejun
>>
>>> Thanks,
>>> Mohan
>>>
>>> On Tue, Jan 18, 2011 at 12:55 PM, Nicholas Mc Guire <der.herr@hofr.at> wrote:
>>>> On Tue, 18 Jan 2011, MohanReddy koppula wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> I am working on an MPC885 based custom board. I am able to boot up the
>>>>> linux (linux-2.6.33.7). I could see busybox shell (ash) prompt. But it
>>>>> is not accepting any inputs, I am not able to enter any command, it
>>>>> just hangs there. I am using ttyCPM0 terminal.
>>>>>
>>>>> I suspected if there was any problem in CPM driver interrupts
>>>>> generation and put some printk's in the interrupt handler and could
>>>>> see interrupts are raised and data is read, but shell is not taking
>>>>> the input.
>>>>>
>>>>> I wrote an init.c and opened the ttyCPM0 and tried to read from it,
>>>>> but couldn't. I am able to write to ttyCPM0 and see it on the host
>>>>> minicom.
>>>>>
>>>> if you are using minicom to connect check if you have hardware/software flow
>>>> control turned on - it also could be a cabling problem - had this with the
>>>> beagle board where the tx line was on the wrong pin - so I got output but
>>>> could not get any response to input.
>>>>
>>>> hofrat
next prev parent reply other threads:[~2011-01-20 2:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-18 12:54 Problem with Busybox shell MohanReddy koppula
2011-01-18 20:59 ` Scott Wood
[not found] ` <20110118175533.GB28268@opentech.at>
2011-01-19 5:06 ` MohanReddy koppula
2011-01-19 5:37 ` tiejun.chen
2011-01-19 12:06 ` MohanReddy koppula
2011-01-20 2:11 ` tiejun.chen [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-02-04 23:14 Gorelik, Jacob (335F)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D3799BF.5020001@windriver.com \
--to=tiejun.chen@windriver.com \
--cc=Linuxppc-dev@lists.ozlabs.org \
--cc=der.herr@hofr.at \
--cc=mohanreddykv@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).