All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] mips: BCM63XX: select CPU_SUPPORTS_32BIT_KERNEL
@ 2021-11-06  2:58 Randy Dunlap
  2021-11-06  3:31 ` Florian Fainelli
  0 siblings, 1 reply; 4+ messages in thread
From: Randy Dunlap @ 2021-11-06  2:58 UTC (permalink / raw)
  To: linux-kernel
  Cc: Randy Dunlap, kernel test robot, Thomas Bogendoerfer,
	Florian Fainelli, bcm-kernel-feedback-list, linux-mips,
	Paul Burton, Maxime Bizon, Ralf Baechle


Several header files need info on CONFIG_32BIT or CONFIG_64BIT,
but kconfig symbol BCM63XX does not provide that info. This leads
to many build errors, e.g.:

   arch/mips/include/asm/page.h:196:13: error: use of undeclared identifier 'CAC_BASE'
           return x - PAGE_OFFSET + PHYS_OFFSET;
   arch/mips/include/asm/mach-generic/spaces.h:91:23: note: expanded from macro 'PAGE_OFFSET'
   #define PAGE_OFFSET             (CAC_BASE + PHYS_OFFSET)
   arch/mips/include/asm/io.h:134:28: error: use of undeclared identifier 'CAC_BASE'
           return (void *)(address + PAGE_OFFSET - PHYS_OFFSET);
   arch/mips/include/asm/mach-generic/spaces.h:91:23: note: expanded from macro 'PAGE_OFFSET'
   #define PAGE_OFFSET             (CAC_BASE + PHYS_OFFSET)

arch/mips/include/asm/uaccess.h:82:10: error: use of undeclared identifier '__UA_LIMIT'
           return (__UA_LIMIT & (addr | (addr + size) | __ua_size(size))) == 0;


Fixes: e7300d04bd08 ("MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs.")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Reported-by: kernel test robot <lkp@intel.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: bcm-kernel-feedback-list@broadcom.com
Cc: linux-mips@vger.kernel.org
Cc: Paul Burton <paulburton@kernel.org>
Cc: Maxime Bizon <mbizon@freebox.fr>
Cc: Ralf Baechle <ralf@linux-mips.org>
---
Note: I did see a bunch of build errors like this one:
../arch/mips/kernel/r4k_fpu.S:217: Error: opcode not supported on this processor: mips1 (mips1) `ldc1 $f24,192($4)'
but I'm hoping/guessing that this is due to not having a proper compiler
for the BCM63xx target.

 arch/mips/Kconfig |    1 +
 1 file changed, 1 insertion(+)

--- linux-next-20211105.orig/arch/mips/Kconfig
+++ linux-next-20211105/arch/mips/Kconfig
@@ -329,6 +329,7 @@ config BCM63XX
 	select SYNC_R4K
 	select DMA_NONCOHERENT
 	select IRQ_MIPS_CPU
+	select CPU_SUPPORTS_32BIT_KERNEL
 	select SYS_SUPPORTS_32BIT_KERNEL
 	select SYS_SUPPORTS_BIG_ENDIAN
 	select SYS_HAS_EARLY_PRINTK

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC PATCH] mips: BCM63XX: select CPU_SUPPORTS_32BIT_KERNEL
  2021-11-06  2:58 [RFC PATCH] mips: BCM63XX: select CPU_SUPPORTS_32BIT_KERNEL Randy Dunlap
@ 2021-11-06  3:31 ` Florian Fainelli
  2021-11-06  4:44   ` Randy Dunlap
  0 siblings, 1 reply; 4+ messages in thread
From: Florian Fainelli @ 2021-11-06  3:31 UTC (permalink / raw)
  To: Randy Dunlap, linux-kernel
  Cc: kernel test robot, Thomas Bogendoerfer, bcm-kernel-feedback-list,
	linux-mips, Paul Burton, Maxime Bizon, Ralf Baechle



On 11/5/2021 7:58 PM, Randy Dunlap wrote:
> 
> Several header files need info on CONFIG_32BIT or CONFIG_64BIT,
> but kconfig symbol BCM63XX does not provide that info. This leads
> to many build errors, e.g.:
> 
>     arch/mips/include/asm/page.h:196:13: error: use of undeclared identifier 'CAC_BASE'
>             return x - PAGE_OFFSET + PHYS_OFFSET;
>     arch/mips/include/asm/mach-generic/spaces.h:91:23: note: expanded from macro 'PAGE_OFFSET'
>     #define PAGE_OFFSET             (CAC_BASE + PHYS_OFFSET)
>     arch/mips/include/asm/io.h:134:28: error: use of undeclared identifier 'CAC_BASE'
>             return (void *)(address + PAGE_OFFSET - PHYS_OFFSET);
>     arch/mips/include/asm/mach-generic/spaces.h:91:23: note: expanded from macro 'PAGE_OFFSET'
>     #define PAGE_OFFSET             (CAC_BASE + PHYS_OFFSET)
> 
> arch/mips/include/asm/uaccess.h:82:10: error: use of undeclared identifier '__UA_LIMIT'
>             return (__UA_LIMIT & (addr | (addr + size) | __ua_size(size))) == 0;
> 
> 
> Fixes: e7300d04bd08 ("MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs.")
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> Reported-by: kernel test robot <lkp@intel.com>
> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: bcm-kernel-feedback-list@broadcom.com
> Cc: linux-mips@vger.kernel.org
> Cc: Paul Burton <paulburton@kernel.org>
> Cc: Maxime Bizon <mbizon@freebox.fr>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> ---
> Note: I did see a bunch of build errors like this one:
> ../arch/mips/kernel/r4k_fpu.S:217: Error: opcode not supported on this processor: mips1 (mips1) `ldc1 $f24,192($4)'
> but I'm hoping/guessing that this is due to not having a proper compiler
> for the BCM63xx target.
> 
>   arch/mips/Kconfig |    1 +
>   1 file changed, 1 insertion(+)
> 
> --- linux-next-20211105.orig/arch/mips/Kconfig
> +++ linux-next-20211105/arch/mips/Kconfig
> @@ -329,6 +329,7 @@ config BCM63XX
>   	select SYNC_R4K
>   	select DMA_NONCOHERENT
>   	select IRQ_MIPS_CPU
> +	select CPU_SUPPORTS_32BIT_KERNEL

That's one option, the other could be to add:

         select SYS_HAS_CPU_BMIPS32_3300
         select SYS_HAS_CPU_BMIPS4350
         select SYS_HAS_CPU_BMIPS4380

Which would ensure that CPU_SUPPORTS_32BIT_KERNEL is selected AFAICT. 
Can you try that? What config file did you use to produce that build 
error BTW?
-- 
Florian

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC PATCH] mips: BCM63XX: select CPU_SUPPORTS_32BIT_KERNEL
  2021-11-06  3:31 ` Florian Fainelli
@ 2021-11-06  4:44   ` Randy Dunlap
  2021-11-06 15:18     ` Randy Dunlap
  0 siblings, 1 reply; 4+ messages in thread
From: Randy Dunlap @ 2021-11-06  4:44 UTC (permalink / raw)
  To: Florian Fainelli, linux-kernel
  Cc: kernel test robot, Thomas Bogendoerfer, bcm-kernel-feedback-list,
	linux-mips, Paul Burton, Maxime Bizon, Ralf Baechle

On 11/5/21 8:31 PM, Florian Fainelli wrote:
> 
> 
> On 11/5/2021 7:58 PM, Randy Dunlap wrote:
>>
>> Several header files need info on CONFIG_32BIT or CONFIG_64BIT,
>> but kconfig symbol BCM63XX does not provide that info. This leads
>> to many build errors, e.g.:
>>
>>     arch/mips/include/asm/page.h:196:13: error: use of undeclared identifier 'CAC_BASE'
>>             return x - PAGE_OFFSET + PHYS_OFFSET;
>>     arch/mips/include/asm/mach-generic/spaces.h:91:23: note: expanded from macro 'PAGE_OFFSET'
>>     #define PAGE_OFFSET             (CAC_BASE + PHYS_OFFSET)
>>     arch/mips/include/asm/io.h:134:28: error: use of undeclared identifier 'CAC_BASE'
>>             return (void *)(address + PAGE_OFFSET - PHYS_OFFSET);
>>     arch/mips/include/asm/mach-generic/spaces.h:91:23: note: expanded from macro 'PAGE_OFFSET'
>>     #define PAGE_OFFSET             (CAC_BASE + PHYS_OFFSET)
>>
>> arch/mips/include/asm/uaccess.h:82:10: error: use of undeclared identifier '__UA_LIMIT'
>>             return (__UA_LIMIT & (addr | (addr + size) | __ua_size(size))) == 0;
>>
>>
>> Fixes: e7300d04bd08 ("MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs.")
>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
>> Reported-by: kernel test robot <lkp@intel.com>
>> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
>> Cc: Florian Fainelli <f.fainelli@gmail.com>
>> Cc: bcm-kernel-feedback-list@broadcom.com
>> Cc: linux-mips@vger.kernel.org
>> Cc: Paul Burton <paulburton@kernel.org>
>> Cc: Maxime Bizon <mbizon@freebox.fr>
>> Cc: Ralf Baechle <ralf@linux-mips.org>
>> ---
>> Note: I did see a bunch of build errors like this one:
>> ../arch/mips/kernel/r4k_fpu.S:217: Error: opcode not supported on this processor: mips1 (mips1) `ldc1 $f24,192($4)'
>> but I'm hoping/guessing that this is due to not having a proper compiler
>> for the BCM63xx target.
>>
>>   arch/mips/Kconfig |    1 +
>>   1 file changed, 1 insertion(+)
>>
>> --- linux-next-20211105.orig/arch/mips/Kconfig
>> +++ linux-next-20211105/arch/mips/Kconfig
>> @@ -329,6 +329,7 @@ config BCM63XX
>>       select SYNC_R4K
>>       select DMA_NONCOHERENT
>>       select IRQ_MIPS_CPU
>> +    select CPU_SUPPORTS_32BIT_KERNEL
> 
> That's one option, the other could be to add:
> 
>          select SYS_HAS_CPU_BMIPS32_3300
>          select SYS_HAS_CPU_BMIPS4350
>          select SYS_HAS_CPU_BMIPS4380
> 
> Which would ensure that CPU_SUPPORTS_32BIT_KERNEL is selected AFAICT. Can you try that? What config file did you use to produce that build error BTW?

The .config file that is attached to this report from the kernel test robot:
https://lore.kernel.org/all/202111051920.dcCUQ0QN-lkp@intel.com/

Yes, I'll give your suggestion a try on Saturday.

thanks.--
~Randy

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC PATCH] mips: BCM63XX: select CPU_SUPPORTS_32BIT_KERNEL
  2021-11-06  4:44   ` Randy Dunlap
@ 2021-11-06 15:18     ` Randy Dunlap
  0 siblings, 0 replies; 4+ messages in thread
From: Randy Dunlap @ 2021-11-06 15:18 UTC (permalink / raw)
  To: Florian Fainelli, linux-kernel
  Cc: kernel test robot, Thomas Bogendoerfer, bcm-kernel-feedback-list,
	linux-mips, Paul Burton, Maxime Bizon, Ralf Baechle

On 11/5/21 9:44 PM, Randy Dunlap wrote:
> On 11/5/21 8:31 PM, Florian Fainelli wrote:
>>
>>
>> On 11/5/2021 7:58 PM, Randy Dunlap wrote:
>>>
>>> Several header files need info on CONFIG_32BIT or CONFIG_64BIT,
>>> but kconfig symbol BCM63XX does not provide that info. This leads
>>> to many build errors, e.g.:
>>>
>>>     arch/mips/include/asm/page.h:196:13: error: use of undeclared identifier 'CAC_BASE'
>>>             return x - PAGE_OFFSET + PHYS_OFFSET;
>>>     arch/mips/include/asm/mach-generic/spaces.h:91:23: note: expanded from macro 'PAGE_OFFSET'
>>>     #define PAGE_OFFSET             (CAC_BASE + PHYS_OFFSET)
>>>     arch/mips/include/asm/io.h:134:28: error: use of undeclared identifier 'CAC_BASE'
>>>             return (void *)(address + PAGE_OFFSET - PHYS_OFFSET);
>>>     arch/mips/include/asm/mach-generic/spaces.h:91:23: note: expanded from macro 'PAGE_OFFSET'
>>>     #define PAGE_OFFSET             (CAC_BASE + PHYS_OFFSET)
>>>
>>> arch/mips/include/asm/uaccess.h:82:10: error: use of undeclared identifier '__UA_LIMIT'
>>>             return (__UA_LIMIT & (addr | (addr + size) | __ua_size(size))) == 0;
>>>
>>>
>>> Fixes: e7300d04bd08 ("MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs.")
>>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
>>> Reported-by: kernel test robot <lkp@intel.com>
>>> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
>>> Cc: Florian Fainelli <f.fainelli@gmail.com>
>>> Cc: bcm-kernel-feedback-list@broadcom.com
>>> Cc: linux-mips@vger.kernel.org
>>> Cc: Paul Burton <paulburton@kernel.org>
>>> Cc: Maxime Bizon <mbizon@freebox.fr>
>>> Cc: Ralf Baechle <ralf@linux-mips.org>
>>> ---
>>> Note: I did see a bunch of build errors like this one:
>>> ../arch/mips/kernel/r4k_fpu.S:217: Error: opcode not supported on this processor: mips1 (mips1) `ldc1 $f24,192($4)'
>>> but I'm hoping/guessing that this is due to not having a proper compiler
>>> for the BCM63xx target.
>>>
>>>   arch/mips/Kconfig |    1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> --- linux-next-20211105.orig/arch/mips/Kconfig
>>> +++ linux-next-20211105/arch/mips/Kconfig
>>> @@ -329,6 +329,7 @@ config BCM63XX
>>>       select SYNC_R4K
>>>       select DMA_NONCOHERENT
>>>       select IRQ_MIPS_CPU
>>> +    select CPU_SUPPORTS_32BIT_KERNEL
>>
>> That's one option, the other could be to add:
>>
>>          select SYS_HAS_CPU_BMIPS32_3300
>>          select SYS_HAS_CPU_BMIPS4350
>>          select SYS_HAS_CPU_BMIPS4380
>>
>> Which would ensure that CPU_SUPPORTS_32BIT_KERNEL is selected AFAICT. Can you try that? What config file did you use to produce that build error BTW?
> 
> The .config file that is attached to this report from the kernel test robot:
> https://lore.kernel.org/all/202111051920.dcCUQ0QN-lkp@intel.com/
> 
> Yes, I'll give your suggestion a try on Saturday.

OK, that works also. I'll send a v2 with that.

However, with that kernel .config file, it does expose another
unrelated longstanding build error:

/opt/crosstool/gcc-11.1.0-nolibc/mips-linux/bin/mips-linux-ld: drivers/iio/adc/ingenic-adc.o: in function `jz4725b_adc_init_clk_div':
ingenic-adc.c:(.text.jz4725b_adc_init_clk_div+0x10): undefined reference to `clk_get_parent'
/opt/crosstool/gcc-11.1.0-nolibc/mips-linux/bin/mips-linux-ld: drivers/iio/adc/ingenic-adc.o: in function `jz4770_adc_init_clk_div':
ingenic-adc.c:(.text.jz4770_adc_init_clk_div+0x10): undefined reference to `clk_get_parent'


I prepared a patch for that on April 26, 2021, but it looks like I never sent it.
Oh, it's incomplete, not really working yet.
Any comments on how to really fix this problem?

---
From: Randy Dunlap <rdunlap@infradead.org>

MIPS does not always provide clk*() interfaces and there are no
always-present stubs for them, so depending on "MIPS || COMPILE_TEST"
is not string enough to prevent build errors.

Likewise MACH_INGENIC_SOC || COMPILE_TEST is not strong enough
since if only COMPILE_TEST=y, there are still the same build errors.

Can we fix the dissonance between HAVE_CLK and COMMON_CLK?

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
---
  drivers/iio/adc/Kconfig |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-next-20210426.orig/drivers/iio/adc/Kconfig
+++ linux-next-20210426/drivers/iio/adc/Kconfig
@@ -501,7 +501,7 @@ config INA2XX_ADC
  
  config INGENIC_ADC
  	tristate "Ingenic JZ47xx SoCs ADC driver"
-	depends on MIPS || COMPILE_TEST
+	depends on MACH_INGENIC_SOC || COMPILE_TEST
  	select IIO_BUFFER
  	help
  	  Say yes here to build support for the Ingenic JZ47xx SoCs ADC unit.




thanks.
-- 
~Randy

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-11-06 15:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-06  2:58 [RFC PATCH] mips: BCM63XX: select CPU_SUPPORTS_32BIT_KERNEL Randy Dunlap
2021-11-06  3:31 ` Florian Fainelli
2021-11-06  4:44   ` Randy Dunlap
2021-11-06 15:18     ` Randy Dunlap

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.