* [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support @ 2015-01-16 0:10 Murali Karicheri [not found] ` <1421367007-19744-1-git-send-email-m-karicheri2-l0cyMroinI0@public.gmane.org> 0 siblings, 1 reply; 14+ messages in thread From: Murali Karicheri @ 2015-01-16 0:10 UTC (permalink / raw) To: davem-fT/PcQaiUtIeIZ0/mPfg9Q, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA Cc: Murali Karicheri The Network Coprocessor (NetCP) is a hardware accelerator that processes Ethernet packets. NetCP has a gigabit Ethernet (GbE) subsystem with a ethernet switch sub-module to send and receive packets. NetCP also includes a packet accelerator (PA) module to perform packet classification operations such as header matching, and packet modification operations such as checksum generation. NetCP can also optionally include a Security Accelerator(SA) capable of performing IPSec operations on ingress/egress packets. Keystone SoC's also have a 10 Gigabit Ethernet Subsystem (XGbE) which includes a 3-port Ethernet switch sub-module capable of 10Gb/s and 1Gb/s rates per Ethernet port. Both GBE and XGBE network processors supported using common driver. It is also designed to handle future variants of NetCP. version history --------------- v7->v8 - Reworked comments against v7, related to checker warning. - Patch 2/4 that has all of the driver code in v7 is now split into 3 patches based on functionality so that we have 3 smaller patches review instead of a big patch. - Patch for MAINTAINER is merged to 2/4 along with netcp core driver - Separate patch (3/4) for 1G and (4/4) for 10G - Removed big endian support for initial version (will add it later) v6->v7 - Fixed some minor documentation error and also modified the netcp driver to fix the set* functions to include correct le/be macros. v5->v6 - updated version after incorporating comments [6] from David Miller, David Laight & Geert Uytterhoeven on v5. I would like get this in for v3.19 merge window if the latest version is acceptable. v4->v5 - Sorry to spin v5 quickly but I missed few check-patch warnings which were pointed by Joe Perches(thanks). I folded his changes [5] along with few more check-patch warning fixes. I would like get this in for v3.18 merge window if David is happy with this version. v3->v4 - Couple of fixes in in error path as pointed [4] out by David. Rest of the patches are unchanged from v3. v2->v3 - Update v3 after incorporating Jamal and David Miller's comment/suggestion from earlier versions [1] [2]. After per the discussion here [3], the controversial custom exports have been dropped now. And for future future offload support additions, we will plug into generic frameworks as an when they are available. Murali Karicheri (2): Documentation: dt: net: Add binding doc for Keystone NetCP ethernet driver net: netcp: Add Keystone NetCP core ethernet driver Wingman Kwok (2): net: netcp: Add Keystone NetCP GbE driver net: netcp: Enhance GBE driver to support 10G Ethernet Cc: David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Cc: Santosh Shilimkar <santosh.shilimkar-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org> Cc: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org> Cc: Ian Campbell <ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org> Cc: Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> .../devicetree/bindings/net/keystone-netcp.txt | 197 ++ MAINTAINERS | 7 + drivers/net/ethernet/ti/Kconfig | 11 + drivers/net/ethernet/ti/Makefile | 4 + drivers/net/ethernet/ti/netcp.h | 229 +++ drivers/net/ethernet/ti/netcp_core.c | 2141 +++++++++++++++++++ drivers/net/ethernet/ti/netcp_ethss.c | 2156 ++++++++++++++++++++ drivers/net/ethernet/ti/netcp_sgmii.c | 131 ++ drivers/net/ethernet/ti/netcp_xgbepcsr.c | 501 +++++ 9 files changed, 5377 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/keystone-netcp.txt create mode 100644 drivers/net/ethernet/ti/netcp.h create mode 100644 drivers/net/ethernet/ti/netcp_core.c create mode 100644 drivers/net/ethernet/ti/netcp_ethss.c create mode 100644 drivers/net/ethernet/ti/netcp_sgmii.c create mode 100644 drivers/net/ethernet/ti/netcp_xgbepcsr.c [1] https://lkml.org/lkml/2014/4/22/805 [2] https://lkml.org/lkml/2014/8/15/218 [3] https://lkml.org/lkml/2014/9/11/691 [4] https://lkml.org/lkml/2014/9/15/403 [5] https://lkml.org/lkml/2014/9/25/332 [6] https://lkml.org/lkml/2014/9/29/639 -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <1421367007-19744-1-git-send-email-m-karicheri2-l0cyMroinI0@public.gmane.org>]
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support [not found] ` <1421367007-19744-1-git-send-email-m-karicheri2-l0cyMroinI0@public.gmane.org> @ 2015-01-19 20:11 ` David Miller [not found] ` <20150119.151106.822126941934010309.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org> 0 siblings, 1 reply; 14+ messages in thread From: David Miller @ 2015-01-19 20:11 UTC (permalink / raw) To: m-karicheri2-l0cyMroinI0 Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA From: Murali Karicheri <m-karicheri2-l0cyMroinI0@public.gmane.org> Date: Thu, 15 Jan 2015 19:10:03 -0500 > The Network Coprocessor (NetCP) is a hardware accelerator that processes > Ethernet packets. NetCP has a gigabit Ethernet (GbE) subsystem with a ethernet > switch sub-module to send and receive packets. NetCP also includes a packet > accelerator (PA) module to perform packet classification operations such as > header matching, and packet modification operations such as checksum > generation. NetCP can also optionally include a Security Accelerator(SA) > capable of performing IPSec operations on ingress/egress packets. > > Keystone SoC's also have a 10 Gigabit Ethernet Subsystem (XGbE) which > includes a 3-port Ethernet switch sub-module capable of 10Gb/s and > 1Gb/s rates per Ethernet port. > > Both GBE and XGBE network processors supported using common driver. It > is also designed to handle future variants of NetCP. Series applied to net-next, thanks. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <20150119.151106.822126941934010309.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>]
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support [not found] ` <20150119.151106.822126941934010309.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org> @ 2015-01-20 15:53 ` Murali Karicheri 2015-01-27 22:28 ` Arnd Bergmann 0 siblings, 1 reply; 14+ messages in thread From: Murali Karicheri @ 2015-01-20 15:53 UTC (permalink / raw) To: David Miller Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA On 01/19/2015 03:11 PM, David Miller wrote: > From: Murali Karicheri<m-karicheri2-l0cyMroinI0@public.gmane.org> > Date: Thu, 15 Jan 2015 19:10:03 -0500 > >> The Network Coprocessor (NetCP) is a hardware accelerator that processes >> Ethernet packets. NetCP has a gigabit Ethernet (GbE) subsystem with a ethernet >> switch sub-module to send and receive packets. NetCP also includes a packet >> accelerator (PA) module to perform packet classification operations such as >> header matching, and packet modification operations such as checksum >> generation. NetCP can also optionally include a Security Accelerator(SA) >> capable of performing IPSec operations on ingress/egress packets. >> >> Keystone SoC's also have a 10 Gigabit Ethernet Subsystem (XGbE) which >> includes a 3-port Ethernet switch sub-module capable of 10Gb/s and >> 1Gb/s rates per Ethernet port. >> >> Both GBE and XGBE network processors supported using common driver. It >> is also designed to handle future variants of NetCP. > > Series applied to net-next, thanks. David, Thanks a lot for applying this series. This helps us move forward to work on the next set of patches. Thanks -- Murali Karicheri Linux Kernel, Texas Instruments -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-20 15:53 ` Murali Karicheri @ 2015-01-27 22:28 ` Arnd Bergmann 2015-01-28 16:49 ` Murali Karicheri 0 siblings, 1 reply; 14+ messages in thread From: Arnd Bergmann @ 2015-01-27 22:28 UTC (permalink / raw) To: Murali Karicheri; +Cc: David Miller, devicetree, linux-kernel, netdev On Tuesday 20 January 2015 10:53:36 Murali Karicheri wrote: > On 01/19/2015 03:11 PM, David Miller wrote: > > From: Murali Karicheri<m-karicheri2@ti.com> > > Date: Thu, 15 Jan 2015 19:10:03 -0500 > > > >> The Network Coprocessor (NetCP) is a hardware accelerator that processes > >> Ethernet packets. NetCP has a gigabit Ethernet (GbE) subsystem with a ethernet > >> switch sub-module to send and receive packets. NetCP also includes a packet > >> accelerator (PA) module to perform packet classification operations such as > >> header matching, and packet modification operations such as checksum > >> generation. NetCP can also optionally include a Security Accelerator(SA) > >> capable of performing IPSec operations on ingress/egress packets. > >> > >> Keystone SoC's also have a 10 Gigabit Ethernet Subsystem (XGbE) which > >> includes a 3-port Ethernet switch sub-module capable of 10Gb/s and > >> 1Gb/s rates per Ethernet port. > >> > >> Both GBE and XGBE network processors supported using common driver. It > >> is also designed to handle future variants of NetCP. > > > > Series applied to net-next, thanks. > David, > > Thanks a lot for applying this series. This helps us move forward to > work on the next set of patches. Hi Murali, Building an ARM 'allmodconfig' kernel now runs into two separate problems from your driver: - you have two module_init() instances in one module, which conflict. - you have two files that are linked into more than one module, so building both TI_CPSW and TI_KEYSTONE_NETCP in the same kernel fails. The answer to both of these is probably to have separate loadable modules, but you might be able to come up with a different solution. Arnd ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-27 22:28 ` Arnd Bergmann @ 2015-01-28 16:49 ` Murali Karicheri 2015-01-28 17:43 ` Murali Karicheri 0 siblings, 1 reply; 14+ messages in thread From: Murali Karicheri @ 2015-01-28 16:49 UTC (permalink / raw) To: Arnd Bergmann; +Cc: David Miller, devicetree, linux-kernel, netdev On 01/27/2015 05:28 PM, Arnd Bergmann wrote: > On Tuesday 20 January 2015 10:53:36 Murali Karicheri wrote: >> On 01/19/2015 03:11 PM, David Miller wrote: >>> From: Murali Karicheri<m-karicheri2@ti.com> >>> Date: Thu, 15 Jan 2015 19:10:03 -0500 >>> >>>> The Network Coprocessor (NetCP) is a hardware accelerator that processes >>>> Ethernet packets. NetCP has a gigabit Ethernet (GbE) subsystem with a ethernet >>>> switch sub-module to send and receive packets. NetCP also includes a packet >>>> accelerator (PA) module to perform packet classification operations such as >>>> header matching, and packet modification operations such as checksum >>>> generation. NetCP can also optionally include a Security Accelerator(SA) >>>> capable of performing IPSec operations on ingress/egress packets. >>>> >>>> Keystone SoC's also have a 10 Gigabit Ethernet Subsystem (XGbE) which >>>> includes a 3-port Ethernet switch sub-module capable of 10Gb/s and >>>> 1Gb/s rates per Ethernet port. >>>> >>>> Both GBE and XGBE network processors supported using common driver. It >>>> is also designed to handle future variants of NetCP. >>> >>> Series applied to net-next, thanks. >> David, >> >> Thanks a lot for applying this series. This helps us move forward to >> work on the next set of patches. > > Hi Murali, > > Building an ARM 'allmodconfig' kernel now runs into two separate problems > from your driver: > > - you have two module_init() instances in one module, which conflict. > > - you have two files that are linked into more than one module, so building > both TI_CPSW and TI_KEYSTONE_NETCP in the same kernel fails. > > The answer to both of these is probably to have separate loadable modules, > but you might be able to come up with a different solution. Arnd, Thanks for letting us know. We will look into this. How do I reproduce this? Is there a defconfig used for allmodconfig? I am unable to find one. Any details to reproduce this will be useful. Thanks. Murali > > Arnd -- Murali Karicheri Linux Kernel, Texas Instruments ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-28 16:49 ` Murali Karicheri @ 2015-01-28 17:43 ` Murali Karicheri 2015-01-28 18:20 ` Murali Karicheri 0 siblings, 1 reply; 14+ messages in thread From: Murali Karicheri @ 2015-01-28 17:43 UTC (permalink / raw) To: Arnd Bergmann; +Cc: David Miller, devicetree, linux-kernel, netdev On 01/28/2015 11:49 AM, Murali Karicheri wrote: > On 01/27/2015 05:28 PM, Arnd Bergmann wrote: >> On Tuesday 20 January 2015 10:53:36 Murali Karicheri wrote: >>> On 01/19/2015 03:11 PM, David Miller wrote: >>>> From: Murali Karicheri<m-karicheri2@ti.com> >>>> Date: Thu, 15 Jan 2015 19:10:03 -0500 >>>> >>>>> The Network Coprocessor (NetCP) is a hardware accelerator that >>>>> processes >>>>> Ethernet packets. NetCP has a gigabit Ethernet (GbE) subsystem with >>>>> a ethernet >>>>> switch sub-module to send and receive packets. NetCP also includes >>>>> a packet >>>>> accelerator (PA) module to perform packet classification operations >>>>> such as >>>>> header matching, and packet modification operations such as checksum >>>>> generation. NetCP can also optionally include a Security >>>>> Accelerator(SA) >>>>> capable of performing IPSec operations on ingress/egress packets. >>>>> >>>>> Keystone SoC's also have a 10 Gigabit Ethernet Subsystem (XGbE) which >>>>> includes a 3-port Ethernet switch sub-module capable of 10Gb/s and >>>>> 1Gb/s rates per Ethernet port. >>>>> >>>>> Both GBE and XGBE network processors supported using common driver. It >>>>> is also designed to handle future variants of NetCP. >>>> >>>> Series applied to net-next, thanks. >>> David, >>> >>> Thanks a lot for applying this series. This helps us move forward to >>> work on the next set of patches. >> >> Hi Murali, >> >> Building an ARM 'allmodconfig' kernel now runs into two separate problems >> from your driver: >> >> - you have two module_init() instances in one module, which conflict. >> >> - you have two files that are linked into more than one module, so >> building >> both TI_CPSW and TI_KEYSTONE_NETCP in the same kernel fails. >> >> The answer to both of these is probably to have separate loadable >> modules, >> but you might be able to come up with a different solution. > Arnd, > > Thanks for letting us know. We will look into this. > > How do I reproduce this? Is there a defconfig used for allmodconfig? I > am unable to find one. Any details to reproduce this will be useful. > Ok I think I found it. I did this with next-next branch and it seems to work. I will make kernel build to reproduce this. make ARCH=arm allmodconfig make uImage; I am building it now. Murali > Thanks. > > Murali >> >> Arnd > > -- Murali Karicheri Linux Kernel, Texas Instruments ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-28 17:43 ` Murali Karicheri @ 2015-01-28 18:20 ` Murali Karicheri 2015-01-28 20:43 ` Murali Karicheri 0 siblings, 1 reply; 14+ messages in thread From: Murali Karicheri @ 2015-01-28 18:20 UTC (permalink / raw) To: Arnd Bergmann; +Cc: David Miller, devicetree, linux-kernel, netdev On 01/28/2015 12:43 PM, Murali Karicheri wrote: > On 01/28/2015 11:49 AM, Murali Karicheri wrote: >> On 01/27/2015 05:28 PM, Arnd Bergmann wrote: >>> On Tuesday 20 January 2015 10:53:36 Murali Karicheri wrote: >>>> On 01/19/2015 03:11 PM, David Miller wrote: >>>>> From: Murali Karicheri<m-karicheri2@ti.com> >>>>> Date: Thu, 15 Jan 2015 19:10:03 -0500 >>>>> >>>>>> The Network Coprocessor (NetCP) is a hardware accelerator that >>>>>> processes >>>>>> Ethernet packets. NetCP has a gigabit Ethernet (GbE) subsystem with >>>>>> a ethernet >>>>>> switch sub-module to send and receive packets. NetCP also includes >>>>>> a packet >>>>>> accelerator (PA) module to perform packet classification operations >>>>>> such as >>>>>> header matching, and packet modification operations such as checksum >>>>>> generation. NetCP can also optionally include a Security >>>>>> Accelerator(SA) >>>>>> capable of performing IPSec operations on ingress/egress packets. >>>>>> >>>>>> Keystone SoC's also have a 10 Gigabit Ethernet Subsystem (XGbE) which >>>>>> includes a 3-port Ethernet switch sub-module capable of 10Gb/s and >>>>>> 1Gb/s rates per Ethernet port. >>>>>> >>>>>> Both GBE and XGBE network processors supported using common >>>>>> driver. It >>>>>> is also designed to handle future variants of NetCP. >>>>> >>>>> Series applied to net-next, thanks. >>>> David, >>>> >>>> Thanks a lot for applying this series. This helps us move forward to >>>> work on the next set of patches. >>> >>> Hi Murali, >>> >>> Building an ARM 'allmodconfig' kernel now runs into two separate >>> problems >>> from your driver: >>> >>> - you have two module_init() instances in one module, which conflict. >>> >>> - you have two files that are linked into more than one module, so >>> building >>> both TI_CPSW and TI_KEYSTONE_NETCP in the same kernel fails. >>> >>> The answer to both of these is probably to have separate loadable >>> modules, >>> but you might be able to come up with a different solution. >> Arnd, >> >> Thanks for letting us know. We will look into this. >> >> How do I reproduce this? Is there a defconfig used for allmodconfig? I >> am unable to find one. Any details to reproduce this will be useful. >> > Ok I think I found it. > > I did this with next-next branch and it seems to work. I will make > kernel build to reproduce this. > > make ARCH=arm allmodconfig > make uImage; > > I am building it now. Arnd, I see allmodconfig configure NetCP driver as module. My uImage build from net-next branch went through fine. I am building modules right now and should show error as you have pointed out. Let me know if you any issues on how I am working to reproduce the issue (wrong branch, wrong /incomplete commands etc. I have my CROSS_COMPILE and ARCH set in my env). Want to reproduce this so as to make sure my fix is addressing this. Hope I am on the right track. Thanks Murali > > Murali >> Thanks. >> >> Murali >>> >>> Arnd >> >> > > -- Murali Karicheri Linux Kernel, Texas Instruments ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-28 18:20 ` Murali Karicheri @ 2015-01-28 20:43 ` Murali Karicheri 2015-01-28 21:03 ` Arnd Bergmann 0 siblings, 1 reply; 14+ messages in thread From: Murali Karicheri @ 2015-01-28 20:43 UTC (permalink / raw) To: Arnd Bergmann; +Cc: David Miller, devicetree, linux-kernel, netdev On 01/28/2015 01:20 PM, Murali Karicheri wrote: > On 01/28/2015 12:43 PM, Murali Karicheri wrote: >> On 01/28/2015 11:49 AM, Murali Karicheri wrote: >>> On 01/27/2015 05:28 PM, Arnd Bergmann wrote: >>>> On Tuesday 20 January 2015 10:53:36 Murali Karicheri wrote: >>>>> On 01/19/2015 03:11 PM, David Miller wrote: >>>>>> From: Murali Karicheri<m-karicheri2@ti.com> >>>>>> Date: Thu, 15 Jan 2015 19:10:03 -0500 >>>>>> >>>>>>> The Network Coprocessor (NetCP) is a hardware accelerator that >>>>>>> processes >>>>>>> Ethernet packets. NetCP has a gigabit Ethernet (GbE) subsystem with >>>>>>> a ethernet >>>>>>> switch sub-module to send and receive packets. NetCP also includes >>>>>>> a packet >>>>>>> accelerator (PA) module to perform packet classification operations >>>>>>> such as >>>>>>> header matching, and packet modification operations such as checksum >>>>>>> generation. NetCP can also optionally include a Security >>>>>>> Accelerator(SA) >>>>>>> capable of performing IPSec operations on ingress/egress packets. >>>>>>> >>>>>>> Keystone SoC's also have a 10 Gigabit Ethernet Subsystem (XGbE) >>>>>>> which >>>>>>> includes a 3-port Ethernet switch sub-module capable of 10Gb/s and >>>>>>> 1Gb/s rates per Ethernet port. >>>>>>> >>>>>>> Both GBE and XGBE network processors supported using common >>>>>>> driver. It >>>>>>> is also designed to handle future variants of NetCP. >>>>>> >>>>>> Series applied to net-next, thanks. >>>>> David, >>>>> >>>>> Thanks a lot for applying this series. This helps us move forward to >>>>> work on the next set of patches. >>>> >>>> Hi Murali, >>>> >>>> Building an ARM 'allmodconfig' kernel now runs into two separate >>>> problems >>>> from your driver: >>>> >>>> - you have two module_init() instances in one module, which conflict. >>>> >>>> - you have two files that are linked into more than one module, so >>>> building >>>> both TI_CPSW and TI_KEYSTONE_NETCP in the same kernel fails. >>>> >>>> The answer to both of these is probably to have separate loadable >>>> modules, >>>> but you might be able to come up with a different solution. >>> Arnd, >>> >>> Thanks for letting us know. We will look into this. >>> >>> How do I reproduce this? Is there a defconfig used for allmodconfig? I >>> am unable to find one. Any details to reproduce this will be useful. >>> >> Ok I think I found it. >> >> I did this with next-next branch and it seems to work. I will make >> kernel build to reproduce this. >> >> make ARCH=arm allmodconfig >> make uImage; >> >> I am building it now. > Arnd, > > I see allmodconfig configure NetCP driver as module. My uImage build > from net-next branch went through fine. I am building modules right now > and should show error as you have pointed out. Let me know if you any > issues on how I am working to reproduce the issue (wrong branch, wrong > /incomplete commands etc. I have my CROSS_COMPILE and ARCH set in my > env). Want to reproduce this so as to make sure my fix is addressing > this. Hope I am on the right track. Reproduced this. Following errors seen when building the modules. LD [M] drivers/net/ethernet/ti/keystone_netcp.o drivers/net/ethernet/ti/netcp_ethss.o: In function `init_module': netcp_ethss.c:(.init.text+0x0): multiple definition of `init_module' drivers/net/ethernet/ti/netcp_core.o:netcp_core.c:(.init.text+0x0): first defined here drivers/net/ethernet/ti/netcp_ethss.o: In function `cleanup_module': netcp_ethss.c:(.exit.text+0x0): multiple definition of `cleanup_module' drivers/net/ethernet/ti/netcp_core.o:netcp_core.c:(.exit.text+0x0): first defined here make[4]: *** [drivers/net/ethernet/ti/keystone_netcp.o] Error 1 BTW, I had to disable cpsw_ale.c to get to build keystone NetCP. I am assuming someone from TI is addressing this. drivers/net/ethernet/ti/cpsw_ale.c: In function ‘cpsw_ale_start’: drivers/net/ethernet/ti/cpsw_ale.c:759:2: error: ‘KBUILD_MODNAME’ undeclared (first use in this function) drivers/net/ethernet/ti/cpsw_ale.c:759:2: note: each undeclared identifier is reported only once for each function it appears in Murali > > Thanks > > Murali >> >> Murali >>> Thanks. >>> >>> Murali >>>> >>>> Arnd >>> >>> >> >> > > -- Murali Karicheri Linux Kernel, Texas Instruments ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-28 20:43 ` Murali Karicheri @ 2015-01-28 21:03 ` Arnd Bergmann 2015-01-28 22:40 ` Murali Karicheri 0 siblings, 1 reply; 14+ messages in thread From: Arnd Bergmann @ 2015-01-28 21:03 UTC (permalink / raw) To: Murali Karicheri; +Cc: David Miller, devicetree, linux-kernel, netdev On Wednesday 28 January 2015 15:43:57 Murali Karicheri wrote: > > this. Hope I am on the right track. > > Reproduced this. Following errors seen when building the modules. > > LD [M] drivers/net/ethernet/ti/keystone_netcp.o > drivers/net/ethernet/ti/netcp_ethss.o: In function `init_module': > netcp_ethss.c:(.init.text+0x0): multiple definition of `init_module' > drivers/net/ethernet/ti/netcp_core.o:netcp_core.c:(.init.text+0x0): > first defined here > drivers/net/ethernet/ti/netcp_ethss.o: In function `cleanup_module': > netcp_ethss.c:(.exit.text+0x0): multiple definition of `cleanup_module' > drivers/net/ethernet/ti/netcp_core.o:netcp_core.c:(.exit.text+0x0): > first defined here > make[4]: *** [drivers/net/ethernet/ti/keystone_netcp.o] Error 1 > > BTW, I had to disable cpsw_ale.c to get to build keystone NetCP. I am > assuming someone from TI is addressing this. > > drivers/net/ethernet/ti/cpsw_ale.c: In function ‘cpsw_ale_start’: > drivers/net/ethernet/ti/cpsw_ale.c:759:2: error: ‘KBUILD_MODNAME’ > undeclared (first use in this function) > drivers/net/ethernet/ti/cpsw_ale.c:759:2: note: each undeclared > identifier is reported only once for each function it appears in I think both problems are nontrivial to fix. The first one is obviously that there are multiple init_module functions in one module. You have to either split the driver into multiple loadable modules with at most one init_module/cleanup_module pair each, or call one of the functions from the other one in the right order. The second problem is where I got stuck myself: cpsw_ale.c (also cpts.c) is getting linked into both modules, which is not allowed: It is impossible for the kernel to compile these if one driver is a module and the other one is not, and any use of KBUILD_MODNAME fails because it is unclear what the modname is if the file is compiled once to be linked into two drivers. Arnd ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-28 21:03 ` Arnd Bergmann @ 2015-01-28 22:40 ` Murali Karicheri [not found] ` <54C9654C.8030407-l0cyMroinI0@public.gmane.org> 0 siblings, 1 reply; 14+ messages in thread From: Murali Karicheri @ 2015-01-28 22:40 UTC (permalink / raw) To: Arnd Bergmann, Balbi, Felipe, mugunthanvnm Cc: David Miller, devicetree, linux-kernel, netdev + Felipe, Mugunthan for commenting on TI_CPSW, ALE. On 01/28/2015 04:03 PM, Arnd Bergmann wrote: > On Wednesday 28 January 2015 15:43:57 Murali Karicheri wrote: >>> this. Hope I am on the right track. >> >> Reproduced this. Following errors seen when building the modules. >> >> LD [M] drivers/net/ethernet/ti/keystone_netcp.o >> drivers/net/ethernet/ti/netcp_ethss.o: In function `init_module': >> netcp_ethss.c:(.init.text+0x0): multiple definition of `init_module' >> drivers/net/ethernet/ti/netcp_core.o:netcp_core.c:(.init.text+0x0): >> first defined here >> drivers/net/ethernet/ti/netcp_ethss.o: In function `cleanup_module': >> netcp_ethss.c:(.exit.text+0x0): multiple definition of `cleanup_module' >> drivers/net/ethernet/ti/netcp_core.o:netcp_core.c:(.exit.text+0x0): >> first defined here >> make[4]: *** [drivers/net/ethernet/ti/keystone_netcp.o] Error 1 >> >> BTW, I had to disable cpsw_ale.c to get to build keystone NetCP. I am >> assuming someone from TI is addressing this. >> >> drivers/net/ethernet/ti/cpsw_ale.c: In function ‘cpsw_ale_start’: >> drivers/net/ethernet/ti/cpsw_ale.c:759:2: error: ‘KBUILD_MODNAME’ >> undeclared (first use in this function) >> drivers/net/ethernet/ti/cpsw_ale.c:759:2: note: each undeclared >> identifier is reported only once for each function it appears in > > I think both problems are nontrivial to fix. The first one is obviously > that there are multiple init_module functions in one module. You have > to either split the driver into multiple loadable modules with at most > one init_module/cleanup_module pair each, or call one of the functions > from the other one in the right order. I have a version that is building now with out issues. I had to make several modifications. 1. export functions from drivers/soc/ti/knav* that are used by the netcp driver. I will be sending a patch for this soon. 2. Convert netcp_ethss.o to a module and add Kconfig for the same config TI_KEYSTONE_NETCP - tristate "TI Keystone NETCP Ethernet subsystem Support" + tristate "TI Keystone NETCP Core Support" + select TI_CPSW_ALE depends on OF depends on KEYSTONE_NAVIGATOR_DMA && KEYSTONE_NAVIGATOR_QMSS ---help--- - This driver supports TI's Keystone NETCP Ethernet subsystem. + This driver supports TI's Keystone NETCP Core. + + To compile this driver as a module, choose M here: the module + will be called keystone_netcp. + +config TI_KEYSTONE_NETCP_ETHSS + depends on TI_KEYSTONE_NETCP + tristate "TI Keystone NETCP Ethernet subsystem Support" + ---help--- And Makefile to change as diff --git a/drivers/net/ethernet/ti/Makefile b/drivers/net/ethernet/ti/Makefile index 0a9813b..1dbb8b5 100644 --- a/drivers/net/ethernet/ti/Makefile +++ b/drivers/net/ethernet/ti/Makefile @@ -8,9 +8,13 @@ obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o obj-$(CONFIG_TI_DAVINCI_MDIO) += davinci_mdio.o obj-$(CONFIG_TI_DAVINCI_CPDMA) += davinci_cpdma.o obj-$(CONFIG_TI_CPSW_PHY_SEL) += cpsw-phy-sel.o obj-$(CONFIG_TI_CPSW) += ti_cpsw.o ti_cpsw-y := cpsw_ale.o cpsw.o cpts.o obj-$(CONFIG_TI_KEYSTONE_NETCP) += keystone_netcp.o -keystone_netcp-y := netcp_core.o netcp_ethss.o netcp_sgmii.o \ - netcp_xgbepcsr.o cpsw_ale.o +keystone_netcp-y := netcp_core.o + +obj-$(CONFIG_TI_KEYSTONE_NETCP_ETHSS) += keystone_netcp_ethss.o +keystone_netcp_ethss-y := netcp_ethss.o netcp_sgmii.o netcp_xgbepcsr.o \ + cpsw_ale.o 3. export some of the functions in netcp_core.c to support building keystone_netcp_ethss as module. > > The second problem is where I got stuck myself: cpsw_ale.c (also cpts.c) > is getting linked into both modules, which is not allowed: It is > impossible for the kernel to compile these if one driver is a module > and the other one is not, and any use of KBUILD_MODNAME fails because > it is unclear what the modname is if the file is compiled once to > be linked into two drivers. I am still looking into this. Both Keystone and TI CPSW driver would need to use cpsw_ale.o and cpts.o (currently not used, but will need this later). Not found a solution yet. Murali > > Arnd -- Murali Karicheri Linux Kernel, Texas Instruments ^ permalink raw reply related [flat|nested] 14+ messages in thread
[parent not found: <54C9654C.8030407-l0cyMroinI0@public.gmane.org>]
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support [not found] ` <54C9654C.8030407-l0cyMroinI0@public.gmane.org> @ 2015-01-29 17:21 ` Murali Karicheri 2015-01-29 22:00 ` Arnd Bergmann 0 siblings, 1 reply; 14+ messages in thread From: Murali Karicheri @ 2015-01-29 17:21 UTC (permalink / raw) To: Arnd Bergmann, Balbi, Felipe, mugunthanvnm-l0cyMroinI0 Cc: David Miller, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA On 01/28/2015 05:40 PM, Murali Karicheri wrote: > + Felipe, Mugunthan for commenting on TI_CPSW, ALE. > --- Cut ------ > >> >> The second problem is where I got stuck myself: cpsw_ale.c (also cpts.c) >> is getting linked into both modules, which is not allowed: It is >> impossible for the kernel to compile these if one driver is a module >> and the other one is not, and any use of KBUILD_MODNAME fails because >> it is unclear what the modname is if the file is compiled once to >> be linked into two drivers. Arnd, I think the solution is to make the cpsw_ale as a module and configured through a Kconfig option. I am working on a fix for this now. Similar fix is required for cpts.o. Currently we are not using this module for Netcp, but soon this will be re-used. I have send a patch that is already applied to net-next removing cpts.o for Netcp. Murali > > I am still looking into this. Both Keystone and TI CPSW driver would > need to use cpsw_ale.o and cpts.o (currently not used, but will need > this later). Not found a solution yet. > > Murali >> >> Arnd > > -- Murali Karicheri Linux Kernel, Texas Instruments -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-29 17:21 ` Murali Karicheri @ 2015-01-29 22:00 ` Arnd Bergmann 2015-01-29 23:20 ` Murali Karicheri 0 siblings, 1 reply; 14+ messages in thread From: Arnd Bergmann @ 2015-01-29 22:00 UTC (permalink / raw) To: Murali Karicheri Cc: Balbi, Felipe, mugunthanvnm, David Miller, devicetree, linux-kernel, netdev On Thursday 29 January 2015 12:21:36 Murali Karicheri wrote: > > I think the solution is to make the cpsw_ale as a module and configured > through a Kconfig option. I am working on a fix for this now. > > Similar fix is required for cpts.o. Currently we are not using this > module for Netcp, but soon this will be re-used. I have send a patch > that is already applied to net-next removing cpts.o for Netcp. > Great, thanks a lot for the follow-up. Arnd ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-29 22:00 ` Arnd Bergmann @ 2015-01-29 23:20 ` Murali Karicheri 2015-01-29 23:49 ` Arnd Bergmann 0 siblings, 1 reply; 14+ messages in thread From: Murali Karicheri @ 2015-01-29 23:20 UTC (permalink / raw) To: Arnd Bergmann Cc: Balbi, Felipe, mugunthanvnm-l0cyMroinI0, David Miller, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA On 01/29/2015 05:00 PM, Arnd Bergmann wrote: > On Thursday 29 January 2015 12:21:36 Murali Karicheri wrote: >> >> I think the solution is to make the cpsw_ale as a module and configured >> through a Kconfig option. I am working on a fix for this now. >> >> Similar fix is required for cpts.o. Currently we are not using this >> module for Netcp, but soon this will be re-used. I have send a patch >> that is already applied to net-next removing cpts.o for Netcp. >> > > Great, thanks a lot for the follow-up. > > Arnd Arnd, I have just posted a patch to nedev list to address this issue. Please review and let me know your comments. This also require some additional fixes in drivers/soc/ti/ to build them as modules as well. Santosh has queued them against next merge window. Felipe, Mugunthan, As the patch touches ti_cpsw as well, please review and provide your comments. It will be great if you can apply this patch on net-next branch and test it on ti platform using ti_cpsw driver. -- Murali Karicheri Linux Kernel, Texas Instruments -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support 2015-01-29 23:20 ` Murali Karicheri @ 2015-01-29 23:49 ` Arnd Bergmann 0 siblings, 0 replies; 14+ messages in thread From: Arnd Bergmann @ 2015-01-29 23:49 UTC (permalink / raw) To: Murali Karicheri Cc: Balbi, Felipe, mugunthanvnm, David Miller, devicetree, linux-kernel, netdev On Thursday 29 January 2015 18:20:24 Murali Karicheri wrote: > > I have just posted a patch to nedev list to address this issue. Please > review and let me know your comments. This also require some additional > fixes in drivers/soc/ti/ to build them as modules as well. Santosh has > queued them against next merge window. Ok, thanks for addressing this! As I wrote in reply to your patch, I'll give it some extra build testing in random configurations. Arnd ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2015-01-29 23:49 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-01-16 0:10 [PATCH net-next v8 0/4] net: Add Keystone NetCP ethernet driver support Murali Karicheri [not found] ` <1421367007-19744-1-git-send-email-m-karicheri2-l0cyMroinI0@public.gmane.org> 2015-01-19 20:11 ` David Miller [not found] ` <20150119.151106.822126941934010309.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org> 2015-01-20 15:53 ` Murali Karicheri 2015-01-27 22:28 ` Arnd Bergmann 2015-01-28 16:49 ` Murali Karicheri 2015-01-28 17:43 ` Murali Karicheri 2015-01-28 18:20 ` Murali Karicheri 2015-01-28 20:43 ` Murali Karicheri 2015-01-28 21:03 ` Arnd Bergmann 2015-01-28 22:40 ` Murali Karicheri [not found] ` <54C9654C.8030407-l0cyMroinI0@public.gmane.org> 2015-01-29 17:21 ` Murali Karicheri 2015-01-29 22:00 ` Arnd Bergmann 2015-01-29 23:20 ` Murali Karicheri 2015-01-29 23:49 ` Arnd Bergmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).