Andy, Kumar Thank you for your help! GDAtech only give me linux-2.4.27 binary file for RMC-G8500 card, I try to port 2.6.13 for that card myself.
Today, I download linux-2.6.13.tar.bz2 and patch-2.6.14-rc5.bz2 from kernel.org. I download http://lwn.net/Articles/146253/ "Patch: Gianfar PHY Layer Update". I download http://ozlabs.org/pipermail/linuxppc-embedded/2005-October/020593.html "[PATCH] 85xx PHY Platform Update" I patch and build them together get a linux 2.6.14-rc5 for MPC8540, try it on RMC-G8500 card U-Boot 1.1.1 (Aug 10 2004 - 11:01:21) Motorola PowerPC ProcessorID=00000000 Rev. PVR=80200020 Board: GDA Technologies RMC-G8500 [PowerQUICC III] CPU: 825 MHz CCB: 330 MHz DDR: 165 MHz LBC: 82 MHz L1 D-cache 32KB, L1 I-cache 32KB enabled. I2C: ready DRAM: 256 MB 8540 in PCI Host Mode. 8540 is the PCI Arbiter. FLASH: 8 MB L2 cache enabled: 256KB In: serial Out: serial Err: serial Net: MOTO ETHERNET Hit any key to stop autoboot: 0 RMCG8500#>tftp 200000 uImage; tftp 400000 your.ramdisk.u-boot; bootm 200000 400000 Using MOTO ETHERNET device TFTP from server 192.96.134.135; our IP address is 192.96.134.136 Filename 'uImage'. Load address: 0x200000 Loading: ################################################################# ################################################################# ################################################################# ################################ done Bytes transferred = 1159376 (11b0d0 hex) Using MOTO ETHERNET device TFTP from server 192.96.134.135; our IP address is 192.96.134.136 Filename 'your.ramdisk.u-boot'. Load address: 0x400000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ######################################## done Bytes transferred = 3530818 (35e042 hex) ## Booting image at 00200000 ... Image Name: Linux-2.6.14-rc5 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 1159312 Bytes = 1.1 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Loading RAMDisk Image at 00400000 ... Image Name: zzz ppc ramdisk Image Type: PowerPC Linux RAMDisk Image (gzip compressed) Data Size: 3530754 Bytes = 3.4 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Loading Ramdisk to 0fc54000, end 0ffb2002 ... OK Memory CAM mapping: CAM0=256Mb, CAM1=0Mb, CAM2=0Mb residual: 0Mb Linux version 2.6.14-rc5 (root at ppclinux) (gcc version 3.3.3 (Yellow Dog Linux 3.3.3-16.ydl.4)) #1 Mon Oct 24 13:22:56 EDT 2005 Built 1 zonelists Kernel command line: console=ttyS0,115200 root=/dev/ram rw doPci=1 OpenPIC Version 1.2 (1 CPUs and 60 IRQ sources) at fcfbb000 PID hash table entries: 2048 (order: 11, 32768 bytes) Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Memory: 253440k available (1904k kernel code, 516k data, 132k init, 0k highmem) Mount-cache hash table entries: 512 checking if image is initramfs...it isn't (no cpio magic); looks like an initrd softlockup thread 0 started up. Freeing initrd memory: 3448k freed NET: Registered protocol family 16 PCI: Probing PCI hardware Generic PHY: Registered new driver SCSI subsystem initialized Generic RTC Driver v1.07 i8042.c: i8042 controller self test timeout. Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled ttyS0 at MMIO 0xfdf04500 (irq = 26) is a 16550A ttyS1 at MMIO 0xfdf04600 (irq = 26) is a 16550A io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered RAMDISK driver initialized: 16 RAM disks of 32768K size 1024 blocksize loop: loaded (max 8 devices) Gianfar MII Bus: probed !!STOP HERE > >On Oct 23, 2005, at 10:39, info wrote: > >> Junita >> >> Sorry to disturbed you. I find your question in the http:// >> ozlabs.org mail list. >> Have you fixed the bug in gianfar_phy.c? >> tempval = gfar_read(&priv-> regs-> dmactrl); >> tempval |= (DMACTRL_GRS | DMACTRL_GTS); >> gfar_write(&priv-> regs-> dmactrl, tempval); >> >> while (!(gfar_read(&priv-> regs-> ievent) & (IEVENT_GRSC | >> IEVENT_GTSC))) >> cpu_relax(); >> >> /* Reset MAC layer */ >> gfar_write(&priv-> regs-> maccfg1, MACCFG1_SOFT_RESET); > > >I'm a bit confused by the statement above. The code you present is >from gianfar.c, and is certainly not a bug. It is possible you are >using an older version of the code, which has a bug, which is fixed >by adding these lines above the code you show: > > tempval = gfar_read(&priv->regs->dmactrl); > tempval &= ~(DMACTRL_GRS | DMACTRL_GTS); > gfar_write(&priv->regs->dmactrl, tempval); > >This fixes a problem where setting GRS and GTS when they're already >set doesn't initiate the graceful stop. But if you are using 2.6.13, >you should have this fix. I suspect that, like I told Junita, you >need to make sure the platform code has the right CCSRBAR value set up. > >> >> I buy a RMC-G8500 card from GDAtech, I try to build linux-2.6.13.4 >> from kernel.org and meet the same problems as you had. I test the >> same code on freescale 8540_ADS board, it is good.Can you share >> some infomation of your progress? > > >I'm not familiar with this card. Are you sure there's support for it >in your source tree? > > >Andy Fleming > >. >You need the corresponding patches that are in the netdev tree for >the PHY subsystem. >- kumar >On Oct 24, 2005, at 9:49 AM, info wrote: > Andy, Kumar > > I try this patch for RMC-G8500 from GDAtech, error message below: > ---------------------------------------------------------------------- > ----------- > [root at ppclinux linux-2.6.13]# make uImage > CHK include/linux/version.h > CHK include/linux/compile.h > CHK usr/initramfs_list > CC drivers/net/gianfar.o > drivers/net/gianfar.c: In function `gfar_probe': > drivers/net/gianfar.c:217: error: structure has no member named > `phy_reg_addr' > drivers/net/gianfar.c: In function `init_phy': > drivers/net/gianfar.c:452: error: structure has no member named > `phyid' > drivers/net/gianfar.c: In function `stop_gfar': > drivers/net/gianfar.c:636: error: structure has no member named > `interruptPHY' > drivers/net/gianfar.c: In function `gfar_phy_startup_timer': > drivers/net/gianfar.c:1818: error: structure has no member named > `interruptPHY' > drivers/net/gianfar.c:1826: error: structure has no member named > `interruptPHY' > make[2]: *** [drivers/net/gianfar.o] Error 1 > make[1]: *** [drivers/net] Error 2 > make: *** [drivers] Error 2 > > ---------------------------------------------------------------------- > ----------- > because??? > > /* Internal interrupts are all Level Sensitive, and Positive > Polarity */ > diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h > --- a/include/linux/fsl_devices.h > +++ b/include/linux/fsl_devices.h > @@ -47,14 +47,19 @@ > struct gianfar_platform_data { > /* device specific information */ > u32 device_flags; > - u32 phy_reg_addr; > > /* board specific information */ > u32 board_flags; > - u32 phy_flags; > - u32 phyid; > - u32 interruptPHY; > + const char *bus_id; > u8 mac_addr[6]; > +}; > + > > > ---------------------------------------------------------------------- > --------------------- > <This patch updates the 85xx platform code to support the new PHY > Layer. > < > <Signed-off-by: Andy Fleming <afleming at freescale.com> > <Signed-off-by: Kumar Gala <Kumar.gala at freescale.com> > < > < > <diff --git a/arch/ppc/platforms/85xx/mpc8540_ads.c b/arch/ppc/ > platforms/85xx/mpc8540_ads.c > <--- a/arch/ppc/platforms/85xx/mpc8540_ads.c > <+++ b/arch/ppc/platforms/85xx/mpc8540_ads.c > <@@ -53,6 +53,10 @@ > < > < #include <syslib/ppc85xx_setup.h> > < > <+static const char *GFAR_PHY_0 = "phy0:0"; > <+static const char *GFAR_PHY_1 = "phy0:1"; > <+static const char *GFAR_PHY_3 = "phy0:3"; > <+ > < /* > ********************************************************************** > ** > < * > < * Setup the architecture > <@@ -64,6 +68,7 @@ mpc8540ads_setup_arch(void) > > > > _______________________________________________ > Linuxppc-embedded mailing list > Linuxppc-embedded at ozlabs.org > https://ozlabs.org/mailman/listinfo/linuxppc-embedded >