I think that does what they do except for ram_fill_init and
initfromflash
This commit is contained in:
parent
9a896369b7
commit
dc581a7876
2 changed files with 107 additions and 34 deletions
|
@ -47,25 +47,7 @@ then they do 11 entries in cal3 and reg replacment (first two have delays)
|
|||
0x402bac <gRadioTOCCal3_c+32>: 0x80009a00 0x8c900021 0x80009a00 0x8c900027
|
||||
0x402bbc <gRadioTOCCal3_c+48>: 0x00000000 0x00011194 0x80009a00 0x8c90002b
|
||||
0x402bcc <gRadioTOCCal3_c+64>: 0x80009a00 0x8c90002f 0x00000000 0x00011194
|
||||
0x402bdc <gRadioTOCCal3_c+80>: 0x80009a00 0x8c900000 0x80009000 0x80050300
|
||||
0x402bec <gRadioInit_RegReplacement_c>: 0x80004118 0x00180012 0x80009204 0x00000605
|
||||
0x402bfc <gRadioInit_RegReplacement_c+16>: 0x80009208 0x00000504 0x8000920c 0x00001111
|
||||
0x402c0c <gRadioInit_RegReplacement_c+32>: 0x80009210 0x0fc40000 0x80009300 0x20046000
|
||||
0x402c1c <gRadioInit_RegReplacement_c+48>: 0x80009304 0x4005580c 0x80009308 0x40075801
|
||||
0x402c2c <gRadioInit_RegReplacement_c+64>: 0x8000930c 0x4005d801 0x80009310 0x5a45d800
|
||||
0x402c3c <gRadioInit_RegReplacement_c+80>: 0x80009314 0x4a45d800 0x80009318 0x40044000
|
||||
---Type <return> to continue, or q <return> to quit---
|
||||
0x402c4c <gRadioInit_RegReplacement_c+96>: 0x80009380 0x00106000 0x80009384 0x00083806
|
||||
0x402c5c <gRadioInit_RegReplacement_c+112>: 0x80009388 0x00093807 0x8000938c 0x0009b804
|
||||
0x402c6c <gRadioInit_RegReplacement_c+128>: 0x80009390 0x000db800 0x80009394 0x00093802
|
||||
0x402c7c <gRadioInit_RegReplacement_c+144>: 0x8000a008 0x00000015 0x8000a018 0x00000002
|
||||
0x402c8c <gRadioInit_RegReplacement_c+160>: 0x8000a01c 0x0000000f 0x80009424 0x0000aaa0
|
||||
0x402c9c <gRadioInit_RegReplacement_c+176>: 0x80009434 0x01002020 0x80009438 0x016800fe
|
||||
0x402cac <gRadioInit_RegReplacement_c+192>: 0x8000943c 0x8e578248 0x80009440 0x000000dd
|
||||
0x402cbc <gRadioInit_RegReplacement_c+208>: 0x80009444 0x00000946 0x80009448 0x0000035a
|
||||
0x402ccc <gRadioInit_RegReplacement_c+224>: 0x8000944c 0x00100010 0x80009450 0x00000515
|
||||
0x402cdc <gRadioInit_RegReplacement_c+240>: 0x80009460 0x00397feb 0x80009464 0x00180358
|
||||
|
||||
0x402bdc <gRadioTOCCal3_c+80>: 0x80009a00 0x8c900000
|
||||
|
||||
then 4 entries from r5+24 (buffer_radio_init and cal5)
|
||||
|
||||
|
@ -75,7 +57,7 @@ then 4 entries from r5+24 (buffer_radio_init and cal5)
|
|||
|
||||
then 43 entries from r4+152 (reg replacement)
|
||||
|
||||
0x402bec <gRadioInit_RegReplacement_c>: 0x80004118 0x00180012 0x80009204 0x00000605
|
||||
0x402bec <gRadioInit_RegReplacement_c>: 0x80004118 0x00180012 0x80009204 0x00000605
|
||||
0x402bfc <gRadioInit_RegReplacement_c+16>: 0x80009208 0x00000504 0x8000920c 0x00001111
|
||||
0x402c0c <gRadioInit_RegReplacement_c+32>: 0x80009210 0x0fc40000 0x80009300 0x20046000
|
||||
0x402c1c <gRadioInit_RegReplacement_c+48>: 0x80009304 0x4005580c 0x80009308 0x40075801
|
||||
|
|
119
src/maca.c
119
src/maca.c
|
@ -1,16 +1,5 @@
|
|||
#include "maca.h"
|
||||
|
||||
/* best format */
|
||||
#define MAX_DATA 43
|
||||
const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x8000920c,0x80009210,0x80009300,0x80009304,0x80009308,0x8000930c,0x80009310,0x80009314,0x80009318,0x80009380,0x80009384,0x80009388,0x8000938c,0x80009390,0x80009394,0x8000a008,0x8000a018,0x8000a01c,0x80009424,0x80009434,0x80009438,0x8000943c,0x80009440,0x80009444,0x80009448,0x8000944c,0x80009450,0x80009460,0x80009464,0x8000947c,0x800094e0,0x800094e4,0x800094e8,0x800094ec,0x800094f0,0x800094f4,0x800094f8,0x80009470,0x8000981c,0x80009828 };
|
||||
|
||||
const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a };
|
||||
|
||||
#define MAX_CAL3 22
|
||||
const uint32_t addr_cal3[MAX_CAL3] = { 0x80009400,0x80009a04,0x80009a00,0x00000000,0x80009a00,0x80009a00,0x00000000,0x80009a00,0x80009a00,0x00000000,0x80009a00 };
|
||||
|
||||
const uint32_t data_cal3[MAX_CAL3] = {0x00020017,0x8185a0a4,0x8c900025,0x00011194,0x8c900021,0x8c900027,0x00011194,0x8c90002b,0x8c90002f,0x00011194,0x8c900000};
|
||||
|
||||
void init_phy(void)
|
||||
{
|
||||
volatile uint32_t cnt;
|
||||
|
@ -85,13 +74,115 @@ void flyback_init(void) {
|
|||
/* good luck and godspeed */
|
||||
}
|
||||
|
||||
#define MAX_SEQ1 2
|
||||
const uint32_t addr_seq1[MAX_SEQ1] = {
|
||||
0x80003048,
|
||||
0x8000304c,
|
||||
};
|
||||
|
||||
const uint32_t data_seq1[MAX_SEQ1] = {
|
||||
0x00000f78,
|
||||
0x00607707,
|
||||
};
|
||||
|
||||
|
||||
#define MAX_SEQ2 2
|
||||
const uint32_t addr_seq2[MAX_SEQ2] = {
|
||||
0x8000a050,
|
||||
0x8000a054,
|
||||
};
|
||||
|
||||
const uint32_t data_seq2[MAX_SEQ2] = {
|
||||
0x0000047b,
|
||||
0x0000007b,
|
||||
};
|
||||
|
||||
#define MAX_CAL3_SEQ1 3
|
||||
const uint32_t addr_cal3_seq1[MAX_CAL3_SEQ1] = { 0x80009400,0x80009a04,0x80009a00, };
|
||||
const uint32_t data_cal3_seq1[MAX_CAL3_SEQ1] = {0x00020017,0x8185a0a4,0x8c900025, };
|
||||
|
||||
#define MAX_CAL3_SEQ2 2
|
||||
const uint32_t addr_cal3_seq2[MAX_CAL3_SEQ2] = { 0x80009a00,0x80009a00,};
|
||||
const uint32_t data_cal3_seq2[MAX_CAL3_SEQ2] = { 0x8c900021,0x8c900027,};
|
||||
|
||||
#define MAX_CAL3_SEQ3 1
|
||||
const uint32_t addr_cal3_seq3[MAX_CAL3_SEQ3] = { 0x80009a00 };
|
||||
const uint32_t data_cal3_seq3[MAX_CAL3_SEQ3] = { 0x8c900000 };
|
||||
|
||||
#define MAX_CAL5 4
|
||||
const uint32_t addr_cal5[MAX_CAL5] = {
|
||||
0x80009400,
|
||||
0x8000a050,
|
||||
0x8000a054,
|
||||
0x80003048,
|
||||
};
|
||||
const uint32_t data_cal5[MAX_CAL5] = {
|
||||
0x00000017,
|
||||
0x00000000,
|
||||
0x00000000,
|
||||
0x00000f00,
|
||||
};
|
||||
|
||||
#define MAX_DATA 43
|
||||
const uint32_t addr_reg_rep[MAX_DATA] = { 0x80004118,0x80009204,0x80009208,0x8000920c,0x80009210,0x80009300,0x80009304,0x80009308,0x8000930c,0x80009310,0x80009314,0x80009318,0x80009380,0x80009384,0x80009388,0x8000938c,0x80009390,0x80009394,0x8000a008,0x8000a018,0x8000a01c,0x80009424,0x80009434,0x80009438,0x8000943c,0x80009440,0x80009444,0x80009448,0x8000944c,0x80009450,0x80009460,0x80009464,0x8000947c,0x800094e0,0x800094e4,0x800094e8,0x800094ec,0x800094f0,0x800094f4,0x800094f8,0x80009470,0x8000981c,0x80009828 };
|
||||
|
||||
const uint32_t data_reg_rep[MAX_DATA] = { 0x00180012,0x00000605,0x00000504,0x00001111,0x0fc40000,0x20046000,0x4005580c,0x40075801,0x4005d801,0x5a45d800,0x4a45d800,0x40044000,0x00106000,0x00083806,0x00093807,0x0009b804,0x000db800,0x00093802,0x00000015,0x00000002,0x0000000f,0x0000aaa0,0x01002020,0x016800fe,0x8e578248,0x000000dd,0x00000946,0x0000035a,0x00100010,0x00000515,0x00397feb,0x00180358,0x00000455,0x00000001,0x00020003,0x00040014,0x00240034,0x00440144,0x02440344,0x04440544,0x0ee7fc00,0x00000082,0x0000002a };
|
||||
|
||||
void vreg_init(void) {
|
||||
volatile uint32_t i;
|
||||
*(volatile uint32_t *)(0x80003000) = 0x00000018; /* set default state */
|
||||
*(volatile uint32_t *)(0x80003048) = 0x00000f04; /* bypass the buck */
|
||||
for(i=0; i<0x161a8; i++) { continue; } /* wait for the bypass to take */
|
||||
// while((((*(volatile uint32_t *)(0x80003018))>>17) & 1) !=1) { continue; } /* wait for the bypass to take */
|
||||
*(volatile uint32_t *)(0x80003048) = 0x00000ffc; /* start the regulators */
|
||||
}
|
||||
|
||||
void radio_init(void) {
|
||||
uint32_t i;
|
||||
|
||||
/* cal 3 */
|
||||
for(i=0; i<MAX_CAL3; i++) {
|
||||
*(volatile uint32_t *)(addr_cal3[i]) = data_cal3[i];
|
||||
/* sequence 1 */
|
||||
for(i=0; i<MAX_SEQ1; i++) {
|
||||
*(volatile uint32_t *)(addr_seq1[i]) = data_seq1[i];
|
||||
}
|
||||
|
||||
/* seq 1 delay */
|
||||
for(i=0; i<0x161a8; i++) { continue; }
|
||||
|
||||
|
||||
/* sequence 2 */
|
||||
for(i=0; i<MAX_SEQ2; i++) {
|
||||
*(volatile uint32_t *)(addr_seq2[i]) = data_seq2[i];
|
||||
}
|
||||
|
||||
/* modem val */
|
||||
*(volatile uint32_t *)0x80009000 = 0x80050100;
|
||||
|
||||
|
||||
/* cal 3 seq 1*/
|
||||
for(i=0; i<MAX_CAL3_SEQ1; i++) {
|
||||
*(volatile uint32_t *)(addr_cal3_seq1[i]) = data_cal3_seq1[i];
|
||||
}
|
||||
|
||||
/* cal 3 delay */
|
||||
for(i=0; i<0x11194; i++) { continue; }
|
||||
|
||||
/* cal 3 seq 2*/
|
||||
for(i=0; i<MAX_CAL3_SEQ2; i++) {
|
||||
*(volatile uint32_t *)(addr_cal3_seq2[i]) = data_cal3_seq2[i];
|
||||
}
|
||||
|
||||
/* cal 3 delay */
|
||||
for(i=0; i<0x11194; i++) { continue; }
|
||||
|
||||
|
||||
/* cal 3 seq 3*/
|
||||
for(i=0; i<MAX_CAL3_SEQ3; i++) {
|
||||
*(volatile uint32_t *)(addr_cal3_seq3[i]) = data_cal3_seq3[i];
|
||||
}
|
||||
|
||||
/* cal 5 */
|
||||
for(i=0; i<MAX_CAL5; i++) {
|
||||
*(volatile uint32_t *)(addr_cal5[i]) = data_cal5[i];
|
||||
}
|
||||
|
||||
/*reg replacment */
|
||||
|
|
Loading…
Reference in a new issue