Subject: Portmap on the Encore M3

From: Ashlesha Shintre <[email-masked]>
Date: Mon, 13 Nov 2006 10:46:47 -0800

Hi,

I get the following error after the NFS is mounted and the kernel frees
136k of memory:

> >
> RPC: sendmsg returned error 128.
> <4>nfs: RPC call returned error 128 
> 

I m trying to boot the 2.6.14.6 kernel onto the Encore M3 board that has
the MIPS AU1500 processor on it.

The .config file contains the following line: CONFIG_PORTMAP=y
The server from which the NFS is mounted is also running the portmap
daemon..

Is there a way to check if the portmap server is functioning properly?

Also:

- The BogoMIPS value is 7186 which seems too low for the AU1500 -- how
can I check that the timer interrupt is being handled correctly?  The
AU1500 has 2 counters which are used to generate a clock

- On the serial console I can only see messages upto this point:

> 16.35 BogoMIPS (lpj=8176)
> calibrate delay done
> anon vma init done
> Mount-cache hash table entries: 512
> Checking for 'wait' instruction...  unavailable.
> NET: Registered protocol family 16
> size of au1xxx platform devices is 1

After this, the serial console 'hangs' -- I can see the RPC error from the log buffer, accessed from the JTAG port..
--Please give any suggestions as to where I should start looking to narrow down and figure out the problem..

Thank you!
Ashlesha.

Kenati Technologies
Suite #220 
800 W California Ave
Sunnyvale 
94086 CA

---

From: Ralf Baechle <[email-masked]>
Date: Mon, 13 Nov 2006 23:38:03 +0000

> > <4>nfs: RPC call returned error 128 

128 = ENETUNREACH.

> the MIPS AU1500 processor on it.

For more information [1] about 2.6.14 kernels see http://tinyurl.com/hjexx ;-)

> > 16.35 BogoMIPS (lpj=8176)

Sounds about right if your CPU clock hapens to be 8MHz so probably not.
Chances the counter was missprogrammed.  Or are you running uncached?
Uncached will completly devastate performance.

> --Please give any suggestions as to where I should start looking to narrow down and figure out the problem..

At about this point the actual console driver is registered and takes
over from the early console driver - whatever that may be in your case.
So seems the early console driver is fine but the actual console driver
(that is serial driver) is falling over.

  Ralf

[1] Okay, I'm just trying to convince people to upgrade :-)

---

From: Ashlesha Shintre <[email-masked]>
Date: Mon, 13 Nov 2006 18:03:07 -0800

> > > <4>nfs: RPC call returned error 128 
Thank you -
> Uncached will completly devastate performance.

For the AU1500 processor, the CPU Clock is derived from the PLL whose
input is 12MHz.. Upon reading the value of the SYS_CPUPLL register in
the calibrate_delay function, I found out that the multiplying factor is
40, thus, the CPU Clock frequency is 480MHz.. Thus the lpj should be
approximately 480000 -- right?

Also I dont know what you mean by "running uncached"?

> (that is serial driver) is falling over.
Thanks a lot, I will check the problem with the serial driver -- i m
using the 8250.c serial driver..

There is no early console init funciton:  The board has a serial port on
a VIA 686B Southbridge on the PCI bus -- so to get the kernel messages
on the console, before initialising the serial driver I just write a TLB
entry giving the address of the VIA on the PCI bus --

So maybe deleting this TLB entry before serial driver initialisation
might work at this point...I will try that next -

> [1] Okay, I'm just trying to convince people to upgrade :-)
I will convey your message to my boss :-)

Thanks again,
Ashlesha.

---

From: Ralf Baechle <[email-masked]>
Date: Tue, 14 Nov 2006 13:05:03 +0000

> approximately 480000 -- right?

From a CPU core like the Alchemy core I would more expect half of that
number, 240000.  That is if HZ is 1000 which I believe it was still
hardwired for kernels of the vintage you're running.

> Also I dont know what you mean by "running uncached"?

CONFIG_MIPS_UNCACHED which disables all processor caches.  Bad idea.

> using the 8250.c serial driver..

Use CONFIG_SERIAL_AU1X00.

  Ralf

---

From: Ashlesha Shintre <[email-masked]>
Date: Tue, 14 Nov 2006 10:28:10 -0800

> Use CONFIG_SERIAL_AU1X00.

--But I want to use standard 16550 compatible serial port, controlled by
the Super I/O Controller on the VIA Southbridge.. The
CONFIG_SERIAL_AU1x00 will not be able to drive this port will it?

Thanks
Ashlesha.

---

From: Ralf Baechle <[email-masked]>
Date: Tue, 14 Nov 2006 19:11:56 +0000

> CONFIG_SERIAL_AU1x00 will not be able to drive this port will it?

Ah, no.  But that's an unusual configuration.  In general Alchemy
systems only use the on-chip UART which is 8250-ish but just different
enough that in older Linux versions we used to have a separate
driver for it.

  Ralf

---

From: Ashlesha Shintre <[email-masked]>
Date: Wed, 15 Nov 2006 14:24:41 -0800

Hi,

I m trying to understand exactly how the serial driver works -- and also
the early console initialisation.  I m reading the following websites:

An article called Serial consoles and console drivers by Alassandro
Rubini at http://www.linux.it/~rubini/docs/sercons/sercons.html 

the serial driver Wiki at :
http://www.linux-mips.org/wiki/Serial_Driver_and_Console
and links given on this wiki..

However I havent found a resource that talks about these two processes,
early serial console initialisation and invocation of the serial driver,
in enough detail to give an idea about the processes set into action
when messages are put out to the console..

Can you point me to any other useful links on this issue?

Thank you.
Regards,

Ashlesha.

---

From: Ashlesha Shintre <[email-masked]>
Date: Mon, 20 Nov 2006 15:41:17 -0800

On the Encore M3 board that has the AU1500 MIPS processor on it, 
the BogoMIPS value should be 240,000 as per the cpu_syspll register

However the loops_per_jiffy variable is defined as an unsigned long in
the init/main.c making it impossible to achieve this value of 240K...

Assuming that unsigned long means that a total of 4 bytes are allocated
to this variable..Am I looking at the wrong value?
The value that I get at boot time is lpj=8192.

Thanks for your help,
Ashlesha.