/* * Copyright (c) 2021, Commonwealth Scientific and Industrial Research * Organisation (CSIRO) ABN 41 687 119 230. * * SPDX-License-Identifier: Apache-2.0 * * Generate memory regions from devicetree nodes. */ /* Declare a memory region */ #define _REGION_DECLARE(name, attr, node) name(attr) : \ ORIGIN = DT_REG_ADDR(node), \ LENGTH = DT_REG_SIZE(node) /** * @brief Generate a linker memory region from a devicetree node * * If @p node_id refers to a node with status "okay", then this declares * a linker memory region named @p name with attributes from @p attr. * * Otherwise, it doesn't expand to anything. * * @param name name of the generated memory region * @param attr region attributes to use (rx, rw, ...) * @param node_id devicetree node identifier with a \ property * defining region location and size. */ #define LINKER_DT_REGION_FROM_NODE(name, attr, node_id) \ COND_CODE_1(DT_NODE_HAS_STATUS(node_id, okay), \ (_REGION_DECLARE(name, attr, node_id)), \ ())