Lines Matching full:isa
28 /* Host ISA bitmap */
37 * @isa_bitmap: ISA bitmap to use
40 * NOTE: If isa_bitmap is NULL then Host ISA bitmap will be used.
54 * @isa_bitmap: ISA bitmap to use
58 * NOTE: If isa_bitmap is NULL then Host ISA bitmap will be used.
74 const char *isa; in riscv_fill_hwcap() local
100 if (of_property_read_string(node, "riscv,isa", &isa)) { in riscv_fill_hwcap()
101 pr_warn("Unable to find \"riscv,isa\" devicetree entry\n"); in riscv_fill_hwcap()
105 temp = isa; in riscv_fill_hwcap()
107 if (!strncmp(isa, "rv32", 4)) in riscv_fill_hwcap()
108 isa += 4; in riscv_fill_hwcap()
110 if (!strncmp(isa, "rv64", 4)) in riscv_fill_hwcap()
111 isa += 4; in riscv_fill_hwcap()
113 /* The riscv,isa DT property must start with rv64 or rv32 */ in riscv_fill_hwcap()
114 if (temp == isa) in riscv_fill_hwcap()
117 for (; *isa; ++isa) { in riscv_fill_hwcap()
118 const char *ext = isa++; in riscv_fill_hwcap()
119 const char *ext_end = isa; in riscv_fill_hwcap()
127 * not valid ISA extensions. It works until multi-letter in riscv_fill_hwcap()
131 ++isa; in riscv_fill_hwcap()
140 for (; *isa && *isa != '_'; ++isa) in riscv_fill_hwcap()
141 if (unlikely(!islower(*isa) in riscv_fill_hwcap()
142 && !isdigit(*isa))) in riscv_fill_hwcap()
145 ext_end = isa; in riscv_fill_hwcap()
170 if (!isdigit(*isa)) in riscv_fill_hwcap()
173 while (isdigit(*++isa)) in riscv_fill_hwcap()
175 if (*isa != 'p') in riscv_fill_hwcap()
177 if (!isdigit(*++isa)) { in riscv_fill_hwcap()
178 --isa; in riscv_fill_hwcap()
182 while (isdigit(*++isa)) in riscv_fill_hwcap()
186 if (*isa != '_') in riscv_fill_hwcap()
187 --isa; in riscv_fill_hwcap()
213 * All "okay" hart should have same isa. Set HWCAP based on in riscv_fill_hwcap()
239 pr_info("riscv: base ISA extensions %s\n", print_str); in riscv_fill_hwcap()