Lines Matching +full:fiq +full:- +full:index
1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright (C) 1995-2001 Russell King
46 #include <asm/mach-types.h>
147 u32 fiq[4]; member
307 /* I-cache aliases will be handled by D-cache aliasing code */ in cpu_has_aliasing_icache()
360 * These functions re-use the assembly code in head.S, which
520 * cpu_init - initialise one CPU.
522 * cpu_init sets up the per-CPU stacks.
545 * In Thumb-2, msr with an immediate value is not allowed. in cpu_init()
556 * setup stacks for re-entrant exception handlers in cpu_init()
581 "I" (offsetof(struct stack, fiq[0])), in cpu_init()
587 u32 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = MPIDR_INVALID };
612 * smp_build_mpidr_hash - Pre-compute shifts required at each affinity
613 * level in order to build a linear index from an
622 * Pre-scan the list of MPIDRS and filter out bits that do in smp_build_mpidr_hash()
640 fs[i] = affinity ? ffs(affinity) - 1 : 0; in smp_build_mpidr_hash()
641 bits[i] = ls - fs[i]; in smp_build_mpidr_hash()
644 * An index can be created from the MPIDR by isolating the in smp_build_mpidr_hash()
654 mpidr_hash.shift_aff[1] = MPIDR_LEVEL_BITS + fs[1] - bits[0]; in smp_build_mpidr_hash()
655 mpidr_hash.shift_aff[2] = 2*MPIDR_LEVEL_BITS + fs[2] - in smp_build_mpidr_hash()
677 * builds this table for us from the entries in arch/arm/mm/proc-*.S
698 cpu_name = list->cpu_name; in setup_processor()
701 init_proc_vtable(list->proc); in setup_processor()
703 cpu_tlb = *list->tlb; in setup_processor()
706 cpu_user = *list->user; in setup_processor()
709 cpu_cache = *list->cache; in setup_processor()
713 list->cpu_name, midr, midr & 15, in setup_processor()
716 snprintf(init_utsname()->machine, __NEW_UTS_LEN + 1, "%s%c", in setup_processor()
717 list->arch_name, ENDIANNESS); in setup_processor()
719 list->elf_name, ENDIANNESS); in setup_processor()
720 elf_hwcap = list->elf_hwcap; in setup_processor()
729 init_default_cache_policy(list->__cpu_mm_mmu_flags); in setup_processor()
745 early_print("%08x\t%s\n", p->nr, p->name); in dump_machine_table()
765 size -= aligned_start - start; in arm_add_memory()
769 pr_crit("Ignoring memory at 0x%08llx outside 32-bit physical address space\n", in arm_add_memory()
771 return -EINVAL; in arm_add_memory()
775 pr_crit("Truncating memory at 0x%08llx to fit in 32-bit physical address space\n", in arm_add_memory()
778 * To ensure bank->start + bank->size is representable in in arm_add_memory()
782 size = ULONG_MAX - aligned_start; in arm_add_memory()
788 pr_info("Ignoring memory below PHYS_OFFSET: 0x%08llx-0x%08llx\n", in arm_add_memory()
790 return -EINVAL; in arm_add_memory()
793 pr_info("Ignoring memory below PHYS_OFFSET: 0x%08llx-0x%08llx\n", in arm_add_memory()
796 size -= PHYS_OFFSET - aligned_start; in arm_add_memory()
801 size = size & ~(phys_addr_t)(PAGE_SIZE - 1); in arm_add_memory()
804 * Check whether this memory region has non-zero size or in arm_add_memory()
808 return -EINVAL; in arm_add_memory()
834 memblock_end_of_DRAM() - memblock_start_of_DRAM()); in early_mem()
855 kernel_code.end = virt_to_phys(__init_begin - 1); in request_standard_resources()
857 kernel_data.end = virt_to_phys(_end - 1); in request_standard_resources()
867 res_end = end - 1; in request_standard_resources()
872 * kexec-tools so they know where bootable RAM is located. in request_standard_resources()
880 res->name = "System RAM (boot alias)"; in request_standard_resources()
881 res->start = boot_alias_start; in request_standard_resources()
882 res->end = phys_to_idmap(res_end); in request_standard_resources()
883 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; in request_standard_resources()
891 res->name = "System RAM"; in request_standard_resources()
892 res->start = start; in request_standard_resources()
893 res->end = res_end; in request_standard_resources()
894 res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY; in request_standard_resources()
898 if (kernel_code.start >= res->start && in request_standard_resources()
899 kernel_code.end <= res->end) in request_standard_resources()
901 if (kernel_data.start >= res->start && in request_standard_resources()
902 kernel_data.end <= res->end) in request_standard_resources()
906 if (mdesc->video_start) { in request_standard_resources()
907 video_ram.start = mdesc->video_start; in request_standard_resources()
908 video_ram.end = mdesc->video_end; in request_standard_resources()
916 if (mdesc->reserve_lp0) in request_standard_resources()
918 if (mdesc->reserve_lp1) in request_standard_resources()
920 if (mdesc->reserve_lp2) in request_standard_resources()
944 if (machine_desc->init_machine) in customize_machine()
945 machine_desc->init_machine(); in customize_machine()
956 if (machine_desc->init_late) in init_machine_late()
957 machine_desc->init_late(); in init_machine_late()
961 ret = of_property_read_string(root, "serial-number", in init_machine_late()
987 total = max_low_pfn - min_low_pfn; in get_total_mem()
992 * reserve_crashkernel() - reserves memory are for crash kernel
1013 unsigned long long lowmem_max = __pa(high_memory - 1) + 1; in reserve_crashkernel()
1020 pr_err("crashkernel reservation failed - No suitable area found.\n"); in reserve_crashkernel()
1030 pr_err("crashkernel reservation failed - memory is in use.\n"); in reserve_crashkernel()
1042 crashk_res.end = crash_base + crash_size - 1; in reserve_crashkernel()
1056 crashk_boot_res.end = crashk_boot_res.start + crash_size - 1; in reserve_crashkernel()
1122 machine_name = mdesc->name; in setup_arch()
1123 dump_stack_set_arch_desc("%s", mdesc->name); in setup_arch()
1125 if (mdesc->reboot_mode != REBOOT_HARD) in setup_arch()
1126 reboot_mode = mdesc->reboot_mode; in setup_arch()
1160 if (mdesc->restart) { in setup_arch()
1161 __arm_pm_restart = mdesc->restart; in setup_arch()
1171 if (!mdesc->smp_init || !mdesc->smp_init()) { in setup_arch()
1174 else if (mdesc->smp) in setup_arch()
1175 smp_set_ops(mdesc->smp); in setup_arch()
1188 handle_arch_irq = mdesc->handle_irq; in setup_arch()
1197 if (mdesc->init_early) in setup_arch()
1198 mdesc->init_early(); in setup_arch()
1208 cpuinfo->cpu.hotpluggable = platform_can_hotplug_cpu(cpu); in topology_init()
1209 register_cpu(&cpuinfo->cpu, cpu); in topology_init()
1223 return -ENOMEM; in proc_cpu_init()
1305 /* pre-ARM7 */ in c_show()
1313 /* post-ARM7 */ in c_show()