Re: [PATCH 08/31] nds32: Cache and TLB routines

From: Arnd Bergmann
Date: Wed Nov 08 2017 - 03:45:09 EST


On Wed, Nov 8, 2017 at 6:54 AM, Greentime Hu <green.hu@xxxxxxxxx> wrote:

> +#ifndef __NDS32_PROCFNS_H__
> +#define __NDS32_PROCFNS_H__
> +
> +#define CPU_NAME n13
> +
> +#ifdef __KERNEL__
> +
> +#ifdef __STDC__
> +#define ____cpu_fn(name,fn) name##fn
> +#else
> +#define ____cpu_fn(name,fn) name/**/fn
> +#endif
> +#define __cpu_fn(name,fn) ____cpu_fn(name,fn)
> +
> +#define cpu_proc_init __cpu_fn( CPU_NAME, _proc_init)
> +#define cpu_proc_fin __cpu_fn( CPU_NAME, _proc_fin)
> +#define cpu_do_idle __cpu_fn( CPU_NAME, _do_idle)
> +#define cpu_reset __cpu_fn( CPU_NAME, _reset)
> +#define cpu_switch_mm __cpu_fn( CPU_NAME, _switch_mm)

I see you have copied this from ARM. Do you actually need the same complexity,
with the ability to build either optimal code for a particular CPU or
a multi-CPU
version?

Most other architectures seem to have settled for doing just one of the two
models. How many CPU implementations to you expect to support that
differ in all of those functions?

Arnd