Re: [U-Boot] random exception on ppc based board

2010-06-17 Thread Thirumalai
- Original Message - 
From: "Thirumalai" 

To: ; 
Sent: Saturday, June 12, 2010 10:40 AM
Subject: [U-Boot] random exception on ppc based board



Hi,
   I am having a ppc based target on which linux-2.4.20 kernel is running
with u-boot 1.3.4 as boot loader. The target is having MPC7410 as 
processor
and MPC107 as system controller. Regarding memory it is having 128 MB of 
ram

and 16 MB of Flash memory. Also the kernel is patched with RTLinux-3.2 for
realtime performance. I am getting a random Program and DSI exception on 
the
target. Normally the exeption occurs during loading of rtl_time.o. The 
panic

message is given below.

==
Using /usr/rtlinux/modules/rtl_time.okernel BUG at page_alloc.c:221!
Oops: Exception in kernel mode, sig: 4
NIP: C0032980 XER:  LR: C0032980 SP: C7CEDBA0 REGS: c7cedaf0 TRAP:
0700Not tainted
MSR: 00089032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = c7cec000[366] 'exe' Last syscall: 3
last math c7cec000 last altivec 
GPR00: C0032980 C7CEDBA0 C7CEC000 0020 0001 0001 1137

GPR08: 0002  CD879EC0 C7CEDAB0 CD876108 C0011934 

GPR16: 0004 0001 C002A0E8 C789E840 9032 07CEDD90 C01A2C70
C01A2C70
GPR24: 0001  C016E080  C79966E0  C016E0B8
C016E0C4
Call backtrace:
C0032980 C0033020 C0032C4C C0025A18 C0025B58 C0025D8C C000EF88
C0005D48 C03A8B28 C0029B28 C002A258 C003A99C C0005AFC 
0FF15DBC 0FF175DC 0FF09894 10012190 100127D0 100356AC 100352A4
0FEBCF6C 

Oops: kernel access of bad area, sig: 11
NIP: C00326DC XER:  LR: C0032588 SP: C7CED880 REGS: c7ced7d0 TRAP:
0300Not tainted
MSR: 9032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: , DSISR: 4200
TASK = c7cec000[366] 'exe' Last syscall: 3
last math c7cec000 last altivec 
GPR00:  C7CED880 C7CEC000 C7CED888  30026000 C0388250

GPR08: 8000  00155210  CD876CD4 C0032588 

GPR16: 0004 0001 C002A0E8 C789E840 9032 C01A2C70 C01A2C70
C016E130
GPR24: C0233024 C0388234 3E06 7C0C C016E080 FFFE C016E0B8
C0388260
Call backtrace:
C003249C C0033398 C0033B18 C00243D8 C0026234 C00246D0 C0027A70
C001326C C00187D4 C0005ED4 C0005F44 C00062B0 C0005D48 C0032980
C0033020 C0032C4C C0025A18 C0025B58 C0025D8C C000EF88 C0005D48
C03A8B28 C0029B28 C002A258 C003A99C C0005AFC  0FF15DBC
0FF175DC 0FF09894 10012190 100127D0 100356AC
Illegal instruction

Sometimes i am getting the following panic message.
===
Oops: kernel access of bad area, sig: 11
NIP: C0033360 XER: 2000 LR: C00DE9A8 SP: C016C0D0 REGS: c016c020 TRAP:
0300Tainted: P
MSR: 9032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 03910018, DSISR: 4000
TASK = c016a480[0] 'swapper' Last syscall: 120
last math c505c000 last altivec 
GPR00: C00DE9A8 C016C0D0 C016A480 0391   C5A469DC

GPR08: 0001 03910014 0043 C5A2FE20 2490C022 C0030A04 07FF0D00

GPR16: 00044008    1032 0003 
0A050393
GPR24: C5A46980 C5A2F842 0040  C5A2F842 C01C C5A46980
0001
Call backtrace:
0040 C00DE9A8 C00DE9DC C00DEB28 C01163D4 C01166EC C00F4898
C00F44E4 C00F4AC8 C00F468C C00E3664 C00E3810 C00E397C C001A200
C0007620 CD876CAC C0005D40 C000744C C0007460 C0003918 C01815E0
35F0
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
<0>Rebooting in 180 seconds..
====


How to debug this???

-Thirumalai

___
U-Boot mailing list
u-b...@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Hi all,
   We fixed this problem. When we ran e2fsck -f ramdisk.img it shown me 
0.9% non-contiguos block. So we tried to defragment the ramdisk image using 
e2defrag utility. After this the problem disappeared. But i don't know how 
an ext2 file system is getting fragmented ? Also how this particular file 
(rtl_time.o) is getting fragmented?


Any clue?
-Thirumalai 


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


random exception on ppc based board

2010-06-11 Thread Thirumalai

Hi,
   I am having a ppc based target on which linux-2.4.20 kernel is running 
with u-boot 1.3.4 as boot loader. The target is having MPC7410 as processor 
and MPC107 as system controller. Regarding memory it is having 128 MB of ram 
and 16 MB of Flash memory. Also the kernel is patched with RTLinux-3.2 for 
realtime performance. I am getting a random Program and DSI exception on the 
target. Normally the exeption occurs during loading of rtl_time.o. The panic 
message is given below.


==
Using /usr/rtlinux/modules/rtl_time.okernel BUG at page_alloc.c:221!
Oops: Exception in kernel mode, sig: 4
NIP: C0032980 XER:  LR: C0032980 SP: C7CEDBA0 REGS: c7cedaf0 TRAP: 
0700Not tainted

MSR: 00089032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = c7cec000[366] 'exe' Last syscall: 3
last math c7cec000 last altivec 
GPR00: C0032980 C7CEDBA0 C7CEC000 0020 0001 0001 1137 

GPR08: 0002  CD879EC0 C7CEDAB0 CD876108 C0011934  

GPR16: 0004 0001 C002A0E8 C789E840 9032 07CEDD90 C01A2C70 
C01A2C70
GPR24: 0001  C016E080  C79966E0  C016E0B8 
C016E0C4

Call backtrace:
C0032980 C0033020 C0032C4C C0025A18 C0025B58 C0025D8C C000EF88
C0005D48 C03A8B28 C0029B28 C002A258 C003A99C C0005AFC 
0FF15DBC 0FF175DC 0FF09894 10012190 100127D0 100356AC 100352A4
0FEBCF6C 

Oops: kernel access of bad area, sig: 11
NIP: C00326DC XER:  LR: C0032588 SP: C7CED880 REGS: c7ced7d0 TRAP: 
0300Not tainted

MSR: 9032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: , DSISR: 4200
TASK = c7cec000[366] 'exe' Last syscall: 3
last math c7cec000 last altivec 
GPR00:  C7CED880 C7CEC000 C7CED888  30026000 C0388250 

GPR08: 8000  00155210  CD876CD4 C0032588  

GPR16: 0004 0001 C002A0E8 C789E840 9032 C01A2C70 C01A2C70 
C016E130
GPR24: C0233024 C0388234 3E06 7C0C C016E080 FFFE C016E0B8 
C0388260

Call backtrace:
C003249C C0033398 C0033B18 C00243D8 C0026234 C00246D0 C0027A70
C001326C C00187D4 C0005ED4 C0005F44 C00062B0 C0005D48 C0032980
C0033020 C0032C4C C0025A18 C0025B58 C0025D8C C000EF88 C0005D48
C03A8B28 C0029B28 C002A258 C003A99C C0005AFC  0FF15DBC
0FF175DC 0FF09894 10012190 100127D0 100356AC
Illegal instruction

Sometimes i am getting the following panic message.
===
Oops: kernel access of bad area, sig: 11
NIP: C0033360 XER: 2000 LR: C00DE9A8 SP: C016C0D0 REGS: c016c020 TRAP: 
0300Tainted: P

MSR: 9032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 03910018, DSISR: 4000
TASK = c016a480[0] 'swapper' Last syscall: 120
last math c505c000 last altivec 
GPR00: C00DE9A8 C016C0D0 C016A480 0391   C5A469DC 

GPR08: 0001 03910014 0043 C5A2FE20 2490C022 C0030A04 07FF0D00 

GPR16: 00044008    1032 0003  
0A050393
GPR24: C5A46980 C5A2F842 0040  C5A2F842 C01C C5A46980 
0001

Call backtrace:
0040 C00DE9A8 C00DE9DC C00DEB28 C01163D4 C01166EC C00F4898
C00F44E4 C00F4AC8 C00F468C C00E3664 C00E3810 C00E397C C001A200
C0007620 CD876CAC C0005D40 C000744C C0007460 C0003918 C01815E0
35F0
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
<0>Rebooting in 180 seconds..
====


How to debug this???

-Thirumalai 


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


enabling PCIe on powerpc device tree

2010-05-19 Thread Thirumalai

Hi,
   How to enable PCIe interrupt on device tree. I am using linux-2.6.30 on 
MPC8640D based Target board.
-Thirumalai 


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


8640D Erratum fixup

2010-05-11 Thread Thirumalai

Hi kumar,
I just want to know whether the erratum of MPC8640D has fixed on 
u-boot or linux ?
-Thirumalai 



 CAUTION - Disclaimer *This email may contain 
confidential and privileged material for the
sole use of the intended recipient(s). Any review, use, retention, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply email and delete all copies of this message. Also, email is susceptible to data corruption, interception, tampering, unauthorized amendment and viruses. We only send and receive emails on the basis that we are not liable for any such corruption, interception, tampering, amendment or viruses or any consequence thereof. 
*** End of Disclaimer ***DataPatterns ITS Group**


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


MPC8640D second core initialization

2009-12-02 Thread Thirumalai

Hi Kumar,
   I am using 2009-06 u-boot for MPC8640D based custom board. I just 
want to know whether the second core of MPC8640D is kicked off automatically 
or will it required by the user to kick[like mpc85xx/mp.c].  Also if am 
enabling the CONFIG_MP macro and  CONFIG_NUM_CPUS as 2, then the reset 
command of the target is not  working(means board is getting hanged). I have 
mentioned the value of CONFIG_SYS_SCRATCH_VA as 0xf500.



Also when i try to boot linux using this configuration i was getting into 
kernel panic.


## Current stack ends at 0x3fa91a08
## Booting kernel from Legacy Image at 0040 ...
  Image Name:   Linux-2.6.30-dpvpx0689
  Created:  2009-12-01   4:45:09 UTC
  Image Type:   PowerPC Linux Kernel Image (gzip compressed)
  Data Size:2307361 Bytes =  2.2 MB
  Load Address: 
  Entry Point:  
  Verifying Checksum ... OK
## Flattened Device Tree blob at 0400
  Booting using the fdt blob at 0x400
  Uncompressing Kernel Image ... OK
  Loading Device Tree to 007fa000, end 007ff150 ... OK
## Transferring control to Linux (at address ) ...
  Booting using OF flat tree...
Using DPVPX0689 machine description
Total memory = 1024MB; using 2048kB for hash table (at afe0)
Linux version 2.6.30-dpvpx0689 (r...@localhost.localdomain) (gcc version 
4.0.0 (DENX ELDK 4.0 4.0.0)) #70 SMP Tue Dec 1 10:14:07 IST 2009

Found legacy serial port 0 for /s...@f600/ser...@4500
 mem=f6004500, taddr=f6004500, irq=0, clk=4, speed=0
Found legacy serial port 1 for /s...@f600/ser...@4600
 mem=f6004600, taddr=f6004600, irq=0, clk=4, speed=0
CPU maps initialized for 1 thread per core
(thread shift is 0)
console [udbg0] enabled
setup_arch: bootmem
dpvpx0689_setup_arch()
Found FSL PCI host bridge at 0xf6008000. Firmware bus number: 0->15
PCI host bridge /p...@f6008000  ranges:
MEM 0x8000..0x9fff -> 0x8000
 IO 0xf800..0xfbff -> 0x
Single Board Computers from Data Patterns
Ported & Developed By COTS DIVISION
arch: exit
Top of RAM: 0x4000, Total RAM: 0x4000
Memory hole size: 0MB
Zone PFN ranges:
 DMA  0x -> 0x0003
 Normal   0x0003 -> 0x0003
 HighMem  0x0003 -> 0x0004
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
   0: 0x -> 0x0004
On node 0 totalpages: 262144
free_area_init_node: node 0, pgdat a047d1c0, node_mem_map a07fd000
 DMA zone: 1536 pages used for memmap
 DMA zone: 0 pages reserved
 DMA zone: 195072 pages, LIFO batch:31
 HighMem zone: 512 pages used for memmap
 HighMem zone: 65024 pages, LIFO batch:15
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260096
Kernel command line: root=/dev/nfs rw nfsroot=10.5.18.3:/ppc/netfs/fc5fs/ 
ip=10.5.18.230:10.5.18.3:10.5.18.3:255.0.0.0:DPVPX0689:eth0:off 
console=ttyS0,115200

NR_IRQS:512
mpic: Setting up MPIC " MPIC " version 1.2 at f604, max 2 CPUs
mpic: ISU size: 256, shift: 8, mask: ff
mpic: Initializing for 256 sources
PID hash table entries: 4096 (order: 12, 16384 bytes)
time_init: decrementer frequency = 100.00 MHz
time_init: processor frequency   = 800.00 MHz
clocksource: timebase mult[280] shift[22] registered
clockevent: decrementer mult[1999] shift[16] cpu[0]
Console: colour dummy device 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
High memory: 262140k
Memory: 1031504k/1048576k available (k kernel code, 16252k reserved, 
160k data, 169k bss, 200k init)

Kernel virtual memory layout:
 * 0xfffe..0xf000  : fixmap
 * 0xff80..0xffc0  : highmem PTEs
 * 0xfe7ed000..0xff80  : early ioremap
 * 0xd100..0xfe7ed000  : vmalloc & ioremap
Calibrating delay loop... 199.68 BogoMIPS (lpj=99840)
Mount-cache hash table entries: 512
mpic: requesting IPIs ...
Processor 1 found.
clockevent: decrementer mult[1999] shift[16] cpu[1]
Brought up 2 CPUs
Unable to handle kernel paging request for data at address 0x0004
Faulting instruction address: 0xa0023e10
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=2 DPVPX0689
Modules linked in:
NIP: a0023e10 LR: a0023dd0 CTR: 
REGS: cf841e90 TRAP: 0300   Not tainted  (2.6.30-dpvpx0689)
MSR: 9032   CR: 24004028  XER: 2000
DAR: 0004, DSISR: 4000
TASK = cf83f930[1] 'swapper' THREAD: cf84 CPU: 0
GPR00:  cf841f40 cf83f930    cf841f50 

GPR08:   0002 a10018f4 22004082  3fee6c00 
3ff94000
GPR16: ffbf ffbf7bff    cf83a800 a10018e8 
a0491224
GPR24: a049 a04558f8  cf801f20 a1006070 a10018e8 a10018f8 


NIP [a0023e10] __build_sched_domains+0x354/0x464
LR [a0023dd0] __build_sched_domains+0x314/0x464
Call Trace:
[cf841f40] [a0023b98] __build_sched_domains+0xdc/0x464 (unreliable)
[cf841f90] [a04326ec] sched_init_smp+0x88/0x

How to use mpic timer of mpc8640d

2009-12-02 Thread Thirumalai

Hi kumar,
   I just want to know how to use the global timer of the MPC8640D on linux 
environment. I am having a Freescale HPCN evaluation board on which 
linux-2.6.21 kernel is running. How to use the timer.


Thank you
T. 


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Regarding FPGA based cascaded PIC

2009-11-04 Thread Thirumalai


- Original Message - 
From: "Benjamin Herrenschmidt" 

To: "Thirumalai" 
Cc: 
Sent: Wednesday, November 04, 2009 11:55 AM
Subject: Re: Regarding FPGA based cascaded PIC



On Wed, 2009-11-04 at 10:48 +0530, Thirumalai wrote:

Hi Ben,
I am a having MPC8640D based board on which i am in the process 
of

writing cascaded interrupt handler for my FPGA based PIC. I need some
clarification on writing customized cascaded interrupt handler. As for as 
my
understanding we need to use  irq_alloc_host() function for allocating 
the
irq_host for my FPGA pic and we should use irq_of_parse_and_map() 
function
for parsing and assignment of virtual IRQ from my device tree. In my case 
my
FPGA based PIC is giving interrupts to 3 external interrupt of MPC8640D 
i.e

1,2,3 . So i have written my fpga-pic node as follows on my device tree.


Please post to the mailing list linuxppc-dev@lists.ozlabs.org for such
questions.


fpga-...@dc00 {
compatible = "dp,fpga-pic";
reg = <0xdc00 0x7fff>;
interrupt-controller;
#interrupt-cells = <3>;
interrupts = <1 1 2 1 3 1>;
interrupt-parent = <&mpic>;
};


3 cells per interrupt ? that's a lot :-) What do you put in there ?


 mpic: p...@4 {
clock-frequency = <0>;
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <2>;
reg = <0x4 0x4>;
compatible = "chrp,open-pic";
device_type = "open-pic";
big-endian;
};


So far it looks reasonable...


The function irq_of_parse_and_map is returning VIRQ as 16,17,18
successfully. i hooked my chained interrupt handler for this VIRQ using
set_irq_chained_handler function. On my user defined interrupt handler 
when
i am searching the vector need to be returned i am getting 0 as vector. 
ie

using the function irq_linear_revmap.

So here my doubt:

Even irq_alloc_host has returned a irq_host for my pic, Why my custom map
funtion is not called during irq_of_parse_and_map function. Instead of my
map/xlate function it is calling mpic's map/xlate function?


That's where I don't follow you...

So interrupts 1,2,3 in your example are outputs of the FPGA PIC
connected to inputs 1,2,3 of the MPIC. Those get mapped to virq 16.17
and 18. Those are really MPIC interrupts.

At some stage some interrupts -below- your FPGA PIC (whatever devices
you have on the FPGA) are going to fire. it's -those- interrupts that
will use map/xlate from the FPGA host when irq_of_parse_and_map() is
called for them



you understood correctly. Here the problem lies.Correct me if i am wrong. So 
you are telling that irq_of_parse_and_map() will invoke the map/xlate of my 
FPGA pic. Right.


But this is what not happening. Instead of calling my map/xlate functions 
the irq_of_parse_and_map() function is invoking mpic's map/xlate function.


Here is the piece of code that we are using.

fpga_pic_irq_host = irq_alloc_host(pic, IRQ_HOST_MAP_LINEAR,
   DPVPX0659_FPGA_NUM_IRQS,&fpga_pic_host_ops,
   NO_IRQ);
   if (fpga_pic_irq_host == NULL) {
   printk("FPGA PIC: Unable to allocate host\n");
   return;
   }

   for (i = 0; i < 3; i++) {
   fpga_irqs[i] = irq_of_parse_and_map(pic, i);
   if (fpga_irqs[i] == NO_IRQ) {
   printk("FPGA PIC: can't get irq %d.\n", i);
   continue;
   }
   printk("interrupt from device tree : %d \n",fpga_irqs[i]);
   
set_irq_chained_handler(dpvpx0659_fpga_irqs[i],dpvpx0659_fpga_pic_cascade);
   }


IE. When -those- fire, the FPGA emits one of the 3 interrupts, and your
cascade handler gets called. It will then fetch off the FPGA PIC what
interrupts happened and revmap that.

Cheers,
Ben.


Kindly reply me soon.
Regards
Thirumalai



Thank you
Thirumalai 



 CAUTION - Disclaimer *This email may contain 
confidential and privileged material for the
sole use of the intended recipient(s). Any review, use, retention, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply email and delete all copies of this message. Also, email is susceptible to data corruption, interception, tampering, unauthorized amendment and viruses. We only send and receive emails on the basis that we are not liable for any such corruption, interception, tampering, amendment or viruses or a

Regarding MPIC pluggable interrupt handler

2009-10-31 Thread Thirumalai

Hi Ben,
   Is there any standard way to write pluggable interrupt handler for 
my FPGA. I have seen the reference code on 85xx/socrates_fpga_pic.c. But it 
is not sufficient to understand. Kindly give any reference.


Thank you
T.


 CAUTION - Disclaimer *This email may contain 
confidential and privileged material for the
sole use of the intended recipient(s). Any review, use, retention, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply email and delete all copies of this message. Also, email is susceptible to data corruption, interception, tampering, unauthorized amendment and viruses. We only send and receive emails on the basis that we are not liable for any such corruption, interception, tampering, amendment or viruses or any consequence thereof. 
*** End of Disclaimer ***DataPatterns ITS Group**


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Regarding TSI108 ethernet DMA issue

2009-08-20 Thread Thirumalai
Hi all,
I found that the header file(dma-mapping.h) has changed. I saw this 
change has happened on Linux -2.6.28 kernel onwards. earlier kernel is having 
COMFIT_PPC64 macro. Based on this macro the things were happened. Is there any 
fixes available right now or any reasons behind this changes. 
Regards,
T.
  - Original Message - 
  From: Thirumalai Pachamuthu 
  To: linuxppc-...@ozlabs.org 
  Sent: Thursday, August 20, 2009 9:45 AM
  Subject: Regarding TSI108 ethernet DMA issue


  Hi all,
I am trying to port linux 2.6.30 for my TSI108 based custom board where 
i am getting the following kernel panic message. I found that it was due to dma 
allocation function call particularly dma_alloc_coherent() of tsi108_open 
function. When we see the implementation of dma_alloc_coherent. It was bit 
changed from the previous linux versions it seems. 
The implementation of dma_alloc_coherent was kept on the 
arch/powerpc/include/asm/dma-mapping.h file. Earlier implementation is not 
considering the first parameter what the tsi108 driver is passing as NULL. But 
the current implementation is considering this parameter and because of this 
the panic is coming what i believe.

So kindly let me know any patches for this problem or any fixes.
  Regards,
  T.


--


  ___
  Linuxppc-dev mailing list
  Linuxppc-dev@lists.ozlabs.org
  https://lists.ozlabs.org/listinfo/linuxppc-dev___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Regarding TSI108 ethernet DMA issue

2009-08-19 Thread Thirumalai Pachamuthu
 Hi all,
  I am trying to port linux 2.6.30 for my TSI108 based custom board
where i am getting the following kernel panic message. I found that it was
due to dma allocation function call particularly dma_alloc_coherent() of
tsi108_open function. When we see the implementation of dma_alloc_coherent.
It was bit changed from the previous linux versions it seems.
  The implementation of dma_alloc_coherent was kept on the
arch/powerpc/include/asm/dma-mapping.h file. Earlier implementation is not
considering the first parameter what the tsi108 driver is passing as NULL.
But the current implementation is considering this parameter and because of
this the panic is coming what i believe.

  So kindly let me know any patches for this problem or any fixes.

[ cut here ]
Kernel BUG at c019074c [verbose debug info unavailable]
Oops: Exception in kernel mode, sig: 5 [#1]
DPVME0447
NIP: c019074c LR: c019074c CTR: c014ea48
REGS: df82bd80 TRAP: 0700   Not tainted  (2.6.30)
MSR: 00029032   CR: 2422  XER: 2000
TASK = df82c000[1] 'swapper' THREAD: df82a000
GPR00: c019074c df82be30 df82c000 0030 13e0  c014e998
0035
GPR08: c02f2af0 c02e7bb8 13e0 c02cd8f4 2442  0002

GPR16: c02c     0ffaa41c c030
0004
GPR24:   c02f c02f df821030  df821000
df821300
NIP [c019074c] tsi108_open+0x5c/0x90
LR [c019074c] tsi108_open+0x5c/0x90
Call Trace:
[df82be30] [c019074c] tsi108_open+0x5c/0x90 (unreliable)
[df82be50] [c01b1564] dev_open+0xac/0x11c
[df82be70] [c01b1464] dev_change_flags+0x160/0x1b4
[df82be90] [c02bc5f8] ip_auto_config+0x18c/0xe5c
[df82bf50] [c0003c8c] do_one_initcall+0x34/0x1a8
[df82bfd0] [c02a1848] kernel_init+0x9c/0x100
[df82bff0] [c0012064] kernel_thread+0x4c/0x68
Instruction dump:
807f003c 7fc8f378 4beb8d71 7c7d1b79 40820028 80bf003c 3c60c029 7fc6f378
386327c0 90be0028 809f0040 4be90669 <0fe0> 4800 80bf003c 3c60c029
---[ end trace dc633a1da0ecdafb ]---
Kernel panic - not syncing: Attempted to kill init!
Rebooting in 180 seconds..

Regards,
T.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Regarding TSI108 ethernet DMA issue

2009-08-19 Thread Thirumalai Pachamuthu
Hi all,
  I am trying to port linux 2.6.30 for my TSI108 based custom board
where i am getting the following kernel panic message. I found that it was
due to dma allocation function call particularly dma_alloc_coherent() of
tsi108_open function. When we see the implementation of dma_alloc_coherent.
It was bit changed from the previous linux versions it seems.
  The implementation of dma_alloc_coherent was kept on the
arch/powerpc/include/asm/dma-mapping.h file. Earlier implementation is not
considering the first parameter what the tsi108 driver is passing as NULL.
But the current implementation is considering this parameter and because of
this the panic is coming what i believe.

  So kindly let me know any patches for this problem or any fixes.
Regards,
T.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Regarding 64-bit implementation of mtd driver

2009-08-19 Thread Thirumalai

Hi all,
   In my custom board the flash memory was 64 bit data size means two 32 
bit flash chips are combined together to form as 64 bit bus width. Is there 
any patch to use the flash memory in mtd layer on the linux-2.6 kernel. 
Because on kernel there is no support for 64 bit read/write on the low leve 
cfi driver(command set 002).

Regards,
T. 



 CAUTION - Disclaimer *This email may contain 
confidential and privileged material for the
sole use of the intended recipient(s). Any review, use, retention, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply email and delete all copies of this message. Also, email is susceptible to data corruption, interception, tampering, unauthorized amendment and viruses. We only send and receive emails on the basis that we are not liable for any such corruption, interception, tampering, amendment or viruses or any consequence thereof. 
*** End of Disclaimer ***DataPatterns ITS Group**


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Fw: Regarding Device tree PCI binding on Linux-2.6.30 kernels

2009-08-12 Thread Thirumalai

Hi,
   Is there any changes on PCI Device tree binding has happened? Because i 
am trying to port linux 2.6.30 to my MPC7448 based custom board. The 
target is getting hanged at ethernet initialization. Also i have seen on 
the debug message of kernel that the PCI MEM/IO resources are not getting 
assigned. So when searched the reason for not assigning the PCI MEM/IO 
spaces.  I have seen the implemetation of 
/linux/arch/powerpc/kernel/pci-common.c/ pci_process_bridge_OF_ranges() is 
some what different from the old kernels. The CPU address is taken using 
of_translate_address() function which is in prom_parse.c. This step is not 
included on the previous implementations. This particular implementation 
causing me problem of not finding PCI MEM/IO spaces. I have taken the dts 
file of arch/powerpc/boot/dts/MPC7448hpc2.dts as my base dts file and 
started to port for my hardware.

   Kindly let me know any changes that i need to know.
My dts file,

/ {
   model = "dpvme0447";
   compatible = "mpc74xx";
   #address-cells = <1>;
   #size-cells = <1>;

   aliases {
   ethernet0 = &enet0;
   ethernet1 = &enet1;

   serial0 = &serial0;
   serial1 = &serial1;

   };

   cpus {
   #address-cells = <1>;
   #size-cells =<0>;

   PowerPC,7...@0 {
   device_type = "cpu";
   reg = <0>;
   d-cache-line-size = <0x20>; // 32 bytes
   i-cache-line-size = <0x20>; // 32 bytes
   d-cache-size = <0x8000>;// L1, 32K 
bytes
   i-cache-size = <0x8000>;// L1, 32K 
bytes
   timebase-frequency = <0>;   // 33 MHz, from 
uboot

   clock-frequency = <0>;  // From U-Boot
   bus-frequency = <0>;// From U-Boot
   32-bit;
   };
   };

   memory {
   device_type = "memory";
   reg = <0x 0x2000// DDR2   512M at 0
  >;
   };

tsi...@5000 {
   #address-cells = <1>;
   #size-cells = <1>;
   device_type = "tsi-bridge";
   ranges = <0x 0x5000 0x0001>;
   reg = <0x5000 0x0001>;
   assigned-addresses = <0>;
   bus-frequency = <0>;

   i...@7000 {
   interrupt-parent = <&mpic>;
   interrupts = <0xE 0>;
   reg = <0x7000 0x400>;
   device_type = "i2c";
   compatible  = "tsi108-i2c";
   };

   MDIO: m...@6000 {
   device_type = "mdio";
   compatible = "tsi108-mdio";
   reg = <0x6000 0x50>;
   #address-cells = <1>;
   #size-cells = <0>;

   phy8: ethernet-...@6000 {
   interrupt-parent = <&mpic>;
   interrupts = <2 1>;
   reg = <8>;
   device_type = "ethernet-phy";
   };

   phy9: ethernet-...@6400 {
   interrupt-parent = <&mpic>;
   interrupts = <2 1>;
   reg = <9>;
   device_type = "ethernet-phy"; enet0: 
ether...@6200 {

   linux,network-index = <0>;
   #size-cells = <0>;
   device_type = "network";
   compatible = "tsi108-ethernet";
   reg = <0x6000 0x200>;
   address = [ 00 06 D2 00 00 01 ];
   interrupts = <0x10 2>;
   interrupt-parent = <&mpic>;
   mdio-handle = <&MDIO>;
   phy-handle = <&phy8>;
   };

   enet1: ether...@6600 {
   linux,network-index = <1>;
   #address-cells = <1>;
   #size-cells = <0>;
   device_type = "network";
   compatible = "tsi108-ethernet";
   reg = <0x6400 0x200>;
   address = [ 00 06 D2 00 00 02 ];
   interrupts = <0x11 2>;
   interrupt-parent = <&mpic>;
   mdio-handle = <&MDIO>;
   phy-handle = <&phy9>;
   };

   serial0: ser...@7808 {
   device_type = "serial";
   compatible = "ns16550";
   reg = <0x7808 0x200>;
   clock-frequency = <0x3f6b5a00>;
   interrupts = <0xc 0>;
 

Regarding initial PCI configuration

2009-08-12 Thread Thirumalai

Hi,
   I need some clarification on powerpc linux-2.6.30 kernels PCI 
enumeration. Please correct me if i am wrong on this. I am having mpc7448 
based custom board on which i am trying to port linux 2.6.30(Note : Earlier 
i have ported linux2.6.23 kernel for this board and its successfully 
booted). So i have choosen mpc7448hpc2 as my model BSP. . On this the first 
call to pci related thing was called. (i.e from 
linux/arch/powerpc/platform/mpc7448hpc2.c/setup_arch() ) which will again 
call my sysdev/tsi108_pci.c/setup_pci() function. At the end of this 
function we use to call the pci_OF_process() function for assigning MEM/IO 
addresses to my kernel. again this function was defined on 
kernel/pci-common.c function. So here the mess starts. On this function the 
code is getting pci_addr and pci_size from ranges property that i used to 
pass on my device tree. But the cpu_addr whatever used will get the 
translated address from prom_parse.c file. This one is always returning 
0x. When we just dig into the internals i came to know that the 
implementation is totally different from the previos kernel means from 
linux-2.6.23 this change has come. Now the latest kernel is exhibiting the 
64 bit PCI implementation. But the prom_parse.c code is designed in that 
manner i think. because whenever the of_translate_addr() function is called 
the function will get the parent node for getting the system bus address 
information which we used to have 0xc000 and size 0x1 on the device 
tree. This will do for all the devices but when try to use these function 
PCI mapping. This will create mess. I don't know how to go further.
   Kindly let me know any changes is required on device tree or kernel 
itself to get out this problem.


Regards,
T. 



 CAUTION - Disclaimer *This email may contain 
confidential and privileged material for the
sole use of the intended recipient(s). Any review, use, retention, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply email and delete all copies of this message. Also, email is susceptible to data corruption, interception, tampering, unauthorized amendment and viruses. We only send and receive emails on the basis that we are not liable for any such corruption, interception, tampering, amendment or viruses or any consequence thereof. 
*** End of Disclaimer ***DataPatterns ITS Group**


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev