blob: 5bf8680894e5dcd8bcc6fee71a6990d1f27683b3 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
/**
* \def PMP_REGION(region_id, config_reg_id)
*
* This is an X-Macro used for automatically deriving switch statements which
* link PMP region identifiers to associated information including their
* configuration register identifier.
*
* This also acts as the definitive list of every single PMP region that is
* supported by `sw/device/lib/runtime/pmp.h`.
*
* This macro will be invoked without a following semicolon or comma.
*
* The macro will be undef'd at the end of this file, so this file may be
* included multiple times in the same implementation file. Each inclusion site
* should define `PMP_REGION` as required before including this file.
*
* @param region_id PMP Region Identifier.
* @param config_reg_id Configuration Register ID for a given PMP Region (for
* Ibex).
*/
#ifndef PMP_REGION
#error PMP_REGION(region_id, config_reg_id) must be defined
#endif // PMP_REGION
PMP_REGION(0, 0)
PMP_REGION(1, 0)
PMP_REGION(2, 0)
PMP_REGION(3, 0)
PMP_REGION(4, 1)
PMP_REGION(5, 1)
PMP_REGION(6, 1)
PMP_REGION(7, 1)
PMP_REGION(8, 2)
PMP_REGION(9, 2)
PMP_REGION(10, 2)
PMP_REGION(11, 2)
PMP_REGION(12, 3)
PMP_REGION(13, 3)
PMP_REGION(14, 3)
PMP_REGION(15, 3)
#undef PMP_REGION