Skip to content

Commit 7dd6cb5

Browse files
author
Daniel McLean
committed
Merging master into rtm4
2 parents 8838c59 + 7ce821f commit 7dd6cb5

File tree

11 files changed

+1029
-169
lines changed

11 files changed

+1029
-169
lines changed

.gitignore

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,47 @@
1212
*.swo
1313
*.eep
1414
*.elf
15+
*.la
16+
*.lo
1517
*.lss
18+
*.log
1619
*.sym
1720
*.cproject
1821
*.project
1922
*.settings*
2023
*/Debug/*
2124
*.sw?
25+
*.in
26+
*.cache
27+
*.guess
28+
*.sub
29+
*.m4
30+
.deps
31+
.libs
2232
.metadata/*
2333
RemoteSystemsTempFiles/*
2434
boot/.dep/*
25-
tags
2635
out/*
36+
tags
37+
ar-lib
38+
compile
39+
configure
40+
depcomp
41+
Makefile
42+
missing
43+
libtool
44+
ltmain.sh
45+
install-sh
46+
47+
#Ignore output binaries
48+
mcu
49+
mem
50+
server
51+
52+
#Ignore generated headers
53+
config.status
54+
config.h
55+
stamp-h1
2756

2857
#Ignore hex (programming files) in this directory
2958
*.hex

autogen.sh

100644100755
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ if [ "$1" = "clean" ]; then
2929
-o -name 'ltsugar.m4' \
3030
-o -name 'ltversion.m4' \
3131
-o -name 'lt~obsolete.m4' \
32+
-o -name 'm4' \
3233
-o -name 'missing' \
3334
-o -name 'stamp-h1' \
3435
-o -name 'test-driver' \

common/common.c

Lines changed: 24 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -17,79 +17,45 @@
1717

1818
#include "common.h"
1919

20-
static FILE* fout = NULL;
21-
static FILE* dout = NULL;
20+
int verbose;
2221

23-
int PRINT( print_t priority, const char* format, ... ) {
24-
int ret = 0;
25-
va_list args;
26-
va_start(args, format);
22+
void PRINT_WRAPPER( print_t priority, const char* format, ... ) {
2723

28-
// open the file
29-
if (!fout) {
30-
fout = fopen(LOG_FILE, "a");
31-
}
24+
FILE* o;
3225

33-
if (!dout) {
34-
dout = fopen(DUMP_FILE, "a");
35-
}
26+
va_list args;
27+
va_start( args, format );
3628

37-
// get the time
38-
struct timespec ts;
39-
clock_gettime(CLOCK_REALTIME, &ts);
29+
o = NULL;
4030

41-
// pre-pend the print message with time and info
42-
char newfmt[BUF_SIZE] = {0};
43-
switch (priority) {
31+
switch( priority ){
4432
case ERROR:
45-
snprintf(newfmt, BUF_SIZE, "[%6ld.%03ld] ERROR: ", (long)ts.tv_sec, ts.tv_nsec / 1000000UL);
33+
o = stderr;
4634
break;
47-
case INFO:
48-
snprintf(newfmt, BUF_SIZE, "[%6ld.%03ld] INFO: ", (long)ts.tv_sec, ts.tv_nsec / 1000000UL);
35+
36+
case VERBOSE:
37+
if ( verbose >= 1 ){
38+
o = stdout;
39+
}
4940
break;
41+
5042
case DEBUG:
51-
snprintf(newfmt, BUF_SIZE, "[%6ld.%03ld] DEBUG: ", (long)ts.tv_sec, ts.tv_nsec / 1000000UL);
52-
break;
53-
case VERBOSE:
54-
snprintf(newfmt, BUF_SIZE, "[%6ld.%03ld] VERB: ", (long)ts.tv_sec, ts.tv_nsec / 1000000UL);
43+
if ( verbose >= 2 ){
44+
o = stdout;
45+
}
5546
break;
47+
48+
case INFO:
5649
case DUMP:
57-
snprintf(newfmt, BUF_SIZE, "[%6ld.%03ld] DUMP: ", (long)ts.tv_sec, ts.tv_nsec / 1000000UL);
58-
break;
5950
default:
60-
snprintf(newfmt, BUF_SIZE, "[%6ld.%03ld] DFLT: ", (long)ts.tv_sec, ts.tv_nsec / 1000000UL);
51+
o = stdout;
6152
break;
6253
}
63-
strcpy(newfmt + strlen(newfmt), format);
64-
65-
// DUMP or DEBUG or INFO or ERROR, file
66-
if (fout && priority != VERBOSE) {
67-
ret = vfprintf(fout, newfmt, args );
68-
}
69-
70-
// INFO, stdout
71-
if (priority == INFO) {
72-
ret = vprintf(newfmt, args);
73-
}
7454

75-
// ERROR, stderr
76-
if (priority == ERROR ) {
77-
ret = vfprintf(stderr, newfmt, args );
55+
if ( NULL != o ) {
56+
vfprintf( o, format, args );
57+
fflush( o );
7858
}
7959

80-
// DUMP, file
81-
if (priority == DUMP) {
82-
ret = vfprintf(dout, newfmt, args);
83-
}
84-
85-
if (priority == VERBOSE) {
86-
// do nothing as of now
87-
}
88-
89-
// flush the file
90-
fflush(fout);
91-
fflush(dout);
92-
93-
va_end(args);
94-
return ret;
60+
va_end( args );
9561
}

common/common.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,18 @@ typedef enum {
134134
} print_t;
135135

136136
// printf wrapper
137-
int PRINT( print_t priority, const char* format, ... );
137+
void PRINT_WRAPPER( print_t priority, const char* format, ... );
138+
139+
#define PRINT( prio, fmt, args ... ) \
140+
do { \
141+
struct timespec _ts; \
142+
clock_gettime( CLOCK_REALTIME, & _ts ); \
143+
if ( ERROR == prio ) { \
144+
PRINT_WRAPPER( prio, "[%6ld.%03ld] %s: %s(): " fmt, (long)_ts.tv_sec, _ts.tv_nsec / 1000000UL, #prio, __func__, ##args ); \
145+
} else { \
146+
PRINT_WRAPPER( prio, "[%6ld.%03ld] %s: " fmt, (long)_ts.tv_sec, _ts.tv_nsec / 1000000UL, #prio, ##args ); \
147+
} \
148+
} while( 0 )
138149

139150
#define LOG_FILE ( "/var/crimson/crimson.log" )
140151
#define DUMP_FILE ( "/var/crimson/dump.log" )

hal/drivers/mmap/regmap.c

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ static const reg_t reg_table[] = {
3535
{0x0b0 + HPS2FPGA_GPR_OFST, "sys11", 0x00000000, "RW"},
3636
{0x0c0 + HPS2FPGA_GPR_OFST, "sys12", 0x00000000, "RW"},
3737
{0x0d0 + HPS2FPGA_GPR_OFST, "sys13", 0x00000000, "RW"},
38+
{0x0e0 + HPS2FPGA_GPR_OFST, "sys14", 0x00000000, "RO"},
39+
{0x0f0 + HPS2FPGA_GPR_OFST, "sys15", 0x00000000, "RO"},
40+
{0x0f4 + HPS2FPGA_GPR_OFST, "sys16", 0x00000000, "RO"},
41+
{0x0f8 + HPS2FPGA_GPR_OFST, "sys17", 0x00000000, "RO"},
42+
{0x0fc + HPS2FPGA_GPR_OFST, "sys18", 0x00000000, "RO"},
3843

3944

4045
{0x120 + HPS2FPGA_GPR_OFST, "led0", 0x00000000, "RW"},
@@ -80,6 +85,10 @@ static const reg_t reg_table[] = {
8085
{0x460 + HPS2FPGA_GPR_OFST, "rxa6", 0x00000000, "RW"},
8186
{0x470 + HPS2FPGA_GPR_OFST, "rxa7", 0x00000000, "RW"},
8287
{0x480 + HPS2FPGA_GPR_OFST, "rxa8", 0x0000a745, "RW"},
88+
{0x484 + HPS2FPGA_GPR_OFST, "rxa9", 0x00000000, "RW"},
89+
{0x488 + HPS2FPGA_GPR_OFST, "rxa10", 0x00000000, "RW"},
90+
{0x48c + HPS2FPGA_GPR_OFST, "rxa11", 0x00000000, "RW"},
91+
{0x490 + HPS2FPGA_GPR_OFST, "rxa12", 0x00000000, "RW"},
8392
{0x500 + HPS2FPGA_GPR_OFST, "rxb0", 0x00000000, "RW"},
8493
{0x510 + HPS2FPGA_GPR_OFST, "rxb1", 0x000000ff, "RW"},
8594
{0x520 + HPS2FPGA_GPR_OFST, "rxb2", 0x00000000, "RW"},
@@ -89,6 +98,10 @@ static const reg_t reg_table[] = {
8998
{0x560 + HPS2FPGA_GPR_OFST, "rxb6", 0x00000000, "RW"},
9099
{0x570 + HPS2FPGA_GPR_OFST, "rxb7", 0x00000000, "RW"},
91100
{0x580 + HPS2FPGA_GPR_OFST, "rxb8", 0x0000a746, "RW"},
101+
{0x584 + HPS2FPGA_GPR_OFST, "rxb9", 0x00000000, "RW"},
102+
{0x588 + HPS2FPGA_GPR_OFST, "rxb10", 0x00000000, "RW"},
103+
{0x58c + HPS2FPGA_GPR_OFST, "rxb11", 0x00000000, "RW"},
104+
{0x590 + HPS2FPGA_GPR_OFST, "rxb12", 0x00000000, "RW"},
92105
{0x600 + HPS2FPGA_GPR_OFST, "rxc0", 0x00000000, "RW"},
93106
{0x610 + HPS2FPGA_GPR_OFST, "rxc1", 0x000000ff, "RW"},
94107
{0x620 + HPS2FPGA_GPR_OFST, "rxc2", 0x00000000, "RW"},
@@ -98,6 +111,10 @@ static const reg_t reg_table[] = {
98111
{0x660 + HPS2FPGA_GPR_OFST, "rxc6", 0x00000000, "RW"},
99112
{0x670 + HPS2FPGA_GPR_OFST, "rxc7", 0x00000000, "RW"},
100113
{0x680 + HPS2FPGA_GPR_OFST, "rxc8", 0x0000a747, "RW"},
114+
{0x684 + HPS2FPGA_GPR_OFST, "rxc9", 0x00000000, "RW"},
115+
{0x688 + HPS2FPGA_GPR_OFST, "rxc10", 0x00000000, "RW"},
116+
{0x68c + HPS2FPGA_GPR_OFST, "rxc11", 0x00000000, "RW"},
117+
{0x690 + HPS2FPGA_GPR_OFST, "rxc12", 0x00000000, "RW"},
101118
{0x700 + HPS2FPGA_GPR_OFST, "rxd0", 0x00000000, "RW"},
102119
{0x710 + HPS2FPGA_GPR_OFST, "rxd1", 0x000000ff, "RW"},
103120
{0x720 + HPS2FPGA_GPR_OFST, "rxd2", 0x00000000, "RW"},
@@ -107,31 +124,51 @@ static const reg_t reg_table[] = {
107124
{0x760 + HPS2FPGA_GPR_OFST, "rxd6", 0x00000000, "RW"},
108125
{0x770 + HPS2FPGA_GPR_OFST, "rxd7", 0x00000000, "RW"},
109126
{0x780 + HPS2FPGA_GPR_OFST, "rxd8", 0x0000a748, "RW"},
127+
{0x784 + HPS2FPGA_GPR_OFST, "rxd9", 0x00000000, "RW"},
128+
{0x788 + HPS2FPGA_GPR_OFST, "rxd10", 0x00000000, "RW"},
129+
{0x78c + HPS2FPGA_GPR_OFST, "rxd11", 0x00000000, "RW"},
130+
{0x790 + HPS2FPGA_GPR_OFST, "rxd12", 0x00000000, "RW"},
110131

111132
{0x800 + HPS2FPGA_GPR_OFST, "txa0", 0x00000000, "RW"},
112133
{0x810 + HPS2FPGA_GPR_OFST, "txa1", 0x000000ff, "RW"},
113134
{0x820 + HPS2FPGA_GPR_OFST, "txa2", 0x00000000, "RW"},
114135
{0x830 + HPS2FPGA_GPR_OFST, "txa3", 0x00000000, "RW"},
115136
{0x840 + HPS2FPGA_GPR_OFST, "txa4", 0x00000000, "RW"},
116137
{0x850 + HPS2FPGA_GPR_OFST, "txa5", 0x0000a749, "RW"},
138+
{0x854 + HPS2FPGA_GPR_OFST, "txa6", 0x00000000, "RW"},
139+
{0x858 + HPS2FPGA_GPR_OFST, "txa7", 0x00000000, "RW"},
140+
{0x85c + HPS2FPGA_GPR_OFST, "txa8", 0x00000000, "RW"},
141+
{0x860 + HPS2FPGA_GPR_OFST, "txa9", 0x00000000, "RW"},
117142
{0x900 + HPS2FPGA_GPR_OFST, "txb0", 0x00000000, "RW"},
118143
{0x910 + HPS2FPGA_GPR_OFST, "txb1", 0x000000ff, "RW"},
119144
{0x920 + HPS2FPGA_GPR_OFST, "txb2", 0x00000000, "RW"},
120145
{0x930 + HPS2FPGA_GPR_OFST, "txb3", 0x00000000, "RW"},
121146
{0x940 + HPS2FPGA_GPR_OFST, "txb4", 0x00000200, "RW"},
122147
{0x950 + HPS2FPGA_GPR_OFST, "txb5", 0x0000a74a, "RW"},
148+
{0x954 + HPS2FPGA_GPR_OFST, "txb6", 0x00000000, "RW"},
149+
{0x958 + HPS2FPGA_GPR_OFST, "txb7", 0x00000000, "RW"},
150+
{0x95c + HPS2FPGA_GPR_OFST, "txb8", 0x00000000, "RW"},
151+
{0x960 + HPS2FPGA_GPR_OFST, "txb9", 0x00000000, "RW"},
123152
{0xa00 + HPS2FPGA_GPR_OFST, "txc0", 0x00000000, "RW"},
124153
{0xa10 + HPS2FPGA_GPR_OFST, "txc1", 0x000000ff, "RW"},
125154
{0xa20 + HPS2FPGA_GPR_OFST, "txc2", 0x00000000, "RW"},
126155
{0xa30 + HPS2FPGA_GPR_OFST, "txc3", 0x00000000, "RW"},
127156
{0xa40 + HPS2FPGA_GPR_OFST, "txc4", 0x00000000, "RW"},
128157
{0xa50 + HPS2FPGA_GPR_OFST, "txc5", 0x0000a74b, "RW"},
158+
{0xa54 + HPS2FPGA_GPR_OFST, "txc6", 0x00000000, "RW"},
159+
{0xa58 + HPS2FPGA_GPR_OFST, "txc7", 0x00000000, "RW"},
160+
{0xa5c + HPS2FPGA_GPR_OFST, "txc8", 0x00000000, "RW"},
161+
{0xa60 + HPS2FPGA_GPR_OFST, "txc9", 0x00000000, "RW"},
129162
{0xb00 + HPS2FPGA_GPR_OFST, "txd0", 0x00000000, "RW"},
130163
{0xb10 + HPS2FPGA_GPR_OFST, "txd1", 0x000000ff, "RW"},
131164
{0xb20 + HPS2FPGA_GPR_OFST, "txd2", 0x00000000, "RW"},
132165
{0xb30 + HPS2FPGA_GPR_OFST, "txd3", 0x00000000, "RW"},
133166
{0xb40 + HPS2FPGA_GPR_OFST, "txd4", 0x00000200, "RW"},
134167
{0xb50 + HPS2FPGA_GPR_OFST, "txd5", 0x0000a74c, "RW"},
168+
{0xb54 + HPS2FPGA_GPR_OFST, "txd6", 0x00000000, "RW"},
169+
{0xb58 + HPS2FPGA_GPR_OFST, "txd7", 0x00000000, "RW"},
170+
{0xb5c + HPS2FPGA_GPR_OFST, "txd8", 0x00000000, "RW"},
171+
{0xb60 + HPS2FPGA_GPR_OFST, "txd9", 0x00000000, "RW"},
135172

136173
{0xc00 + HPS2FPGA_GPR_OFST, "rxga", 0x80808080, "RW"},
137174
{0xc10 + HPS2FPGA_GPR_OFST, "txga", 0x80808080, "RW"},

hal/pllcalc.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ int main (void)
4646
pllparam_t pll;
4747

4848
//Debug parameters;
49-
double max_diff = 5000001;
49+
double max_diff = PLL_CORE_REF_FREQ_HZ/PLL1_R_FIXED;
5050
double max_N = PLL1_N_MAX;
5151
double max_R = PLL1_R_MAX;
5252
int printdebug = 0;
5353
uint64_t stepFreq = (1000000);
5454

5555
//for (reqFreq = stepFreq * 100; reqFreq <= stepFreq * 6250; reqFreq += stepFreq)
56-
for (reqFreq = 2600000000; reqFreq <= 2900000000; reqFreq += stepFreq)
56+
for (reqFreq = 700e6; reqFreq <= 6800000000; reqFreq += stepFreq)
5757
{
5858

5959
// This is the main function, everything after is for statistics
@@ -191,11 +191,12 @@ double setFreq(uint64_t* reqFreq, pllparam_t* pll) {
191191

192192
// 2. Use the reference to determine R, N, and pfd frequency
193193
long double pd_freq = (long double)PLL_CORE_REF_FREQ_HZ / (long double)pll->R;
194-
195194

196195
double N1 = 0;
196+
197197
// Determine the values of the N and dividers for PLL1
198198
if ( !pll->divFBen || *reqFreq < PLL1_FB_THRESHOLD ) {
199+
pll->divFBen = 0;
199200
N1 = (double)pll->vcoFreq / (double)pd_freq;
200201
} else {
201202
N1 = (double)pll->vcoFreq / (double)pll->d;

hal/pllcalc.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@
7676
// ADF4355 Default specs
7777
#define PLL1_R_FIXED ( 13 ) // R value must be fixed to ensure consistent PFD frequency (13MHz)
7878

79-
#define PLL1_N_DEFAULT ( 572 ) // N value (N^2 contribution to PLL noise) [16..4096]
79+
#define PLL1_N_DEFAULT ( 112 ) // N value (N^2 contribution to PLL noise) [16..4096]
8080
#define PLL1_D_DEFAULT ( 2 ) // RFoutput divider value (1,2,4,6..58,60,62)
8181
#define PLL1_X2EN_DEFAULT ( 0 ) // RFoutput doubler enabled (0=off, 1=on (RFout is doubled))
82-
#define PLL1_OUTFREQ_DEFAULT ( 2904700000 ) // Resulting VCO Output Frequency
82+
#define PLL1_OUTFREQ_DEFAULT ( 2800000000 ) // Resulting VCO Output Frequency
8383
#define PLL1_FB_DEFAULT ( 0 ) // VCO divider feedback
8484

8585

0 commit comments

Comments
 (0)