* 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
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox