Skip to contentSkip to conversation

arch-vt8500 and wm8850 support

DISCUSSION Tony Prisk 3 participants 5 messages Nov 14, 2012

lore
Share & tools
lore

Tony Prisk

author
#0 lore raw

Hi Arnd,

Just looking for a little advice re: adding support for the WM8850 variant.

At the moment we have the ARM926 variants under ARCH_VT8500. The WM8850 is ARMv7, but uses all the same drivers as the ARM926 versions. At the moment, all the drivers depend on ARCH_VT8500.

The obvious solution (to me at least) seems to be to have 3 groups - ARCH_VT8500 keeps everything it has now except 'select CPU_ARM926T', and we add 2 additional groups - the first for all the current models, which selects CPU_ARM926T and ARCH_VT8500, and a second for WM8850 which selects CPU_V7 and ARCH_VT8500.

The other option seems to be to add WM8850 as ARCH_newmodel, but that would require patching all the driver Kconfigs to depends on ARCH_VT8500 || ARCH_newmodel.

Interested in your feedback.

Regards
Tony P

#1 lore raw
Quoted 9 lines · Tony Prisk

Hi Arnd,

Just looking for a little advice re: adding support for the WM8850 variant.

At the moment we have the ARM926 variants under ARCH_VT8500. The WM8850 is ARMv7, but uses all the same drivers as the ARM926 versions. At the moment, all the drivers depend on ARCH_VT8500.

Quoted 5 lines

The obvious solution (to me at least) seems to be to have 3 groups - ARCH_VT8500 keeps everything it has now except 'select CPU_ARM926T', and we add 2 additional groups - the first for all the current models, which selects CPU_ARM926T and ARCH_VT8500, and a second for WM8850 which selects CPU_V7 and ARCH_VT8500.

Yes, makes sense. Actually with the move to multiplatform, you already need to make the decision for the CPU earlier on, since the multiplatform kernel can only be built either for ARMv4/v5 or for ARMv6/v7.

I would suggest doing it like

config ARCH_VT8500
bool
select FOO
select BAR

config ARCH_WM8505

	bool "WonderMedia WM8505 or VIA VT8500"
	depends on ARCH_MULTI_V5
	select ARCH_VT8500
	select CPU_ARM926

config ARCH_WM8650
bool "WonderMedia WM 8650"
depends on ARCH_MULTI_V6
select ARCH_VT8500
select CPU_V6

config ARCH_WM8850

	bool "WonderMedia WM 8750/8850"
	depends on ARCH_MULTI_V7
	select ARCH_VT8500
	select CPU_V7

This keeps ARCH_VT8500 as the overall name for the family, but lists only the WonderMedia parts in the configuration.

Arnd

#2 lore raw

2012/11/14 Arnd Bergmann <[email protected]>:

Quoted 39 lines · Tony Prisk
Quoted 9 lines

Hi Arnd,

Just looking for a little advice re: adding support for the WM8850 variant.

At the moment we have the ARM926 variants under ARCH_VT8500. The WM8850 is ARMv7, but uses all the same drivers as the ARM926 versions. At the moment, all the drivers depend on ARCH_VT8500.

Quoted 5 lines

The obvious solution (to me at least) seems to be to have 3 groups - ARCH_VT8500 keeps everything it has now except 'select CPU_ARM926T', and we add 2 additional groups - the first for all the current models, which selects CPU_ARM926T and ARCH_VT8500, and a second for WM8850 which selects CPU_V7 and ARCH_VT8500.

Yes, makes sense. Actually with the move to multiplatform, you already need to make the decision for the CPU earlier on, since the multiplatform kernel can only be built either for ARMv4/v5 or for ARMv6/v7.

I would suggest doing it like

config ARCH_VT8500
bool
select FOO
select BAR

config ARCH_WM8505

        bool "WonderMedia WM8505 or VIA VT8500"
        depends on ARCH_MULTI_V5
        select ARCH_VT8500
        select CPU_ARM926

config ARCH_WM8650
bool "WonderMedia WM 8650"
depends on ARCH_MULTI_V6
select ARCH_VT8500
select CPU_V6

Quoted 5 lines

config ARCH_WM8850

        bool "WonderMedia WM 8750/8850"
        depends on ARCH_MULTI_V7
        select ARCH_VT8500
        select CPU_V7

Just my 2 cents: from what I remember, 8650 is still v5, while 87xx is v6 and 88xx+ are v7. The whole arrangement looks pretty neat, though, thanks for your feedback!

Best,
Alexey

author
#3 lore raw
In reply to Arnd Bergmann
Quoted 32 lines

Yes, makes sense. Actually with the move to multiplatform, you already need to make the decision for the CPU earlier on, since the multiplatform kernel can only be built either for ARMv4/v5 or for ARMv6/v7.

I would suggest doing it like

config ARCH_VT8500
bool
select FOO
select BAR

config ARCH_WM8505

	bool "WonderMedia WM8505 or VIA VT8500"
	depends on ARCH_MULTI_V5
	select ARCH_VT8500
	select CPU_ARM926

config ARCH_WM8650
bool "WonderMedia WM 8650"
depends on ARCH_MULTI_V6
select ARCH_VT8500
select CPU_V6

config ARCH_WM8850

	bool "WonderMedia WM 8750/8850"
	depends on ARCH_MULTI_V7
	select ARCH_VT8500
	select CPU_V7

This keeps ARCH_VT8500 as the overall name for the family, but lists only the WonderMedia parts in the configuration.

Quoted 6 lines

Arnd

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Makes sense - That's basically what I had in mind. My concern is with the bit that made no sense to me - the non-multiplatform version of the same. At the moment, we have the default xx_SINGLE for ARCH_VT8500. Would I need to add an additional xx_SINGLE variant for each different version?

We would need ARCH_WM8505 (To cover VT8500/WM8505/WM8650 ARM926), ARCH_WM8750 (for ARMv6) and ARCH_WM8850 (for ARMv7).

Do I need a ARCH_WM8750_SINGLE, ARCH_WM8850_SINGLE etc for each one to allow use to continue using earlyprintk?

Regards
Tony P

#4 lore raw
Quoted 5 lines · Tony Prisk

Makes sense - That's basically what I had in mind. My concern is with the bit that made no sense to me - the non-multiplatform version of the same. At the moment, we have the default xx_SINGLE for ARCH_VT8500. Would I need to add an additional xx_SINGLE variant for each different version?

I think either one option or two (v5 and v6/v7), but we don't need three separate ones, as it should be possible to build v6 and v7 together.

Quoted 2 lines

We would need ARCH_WM8505 (To cover VT8500/WM8505/WM8650 ARM926), ARCH_WM8750 (for ARMv6) and ARCH_WM8850 (for ARMv7).

Ah, right, I was mixing up the numbers.

Quoted 2 lines

Do I need a ARCH_WM8750_SINGLE, ARCH_WM8850_SINGLE etc for each one to allow use to continue using earlyprintk?

You just need to ensure that we always set at least one of them, and that ARCH_WM8505 isn't set at the same time as one of the v6/v7 parts.

Maybe something like

config ARCH_VT8500
bool
select FOO
select BAR

config ARCH_WM8505

      bool "WonderMedia WM8505/WM8650 or VIA VT8500" if !ARCH_VT8500_SINGLE
      depends on ARCH_MULTI_V5
      default ARCH_VT8500_SINGLE
      select ARCH_VT8500
      select CPU_ARM926

config ARCH_WM8750

      bool "WonderMedia WM 8750"
      depends on ARCH_MULTI_V6 || ARCH_WM8750_SINGLE
      select ARCH_VT8500
      select CPU_V6

config ARCH_WM8850

      bool "WonderMedia WM 8850/8950"
      depends on ARCH_MULTI_V7 || ARCH_WM8750_SINGLE
      select ARCH_VT8500
      select CPU_V7

config ARCH_WM8850_AUTO
def_bool y
depends on ARCH_WM8750_SINGLE && !ARCH_WM8750
select ARCH_WM8850 # ensure that ARCH_WM8850 is on if ARCH_WM8750 is off

Arnd