| /* |
| * AVR32 OCD Registers |
| * |
| * Copyright (C) 2004-2006 Atmel Corporation |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| */ |
| #ifndef __ASM_AVR32_OCD_H |
| #define __ASM_AVR32_OCD_H |
| |
| /* Debug Registers */ |
| #define DBGREG_DID 0 |
| #define DBGREG_DC 8 |
| #define DBGREG_DS 16 |
| #define DBGREG_RWCS 28 |
| #define DBGREG_RWA 36 |
| #define DBGREG_RWD 40 |
| #define DBGREG_WT 44 |
| #define DBGREG_DTC 52 |
| #define DBGREG_DTSA0 56 |
| #define DBGREG_DTSA1 60 |
| #define DBGREG_DTEA0 72 |
| #define DBGREG_DTEA1 76 |
| #define DBGREG_BWC0A 88 |
| #define DBGREG_BWC0B 92 |
| #define DBGREG_BWC1A 96 |
| #define DBGREG_BWC1B 100 |
| #define DBGREG_BWC2A 104 |
| #define DBGREG_BWC2B 108 |
| #define DBGREG_BWC3A 112 |
| #define DBGREG_BWC3B 116 |
| #define DBGREG_BWA0A 120 |
| #define DBGREG_BWA0B 124 |
| #define DBGREG_BWA1A 128 |
| #define DBGREG_BWA1B 132 |
| #define DBGREG_BWA2A 136 |
| #define DBGREG_BWA2B 140 |
| #define DBGREG_BWA3A 144 |
| #define DBGREG_BWA3B 148 |
| #define DBGREG_BWD3A 153 |
| #define DBGREG_BWD3B 156 |
| |
| #define DBGREG_PID 284 |
| |
| #define SABAH_OCD 0x01 |
| #define SABAH_ICACHE 0x02 |
| #define SABAH_MEM_CACHED 0x04 |
| #define SABAH_MEM_UNCACHED 0x05 |
| |
| /* Fields in the Development Control register */ |
| #define DC_SS_BIT 8 |
| |
| #define DC_SS (1 << DC_SS_BIT) |
| #define DC_DBE (1 << 13) |
| #define DC_RID (1 << 27) |
| #define DC_ORP (1 << 28) |
| #define DC_MM (1 << 29) |
| #define DC_RES (1 << 30) |
| |
| /* Fields in the Development Status register */ |
| #define DS_SSS (1 << 0) |
| #define DS_SWB (1 << 1) |
| #define DS_HWB (1 << 2) |
| #define DS_BP_SHIFT 8 |
| #define DS_BP_MASK (0xff << DS_BP_SHIFT) |
| |
| #define __mfdr(addr) \ |
| ({ \ |
| register unsigned long value; \ |
| asm volatile("mfdr %0, %1" : "=r"(value) : "i"(addr)); \ |
| value; \ |
| }) |
| #define __mtdr(addr, value) \ |
| asm volatile("mtdr %0, %1" : : "i"(addr), "r"(value)) |
| |
| #endif /* __ASM_AVR32_OCD_H */ |