Overclocking BCM 47xx CPU's

From DD-WRT Wiki

Jump to: navigation, search

Provided by LiteUp!



Here are all of the possible combinations via source code:


Code: /* 20MHz table for 4716, 4717, 4718, 47162 */



           static uint32 BCMINITDATA(pll20mhz_table)[][8] = {
                   /* cpu, ddr, axi, pllctl12,  pllctl13,   pllctl14,   pllctl15,  |pllctl16 */
                   {  66,  66,  66, 0x11100070, 0x00121212, 0x03c00000, 0x20000000, 0 },
                   {  75,  75,  75, 0x11100070, 0x00101010, 0x03c00000, 0x20000000, 0 },
                   {  80,  80,  80, 0x11100070, 0x000a0a0a, 0x02800000, 0x20000000, 0 },
                   {  83,  83,  83, 0x11100070, 0x000c0c0c, 0x03200000, 0x20000000, 0 },
                   { 100,  66,  66, 0x11100070, 0x0012120c, 0x03c00000, 0x30000000, 0 },
                   { 100, 100, 100, 0x11100070, 0x000c0c0c, 0x03c00000, 0x20000000, 0 },
                   { 120,  60,  60, 0x11100070, 0x00101008, 0x03000000, 0x40000000, 0 },
                   { 120, 120, 120, 0x11100070, 0x00080808, 0x03000000, 0x20000000, 0 },
                   { 125,  83,  83, 0x11100070, 0x000c0c08, 0x03200000, 0x30000000, 0 },
                   { 133,  66,  66, 0x11500070, 0x00101008, 0x10a00000, 0x40000000, 4 },
                   { 133, 133, 133, 0x11500070, 0x00080808, 0x10a00000, 0x20000000, 4 },
                   { 148, 148,  74, 0x11100070, 0x00120909, 0x04300000, 0x28000000, 0 },
                   { 150,  75,  75, 0x11100070, 0x00101008, 0x03c00000, 0x40000000, 0 },
                   { 150, 100, 100, 0x11100070, 0x000c0c08, 0x03c00000, 0x30000000, 0 },
                   { 150, 150,  75, 0x11100070, 0x00100808, 0x03c00000, 0x28000000, 0 },
                   { 150, 150, 150, 0x11100070, 0x00080808, 0x03c00000, 0x20000000, 0 },
                   { 155, 155,  77, 0x11100070, 0x00120909, 0x04600000, 0x28000000, 0 },
                   { 155, 155, 155, 0x11100070, 0x00090909, 0x04600000, 0x20000000, 0 },
                   { 166,  83,  83, 0x11100070, 0x000c0c06, 0x03200000, 0x40000000, 0 },
                   { 166, 166,  83, 0x11100070, 0x000c0606, 0x03200000, 0x28000000, 0 },
                   { 166, 166, 166, 0x11100070, 0x00060606, 0x03200000, 0x20000000, 0 },
                   { 200, 200, 100, 0x11100070, 0x000c0606, 0x03c00000, 0x28000000, 0 },
                   { 223, 148,  74, 0x11100070, 0x00120906, 0x04300000, 0x38000000, 0 },
                   { 240, 120, 120, 0x11100070, 0x00080804, 0x03000000, 0x40000000, 0 },
                   { 240, 240, 120, 0x11100070, 0x00080404, 0x03000000, 0x28000000, 0 },
                   { 250, 166,  83, 0x11100070, 0x000c0604, 0x03200000, 0x38000000, 0 },
                   { 250, 166, 166, 0x11100070, 0x00060604, 0x03200000, 0x30000000, 0 },
                   { 266, 133, 133, 0x11500070, 0x00080804, 0x10a00000, 0x40000000, 4 },
                   { 266, 266, 133, 0x11500070, 0x00080404, 0x10a00000, 0x28000000, 4 },
                   { 300, 100, 100, 0x11100070, 0x000c0c04, 0x03c00000, 0x60000000, 0 },
                   { 300, 150,  75, 0x11100070, 0x00100804, 0x03c00000, 0x48000000, 0 },
                   { 300, 150, 150, 0x11100070, 0x00080804, 0x03c00000, 0x40000000, 0 },
                   { 300, 200, 100, 0x11100070, 0x000c0604, 0x03c00000, 0x38000000, 0 },
                   { 320, 213, 106, 0x11100070, 0x000c0604, 0x04000000, 0x38000000, 0 },
                   { 333, 166,  83, 0x11100070, 0x000c0603, 0x03200000, 0x48000000, 0 },
                   { 333, 166, 166, 0x11100070, 0x00060603, 0x03200000, 0x40000000, 0 },
                   { 340, 226, 113, 0x11100070, 0x000c0604, 0x04400000, 0x38000000, 0 },
                   { 354, 177,  88, 0x11500070, 0x000c0603, 0x10a00000, 0x48000000, 4 },
                   { 373, 186,  93, 0x11100070, 0x000c0603, 0x03800000, 0x48000000, 0 },
                   { 400, 133, 133, 0x11100070, 0x000c0c04, 0x05000000, 0x60000000, 0 },
                   { 400, 160,  80, 0x11100070, 0x00140a04, 0x05000000, 0x58000000, 0 },
                   { 400, 160, 160, 0x11100070, 0x000a0a04, 0x05000000, 0x50000000, 0 },
                   { 400, 200, 100, 0x11100070, 0x000c0603, 0x03c00000, 0x48000000, 0 },
                   { 400, 266, 133, 0x11100070, 0x000c0604, 0x05000000, 0x38000000, 0 },
                   { 446, 148,  74, 0x11100070, 0x00120903, 0x04300000, 0x68000000, 0 },
                   { 453, 226, 113, 0x11100070, 0x000c0603, 0x04400000, 0x48000000, 0 }, // patch from BCM
                   { 480, 137,  68, 0x11100070, 0x000e0702, 0x03000000, 0x78000000, 0 },
                   { 480, 137, 137, 0x11100070, 0x00070702, 0x03000000, 0x70000000, 0 },
                   { 480, 160,  80, 0x11100070, 0x000c0602, 0x03000000, 0x68000000, 0 },
                   { 480, 240, 120, 0x11100070, 0x00080402, 0x03000000, 0x48000000, 0 },
                   { 500, 100, 100, 0x11100070, 0x000a0a02, 0x03200000, 0xa0000000, 0 },
                   { 500, 166,  83, 0x11100070, 0x000c0602, 0x03200000, 0x68000000, 0 },
                   { 500, 166, 166, 0x11100070, 0x00060602, 0x03200000, 0x60000000, 0 },
                   { 500, 200, 100, 0x11100070, 0x000a0502, 0x03200000, 0x58000000, 0 },
                   { 500, 250, 125, 0x11100070, 0x00080402, 0x03200000, 0x48000000, 0 },
                   { 532, 133, 133, 0x11500070, 0x00080802, 0x10a00000, 0x80000000, 4 },
                   { 532, 177,  88, 0x11500070, 0x000c0602, 0x10a00000, 0x68000000, 4 },
                   { 532, 177, 177, 0x11500070, 0x00060602, 0x10a00000, 0x60000000, 4 },
                   { 532, 266, 133, 0x11500070, 0x00080402, 0x10a00000, 0x48000000, 4 },
                   {0}
           };



I will give you a warning though. DO NOT USE ANYTHING WITH A DDR MEMORY REQUENCY OVER 250MHZ ON A WRT320N. The DDR part used on these boards has an operating ceiling of 250MHz. I have tried the 533/266 setting once or twice and the board immediately locks up. After several tries (it was hard) I finally got a hard reset to take via the WPS button on the front that Eko activated. This hard reset sends you back to the default settings hard-coded in the CFE of 354,177,88 (you can see this near the top of the CFE if you view it in a hex editor).



Good combinations are 500/250, 480/240 (my preferred), 453/226, 400/200, 373/186, and 354/177 (std.). These are all half-speed DDR setting with relation to the MIPS CPU. The other settings choices with similar MIPS speeds and lower than half speed DDR take a big performance hit and are not worth it. You do not have to specify the third frequency (backplane frequency), but you can if you want. Anytime you specify a frequency that is maybe not in the table (if you have a typo on your command line or something) it will upshift to the next highest frequency in the table.



BTW....yes, the Asus RT-N16 and the Netgear WNR3500L are both running by default at 480,240,120. I have viewed their CFEs and seen this as their default operating frequencies.



To properly overclock a BCM47xx CPU, do the following in a Telnet/ SSH session:


nvram set clkfreq=(value) example: 480,240,120

nvram commit

reboot