All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: calibrate_delay function
  2006-10-10 22:43 calibrate_delay function Ashlesha Shintre
@ 2006-10-10 22:38 ` mlachwani
  2006-10-10 23:34   ` Ashlesha Shintre
  0 siblings, 1 reply; 7+ messages in thread
From: mlachwani @ 2006-10-10 22:38 UTC (permalink / raw)
  To: ashlesha; +Cc: linux-mips

Ashlesha Shintre wrote:
> Hi,
> I m working on the Encore M3 board that has the AU1500 MIPS processor on
> it.  I aim to port the 2.6 linux kernel to the board which is already
> supported in the 2.4 kernel.
>
> The start_kernel function in linux/init/main.c file, calls a function
> calibrate_delay found in the arch/frv/kernel/setup.c file.  Why does the
> kernel call this function which is a part of the Fujitsu FR-V
> architecture?  
>
> When I build the image, this is the point where the kernel is stuck and
> the last contents of the log buffer show the following printk message
> from the calibrate_delay function:
>
>
>   
>> Calibrating delay loop...
>>     
>
> Thanks,
> Ashlesha.
>
>
>
>
>   
start_kernel() calls calibrate_delay() which can be found in 
init/calibrate.c

thanks,
Manish Lachwani

^ permalink raw reply	[flat|nested] 7+ messages in thread

* calibrate_delay function
@ 2006-10-10 22:43 Ashlesha Shintre
  2006-10-10 22:38 ` mlachwani
  0 siblings, 1 reply; 7+ messages in thread
From: Ashlesha Shintre @ 2006-10-10 22:43 UTC (permalink / raw)
  To: linux-mips

Hi,
I m working on the Encore M3 board that has the AU1500 MIPS processor on
it.  I aim to port the 2.6 linux kernel to the board which is already
supported in the 2.4 kernel.

The start_kernel function in linux/init/main.c file, calls a function
calibrate_delay found in the arch/frv/kernel/setup.c file.  Why does the
kernel call this function which is a part of the Fujitsu FR-V
architecture?  

When I build the image, this is the point where the kernel is stuck and
the last contents of the log buffer show the following printk message
from the calibrate_delay function:


> Calibrating delay loop...

Thanks,
Ashlesha.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: calibrate_delay function
  2006-10-10 23:34   ` Ashlesha Shintre
@ 2006-10-10 23:30     ` mlachwani
  2006-10-11  1:07       ` Ashlesha Shintre
  2006-10-11 17:52       ` Ashlesha Shintre
  2006-10-10 23:35     ` Ricardo Mendoza
  1 sibling, 2 replies; 7+ messages in thread
From: mlachwani @ 2006-10-10 23:30 UTC (permalink / raw)
  To: ashlesha; +Cc: linux-mips

Can you check to see if you are getting timer interrupts

thanks,
Manish Lachwani

Ashlesha Shintre wrote:
>>> start_kernel() calls calibrate_delay() which can be found in 
>>> init/calibrate.c
>>>       
>
> Thanks, I did find it and put in a few printk s to debug the problem.
>
> i have pasted part of the calibrate_delay function where the kernel gets stuck..
> It is getting stuck at the second while loop where it goes into an infinite loop!
> the value of ash_count keeps incrementing and thats all i see in the log buffer!
>
> i can see why the kernel is stuck -- its because ticks=jiffies is the command just before infinitely looping based on the condition that ticks==jiffies!
> Am I not looking in the right place?
>
> Regards,
> Ashlesha.
>   
>>  printk(KERN_DEBUG "Calibrating delay loop... ");
>>                 while ((loops_per_jiffy <<= 1) != 0) {
>>                         printk("within the while loop\n");
>>                         /* wait for "start of" clock tick */
>>                         ticks = jiffies;
>>                         while (ticks == jiffies)
>>                                 printk("%d\n",++ash_count);
>>                                 /* nothing ; infinite loop, control never comes out of here*/
>>                         /* Go .. */
>>     
>
> On Tue, 2006-10-10 at 15:38 -0700, mlachwani wrote:
>   
>> Ashlesha Shintre wrote:
>>     
>>> Hi,
>>> I m working on the Encore M3 board that has the AU1500 MIPS processor on
>>> it.  I aim to port the 2.6 linux kernel to the board which is already
>>> supported in the 2.4 kernel.
>>>
>>> The start_kernel function in linux/init/main.c file, calls a function
>>> calibrate_delay found in the arch/frv/kernel/setup.c file.  Why does the
>>> kernel call this function which is a part of the Fujitsu FR-V
>>> architecture?  
>>>
>>> When I build the image, this is the point where the kernel is stuck and
>>> the last contents of the log buffer show the following printk message
>>> from the calibrate_delay function:
>>>
>>>
>>>   
>>>       
>>>> Calibrating delay loop...
>>>>     
>>>>         
>>> Thanks,
>>> Ashlesha.
>>>
>>>
>>>
>>>
>>>   
>>>       
>
>   
>>> start_kernel() calls calibrate_delay() which can be found in 
>>> init/calibrate.c
>>>
>>>       
>> thanks,
>> Manish Lachwani
>>     
>
>   

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: calibrate_delay function
  2006-10-10 22:38 ` mlachwani
@ 2006-10-10 23:34   ` Ashlesha Shintre
  2006-10-10 23:30     ` mlachwani
  2006-10-10 23:35     ` Ricardo Mendoza
  0 siblings, 2 replies; 7+ messages in thread
From: Ashlesha Shintre @ 2006-10-10 23:34 UTC (permalink / raw)
  To: mlachwani; +Cc: linux-mips


> > start_kernel() calls calibrate_delay() which can be found in 
> > init/calibrate.c

Thanks, I did find it and put in a few printk s to debug the problem.

i have pasted part of the calibrate_delay function where the kernel gets stuck..
It is getting stuck at the second while loop where it goes into an infinite loop!
the value of ash_count keeps incrementing and thats all i see in the log buffer!

i can see why the kernel is stuck -- its because ticks=jiffies is the command just before infinitely looping based on the condition that ticks==jiffies!
Am I not looking in the right place?

Regards,
Ashlesha.
>  printk(KERN_DEBUG "Calibrating delay loop... ");
>                 while ((loops_per_jiffy <<= 1) != 0) {
>                         printk("within the while loop\n");
>                         /* wait for "start of" clock tick */
>                         ticks = jiffies;
>                         while (ticks == jiffies)
>                                 printk("%d\n",++ash_count);
>                                 /* nothing ; infinite loop, control never comes out of here*/
>                         /* Go .. */

On Tue, 2006-10-10 at 15:38 -0700, mlachwani wrote:
> Ashlesha Shintre wrote:
> > Hi,
> > I m working on the Encore M3 board that has the AU1500 MIPS processor on
> > it.  I aim to port the 2.6 linux kernel to the board which is already
> > supported in the 2.4 kernel.
> >
> > The start_kernel function in linux/init/main.c file, calls a function
> > calibrate_delay found in the arch/frv/kernel/setup.c file.  Why does the
> > kernel call this function which is a part of the Fujitsu FR-V
> > architecture?  
> >
> > When I build the image, this is the point where the kernel is stuck and
> > the last contents of the log buffer show the following printk message
> > from the calibrate_delay function:
> >
> >
> >   
> >> Calibrating delay loop...
> >>     
> >
> > Thanks,
> > Ashlesha.
> >
> >
> >
> >
> >   

> > start_kernel() calls calibrate_delay() which can be found in 
> > init/calibrate.c
> > 
> thanks,
> Manish Lachwani

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: calibrate_delay function
  2006-10-10 23:34   ` Ashlesha Shintre
  2006-10-10 23:30     ` mlachwani
@ 2006-10-10 23:35     ` Ricardo Mendoza
  1 sibling, 0 replies; 7+ messages in thread
From: Ricardo Mendoza @ 2006-10-10 23:35 UTC (permalink / raw)
  To: ashlesha; +Cc: linux-mips

On 10/10/06, Ashlesha Shintre <ashlesha@kenati.com> wrote:
> i can see why the kernel is stuck -- its because ticks=jiffies is the command just before infinitely looping based on the condition that ticks==jiffies!
> Am I not looking in the right place?

The delay loop calibration relies on a working system timer, if you
haven't setup and started a timer for your board, the jiffies will
never be incremented ergo indefinitely looping in this place.

This information can probably be found under Porting, on the l-m.o
wiki. Check there if you have any other problems in the process of
writing your board specific code.


     Ricardo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: calibrate_delay function
  2006-10-10 23:30     ` mlachwani
@ 2006-10-11  1:07       ` Ashlesha Shintre
  2006-10-11 17:52       ` Ashlesha Shintre
  1 sibling, 0 replies; 7+ messages in thread
From: Ashlesha Shintre @ 2006-10-11  1:07 UTC (permalink / raw)
  To: mlachwani, mendoza.ricardo; +Cc: linux-mips

thanks, i m checking the Documentation/mips/time.c file..the time_init
function gets executed as it is supposed to...
the curious part is that a few days ago, this was not where the kernel
was stuck..
it was going to the rest_init function in the start_kernel and
discovering devices on the PCI bus...it used to hang at that point!
but i will check and let you know..
thanks,

On Tue, 2006-10-10 at 16:30 -0700, mlachwani wrote:
> Can you check to see if you are getting timer interrupts
> 
> thanks,
> Manish Lachwani
> 
> Ashlesha Shintre wrote:
> >>> start_kernel() calls calibrate_delay() which can be found in 
> >>> init/calibrate.c
> >>>       
> >
> > Thanks, I did find it and put in a few printk s to debug the problem.
> >
> > i have pasted part of the calibrate_delay function where the kernel gets stuck..
> > It is getting stuck at the second while loop where it goes into an infinite loop!
> > the value of ash_count keeps incrementing and thats all i see in the log buffer!
> >
> > i can see why the kernel is stuck -- its because ticks=jiffies is the command just before infinitely looping based on the condition that ticks==jiffies!
> > Am I not looking in the right place?
> >
> > Regards,
> > Ashlesha.
> >   
> >>  printk(KERN_DEBUG "Calibrating delay loop... ");
> >>                 while ((loops_per_jiffy <<= 1) != 0) {
> >>                         printk("within the while loop\n");
> >>                         /* wait for "start of" clock tick */
> >>                         ticks = jiffies;
> >>                         while (ticks == jiffies)
> >>                                 printk("%d\n",++ash_count);
> >>                                 /* nothing ; infinite loop, control never comes out of here*/
> >>                         /* Go .. */
> >>     
> >
> > On Tue, 2006-10-10 at 15:38 -0700, mlachwani wrote:
> >   
> >> Ashlesha Shintre wrote:
> >>     
> >>> Hi,
> >>> I m working on the Encore M3 board that has the AU1500 MIPS processor on
> >>> it.  I aim to port the 2.6 linux kernel to the board which is already
> >>> supported in the 2.4 kernel.
> >>>
> >>> The start_kernel function in linux/init/main.c file, calls a function
> >>> calibrate_delay found in the arch/frv/kernel/setup.c file.  Why does the
> >>> kernel call this function which is a part of the Fujitsu FR-V
> >>> architecture?  
> >>>
> >>> When I build the image, this is the point where the kernel is stuck and
> >>> the last contents of the log buffer show the following printk message
> >>> from the calibrate_delay function:
> >>>
> >>>
> >>>   
> >>>       
> >>>> Calibrating delay loop...
> >>>>     
> >>>>         
> >>> Thanks,
> >>> Ashlesha.
> >>>
> >>>
> >>>
> >>>
> >>>   
> >>>       
> >
> >   
> >>> start_kernel() calls calibrate_delay() which can be found in 
> >>> init/calibrate.c
> >>>
> >>>       
> >> thanks,
> >> Manish Lachwani
> >>     
> >
> >   
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: calibrate_delay function
  2006-10-10 23:30     ` mlachwani
  2006-10-11  1:07       ` Ashlesha Shintre
@ 2006-10-11 17:52       ` Ashlesha Shintre
  1 sibling, 0 replies; 7+ messages in thread
From: Ashlesha Shintre @ 2006-10-11 17:52 UTC (permalink / raw)
  To: mlachwani; +Cc: linux-mips

hi,

I checked what functions are being executed in the start up process and
found that the au1xxx_timer_setup is called and executed..

Also the processor has 2 counters, the TOY (time of year) and RTC, so
the calibrate_div32_gettimeoffset gets executed...

how can I check if I get the timer interrupt?

Thanks,
Ashlesha.

On Tue, 2006-10-10 at 16:30 -0700, mlachwani wrote:
> Can you check to see if you are getting timer interrupts
> 
> thanks,
> Manish Lachwani
> 
> Ashlesha Shintre wrote:
> >>> start_kernel() calls calibrate_delay() which can be found in 
> >>> init/calibrate.c
> >>>       
> >
> > Thanks, I did find it and put in a few printk s to debug the problem.
> >
> > i have pasted part of the calibrate_delay function where the kernel gets stuck..
> > It is getting stuck at the second while loop where it goes into an infinite loop!
> > the value of ash_count keeps incrementing and thats all i see in the log buffer!
> >
> > i can see why the kernel is stuck -- its because ticks=jiffies is the command just before infinitely looping based on the condition that ticks==jiffies!
> > Am I not looking in the right place?
> >
> > Regards,
> > Ashlesha.
> >   
> >>  printk(KERN_DEBUG "Calibrating delay loop... ");
> >>                 while ((loops_per_jiffy <<= 1) != 0) {
> >>                         printk("within the while loop\n");
> >>                         /* wait for "start of" clock tick */
> >>                         ticks = jiffies;
> >>                         while (ticks == jiffies)
> >>                                 printk("%d\n",++ash_count);
> >>                                 /* nothing ; infinite loop, control never comes out of here*/
> >>                         /* Go .. */
> >>     
> >
> > On Tue, 2006-10-10 at 15:38 -0700, mlachwani wrote:
> >   
> >> Ashlesha Shintre wrote:
> >>     
> >>> Hi,
> >>> I m working on the Encore M3 board that has the AU1500 MIPS processor on
> >>> it.  I aim to port the 2.6 linux kernel to the board which is already
> >>> supported in the 2.4 kernel.
> >>>
> >>> The start_kernel function in linux/init/main.c file, calls a function
> >>> calibrate_delay found in the arch/frv/kernel/setup.c file.  Why does the
> >>> kernel call this function which is a part of the Fujitsu FR-V
> >>> architecture?  
> >>>
> >>> When I build the image, this is the point where the kernel is stuck and
> >>> the last contents of the log buffer show the following printk message
> >>> from the calibrate_delay function:
> >>>
> >>>
> >>>   
> >>>       
> >>>> Calibrating delay loop...
> >>>>     
> >>>>         
> >>> Thanks,
> >>> Ashlesha.
> >>>
> >>>
> >>>
> >>>
> >>>   
> >>>       
> >
> >   
> >>> start_kernel() calls calibrate_delay() which can be found in 
> >>> init/calibrate.c
> >>>
> >>>       
> >> thanks,
> >> Manish Lachwani
> >>     
> >
> >   
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2006-10-11 17:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-10 22:43 calibrate_delay function Ashlesha Shintre
2006-10-10 22:38 ` mlachwani
2006-10-10 23:34   ` Ashlesha Shintre
2006-10-10 23:30     ` mlachwani
2006-10-11  1:07       ` Ashlesha Shintre
2006-10-11 17:52       ` Ashlesha Shintre
2006-10-10 23:35     ` Ricardo Mendoza

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.