Quetions about My Costom Overclock Kernel for 2.3.26? - Gen8, Gen9, Gen10 Q&A, Help & Troubleshooting

After reading post"[HOWTO] Build custom kernel, libraries and applications on your own",I Downloaded the latest source code.And next I found out that CPU frequency table is located in archos/archos-gpl-gen8/linux/arch/arm/mach-omap2/omap3-opp.h.But 3 problems explosed.
1.I tried to add more frequency level to it but encoder didn't support from VDD1_OPP7.
2.I wrote 6 levels(300,430,600,720,800,1000)but the system can only read 4 ones(300,430,600,720)
3.It seems to be impossible to add a frequency over 1000 or less than 300.If numbers are 125,250,400...1000, 125 and 250 can't be read;and if there's 1200,system can't boot.
Who can tell me how to solve these problem?
Now my own frequency and voltage table
/*OPP1 (OPP300) */
{S300M, VDD1_OPP1, 0x10, 0x0, 0x0},
/*OPP2 (OPP600)*/
{S600M, VDD1_OPP2, 0x1c, 0x0, 0x0},
/*OPP3 (OPP720)*/
{S720M, VDD1_OPP3, 0x20, 0x0, 0x0},
/*OPP4 (OPP1000)*/
{S1000M, VDD1_OPP4, 0x2a, 0x0, 0x0},

There is another OC'd kernel here on the forum. It was buggy for me but maybe you could look at it and see what he did?
Sent from my GSBv1.4-ERIS using XDA App

I have solved Qustion 1.
file /archos-gpl-gen8/linux/arch/arm/plat-omap/incliud/omap34xx.h
/* VDD OPP identifiers */
#define VDD1_OPP 0x1
#define VDD2_OPP 0x2
/* VDD1 OPPS */
#define VDD1_OPP1 0x1
#define VDD1_OPP2 0x2
#define VDD1_OPP3 0x3
#define VDD1_OPP4 0x4
#define VDD1_OPP5 0x5
#define VDD1_OPP6 0x6
+#define VDD1_OPP7 0x7
+#define VDD1_OPP8 0x8
+#define VDD1_OPP9 0x9

Related

Voltages of Each VDD in MSM7201A

Does anyone know the exact voltage at every VDD in the MSM7201A? I'm looking at testing some undervolting but I need more info.
http://android.git.kernel.org/?p=kernel/msm.git;a=blob_plain;f=arch/arm/mach-msm/acpuclock.c;hb=HEAD
/* MSM7201A Levels 3-6 all correspond to 1.2V, level 7 corresponds to 1.325V. */
enum {
VDD_0 = 0,
VDD_1 = 1,
VDD_2 = 2,
VDD_3 = 3,
VDD_4 = 3,
VDD_5 = 3,
VDD_6 = 3,
VDD_7 = 7,
VDD_END
};

[Q] USSD and Gingerbread (2.3.x)

Problem solved: Look into http://forum.xda-developers.com/showthread.php?t=1558089
Hello,
this ussd problem with gingerbread-roms drives me nuts. Codes like *100# won't work. I have to stay on froyo to check my prepaid balance and recharge.
Thanks to nop who narrowed the problem down to libril-qc-1.so, I (s)traced rild and found the following difference:
2.2.2 rild:
[pid 138] writev(11, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril.c 2079] UI --- RIL_REQUEST_SEND_USSD (29) ---> RIL [token id 256, data len 4]\n\0"..., 86}], 3) = 93
[pid 138] writev(11, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_cm.c 14003] USSD string in UTF8 format = *100# length = 5\n\0"..., 66}], 3) = 73
[pid 138] writev(11, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_cm.c 14008] USSD string is in ASCII format, converting to 7BIT format\0"..., 78}], 3) = 85
[pid 138] writev(11, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_cm.c 14023] USSD string after conversion = *100# length = 5\n\0"..., 68}], 3) = 75
[pid 138] writev(11, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_reqlist.c 216] Not found ReqList entry waiting for CM_SUPS_EVENT_USS_IND (86035)\n\0"..., 89}], 3) = 96
[pid 138] writev(11, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_reqlist.c 169] Not found ReqList entry : token id 256\n\0"..., 62}], 3) = 69
[pid 138] writev(11, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_reqlist.c 400] Event RIL_REQUEST_SEND_USSD (29) pending receipt of CM_SUPS_EVENT_PROCESS_USS_CONF, token id 256 [0x2ae68]\n\0"..., 130}], 3) = 137
[pid 138] writev(11, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_reqlist.c 1065] ReqList entries : \n\0"..., 43}], 3) = 50
[pid 138] writev(11, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_reqlist.c 1071] RIL_REQUEST_SEND_USSD (29), token id 256\n\0"..., 69}], 3) = 76
[pid 138] write(17, "\n\0\1\200\0\0\0\0\375\1\0\0\0\0\0000C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 40) = 40
[pid 138] write(24, "\0\0\1\375\0\0\0\0\0\0\0\0020\0\0\0\263\277\333\31\0\0\0C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\27\0\2\256h\0\0\0\27\0\0\0\1\0\0\0\6\0\0\0\1\0\0\0\17\0\0\0\5\0\0\0\5*100#\0\0\0"..., 84) = 84
2.3.3 rild:
[pid 3372] writev(10, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril.c 2577] UI --- RIL_REQUEST_SEND_USSD (29) ---> RIL [RID 0, token id 59, data len 4]\n\0"..., 92}], 3) = 99
[pid 3372] writev(10, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_arb.c 1437] RID 0 voice srv: modem id=0, ma=Multimode(0), net_pref=GSM WCDMA preferred(0)\n\0"..., 98}], 3) = 105
[pid 3372] writev(10, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_cm.c 22350] USSD string in UTF8 format = *100# length = 5\n\0"..., 66}], 3) = 73
[pid 3372] writev(10, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_cm.c 22358] USSD string is in ASCII format, converting to 7BIT format\0"..., 78}], 3) = 85
[pid 3372] writev(10, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_cm.c 22375] USSD string after conversion = *100# length = 5\n\0"..., 68}], 3) = 75
[pid 3372] writev(10, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_reqlist.c 331] [RID 0] Not found ReqList entry waiting for CM_SUPS_EVENT_USS_IND (86035)\n\0"..., 97}], 3) = 104
[pid 3372] write(18, "\n\0\1\200\0\0\0\0\354\0\0\0\0\0\0000\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 40) = 40
[pid 3372] write(23, "\0\0\0\354\0\0\0\0\0\0\0\0020\0\0\0\263\277\333\31\0\0\0\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4*100\0\0\0\4\0\0\0\1"..., 60) = 60
[pid 3372] futex(0x80317f74, FUTEX_WAIT_PRIVATE, -40, NULL <unfinished ...>
[pid 3377] <... select resumed> ) = 1 (in [23])
[pid 3377] rt_sigprocmask(SIG_SETMASK, [TRAP BUS FPE KILL SEGV USR2 PIPE ALRM TERM CHLD TTIN TTOU RTMIN], NULL, 4) = -1 EINVAL (Invalid argument)
[pid 3377] read(23, "\0\0\0\354\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4*100\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 17408) = 84
Basically the rild on gingerbread 2.3.x isn't sending the last character '#' to end the ussd correctly. Ironically in "logcat -b radio" rild states that the ussd it will send is 5 chars long, but it sends only 4 chars over to the character device /dev/oncrpc/30000000:b3bfdb19
I think, this is done in libril-qc-1.so in function qcril_cm_supsvc_request_send_ussd but I was missing at school when they tought us arm-assembler, so I'm stuck reading objdump -d libril-qc-1.so.
So my first questions: Is this really a off by one bug? How can I circumvent it without the sourcecode of libril-qc-1? Is there a Qisda SDK out there for the austin baseband or libril?
On the other hand I read at http://code.google.com/p/synergy-evo3d/wiki/Radio and http://fabiensanglard.net/cellphoneModem/index2.php how to talk to the baseband without rild. And on a 2.3.x I got a positive result with
# cat /dev/smd0 &
# echo -e 'AT+CUSD=1,"*100#",15\r' >/dev/smd0
OK
+CUSD: 0," Aktuelles Guthaben: 20.10 EUR.",15
So ussd with /dev/smd0 works, but it seems libril-qc-1 doesn't use it at all. At least I can't find any AT-commands in it.
Second question: Is /dev/smd0 some obsolete way of communicating with the baseband-radio?
I appreciate any help, cause I'm somewhat stuck and can't find the loophole.
Reg. hunderteins
hunderteins, +1
--
More, in radio log you will see "Rejected on protocol layer" message.
--
Heck, it actually works!
I'd give a 1000 thanks if i could!
I think now of following:
Why does USSD codes work on some provides?
What if we supply an extra char on USSD request on framework level?
_n0p_ said:
I think now of following:
Why does USSD codes work on some provides?
Click to expand...
Click to collapse
*135# is working here, too. I think *135 unambiguous. There is no code like *135#1# or something like that. Whereas *100#1# is a legal code, and the network-provider can just not know whether *100 is complete, for *135 it knows it is complete.
What if we supply an extra char on USSD request on framework level?
Click to expand...
Click to collapse
When you can do that, try it please. I'm looking for a wrapper for libril-qc-1.so to add an extra
#-char. At the end we can use the way that will circumvent the bug.
Too bad arm devices started to appear after i finished my reversing carrier. Just if it would be x86
--
It seems this part should be modded:
.method sendUssd(Ljava/lang/StringV
.registers 4
.parameter "ussdMessage"
.prologue
.line 897
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/android/internal/telephony/gsm/GsmMmiCode;->isPendingUSSD:Z
.line 904
iget-object v0, p0, Lcom/android/internal/telephony/gsm/GsmMmiCode;->phone:Lcom/android/internal/telephony/gsm/GSMPhone;
iget-object v0, v0, Lcom/android/internal/telephony/PhoneBase;->mCM:Lcom/android/internal/telephony/CommandsInterface;
const/4 v1, 0x4
invoke-virtual {p0, v1, p0}, Lcom/android/internal/telephony/gsm/GsmMmiCode;->obtainMessage(ILjava/lang/ObjectLandroid/os/Message;
move-result-object v1
invoke-interface {v0, p1, v1}, Lcom/android/internal/telephony/CommandsInterface;->sendUSSD(Ljava/lang/String;Landroid/os/MessageV
.line 906
return-void
.end method
I got my wrapper libril ready. But I didn't work. I put in *100## and got again out *100
[pid 2818] clock_gettime(CLOCK_MONOTONIC, {2001, 359584848}) = 0
[pid 2818] read(37, "\0\0\0\30\35\0\0\0$\0\0\0\5\0\0\0*\0001\0000\0000\0#\0\0\0"..., 8196) = 28
[pid 2818] writev(9, [{"\5"..., 1}, {"RILW\0"..., 5}, {"onRequest: RIL_REQUEST_SEND_USSD: \"*100#\", LEN: 4\0"..., 50}], 3) = 56
[pid 2818] writev(9, [{"\5"..., 1}, {"RILW\0"..., 5}, {"onRequest: RIL_REQUEST_SEND_USSD: out \"*100##\", LEN: 5\0"..., 55}], 3) = 61
[pid 2818] writev(9, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril.c 2577] UI --- RIL_REQUEST_SEND_USSD (29) ---> RIL [RID 0, token id 36, data len 5]\n\0"..., 92}], 3) = 99
[pid 2818] writev(9, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_arb.c 1437] RID 0 voice srv: modem id=0, ma=Multimode(0), net_pref=GSM WCDMA preferred(0)\n\0"..., 98}], 3) = 105
[pid 2818] writev(9, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_cm.c 22350] USSD string in UTF8 format = *100## length = 6\n\0"..., 67}], 3) = 74
[pid 2818] writev(9, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_cm.c 22358] USSD string is in ASCII format, converting to 7BIT format\0"..., 78}], 3) = 85
[pid 2818] writev(9, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_cm.c 22375] USSD string after conversion = *100## length = 6\n\0"..., 69}], 3) = 76
[pid 2818] writev(9, [{"\3"..., 1}, {"QCRIL\0"..., 6}, {"[qcril_reqlist.c 331] [RID 0] Not found ReqList entry waiting for CM_SUPS_EVENT_USS_IND (86035)\n\0"..., 97}], 3) = 104
[pid 2818] write(18, "\n\0\1\200\0\0\0\0\252\0\0\0\0\0\0000\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 40) = 40
[pid 2818] write(23, "\0\0\0\252\0\0\0\0\0\0\0\0020\0\0\0\263\277\333\31\0\0\0\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4*100\0\0\0\4\0\0\0\1"..., 60) = 60
I hate it, when that happens.
hunderteins, that's fast!
So it seems not the bug, but intended symbol strip proc.
_n0p_ said:
hunderteins, that's fast!
Click to expand...
Click to collapse
it has been done before. I even tried to implement RIL_REQUEST_SEND_USSD by talking to /dev/smd0. There I must have missed some message-send/receive mechanism. I attached the wrapper for interessted uses.
So it seems not the bug, but intended symbol strip proc.
Click to expand...
Click to collapse
that brings me to my initial questions.
I've decided to take a shortcut right now:
http://forum.xda-developers.com/showpost.php?p=23607014&postcount=3234
_n0p_ said:
I've decided to take a shortcut right now:
http://forum.xda-developers.com/showpost.php?p=23607014&postcount=3234
Click to expand...
Click to collapse
efficient one. But you need root to do that and no other ussd-app from the market will run. At least it solves the problem for the end-user.
The guess with that off-by-one-bug was wrong. I tried *101*123456789# ( a code that is used to recharge) and guess what the libril-qc-1.so sends? Only the first 4 bytes. The length of the message is hardcoded to 4 bytes! So my new guess is, that someone used sizeof(data) instead of strlen(data).
root is actually not needed, just a correct permissions.
Say, this kind of bug shouldn't pass unnoticed or there's no QA at all in Quisda.
--
I also cannot seem to update dialog text in consequent updates, i'm not a Java coder anyway.
--
I'm lookin through code via IDA, dunno if i'll succeed.
--
Actually, setting 666 to /dev/smd0 opens a security hole, so i decided DSC USSD to requre root and set permissions itself and after request restore to 644.
Thanks to both of you.... Done a great Job!!!!!
/dev/smd7, qmi and radiooptions
_n0p_ said:
I've decided to take a shortcut right now:
http://forum.xda-developers.com/showpost.php?p=23607014&postcount=3234
Click to expand...
Click to collapse
I got a little step further: http://blogs.gnome.org/dcbw/2010/04/15/mobile-broadband-and-qualcomm-proprietary-protocols/ tells me, that there are multiple ways to talk to the radio.
The AT-commands port /dev/smd0 you use for the ussd workaround. And a proprietary protocol named qmi that works via shared memory. I guess our proprietary libril-qc-1.so uses this protocol and the kernel-process qmi is the other end of the communication.
The article talks about a second AT-Command port most cdma modems have, and indeed the streak 5 has that one in /dev/smd7.
sh-4.1# cat /dev/smd7 &
4729
sh-4.1# echo -e 'ATI\r' > /dev/smd7
sh-4.1# ATI
Manufacturer: Qisda Corporation
Model: Streak
Revision: GAUSB1A1406214 1 [Aug 18 2010 04:00:00]
IMEI: xxxxxxxxxxxxxxx
+GCAP: +CGSM,+DS,+ES
OK
So if /dev/smd0 is locked, use /dev/smd7 I'm now working, how this shared memory communication will look like.
There is a program in the gingerbread sources called radiooptions. That talks to the debug-api of the rild in /dev/socket/rild-debug. Users in the system group can trigger some radio related events with it:
Usage: radiooptions [option] [extra_socket_args]
0 - RADIO_RESET,
1 - RADIO_OFF,
2 - UNSOL_NETWORK_STATE_CHANGE,
3 - QXDM_ENABLE,
4 - QXDM_DISABLE,
5 - RADIO_ON,
6 apn- SETUP_PDP apn,
7 - DEACTIVE_PDP,
8 number - DIAL_CALL number,
9 - ANSWER_CALL,
10 - END_CALL
It was included in older dell roms, but not any more. I wonder why.
thanks to hunderteins for USSD patch..
Gingerbread and USSD QuD fix
Hello!
My name is noob, and since I can't post reply in the DEV threads, I'm trying here, in order to get some help;
I recently installed the stock 407 ROM and bumped into this USSD issue; following the threads in this forum i got to the USSD QuD fix and tried to install it via the Custom Recovery boot mode... where I'm currently stuck as the update process halts on the following error messages:
"E:failed to verify whole-file signature
E:signature verification failed"
Can anyone give me a push!? thanx!
Help
I'm new member here. I already fix the USSD problem but I have new problem that is I can't receive any SMS from Bank that sending me TAC code. The Bank will send SMS using short number (I don't know what to call) example 66628 to my number. Before upgrade I can receive the SMS from Bank. Thanks for help.

type conversion error when porting ubuntu touch to

I am trying to port ubuntu touch to xiaomi 2s phone. after run make command, an error occurs.
hardware/qcom/display/msm8960/libcopybit/copybit_c2d.cpp:1390:55: error: narrowing conversion of 'dst->copybit_image_t::w' from 'const uint32_t {aka const unsigned int}' to 'int' inside { } is ill-formed in C++11 [-Werror=narrowing]
it sounds like the copiler can not convert from copybit_image_t to copybit_rect_t. i have found the defination of the two type struct.
Code:
127 struct copybit_image_t {
128 /* width */
129 uint32_t w;
130 /* height */
131 uint32_t h;
132 /* format COPYBIT_FORMAT_xxx */
133 int32_t format;
134 /* base of buffer with image */
135 void *base;
136 /* handle to the image */
137 native_handle_t* handle;
138 /* number of pixels added for the stride */
139 uint32_t horiz_padding;
140 /* number of pixels added for the vertical stride */
141 uint32_t vert_padding;
142 };
143
144 /* Rectangle */
145 struct copybit_rect_t {
146 /* left */
147 int l;
148 /* top */
149 int t;
150 /* right */
151 int r;
152 /* bottom */
153 int b;
154 };
i can not understand why this happened ? anyone can help me ?

how to oc kernel samsung

What I need to do oclocking gpu
/* clk,vol,abb,min,max,down stay, time, pm_qos mem,
pm_qos int, pm_qos cpu_kfc_min, pm_qos cpu_egl_max */
static gpu_dvfs_info gpu_dvfs_table_default[] = {
{667, 1168750, 0, 99, 100, 1, 0, 666000, 275000, 897000, 1500000},
{533, 1062500, 0, 98, 99, 1, 0, 559000, 275000, 897000, 1500000},
{350, 900000, 0, 90, 98, 1, 0, 413000, 275000, 507000, 1500000},
{266, 900000, 0, 78, 95, 1, 0, 413000, 275000, 507000, 1500000},
{160, 900000, 0, 10, 20, 1, 0, 413000, 275000, 507000, 1500000},
};
static int mif_min_table[] = {
200000, 273000, 338000, 413000, 559000, 666000,
};
static gpu_attribute gpu_config_attributes[] = {
{GPU_MAX_CLOCK, 667},
{GPU_MAX_CLOCK_LIMIT, 667},
{GPU_MIN_CLOCK, 160},
{GPU_DVFS_START_CLOCK, 160},
{GPU_DVFS_BL_CONFIG_CLOCK, 160},
{GPU_GOVERNOR_TYPE, G3D_DVFS_GOVERNOR_INTERACTIVE},
{GPU_GOVERNOR_START_CLOCK_DEFAULT, 160},
{GPU_GOVERNOR_START_CLOCK_INTERACTIVE, 160},
{GPU_GOVERNOR_START_CLOCK_STATIC, 160},
{GPU_GOVERNOR_START_CLOCK_BOOSTER, 160},
{GPU_GOVERNOR_TABLE_DEFAULT, (uintptr_t)&gpu_dvfs_table_default},
{GPU_GOVERNOR_TABLE_INTERACTIVE, (uintptr_t)&gpu_dvfs_table_default},
{GPU_GOVERNOR_TABLE_STATIC, (uintptr_t)&gpu_dvfs_table_default},
{GPU_GOVERNOR_TABLE_BOOSTER, (uintptr_t)&gpu_dvfs_table_default},
{GPU_GOVERNOR_TABLE_SIZE_DEFAULT, GPU_DVFS_TABLE_LIST_SIZE(gpu_dvfs_table_default)},
{GPU_GOVERNOR_TABLE_SIZE_INTERACTIVE, GPU_DVFS_TABLE_LIST_SIZE(gpu_dvfs_table_default)},
{GPU_GOVERNOR_TABLE_SIZE_STATIC, GPU_DVFS_TABLE_LIST_SIZE(gpu_dvfs_table_default)},
{GPU_GOVERNOR_TABLE_SIZE_BOOSTER, GPU_DVFS_TABLE_LIST_SIZE(gpu_dvfs_table_default)},
{GPU_GOVERNOR_INTERACTIVE_HIGHSPEED_CLOCK, 440},
{GPU_GOVERNOR_INTERACTIVE_HIGHSPEED_LOAD, 95},
{GPU_GOVERNOR_INTERACTIVE_HIGHSPEED_DELAY, 0},
{GPU_DEFAULT_VOLTAGE, 975000},
{GPU_COLD_MINIMUM_VOL, 0},
{GPU_VOLTAGE_OFFSET_MARGIN, 37500},
{GPU_TMU_CONTROL, 0},
{GPU_TEMP_THROTTLING1, 600},
{GPU_TEMP_THROTTLING2, 533},
{GPU_TEMP_THROTTLING3, 440},
{GPU_TEMP_THROTTLING4, 350},
{GPU_TEMP_TRIPPING, 266},
{GPU_POWER_COEFF, 46}, /* all core on param */
{GPU_DVFS_TIME_INTERVAL, 5},
{GPU_DEFAULT_WAKEUP_LOCK, 1},
{GPU_BUS_DEVFREQ, 0},
{GPU_DYNAMIC_ABB, 0},
{GPU_EARLY_CLK_GATING, 0},
{GPU_DVS, 0},
#ifdef MALI_SEC_HWCNT
{GPU_HWCNT_GATHERING, 1},
{GPU_HWCNT_GPR, 1},
{GPU_HWCNT_DUMP_PERIOD, 50}, /* ms */
{GPU_HWCNT_CHOOSE_JM , 0},
{GPU_HWCNT_CHOOSE_SHADER , 0xF8},
{GPU_HWCNT_CHOOSE_TILER , 0},
{GPU_HWCNT_CHOOSE_L3_CACHE , 0},
{GPU_HWCNT_CHOOSE_MMU_L2 , 0},
#endif
{GPU_RUNTIME_PM_DELAY_TIME, 50},
{GPU_DVFS_POLLING_TIME, 30},
{GPU_PERF_GATHERING, 0},
{GPU_PMQOS_INT_DISABLE, 0},
{GPU_PMQOS_MIF_MAX_CLOCK, 666000},
{GPU_PMQOS_MIF_MAX_CLOCK_BASE, 667},
#ifdef CONFIG_EXYNOS_CL_DVFS_G3D
{GPU_CL_DVFS_START_BASE, 600},
#endif
{GPU_DEBUG_LEVEL, DVFS_WARNING},
{GPU_TRACE_LEVEL, TRACE_ALL},
};
Sorry about the english

Problem about kernel compilation, "Warning (reg_format)"

Hi all. I'm trying to compile the kernel for my HTC 5G HUB, as a first step in transforming it into a great IoT device.
It has a Snapdragon 855 SOC and runs Android 9.0.
After more than a week of work, I tried out a mostly correct environment and solved most of problems by myself, but there are still some issues that are bothering me.
I'm not expecting anyone to helping me solve problems hand by hand, but just hoping someone experienced in similar devices(Pixel 4; Mi 9; OnePlus 7, etc...) will give me some clues. Thanks!
1. Device Tree Compiler Warning
At the beginning, I got lots of warnings about"Warning (reg_format)" in various of nodes. I managed to resolve these warnings by carefully adding `#address-cells` and `#size-cells` in their parent node. Except for the following two.
Code:
Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Take smb1390 for example, its content is shown as below:
Code:
#include <dt-bindings/interrupt-controller/irq.h>
smb1390: qcom,[email protected] {
compatible = "qcom,i2c-pmic";
reg = <0x10>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&spmi_bus>;
interrupts = <0x2 0xC5 0x0 IRQ_TYPE_LEVEL_LOW>;
interrupt_names = "smb1390";
interrupt-controller;
#interrupt-cells = <3>;
qcom,periph-map = <0x10>;
status = "disabled";
smb1390_revid: qcom,revid {
compatible = "qcom,qpnp-revid";
reg = <0x100>;
};
smb1390_charger: qcom,charge_pump {
compatible = "qcom,smb1390-charger";
qcom,pmic-revid = <&smb1390_revid>;
interrupt-parent = <&smb1390>;
status = "disabled";
qcom,core {
interrupts = <0x10 0x0 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x1 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x2 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x3 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x4 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x5 IRQ_TYPE_EDGE_RISING>,
<0x10 0x6 IRQ_TYPE_EDGE_RISING>,
<0x10 0x7 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "switcher-off-window",
"switcher-off-fault",
"tsd-fault",
"irev-fault",
"vph-ov-hard",
"vph-ov-soft",
"ilim",
"temp-alarm";
};
};
};
and it is included by sm8150-qrd.dtsi, sm8150-sdx50m-qrd.dtsi and sm8150-mtp.dtsi like this
Code:
&qupv3_se4_i2c {
#include "smb1390.dtsi"
#include "smb1355.dtsi"
};
Code:
&smb1390 {
pinctrl-names = "default";
pinctrl-0 = <&smb_stat_default>;
status = "ok";
};
&smb1390_charger {
io-channels = <&pm8150b_vadc ADC_AMUX_THM2>;
io-channel-names = "cp_die_temp";
status = "ok";
};
searching qupv3_se4_i2c I got this in sm8150-audio-rt5-xb.dtsi (RTX is the codename of HTC 5G HUB)
Code:
&soc{
/* TI config for spk chip */
[email protected] { /* qupv3_se4_i2c */
#address-cells = <1>;
#size-cells = <0>;
[email protected] {
...
};
};
};
I believe tas2557s is an unrelated device so I ignored the details of this.
So, where is the problem?
2. vmlinux warning at the end of compilation
Code:
WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version generation failed, symbol will not be versioned.
Fortunately, they were only warnings instead of errors. So I was still able to complete the entire compilation process.
If these problems are hard to fix easily, I'd like to know if I can safely ignore them.
My build environment:
Ubuntu 14.04 in docker
aarch64-linux-android-4.9
clang-4691093
DTC from AOSP 9.0.0. when I run "dtc -v", it told me "1.4.2"
You can get kernel source code from here

Categories

Resources