[U-Boot] [PATCH 08/11 v1] ARM: OMAP3: Add I2C and network support

Ben Warren biggerbadderben at gmail.com
Fri Sep 26 09:27:34 CEST 2008


Dirk Behme wrote:
> Ben Warren wrote:
>> dirk.behme at googlemail.com wrote:
>>
>>> Subject: [PATCH 08/11 v1] ARM: OMAP3: Add I2C and network support
>>>
>>> From: Dirk Behme <dirk.behme at gmail.com>
>>>
>>> Add I2C and network support
>>>
>>>   
>>
>> I2C and network bits are kinda unrelated, don't you think?
>> <snip>
>
> Ben: Yes, you are right ;) The OMAP3 patch is ~300k and I tried to put 
> this in as less patches as possible while having no patch > 40k. This 
> resulted in some more or less unrelated code in one patch. Alternative 
> would be to have more than the ~11 patches at the list we already have.
>
>>> Index: u-boot_master/net/eth.c
>>> ===================================================================
>>> --- u-boot_master.orig/net/eth.c
>>> +++ u-boot_master/net/eth.c
>>> @@ -508,7 +508,7 @@ extern int emac4xx_miiphy_initialize(bd_
>>>  extern int mcf52x2_miiphy_initialize(bd_t *bis);
>>>  extern int ns7520_miiphy_initialize(bd_t *bis);
>>>  extern int davinci_eth_miiphy_initialize(bd_t *bis);
>>> -
>>> +extern int eth_init(bd_t *bd);
>>>  
>>>  int eth_initialize(bd_t *bis)
>>>  {
>>> @@ -532,6 +532,9 @@ int eth_initialize(bd_t *bis)
>>>  #if defined(CONFIG_DRIVER_TI_EMAC)
>>>      davinci_eth_miiphy_initialize(bis);
>>>  #endif
>>> +#if defined(CONFIG_DRIVER_SMC911X)
>>> +    eth_init(bis);
>>>   
>>
>> This isn't the right place to call eth_init(). I know the namespaces 
>> are pretty convoluted, but the eth_initialize() family of functions 
>> are intended to do things like register devices, initialize data 
>> structures etc. without actually enabling the device. eth_init() 
>> enables a device. The SMC911X driver doesn' t have such a thing, 
>> which is why none of the other boards that use this chip have 
>> anything in this file.
>
> Mani, Steve: Any comments on this?
>
> Ben: Any hint where in existing code it is done right to take this as 
> example?
>
eth_init() will get called in NetLoop() (net/net.c) whenever you send a 
packet.  You should never have to call it explicitly.  There doesn't 
appear to be a separate driver initialization for this controller.
> Thanks
>
> Dirk
regards,
Ben


More information about the U-Boot mailing list