CPU OC - czy istnieje ograniczenie sprzętowe?

0

Witam.
Telefon Samsung GT-I8160 wyposażony jest w chipset ST-Ericsson NovaThor U8500.
Procesor według specyfikacji może pracować z częstotliwością 1GHz i tak też jest w innych telefonach jak np. GT-I8190 czy GT-I9070.
Model, który mnie interesuje (GT-I8160) został ograniczony przez Samsunga do 800MHz.
Zwracam się do was o pomoc z rozwiązaniem kwestii czy jest to ograniczenie sprzętowe czy jedynie programowe.

Co udało mi się ustalić:
W źródłach Samsunga dla wszystkich trzech modeli, które wymieniłem znajduje się taka sama tablica częstotliwości

/* /arch/arm/mach-ux500/devices-db8500.c */

static struct cpufreq_frequency_table db8500_freq_table[] = {
	[0] = {
		.index = 0,
		.frequency = 200000,
	},
	[1] = {
		.index = 1,
		.frequency = 400000,
	},
	[2] = {
		.index = 2,
		.frequency = 800000,
	},
	#if defined(CONFIG_MACH_GAVINI)
	[3] = {
		/* Used for MAX_OPP, if available */
		.index = 3,
		.frequency = 1000000,
	},
	#else
	[3] = {
		.index = 3,
		.frequency = CPUFREQ_TABLE_END,
	},
	#endif
	[4] = {
		.index = 4,
		.frequency = CPUFREQ_TABLE_END,
	},
};
struct platform_device db8500_prcmu_device = {
	.name			= "db8500-prcmu",
	.dev = {
		.platform_data = db8500_freq_table,
	},
};

z maksymalną częstotliwością 800MHz (CONFIG_MACH_GAVINI nie jest ustawione).
Ta tablica przekazywana jest do sterownika PRCMU (Power Reset Clock Management Unit), gdzie w funkcji inicjującej jest modyfikowana:

/* /drivers/mfd/db8500-prcmu.c */

static void  db8500_prcmu_update_freq(void *pdata)
{
	freq_table =
		(struct cpufreq_frequency_table *)pdata;
	if  (!db8500_prcmu_has_arm_maxopp())
		return;
	switch (fw_info.version.project) {
	case PRCMU_FW_PROJECT_U8500:
	case PRCMU_FW_PROJECT_U9500:
	case PRCMU_FW_PROJECT_U8420:
	case PRCMU_FW_PROJECT_U8420_SYSCLK:
	case PRCMU_FW_PROJECT_A9420:
	case PRCMU_FW_PROJECT_U8500_MBL:
		freq_table[3].frequency = 1000000;
		break;
	case PRCMU_FW_PROJECT_U8500_C2:
	case PRCMU_FW_PROJECT_U8520:
		freq_table[3].frequency = 1150000;
		break;
	default:
		break;
	}
}

Niestety, dla mojego telefonu funkcja db8500_prcmu_has_arm_maxopp(), która wygląda tak:

/* Index of different voltages to be used when accessing AVSData */
#define PRCM_AVS_BASE		0x2FC
#define PRCM_AVS_VARM_MAX_OPP	(PRCM_AVS_BASE + 0x4)

static bool db8500_prcmu_has_arm_maxopp(void)
{
	return (readb(tcdm_base + PRCM_AVS_VARM_MAX_OPP) &
		PRCM_AVS_ISMODEENABLE_MASK) == PRCM_AVS_ISMODEENABLE_MASK;
}

zwraca false (sprawdziłem drogą debuggowania).

Obawiam się, że to oznacza ograniczenie sprzętowe. Czy mam racje?
Źródła lekko zmodyfikowanego kernela GT-I9070: https://github.com/AdiPat/android_kernel_samsung_janice/ (jedyne co udało mi się znaleźć online, źródła oryginalne ściągają się z serwerów Samsunga bardzo wolno).

0

Hej ;)
Jest to ograniczenie wyłącznie programowe. Nie wiem dlaczego samsung ograniczył ten procesor :( Telefon jest relatywnie chłodny przy wymagających grach na taktowaniu 800 Mhz więc myślę, że na 1000Mhz nie byłoby różnicy. Według mnie te 200mhz to w dzisiejszych czasach nic. Prędzej zadałbym pytanie "Dlaczego Samsung zabrał ponad 200mb RAMu temu urządzeniu" Z 768 mb RAMu dostępne jest tylko 555 mb, a na dodatek full brandowanych applikacji działa w tle :c zostaje 200mb do własnego użytku =.,="
Pozdrawiam gorąco


Wysłane z mojego zajebistego Samsunga Ace II :D

0

W CyanogenMod jest wbudowana opcja podkręcania procesora.

0
Wibowit napisał(a):

W CyanogenMod jest wbudowana opcja podkręcania procesora.

You don't say?! Wystarczy zainstalować inne jądro systemowe i:

  • nie usuwają Ci sie wszystkie pliki (ust. fabryczne)
  • masz ten sam system, do którego jesteś przyzwyczajony i klawiature do pisania
  • możesz podkręcić procesor aplikacją z google play (nie pamiętam nazwy, gdyż oc robiłem 2 lata temu na wildfire, a na ace 2 to jest zbędne!)
  • tą samą aplikacją możesz usunąć wszystkie aplikacje od operatora i samsunga, z których i tak nie korzystasz a tylko zawalają pamięć i niektore działające w tle, ram
0

Odzew pojawił się po 5 miesiącach, więc chyba nie obrazicie się jeśli odpowiem po kolejnych dwóch :)

To, co piszecie, sprawdza się dla chyba wszystkich innych telefonów, oprócz tych z prockami NovaThor. Podkręcanie przez SetCPU i tym podobne (czyli przez linuksowy program cpufreq) nie daje żadnego efektu, ponieważ z tego co zdążyłem się dowiedzieć, w tym chipsecie częstotliwością procka steruje układ zarządzania energią, który ładuje tablice częstotliwości podczas startu. Jednak te tablice są kodowane w sposób znany tylko przez ST-Erricson. Nawet ludzie pracujący na dev boardach muszą prosić ich o podsyłanie odpowiednich plików. Nie ma więc żadnych szans na podkręcanie U8500 ;)

0

http://www.mgsm.pl/pl/katalog/samsung/galaxysadvance/

Samsung Galaxy S Advance jest ten sam procek kto ma soft do procka z Advance

0

Pamiętam jak kiedyś kolega tak podrkęcił procka w telefonie. Podziałał, podziałał, dym, i bach. Po telefonie. Radzę uważać. Sprzęt jest odpowiednio wytaktowany, itd. zatem każdy zabieg pewnie w negatywny sposób wpływa na jego pracę.

0
niko188 napisał(a):

http://www.mgsm.pl/pl/katalog/samsung/galaxysadvance/

Samsung Galaxy S Advance jest ten sam procek kto ma soft do procka z Advance

Witam mam Samsung Galaxy S Advance i u mnie tem procesor działa na 1,25.

1 użytkowników online, w tym zalogowanych: 0, gości: 1