Subject: Re: some problems on the SystemACE driver.

From: Ameet Patil <[email-masked]>
Date: Thu, 13 Jul 2006 17:16:18 +0100

Hi Ming,
Instead of bouncing emails to and forth, lets do all at one place:

1. Which TEMAC patch are you using?
(http://source.mvista.com/~ank/paulus-powerpc/20060309/ppc32_xilinx_edk_temac.patch)
2. After applying the patch, is the driver getting compiled directly
without having to select it via "make menuconfig"?
3. I don't see a Makefile in the drivers/net/xilinx_temac/ folder?

Ofcourse, I can work my way to compile the driver. But is there any doc.
present explaining this?

-Ameet

Ming Liu wrote:
> Dear Ameet,
> Unfortunately, I tried the new patch and the same problem happened. Here 
> is the information:
> 
>  CC      drivers/xilinx_edk/xdmav2_simple.o
>  LD      drivers/xilinx_edk/built-in.o
>  LD      drivers/built-in.o
> drivers/xilinx_edk/built-in.o(.sdata+0x0): In function `XAssert':
> drivers/xilinx_edk/xbasic_types.c:105: multiple definition of 
> `XWaitInAssert'
> drivers/block/built-in.o(.sdata+0x4):drivers/block/rd.c:103: first 
> defined here
> drivers/xilinx_edk/built-in.o(.sbss+0x4): In function `XAssert':
> drivers/xilinx_edk/xbasic_types.c:105: multiple definition of 
> `XAssertStatus'
> drivers/block/built-in.o(.sbss+0x3c):include/asm-generic/bitops/non-atomic.h:108 
> 
> 
> : first defined here
> drivers/xilinx_edk/built-in.o(.text+0x44): In function 
> `XAssertSetCallback':
> drivers/xilinx_edk/xbasic_types.c:134: multiple definition of 
> `XAssertSetCallbac
> k'
> drivers/block/built-in.o(.text+0x38d0):drivers/block/xilinx_sysace/xbasic_types. 
> 
> 
> c:117: first defined here
> drivers/xilinx_edk/built-in.o(.text+0x0): In function `XAssert':
> drivers/xilinx_edk/xbasic_types.c:105: multiple definition of `XAssert'
> drivers/block/built-in.o(.text+0x388c):drivers/block/xilinx_sysace/xbasic_types. 
> 
> 
> c:87: first defined here
> drivers/xilinx_edk/built-in.o(.text+0x50): In function `XNullHandler':
> drivers/xilinx_edk/xbasic_types.c:153: multiple definition of 
> `XNullHandler'
> drivers/block/built-in.o(.text+0x38dc):drivers/block/xilinx_sysace/xbasic_types. 
> 
> 
> c:136: first defined here
> make[1]: *** [drivers/built-in.o] Error 1
> make: *** [drivers] Error 2
> 
> This time I only tried on linux 2.6.17.1 version. Please check again and 
> modify it. Thank you.
> 
> Regards
> Ming
> 
> 
>> From: Ameet Patil <[email-masked]>
>> To: Ming Liu <[email-masked]>
>> CC: [email-masked],  [email-masked]
>> Subject: Re: some problems on the SystemACE driver.
>> Date: Wed, 12 Jul 2006 19:22:08 +0100
>>
>> Hi Ming,
>>    Thanks for testing the driver patch! The errors you get when
>> compiling both - SysAce and TEMAC are reasonable. My ignorance or call
>> it me being lazy. I recollect now... I was also working on the Xilinx
>> Ethernet driver and forgot to cleanup that code before creating the
>> patch for the SysAce driver. Thus, it so happens that code for the
>> ethernet driver in my patch also gets compiled along with the TEMAC. I
>> have deleted the unnecessary code files and updated the patch (name
>> changed). Find the new one here:
>> https://www.cs.york.ac.uk/rtslab/demos/amos/xupv2pro/patches/linuxppc-2.6.17.1-sysace-1.1.patch 
>>
> 
>>
>> Let me know if it works for you now?
>>
>> -Ameet
>>
>> Ming Liu wrote:
>> > Dear Ameet (and Andrei),
>> > I have tested the new patch for SystemACE driver. With respect to the
>> > single SystemACE driver, it works well. I can boot my linux in ML403
>> > board. (I tried both 2.6.16-rc5 and 2.6.17.1 versions) So first
>> > congratulations and thanks for your hard work!
>> >
>> > However, when I tried to implemented Temac (with and without SystemACE.
>> > TWO conditions.), some errors happened. Here is the compilation
>> > information:
>> >
>> >  CC      init/do_mounts.o
>> >  LD      init/mounts.o
>> >  CC      init/initramfs.o
>> >  LD      init/built-in.o
>> >  LD      .tmp_vmlinux1
>> > drivers/built-in.o(.sdata+0x2c): multiple definition of `XWaitInAssert'
>> > arch/ppc/platforms/4xx/built-in.o(.sdata+0x0): first defined here
>> > drivers/built-in.o(.text+0x3e480): In function 
> `XPacketFifoV200a_WriteDre':
>> > : multiple definition of `XPacketFifoV200a_WriteDre'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x1b14): first defined here
>> > drivers/built-in.o(.text+0x3e158): In function 
> `XPacketFifoV200a_SelfTest':
>> > : multiple definition of `XPacketFifoV200a_SelfTest'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x17ec): first defined here
>> > drivers/built-in.o(.sbss+0x18c): multiple definition of `XAssertStatus'
>> > arch/ppc/platforms/4xx/built-in.o(.sbss+0x8): first defined here
>> > drivers/built-in.o(.text+0x3e798): In function 
> `XPacketFifoV200a_L0Write':
>> > : multiple definition of `XPacketFifoV200a_L0Write'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x1e2c): first defined here
>> > drivers/built-in.o(.text+0x3e280): In function `XPacketFifoV200a_Read':
>> > : multiple definition of `XPacketFifoV200a_Read'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x1914): first defined here
>> > drivers/built-in.o(.text+0x3e55c): In function 
> `XPacketFifoV200a_L0Read':
>> > : multiple definition of `XPacketFifoV200a_L0Read'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x1bf0): first defined here
>> > drivers/built-in.o(.text+0x3e380): In function 
> `XPacketFifoV200a_Write':
>> > : multiple definition of `XPacketFifoV200a_Write'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x1a14): first defined here
>> > drivers/built-in.o(.text+0x3e0cc): In function `XAssertSetCallback':
>> > : multiple definition of `XAssertSetCallback'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x44): first defined here
>> > drivers/built-in.o(.text+0x3e9fc): In function
>> > `XPacketFifoV200a_L0WriteDre':
>> > : multiple definition of `XPacketFifoV200a_L0WriteDre'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x2090): first defined here
>> > drivers/built-in.o(.text+0x3e0dc): In function
>> > `XPacketFifoV200a_Initialize':
>> > : multiple definition of `XPacketFifoV200a_Initialize'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x1770): first defined here
>> > drivers/built-in.o(.text+0x3e088): In function `XAssert':
>> > : multiple definition of `XAssert'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x0): first defined here
>> > drivers/built-in.o(.text+0x3e0d8): In function `XNullHandler':
>> > : multiple definition of `XNullHandler'
>> > arch/ppc/platforms/4xx/built-in.o(.text+0x50): first defined here
>> > make: *** [.tmp_vmlinux1] Error 1
>> >
>> > It looks like that your patch affect some symbols which are used by
>> > Temac. (When I use the old patch for SystemACE, there is no problem 
> like
>> > this if I only choose Temac. ) So let's find out the problem together.
>> > Also, I don't know if this is a problem from SystemACE or Temac , I
>> > would like to invite Andrei to look at this altogether. If any
>> > suggestion, please feel free to announce. Thanks for both your help.
>> > Regards
>> > Ming
>> >
>> >
>> >
>> >> From: Ameet Patil <[email-masked]>
>> >> To: Ming Liu <[email-masked]>
>> >> CC: [email-masked]
>> >> Subject: Re: some problems on the SystemACE driver.
>> >> Date: Wed, 12 Jul 2006 10:54:13 +0100
>> >>
>> >> Hi Ming,
>> >>
>> >> > I heard that you have tested this driver. Have you got this problem?
>> >> > Why there are so many strange problems for me while you have tested
>> >> > without problem?
>> >>
>> >> Yes, that is right! When I say... I have tested - "it really means I
>> >> have tested". So what's the problem? It works for me but not you? The
>> >> obvious difference: mine is a ML300 configuration and yours ML403.
>> >>
>> >> There were some files which unknowing were made dependant on ML300
>> >> target. I have now made them compile for both targets. It should work
>> >> fine for you now (Hopefully!). Download the updated patch from the 
> same
>> >> location.
>> >>
>> >> 
> http://www.cs.york.ac.uk/rtslab/demos/amos/xupv2pro/patches/linuxppc-2.6.17_sysace.patch 
> 
> 
>> >>
>> >
>> >>
>> >> Since I don't have ML403 board, theres no way I can test this patch on
>> >> it. I rely on you in doing this... and thanks for letting me know the
>> >> issues.
>> >>
>> >> WARNING: There might be more issues. :-)
>> >>
>> >> Please DONOT hesitate to raise any issues with the driver. I am more
>> >> than happy to fix them.
>> >>
>> >> -Ameet
>> >>
>> >> Ming Liu wrote:
>> >> > Dear Ameet,
>> >> > Sorry to bother you again but I am totally confused on the systemACE
>> >> > driver. First let me show you the problem.
>> >> >
>> >> > 1. I downloaded the linux kernel of 2.6.17.1, also the patch for
>> >> > SystemACE driver. Applied the patch to the kernel. Replaced the
>> >> > xparameters_ml403.h with the generated file xparameters_ml300.h from
>> >> > Xilinx EDK. Make menuconfig, make dep and make zImage. Then the 
> error
>> >> > shows like this:
>> >> >
>> >> > drivers/block/xilinx_sysace/xsysace.c:120:6: warning:
>> >> > "XPAR_XSYSACE_MEM_WIDTH" is not defined
>> >> > drivers/block/xilinx_sysace/xsysace.c: In function
>> > `XSysAce_LookupConfig':
>> >> > drivers/block/xilinx_sysace/xsysace.c:366: error:
>> >> > `XPAR_XSYSACE_NUM_INSTANCES' undeclared (first use in this function)
>> >> > drivers/block/xilinx_sysace/xsysace.c:366: error: (Each undeclared
>> >> > identifier is reported only once
>> >> > drivers/block/xilinx_sysace/xsysace.c:366: error: for each function 
> it
>> >> > appears in.)
>> >> > make[3]: *** [drivers/block/xilinx_sysace/xsysace.o] Error 1
>> >> > make[2]: *** [drivers/block/xilinx_sysace] Error 2
>> >> > make[1]: *** [drivers/block] Error 2
>> >> > make: *** [drivers] Error 2
>> >> >
>> >> > I think this is because of the no inclusion of the xparameters 
> header
>> >> > file. So I change #include "xparameters.h" into  #include "
>> >> >
>> > 
> /home/mingliu/linux-2.6.17.1/arch/ppc/platforms/4xx/xparameters/xparameters.h" 
> 
> 
>> >
>> >
>> >> > in the files of xsysace.c and xsysace_g.c, using the full address to
>> >> > specify the header file. In fact, this is not a serious problem and 
> it
>> >> > often happens. But, after the modification, another problem 
> happened:
>> >> >  GEN     .version
>> >> >  CHK     include/linux/compile.h
>> >> >  UPD     include/linux/compile.h
>> >> >  CC      init/version.o
>> >> >  LD      init/built-in.o
>> >> >  LD      .tmp_vmlinux1
>> >> > drivers/built-in.o(.text+0x2234a): In function `XSysAce_GetCfgAddr':
>> >> > : undefined reference to `XAssertStatus'
>> >> > drivers/built-in.o(.text+0x2235e): In function `XSysAce_GetCfgAddr':
>> >> > : undefined reference to `XAssertStatus'
>> >> > drivers/built-in.o(.text+0x22364): In function `XSysAce_GetCfgAddr':
>> >> > : undefined reference to `XAssert'
>> >> > drivers/built-in.o(.text+0x22372): In function `XSysAce_GetCfgAddr':
>> >> > : undefined reference to `XAssertStatus'
>> >> > drivers/built-in.o(.text+0x2237a): In function `XSysAce_GetCfgAddr':
>> >> > : undefined reference to `XAssertStatus'
>> >> > drivers/built-in.o(.text+0x22394): In function `XSysAce_GetCfgAddr':
>> >> > : undefined reference to `XAssert'
>> >> > drivers/built-in.o(.text+0x223a2): In function `XSysAce_GetCfgAddr':
>> >> > : undefined reference to `XAssertStatus'
>> >> > drivers/built-in.o(.text+0x223aa): In function `XSysAce_GetCfgAddr':
>> >> > : undefined reference to `XAssertStatus'
>> >> > drivers/built-in.o(.text+0x22cd6): In function `XSysAce_Initialize':
>> >> > : undefined reference to `XAssertStatus'
>> >> > drivers/built-in.o(.text+0x22cdc): In function `XSysAce_Initialize':
>> >> > : undefined reference to `XAssert'
>> >> > drivers/built-in.o(.text+0x22cea): In function `XSysAce_Initialize':
>> >> > : undefined reference to `XAssertStatus'
>> >> >
>> >> > ......( a long information to say that undefined reference to the
>> >> > XAssert things.)
>> >> >
>> >> > Also, I tried this in the kernel 2.6.16-rc5. (In fact I prefer this
>> >> > version because the temac driver is for this version. ) The same
>> > problem
>> >> > happened. I checked the source code. The problem happened in the 
> file
>> >> > driver/block/xilinx_sysace/adapter.c, etc. Also, the XAssert things 
> are
>> >> > defined in the file 
> arch/ppc/platforms/4xx/xilinx_ocp/xbasic_types.c.
>> >> > (In 2.6.16 kernel, it is also defined in
>> >> > driver/xilinx_edk/xbasic_types.c. There are two copies of this file. 
> )
>> > I
>> >> > think the problem is, the systemACE files cannot link together with 
> the
>> >> > xbasic_types.c file.
>> >> > I heard that you have tested this driver. Have you got this problem?
>> > Why
>> >> > there are so many strange problems for me while you have tested 
> without
>> >> > problem? Without the CF card, I cannot try the Temac driver and my 
> work
>> >> > is totally blocked. So I have to ask for your suggestion. Really
>> > anxious
>> >> > for your useful guidance. Thanks a lot!!!!!!
>> >> >
>> >> > Regards
>> >> > Ming
>> >> >
>> >> > _________________________________________________________________
>> >> > 与联机的朋友进行交流，请使用 MSN Messenger:
>> > http://messenger.msn.com/cn
>> >> >
>> >
>> > _________________________________________________________________
>> > 免费下载 MSN Explorer:   http://explorer.msn.com/lccn/
>> >
> 
> _________________________________________________________________
> 免费下载 MSN Explorer:   http://explorer.msn.com/lccn/ 
>