1 /* 2 * Copyright (c) 2017, Xilinx Inc. and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 /* 8 * @file freertos/io.c 9 * @brief FreeRTOS libmetal io operations 10 */ 11 12 #include <metal/io.h> 13 metal_sys_io_mem_map(struct metal_io_region * io)14void metal_sys_io_mem_map(struct metal_io_region *io) 15 { 16 unsigned long p; 17 size_t psize; 18 size_t *va; 19 20 va = io->virt; 21 psize = (size_t)io->size; 22 if (psize) { 23 if (psize >> io->page_shift) 24 psize = (size_t)1 << io->page_shift; 25 for (p = 0; p <= (io->size >> io->page_shift); p++) { 26 metal_machine_io_mem_map(va, io->physmap[p], 27 psize, io->mem_flags); 28 va += psize; 29 } 30 } 31 } 32