diff options
author | Damien Zammit <damien@zamaudio.com> | 2016-09-16 18:15:29 +1000 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2016-09-16 18:15:29 +1000 |
commit | 59e4001aa06c1db46ffe44da5bc1b254e9b636c0 (patch) | |
tree | a1f2fa922cd1c2e110a95e9bad33fa1bbba29366 | |
parent | 0a3f2c764355da3d8007a03ba8a3758d513ec4d7 (diff) |
Boots to memtest sitting on 45C (after cleaning fan)
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r-- | firmware/servicereq.c | 53 | ||||
-rw-r--r-- | firmware/smu.ld | 46 |
2 files changed, 52 insertions, 47 deletions
diff --git a/firmware/servicereq.c b/firmware/servicereq.c index acbc453..1b69968 100644 --- a/firmware/servicereq.c +++ b/firmware/servicereq.c @@ -46,48 +46,7 @@ typedef struct { phy_t p; } ddiphy_t; - -/* Align to 0x1d9a4 */ -static u32 thermal_params[38] = { - 0x3178, // VPC - 0x0000, - 0x3171, // BAPM - 0x0000, - 0x3172, // BAPM - 0x0000, - 0x7103, // BAPM - 0x0000, // BAPM - 0x7116, // BAPM - 0x0000, // BAPM - 0x317d, // VPC - 0x0000, - 0x7103, // VPC - 0x0000, // VPC - 0x712e, - 0x0000, - 0x710f, // TDC/HTC - 0x0000, // TDC/HTC - 0x7110, // LPMx - 0x0000, // LPMx - 0x7111, // LPMx - 0x0000, // LPMx - 0x7112, // LPMx - 0x0000, // LPMx - 0x7113, // LPMx - 0x0000, // LPMx - 0x715c, // VPC/BAPM - 0x0000, // VPC/BAPM - 0x715d, // VPC - 0x0000, - 0x7162, // LOADLINE - 0x0000, // LOADLINE - 0x7117, // BAPM - 0x0000, // BAPM - 0x7157, - 0x0000, - 0x7106, // BAPM - 0x0000, // BAPM -}; +extern u32 thermal_params[]; static void set_interrupts(int onoff) { @@ -3783,7 +3742,7 @@ x11d74: return r1; } -static void config_lclkdpm(void) +static void config_lclkdpm(u32 *dpm) { u32 r1, r2, r3, r4, r5, r6, r7; u32 r11, r12, r13, r14; @@ -3813,7 +3772,7 @@ static void config_lclkdpm(void) goto x11e64; x11e1c: r3 = read8(r5+1); - //write32(sp+24, r3); + *dpm = r3; r3 = read32(r5); r3 = r3 & r7; r3 >>= 24; @@ -5518,6 +5477,7 @@ void smu_service_request(unsigned int e3) static ddiphy_t ddiphy = {{0}}; static u32 bapm = 0; + static u32 dpm = 0; u32 requestid; requestid = e3; @@ -5558,7 +5518,7 @@ void smu_service_request(unsigned int e3) break; case SMC_MSG_CONFIG_LCLK_DPM: // TODO: b0rked - //config_lclkdpm(); + //config_lclkdpm(&dpm); break; case SMC_MSG_FLUSH_DATA_CACHE: flush_datacache(); @@ -5570,7 +5530,8 @@ void smu_service_request(unsigned int e3) config_vpc(); break; case SMC_MSG_CONFIG_BAPM: - config_bapm(&bapm); + // TODO: b0rked + //config_bapm(&bapm); break; case SMC_MSG_CONFIG_TDC_LIMIT: config_tdc(); diff --git a/firmware/smu.ld b/firmware/smu.ld index 67bdc73..0c3c5e9 100644 --- a/firmware/smu.ld +++ b/firmware/smu.ld @@ -82,7 +82,7 @@ SECTIONS } > ram /* read/write data */ - .data : + .data : { . = ALIGN(4); _fdata = .; @@ -95,6 +95,50 @@ SECTIONS _edata = .; } > ram + .sreg : + { + . = ABSOLUTE(0x9a4); + thermal_params = .; + LONG(0x3178); /* VPC */ + LONG(0x0000); + LONG(0x3171); /* BAPM */ + LONG(0x0000); + LONG(0x3172); /* BAPM */ + LONG(0x0000); + LONG(0x7103); /* BAPM */ + LONG(0x0000); /* BAPM */ + LONG(0x7116); /* BAPM */ + LONG(0x0000); /* BAPM */ + LONG(0x317d); /* VPC */ + LONG(0x0000); + LONG(0x7103); /* VPC */ + LONG(0x0000); /* VPC */ + LONG(0x712e); + LONG(0x0000); + LONG(0x710f); /* TDC/HTC */ + LONG(0x0000); /* TDC/HTC */ + LONG(0x7110); /* LPMx */ + LONG(0x0000); /* LPMx */ + LONG(0x7111); /* LPMx */ + LONG(0x0000); /* LPMx */ + LONG(0x7112); /* LPMx */ + LONG(0x0000); /* LPMx */ + LONG(0x7113); /* LPMx */ + LONG(0x0000); /* LPMx */ + LONG(0x715c); /* VPC/BAPM */ + LONG(0x0000); /* VPC/BAPM */ + LONG(0x715d); /* VPC */ + LONG(0x0000); + LONG(0x7162); /* LOADLINE */ + LONG(0x0000); /* LOADLINE */ + LONG(0x7117); /* BAPM */ + LONG(0x0000); /* BAPM */ + LONG(0x7157); + LONG(0x0000); + LONG(0x7106); /* BAPM */ + LONG(0x0000); /* BAPM */ + } > regs =0 + /* bss */ .bss : { |