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 0x30000000 0x10000    
                0x4 0x0 0x40000000 0x10000>;  

      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 0x30000000 ctl
0x4000000c
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 100003/2 on 10.15.34.196
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Looking up port of RPC 100005/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 0x00000098 - you might think it should be 0x00000080 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 = <0x00000001 0x00000000 0x00000020 0x00000001 0x00000098
0x00000004>;
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

Reply via email to