From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Warren Date: Mon, 23 Feb 2009 10:29:17 -0800 Subject: [U-Boot] [PATCH 1/1] net: Add Xilinx LL Temac driver version2 In-Reply-To: <49A2A9EB.6030402@monstr.eu> References: <1233486999-6223-1-git-send-email-monstr@monstr.eu> <49A24604.5050207@gmail.com> <49A2A9EB.6030402@monstr.eu> Message-ID: <49A2EAFD.9000306@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Michal, Michal Simek wrote: >> All of the above mentioned issues are ones that I could easily deal >> with, but one thing that really does need to change is that you need to >> use the CONFIG_NET_MULTI API. In other words, your driver should have a >> single initialize() function (prototyped in include/netdev.h), and an >> eth_device struct that gets registered. All your access functions >> (eth_init, eth_send, eth_recv etc.) will be static and pointed to by the >> eth_device struct. Most drivers are already this way. >> > > I look at it and I did some change and the main problem is in Microblaze GCC. > We use GCC 3.4.1 and CONFIG_NET_MULTI use weak function and board_eth_init is > never called. We are working on GCC 4.1.2 but I don't know when I get it. > > According to the documentation I could find, weak symbols were present in gcc 3.4.1. Are you sure you're using them properly? Due to the way linking is performed in U-boot, any weak symbol overrides need to be in source files that have strongly linked symbols. You'll see that all implementations of cpu_eth_init() and board_eth_init() are in files that already contain stuff that is sure to be linked. > I have two more Xilinx eth drivers in U-BOOT and I think that will be the best > to do all changes together. What do you think? > > Thanks, > Michal > > If you're really unable to make this change due to your tools, I'm not opposed to pulling this driver in. I just want to know that you intend to port all the Xilinx drivers over some time in the near future. regards, Ben