| /linux/drivers/firmware/efi/ |
| H A D | memmap.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Common EFI memory map functions. 19 * __efi_memmap_init - Common code for mapping the EFI memory map 20 * @data: EFI memory map data 23 * map the EFI memory map in efi.memmap based on how far into the boot 26 * During bootup EFI_MEMMAP_LATE in data->flags should be clear since we 35 struct efi_memory_map map; in __efi_memmap_init() local 38 phys_map = data->phys_map; in __efi_memmap_init() 40 if (data->flags & EFI_MEMMAP_LATE) in __efi_memmap_init() 41 map.map = memremap(phys_map, data->size, MEMREMAP_WB); in __efi_memmap_init() [all …]
|
| /linux/include/linux/ |
| H A D | iosys-map.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Pointer abstraction for IO/system memory 16 * When accessing a memory region, depending on its location, users may have to 17 * access it with I/O operations or memory load/store operations. For example, 18 * copying to system memory could be done with memcpy(), copying to I/O memory 21 * .. code-block:: c 23 * void *vaddr = ...; // pointer to system memory 26 * void *vaddr_iomem = ...; // pointer to I/O memory 31 * buffer, regardless if it's located in system or IO memory. The type 36 * Open-coding access to :c:type:`struct iosys_map <iosys_map>` is considered [all …]
|
| /linux/Documentation/ABI/testing/ |
| H A D | sysfs-firmware-memmap | 5 On all platforms, the firmware provides a memory map which the 6 kernel reads. The resources from that memory map are registered 10 However, on most architectures that firmware-provided memory 11 map is modified afterwards by the kernel itself, either because 12 the kernel merges that memory map with other information or 13 just because the user overwrites that memory map via command 16 kexec needs the raw firmware-provided memory map to setup the 18 kexec. Also, the raw memory map is useful for debugging. For 20 the raw memory map to userspace. 31 The maximum depends on the number of memory map entries provided [all …]
|
| H A D | sysfs-firmware-efi-runtime-map | 1 What: /sys/firmware/efi/runtime-map/ 5 that all efi memory ranges which have the runtime attribute 14 /sys/firmware/efi/runtime-map/ is the directory the kernel 17 subdirectories are named with the number of the memory range:: 19 /sys/firmware/efi/runtime-map/0 20 /sys/firmware/efi/runtime-map/1 21 /sys/firmware/efi/runtime-map/2 22 /sys/firmware/efi/runtime-map/3 28 attribute The attributes of the memory range. 29 num_pages The size of the memory range in pages. [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ |
| H A D | vmmgf100.c | 33 u32 ptei, u32 ptes, struct nvkm_vmm_map *map, u64 addr) in gf100_vmm_pgt_pte() argument 35 u64 base = (addr >> 8) | map->type; in gf100_vmm_pgt_pte() 38 if (map->ctag && !(map->next & (1ULL << 44))) { in gf100_vmm_pgt_pte() 39 while (ptes--) { in gf100_vmm_pgt_pte() 40 data = base | ((map->ctag >> 1) << 44); in gf100_vmm_pgt_pte() 41 if (!(map->ctag++ & 1)) in gf100_vmm_pgt_pte() 45 base += map->next; in gf100_vmm_pgt_pte() 48 map->type += ptes * map->ctag; in gf100_vmm_pgt_pte() 50 while (ptes--) { in gf100_vmm_pgt_pte() 52 data += map->next; in gf100_vmm_pgt_pte() [all …]
|
| H A D | vmmnv50.c | 33 u32 ptei, u32 ptes, struct nvkm_vmm_map *map, u64 addr) in nv50_vmm_pgt_pte() argument 35 u64 next = addr + map->type, data; in nv50_vmm_pgt_pte() 39 map->type += ptes * map->ctag; in nv50_vmm_pgt_pte() 42 for (log2blk = 7; log2blk >= 0; log2blk--) { in nv50_vmm_pgt_pte() 49 next += pten * map->next; in nv50_vmm_pgt_pte() 50 ptes -= pten; in nv50_vmm_pgt_pte() 52 while (pten--) in nv50_vmm_pgt_pte() 59 u32 ptei, u32 ptes, struct nvkm_vmm_map *map) in nv50_vmm_pgt_sgl() argument 61 VMM_MAP_ITER_SGL(vmm, pt, ptei, ptes, map, nv50_vmm_pgt_pte); in nv50_vmm_pgt_sgl() 66 u32 ptei, u32 ptes, struct nvkm_vmm_map *map) in nv50_vmm_pgt_dma() argument [all …]
|
| H A D | umem.c | 26 #include <core/memory.h> 37 struct nvkm_client *master = client->object.client; in nvkm_umem_search() 38 struct nvkm_memory *memory = NULL; in nvkm_umem_search() local 45 spin_lock(&master->lock); in nvkm_umem_search() 46 list_for_each_entry(umem, &master->umem, head) { in nvkm_umem_search() 47 if (umem->object.object == handle) { in nvkm_umem_search() 48 memory = nvkm_memory_ref(umem->memory); in nvkm_umem_search() 52 spin_unlock(&master->lock); in nvkm_umem_search() 56 memory = nvkm_memory_ref(umem->memory); in nvkm_umem_search() 59 return memory ? memory : ERR_PTR(-ENOENT); in nvkm_umem_search() [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/core/ |
| H A D | gpuobj.c | 31 /* fast-path, where backend is able to provide direct pointer to memory */ 35 return ioread32_native(gpuobj->map + offset); in nvkm_gpuobj_rd32_fast() 41 iowrite32_native(data, gpuobj->map + offset); in nvkm_gpuobj_wr32_fast() 50 return nvkm_memory_map(gpuobj->memory, offset, vmm, vma, argv, argc); in nvkm_gpuobj_heap_map() 56 return nvkm_ro32(gpuobj->memory, offset); in nvkm_gpuobj_heap_rd32() 62 nvkm_wo32(gpuobj->memory, offset, data); in nvkm_gpuobj_heap_wr32() 69 gpuobj->func = &nvkm_gpuobj_heap; in nvkm_gpuobj_heap_release() 70 nvkm_done(gpuobj->memory); in nvkm_gpuobj_heap_release() 78 .map = nvkm_gpuobj_heap_map, 86 .map = nvkm_gpuobj_heap_map, [all …]
|
| /linux/drivers/firmware/efi/libstub/ |
| H A D | relocate.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * efi_low_alloc_above() - allocate pages at or above given address 10 * @size: size of the memory area to allocate 11 * @align: minimum alignment of the allocated memory area. It should 13 * @addr: on exit the address of the allocated memory 14 * @min: minimum address to used for the memory allocation 26 struct efi_boot_memmap *map __free(efi_pool) = NULL; in efi_low_alloc_above() 31 status = efi_get_memory_map(&map, false); in efi_low_alloc_above() 37 * requesting a specific address. We are doing page-based (or in efi_low_alloc_above() 46 for (i = 0; i < map->map_size / map->desc_size; i++) { in efi_low_alloc_above() [all …]
|
| H A D | fdt.c | 1 // SPDX-License-Identifier: GPL-2.0 24 /* Set the #address-cells and #size-cells values for an empty tree */ in fdt_update_cell_size() 26 fdt_setprop_u32(fdt, offset, "#address-cells", EFI_DT_ADDR_CELLS_DEFAULT); in fdt_update_cell_size() 27 fdt_setprop_u32(fdt, offset, "#size-cells", EFI_DT_SIZE_CELLS_DEFAULT); in fdt_update_cell_size() 61 * non-critical: in update_fdt() 71 * Delete all memory reserve map entries. When booting via UEFI, in update_fdt() 72 * kernel will use the UEFI memory map to find reserved regions. in update_fdt() 75 while (num_rsv-- > 0) in update_fdt() 99 status = fdt_setprop_var(fdt, node, "linux,uefi-system-table", fdt_val64); in update_fdt() 105 status = fdt_setprop_var(fdt, node, "linux,uefi-mmap-start", fdt_val64); in update_fdt() [all …]
|
| /linux/Documentation/mm/ |
| H A D | memory-model.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 Physical Memory Model 7 Physical memory in a system may be addressed in different ways. The 8 simplest case is when the physical memory starts at address 0 and 13 different memory banks are attached to different CPUs. 15 Linux abstracts this diversity using one of the two memory models: 17 memory models it supports, what the default memory model is and 20 All the memory models track the status of physical page frames using 23 Regardless of the selected memory model, there exists one-to-one 27 Each memory model defines :c:func:`pfn_to_page` and :c:func:`page_to_pfn` [all …]
|
| /linux/lib/ |
| H A D | genalloc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * memory, for example, memory that is not managed by the regular 5 * kmalloc/kfree interface. Uses for this includes on-device special 6 * memory, uncached memory etc. 15 * The lockless operation only works if there is enough memory 16 * available. If new memory is added to the pool a lock has to be 18 * that sufficient memory is preallocated. 21 * On architectures that don't have NMI-safe cmpxchg implementation, 26 * Copyright 2005 (C) Jes Sorensen <jes@trained-monkey.org> 42 return chunk->end_addr - chunk->start_addr + 1; in chunk_size() [all …]
|
| H A D | devres.c | 1 // SPDX-License-Identifier: GPL-2.0 65 * devm_ioremap - Managed ioremap() 67 * @offset: Resource address to map 68 * @size: Size of map 70 * Managed ioremap(). Map is automatically unmapped on driver detach. 80 * devm_ioremap_uc - Managed ioremap_uc() 82 * @offset: Resource address to map 83 * @size: Size of map 85 * Managed ioremap_uc(). Map is automatically unmapped on driver detach. 95 * devm_ioremap_wc - Managed ioremap_wc() [all …]
|
| /linux/drivers/mtd/maps/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 7 bool "Support non-linear mappings of flash chips" 13 tristate "Flash device in physical memory map" 18 physically into the CPU's memory. You will need to configure 21 with config options or at run-time. 42 This is the physical memory location at which the flash chips 44 memory map which should hopefully be in the documentation for 54 physical memory map between the chips, this could be larger 55 than the total amount of flash present. Refer to the memory 56 map which should hopefully be in the documentation for your [all …]
|
| H A D | pcmciamtd.c | 2 * pcmciamtd.c - MTD driver for PCMCIA flash memory cards 21 #include <linux/mtd/map.h> 26 #define DRIVER_DESC "PCMCIA Flash memory card driver" 45 /* 2 = do 16-bit transfers, 1 = do 8-bit transfers */ 48 /* Speed of memory accesses, in ns */ 69 MODULE_PARM_DESC(mem_speed, "Set memory access speed in ns"); 71 MODULE_PARM_DESC(force_size, "Force size of card in MiB (1-64)"); 77 MODULE_PARM_DESC(mem_type, "Set Memory type (0=Flash, 1=RAM, 2=ROM, default=0)"); 83 static void __iomem *remap_window(struct map_info *map, unsigned long to) in remap_window() argument 85 struct pcmciamtd_dev *dev = (struct pcmciamtd_dev *)map->map_priv_1; in remap_window() [all …]
|
| /linux/arch/arm64/boot/dts/xilinx/ |
| H A D | versal-net-vn-x-b2197-01-revA.dts | 1 // SPDX-License-Identifier: GPL-2.0 6 * (C) Copyright 2022 - 2025, Advanced Micro Devices, Inc. 11 /dts-v1/; 13 #include "versal-net.dtsi" 14 #include "versal-net-clk.dtsi" 15 #include <dt-bindings/gpio/gpio.h> 18 compatible = "xlnx,versal-net-vnx-revA", "xlnx,versal-net-vnx", "xlnx,versal-net"; 20 dma-coherent; 22 memory: memory@0 { label 24 device_type = "memory"; [all …]
|
| /linux/include/xen/interface/hvm/ |
| H A D | start_info.h | 1 /* SPDX-License-Identifier: MIT */ 15 * 0 +----------------+ 18 * 4 +----------------+ 20 * | | versions are guaranteed to be backwards-compatible. 21 * 8 +----------------+ 23 * 12 +----------------+ 25 * 16 +----------------+ 28 * 24 +----------------+ 30 * | | a zero-terminated ASCII string. 31 * 32 +----------------+ [all …]
|
| /linux/arch/arm/mm/ |
| H A D | mmu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 1995-2005 Russell King 35 #include <asm/mach/map.h> 46 * zero-initialized data and COW. 52 * The pmd table for the upper-most set of pages. 143 int i, selected = -1; in early_cachepolicy() 154 if (selected == -1) in early_cachepolicy() 159 * unpredictable to have memory mapped using two different sets of in early_cachepolicy() 160 * memory attributes (shared, type, and cache attribs). We can not in early_cachepolicy() 240 [MT_DEVICE_NONSHARED] = { /* ARMv6 non-shared device */ [all …]
|
| /linux/arch/mips/mti-malta/ |
| H A D | malta-dtshim.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 15 #include <asm/mips-boards/generic.h> 16 #include <asm/mips-boards/malta.h> 17 #include <asm/mips-cps.h> 27 /* determined physical memory size, not overridden by command line args */ 71 enum mem_map map) in gen_fdt_mem_array() argument 82 * physical address map, which gives it a contiguous region of in gen_fdt_mem_array() 91 size -= size_preio; in gen_fdt_mem_array() 95 if (map == MEM_MAP_V2) { in gen_fdt_mem_array() 97 * We have a flat 32 bit physical memory map with DDR filling in gen_fdt_mem_array() [all …]
|
| /linux/arch/x86/kernel/ |
| H A D | e820.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Low level x86 E820 memory map handling functions. 6 * physical memory layout description available about x86 systems. 8 * The kernel takes the E820 memory layout and optionally modifies it with 9 * quirks and other tweaks, and feeds that into the generic Linux memory 16 #include <linux/firmware-map.h> 26 * - 'e820_table_firmware': the original firmware version passed to us by the 27 * bootloader - not modified by the kernel. It is composed of two parts: 28 * the first 128 E820 memory entries in boot_params.e820_table and the remaining 31 * - the hibernation code uses it to generate a kernel-independent CRC32 [all …]
|
| /linux/tools/testing/selftests/mm/ |
| H A D | process_madv.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 30 self->page_size = (unsigned long)sysconf(_SC_PAGESIZE); in FIXTURE_SETUP() 31 self->pidfd = PIDFD_SELF; in FIXTURE_SETUP() 32 self->remote_pidfd = -1; in FIXTURE_SETUP() 33 self->child_pid = -1; in FIXTURE_SETUP() 39 if (self->child_pid > 0) { in FIXTURE_TEARDOWN_PARENT() 40 kill(self->child_pid, SIGKILL); in FIXTURE_TEARDOWN_PARENT() 41 waitpid(self->child_pid, NULL, 0); in FIXTURE_TEARDOWN_PARENT() 44 if (self->remote_pidfd >= 0) in FIXTURE_TEARDOWN_PARENT() 45 close(self->remote_pidfd); in FIXTURE_TEARDOWN_PARENT() [all …]
|
| /linux/tools/perf/arch/x86/tests/ |
| H A D | dwarf-unwind.c | 1 // SPDX-License-Identifier: GPL-2.0 5 #include "map.h" 16 struct stack_dump *stack = &sample->user_stack; in sample_ustack() 17 struct map *map; in sample_ustack() local 24 return -1; in sample_ustack() 29 map = maps__find(thread__maps(thread), (u64)sp); in sample_ustack() 30 if (!map) { in sample_ustack() [all...] |
| /linux/Documentation/devicetree/bindings/soc/qcom/ |
| H A D | qcom,smem.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Qualcomm Shared Memory Manager 10 - Andy Gross <agross@kernel.org> 11 - Bjorn Andersson <bjorn.andersson@linaro.org> 14 This binding describes the Qualcomm Shared Memory Manager, a region of 15 reserved-memory used to share data between various subsystems and OSes in 25 memory-region: 27 description: handle to memory reservation for main SMEM memory region. [all …]
|
| /linux/arch/x86/xen/ |
| H A D | setup.c | 1 // SPDX-License-Identifier: GPL-2.0 32 #include <xen/interface/memory.h> 35 #include <xen/hvc-console.h> 36 #include "xen-ops.h" 40 /* Memory map would allow PCI passthrough. */ 43 /* E820 map used during setting up memory. */ 46 /* Number of initially usable memory pages. */ 54 #define REMAP_SIZE (P2M_PER_PAGE - 3) 70 arg = strstr(xen_start_info->cmd_line, "xen_512gb_limit"); in xen_parse_512gb() 74 arg = strstr(xen_start_info->cmd_line, "xen_512gb_limit="); in xen_parse_512gb() [all …]
|
| /linux/arch/arm64/boot/dts/qcom/ |
| H A D | sdm845-lg-common.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 10 #include <dt-bindings/regulator/qcom,rpmh-regulator.h> 16 /delete-node/ &adsp_mem; 17 /delete-node/ &cdsp_mem; 18 /delete-node/ &gpu_mem; 19 /delete-node/ &ipa_fw_mem; 20 /delete-node/ &mba_region; 21 /delete-node/ &mpss_region; [all …]
|