Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
spec-sw
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
fmc-projects
spec
spec-sw
Commits
a99a59c5
There was an error fetching the commit references. Please try again later.
Commit
a99a59c5
authored
13 years ago
by
Alessandro Rubini
Browse files
Options
Downloads
Patches
Plain Diff
kernel/nic-hardware.h: define our memory map
parent
2ba40c02
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
kernel/wr_nic/nic-hardware.h
+36
-29
36 additions, 29 deletions
kernel/wr_nic/nic-hardware.h
with
36 additions
and
29 deletions
kernel/wr_nic/nic-hardware.h
+
36
−
29
View file @
a99a59c5
/*
* hardware-specific definitions for the White Rabbit NIC
*
* Copyright (C) 2010 CERN (www.cern.ch)
* Copyright (C) 2010
-2012
CERN (www.cern.ch)
* Author: Alessandro Rubini <rubini@gnudd.com>
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -16,42 +16,49 @@
#define NSEC_PER_TICK (NSEC_PER_SEC / REFCLK_FREQ)
/* The interrupt is one of those managed by our WRVIC device */
#define WRN_IRQ_BASE
192
#define WRN_IRQ_BASE
0
/* FIXME: relative to pci dev */
#define WRN_IRQ_NIC (WRN_IRQ_BASE + 0)
#define WRN_IRQ_TSTAMP (WRN_IRQ_BASE + 1)
#define WRN_IRQ_TSTAMP
/*
(WRN_IRQ_BASE + 1)
-- not used here */
//#define WRN_IRQ_PPSG (WRN_IRQ_BASE + )
//#define WRN_IRQ_RTU (WRN_IRQ_BASE + )
//#define WRN_IRQ_RTUT (WRN_IRQ_BASE + )
/*
*
V3 Memory map, t
em
p
or
arily (Jan 2012)
*
spec-wr-nic m
emor
y map
*
* 0x00000 - 0x1ffff:
RT Subsystem
* 0x
0
0000 - 0x
0ff
ff:
RT Subsystem Program Memory (16 - 64 kB)
* 0x
100
00 - 0x
100
ff:
RT Subsystem UART
* 0x
101
00 - 0x
101
ff: RT Subsystem SoftPLL-adv
* 0x
102
00 - 0x
102
ff:
RT Subsystem SPI Maste
r
* 0x
103
00 - 0x
103
ff:
RT Subsystem GPIO
* 0x
1
0500 - 0x
1
05ff:
PPS gen
* 0x20
0
00 - 0x
3ff
ff:
NIC
* 0x20
0
00 - 0x20ff
f NIC control regs and descriptor a
re
a
* 0x
28
000 - 0x
2b
fff
NIC packet buffer (16k)
* 0x
3
0000 - 0x
4ff
ff:
Endpoints
* 0x
30
000
+ N * 0x400 Endpoint N control registers
* 0x
500
00 - 0x
50f
ff:
VIC
* 0x
510
00 - 0x
51f
ff:
Tstamp unit
* 0x00000 - 0x1ffff: RT Subsystem
(ram etc)
* 0x
2
0000 - 0x
200
ff:
Mini-NIC
* 0x
201
00 - 0x
201
ff:
Endpoint (not used here)
* 0x
202
00 - 0x
202
ff: RT Subsystem SoftPLL-adv
* 0x
203
00 - 0x
203
ff:
pps generato
r
* 0x
204
00 - 0x
204
ff:
syscon
* 0x
2
0500 - 0x
2
05ff:
RT Subsystem UART
* 0x20
6
00 - 0x
206
ff:
RT Subsystem Onewire
* 0x20
7
00 - 0x20
7
ff
: RT Subsystem Onewi
re
* 0x
40
000 - 0x
5f
fff
: WR-NIC
* 0x
6
0000 - 0x
600
ff:
VIC core
* 0x
61
000
- 0x610ff: timestamping unit
* 0x
622
00 - 0x
622
ff:
GPIO Port
* 0x
623
00 - 0x
623
ff:
WR-DIO
*/
/* This is the base address of all the FPGA regions (EBI1, CS0) */
#define FPGA_BASE_PPSG 0x10010500
/* This is the base address of memory regions (gennum bridge, bar 0) */
#define FPGA_BASE_LM32 0x00080000
#define FPGA_SIZE_LM32 0x00010000
#define FPGA_BASE_NIC 0x000a0000
#define FPGA_SIZE_NIC 0x00000100
#define FPGA_BASE_EP 0x000a0100
#define FPGA_SIZE_EP 0x00000100
#define FPGA_SIZE_EACH_EP 0x100
/* There is one only */
#define FPGA_BASE_PPSG 0x000a0300
#define FPGA_SIZE_PPSG 0x00000100
#define FPGA_BASE_NIC 0x10020000
#define FPGA_SIZE_NIC 0x00010000
#define FPGA_BASE_EP 0x10030000
#define FPGA_SIZE_EP 0x00010000
#define FPGA_SIZE_EACH_EP 0x400
#define FPGA_BASE_VIC 0x10050000
/* not used here */
#define FPGA_BASE_VIC 0x000a4000
/* not used here */
#define FPGA_SIZE_VIC 0x00001000
#define FPGA_BASE_TS 0x
1
00
51
000
#define FPGA_BASE_TS 0x00
0a8
000
#define FPGA_SIZE_TS 0x00001000
enum
fpga_blocks
{
...
...
@@ -63,14 +70,14 @@ enum fpga_blocks {
};
/* In addition to the above enumeration, we scan for those many endpoints */
#define WRN_NR_ENDPOINTS 1
8
#define WRN_NR_ENDPOINTS 1
/* 8 tx and 8 rx descriptors */
#define WRN_NR_DESC 8
#define WRN_NR_TXDESC WRN_NR_DESC
#define WRN_NR_RXDESC WRN_NR_DESC
/* Magic number for endpoint */
/* Magic number for endpoint
(missing, I fear)
*/
#define WRN_EP_MAGIC 0xcafebabe
/*
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment