Re: [PATCH V2 22/22] MIPS: Add multiplatform BMIPS target

From: Arnd Bergmann
Date: Sun Nov 16 2014 - 16:25:27 EST


On Saturday 15 November 2014 16:17:46 Kevin Cernekee wrote:
> +config BMIPS_MULTIPLATFORM
> + bool "Broadcom BCM33xx/BCM63xx/BCM7xxx multiplatform kernel"
> + select BOOT_RAW
> + select NO_EXCEPT_FILL
> + select USE_OF
> + select BUILTIN_DTB
> + select FW_CFE
> + select CEVT_R4K
> + select CSRC_R4K
> + select SYNC_R4K
> + select COMMON_CLK
> + select BCM7038_L1_IRQ
> + select BCM7120_L2_IRQ
> + select BRCMSTB_L2_IRQ
> + select IRQ_CPU
> + select RAW_IRQ_ACCESSORS
> + select DMA_NONCOHERENT
> + select SYS_SUPPORTS_32BIT_KERNEL
> + select SYS_SUPPORTS_LITTLE_ENDIAN
> + select SYS_SUPPORTS_BIG_ENDIAN
> + select SYS_SUPPORTS_HIGHMEM
> + select SYS_HAS_CPU_BMIPS3300
> + select SYS_HAS_CPU_BMIPS4350
> + select SYS_HAS_CPU_BMIPS4380
> + select SYS_HAS_CPU_BMIPS5000
> + select SWAP_IO_SPACE
> + select USB_EHCI_BIG_ENDIAN_DESC
> + select USB_EHCI_BIG_ENDIAN_MMIO
> + select USB_OHCI_BIG_ENDIAN_DESC
> + select USB_OHCI_BIG_ENDIAN_MMIO

You mentioned in another thread that all MMIO is byteswapped based on the
jumper setting. Should the USB options have an 'if CPU_BIG_ENDIAN'
behind them? I think it will still work in the current way, but when you
know that you have little-endian registers, it is more efficient
not to set these.

> + help
> + Build a multiplatform DT-based kernel image that boots on select
> + BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
> + box chips. Note that CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN
> + must be set appropriately for your board, and the dts/dtsi files may
> + require changes based on the system endianness.
>

Can you clarify the meaning of "multiplatform" here? I suspect you
mean that this is one platform that includes multiple SoCs that
are all made by the same manufacturer and based on the same CPU
core family, but it is still incompatible with other Vendor's SoCs
and with Broadcom MIPS SoCs that are based on 74K or other cores, right?

It's probably not a wrong description here, but for anybody reading this
who also works on ARM, it seems rather confusing because there,
"multiplatform" implies that the particular SoC can be built into a
generic kernel image that supports SoCs from any vendor whose platform
is also marked as "multiplatform", as long as the CPU architecture level
(v4/v5, or v6/v7, or v8) is the same.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/