setup.c (70f3522614e60b6125eff5f9dd7c887543812187) | setup.c (76551468833cd5c356b1d9ff4bc9393fcf768a59) |
---|---|
1/* 2 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 --- 249 unchanged lines hidden (view full) --- 258 cpu->isa = isa; 259 } 260} 261 262static char *arc_cpu_mumbojumbo(int cpu_id, char *buf, int len) 263{ 264 struct cpuinfo_arc *cpu = &cpuinfo_arc700[cpu_id]; 265 struct bcr_identity *core = &cpu->core; | 1/* 2 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 --- 249 unchanged lines hidden (view full) --- 258 cpu->isa = isa; 259 } 260} 261 262static char *arc_cpu_mumbojumbo(int cpu_id, char *buf, int len) 263{ 264 struct cpuinfo_arc *cpu = &cpuinfo_arc700[cpu_id]; 265 struct bcr_identity *core = &cpu->core; |
266 int i, n = 0, ua = 0; | 266 int n = 0; |
267 268 FIX_PTR(cpu); 269 270 n += scnprintf(buf + n, len - n, 271 "\nIDENTITY\t: ARCVER [%#02x] ARCNUM [%#02x] CHIPID [%#4x]\n", 272 core->family, core->cpu_id, core->chip_id); 273 274 n += scnprintf(buf + n, len - n, "processor [%d]\t: %s %s (%s ISA) %s%s%s\n", 275 cpu_id, cpu->name, cpu->details, 276 is_isa_arcompact() ? "ARCompact" : "ARCv2", 277 IS_AVAIL1(cpu->isa.be, "[Big-Endian]"), 278 IS_AVAIL3(cpu->extn.dual, cpu->extn.dual_enb, " Dual-Issue ")); 279 280 n += scnprintf(buf + n, len - n, "Timers\t\t: %s%s%s%s%s%s\nISA Extn\t: ", 281 IS_AVAIL1(cpu->extn.timer0, "Timer0 "), 282 IS_AVAIL1(cpu->extn.timer1, "Timer1 "), 283 IS_AVAIL2(cpu->extn.rtc, "RTC [UP 64-bit] ", CONFIG_ARC_TIMERS_64BIT), 284 IS_AVAIL2(cpu->extn.gfrc, "GFRC [SMP 64-bit] ", CONFIG_ARC_TIMERS_64BIT)); 285 | 267 268 FIX_PTR(cpu); 269 270 n += scnprintf(buf + n, len - n, 271 "\nIDENTITY\t: ARCVER [%#02x] ARCNUM [%#02x] CHIPID [%#4x]\n", 272 core->family, core->cpu_id, core->chip_id); 273 274 n += scnprintf(buf + n, len - n, "processor [%d]\t: %s %s (%s ISA) %s%s%s\n", 275 cpu_id, cpu->name, cpu->details, 276 is_isa_arcompact() ? "ARCompact" : "ARCv2", 277 IS_AVAIL1(cpu->isa.be, "[Big-Endian]"), 278 IS_AVAIL3(cpu->extn.dual, cpu->extn.dual_enb, " Dual-Issue ")); 279 280 n += scnprintf(buf + n, len - n, "Timers\t\t: %s%s%s%s%s%s\nISA Extn\t: ", 281 IS_AVAIL1(cpu->extn.timer0, "Timer0 "), 282 IS_AVAIL1(cpu->extn.timer1, "Timer1 "), 283 IS_AVAIL2(cpu->extn.rtc, "RTC [UP 64-bit] ", CONFIG_ARC_TIMERS_64BIT), 284 IS_AVAIL2(cpu->extn.gfrc, "GFRC [SMP 64-bit] ", CONFIG_ARC_TIMERS_64BIT)); 285 |
286#ifdef __ARC_UNALIGNED__ 287 ua = 1; | 286 n += scnprintf(buf + n, len - n, "%s%s%s%s%s%s", 287 IS_AVAIL2(cpu->isa.atomic, "atomic ", CONFIG_ARC_HAS_LLSC), 288 IS_AVAIL2(cpu->isa.ldd, "ll64 ", CONFIG_ARC_HAS_LL64), 289 IS_AVAIL2(cpu->isa.unalign, "unalign ", CONFIG_ARC_USE_UNALIGNED_MEM_ACCESS)); 290 291#if defined(__ARC_UNALIGNED__) && !defined(CONFIG_ARC_USE_UNALIGNED_MEM_ACCESS) 292 /* 293 * gcc 7.3.1 (GNU 2018.03) onwards generate unaligned access by default 294 * but -mno-unaligned-access to disable that didn't work until gcc 8.2.1 295 * (GNU 2019.03). So landing here implies the interim period, when 296 * despite Kconfig being off, gcc is generating unaligned accesses which 297 * could bomb later on. So better to disallow such broken builds 298 */ 299 BUILD_BUG_ON_MSG(1, "gcc doesn't support -mno-unaligned-access"); |
288#endif | 300#endif |
289 n += i = scnprintf(buf + n, len - n, "%s%s%s%s%s%s", 290 IS_AVAIL2(cpu->isa.atomic, "atomic ", CONFIG_ARC_HAS_LLSC), 291 IS_AVAIL2(cpu->isa.ldd, "ll64 ", CONFIG_ARC_HAS_LL64), 292 IS_AVAIL1(cpu->isa.unalign, "unalign "), IS_USED_RUN(ua)); | |
293 | 301 |
294 if (i) 295 n += scnprintf(buf + n, len - n, "\n\t\t: "); | 302 n += scnprintf(buf + n, len - n, "\n\t\t: "); |
296 297 if (cpu->extn_mpy.ver) { 298 if (cpu->extn_mpy.ver <= 0x2) { /* ARCompact */ 299 n += scnprintf(buf + n, len - n, "mpy "); 300 } else { 301 int opt = 2; /* stock MPY/MPYH */ 302 303 if (cpu->extn_mpy.dsp) /* OPT 7-9 */ --- 400 unchanged lines hidden --- | 303 304 if (cpu->extn_mpy.ver) { 305 if (cpu->extn_mpy.ver <= 0x2) { /* ARCompact */ 306 n += scnprintf(buf + n, len - n, "mpy "); 307 } else { 308 int opt = 2; /* stock MPY/MPYH */ 309 310 if (cpu->extn_mpy.dsp) /* OPT 7-9 */ --- 400 unchanged lines hidden --- |