Lines Matching refs:cpu
47 struct cpuinfo_arc *cpu = &cpuinfo_arc700[smp_processor_id()]; in read_arc_build_cfg_regs() local
48 FIX_PTR(cpu); in read_arc_build_cfg_regs()
50 READ_BCR(AUX_IDENTITY, cpu->core); in read_arc_build_cfg_regs()
51 READ_BCR(ARC_REG_ISA_CFG_BCR, cpu->isa); in read_arc_build_cfg_regs()
53 READ_BCR(ARC_REG_TIMERS_BCR, cpu->timers); in read_arc_build_cfg_regs()
54 cpu->vec_base = read_aux_reg(AUX_INTR_VEC_BASE); in read_arc_build_cfg_regs()
57 cpu->uncached_base = uncached_space.start << 24; in read_arc_build_cfg_regs()
59 READ_BCR(ARC_REG_MUL_BCR, cpu->extn_mpy); in read_arc_build_cfg_regs()
61 cpu->extn.norm = read_aux_reg(ARC_REG_NORM_BCR) > 1 ? 1 : 0; /* 2,3 */ in read_arc_build_cfg_regs()
62 cpu->extn.barrel = read_aux_reg(ARC_REG_BARREL_BCR) > 1 ? 1 : 0; /* 2,3 */ in read_arc_build_cfg_regs()
63 cpu->extn.swap = read_aux_reg(ARC_REG_SWAP_BCR) ? 1 : 0; /* 1,3 */ in read_arc_build_cfg_regs()
64 cpu->extn.crc = read_aux_reg(ARC_REG_CRC_BCR) ? 1 : 0; in read_arc_build_cfg_regs()
65 cpu->extn.minmax = read_aux_reg(ARC_REG_MIXMAX_BCR) > 1 ? 1 : 0; /* 2 */ in read_arc_build_cfg_regs()
80 cpu->iccm.base_addr = iccm.base << 16; in read_arc_build_cfg_regs()
81 cpu->iccm.sz = 0x2000 << (iccm.sz - 1); in read_arc_build_cfg_regs()
87 cpu->dccm.sz = 0x800 << (dccm.sz); in read_arc_build_cfg_regs()
90 cpu->dccm.base_addr = dccm_base.addr << 8; in read_arc_build_cfg_regs()
94 READ_BCR(ARC_REG_XY_MEM_BCR, cpu->extn_xymem); in read_arc_build_cfg_regs()
105 cpu->extn.fpu_sp = sp.ver ? 1 : 0; in read_arc_build_cfg_regs()
106 cpu->extn.fpu_dp = dp.ver ? 1 : 0; in read_arc_build_cfg_regs()
109 cpu->bpu.ver = bpu.ver; in read_arc_build_cfg_regs()
110 cpu->bpu.full = bpu.fam ? 1 : 0; in read_arc_build_cfg_regs()
112 cpu->bpu.num_cache = 256 << (bpu.ent - 1); in read_arc_build_cfg_regs()
113 cpu->bpu.num_pred = 256 << (bpu.ent - 1); in read_arc_build_cfg_regs()
118 cpu->extn.ap = bcr.ver ? 1 : 0; in read_arc_build_cfg_regs()
121 cpu->extn.smart = bcr.ver ? 1 : 0; in read_arc_build_cfg_regs()
124 cpu->extn.rtt = bcr.ver ? 1 : 0; in read_arc_build_cfg_regs()
126 cpu->extn.debug = cpu->extn.ap | cpu->extn.smart | cpu->extn.rtt; in read_arc_build_cfg_regs()
143 struct cpuinfo_arc *cpu = &cpuinfo_arc700[cpu_id]; in arc_cpu_mumbojumbo() local
144 struct bcr_identity *core = &cpu->core; in arc_cpu_mumbojumbo()
150 FIX_PTR(cpu); in arc_cpu_mumbojumbo()
156 atomic = cpu->isa.atomic1; in arc_cpu_mumbojumbo()
157 if (!cpu->isa.ver) /* ISA BCR absent, use Kconfig info */ in arc_cpu_mumbojumbo()
184 IS_AVAIL1(cpu->timers.t0, "Timer0 "), in arc_cpu_mumbojumbo()
185 IS_AVAIL1(cpu->timers.t1, "Timer1 "), in arc_cpu_mumbojumbo()
186 IS_AVAIL2(cpu->timers.rtsc, "64-bit RTSC ", CONFIG_ARC_HAS_RTSC)); in arc_cpu_mumbojumbo()
195 IS_AVAIL1(cpu->extn_mpy.ver, "mpy "), in arc_cpu_mumbojumbo()
196 IS_AVAIL1(cpu->extn.norm, "norm "), in arc_cpu_mumbojumbo()
197 IS_AVAIL1(cpu->extn.barrel, "barrel-shift "), in arc_cpu_mumbojumbo()
198 IS_AVAIL1(cpu->extn.swap, "swap "), in arc_cpu_mumbojumbo()
199 IS_AVAIL1(cpu->extn.minmax, "minmax "), in arc_cpu_mumbojumbo()
200 IS_AVAIL1(cpu->extn.crc, "crc "), in arc_cpu_mumbojumbo()
203 if (cpu->bpu.ver) in arc_cpu_mumbojumbo()
206 IS_AVAIL1(cpu->bpu.full, "full"), in arc_cpu_mumbojumbo()
207 IS_AVAIL1(!cpu->bpu.full, "partial"), in arc_cpu_mumbojumbo()
208 cpu->bpu.num_cache, cpu->bpu.num_pred); in arc_cpu_mumbojumbo()
216 struct cpuinfo_arc *cpu = &cpuinfo_arc700[cpu_id]; in arc_extn_mumbojumbo() local
218 FIX_PTR(cpu); in arc_extn_mumbojumbo()
222 cpu->vec_base, cpu->uncached_base); in arc_extn_mumbojumbo()
224 if (cpu->extn.fpu_sp || cpu->extn.fpu_dp) in arc_extn_mumbojumbo()
226 IS_AVAIL1(cpu->extn.fpu_sp, "SP "), in arc_extn_mumbojumbo()
227 IS_AVAIL1(cpu->extn.fpu_dp, "DP ")); in arc_extn_mumbojumbo()
229 if (cpu->extn.debug) in arc_extn_mumbojumbo()
231 IS_AVAIL1(cpu->extn.ap, "ActionPoint "), in arc_extn_mumbojumbo()
232 IS_AVAIL1(cpu->extn.smart, "smaRT "), in arc_extn_mumbojumbo()
233 IS_AVAIL1(cpu->extn.rtt, "RTT ")); in arc_extn_mumbojumbo()
235 if (cpu->dccm.sz || cpu->iccm.sz) in arc_extn_mumbojumbo()
237 cpu->dccm.base_addr, TO_KB(cpu->dccm.sz), in arc_extn_mumbojumbo()
238 cpu->iccm.base_addr, TO_KB(cpu->iccm.sz)); in arc_extn_mumbojumbo()
248 struct cpuinfo_arc *cpu = &cpuinfo_arc700[smp_processor_id()]; in arc_chk_core_config() local
251 if (!cpu->timers.t0) in arc_chk_core_config()
254 if (!cpu->timers.t1) in arc_chk_core_config()
257 if (IS_ENABLED(CONFIG_ARC_HAS_RTSC) && !cpu->timers.rtsc) in arc_chk_core_config()
265 if ((unsigned int)__arc_dccm_base != cpu->dccm.base_addr) in arc_chk_core_config()
268 if (CONFIG_ARC_DCCM_SZ != cpu->dccm.sz) in arc_chk_core_config()
273 if (CONFIG_ARC_ICCM_SZ != cpu->iccm.sz) in arc_chk_core_config()
286 if (cpu->extn.fpu_dp && !fpu_enabled) in arc_chk_core_config()
288 else if (!cpu->extn.fpu_dp && fpu_enabled) in arc_chk_core_config()
473 static DEFINE_PER_CPU(struct cpu, cpu_topology);
477 int cpu; in topology_init() local
479 for_each_present_cpu(cpu) in topology_init()
480 register_cpu(&per_cpu(cpu_topology, cpu), cpu); in topology_init()