60 lines
2.1 KiB
C
60 lines
2.1 KiB
C
|
#ifndef LINUX_OBC_PDEC_H_
|
||
|
#define LINUX_OBC_PDEC_H_
|
||
|
|
||
|
#include <cstdint>
|
||
|
|
||
|
namespace pdec {
|
||
|
|
||
|
static const uint8_t STAT_POSITION = 31;
|
||
|
static const uint8_t FRAME_ANA_POSITION = 28;
|
||
|
static const uint8_t IREASON_POSITION = 25;
|
||
|
|
||
|
static const uint8_t NEW_FAR_RECEIVED = 0;
|
||
|
|
||
|
static constexpr uint32_t NEW_FAR_MASK = 1 << 2;
|
||
|
static constexpr uint32_t TC_ABORT_MASK = 1 << 1;
|
||
|
static constexpr uint32_t TC_NEW_MASK = 1 << 0;
|
||
|
|
||
|
static const uint32_t FRAME_ANA_MASK = 0x70000000;
|
||
|
static const uint32_t IREASON_MASK = 0x0E000000;
|
||
|
|
||
|
static const uint32_t TC_CHANNEL_INACTIVE = 0x0;
|
||
|
static const uint32_t TC_CHANNEL_ACTIVE = 0x1;
|
||
|
static const uint32_t TC_CHANNEL_TIMEDOUT = 0x2;
|
||
|
|
||
|
static const uint32_t TC0_STATUS_MASK = 0x3;
|
||
|
static const uint32_t TC1_STATUS_MASK = 0xC;
|
||
|
static const uint32_t TC2_STATUS_MASK = 0x300;
|
||
|
static const uint32_t TC3_STATUS_MASK = 0xC00;
|
||
|
static const uint32_t TC4_STATUS_MASK = 0x30000;
|
||
|
static const uint32_t TC5_STATUS_MASK = 0xc00000;
|
||
|
// Lock register set to 1 when start sequence has been found (CLTU is beeing processed)
|
||
|
static const uint32_t LOCK_MASK = 0xc00000;
|
||
|
|
||
|
static const uint32_t TC0_STATUS_POS = 0;
|
||
|
static const uint32_t TC1_STATUS_POS = 2;
|
||
|
static const uint32_t TC2_STATUS_POS = 4;
|
||
|
static const uint32_t TC3_STATUS_POS = 6;
|
||
|
static const uint32_t TC4_STATUS_POS = 8;
|
||
|
static const uint32_t TC5_STATUS_POS = 10;
|
||
|
// Lock register set to 1 when start sequence has been found (CLTU is beeing processed)
|
||
|
static const uint32_t LOCK_POS = 12;
|
||
|
|
||
|
/**
|
||
|
* UIO is 4 byte aligned. Thus offset is calculated with "true offset" / 4
|
||
|
* Example: PDEC_FAR = 0x2840 => Offset in virtual address space is 0xA10
|
||
|
*/
|
||
|
static constexpr uint32_t PDEC_PISR_OFFSET = 0xA02;
|
||
|
static constexpr uint32_t PDEC_PIR_OFFSET = 0xA03;
|
||
|
static constexpr uint32_t PDEC_IMR_OFFSET = 0xA04;
|
||
|
static const uint32_t PDEC_FAR_OFFSET = 0xA10;
|
||
|
static const uint32_t PDEC_CLCW_OFFSET = 0xA12;
|
||
|
static const uint32_t PDEC_BFREE_OFFSET = 0xA24;
|
||
|
static const uint32_t PDEC_BPTR_OFFSET = 0xA25;
|
||
|
static const uint32_t PDEC_SLEN_OFFSET = 0xA26;
|
||
|
static const uint32_t PDEC_MON_OFFSET = 0xA27;
|
||
|
|
||
|
} // namespace pdec
|
||
|
|
||
|
#endif /* LINUX_OBC_PDEC_H_ */
|