rrcc/src/BaseRegisters.h

78 lines
3.7 KiB
C

/*****************************************************************************
* Copyright (c) 2020, rrcc FM10K-Documentation Contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the copyright holder nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************/
#pragma once
enum class MgmtRegisters {
MGMT_SCRATCH_0 = 0x8,
MGMT_SCRATCH_1 = 0x9,
SRAM_ERR_IM_0 = 0x448,
SW_IM = 0x44E,
BSM_SCRATCH_START = 0x800,
BSM_SCRATCH_END = 0xBFF,
BSM_ADDR_OFFSET_0 = 0xC04, // Read-only, 0x000000
BSM_ADDR_OFFSET_1 = BSM_ADDR_OFFSET_0 + 1,
BSM_ADDR_OFFSET_2 = BSM_ADDR_OFFSET_0 + 2,
BSM_ADDR_OFFSET_3 = BSM_ADDR_OFFSET_0 + 3,
BSM_COUNTER_0 = 0xC08,
BSM_COUNTER_1 = 0xC09,
INTERNAL_REGISTER_ALWAYS_00000000 = BSM_ADDR_OFFSET_0, //Read only, set at 0
INTERNAL_REGISTER_ALWAYS_FFFFFFFF = SRAM_ERR_IM_0, //SRAM_ERR_IM_0 is default two x with 48 1b bits. RW but it's not changed by default. Alternatively SW_IM is also set to 0xFFFFFFFF
std_SCRATCH_0 = MGMT_SCRATCH_0,
std_SCRATCH_1 = MGMT_SCRATCH_1,
std_RETURN_VALUE = BSM_SCRATCH_START + 0x1E0,
std_RETURN_VALUE_EXTRA = BSM_SCRATCH_START + 0x1E1,
std_PARAMETER_0 = BSM_SCRATCH_START + 0x1E2,
std_PARAMETER_1 = BSM_SCRATCH_START + 0x1E3,
std_EPHEMERAL_REGISTER_0 = BSM_SCRATCH_START + 0x1F0,
std_EPHEMERAL_REGISTER_1 = std_EPHEMERAL_REGISTER_0 + 0x1,
std_EPHEMERAL_REGISTER_2 = std_EPHEMERAL_REGISTER_0 + 0x2,
std_EPHEMERAL_REGISTER_3 = std_EPHEMERAL_REGISTER_0 + 0x3,
std_EPHEMERAL_REGISTER_4 = std_EPHEMERAL_REGISTER_0 + 0x4,
std_EPHEMERAL_REGISTER_5 = std_EPHEMERAL_REGISTER_0 + 0x5,
std_EPHEMERAL_REGISTER_6 = std_EPHEMERAL_REGISTER_0 + 0x6,
std_EPHEMERAL_REGISTER_7 = std_EPHEMERAL_REGISTER_0 + 0x7,
std_EPHEMERAL_REGISTER_8 = std_EPHEMERAL_REGISTER_0 + 0x8,
std_EPHEMERAL_REGISTER_9 = std_EPHEMERAL_REGISTER_0 + 0x9,
std_EPHEMERAL_REGISTER_10 = std_EPHEMERAL_REGISTER_0 + 0xa,
std_EPHEMERAL_REGISTER_11 = std_EPHEMERAL_REGISTER_0 + 0xb,
std_EPHEMERAL_REGISTER_12 = std_EPHEMERAL_REGISTER_0 + 0xc,
std_EPHEMERAL_REGISTER_13 = std_EPHEMERAL_REGISTER_0 + 0xd,
std_EPHEMERAL_REGISTER_14 = std_EPHEMERAL_REGISTER_0 + 0xe,
std_EPHEMERAL_REGISTER_15 = std_EPHEMERAL_REGISTER_0 + 0xf,
};