Lines Matching +full:bank +full:- +full:ioport

1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright (C) 1995-2001 Russell King
11 #include <linux/ioport.h>
46 #include <asm/mach-types.h>
300 /* I-cache aliases will be handled by D-cache aliasing code */
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.
563 * setup stacks for re-entrant exception handlers
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
647 fs[i] = affinity ? ffs(affinity) - 1 : 0;
648 bits[i] = ls - fs[i];
661 mpidr_hash.shift_aff[1] = MPIDR_LEVEL_BITS + fs[1] - bits[0];
662 mpidr_hash.shift_aff[2] = 2*MPIDR_LEVEL_BITS + fs[2] -
684 * builds this table for us from the entries in arch/arm/mm/proc-*.S
705 cpu_name = list->cpu_name;
708 init_proc_vtable(list->proc);
710 cpu_tlb = *list->tlb;
713 cpu_user = *list->user;
716 cpu_cache = *list->cache;
720 list->cpu_name, midr, midr & 15,
723 snprintf(init_utsname()->machine, __NEW_UTS_LEN + 1, "%s%c",
724 list->arch_name, ENDIANNESS);
726 list->elf_name, ENDIANNESS);
727 elf_hwcap = list->elf_hwcap;
736 init_default_cache_policy(list->__cpu_mm_mmu_flags);
752 early_print("%08x\t%s\n", p->nr, p->name);
772 size -= aligned_start - start;
776 pr_crit("Ignoring memory at 0x%08llx outside 32-bit physical address space\n",
778 return -EINVAL;
782 pr_crit("Truncating memory at 0x%08llx to fit in 32-bit physical address space\n",
785 * To ensure bank->start + bank->size is representable in
789 size = ULONG_MAX - aligned_start;
795 pr_info("Ignoring memory below PHYS_OFFSET: 0x%08llx-0x%08llx\n",
797 return -EINVAL;
800 pr_info("Ignoring memory below PHYS_OFFSET: 0x%08llx-0x%08llx\n",
803 size -= PHYS_OFFSET - aligned_start;
808 size = size & ~(phys_addr_t)(PAGE_SIZE - 1);
811 * Check whether this memory region has non-zero size or
815 return -EINVAL;
841 memblock_end_of_DRAM() - memblock_start_of_DRAM());
862 kernel_code.end = virt_to_phys(__init_begin - 1);
864 kernel_data.end = virt_to_phys(_end - 1);
874 res_end = end - 1;
879 * kexec-tools so they know where bootable RAM is located.
884 res->name = "System RAM (boot alias)";
885 res->start = boot_alias_start;
886 res->end = phys_to_idmap(res_end);
887 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
892 res->name = "System RAM";
893 res->start = start;
894 res->end = res_end;
895 res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY;
899 if (kernel_code.start >= res->start &&
900 kernel_code.end <= res->end)
902 if (kernel_data.start >= res->start &&
903 kernel_data.end <= res->end)
907 if (mdesc->video_start) {
908 video_ram.start = mdesc->video_start;
909 video_ram.end = mdesc->video_end;
917 if (mdesc->reserve_lp0)
919 if (mdesc->reserve_lp1)
921 if (mdesc->reserve_lp2)
944 if (machine_desc->init_machine)
945 machine_desc->init_machine();
956 if (machine_desc->init_late)
957 machine_desc->init_late();
961 ret = of_property_read_string(root, "serial-number",
987 total = max_low_pfn - min_low_pfn;
992 * reserve_crashkernel() - reserves memory are for crash kernel
1014 unsigned long long lowmem_max = __pa(high_memory - 1) + 1;
1021 pr_err("crashkernel reservation failed - No suitable area found.\n");
1031 pr_err("crashkernel reservation failed - memory is in use.\n");
1043 crashk_res.end = crash_base + crash_size - 1;
1057 crashk_boot_res.end = crashk_boot_res.start + crash_size - 1;
1123 machine_name = mdesc->name;
1124 dump_stack_set_arch_desc("%s", mdesc->name);
1126 if (mdesc->reboot_mode != REBOOT_HARD)
1127 reboot_mode = mdesc->reboot_mode;
1161 if (mdesc->restart) {
1162 __arm_pm_restart = mdesc->restart;
1172 if (!mdesc->smp_init || !mdesc->smp_init()) {
1175 else if (mdesc->smp)
1176 smp_set_ops(mdesc->smp);
1194 if (mdesc->init_early)
1195 mdesc->init_early();
1210 return -ENOMEM;
1300 /* pre-ARM7 */
1308 /* post-ARM7 */