LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: Redwood-6 and 2.6
From: Otto Solares @ 2005-08-18  0:02 UTC (permalink / raw)
  To: Matt Porter; +Cc: linuxppc-embedded
In-Reply-To: <20050816201745.C2246@cox.net>

On Tue, Aug 16, 2005 at 08:17:45PM -0700, Matt Porter wrote:
> What kernel port are you using?  You're trying boot a Redwood 6
> kernel on the MediaMVP?

I'm using kernel.org's 2.6.12.4 + your dma patch.

Yes I'm trying to boot this redwood6 kernel on the MediaMVP,
Hauppauge provides source for 2.4.18 which is plain old, my
University project is boot a 2.6 kernel on this little box.

I setup netconsole to see what's going on in the boot but
it doesn't work that's why I think the smc91x driver does not
support PPC or probably it does not support netpoll which is
the base for netconsole, I'll continue figuring out what is
going on.

I really apreciate all your help.  Thank you.

-otto

^ permalink raw reply

* Re: When are machine checks suppose to be recoverable?
From: Kumar Gala @ 2005-08-18  3:42 UTC (permalink / raw)
  To: David Woodhouse; +Cc: linuxppc-dev list
In-Reply-To: <1124317852.24373.13.camel@localhost.localdomain>


On Aug 17, 2005, at 5:30 PM, David Woodhouse wrote:

> On Thu, 2005-08-18 at 07:44 +1000, Benjamin Herrenschmidt wrote:
>
>> On Wed, 2005-08-17 at 09:00 -0500, Kumar Gala wrote:
>>
>>> David's 8250 cleanup patch made me wondering when are machine checks
>>>
>
>
>>> suppose to recoverable?  General class of conditions is what I'm
>>> looking for here.
>>>
>>> Is David's case due to some PCI master abort or something else?
>>>
>>
>> Might be some issue on SMP machines...
>>
>
> Yeah, that'll probably be the reason it turns out _not_ to be
> recoverable despite our expectations. But that wasn't Kumar's  
> question.

David's right, that wasn't my question :)  I was asking more about  
what cases do we actually recover and that is considered correct  
behavior.

- kumar

^ permalink raw reply

* Re: [PATCH] cpm_uart: Fix dpram allocation and non-console uarts
From: Nish Aravamudan @ 2005-08-18  5:42 UTC (permalink / raw)
  To: Kumar Gala; +Cc: Andrew Morton, linux-kernel, linuxppc-embedded
In-Reply-To: <Pine.LNX.4.61.0508082239180.5117@nylon.am.freescale.net>

On 8/8/05, Kumar Gala <galak@freescale.com> wrote:
> (A believe Marcelo would like to see this in 2.6.13, but I'll let him
> fight over that ;)
>=20
> * Makes dpram allocations work
> * Makes non-console UART work on both 8xx and 82xx
> * Fixed whitespace in files that were touched
>=20
> Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com>
> Signed-off-by: Pantelis Antoniou <panto@intracom.gr>
> Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
>=20
> ---
> commit 1de80554bcae877dce3b6d878053eb092ef65c72
> tree aba124824607fea1070e86501ddccc9decce362d
> parent ad81111fd554c9d3c14c0a50885e076af2f9ac9b
> author Kumar K. Gala <kumar.gala@freescale.com> Mon, 08 Aug 2005 22:35:39=
 -0500
> committer Kumar K. Gala <kumar.gala@freescale.com> Mon, 08 Aug 2005 22:35=
:39 -0500

<snip>

> diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c b/drivers/serial/cpm=
_uart/cpm_uart_core.c
> --- a/drivers/serial/cpm_uart/cpm_uart_core.c
> +++ b/drivers/serial/cpm_uart/cpm_uart_core.c

<snip>

> @@ -376,9 +396,19 @@ static int cpm_uart_startup(struct uart_
>                 pinfo->sccp->scc_sccm |=3D UART_SCCM_RX;
>         }
>=20
> +       if (!(pinfo->flags & FLAG_CONSOLE))
> +               cpm_line_cr_cmd(line,CPM_CR_INIT_TRX);
>         return 0;
>  }
>=20
> +inline void cpm_uart_wait_until_send(struct uart_cpm_port *pinfo)
> +{
> +       unsigned long target_jiffies =3D jiffies + pinfo->wait_closing;
> +
> +       while (!time_after(jiffies, target_jiffies))
> +               schedule();
> +}

Not sure about that call here. Does the state need to be set so that
you won't be run again immediately? In any case, I think direct
schedule() callers are discouraged? Do you want to call a yield() or
schedule_timeout({0,1}) instead maybe?

>  /*
>   * Shutdown the uart
>   */
> @@ -394,6 +424,12 @@ static void cpm_uart_shutdown(struct uar
>=20
>         /* If the port is not the console, disable Rx and Tx. */
>         if (!(pinfo->flags & FLAG_CONSOLE)) {
> +               /* Wait for all the BDs marked sent */
> +               while(!cpm_uart_tx_empty(port))
> +                       schedule_timeout(2);

<snip>

I think you are using 2 jiffies to guarantee that at least one jiffy
elapses, which is fine. But, if you do not set the state beforehand,
schedule_timeout() returns immediately, so you have a busy-wait here.

Thanks,
Nish

^ permalink raw reply

* linux2.6 crosscompiler setup
From: somshekar chandrashekar kadam @ 2005-08-18  6:50 UTC (permalink / raw)
  To: linuxppc-embedded; +Cc: linuxppc-embedded-request

[-- Attachment #1: Type: text/plain, Size: 440 bytes --]

  HI ,

need to set the cross compiler for Linux 2.6 PPC from scratch on X86 host  , is there any howto or anyother document , i saw only denx eldk supporting it . wanted to build entire cross compiler from scratch , please direct me to any good link if it is there , tried to open the link given on Embedded PowerPC linux howto , that page doesnt exist anymore ,please suggest guys which one is better  

Thanks In Advance 

Neelu 

[-- Attachment #2: Type: text/html, Size: 813 bytes --]

^ permalink raw reply

* linux2.6 crosscompiler setup
From: somshekar chandrashekar kadam @ 2005-08-18  6:54 UTC (permalink / raw)
  To: linuxppc-embedded; +Cc: linuxppc-embedded-request

[-- Attachment #1: Type: text/plain, Size: 440 bytes --]

  HI ,

need to set the cross compiler for Linux 2.6 PPC from scratch on X86 host  , is there any howto or anyother document , i saw only denx eldk supporting it . wanted to build entire cross compiler from scratch , please direct me to any good link if it is there , tried to open the link given on Embedded PowerPC linux howto , that page doesnt exist anymore ,please suggest guys which one is better  

Thanks In Advance 

Neelu 

[-- Attachment #2: Type: text/html, Size: 813 bytes --]

^ permalink raw reply

* linuxppc cross compiler
From: somshekar chandrashekar kadam @ 2005-08-18  6:55 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: linuxppc-dev-request

[-- Attachment #1: Type: text/plain, Size: 439 bytes --]

 HI ,

need to set the cross compiler for Linux 2.6 PPC from scratch on X86 host  , is there any howto or anyother document , i saw only denx eldk supporting it . wanted to build entire cross compiler from scratch , please direct me to any good link if it is there , tried to open the link given on Embedded PowerPC linux howto , that page doesnt exist anymore ,please suggest guys which one is better  

Thanks In Advance 

Neelu 

[-- Attachment #2: Type: text/html, Size: 807 bytes --]

^ permalink raw reply

* Re: linux2.6 crosscompiler setup
From: Gerhard Jaeger @ 2005-08-18  7:14 UTC (permalink / raw)
  To: linuxppc-embedded, somshekar chandrashekar kadam
  Cc: linuxppc-embedded-request
In-Reply-To: <20050818065436.23051.qmail@webmail50.rediffmail.com>

On Thursday 18 August 2005 08:54, somshekar chandrashekar kadam wrote:
>  =A0HI ,

hey, there's no need to ask twice if you did not get an answer within 4 min=
utes!

> need to set the cross compiler for Linux 2.6 PPC from scratch on X86 host=
, is there any howto or anyother document ,=20
> i saw only denx eldk supporting it .=20

guess you didn't search carefully enough ;)

> wanted to build entire cross compiler from scratch , please direct me to =
any good link if it is there ,=20
> tried to open the link given on Embedded PowerPC linux howto , that page =
doesnt exist anymore ,please suggest guys which one is better =20

he, what about google?
http://www.google.de/search?hl=3Dde&ie=3DISO-8859-1&q=3Dcross%2Bcompiler%2B=
scratch%2Blinux%2Bppc&btnG=3DGoogle-Suche&meta=3D

Anyway, try: http://www.kegel.com/crosstool/

Ciao,
  Gerhard

=2D-=20
Gerhard Jaeger <gjaeger@sysgo.com>           =20
SYSGO AG                      Embedded and Real-Time Software
www.sysgo.com | www.elinos.com | www.pikeos.com | www.osek.de=20

^ permalink raw reply

* Re: [gmail] linuxppc cross compiler
From: Marc Leeman @ 2005-08-18  7:54 UTC (permalink / raw)
  To: somshekar chandrashekar kadam; +Cc: linuxppc-dev
In-Reply-To: <20050818065554.28998.qmail@webmail30.rediffmail.com>

[-- Attachment #1: Type: text/plain, Size: 443 bytes --]

>    given on Embedded PowerPC linux howto , that page doesnt exist anymore
>    ,please suggest guys which one is better 

http://twiki.emdebian.org
http://people.debian.org/~debacle/cross/
http://www.emdebian.org/twiki/bin/view

for embedded, have a look at the buildroot, uclibc and busybox project
pages

-- 
  greetz, marc
Always a party.
	Crichton - A Bug's Life
scorpius 2.6.12 #1 Thu Jun 23 21:32:03 CEST 2005 GNU/Linux

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply

* segmentaion fault with array[4096]
From: Studencki Pawel @ 2005-08-18  9:45 UTC (permalink / raw)
  To: 'linuxppc-embedded@ozlabs.org'

hello,

because I want to do some tests with fusion/RTAI on my mpc852,
I had to downgrade my system to kernel 2.6.10
And I get a strange problem: if I start application with char array size
4096 (or even smaller 2600) I get "segmentation fault".
Could someone gives me a hint? Is this kernel configuration problem?
Where can I start looking for a reason?

thanks
Pawel

^ permalink raw reply

* Re: [PATCH] Fix for TLB errata on early Xilinx Virtex-II Pro silicon
From: Andrei Konovalov @ 2005-08-18 10:16 UTC (permalink / raw)
  To: Grant Likely; +Cc: linuxppc-embedded
In-Reply-To: <20050817200547.GA21017@siegfried.thelikelysolution.ca>

Grant Likely wrote:
> Early versions of the Xilinx Virtex-II Pro have a TLB errata where
> only even numbered TLB entries work correctly.  Occurs on chips where
> PVR == 0x20010820 || 0x20010860
> 
> See Record #14052, solution #12 in the Xilinx answers database
> http://www.xilinx.com/xlnx/xil_ans_display.jsp?getPagePath=14052
> 
> This patch adds a config option to use only even TLB entries on the V2Pro
> It also makes a trivial change to the Kconfig so that Xilinx options depend
> on VIRTEX_II_PRO instead of XILINX_ML300
> 
> Signed-off-by: Grant Likely <grant.likely@gdcanada.com>
> ---
> 
>  arch/ppc/kernel/head_4xx.S     |   11 +++++++++++
>  arch/ppc/platforms/4xx/Kconfig |   28 ++++++++++++++++++++++------
>  2 files changed, 33 insertions(+), 6 deletions(-)
> 
> 322a82cd190a777e4ebe728cad2a2a3759039260
> diff --git a/arch/ppc/kernel/head_4xx.S b/arch/ppc/kernel/head_4xx.S
> --- a/arch/ppc/kernel/head_4xx.S
> +++ b/arch/ppc/kernel/head_4xx.S
> @@ -769,7 +769,11 @@ finish_tlb_load:
>         /* load the next available TLB index.
>         */
>         lwz     r9, tlb_4xx_index@l(0)
> +#if defined(CONFIG_VIRTEX_II_PRO_TLB_FIX)
> +       addi    r9, r9, 2
> +#else
>         addi    r9, r9, 1
> +#endif
>         andi.   r9, r9, (PPC4XX_TLB_SIZE-1)
>         stw     r9, tlb_4xx_index@l(0)

I would also fix the comment in this file
(it has nothing to do with the TLB fix but...):

@@ -915,10 +919,10 @@ initial_mmu:
	mtspr	SPRN_PID,r0
	sync

-	/* Configure and load two entries into TLB slots 62 and 63.
-	 * In case we are pinning TLBs, these are reserved in by the
+	/* Configure and load an entry into TLB slot 63.
+	 * In case we are pinning TLBs, it is reserved in by the
	 * other TLB functions.  If not reserving, then it doesn't
-	 * matter where they are loaded.
+	 * matter where it is loaded.
	 */
	clrrwi	r4,r4,10		/* Mask off the real page number */
	ori	r4,r4,(TLB_WR | TLB_EX)	/* Set the write and execute bits */

> @@ -926,7 +930,14 @@ initial_mmu:
>         clrrwi  r3,r3,10                /* Mask off the effective page number */        ori     r3,r3,(TLB_VALID | TLB_PAGESZ(PAGESZ_16M))
> 
> +#if defined(CONFIG_VIRTEX_II_PRO_TLB_FIX)
> +       /* Odd numbered TLB slots are broken on Xilinx V2Pro processors
> +        * where PVR = 20010820 | 20010860
> +        */
> +        li      r0,62                    /* TLB slot 62 */
> +#else
>          li      r0,63                    /* TLB slot 63 */
> +#endif
> 
>         tlbwe   r4,r0,TLB_DATA          /* Load the data portion of the entry */        tlbwe   r3,r0,TLB_TAG           /* Load the tag portion of the entry */
> diff --git a/arch/ppc/platforms/4xx/Kconfig b/arch/ppc/platforms/4xx/Kconfig
> --- a/arch/ppc/platforms/4xx/Kconfig
> +++ b/arch/ppc/platforms/4xx/Kconfig
> @@ -161,11 +161,6 @@ config IBM_OCP
>         depends on ASH || BAMBOO || BUBINGA || CPCI405 || EBONY || EP405 || LUAN || OCOTEA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT
>         default y
> 
> -config XILINX_OCP
> -       bool
> -       depends on XILINX_ML300
> -       default y
> -
>  config IBM_EMAC4
>         bool
>         depends on 440GX || 440SP
> @@ -201,6 +196,27 @@ config VIRTEX_II_PRO
>         depends on XILINX_ML300
>         default y
> 
> +config VIRTEX_II_PRO_TLB_FIX
> +       bool "Virtex-II Pro TLB bugfix"
> +       depends on VIRTEX_II_PRO
> +       default n
> +       help
> +         Early versions of the Xilinx Virtex-II Pro have a TLB errata where
> +         only even numbered TLB entries work correctly.  Say Y here if
> +         PVR == 0x20010820 || 0x20010860, or if your board crashes early
> +         after enabling the MMU
> +
> +         See Record #14052, solution #12 in the Xilinx answers database
> +         http://www.xilinx.com/xlnx/xil_ans_display.jsp?getPagePath=14052
> +
> +         It is safe to say Y here, but there is a performance impact.
> +         Say N if unsure.
> +
> +config XILINX_OCP
> +       bool
> +       depends on VIRTEX_II_PRO
> +       default y
> +
>  config STB03xxx
>         bool
>         depends on REDWOOD_5 || REDWOOD_6
> @@ -208,7 +224,7 @@ config STB03xxx
> 
>  config EMBEDDEDBOOT
>         bool
> -       depends on EP405 || XILINX_ML300
> +       depends on EP405 || VIRTEX_II_PRO
>         default y
> 
>  config IBM_OPENBIOS

I would drop the last chunk.
I agree that VIRTEX_II_PRO_TLB_FIX and XILINX_OCP should depend on the
chip (VIRTEX_II_PRO), but using EMBEDDEDBOOT or, say, U-Boot is at least
board specific. Well, even the same board can use different bootloaders,
but tying together EMBEDDEDBOOT and VIRTEX_II_PRO is even worse IMO.

Otherwise the patch looks OK.

These changes to head_4xx.S were tested OK on ML300:
in both cases (odd numbered TLB slots used or not) there were no problems.
(For some unknown reason my ML300 doesn't need this workaround though
'cat /proc/cpuinfo' gets "revision        : 8.32 (pvr 2001 0820)")

Thanks,
Andrei

> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded

^ permalink raw reply

* Regarding Keyboard events mapping in different consoles
From: Vijesh VH @ 2005-08-18 11:07 UTC (permalink / raw)
  To: rmk, greg, linuxppc-embedded, Linus.Torvalds

[-- Attachment #1: Type: text/plain, Size: 821 bytes --]

Hi,
I am currently working on Powerpc405 Processor. Here I have two interfaces 
like serial Interface and IR Interface.
When I boot the kernel using the Serial console what ever i type from the 
keyboard(on a PC) using minicom the serial data transfer takes place in 
kernel , the kernel decodes the key events of serial console( serial 
interface). 
Now, I have built the IR Driver which access the handle_scancode function in 
the kernel (keyboard.c) by passing the required scan codes and status of the 
keys.
The problem here is What ever i type using IR Keyboard appears on my VC 
(virtual console or Frame buffer Device) . How do I make IR key 
events(handle_scancode) to be handled by the Serial console's keyboard part.

Please do guide me how to proceed.


-- 
Thanks and Regards,
Vijesh V H

[-- Attachment #2: Type: text/html, Size: 886 bytes --]

^ permalink raw reply

* How to implementing CLI using bison and FLEX
From: Sanjeevi Gopal @ 2005-08-18 11:46 UTC (permalink / raw)
  To: Linuxppc-embedded

HI,


        I am currenly working on mpc850 processor.I wanted to
implement a Command Line interface. I like implement it using bison
and flex tool. If anyone is familar or already implemented plz help me

--=20
With Regards,
Sanjeevi G

^ permalink raw reply

* Re: [PATCH] Fix for TLB errata on early Xilinx Virtex-II Pro silicon
From: Peter Ryser @ 2005-08-18 14:34 UTC (permalink / raw)
  To: Andrei Konovalov; +Cc: linuxppc-embedded
In-Reply-To: <43046011.60504@ru.mvista.com>

None of the ML300 will need this workaround as the core voltage is 
slightly higher than recommended in the data sheet of Virtex-II Pro. An 
increased core voltage is one way to fix the TLB problem in early parts 
but it is not the right way as it can have a negative impact on other 
V2P features.

Since the ML300 configuration is used as the base for other boards the 
patch is still useful. However, all Virtex-II Pro FPGAs that are 
shipping today are based on newer core versions and do not show the TLB 
problem.

- Peter


Andrei Konovalov wrote:

> Grant Likely wrote:
>
>> Early versions of the Xilinx Virtex-II Pro have a TLB errata where
>> only even numbered TLB entries work correctly.  Occurs on chips where
>> PVR == 0x20010820 || 0x20010860
>>
>> See Record #14052, solution #12 in the Xilinx answers database
>> http://www.xilinx.com/xlnx/xil_ans_display.jsp?getPagePath=14052
>>
>> This patch adds a config option to use only even TLB entries on the 
>> V2Pro
>> It also makes a trivial change to the Kconfig so that Xilinx options 
>> depend
>> on VIRTEX_II_PRO instead of XILINX_ML300
>>
>> Signed-off-by: Grant Likely <grant.likely@gdcanada.com>
>> ---
>>
>>  arch/ppc/kernel/head_4xx.S     |   11 +++++++++++
>>  arch/ppc/platforms/4xx/Kconfig |   28 ++++++++++++++++++++++------
>>  2 files changed, 33 insertions(+), 6 deletions(-)
>>
>> 322a82cd190a777e4ebe728cad2a2a3759039260
>> diff --git a/arch/ppc/kernel/head_4xx.S b/arch/ppc/kernel/head_4xx.S
>> --- a/arch/ppc/kernel/head_4xx.S
>> +++ b/arch/ppc/kernel/head_4xx.S
>> @@ -769,7 +769,11 @@ finish_tlb_load:
>>         /* load the next available TLB index.
>>         */
>>         lwz     r9, tlb_4xx_index@l(0)
>> +#if defined(CONFIG_VIRTEX_II_PRO_TLB_FIX)
>> +       addi    r9, r9, 2
>> +#else
>>         addi    r9, r9, 1
>> +#endif
>>         andi.   r9, r9, (PPC4XX_TLB_SIZE-1)
>>         stw     r9, tlb_4xx_index@l(0)
>
>
> I would also fix the comment in this file
> (it has nothing to do with the TLB fix but...):
>
> @@ -915,10 +919,10 @@ initial_mmu:
>     mtspr    SPRN_PID,r0
>     sync
>
> -    /* Configure and load two entries into TLB slots 62 and 63.
> -     * In case we are pinning TLBs, these are reserved in by the
> +    /* Configure and load an entry into TLB slot 63.
> +     * In case we are pinning TLBs, it is reserved in by the
>      * other TLB functions.  If not reserving, then it doesn't
> -     * matter where they are loaded.
> +     * matter where it is loaded.
>      */
>     clrrwi    r4,r4,10        /* Mask off the real page number */
>     ori    r4,r4,(TLB_WR | TLB_EX)    /* Set the write and execute 
> bits */
>
>> @@ -926,7 +930,14 @@ initial_mmu:
>>         clrrwi  r3,r3,10                /* Mask off the effective 
>> page number */        ori     r3,r3,(TLB_VALID | TLB_PAGESZ(PAGESZ_16M))
>>
>> +#if defined(CONFIG_VIRTEX_II_PRO_TLB_FIX)
>> +       /* Odd numbered TLB slots are broken on Xilinx V2Pro processors
>> +        * where PVR = 20010820 | 20010860
>> +        */
>> +        li      r0,62                    /* TLB slot 62 */
>> +#else
>>          li      r0,63                    /* TLB slot 63 */
>> +#endif
>>
>>         tlbwe   r4,r0,TLB_DATA          /* Load the data portion of 
>> the entry */        tlbwe   r3,r0,TLB_TAG           /* Load the tag 
>> portion of the entry */
>> diff --git a/arch/ppc/platforms/4xx/Kconfig 
>> b/arch/ppc/platforms/4xx/Kconfig
>> --- a/arch/ppc/platforms/4xx/Kconfig
>> +++ b/arch/ppc/platforms/4xx/Kconfig
>> @@ -161,11 +161,6 @@ config IBM_OCP
>>         depends on ASH || BAMBOO || BUBINGA || CPCI405 || EBONY || 
>> EP405 || LUAN || OCOTEA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT
>>         default y
>>
>> -config XILINX_OCP
>> -       bool
>> -       depends on XILINX_ML300
>> -       default y
>> -
>>  config IBM_EMAC4
>>         bool
>>         depends on 440GX || 440SP
>> @@ -201,6 +196,27 @@ config VIRTEX_II_PRO
>>         depends on XILINX_ML300
>>         default y
>>
>> +config VIRTEX_II_PRO_TLB_FIX
>> +       bool "Virtex-II Pro TLB bugfix"
>> +       depends on VIRTEX_II_PRO
>> +       default n
>> +       help
>> +         Early versions of the Xilinx Virtex-II Pro have a TLB 
>> errata where
>> +         only even numbered TLB entries work correctly.  Say Y here if
>> +         PVR == 0x20010820 || 0x20010860, or if your board crashes 
>> early
>> +         after enabling the MMU
>> +
>> +         See Record #14052, solution #12 in the Xilinx answers database
>> +         
>> http://www.xilinx.com/xlnx/xil_ans_display.jsp?getPagePath=14052
>> +
>> +         It is safe to say Y here, but there is a performance impact.
>> +         Say N if unsure.
>> +
>> +config XILINX_OCP
>> +       bool
>> +       depends on VIRTEX_II_PRO
>> +       default y
>> +
>>  config STB03xxx
>>         bool
>>         depends on REDWOOD_5 || REDWOOD_6
>> @@ -208,7 +224,7 @@ config STB03xxx
>>
>>  config EMBEDDEDBOOT
>>         bool
>> -       depends on EP405 || XILINX_ML300
>> +       depends on EP405 || VIRTEX_II_PRO
>>         default y
>>
>>  config IBM_OPENBIOS
>
>
> I would drop the last chunk.
> I agree that VIRTEX_II_PRO_TLB_FIX and XILINX_OCP should depend on the
> chip (VIRTEX_II_PRO), but using EMBEDDEDBOOT or, say, U-Boot is at least
> board specific. Well, even the same board can use different bootloaders,
> but tying together EMBEDDEDBOOT and VIRTEX_II_PRO is even worse IMO.
>
> Otherwise the patch looks OK.
>
> These changes to head_4xx.S were tested OK on ML300:
> in both cases (odd numbered TLB slots used or not) there were no 
> problems.
> (For some unknown reason my ML300 doesn't need this workaround though
> 'cat /proc/cpuinfo' gets "revision        : 8.32 (pvr 2001 0820)")
>
> Thanks,
> Andrei
>
>> _______________________________________________
>> Linuxppc-embedded mailing list
>> Linuxppc-embedded@ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>

^ permalink raw reply

* Re: Best kernel for Xilinx VirtexII Pro/PPC405 ?
From: Peter Ryser @ 2005-08-18 14:39 UTC (permalink / raw)
  To: Keith J Outwater; +Cc: linuxppc-embedded
In-Reply-To: <OF420A7A65.554F5D8B-ON0725705F.00572C9A-0725705F.00575400@mck.us.ray.com>


> I am running all of my development tools (EDK, ISE, ELDK, etc...) under 
>Fedora Core 4, so I am looking for a publicly accessible kernel source 
>tree that best supports the PPC405 in the Virtex II Pro.
>
Keep in mind that EDK and ISE are not "officially" supported on FC4. 
Anyway, with EDK, ISE, and ELDK you seem to have all that is needed to 
get started with Linux on Virtex-II Pro and Virtex-4.

- Peter

^ permalink raw reply

* Re: How to implementing CLI using bison and FLEX
From: Arthur Othieno @ 2005-08-18 14:58 UTC (permalink / raw)
  To: Sanjeevi Gopal; +Cc: Linuxppc-embedded
In-Reply-To: <37c1be9b050818044671528ae9@mail.gmail.com>

On Thu, Aug 18, 2005 at 05:16:19PM +0530, Sanjeevi Gopal wrote:
> HI,
> 
> 
>         I am currenly working on mpc850 processor.I wanted to
> implement a Command Line interface. I like implement it using bison
> and flex tool. If anyone is familar or already implemented plz help me
 
See the Lex and YACC HOWTO[1] on tldp.org for a gentle introduction,
and the flex[2] and bison[3] manuals on gnu.org for the gory details:

[1] http://tldp.org/HOWTO/Lex-YACC-HOWTO.html
[2] http://www.gnu.org/software/flex/manual/
[3] http://www.gnu.org/software/bison/manual/

^ permalink raw reply

* Re: linuxppc cross compiler
From: Hollis Blanchard @ 2005-08-18 14:49 UTC (permalink / raw)
  To: somshekar chandrashekar kadam; +Cc: Linux PPC Dev
In-Reply-To: <20050818065554.28998.qmail@webmail30.rediffmail.com>

On Aug 18, 2005, at 1:55 AM, somshekar chandrashekar kadam wrote:
>
>  need to set the cross compiler for Linux 2.6 PPC from scratch on X86=20=

> host=A0 , is there any howto or anyother document , i saw only denx =
eldk=20
> supporting it . wanted to build entire cross compiler from scratch ,=20=

> please direct me to any good link if it is there , tried to open the=20=

> link given on Embedded PowerPC linux howto , that page doesnt exist=20
> anymore ,please suggest guys which one is better=A0

http://penguinppc.org/dev/crosstool.php has information on using=20
crosstool, which does it all for you.

Sorry about the broken link in the HOWTO.

-Hollis=

^ permalink raw reply

* Re: [PATCH] Fix for TLB errata on early Xilinx Virtex-II Pro silicon
From: Matt Porter @ 2005-08-18 15:03 UTC (permalink / raw)
  To: linuxppc-embedded
In-Reply-To: <20050817200547.GA21017@siegfried.thelikelysolution.ca>

On Wed, Aug 17, 2005 at 02:05:47PM -0600, Grant Likely wrote:
>  config EMBEDDEDBOOT
>         bool
> -       depends on EP405 || XILINX_ML300
> +       depends on EP405 || VIRTEX_II_PRO
>         default y
> 

Grant,

Can you post another patch without this hunk?..as Andrei pointed
out, it's a board specific feature.

Otherwise, looks good to go upstream.

-Matt

^ permalink raw reply

* Re: Multiple I2C busses on PPC405
From: Tolunay Orkun @ 2005-08-18 15:06 UTC (permalink / raw)
  To: Tolunay Orkun; +Cc: linuxppc-embedded
In-Reply-To: <42FD248D.2040508@orkun.us>

I've not received any reply to my inquiry. Since it was last Friday 
afternoon it might have been missed.

I really do appreciate if someone would suggest a bitbang I2C interface 
driver generic enough to modify. I only need /dev/i2c? support from the 
driver.

Tolunay

Tolunay Orkun wrote:
> I have a working embedded linux on Cogent CSB472 board (PPC405GP) 
> currently based on off 2.4.31. We are already using the I2C bus on 
> PowerPC using hardware I2C driver (IBM IIC I2C Interface) at Fast 
> (400khz) mode.
> 
> We need to add support for yet another (slow) I2C bus with PPC405 being 
> the master and I'm looking at implementing bit bang interface using GPIO 
> pins.
> 
> What is the best way to get this going? I am looking at modifying the 
> bit bang driver (PPC_405_I2C_Algorithm?) for the I/O pins I'll use. 
> Anyone has done something similar. I appreciate all the advice I can get.
> 
> Best Regards,
> Tolunay
> 
> 
> 

^ permalink raw reply

* Re: linuxppc cross compiler
From: Grant Likely @ 2005-08-18 15:31 UTC (permalink / raw)
  To: somshekar chandrashekar kadam, linuxppc-dev
In-Reply-To: <20050818065554.28998.qmail@webmail30.rediffmail.com>

On Thu, Aug 18, 2005 at 06:55:54AM -0000, somshekar chandrashekar kadam wrote:
>  HI ,
> 
> need to set the cross compiler for Linux 2.6 PPC from scratch on X86 host  , is there any howto or anyother document , i saw only denx eldk supporting it . wanted to build entire cross compiler from scratch , please direct me to any good link if it is there , tried to open the link given on Embedded PowerPC linux howto , that page doesnt exist anymore ,please suggest guys which one is better  

I second te recommendation for crosstool.  You COULD unpack and build
binutils/gcc/glibc step by step, but you really don't want to unless you
enjoy beating you head against the wall.

http://www.kegel.com/crosstool

Also, subscribe to the crossgcc mailing list:
http://sources.redhat.com/ml/crossgcc/

Cheers,
g.

^ permalink raw reply

* Re: [PATCH] ppc32: removed usage of <asm/segment.h>
From: Kumar Gala @ 2005-08-18 16:25 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: akpm, zach, linux-kernel, hch, linuxppc-dev, Gala Kumar K.-galak,
	davem
In-Reply-To: <E1E5KpP-0004dy-00@dorka.pomaz.szeredi.hu>


On Aug 17, 2005, at 5:07 AM, Miklos Szeredi wrote:

>>> They are provided by _one_ kernel, not necessarily the running
>>>
> kernel.
>
>>
>> No, they're provided by packages like glibc-kernheaders or similar
>> that are maintained separately.
>>
>
> Yes.  And "maintenance" I presume means "copy" the kernel headers and
> do some cleanup to be compliant to the relevant standards (which the
> kernel maintainers couldn't be bothered to do).
>
>
>> They're split from the kernel headers and we don't need to keep
>> obsolete junk around.
>>
>
> I agree about obsolete junk.
>
> However statements like "No kernel headers can be included by userland
> anymore" can be slightly misleading.

So after all of this its not clear to me if its acceptable to kill  
all users of <asm/segment.h> in the kernel and to move code that  
exists in <asm/segment.h> to <asm/uaccess.h> for arch's that need it.

- kumar

^ permalink raw reply

* Re: [PATCH] ppc32: ppc_sys SOC identification additions
From: Vitaly Bordug @ 2005-08-18 18:01 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-embedded list
In-Reply-To: <20050817204932.D1C22353CE9@atlas.denx.de>

[-- Attachment #1: Type: text/plain, Size: 116 bytes --]

Here's the same but without strcmp().

Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com>


-- 
Sincerely,
Vitaly

[-- Attachment #2: ppc_sys_add.patch --]
[-- Type: text/x-patch, Size: 2491 bytes --]

diff --git a/arch/ppc/syslib/ppc_sys.c b/arch/ppc/syslib/ppc_sys.c
--- a/arch/ppc/syslib/ppc_sys.c
+++ b/arch/ppc/syslib/ppc_sys.c
@@ -6,6 +6,7 @@
  * Maintainer: Kumar Gala <kumar.gala@freescale.com>
  *
  * Copyright 2005 Freescale Semiconductor Inc.
+ * Copyright 2005 MontaVista, Inc. by Vitaly Bordug <vbordug@ru.mvista.com>
  *
  * This program is free software; you can redistribute  it and/or modify it
  * under  the terms of  the GNU General  Public License as published by the
@@ -35,10 +36,58 @@ void __init identify_ppc_sys_by_id(u32 i
 
 void __init identify_ppc_sys_by_name(char *name)
 {
-	/* TODO */
+	unsigned int i = 0;
+	while (strcmp(ppc_sys_specs[i].ppc_sys_name, "")) {
+		if (!strcmp(ppc_sys_specs[i].ppc_sys_name, name))
+			break;
+		i++;
+	}
+	cur_ppc_sys_spec = &ppc_sys_specs[i];
 	return;
 }
 
+static int __init count_sys_specs(void)
+{
+	int i = 0;
+	while (ppc_sys_specs[i].ppc_sys_name[0])
+		i++;
+	return i;
+}
+
+static int __init find_chip_by_name_and_id(char *name, u32 id)
+{
+	int ret = -1;
+	unsigned int i = 0;
+	unsigned int j = 0;
+	unsigned int dups = 0;
+
+	unsigned char matched[count_sys_specs()];
+
+	while (ppc_sys_specs[i].ppc_sys_name[0]) {
+		if (!strcmp(ppc_sys_specs[i].ppc_sys_name, name))
+			matched[j++] = i;
+		i++;
+	}
+	if (j != 0) {
+		for (i = 0; i < j; i++) {
+			if ((ppc_sys_specs[matched[i]].mask & id) ==
+			    ppc_sys_specs[matched[i]].value) {
+				ret = matched[i];
+				dups++;
+			}
+		}
+		ret = (dups == 1) ? ret : (-1 * dups);
+	}
+	return ret;
+}
+
+void __init identify_ppc_sys_by_name_and_id(char *name, u32 id)
+{
+	int i = find_chip_by_name_and_id(name, id);
+	BUG_ON(i < 0);
+	cur_ppc_sys_spec = &ppc_sys_specs[i];
+}
+
 /* Update all memory resources by paddr, call before platform_device_register */
 void __init
 ppc_sys_fixup_mem_resource(struct platform_device *pdev, phys_addr_t paddr)
diff --git a/include/asm-ppc/ppc_sys.h b/include/asm-ppc/ppc_sys.h
--- a/include/asm-ppc/ppc_sys.h
+++ b/include/asm-ppc/ppc_sys.h
@@ -49,7 +49,8 @@ extern struct ppc_sys_spec *cur_ppc_sys_
 
 /* determine which specific SOC we are */
 extern void identify_ppc_sys_by_id(u32 id) __init;
-extern void identify_ppc_sys_by_name(char *name) __init;
+extern void identify_ppc_sys_by_name(char* name) __init;
+extern void identify_ppc_sys_by_name_and_id(char *name, u32 id) __init;
 
 /* describes all devices that may exist in a given family of processors */
 extern struct platform_device ppc_sys_platform_devices[];

^ permalink raw reply

* Re: [PATCH] PPC: Don't sleep in flush_dcache_icache_page()
From: Marcelo Tosatti @ 2005-08-18 17:56 UTC (permalink / raw)
  To: Roland Dreier; +Cc: linuxppc-embedded
In-Reply-To: <521x4tha7i.fsf@cisco.com>


Hi Roland,

On Tue, Aug 16, 2005 at 01:56:49PM -0700, Roland Dreier wrote:
> flush_dcache_icache_page() will be called on an instruction page
> fault.  We can't sleep in the fault handler, so use kmap_atomic()
> instead of just kmap() for the Book-E case.
> 
> Signed-off-by: Roland Dreier <rolandd@cisco.com>

Why do you need to disable interrupts during the kmap_atomic/flush_dcache_icache
operation ? 

I fail to see how an interrupt could have any reference to the data
being dealt with here (the user page).

> diff --git a/arch/ppc/mm/init.c b/arch/ppc/mm/init.c
> --- a/arch/ppc/mm/init.c
> +++ b/arch/ppc/mm/init.c
> @@ -560,8 +560,16 @@ void flush_dcache_page(struct page *page
>  void flush_dcache_icache_page(struct page *page)
>  {
>  #ifdef CONFIG_BOOKE
> -	__flush_dcache_icache(kmap(page));
> -	kunmap(page);
> +	unsigned long flags;
> +	void *start;
> +
> +	local_irq_save(flags);
> +
> +	start = kmap_atomic(page, KM_PPC_SYNC_PAGE);
> +	__flush_dcache_icache(start);
> +	kunmap_atomic(start, KM_PPC_SYNC_PAGE);
> +
> +	local_irq_restore(flags);
>  #elif CONFIG_8xx
>  	/* On 8xx there is no need to kmap since highmem is not supported */
>  	__flush_dcache_icache(page_address(page)); 

^ permalink raw reply

* [RFC] MPC5200 BestComm microcode [en]/[de]coding draft
From: Andrey Volkov @ 2005-08-18 18:05 UTC (permalink / raw)
  To: Sylvain Munaut; +Cc: linuxppc-embedded

[-- Attachment #1: Type: text/plain, Size: 432 bytes --]

Hello Sylvain,

This a draft of Documentation/powerpc/bestcomm.txt,
it was born since I couldn't find DRD/LCD description and
"... graphical task builder are currently in development"
(quotation from AN2604) :(, so I try write doco by myself.
Here result of my reverse engineering.

If you or somebody have more information or found some
bugs, please, fix/expand my text, especially places marked by "?".

-- 
Regards
Andrey Volkov

[-- Attachment #2: bestcomm.diff --]
[-- Type: text/plain, Size: 5973 bytes --]

Draft

---
commit 8a3ea9eb0933e43b8fad1f50ef566b6145202e25
tree 7d9356ec710b68c159c8ad95c49ea1c2439beb74
parent 825f973a6a6e12ff0c9d5bc10a74b4cae3687db5
author Andrey Volkov <avolkov@varma-el.com> Thu, 18 Aug 2005 21:58:24 +0400
committer Andrey Volkov <avolkov@varma-el.com> Thu, 18 Aug 2005 21:58:24 +0400

 Documentation/powerpc/bestcomm.txt |  143 ++++++++++++++++++++++++++++++++++++
 1 files changed, 143 insertions(+), 0 deletions(-)

diff --git a/Documentation/powerpc/bestcomm.txt b/Documentation/powerpc/bestcomm.txt
new file mode 100644
--- /dev/null
+++ b/Documentation/powerpc/bestcomm.txt
@@ -0,0 +1,143 @@
+             Microcode description of MPC5200 Bestcomm DMA
+=====================================================================
+
+Please mail me (Andrey Volkov, avolkov@varma-el.com) if you have 
+questions, comments or corrections.
+
+All instructions of Bestcomm microcode are divided on 
+two main types: LCD (Loop Control Descriptor) and 
+DRD (Data Routing Descriptor). Any Task must started from 
+LCD[EX] instruction and finished by DRD instruction (usually NOP).
+Each of instruction types, in one's turn, are divided on two 
+and three subtypes accordingly, which are described below:
+
+1) DRD1A - load/store data, and, optionally, made some operation 
+on it (depend on what loaded to FDT). Here is fields description
+of this DRD:
+
+Bits num.  Name          Desc.
+[31:29]    		Reserved, must be 0 
+[28:28]    MORE		?????, if set then idx/var
+			dst/src fields are changed. I.e. 
+			[16:10] contain SOURCE, 
+			and [09:03] contain DESTINATION.
+[27:27]	   TFD		Transfer Frame Done. Assert frame 
+			done Transfer Frame Done line of 
+			selected (in INIT field) periphery.
+[26:26]	   INT 		Interrupt. If set to 1, 
+			then generate core interrupt
+[25:21]	   INIT		Initiator (aka requestor) number.
+[20:19]	   RS		Read Size (0 - 32bit word, 1 - byte,
+			2 - 16 bit word, 3 - dynamic/reserved??
+			(masked in real	time?))
+[18:17]	   WS		Write Size (see above)
+[16:16]			??????????????
+[15:15]	   		Destination index prefix, 
+			if set (i.e. =1), then bitfield [13:10]
+			contain index number, and [14:14] have 
+			meaning of indirect addressing flag.
+			If this field cleared then field 
+			[14:10] contain	index of VARIABLE.
+[14:14]			Indirect addressing by idx, 
+			(and only by idx) flag, or high bit of
+			variable index.
+[13:10]			index of DESTINATION/SOURCE idx/var.
+
+[09:09]			???? For some cases 1, for another 0.????
+
+[08:08]			Same as in [14:10], but for source.
+[07:03]			Same as in [14:10], but for source.
+[02:00]	   EU3		Number of function, which will execute
+			on EU#3.
+Note: For DRD1A exist special case, aka NOP, which act as 
+task terminator. Fields, in this case, have next meanings:
+
+[31:28]			Reserved must be 0.
+[27:27]	  TFD		Transfer Frame Done. 
+[26:26]	  INT 		Interrupt.
+[25:21]	  INIT		Initiator (aka requestor) number. Usually 0,
+			or ALWAYS INITIATOR.
+[16:00]	  NOP code	Must be 0x1f8 
+
+Ex. Please, pay attention to first two lines: since MORE is set,
+codes for idx2 and var13 are in different fields, then for case
+where MORE is not set (var4 = var2).:
+ 0x10601010 -- DRD1A: var4 = var2; FN=0 MORE init=3 WS=0 RS=0
+ 0x00008868 -- DRD1A: idx2 = var13; FN=0 init=0 WS=0 RS=0
+ 0x0404c999 -- DRD1A: *idx2 = EU3(); FN=1 INT init=0 WS=2 RS=0
+ 0x000001f8 -- DRD1A: NOP
+ 0x040001f8 -- DRD1A: INT init=0
+
+Next two DRDs are ALWAYS coupled, i.e it is impossible to using 
+DRD2B1 without preceded DRD2A, but any (?fixme?) number DRD2B1 
+may followed by DRD2A.
+
+2) DRD2A - setup bestcomm Execution Unit (EU)
+Bitfields encodings:
+
+Bits num.  Name          Desc
+[31:31]    MORE		?????????
+[30:29]    EXT		must be always initialized 
+			by 3 (binary 11)
+[27:27]	   TFD		Transfer Frame Done.
+[26:21]	   INIT		Initiator number.
+[20:19]	   RS		Read Size 
+[18:17]	   WS		Write Size
+[16:04]			reserved, must be 0
+[03:00]	   EU3		Number of function, which will execute
+			on EU#3 at DRD2B1 time.
+Ex:
+ 0x60140002 -- DRD2A: EU3=2 EXT init=0 WS=2 RS=2
+
+3) DRD2B1 - execute function and store result of it. 
+
+Bits num.  Name          Desc
+[31:28]			Reserved must be 0.
+
+[27:22]	   DST		Result destination (var/idx/*idx).
+			See description of field [15:10] of DRD1A
+			section.
+[21:20]	   WS		?? Write Size for dst ??
+[19:18]	   EU#		Since MPC5200 have only EU#3, this filed 
+			always must contain 3
+[17:12]			???? (Reserved, must be 0x0f), 
+			may be encoded operands sizes????
+[11:06]	   OP1		operand 1 of EU#3
+			See description of field [15:10] in DRD1A
+			section.
+[05:00]	   OP2		operand 2 of EU#3
+			See description of field [15:10] in DRD1A
+			section, or, if for EU#3 function needed 
+			only one operand (like CRC), then this field
+			must contain 0x1f
+
+Ex:
+ 0x0d0cf247 -- DRD2B1: *idx4 = EU3(); EU3(var9,var7)
+ 0x0c8cfc5f -- DRD2B1: *idx2 = EU3(); EU3(*idx1)
+
+4) LCD - run followed loop microcode, or may be used for checking
+some conditions. LCD may be nested (only two levels are supported).
+
+Bits num.  Name          Desc
+[31:31]	   LOOP		Loop prefix, always 1
+[30:30]			???????????????????
+[29:23]	   INIT1	???Initializition part of first init expression.???
+[22:11]			???????????????????
+[10:06]	   CMP_VAR	Variable to which idx compared. Part of
+			Termination control.
+[05:03]	   INC1		increment1 
+[02:00]	   INC2		increment2, if unsused may be any value 
+
+5) LCDEXT - If in yours loop used more then 2 indexes, then 
+this record MUST PRECEDED LCD. Also loop end condition MAY pointed HERE,
+then it not pointed in LCD. 
+
+Bits num.  Name          Desc
+[31:31]	   LOOP		Loop prefix, always 1
+[30:30]			???????????????????
+[29:23]	   INIT1	???Initializition part of first init expression.???
+[22:11]			???????????????????
+[10:06]	   CMP_VAR	Variable to which idx compared. Part of
+			Termination control.
+[05:03]	   INC1		increment1 
+[02:00]	   INC2		increment2, if unsused may be any value 

^ permalink raw reply

* Re: [PATCH] PPC: Don't sleep in flush_dcache_icache_page()
From: Matt Porter @ 2005-08-18 18:08 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: Roland Dreier, linuxppc-embedded
In-Reply-To: <20050818175642.GA7523@dmt.cnet>

On Thu, Aug 18, 2005 at 02:56:42PM -0300, Marcelo Tosatti wrote:
> 
> Hi Roland,
> 
> On Tue, Aug 16, 2005 at 01:56:49PM -0700, Roland Dreier wrote:
> > flush_dcache_icache_page() will be called on an instruction page
> > fault.  We can't sleep in the fault handler, so use kmap_atomic()
> > instead of just kmap() for the Book-E case.
> > 
> > Signed-off-by: Roland Dreier <rolandd@cisco.com>
> 
> Why do you need to disable interrupts during the kmap_atomic/flush_dcache_icache
> operation ? 
> 
> I fail to see how an interrupt could have any reference to the data
> being dealt with here (the user page).

We just took care of this offline.  The original patch is sharing
a kmap slot with another kmap_atomic user I put in before...the
sync page user.  If an interrupt came in causing the DMA API to
be used, we would have a problem.

The clean solution was to use a different kmap slot.

-Matt

^ permalink raw reply

* Re: segmentaion fault with array[4096]
From: Marcelo Tosatti @ 2005-08-18 18:01 UTC (permalink / raw)
  To: Studencki Pawel; +Cc: 'linuxppc-embedded@ozlabs.org'
In-Reply-To: <291992F9ECD9AB4F995C7E96B9A30DC008E081@nbgh103a.nbg6.siemens.de>

Hi!
On Thu, Aug 18, 2005 at 11:45:04AM +0200, Studencki Pawel wrote:
> hello,
> 
> because I want to do some tests with fusion/RTAI on my mpc852,
> I had to downgrade my system to kernel 2.6.10

Downgrade from what? 

> And I get a strange problem: if I start application with char array size
> 4096 (or even smaller 2600) I get "segmentation fault".
>
> Could someone gives me a hint? Is this kernel configuration problem?
> Where can I start looking for a reason?

Have you tried to debug the application with gdb to spot more precisely 
what is it doing that makes it receive a segfault? 

Most likely its doing an invalid memory access.

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox