30 #ifndef __SPINNAKER_H__
31 #define __SPINNAKER_H__
46 #define INT_AT(t) ((t) / 4)
54 #define BIT_31 0x80000000
75 #define ITCM_BASE 0x00000000
77 #define ITCM_SIZE 0x00008000
79 #define ITCM_TOP (ITCM_BASE + ITCM_SIZE)
82 #define DTCM_BASE 0x00400000
84 #define DTCM_SIZE 0x00010000
86 #define DTCM_TOP (DTCM_BASE + DTCM_SIZE)
89 #define SDRAM_BASE_UNBUF 0x70000000
91 #define SDRAM_BASE_BUF 0x60000000
95 #define SDRAM_BASE SDRAM_BASE_BUF
97 #define SDRAM_BASE SDRAM_BASE_UNBUF
101 #define SDRAM_SIZE (128 * 1024 * 1024)
103 #define SDRAM_TOP (SDRAM_BASE + SDRAM_SIZE)
106 #define SYSRAM_BASE_UNBUF 0xf5000000
108 #define SYSRAM_BASE_BUF 0xe5000000
112 #define SYSRAM_BASE SYSRAM_BASE_BUF
114 #define SYSRAM_BASE SYSRAM_BASE_UNBUF
118 #define SYSRAM_SIZE 0x00008000
120 #define SYSRAM_TOP (SYSRAM_BASE + SYSRAM_SIZE)
123 #define ROM_BASE 0xf6000000
125 #define ROM_SIZE 0x00008000
127 #define ROM_TOP (ROM_BASE + ROM_SIZE)
138 #define CC_BASE_UNBUF 0x10000000
140 #define CC_BASE_BUF 0x20000000
144 #define CC_BASE CC_BASE_BUF
146 #define CC_BASE CC_BASE_UNBUF
150 #define CC_TCR INT_AT(0x00)
152 #define CC_TXDATA INT_AT(0x04)
154 #define CC_TXKEY INT_AT(0x08)
156 #define CC_RSR INT_AT(0x0c)
158 #define CC_RXDATA INT_AT(0x10)
160 #define CC_RXKEY INT_AT(0x14)
162 #define CC_SAR INT_AT(0x18)
164 #define CC_TEST INT_AT(0x1c)
175 #define TIMER_BASE_UNBUF 0x11000000
177 #define TIMER_BASE_BUF 0x21000000
181 #define TIMER_BASE TIMER_BASE_BUF
183 #define TIMER_BASE TIMER_BASE_UNBUF
186 #define TIMER_OFFSET 0x20
189 #define TIMER1_BASE (TIMER_BASE)
191 #define TIMER2_BASE (TIMER_BASE + TIMER_OFFSET)
194 #define TC_LOAD INT_AT(0x00)
196 #define TC_COUNT INT_AT(0x04)
198 #define TC_CONTROL INT_AT(0x08)
200 #define TC_INT_CLR INT_AT(0x0c)
202 #define TC_RAW_INT INT_AT(0x10)
204 #define TC_MASK_INT INT_AT(0x14)
206 #define TC_BG_LOAD INT_AT(0x18)
209 #define T1_LOAD INT_AT(0x00)
211 #define T1_COUNT INT_AT(0x04)
213 #define T1_CONTROL INT_AT(0x08)
215 #define T1_INT_CLR INT_AT(0x0c)
217 #define T1_RAW_INT INT_AT(0x10)
219 #define T1_MASK_INT INT_AT(0x14)
221 #define T1_BG_LOAD INT_AT(0x18)
224 #define T2_LOAD INT_AT(0x20)
226 #define T2_COUNT INT_AT(0x24)
228 #define T2_CONTROL INT_AT(0x28)
230 #define T2_INT_CLR INT_AT(0x2c)
232 #define T2_RAW_INT INT_AT(0x30)
234 #define T2_MASK_INT INT_AT(0x34)
236 #define T2_BG_LOAD INT_AT(0x38)
247 #define VIC_BASE_UNBUF 0x1f000000
249 #define VIC_BASE_BUF 0x2f000000
253 #define VIC_BASE VIC_BASE_BUF
255 #define VIC_BASE VIC_BASE_UNBUF
259 #define VIC_IRQST INT_AT(0x00)
261 #define VIC_FIQST INT_AT(0x04)
263 #define VIC_RAW INT_AT(0x08)
265 #define VIC_SELECT INT_AT(0x0c)
267 #define VIC_ENABLE INT_AT(0x10)
269 #define VIC_DISABLE INT_AT(0x14)
271 #define VIC_SOFT_SET INT_AT(0x18)
273 #define VIC_SOFT_CLR INT_AT(0x1c)
275 #define VIC_PROTECT INT_AT(0x20)
277 #define VIC_VADDR INT_AT(0x30)
279 #define VIC_DEFADDR INT_AT(0x34)
282 #define VIC_ADDR INT_AT(0x100)
285 #define VIC_ADDR0 INT_AT(0x100)
287 #define VIC_ADDR1 INT_AT(0x104)
289 #define VIC_ADDR2 INT_AT(0x108)
291 #define VIC_ADDR3 INT_AT(0x10c)
293 #define VIC_ADDR4 INT_AT(0x110)
295 #define VIC_ADDR5 INT_AT(0x114)
297 #define VIC_ADDR6 INT_AT(0x118)
299 #define VIC_ADDR7 INT_AT(0x11c)
301 #define VIC_ADDR8 INT_AT(0x120)
303 #define VIC_ADDR9 INT_AT(0x124)
305 #define VIC_ADDR10 INT_AT(0x128)
307 #define VIC_ADDR11 INT_AT(0x12c)
309 #define VIC_ADDR12 INT_AT(0x130)
311 #define VIC_ADDR13 INT_AT(0x134)
313 #define VIC_ADDR14 INT_AT(0x138)
315 #define VIC_ADDR15 INT_AT(0x13c)
318 #define VIC_CNTL INT_AT(0x200)
321 #define VIC_CNTL0 INT_AT(0x200)
323 #define VIC_CNTL1 INT_AT(0x204)
325 #define VIC_CNTL2 INT_AT(0x208)
327 #define VIC_CNTL3 INT_AT(0x20c)
329 #define VIC_CNTL4 INT_AT(0x210)
331 #define VIC_CNTL5 INT_AT(0x214)
333 #define VIC_CNTL6 INT_AT(0x218)
335 #define VIC_CNTL7 INT_AT(0x21c)
337 #define VIC_CNTL8 INT_AT(0x220)
339 #define VIC_CNTL9 INT_AT(0x224)
341 #define VIC_CNTL10 INT_AT(0x228)
343 #define VIC_CNTL11 INT_AT(0x22c)
345 #define VIC_CNTL12 INT_AT(0x230)
347 #define VIC_CNTL13 INT_AT(0x234)
349 #define VIC_CNTL14 INT_AT(0x238)
351 #define VIC_CNTL15 INT_AT(0x23c)
398 #define DMA_BASE_UNBUF 0x30000000
400 #define DMA_BASE_BUF 0x40000000
404 #define DMA_BASE DMA_BASE_BUF
406 #define DMA_BASE DMA_BASE_UNBUF
410 #define DMA_ADRS INT_AT(0x04)
412 #define DMA_ADRT INT_AT(0x08)
414 #define DMA_DESC INT_AT(0x0c)
416 #define DMA_CTRL INT_AT(0x10)
418 #define DMA_STAT INT_AT(0x14)
420 #define DMA_GCTL INT_AT(0x18)
422 #define DMA_CRCC INT_AT(0x1c)
424 #define DMA_CRCR INT_AT(0x20)
426 #define DMA_TMTV INT_AT(0x24)
428 #define DMA_SCTL INT_AT(0x28)
431 #define DMA_STAT0 INT_AT(0x40)
433 #define DMA_STAT1 INT_AT(0x44)
435 #define DMA_STAT2 INT_AT(0x48)
437 #define DMA_STAT3 INT_AT(0x4c)
439 #define DMA_STAT4 INT_AT(0x50)
441 #define DMA_STAT5 INT_AT(0x54)
443 #define DMA_STAT6 INT_AT(0x58)
445 #define DMA_STAT7 INT_AT(0x5c)
448 #define DMA_AD2S INT_AT(0x104)
450 #define DMA_AD2T INT_AT(0x108)
452 #define DMA_DES2 INT_AT(0x10c)
455 #define DMA_CRCT INT_AT(0x180)
466 #define PL340_BASE_UNBUF 0xf0000000
468 #define PL340_BASE_BUF 0xe0000000
472 #define PL340_BASE PL340_BASE_BUF
474 #define PL340_BASE PL340_BASE_UNBUF
478 #define MC_STAT INT_AT(0x00)
480 #define MC_CMD INT_AT(0x04)
482 #define MC_DIRC INT_AT(0x08)
484 #define MC_MCFG INT_AT(0x0c)
487 #define MC_REFP INT_AT(0x10)
489 #define MC_CASL INT_AT(0x14)
491 #define MC_DQSS INT_AT(0x18)
493 #define MC_MRD INT_AT(0x1c)
495 #define MC_RAS INT_AT(0x20)
497 #define MC_RC INT_AT(0x24)
499 #define MC_RCD INT_AT(0x28)
501 #define MC_RFC INT_AT(0x2c)
503 #define MC_RP INT_AT(0x30)
505 #define MC_RRD INT_AT(0x34)
507 #define MC_WR INT_AT(0x38)
509 #define MC_WTR INT_AT(0x3c)
511 #define MC_XP INT_AT(0x40)
513 #define MC_XSR INT_AT(0x44)
515 #define MC_ESR INT_AT(0x48)
518 #define MC_MCFG2 INT_AT(0x4c)
520 #define MC_MCFG3 INT_AT(0x50)
523 #define MC_QOS0 INT_AT(0x100)
525 #define MC_QOS1 INT_AT(0x104)
527 #define MC_QOS2 INT_AT(0x108)
529 #define MC_QOS3 INT_AT(0x10c)
531 #define MC_QOS4 INT_AT(0x110)
533 #define MC_QOS5 INT_AT(0x114)
535 #define MC_QOS6 INT_AT(0x118)
537 #define MC_QOS7 INT_AT(0x11c)
539 #define MC_QOS8 INT_AT(0x120)
541 #define MC_QOS9 INT_AT(0x124)
543 #define MC_QOS10 INT_AT(0x128)
545 #define MC_QOS11 INT_AT(0x12c)
547 #define MC_QOS12 INT_AT(0x130)
549 #define MC_QOS13 INT_AT(0x134)
551 #define MC_QOS14 INT_AT(0x138)
553 #define MC_QOS15 INT_AT(0x13c)
556 #define MC_CCFG0 INT_AT(0x200)
558 #define MC_CCFG1 INT_AT(0x204)
560 #define MC_CCFG2 INT_AT(0x208)
562 #define MC_CCFG3 INT_AT(0x20c)
565 #define DLL_STATUS INT_AT(0x300)
567 #define DLL_CONFIG0 INT_AT(0x304)
569 #define DLL_CONFIG1 INT_AT(0x308)
580 #define RTR_BASE_UNBUF 0xf1000000
582 #define RTR_BASE_BUF 0xe1000000
586 #define RTR_BASE RTR_BASE_BUF
588 #define RTR_BASE RTR_BASE_UNBUF
592 #define RTR_CONTROL INT_AT(0x00)
594 #define RTR_STATUS INT_AT(0x04)
597 #define RTR_EHDR INT_AT(0x08)
599 #define RTR_EKEY INT_AT(0x0c)
601 #define RTR_EDAT INT_AT(0x10)
603 #define RTR_ESTAT INT_AT(0x14)
605 #define RTR_DHDR INT_AT(0x18)
607 #define RTR_DKEY INT_AT(0x1c)
609 #define RTR_DDAT INT_AT(0x20)
611 #define RTR_DLINK INT_AT(0x24)
613 #define RTR_DSTAT INT_AT(0x28)
615 #define RTR_DGEN INT_AT(0x2c)
620 #define RTR_FR INT_AT(0x84)
623 #define RTR_DGF0 INT_AT(0x200)
625 #define RTR_DGF1 INT_AT(0x204)
627 #define RTR_DGF2 INT_AT(0x208)
629 #define RTR_DGF3 INT_AT(0x20c)
631 #define RTR_DGF4 INT_AT(0x210)
633 #define RTR_DGF5 INT_AT(0x214)
635 #define RTR_DGF6 INT_AT(0x218)
637 #define RTR_DGF7 INT_AT(0x21c)
639 #define RTR_DGF8 INT_AT(0x220)
641 #define RTR_DGF9 INT_AT(0x224)
643 #define RTR_DGF10 INT_AT(0x228)
645 #define RTR_DGF11 INT_AT(0x22c)
647 #define RTR_DGF12 INT_AT(0x230)
649 #define RTR_DGF13 INT_AT(0x234)
651 #define RTR_DGF14 INT_AT(0x238)
653 #define RTR_DGF15 INT_AT(0x23c)
656 #define RTR_DGC0 INT_AT(0x300)
658 #define RTR_DGC1 INT_AT(0x304)
660 #define RTR_DGC2 INT_AT(0x308)
662 #define RTR_DGC3 INT_AT(0x30c)
664 #define RTR_DGC4 INT_AT(0x310)
666 #define RTR_DGC5 INT_AT(0x314)
668 #define RTR_DGC6 INT_AT(0x318)
670 #define RTR_DGC7 INT_AT(0x31c)
672 #define RTR_DGC8 INT_AT(0x320)
674 #define RTR_DGC9 INT_AT(0x324)
676 #define RTR_DGC10 INT_AT(0x328)
678 #define RTR_DGC11 INT_AT(0x32c)
680 #define RTR_DGC12 INT_AT(0x330)
682 #define RTR_DGC13 INT_AT(0x334)
684 #define RTR_DGC14 INT_AT(0x338)
686 #define RTR_DGC15 INT_AT(0x33c)
689 #define RTR_TST1 INT_AT(0xf00)
691 #define RTR_TST2 INT_AT(0xf04)
694 #define P2P_TABLE_SIZE 8192
696 #define MC_TABLE_SIZE 1024
699 #define MC_RAM_WIDTH (NUM_CPUS + NUM_LINKS)
701 #define MC_RAM_MASK ((1 << MC_RAM_WIDTH) - 1)
706 #define MC_CORE_ROUTE(x) (1 << ((x) + NUM_LINKS))
710 #define MC_LINK_ROUTE(x) (1 << (x))
713 #define P2P_LOG_EPW 3
714 #define P2P_EMASK (P2P_EPW-1)
719 #define P2P_INIT 0x00db6db6
722 #define RTR_MCRAM_BASE (RTR_BASE + 0x00004000)
724 #define RTR_MCRAM_TOP (RTR_MCRAM_BASE + MC_TABLE_SIZE * 4)
727 #define RTR_MCKEY_BASE (RTR_BASE + 0x00008000)
729 #define RTR_MCKEY_TOP (RTR_MCKEY_BASE + MC_TABLE_SIZE * 4)
732 #define RTR_MCMASK_BASE (RTR_BASE + 0x0000c000)
734 #define RTR_MCMASK_TOP (RTR_MCMASK_BASE + MC_TABLE_SIZE * 4)
737 #define RTR_P2P_BASE (RTR_BASE + 0x00010000)
739 #define RTR_P2P_TOP (RTR_P2P_BASE + P2P_TABLE_SIZE * 4)
742 #define MC_CAM_WIDTH 32
753 #define SYSCTL_BASE_UNBUF 0xf2000000
755 #define SYSCTL_BASE_BUF 0xe2000000
759 #define SYSCTL_BASE SYSCTL_BASE_BUF
761 #define SYSCTL_BASE SYSCTL_BASE_UNBUF
765 #define SC_CODE 0x5ec00000
768 #define CHIP_ID_CODE 0x59111012
771 #define SC_CHIP_ID INT_AT(0x00)
773 #define SC_CPU_DIS INT_AT(0x04)
775 #define SC_SET_IRQ INT_AT(0x08)
777 #define SC_CLR_IRQ INT_AT(0x0c)
779 #define SC_SET_OK INT_AT(0x10)
781 #define SC_CPU_OK INT_AT(0x10)
783 #define SC_CLR_OK INT_AT(0x14)
786 #define SC_SOFT_RST_L INT_AT(0x18)
788 #define SC_HARD_RST_L INT_AT(0x1c)
790 #define SC_SUBS_RST_L INT_AT(0x20)
793 #define SC_SOFT_RST_P INT_AT(0x24)
795 #define SC_HARD_RST_P INT_AT(0x28)
797 #define SC_SUBS_RST_P INT_AT(0x2c)
800 #define SC_RST_CODE INT_AT(0x30)
802 #define SC_MON_ID INT_AT(0x34)
805 #define SC_MISC_CTRL INT_AT(0x38)
808 #define GPIO_RES INT_AT(0x3c)
811 #define GPIO_PORT INT_AT(0x40)
813 #define GPIO_DIR INT_AT(0x44)
815 #define GPIO_SET INT_AT(0x48)
817 #define GPIO_CLR INT_AT(0x4c)
819 #define GPIO_READ INT_AT(0x48)
822 #define SC_PLL1 INT_AT(0x50)
824 #define SC_PLL2 INT_AT(0x54)
827 #define SC_FLAG INT_AT(0x58)
829 #define SC_SETFLAG INT_AT(0x58)
831 #define SC_CLRFLAG INT_AT(0x5c)
834 #define SC_CLKMUX INT_AT(0x60)
836 #define SC_SLEEP INT_AT(0x64)
839 #define SC_TS0 INT_AT(0x68)
841 #define SC_TS1 INT_AT(0x6c)
843 #define SC_TS2 INT_AT(0x70)
846 #define SC_ARB0 INT_AT(0x080)
848 #define SC_TAS0 INT_AT(0x100)
850 #define SC_TAC0 INT_AT(0x180)
853 #define SC_LINK_DIS INT_AT(0x200)
873 #define WDOG_BASE_UNBUF 0xf3000000
875 #define WDOG_BASE_BUF 0xe3000000
879 #define WDOG_BASE WDOG_BASE_BUF
881 #define WDOG_BASE WDOG_BASE_UNBUF
885 #define WD_LOAD INT_AT(0x00)
887 #define WD_COUNT INT_AT(0x04)
889 #define WD_CTRL INT_AT(0x08)
891 #define WD_INTCLR INT_AT(0x0c)
893 #define WD_RAWINT INT_AT(0x10)
895 #define WD_MSKINT INT_AT(0x14)
897 #define WD_LOCK INT_AT(0xc00)
900 #define WD_CODE 0x1acce551
917 #define ETH_BASE_UNBUF 0xf4000000
919 #define ETH_BASE_BUF 0xe4000000
923 #define ETH_BASE ETH_BASE_BUF
925 #define ETH_BASE ETH_BASE_UNBUF
929 #define ETH_TX_BASE (ETH_BASE + 0x0000)
931 #define ETH_TX_SIZE 0x0600
933 #define ETH_TX_TOP (ETH_TX_BASE + ETH_TX_SIZE)
936 #define ETH_RX_BASE (ETH_BASE + 0x4000)
938 #define ETH_RX_SIZE 0x0c00
940 #define ETH_RX_TOP (ETH_RX_BASE + ETH_RX_SIZE)
943 #define ETH_RX_DESC_RAM (ETH_BASE + 0x8000)
945 #define ETH_REGS (ETH_BASE + 0xc000)
948 #define ETH_CONTROL INT_AT(0x00)
950 #define ETH_STATUS INT_AT(0x04)
952 #define ETH_TX_LEN INT_AT(0x08)
954 #define ETH_TX_CMD INT_AT(0x0c)
956 #define ETH_RX_CMD INT_AT(0x10)
958 #define ETH_MAC_LO INT_AT(0x14)
960 #define ETH_MAC_HI INT_AT(0x18)
962 #define ETH_PHY_CTRL INT_AT(0x1c)
964 #define ETH_INT_CLR INT_AT(0x20)
966 #define ETH_RX_BUF_RP INT_AT(0x24)
968 #define ETH_RX_DESC_RP INT_AT(0x2c)
1067 #define CLK_XTAL_MHZ 10
1070 #define PLL_260 0x0007011a
1072 #define PLL_300 0x0007011e
1074 #define PLL_330 0x00070121
1076 #define PLL_400 0x00070128
1079 #define PLL_LOCK_TIME 80
1081 #define PLL_CLK_SEL 0x809488a5
1092 SERIAL_NCS = 0x00000020,
1093 SERIAL_CLK = 0x00000010,
1094 SERIAL_SI = 0x00000008,
1095 SERIAL_SO = 0x00000004,
1097 SERIAL_OE = (SERIAL_NCS + SERIAL_CLK + SERIAL_SI)
1101 #define TOP_BIT 0x80000000
1108 #pragma diag_suppress 66
1114 SDRAM_DPD = (1 << 30),
1115 SDRAM_HERE = (1 << 29),
1117 JTAG_NTRST = (1 << 27),
1118 JTAG_TMS = (1 << 26),
1119 JTAG_TDI = (1 << 25),
1120 JTAG_TCK = (1 << 24)
1136 #define LED_0 0x00000001
1148 #define MODE_USER 0x10
1149 #define MODE_FIQ 0x11
1150 #define MODE_IRQ 0x12
1151 #define MODE_SVC 0x13
1152 #define MODE_ABT 0x17
1153 #define MODE_UND 0x1b
1154 #define MODE_SYS 0x1f
1156 #define THUMB_BIT 0x20
1158 #define IMASK_IRQ 0x80
1159 #define IMASK_FIQ 0x40
1160 #define IMASK_ALL 0xc0
@ PKT_P2P
Packet is peer-to-peer packet.
Definition: spinnaker.h:1047
@ PKT_NN
Packet is normal nearest-neighbour packet.
Definition: spinnaker.h:1048
@ PKT_P2P_PL
Peer-to-peer with payload.
Definition: spinnaker.h:1055
@ PKT_FR_PL
Fixed-route with payload.
Definition: spinnaker.h:1057
@ PKT_NN_PL
Nearest-neighbour with payload.
Definition: spinnaker.h:1056
@ PKT_NND
Packet is peek/poke nearest-neighbour.
Definition: spinnaker.h:1049
@ PKT_PL
Packet has payload word.
Definition: spinnaker.h:1052
@ PKT_FR
Packet is fixed route packet.
Definition: spinnaker.h:1050
@ PKT_MC_PL
Multicast with payload.
Definition: spinnaker.h:1054
@ PKT_MC
Packet is multicast packet.
Definition: spinnaker.h:1046
static uint *const rtr_key
Router key array.
Definition: spinnaker.h:1024
#define WDOG_BASE
Watchdog timer base address.
Definition: spinnaker.h:879
#define VIC_BASE_UNBUF
Vectored interrupt controller base address: writes unbuffered.
Definition: spinnaker.h:247
static volatile uint *const tc
Timer controller.
Definition: spinnaker.h:995
static uint *const sysram
Base address of System RAM.
Definition: spinnaker.h:1019
static uint *const rtr_mask
Router mask array.
Definition: spinnaker.h:1026
static uchar *const eth_rx_ram
Ethernet receive memory.
Definition: spinnaker.h:1033
#define SYSRAM_BASE
Base address of System RAM.
Definition: spinnaker.h:112
#define TIMER_BASE
Timer controller base address.
Definition: spinnaker.h:181
#define RTR_P2P_BASE
Router controller: peer-to-peer table base address.
Definition: spinnaker.h:737
static volatile uint *const sc
System controller.
Definition: spinnaker.h:1006
unsigned long long uint64
Unsigned integer - 64 bits.
Definition: spinnaker.h:40
#define TOP_BIT
The top bit of an unsigned integer.
Definition: spinnaker.h:1101
@ JTAG_TDO
read value on JTAG_TDO pin
Definition: spinnaker.h:1130
@ JTAG_INT
select on-chip (1) or off-chip (0) control of JTAG pins
Definition: spinnaker.h:1131
@ JTAG_RTCK
read value on JTAG_RTCK pin
Definition: spinnaker.h:1129
static uint *const sdram
Base address of SDRAM.
Definition: spinnaker.h:1017
static volatile uint *const cc
Communications controller.
Definition: spinnaker.h:993
#define RTR_MCKEY_BASE
Router controller: multicast key table base address (write only)
Definition: spinnaker.h:727
#define SYSCTL_BASE
System controller base address.
Definition: spinnaker.h:759
spinnaker_interrupt_numbers_e
Interrupt numbers for SpiNNaker.
Definition: spinnaker.h:354
@ GPIO8_INT
Signal on Pin GPIO[8].
Definition: spinnaker.h:385
@ INT0_INT
External interrupt request: Pin INT[0].
Definition: spinnaker.h:383
@ CC_RFE_INT
Local comms controller received packet framing error.
Definition: spinnaker.h:363
@ SOFTWARE_INT
Used only for local software interrupt generation.
Definition: spinnaker.h:356
@ INT1_INT
External interrupt request: Pin INT[1].
Definition: spinnaker.h:384
@ RTR_DUMP_INT
Router packet dumped - indicates failed delivery.
Definition: spinnaker.h:371
@ DMA_TO_INT
Local DMA controller transfer timed out.
Definition: spinnaker.h:369
@ CC_RDY_INT
Local comms controller packet received.
Definition: spinnaker.h:361
@ COMM_RX_INT
Debug communications receiver interrupt.
Definition: spinnaker.h:357
@ CC_NN_INT
Local comms controller nearest neighbour packet receive.
Definition: spinnaker.h:381
@ ETH_TX_INT
Ethernet transmit frame interrupt.
Definition: spinnaker.h:374
@ CC_TNF_INT
Local comms controller can accept new Tx packet.
Definition: spinnaker.h:378
@ CC_FR_INT
Local comms controller fixed route packet received.
Definition: spinnaker.h:382
@ CC_TFL_INT
Local comms controller transmit buffer full.
Definition: spinnaker.h:364
@ DMA_DONE_INT
Local DMA controller transfer complete.
Definition: spinnaker.h:367
@ TIMER2_INT
Local counter/timer interrupt 2.
Definition: spinnaker.h:360
@ RTR_DIAG_INT
Router diagnostic counter event has occurred.
Definition: spinnaker.h:370
@ CC_TOV_INT
Local comms controller transmit buffer overflow.
Definition: spinnaker.h:365
@ COMM_TX_INT
Debug communications transmitter interrupt.
Definition: spinnaker.h:358
@ CC_MC_INT
Local comms controller multicast packet received.
Definition: spinnaker.h:379
@ RTR_ERR_INT
Router error - packet parity, framing, or time stamp error.
Definition: spinnaker.h:372
@ DMA_ERR_INT
Local DMA controller error.
Definition: spinnaker.h:368
@ CPU_INT
System Controller interrupt bit set for this processor.
Definition: spinnaker.h:373
@ GPIO9_INT
Signal on Pin GPIO[9].
Definition: spinnaker.h:386
@ ETH_RX_INT
Ethernet receive frame interrupt.
Definition: spinnaker.h:375
@ CC_RPE_INT
Local comms controller received packet parity error.
Definition: spinnaker.h:362
@ ETH_PHY_INT
Ethernet PHY/external interrupt.
Definition: spinnaker.h:376
@ SLOW_CLK_INT
System-wide slow (nominally 32 KHz) timer interrupt.
Definition: spinnaker.h:377
@ CC_TMT_INT
Local comms controller transmit buffer empty.
Definition: spinnaker.h:366
@ TIMER1_INT
Local counter/timer interrupt 1.
Definition: spinnaker.h:359
@ CC_P2P_INT
Local comms controller point-to-point packet received.
Definition: spinnaker.h:380
@ WDOG_INT
Watchdog timer interrupt.
Definition: spinnaker.h:355
static volatile uint *const mc
PL340 memory controller.
Definition: spinnaker.h:1012
static uint *const rtr_p2p
Router peer-to-peer table.
Definition: spinnaker.h:1028
static volatile uint *const vic
Vectored interrupt controller.
Definition: spinnaker.h:1001
@ ETH_RX_CLR
Clear receive interrupt request.
Definition: spinnaker.h:973
@ ETH_TX_CLR
Clear transmit interrupt request.
Definition: spinnaker.h:972
#define RTR_MCRAM_BASE
Router controller: multicast route table base address.
Definition: spinnaker.h:722
unsigned char uchar
Unsigned integer - 8 bits.
Definition: spinnaker.h:37
#define CC_BASE
Communications controller base address.
Definition: spinnaker.h:144
@ PHY_CTRL_DIN
SMI data input.
Definition: spinnaker.h:979
@ PHY_CTRL_OE
SMI data output enable.
Definition: spinnaker.h:981
@ PHY_CTRL_NRST
PHY reset (active low)
Definition: spinnaker.h:978
@ PHY_CTRL_CLK
SMI clock (active rising)
Definition: spinnaker.h:982
@ PHY_CTRL_DOUT
SMI data output.
Definition: spinnaker.h:980
#define ETH_TX_BASE
Ethernet transmit buffer: base address.
Definition: spinnaker.h:929
static volatile uint *const rtr
Router controller.
Definition: spinnaker.h:1008
#define TIMER1_BASE
Timer 1 base address.
Definition: spinnaker.h:189
#define ETH_REGS
Ethernet controller registers: base address.
Definition: spinnaker.h:945
#define RTR_MCMASK_BASE
Router controller: multicast mask table base address (write only)
Definition: spinnaker.h:732
unsigned int uint
Unsigned integer - 32 bits.
Definition: spinnaker.h:39
#define TIMER2_BASE
Timer 2 base address.
Definition: spinnaker.h:191
#define ETH_RX_DESC_RAM
Ethernet receive descriptors: base address.
Definition: spinnaker.h:943
static uint *const eth_rx_desc
Ethernet receive descriptor array.
Definition: spinnaker.h:1035
static uchar *const eth_tx_ram
Ethernet transmit memory.
Definition: spinnaker.h:1031
#define PL340_BASE
Memory controller base address.
Definition: spinnaker.h:472
#define DMA_BASE
DMA controller base address.
Definition: spinnaker.h:404
static uint *const rtr_ram
Router memory.
Definition: spinnaker.h:1022
unsigned short ushort
Unsigned integer - 16 bits.
Definition: spinnaker.h:38
static volatile uint *const tc2
Timer 2.
Definition: spinnaker.h:999
@ RST_SW
Reset entire chip.
Definition: spinnaker.h:860
@ RST_WDI
Watchdog interrupt (monitor only)
Definition: spinnaker.h:861
@ RST_WDT
Watchdog reset.
Definition: spinnaker.h:858
@ RST_USER
User reset.
Definition: spinnaker.h:859
@ RST_POR
Power-on reset.
Definition: spinnaker.h:857
#define SDRAM_BASE
Base address of SDRAM.
Definition: spinnaker.h:95
#define ETH_RX_BASE
Ethernet receive buffer: base address.
Definition: spinnaker.h:936
static volatile uint *const er
Ethernet controller.
Definition: spinnaker.h:1010
static volatile uint *const wd
Watchdog controller.
Definition: spinnaker.h:1014
@ WD_RST_B
enable watchdog reset output
Definition: spinnaker.h:905
@ WD_INT_B
enable watchdog counter and interrupt
Definition: spinnaker.h:904
static volatile uint *const dma
DMA controller.
Definition: spinnaker.h:1003
#define RTR_BASE
Router base address.
Definition: spinnaker.h:586
static volatile uint *const tc1
Timer 1.
Definition: spinnaker.h:997