Lines Matching +full:fiq +full:- +full:device
1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright (C) 1995-2001 Russell King
46 #include <asm/mach-types.h>
140 u32 fiq[4]; member
300 /* I-cache aliases will be handled by D-cache aliasing code */ in cpu_has_aliasing_icache()
353 * These functions re-use the assembly code in head.S, which
527 * cpu_init - initialise one CPU.
529 * cpu_init sets up the per-CPU stacks.
552 * In Thumb-2, msr with an immediate value is not allowed. in cpu_init()
563 * setup stacks for re-entrant exception handlers in cpu_init()
588 "I" (offsetof(struct stack, fiq[0])), in cpu_init()
594 u32 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = MPIDR_INVALID };
619 * smp_build_mpidr_hash - Pre-compute shifts required at each affinity
629 * Pre-scan the list of MPIDRS and filter out bits that do in smp_build_mpidr_hash()
647 fs[i] = affinity ? ffs(affinity) - 1 : 0; in smp_build_mpidr_hash()
648 bits[i] = ls - fs[i]; in smp_build_mpidr_hash()
661 mpidr_hash.shift_aff[1] = MPIDR_LEVEL_BITS + fs[1] - bits[0]; in smp_build_mpidr_hash()
662 mpidr_hash.shift_aff[2] = 2*MPIDR_LEVEL_BITS + fs[2] - in smp_build_mpidr_hash()
684 * builds this table for us from the entries in arch/arm/mm/proc-*.S
705 cpu_name = list->cpu_name; in setup_processor()
708 init_proc_vtable(list->proc); in setup_processor()
710 cpu_tlb = *list->tlb; in setup_processor()
713 cpu_user = *list->user; in setup_processor()
716 cpu_cache = *list->cache; in setup_processor()
720 list->cpu_name, midr, midr & 15, in setup_processor()
723 snprintf(init_utsname()->machine, __NEW_UTS_LEN + 1, "%s%c", in setup_processor()
724 list->arch_name, ENDIANNESS); in setup_processor()
726 list->elf_name, ENDIANNESS); in setup_processor()
727 elf_hwcap = list->elf_hwcap; in setup_processor()
736 init_default_cache_policy(list->__cpu_mm_mmu_flags); in setup_processor()
752 early_print("%08x\t%s\n", p->nr, p->name); in dump_machine_table()
772 size -= aligned_start - start; in arm_add_memory()
776 pr_crit("Ignoring memory at 0x%08llx outside 32-bit physical address space\n", in arm_add_memory()
778 return -EINVAL; in arm_add_memory()
782 pr_crit("Truncating memory at 0x%08llx to fit in 32-bit physical address space\n", in arm_add_memory()
785 * To ensure bank->start + bank->size is representable in in arm_add_memory()
789 size = ULONG_MAX - aligned_start; in arm_add_memory()
795 pr_info("Ignoring memory below PHYS_OFFSET: 0x%08llx-0x%08llx\n", in arm_add_memory()
797 return -EINVAL; in arm_add_memory()
800 pr_info("Ignoring memory below PHYS_OFFSET: 0x%08llx-0x%08llx\n", in arm_add_memory()
803 size -= PHYS_OFFSET - aligned_start; in arm_add_memory()
808 size = size & ~(phys_addr_t)(PAGE_SIZE - 1); in arm_add_memory()
811 * Check whether this memory region has non-zero size or in arm_add_memory()
815 return -EINVAL; in arm_add_memory()
841 memblock_end_of_DRAM() - memblock_start_of_DRAM()); in early_mem()
862 kernel_code.end = virt_to_phys(__init_begin - 1); in request_standard_resources()
864 kernel_data.end = virt_to_phys(_end - 1); in request_standard_resources()
874 res_end = end - 1; in request_standard_resources()
879 * kexec-tools so they know where bootable RAM is located. in request_standard_resources()
887 res->name = "System RAM (boot alias)"; in request_standard_resources()
888 res->start = boot_alias_start; in request_standard_resources()
889 res->end = phys_to_idmap(res_end); in request_standard_resources()
890 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; in request_standard_resources()
898 res->name = "System RAM"; in request_standard_resources()
899 res->start = start; in request_standard_resources()
900 res->end = res_end; in request_standard_resources()
901 res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY; in request_standard_resources()
905 if (kernel_code.start >= res->start && in request_standard_resources()
906 kernel_code.end <= res->end) in request_standard_resources()
908 if (kernel_data.start >= res->start && in request_standard_resources()
909 kernel_data.end <= res->end) in request_standard_resources()
913 if (mdesc->video_start) { in request_standard_resources()
914 video_ram.start = mdesc->video_start; in request_standard_resources()
915 video_ram.end = mdesc->video_end; in request_standard_resources()
923 if (mdesc->reserve_lp0) in request_standard_resources()
925 if (mdesc->reserve_lp1) in request_standard_resources()
927 if (mdesc->reserve_lp2) in request_standard_resources()
947 * machine from the device tree, if no callback is provided, in customize_machine()
950 if (machine_desc->init_machine) in customize_machine()
951 machine_desc->init_machine(); in customize_machine()
962 if (machine_desc->init_late) in init_machine_late()
963 machine_desc->init_late(); in init_machine_late()
967 ret = of_property_read_string(root, "serial-number", in init_machine_late()
993 total = max_low_pfn - min_low_pfn; in get_total_mem()
998 * reserve_crashkernel() - reserves memory are for crash kernel
1020 unsigned long long lowmem_max = __pa(high_memory - 1) + 1; in reserve_crashkernel()
1027 pr_err("crashkernel reservation failed - No suitable area found.\n"); in reserve_crashkernel()
1037 pr_err("crashkernel reservation failed - memory is in use.\n"); in reserve_crashkernel()
1049 crashk_res.end = crash_base + crash_size - 1; in reserve_crashkernel()
1063 crashk_boot_res.end = crashk_boot_res.start + crash_size - 1; in reserve_crashkernel()
1129 machine_name = mdesc->name; in setup_arch()
1130 dump_stack_set_arch_desc("%s", mdesc->name); in setup_arch()
1132 if (mdesc->reboot_mode != REBOOT_HARD) in setup_arch()
1133 reboot_mode = mdesc->reboot_mode; in setup_arch()
1167 if (mdesc->restart) { in setup_arch()
1168 __arm_pm_restart = mdesc->restart; in setup_arch()
1178 if (!mdesc->smp_init || !mdesc->smp_init()) { in setup_arch()
1181 else if (mdesc->smp) in setup_arch()
1182 smp_set_ops(mdesc->smp); in setup_arch()
1200 if (mdesc->init_early) in setup_arch()
1201 mdesc->init_early(); in setup_arch()
1216 return -ENOMEM; in proc_cpu_init()
1306 /* pre-ARM7 */ in c_show()
1314 /* post-ARM7 */ in c_show()