Re: Can not get PATA to work for Compact Flash with 2.6.28 kernel
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
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
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
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
> > 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
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
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
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
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