Lines Matching refs:cpu

49 	struct cpuinfo_arc *cpu = &cpuinfo_arc700[smp_processor_id()];  in read_arc_build_cfg_regs()  local
51 FIX_PTR(cpu); in read_arc_build_cfg_regs()
53 READ_BCR(AUX_IDENTITY, cpu->core); in read_arc_build_cfg_regs()
54 READ_BCR(ARC_REG_ISA_CFG_BCR, cpu->isa); in read_arc_build_cfg_regs()
56 READ_BCR(ARC_REG_TIMERS_BCR, cpu->timers); in read_arc_build_cfg_regs()
57 cpu->vec_base = read_aux_reg(AUX_INTR_VEC_BASE); in read_arc_build_cfg_regs()
67 READ_BCR(ARC_REG_MUL_BCR, cpu->extn_mpy); in read_arc_build_cfg_regs()
69 cpu->extn.norm = read_aux_reg(ARC_REG_NORM_BCR) > 1 ? 1 : 0; /* 2,3 */ in read_arc_build_cfg_regs()
70 cpu->extn.barrel = read_aux_reg(ARC_REG_BARREL_BCR) > 1 ? 1 : 0; /* 2,3 */ in read_arc_build_cfg_regs()
71 cpu->extn.swap = read_aux_reg(ARC_REG_SWAP_BCR) ? 1 : 0; /* 1,3 */ in read_arc_build_cfg_regs()
72 cpu->extn.crc = read_aux_reg(ARC_REG_CRC_BCR) ? 1 : 0; in read_arc_build_cfg_regs()
73 cpu->extn.minmax = read_aux_reg(ARC_REG_MIXMAX_BCR) > 1 ? 1 : 0; /* 2 */ in read_arc_build_cfg_regs()
88 cpu->iccm.base_addr = iccm.base << 16; in read_arc_build_cfg_regs()
89 cpu->iccm.sz = 0x2000 << (iccm.sz - 1); in read_arc_build_cfg_regs()
95 cpu->dccm.sz = 0x800 << (dccm.sz); in read_arc_build_cfg_regs()
98 cpu->dccm.base_addr = dccm_base.addr << 8; in read_arc_build_cfg_regs()
102 READ_BCR(ARC_REG_XY_MEM_BCR, cpu->extn_xymem); in read_arc_build_cfg_regs()
113 cpu->extn.fpu_sp = sp.ver ? 1 : 0; in read_arc_build_cfg_regs()
114 cpu->extn.fpu_dp = dp.ver ? 1 : 0; in read_arc_build_cfg_regs()
117 cpu->bpu.ver = bpu.ver; in read_arc_build_cfg_regs()
118 cpu->bpu.full = bpu.fam ? 1 : 0; in read_arc_build_cfg_regs()
120 cpu->bpu.num_cache = 256 << (bpu.ent - 1); in read_arc_build_cfg_regs()
121 cpu->bpu.num_pred = 256 << (bpu.ent - 1); in read_arc_build_cfg_regs()
128 cpu->extn.fpu_sp = spdp.sp ? 1 : 0; in read_arc_build_cfg_regs()
129 cpu->extn.fpu_dp = spdp.dp ? 1 : 0; in read_arc_build_cfg_regs()
132 cpu->bpu.ver = bpu.ver; in read_arc_build_cfg_regs()
133 cpu->bpu.full = bpu.ft; in read_arc_build_cfg_regs()
134 cpu->bpu.num_cache = 256 << bpu.bce; in read_arc_build_cfg_regs()
135 cpu->bpu.num_pred = 2048 << bpu.pte; in read_arc_build_cfg_regs()
139 cpu->extn.ap = bcr.ver ? 1 : 0; in read_arc_build_cfg_regs()
142 cpu->extn.smart = bcr.ver ? 1 : 0; in read_arc_build_cfg_regs()
145 cpu->extn.rtt = bcr.ver ? 1 : 0; in read_arc_build_cfg_regs()
147 cpu->extn.debug = cpu->extn.ap | cpu->extn.smart | cpu->extn.rtt; in read_arc_build_cfg_regs()
166 struct cpuinfo_arc *cpu = &cpuinfo_arc700[cpu_id]; in arc_cpu_mumbojumbo() local
167 struct bcr_identity *core = &cpu->core; in arc_cpu_mumbojumbo()
173 FIX_PTR(cpu); in arc_cpu_mumbojumbo()
179 atomic = cpu->isa.atomic1; in arc_cpu_mumbojumbo()
180 if (!cpu->isa.ver) /* ISA BCR absent, use Kconfig info */ in arc_cpu_mumbojumbo()
184 be = cpu->isa.be; in arc_cpu_mumbojumbo()
185 atomic = cpu->isa.atomic; in arc_cpu_mumbojumbo()
211 IS_AVAIL1(cpu->timers.t0, "Timer0 "), in arc_cpu_mumbojumbo()
212 IS_AVAIL1(cpu->timers.t1, "Timer1 "), in arc_cpu_mumbojumbo()
213 IS_AVAIL2(cpu->timers.rtc, "64-bit RTC ", in arc_cpu_mumbojumbo()
218 IS_AVAIL2(cpu->isa.ldd, "ll64 ", CONFIG_ARC_HAS_LL64), in arc_cpu_mumbojumbo()
219 IS_AVAIL1(cpu->isa.unalign, "unalign (not used)")); in arc_cpu_mumbojumbo()
224 if (cpu->extn_mpy.ver) { in arc_cpu_mumbojumbo()
225 if (cpu->extn_mpy.ver <= 0x2) { /* ARCompact */ in arc_cpu_mumbojumbo()
230 if (cpu->extn_mpy.dsp) /* OPT 7-9 */ in arc_cpu_mumbojumbo()
231 opt = cpu->extn_mpy.dsp + 6; in arc_cpu_mumbojumbo()
240 IS_AVAIL1(cpu->isa.div_rem, "div_rem "), in arc_cpu_mumbojumbo()
241 IS_AVAIL1(cpu->extn.norm, "norm "), in arc_cpu_mumbojumbo()
242 IS_AVAIL1(cpu->extn.barrel, "barrel-shift "), in arc_cpu_mumbojumbo()
243 IS_AVAIL1(cpu->extn.swap, "swap "), in arc_cpu_mumbojumbo()
244 IS_AVAIL1(cpu->extn.minmax, "minmax "), in arc_cpu_mumbojumbo()
245 IS_AVAIL1(cpu->extn.crc, "crc "), in arc_cpu_mumbojumbo()
248 if (cpu->bpu.ver) in arc_cpu_mumbojumbo()
251 IS_AVAIL1(cpu->bpu.full, "full"), in arc_cpu_mumbojumbo()
252 IS_AVAIL1(!cpu->bpu.full, "partial"), in arc_cpu_mumbojumbo()
253 cpu->bpu.num_cache, cpu->bpu.num_pred); in arc_cpu_mumbojumbo()
261 struct cpuinfo_arc *cpu = &cpuinfo_arc700[cpu_id]; in arc_extn_mumbojumbo() local
263 FIX_PTR(cpu); in arc_extn_mumbojumbo()
267 cpu->vec_base, ARC_UNCACHED_ADDR_SPACE); in arc_extn_mumbojumbo()
269 if (cpu->extn.fpu_sp || cpu->extn.fpu_dp) in arc_extn_mumbojumbo()
271 IS_AVAIL1(cpu->extn.fpu_sp, "SP "), in arc_extn_mumbojumbo()
272 IS_AVAIL1(cpu->extn.fpu_dp, "DP ")); in arc_extn_mumbojumbo()
274 if (cpu->extn.debug) in arc_extn_mumbojumbo()
276 IS_AVAIL1(cpu->extn.ap, "ActionPoint "), in arc_extn_mumbojumbo()
277 IS_AVAIL1(cpu->extn.smart, "smaRT "), in arc_extn_mumbojumbo()
278 IS_AVAIL1(cpu->extn.rtt, "RTT ")); in arc_extn_mumbojumbo()
280 if (cpu->dccm.sz || cpu->iccm.sz) in arc_extn_mumbojumbo()
282 cpu->dccm.base_addr, TO_KB(cpu->dccm.sz), in arc_extn_mumbojumbo()
283 cpu->iccm.base_addr, TO_KB(cpu->iccm.sz)); in arc_extn_mumbojumbo()
293 struct cpuinfo_arc *cpu = &cpuinfo_arc700[smp_processor_id()]; in arc_chk_core_config() local
296 if (!cpu->timers.t0) in arc_chk_core_config()
299 if (!cpu->timers.t1) in arc_chk_core_config()
302 if (IS_ENABLED(CONFIG_ARC_HAS_RTC) && !cpu->timers.rtc) in arc_chk_core_config()
310 if ((unsigned int)__arc_dccm_base != cpu->dccm.base_addr) in arc_chk_core_config()
313 if (CONFIG_ARC_DCCM_SZ != cpu->dccm.sz) in arc_chk_core_config()
318 if (CONFIG_ARC_ICCM_SZ != cpu->iccm.sz) in arc_chk_core_config()
331 if (cpu->extn.fpu_dp && !fpu_enabled) in arc_chk_core_config()
333 else if (!cpu->extn.fpu_dp && fpu_enabled) in arc_chk_core_config()
336 if (is_isa_arcv2() && IS_ENABLED(CONFIG_SMP) && cpu->isa.atomic && in arc_chk_core_config()
525 static DEFINE_PER_CPU(struct cpu, cpu_topology);
529 int cpu; in topology_init() local
531 for_each_present_cpu(cpu) in topology_init()
532 register_cpu(&per_cpu(cpu_topology, cpu), cpu); in topology_init()