Re: Can not get PATA to work for Compact Flash with 2.6.28 kernel

2009-02-04 Thread Steven A. Falco
Lixin Yao wrote:
> I redefined io functions in libata-sff.c, byte operations are converted
> to 16bit word operations. Maybe I should ask for HW changes in new
> revisions of the board.
> 

I do recommend that.  We got it wrong on our first board too. :-)  It
is much better to get the hardware right than to carry your endian SW
patch forever.

Two other potential issues: 1) making sure the "most significant
byte enable" is used, so that byte writes work correctly.  You most
likely have this correct already, or you would not have gotten this
far.

And 2) make sure you allow for the hold time / turn-off time of the
CF.  We use a 440EPx, and cannot set up the external bus controller
to generate valid cycles in all cases.  So, we added some flip-flops
to stretch the rising edge of the chip select, which guarantees proper
timing.  (I'm going a bit far afield from the purpose of this mailing
list, so if you want more details, please contact me directly.)

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


RE: Can not get PATA to work for Compact Flash with 2.6.28 kernel

2009-02-02 Thread Lixin Yao
I redefined io functions in libata-sff.c, byte operations are converted
to 16bit word operations. Maybe I should ask for HW changes in new
revisions of the board.

These are the changes I had to make in drivers/ata/libata-sff.c.
TR5000V2 is my board config define.

#if defined(CONFIG_TR5000V2)

#define ioread8(X) ide_inb(X)
#define iowrite8(X, Y) ide_outb(X, Y)
#define ioread16_rep(X, Y, Z) ide_read16_rep(X, Y, Z)
#define iowrite16_rep(X, Y, Z) ide_write16_rep(X, Y, Z)

static void inline ide_outb (u8 val, void __iomem *addr)
{
   asm("eieio");
   *(ushort *)addr = val;
   asm("eieio");
   asm("sync");
}

static unsigned char inline ide_inb(void __iomem *addr)
{
   ushort data16;
   data16 = *(volatile ushort *)(addr);
   asm("eieio"); 
   asm("sync");
   return data16;
}


static void ide_read16_rep(void __iomem *addr, void *dst, unsigned long
ulcount)
{
   const volatile u16 __iomem *port = addr;
   void *buf = dst;
   long count = ulcount;
   u16 *tbuf = buf;
   u16 tmp;

   if (unlikely(count <= 0))
  return;
   asm volatile("sync");
   do {
  tmp = *port;
  eieio();
  *tbuf++ = tmp>>8 | tmp<<8;
   } while (--count != 0);
   asm volatile("twi 0,%0,0; isync" : : "r" (tmp));
}

static void ide_write16_rep(void __iomem *addr, const void *src,
unsigned long ulcount)
{
   volatile u16 __iomem *port = addr;
   const void *buf = src;
   long count = ulcount;   
   const u16 *tbuf = buf;

   if (unlikely(count <= 0))
  return;
   asm volatile("sync");
   do {
  *port = *tbuf<<8 | *tbuf>>8;
  tbuf++;
   } while (--count != 0);
   asm volatile("sync");
}
#endif 


I can mount DOS FS now.

>mknod /dev/sda1 b 8 1
>mount -t msdos /dev/sda1 /mnt

Thanks.

Lixin

-Original Message-
From: Steven A. Falco [mailto:sfa...@harris.com] 
Sent: Monday, February 02, 2009 4:52 PM
To: Lixin Yao
Cc: Aaron Pace; linuxppc-dev@ozlabs.org
Subject: Re: Can not get PATA to work for Compact Flash with 2.6.28
kernel

Lixin Yao wrote:
> Steven/Aaron,
> 
> I found the problem. On my board, the CF is on a 16 bit interface on
bus
> of MPC8248. The HW is connected in Big Endian format. PPC Bit D0 is
> connected to CF Bit D15, and PPC D1 to CF Bit D14, till PPC D0 to CF
> D15. I had to swap the bytes in u-boot. I forgot to do it in Kernel. 
> 
> After making the change, CF is detected. But I can not access /dev/hda
> or any scsi/sda devices under /dev. 
> 

How did you swap the bytes?  The CF will be accessed both in byte mode
and in 16-bit mode.  So this is tricky to do in software.  When we
wired our CF, we deliberately swapped the bytes in hardware.  So the
processor bus MSB goes to pin 6 of the CF.

Steve

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


Re: Can not get PATA to work for Compact Flash with 2.6.28 kernel

2009-02-02 Thread Steven A. Falco
Lixin Yao wrote:
> Steven/Aaron,
> 
> I found the problem. On my board, the CF is on a 16 bit interface on bus
> of MPC8248. The HW is connected in Big Endian format. PPC Bit D0 is
> connected to CF Bit D15, and PPC D1 to CF Bit D14, till PPC D0 to CF
> D15. I had to swap the bytes in u-boot. I forgot to do it in Kernel. 
> 
> After making the change, CF is detected. But I can not access /dev/hda
> or any scsi/sda devices under /dev. 
> 

How did you swap the bytes?  The CF will be accessed both in byte mode
and in 16-bit mode.  So this is tricky to do in software.  When we
wired our CF, we deliberately swapped the bytes in hardware.  So the
processor bus MSB goes to pin 6 of the CF.

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


RE: Can not get PATA to work for Compact Flash with 2.6.28 kernel

2009-02-02 Thread Lixin Yao
1: protocol 2 task_state 2 (dev_stat 0x58)
ata_pio_sector: data read
ata_sff_hsm_move: ata1: protocol 2 task_state 2 (dev_stat 0x58)
ata_pio_sector: data read
ata_sff_hsm_move: ata1: protocol 2 task_state 2 (dev_stat 0x58)
ata_pio_sector: data read
ata_sff_hsm_move: ata1: protocol 2 task_state 2 (dev_stat 0x58)
ata_pio_sector: data read
ata_sff_hsm_move: ata1: protocol 2 task_state 3 (dev_stat 0x50)
ata_sff_hsm_move: ata1: dev 0 command complete, drv_stat 0x50
 sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk
TCP cubic registered
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
ics1893_config_init() successful
ADDRCONF(NETDEV_UP): eth0: link is not ready
ics1893_config_init() successful
IP-Config: Complete:
 device=eth0, addr=172.20.16.150, mask=255.255.255.0,
gw=172.20.16.1,
 host=tr5000v2, domain=, nis-domain=(none),
 bootserver=10.15.34.196, rootserver=10.15.34.196, rootpath=
Looking up port of RPC 13/2 on 10.15.34.196
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Looking up port of RPC 15/1 on 10.15.34.196
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 164k init
### Application running ...
#


These are the changes I had to make in drivers/ata/libata-sff.c.
TR5000V2 is my board config define.

#if defined(CONFIG_TR5000V2)
static void inline ide_outb (u8 val, void __iomem *addr)
{
   asm("eieio");
   *(ushort *)addr = val;
   asm("eieio");
   asm("sync");
}

static unsigned char inline ide_inb(void __iomem *addr)
{
   ushort data16;
   data16 = *(volatile ushort *)(addr);
   asm("eieio"); 
   asm("sync");
   return data16;
}


static void ide_read16_rep(void __iomem *addr, void *dst, unsigned long
ulcount)
{
   const volatile u16 __iomem *port = addr;
   void *buf = dst;
   long count = ulcount;
   u16 *tbuf = buf;
   u16 tmp;

   if (unlikely(count <= 0))
  return;
   asm volatile("sync");
   do {
  tmp = *port;
  eieio();
  *tbuf++ = tmp>>8 | tmp<<8;
   } while (--count != 0);
   asm volatile("twi 0,%0,0; isync" : : "r" (tmp));
}

static void ide_write16_rep(void __iomem *addr, const void *src,
unsigned long ulcount)
{
   volatile u16 __iomem *port = addr;
   const void *buf = src;
   long count = ulcount;   
   const u16 *tbuf = buf;

   if (unlikely(count <= 0))
  return;
   asm volatile("sync");
   do {
  *port = *tbuf<<8 | *tbuf>>8;
  tbuf++;
   } while (--count != 0);
   asm volatile("sync");
}

#define ioread8(X) ide_inb(X)
#define iowrite8(X, Y) ide_outb(X, Y)
#define ioread16_rep(X, Y, Z) ide_read16_rep(X, Y, Z)
#define iowrite16_rep(X, Y, Z) ide_write16_rep(X, Y, Z)
#endif

 
Thanks very much!

Lixin

-----Original Message-
From: Steven A. Falco [mailto:sfa...@harris.com] 
Sent: Monday, February 02, 2009 11:38 AM
To: Lixin Yao
Cc: linuxppc-dev@ozlabs.org
Subject: Re: Can not get PATA to work for Compact Flash with 2.6.28
kernel

Lixin Yao wrote:
> Hello, Steven,
> 
> I realized that and made change, I use reg-shift of 1 which u-boot
uses
> and works for the CF.
> 
> local...@f0010100 {
>   #address-cells = <2>;   
>   #size-cells = <1>;
>   compatible = "fsl,mpc8248-localbus",
>"fsl,pq2-localbus",
>"simple-bus"; 
>   reg = <0xf0010100 0x40>;
>   ranges = <0x3 0x0 0x3000 0x1
> 0x4 0x0 0x4000 0x1>;  
> 
>   p...@3,0 {
>  compatible = "fsl,tr5000v2-pata", "ata-generic";
>  reg = <0x3 0x0 0x10 0x4 0xC 0x2>;   
>  reg-shift = <1>;
>  pio-mode = <6>; 
>  // interrupts = <0x19 0x8>; 
>  // interrupt-parent = <&PIC>;   
>   };
> 
> 
> U-Boot (1.3.4) shows this:
> 
> bus 0: OK
>   Device 0: Model: SanDisk SDCFJ-128 Firm: HDX 2.27 Ser#:
> 116904C2505X4026
> Type: Removable Hard Disk
> Capacity: 122.5 MB = 0.1 GB (250880 x 512)
> 
> 
> This is the console output after setting reg = <0x3 0x0 0x10 0x4 0xC
> 0x2>:
> 
> ata_host_alloc: ENTER
> ata_port_alloc: ENTER
> __ata_port_freeze: ata4294967295 port frozen
> scsi0 : pata_platform
> ata1: PATA max PIO6 no IRQ, using PIO polling mmio cmd 0x3000 ctl
> 0x400c

On my board, I get the following:

ata1: PATA max PIO6 mmio cmd 0x1c100 ctl 0x1c198 irq 32

Note that the addresses I provided got turned into 36-bit addresses
because I am using a PPC440EPx chip.

I am suspicious of the addresses you got, but I don't

Re: Can not get PATA to work for Compact Flash with 2.6.28 kernel

2009-02-02 Thread Aaron Pace
>
> I use a San Disk compact flash (CF) card on a board with MPC8248
> processor. The CF is connected to data and address bus of the processor
> and operates in TRUE IDE mode. The registers are memory mapped. I can
> read the file system on the CF in u-boot (1.3.4). U-boot can identify
> the CF and mount file system correctly.


I have just gone through solving a problem that sounds very similar
(using several flash cards).
We also have a flash card wired up in true IDE mode.  The problem that
I ran into is that any time the Interrupt Enable (bit 1) or Software
Reset(bit 2) bits were set in the control register, the flash would
show an error in the status register (bit 0), and was not recoverable
except by toggling the power to the card.
To work around this, write a driver based on the PATA driver, but
replace (or at least examine) each and every element of the
ata_port_operations struct you are using, replacing any function which
soft resets or enables interrupts.

> ata_host_alloc: ENTER
> ata_port_alloc: ENTER
> __ata_port_freeze: ata4294967295 port frozen
> scsi0 : pata_platform
> ata1: PATA max PIO3 no IRQ, using PIO polling mmio cmd 0x3000 ctl
> 0x4000
> ata_host_register: probe begin
> ata_port_schedule_eh: port EH scheduled
> ata_scsi_error: ENTER
> ata_port_flush_task: ENTER
> ata_eh_link_autopsy: ENTER
> ata_eh_recover: ENTER
> __ata_port_freeze: ata1 port frozen
> ata_sff_softreset: ENTER
> ata_sff_softreset: about to softreset, devmask=0
> ata_bus_softreset: ata1: bus reset via SRST
> ata_sff_softreset: EXIT, classes[0]=9 [1]=9
> ata_eh_thaw_port: ata1 port thawed
> ata_std_postreset: ENTER
> ata_std_postreset: EXIT
> ata_sff_postreset: EXIT, no device
> ata_eh_revalidate_and_attach: ENTER
> ata_eh_recover: EXIT, rc=0
> ata_scsi_error: EXIT

The above sequence of ATA calls you are seeing is essentially
identical to what I ran into -- part of the registration attempted to
either enable interrupts or soft reset the card, the error bit stuck
high, and everything went downhill from there.
Hope that helps.

-Aaron Pace
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Can not get PATA to work for Compact Flash with 2.6.28 kernel

2009-02-02 Thread Steven A. Falco
Lixin Yao wrote:
> Hello, Steven,
> 
> I realized that and made change, I use reg-shift of 1 which u-boot uses
> and works for the CF.
> 
> local...@f0010100 {
>   #address-cells = <2>;   
>   #size-cells = <1>;
>   compatible = "fsl,mpc8248-localbus",
>"fsl,pq2-localbus",
>"simple-bus"; 
>   reg = <0xf0010100 0x40>;
>   ranges = <0x3 0x0 0x3000 0x1
> 0x4 0x0 0x4000 0x1>;  
> 
>   p...@3,0 {
>  compatible = "fsl,tr5000v2-pata", "ata-generic";
>  reg = <0x3 0x0 0x10 0x4 0xC 0x2>;   
>  reg-shift = <1>;
>  pio-mode = <6>; 
>  // interrupts = <0x19 0x8>; 
>  // interrupt-parent = <&PIC>;   
>   };
> 
> 
> U-Boot (1.3.4) shows this:
> 
> bus 0: OK
>   Device 0: Model: SanDisk SDCFJ-128 Firm: HDX 2.27 Ser#:
> 116904C2505X4026
> Type: Removable Hard Disk
> Capacity: 122.5 MB = 0.1 GB (250880 x 512)
> 
> 
> This is the console output after setting reg = <0x3 0x0 0x10 0x4 0xC
> 0x2>:
> 
> ata_host_alloc: ENTER
> ata_port_alloc: ENTER
> __ata_port_freeze: ata4294967295 port frozen
> scsi0 : pata_platform
> ata1: PATA max PIO6 no IRQ, using PIO polling mmio cmd 0x3000 ctl
> 0x400c

On my board, I get the following:

ata1: PATA max PIO6 mmio cmd 0x1c100 ctl 0x1c198 irq 32

Note that the addresses I provided got turned into 36-bit addresses
because I am using a PPC440EPx chip.

I am suspicious of the addresses you got, but I don't know enough
about how the mpc8248 sets up its memory map.  Perhaps someone with
knowledge of that chip can comment.

Have you hooked a logic analyzer to the device?  You should be sure
that the chip selects are really responding at the reported addresses.

Since the CF works with Uboot, at least we know the hardware is good.

Steve


> ata_host_register: probe begin
> ata_port_schedule_eh: port EH scheduled
> ata_scsi_error: ENTER
> ata_port_flush_task: ENTER
> ata_eh_link_autopsy: ENTER
> ata_eh_recover: ENTER
> __ata_port_freeze: ata1 port frozen
> ata_sff_softreset: ENTER
> ata_sff_softreset: about to softreset, devmask=0
> ata_bus_softreset: ata1: bus reset via SRST
> ata_sff_softreset: EXIT, classes[0]=9 [1]=9
> ata_eh_thaw_port: ata1 port thawed
> ata_std_postreset: ENTER
> ata_std_postreset: EXIT
> ata_sff_postreset: EXIT, no device
> ata_eh_revalidate_and_attach: ENTER
> ata_eh_recover: EXIT, rc=0
> ata_scsi_error: EXIT
> ata_host_register: host probe begin
> TCP cubic registered
> NET: Registered protocol family 10
> IPv6 over IPv4 tunneling driver
> NET: Registered protocol family 17
> RPC: Registered udp transport module.
> RPC: Registered tcp transport module.
> ics1893_config_init() successful
> ADDRCONF(NETDEV_UP): eth0: link is not ready
> ics1893_config_init() successful
> IP-Config: Complete:
>  device=eth0, addr=172.20.16.150, mask=255.255.255.0,
> gw=172.20.16.1,
>  host=tr5000v2, domain=, nis-domain=(none),
>  bootserver=10.15.34.196, rootserver=10.15.34.196, rootpath=
> Looking up port of RPC 13/2 on 10.15.34.196
> ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
> Looking up port of RPC 15/1 on 10.15.34.196
> VFS: Mounted root (nfs filesystem).
> Freeing unused kernel memory: 164k init
> ### Application running ...
> 
>  
> The San Disk CF is still not found.
> 
> Any more insights/ideas?
> 
> Thank you and I appreciate your help!
> 
> Lixin
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


RE: Can not get PATA to work for Compact Flash with 2.6.28 kernel

2009-02-02 Thread Lixin Yao
Hello, Steven,

I realized that and made change, I use reg-shift of 1 which u-boot uses
and works for the CF.

local...@f0010100 {
  #address-cells = <2>;   
  #size-cells = <1>;
  compatible = "fsl,mpc8248-localbus",
   "fsl,pq2-localbus",
   "simple-bus"; 
  reg = <0xf0010100 0x40>;
  ranges = <0x3 0x0 0x3000 0x1
0x4 0x0 0x4000 0x1>;  

  p...@3,0 {
 compatible = "fsl,tr5000v2-pata", "ata-generic";
 reg = <0x3 0x0 0x10 0x4 0xC 0x2>;   
 reg-shift = <1>;
 pio-mode = <6>; 
 // interrupts = <0x19 0x8>; 
 // interrupt-parent = <&PIC>;   
  };


U-Boot (1.3.4) shows this:

bus 0: OK
  Device 0: Model: SanDisk SDCFJ-128 Firm: HDX 2.27 Ser#:
116904C2505X4026
Type: Removable Hard Disk
Capacity: 122.5 MB = 0.1 GB (250880 x 512)


This is the console output after setting reg = <0x3 0x0 0x10 0x4 0xC
0x2>:

ata_host_alloc: ENTER
ata_port_alloc: ENTER
__ata_port_freeze: ata4294967295 port frozen
scsi0 : pata_platform
ata1: PATA max PIO6 no IRQ, using PIO polling mmio cmd 0x3000 ctl
0x400c
ata_host_register: probe begin
ata_port_schedule_eh: port EH scheduled
ata_scsi_error: ENTER
ata_port_flush_task: ENTER
ata_eh_link_autopsy: ENTER
ata_eh_recover: ENTER
__ata_port_freeze: ata1 port frozen
ata_sff_softreset: ENTER
ata_sff_softreset: about to softreset, devmask=0
ata_bus_softreset: ata1: bus reset via SRST
ata_sff_softreset: EXIT, classes[0]=9 [1]=9
ata_eh_thaw_port: ata1 port thawed
ata_std_postreset: ENTER
ata_std_postreset: EXIT
ata_sff_postreset: EXIT, no device
ata_eh_revalidate_and_attach: ENTER
ata_eh_recover: EXIT, rc=0
ata_scsi_error: EXIT
ata_host_register: host probe begin
TCP cubic registered
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
ics1893_config_init() successful
ADDRCONF(NETDEV_UP): eth0: link is not ready
ics1893_config_init() successful
IP-Config: Complete:
 device=eth0, addr=172.20.16.150, mask=255.255.255.0,
gw=172.20.16.1,
 host=tr5000v2, domain=, nis-domain=(none),
 bootserver=10.15.34.196, rootserver=10.15.34.196, rootpath=
Looking up port of RPC 13/2 on 10.15.34.196
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Looking up port of RPC 15/1 on 10.15.34.196
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 164k init
### Application running ...

 
The San Disk CF is still not found.

Any more insights/ideas?

Thank you and I appreciate your help!

Lixin

-Original Message-
From: Steven A. Falco [mailto:sfa...@harris.com] 
Sent: Monday, February 02, 2009 10:00 AM
To: Lixin Yao
Cc: linuxppc-dev@ozlabs.org
Subject: Re: Can not get PATA to work for Compact Flash with 2.6.28
kernel

Lixin Yao wrote:
> 
> 
> I use a San Disk compact flash (CF) card on a board with MPC8248
> processor. The CF is connected to data and address bus of the
processor
> and operates in TRUE IDE mode. The registers are memory mapped. I can
> read the file system on the CF in u-boot (1.3.4). U-boot can identify
> the CF and mount file system correctly.
> 
> The hardware is known good hardware.
> 
> I use 2.6.28 kernel and configured support for PATA for the CF.

The second register set does not start at register 0.  It starts
at register 6.  We are using 1 chip select from the processor,
and generate two chip selects to the CF that are 0x80 apart (on
a sequoia board).

So here is what I am using on the modified sequoia board.  Note
the 0x0098 - you might think it should be 0x0080 as per
the discussion above, but because the second register set starts
at 6, you have to build that into the address.  

p...@1,0 {
compatible = "harris,hydra_temp-pata", "ata-generic";
bank-width = <2>;
reg = <0x0001 0x 0x0020 0x0001 0x0098
0x0004>;
reg-shift = <2>;
pio-mode = <6>;
interrupt-parent = <&UIC0>;
interrupts = <0x1b 0x4>;
};

Steve


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


Re: Can not get PATA to work for Compact Flash with 2.6.28 kernel

2009-02-02 Thread Steven A. Falco
Lixin Yao wrote:
> 
> 
> I use a San Disk compact flash (CF) card on a board with MPC8248
> processor. The CF is connected to data and address bus of the processor
> and operates in TRUE IDE mode. The registers are memory mapped. I can
> read the file system on the CF in u-boot (1.3.4). U-boot can identify
> the CF and mount file system correctly.
> 
> The hardware is known good hardware.
> 
> I use 2.6.28 kernel and configured support for PATA for the CF.

The second register set does not start at register 0.  It starts
at register 6.  We are using 1 chip select from the processor,
and generate two chip selects to the CF that are 0x80 apart (on
a sequoia board).

So here is what I am using on the modified sequoia board.  Note
the 0x0098 - you might think it should be 0x0080 as per
the discussion above, but because the second register set starts
at 6, you have to build that into the address.  

p...@1,0 {
compatible = "harris,hydra_temp-pata", "ata-generic";
bank-width = <2>;
reg = <0x0001 0x 0x0020 0x0001 0x0098 0x0004>;
reg-shift = <2>;
pio-mode = <6>;
interrupt-parent = <&UIC0>;
interrupts = <0x1b 0x4>;
};

Steve

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


Can not get PATA to work for Compact Flash with 2.6.28 kernel

2009-01-31 Thread Lixin Yao
I use a San Disk compact flash (CF) card on a board with MPC8248
processor. The CF is connected to data and address bus of the processor
and operates in TRUE IDE mode. The registers are memory mapped. I can
read the file system on the CF in u-boot (1.3.4). U-boot can identify
the CF and mount file system correctly.

The hardware is known good hardware.

I use 2.6.28 kernel and configured support for PATA for the CF.

Here is the setup in DTS file:

local...@f0010100 {
#address-cells = <2>;
#size-cells = <1>;
compatible = "fsl,mpc8248-localbus",
"fsl,pq2-localbus",
"simple-bus";
reg = <0xf0010100 0x40>;
ranges = <0x3 0x0 0x3000 0x1
0x4 0x0 0x4000 0x1>;

p...@3,0 {
compatible = "fsl,tr5000v2-pata", "ata-generic";
reg = <0x3 0x0 0x10 0x4 0x0 0x10>;
reg-shift = <1>;
pio-mode = <3>;
// interrupts = <23 0x8>;
// interrupt-parent = <&PIC>;
};
};


Here are some of the related CONFIG items:
#
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
CONFIG_OF_DEVICE=y
CONFIG_OF_I2C=y
CONFIG_OF_SPI=y
CONFIG_OF_GPIO=y
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_BLK_DEV_HD is not set
# CONFIG_MISC_DEVICES is not set
#CONFIG_HAVE_IDE=y
#CONFIG_IDE=y

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y
CONFIG_ATA=y
CONFIG_ATA_SFF=y
CONFIG_PATA_PLATFORM=y
CONFIG_PATA_OF_PLATFORM=y

Here is the output at console:

Kernel command line: console=ttyCPM0,38400 root=/dev/nfs rw
nfsroot=10.15.34.196
:/home/lyao01/work/target_idu_nccv3
ip=172.20.16.150:10.15.34.196:172.20.16.1:25
5.255.255.0:tr5000v2:eth0ff
..
NET: Registered protocol family 16
SCSI subsystem initialized
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
NTFS driver 2.1.29 [Flags: R/O].
msgmni has been set to 119
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered (default)
f0011a80.serial: ttyCPM0 at MMIO 0xc500ea80 (irq = 16) is a CPM UART
brd: module loaded
loop: module loaded
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
eth0: fs_enet: 00:00:c3:ff:7a:af
CPM2 Bitbanged MII: probed
ata_host_alloc: ENTER
ata_port_alloc: ENTER
__ata_port_freeze: ata4294967295 port frozen
scsi0 : pata_platform
ata1: PATA max PIO3 no IRQ, using PIO polling mmio cmd 0x3000 ctl
0x4000
ata_host_register: probe begin
ata_port_schedule_eh: port EH scheduled
ata_scsi_error: ENTER
ata_port_flush_task: ENTER
ata_eh_link_autopsy: ENTER
ata_eh_recover: ENTER
__ata_port_freeze: ata1 port frozen
ata_sff_softreset: ENTER
ata_sff_softreset: about to softreset, devmask=0
ata_bus_softreset: ata1: bus reset via SRST
ata_sff_softreset: EXIT, classes[0]=9 [1]=9
ata_eh_thaw_port: ata1 port thawed
ata_std_postreset: ENTER
ata_std_postreset: EXIT
ata_sff_postreset: EXIT, no device
ata_eh_revalidate_and_attach: ENTER
ata_eh_recover: EXIT, rc=0
ata_scsi_error: EXIT
ata_host_register: host probe begin
TCP cubic registered
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
ics1893_config_init() successful
ADDRCONF(NETDEV_UP): eth0: link is not ready
ics1893_config_init() successful
IP-Config: Complete:
device=eth0, addr=172.20.16.150, mask=255.255.255.0, gw=172.20.16.1,
host=tr5000v2, domain=, nis-domain=(none),
bootserver=10.15.34.196, rootserver=10.15.34.196, rootpath=
Looking up port of RPC 13/2 on 10.15.34.196
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Looking up port of RPC 15/1 on 10.15.34.196
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 164k init
### Application running ...
#


The San Disk Compact Flash is not discovered.

I appreciate any insights or suggestions.

Lixin Yao
Harris Stratex Networks Inc
RTP, North Carolina, USA

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