Re: [PATCH V2 3/8] MIPS: BMIPS: Add CFLAGS, Makefile entries for BMIPS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 11, 2011 at 4:58 AM, Ralf Baechle <ralf@xxxxxxxxxxxxxx> wrote:
> If BMIPS is just a MIPS32 with no relevant extensions to the instruction
> set, why don't you just call it a MIPS32 processor and use something
> like CPU_MIPS32_R2?
>
> It's small things like that which can sometimes avoid many unnecessary
> recompilations which really saves times when rebuilding all defconfigs
> on a way to slow machine :)

At a high level, the CONFIG_CPU_BMIPS* settings are used to make
compile-time decisions that differentiate BMIPS from standard MIPS32,
and that differentiate the BMIPS CPUs from one another.


Present and future uses include:

Figuring out which set of proprietary BMIPS CP0 registers / core
registers to use, where they are located, bit fields, etc.

Per-BMIPS SMP operations and capabilities

Per-BMIPS performance counter access

cpu-feature-overrides.h

HIGHMEM, SMP, and other basic features

eDSP instruction set (different on each BMIPS, and BMIPS-specific)

Cache architecture and BMIPS-specific cache optimizations


Some of these could potentially be replaced with a "switch
(current_cpu_type())" but others are a little trickier (i.e. they show
up in low-level PM resume code, exception vectors, or other sensitive
places).


It is true that BMIPS uses -mips32 for compilation.  If the criteria
for adding a new CONFIG_CPU_* choice is whether it selects a new
instruction set or compilation flags, do you think it makes sense to
remove BMIPS* from the "CPU selection" menu, enable
CONFIG_CPU_MIPS32_R1 for BMIPS platforms, and call our options
something different?  e.g.

CONFIG_BMIPS
CONFIG_BMIPS3300
CONFIG_BMIPS4350
CONFIG_BMIPS4380
CONFIG_BMIPS5000



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux