RE: usb.c:undefined reference to `qe_immr'

2023-01-11 Thread Leo Li



> -Original Message-
> From: Christophe Leroy 
> Sent: Wednesday, January 11, 2023 1:43 PM
> To: Randy Dunlap ; Michael Ellerman
> ; kernel test robot ; Masahiro
> Yamada 
> Cc: Nicolas Schier ; linux-ker...@vger.kernel.org; Leo Li
> ; oe-kbuild-...@lists.linux.dev; linuxppc-dev
> ; Qiang Zhao 
> Subject: Re: usb.c:undefined reference to `qe_immr'
> 
> 
> 
> Le 11/01/2023 à 17:01, Randy Dunlap a écrit :
> >
> >
> > On 1/10/23 23:39, Michael Ellerman wrote:
> >> Randy Dunlap  writes:
> >>> [adding Cc's]
> >>>
> >>>
> >>> On 1/9/23 23:59, kernel test robot wrote:
> >>>> Hi Masahiro,
> >>>>
> >>>> FYI, the error/warning still remains.
> >>>>
> >>>> tree:
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.ke
> rnel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git
> ata=05%7C01%7Cleoyang.li%40nxp.com%7Cd7f37490b9ad42174b0408daf40c
> 0376%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63809062972159
> 7124%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2lu
> MzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C=uv8%2
> BzM6uKMc9VPSXwH60Hi4V27pIKvv7BPzAFA3GOK8%3D=0 master
> >>>> head:   5a41237ad1d4b62008f93163af1d9b1da90729d8
> >>>> commit: 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b kbuild: link
> symbol CRCs at final link, removing CONFIG_MODULE_REL_CRCS
> >>>> date:   8 months ago
> >>>> config: powerpc-randconfig-r026-20230110
> >>>> compiler: powerpc-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1
> >>>> build):
> >>>>  wget
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.g
> ithubusercontent.com%2Fintel%2Flkp-
> tests%2Fmaster%2Fsbin%2Fmake.cross=05%7C01%7Cleoyang.li%40nx
> p.com%7Cd7f37490b9ad42174b0408daf40c0376%7C686ea1d3bc2b4c6fa92cd9
> 9c5c301635%7C0%7C0%7C638090629721753373%7CUnknown%7CTWFpbGZs
> b3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn
> 0%3D%7C3000%7C%7C%7C=bZocY77aLRAMjD3F1ttgzm%2F2tW8JfhYf
> xq%2B6vxJh9Mc%3D=0 -O ~/bin/make.cross
> >>>>  chmod +x ~/bin/make.cross
> >>>>  #
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.ke
> rnel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git%2
> Fcommit%2F%3Fid%3D7b4537199a4a8480b8c3ba37a2d44765ce76cd9b=
> 05%7C01%7Cleoyang.li%40nxp.com%7Cd7f37490b9ad42174b0408daf40c0376
> %7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C638090629721753373
> %7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiL
> CJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C=%2F%2BX1fl
> KB1kjgv3wNK18Cu9uq6%2FUOr%2FCTjIsudBfiGho%3D=0
> >>>>  git remote add linus
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.ke
> rnel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git
> ata=05%7C01%7Cleoyang.li%40nxp.com%7Cd7f37490b9ad42174b0408daf40c
> 0376%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63809062972175
> 3373%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2lu
> MzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C=%2BvI
> %2BGkvbol1aWLlg%2FAF12%2F44xZeN8U1c%2B0Y%2BvGCadt0%3D
> d=0
> >>>>  git fetch --no-tags linus master
> >>>>  git checkout 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b
> >>>>  # save the config file
> >>>>  mkdir build_dir && cp config build_dir/.config
> >>>>  COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0
> make.cross W=1 O=build_dir ARCH=powerpc olddefconfig
> >>>>  COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0
> >>>> make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash
> >>>>
> >>>> If you fix the issue, kindly add following tag where applicable
> >>>> | Reported-by: kernel test robot 
> >>>>
> >>>> All errors (new ones prefixed by >>):
> >>>>
> >>>> powerpc-linux-ld: powerpc-linux-ld: DWARF error: could not find
> abbrev number 74
> >>>> drivers/soc/fsl/qe/usb.o: in function `qe_usb_clock_set':
> >>>>>> usb.c:(.text+0x1e): undefined reference to `qe_immr'
> >>>>>> powerpc-linux-ld: usb.c:(.text+0x2a): undefined reference to
> `qe_immr'
> >>>>>> powerpc-linux-ld: usb.c:(.text+0xbc): undefined reference to
> `qe_setbrg'
> >>>>>> powerpc-linux-ld: usb.c:(.text+0xca): undefined reference to
> `cmxgcr_lock'
> >>>> powerp

Re: usb.c:undefined reference to `qe_immr'

2023-01-11 Thread Christophe Leroy


Le 11/01/2023 à 17:01, Randy Dunlap a écrit :
> 
> 
> On 1/10/23 23:39, Michael Ellerman wrote:
>> Randy Dunlap  writes:
>>> [adding Cc's]
>>>
>>>
>>> On 1/9/23 23:59, kernel test robot wrote:
 Hi Masahiro,

 FYI, the error/warning still remains.

 tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
 master
 head:   5a41237ad1d4b62008f93163af1d9b1da90729d8
 commit: 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b kbuild: link symbol CRCs 
 at final link, removing CONFIG_MODULE_REL_CRCS
 date:   8 months ago
 config: powerpc-randconfig-r026-20230110
 compiler: powerpc-linux-gcc (GCC) 12.1.0
 reproduce (this is a W=1 build):
  wget 
 https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross 
 -O ~/bin/make.cross
  chmod +x ~/bin/make.cross
  # 
 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7b4537199a4a8480b8c3ba37a2d44765ce76cd9b
  git remote add linus 
 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
  git fetch --no-tags linus master
  git checkout 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b
  # save the config file
  mkdir build_dir && cp config build_dir/.config
  COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross 
 W=1 O=build_dir ARCH=powerpc olddefconfig
  COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross 
 W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash

 If you fix the issue, kindly add following tag where applicable
 | Reported-by: kernel test robot 

 All errors (new ones prefixed by >>):

 powerpc-linux-ld: powerpc-linux-ld: DWARF error: could not find abbrev 
 number 74
 drivers/soc/fsl/qe/usb.o: in function `qe_usb_clock_set':
>> usb.c:(.text+0x1e): undefined reference to `qe_immr'
>> powerpc-linux-ld: usb.c:(.text+0x2a): undefined reference to `qe_immr'
>> powerpc-linux-ld: usb.c:(.text+0xbc): undefined reference to `qe_setbrg'
>> powerpc-linux-ld: usb.c:(.text+0xca): undefined reference to 
>> `cmxgcr_lock'
 powerpc-linux-ld: usb.c:(.text+0xce): undefined reference to 
 `cmxgcr_lock'

>>>
>>> .config extract:
>>>
>>> #
>>> # NXP/Freescale QorIQ SoC drivers
>>> #
>>> # CONFIG_QUICC_ENGINE is not set
>>> CONFIG_QE_USB=y
>>>
>>>
>>> This is caused by (drivers/soc/fsl/qe/Kconfig):
>>>
>>> config QE_USB
>>> bool
>>> default y if USB_FSL_QE
>>> help
>>>   QE USB Controller support
>>>
>>> which does not depend on QUICC_ENGINE, where the latter build provides
>>> the missing symbols.
>>
>> So QE_USB should depend on QUICC_ENGINE no?
> 
> Yes, that would make sense, but I don't know enough about the
> hardware. I.e., could CONFIG_PPC_EP88XC have QE_USB without having
> a full QUICC_ENGINE?
> 

Kconfig says:

config PPC_EP88XC
bool "Embedded Planet EP88xC (a.k.a. CWH-PPC-885XN-VE)"
select CPM1
help
  This enables support for the Embedded Planet EP88xC board.

  This board is also resold by Freescale as the QUICCStart
  MPC885 Evaluation System and/or the CWH-PPC-885XN-VE.


MPC885 has an USB controller, but I was not aware Linux had any USB 
driver for the 885. Need to dig into history. Was initialy added by 
commit 3948f0e0c999 ("usb: add Freescale QE/CPM USB peripheral 
controller driver"), it explicitely says it should work on CPM.

Christophe


Re: usb.c:undefined reference to `qe_immr'

2023-01-11 Thread Randy Dunlap



On 1/10/23 23:39, Michael Ellerman wrote:
> Randy Dunlap  writes:
>> [adding Cc's]
>>
>>
>> On 1/9/23 23:59, kernel test robot wrote:
>>> Hi Masahiro,
>>>
>>> FYI, the error/warning still remains.
>>>
>>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
>>> master
>>> head:   5a41237ad1d4b62008f93163af1d9b1da90729d8
>>> commit: 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b kbuild: link symbol CRCs 
>>> at final link, removing CONFIG_MODULE_REL_CRCS
>>> date:   8 months ago
>>> config: powerpc-randconfig-r026-20230110
>>> compiler: powerpc-linux-gcc (GCC) 12.1.0
>>> reproduce (this is a W=1 build):
>>> wget 
>>> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
>>> ~/bin/make.cross
>>> chmod +x ~/bin/make.cross
>>> # 
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7b4537199a4a8480b8c3ba37a2d44765ce76cd9b
>>> git remote add linus 
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>> git fetch --no-tags linus master
>>> git checkout 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b
>>> # save the config file
>>> mkdir build_dir && cp config build_dir/.config
>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 
>>> O=build_dir ARCH=powerpc olddefconfig
>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 
>>> O=build_dir ARCH=powerpc SHELL=/bin/bash
>>>
>>> If you fix the issue, kindly add following tag where applicable
>>> | Reported-by: kernel test robot 
>>>
>>> All errors (new ones prefixed by >>):
>>>
>>>powerpc-linux-ld: powerpc-linux-ld: DWARF error: could not find abbrev 
>>> number 74
>>>drivers/soc/fsl/qe/usb.o: in function `qe_usb_clock_set':
> usb.c:(.text+0x1e): undefined reference to `qe_immr'
> powerpc-linux-ld: usb.c:(.text+0x2a): undefined reference to `qe_immr'
> powerpc-linux-ld: usb.c:(.text+0xbc): undefined reference to `qe_setbrg'
> powerpc-linux-ld: usb.c:(.text+0xca): undefined reference to `cmxgcr_lock'
>>>powerpc-linux-ld: usb.c:(.text+0xce): undefined reference to 
>>> `cmxgcr_lock'
>>>
>>
>> .config extract:
>>
>> #
>> # NXP/Freescale QorIQ SoC drivers
>> #
>> # CONFIG_QUICC_ENGINE is not set
>> CONFIG_QE_USB=y
>>
>>
>> This is caused by (drivers/soc/fsl/qe/Kconfig):
>>
>> config QE_USB
>>  bool
>>  default y if USB_FSL_QE
>>  help
>>QE USB Controller support
>>
>> which does not depend on QUICC_ENGINE, where the latter build provides
>> the missing symbols.
> 
> So QE_USB should depend on QUICC_ENGINE no?

Yes, that would make sense, but I don't know enough about the
hardware. I.e., could CONFIG_PPC_EP88XC have QE_USB without having
a full QUICC_ENGINE?

thanks.

-- 
~Randy


Re: usb.c:undefined reference to `qe_immr'

2023-01-10 Thread Michael Ellerman
Randy Dunlap  writes:
> [adding Cc's]
>
>
> On 1/9/23 23:59, kernel test robot wrote:
>> Hi Masahiro,
>> 
>> FYI, the error/warning still remains.
>> 
>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
>> master
>> head:   5a41237ad1d4b62008f93163af1d9b1da90729d8
>> commit: 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b kbuild: link symbol CRCs at 
>> final link, removing CONFIG_MODULE_REL_CRCS
>> date:   8 months ago
>> config: powerpc-randconfig-r026-20230110
>> compiler: powerpc-linux-gcc (GCC) 12.1.0
>> reproduce (this is a W=1 build):
>> wget 
>> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
>> ~/bin/make.cross
>> chmod +x ~/bin/make.cross
>> # 
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7b4537199a4a8480b8c3ba37a2d44765ce76cd9b
>> git remote add linus 
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>> git fetch --no-tags linus master
>> git checkout 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b
>> # save the config file
>> mkdir build_dir && cp config build_dir/.config
>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 
>> O=build_dir ARCH=powerpc olddefconfig
>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 
>> O=build_dir ARCH=powerpc SHELL=/bin/bash
>> 
>> If you fix the issue, kindly add following tag where applicable
>> | Reported-by: kernel test robot 
>> 
>> All errors (new ones prefixed by >>):
>> 
>>powerpc-linux-ld: powerpc-linux-ld: DWARF error: could not find abbrev 
>> number 74
>>drivers/soc/fsl/qe/usb.o: in function `qe_usb_clock_set':
 usb.c:(.text+0x1e): undefined reference to `qe_immr'
 powerpc-linux-ld: usb.c:(.text+0x2a): undefined reference to `qe_immr'
 powerpc-linux-ld: usb.c:(.text+0xbc): undefined reference to `qe_setbrg'
 powerpc-linux-ld: usb.c:(.text+0xca): undefined reference to `cmxgcr_lock'
>>powerpc-linux-ld: usb.c:(.text+0xce): undefined reference to `cmxgcr_lock'
>> 
>
> .config extract:
>
> #
> # NXP/Freescale QorIQ SoC drivers
> #
> # CONFIG_QUICC_ENGINE is not set
> CONFIG_QE_USB=y
>
>
> This is caused by (drivers/soc/fsl/qe/Kconfig):
>
> config QE_USB
>   bool
>   default y if USB_FSL_QE
>   help
> QE USB Controller support
>
> which does not depend on QUICC_ENGINE, where the latter build provides
> the missing symbols.

So QE_USB should depend on QUICC_ENGINE no?

cheers


Re: usb.c:undefined reference to `qe_immr'

2023-01-10 Thread Randy Dunlap
[adding Cc's]


On 1/9/23 23:59, kernel test robot wrote:
> Hi Masahiro,
> 
> FYI, the error/warning still remains.
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   5a41237ad1d4b62008f93163af1d9b1da90729d8
> commit: 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b kbuild: link symbol CRCs at 
> final link, removing CONFIG_MODULE_REL_CRCS
> date:   8 months ago
> config: powerpc-randconfig-r026-20230110
> compiler: powerpc-linux-gcc (GCC) 12.1.0
> reproduce (this is a W=1 build):
> wget 
> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
> ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7b4537199a4a8480b8c3ba37a2d44765ce76cd9b
> git remote add linus 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 7b4537199a4a8480b8c3ba37a2d44765ce76cd9b
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 
> O=build_dir ARCH=powerpc olddefconfig
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 
> O=build_dir ARCH=powerpc SHELL=/bin/bash
> 
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot 
> 
> All errors (new ones prefixed by >>):
> 
>powerpc-linux-ld: powerpc-linux-ld: DWARF error: could not find abbrev 
> number 74
>drivers/soc/fsl/qe/usb.o: in function `qe_usb_clock_set':
>>> usb.c:(.text+0x1e): undefined reference to `qe_immr'
>>> powerpc-linux-ld: usb.c:(.text+0x2a): undefined reference to `qe_immr'
>>> powerpc-linux-ld: usb.c:(.text+0xbc): undefined reference to `qe_setbrg'
>>> powerpc-linux-ld: usb.c:(.text+0xca): undefined reference to `cmxgcr_lock'
>powerpc-linux-ld: usb.c:(.text+0xce): undefined reference to `cmxgcr_lock'
> 

.config extract:

#
# NXP/Freescale QorIQ SoC drivers
#
# CONFIG_QUICC_ENGINE is not set
CONFIG_QE_USB=y


This is caused by (drivers/soc/fsl/qe/Kconfig):

config QE_USB
bool
default y if USB_FSL_QE
help
  QE USB Controller support

which does not depend on QUICC_ENGINE, where the latter build provides
the missing symbols.

drivers/usb/gadget/udc/Kconfig:

config USB_FSL_QE
tristate "Freescale QE/CPM USB Device Controller"
depends on FSL_SOC && (QUICC_ENGINE || CPM)
depends on !64BIT || BROKEN

CPM is set but QUICC_ENGINE is not set (by CONFIG_PPC_EP88XC=y).


I don't know of a good fix for this build error.

-- 
~Randy