Project

General

Profile

MidasBootloader » History » Version 7

Denis 'GNUtoo' Carikli, 02/29/2020 01:50 AM

1 1 Denis 'GNUtoo' Carikli
h1. MidasBootloader
2
3 6 Denis 'GNUtoo' Carikli
When connected on the serial port, during boot, if you press the volume down button and press enter at least 4 times on the serial console, you can get a shell:
4 1 Denis 'GNUtoo' Carikli
<pre>
5
PMIC rev = PASS2(4)
6
BUCK1OUT(vdd_mif) = 0x05
7
BUCK3DVS1(vdd_int) = 0x20
8
[MMC] there are pending interrupts 0x00010000
9
cardtype: 0x00000007
10
SB_MMC_HS_52MHZ_1_8V_3V_IO
11
mmc->card_caps: 0x00000311
12
mmc->host_caps: 0x00000311
13
mmc_initialize: mmc->capacity = 30777344
14
15
Samsung S-Boot 4.0-2836504 for GT-I9300 (Jun 15 2015 - 22:47:58)
16
17
EXYNOS4412(EVT 1.1) / 1022MB / 15028MB / Rev 12 / I9300XXUGOF1 /(PKG_ID 0x7050008)
18
19
- read_bl1
20
pit_check_signature (PIT) valid.
21
initialize_ddi_data: usable! (3:0xf)
22
PARAM ENV VERSION: v1.0..
23
set_charger_current: chg curr(3f), in curr(17)
24
set_charger_state: buck(1), chg(1), reg(0x05)
25
microusb_get_attached_device: STATUS1:0x3d, 2:0x00
26
set_auto_current: ta_state(0), curr(1000)
27
init_fuelgauge: fuelgauge power ok
28
init_fuelgauge: POR status
29
fuelgauge_por: POR start: vcell(4081), vfocv(4188), soc(100)
30
fuelgauge_por: update SDI M0 parameter
31
fuelgauge_por: RCOMP(0x0065), TEMPCO(0x0930)
32
fuelgauge_por: POR finish: vcell(4079), vfocv(4310), soc(88)
33
get_table_soc: vcell(4077) is caculated to t-soc(84.590)
34
init_fuelgauge: start: vcell(4077), vfocv(4301), soc(88), table soc(84)
35
init_fuelgauge: finish: vcell(4077), vfocv(4301), soc(88), table soc(84)
36
init_microusb_ic: MUIC: CONTROL1:0x1b
37
init_microusb_ic: MUIC: CONTROL1:0x1b
38
init_microusb_ic: MUIC: CONTROL2:0x3b
39
init_microusb_ic: MUIC: CONTROL2:0x3b
40
PMIC_ID      = 0x02 
41
PMIC_IRQSRC  = 0x00 
42
PMIC_IRQ1    = 0x06 
43
PMIC_IRQ2    = 0x00 
44
PMIC_IRQ1M   = 0xc0 
45
PMIC_IRQ2M   = 0x03 
46
PMIC_STATUS1 = 0x11 
47
PMIC_STATUS2 = 0x00 
48
PMIC_PWRON   = 0x03 
49
PMIC_RTCINT  = 0x00 
50
PMIC_RTCINTM = 0x3f 
51
s5p_check_keypad: 0x1100000
52
s5p_check_reboot_mode: INFORM3 = 0 ... skip
53
s5p_check_upload: MAGIC(0x277b3bbf), RST_STAT(0x10000)
54
microusb_get_attached_device: STATUS1:0x3d, 2:0x00
55
s5p_check_download: 0
56
microusb_get_attached_device: STATUS1:0x3d, 2:0x00
57
check_pm_status: non chargable jig, bypass check power
58
cmu_div:1, div:7, src_clk:800000000, pixel_clk:57153600
59
s5p_dsim_display_config : VIDEO MODE
60
a2, 60, 90, 
61
62
autoboot aborted..
63
S-BOOT # 
64
S-BOOT # 
65
S-BOOT # 
66
S-BOOT # 
67
S-BOOT # 
68
S-BOOT # 
69
S-BOOT # 
70
S-BOOT # 
71
S-BOOT # 
72
S-BOOT # help
73
Following commands are supported:
74
* chipinfo
75
* help
76
* log
77
* load_kernel
78
* boot
79
* reset
80
* findenv
81
* saveenv
82
* setenv
83
* printenv
84
* checksum_need
85
* usb
86
* upload
87
* keyread
88
* readadc
89
* printcsd
90
* rpmbwritedata
91
* rpmbreadcount
92
* rpmbsetkey
93
* rpmbclose
94
* rpmbopen
95
* sdcard_read
96
* sdcard
97
* fuelgauge
98
* usb_write
99
* usb_read
100
To get commands help, Type "help <command>"
101
S-BOOT #
102
</pre>
103 2 Denis 'GNUtoo' Carikli
104 7 Denis 'GNUtoo' Carikli
h2. Available commands
105
106
Here's the known list of commands:
107 2 Denis 'GNUtoo' Carikli
<pre>
108 7 Denis 'GNUtoo' Carikli
S-BOOT # help
109
Following commands are supported:
110
* chipinfo
111
* help
112
* log
113
* load_kernel
114
* boot
115
* reset
116
* findenv
117
* saveenv
118
* setenv
119
* printenv
120
* checksum_need
121
* usb
122
* upload
123
* keyread
124
* readadc
125
* printcsd
126
* rpmbwritedata
127
* rpmbreadcount
128
* rpmbsetkey
129
* rpmbclose
130
* rpmbopen
131
* sdcard_read
132
* sdcard
133
* fuelgauge
134
* usb_write
135
* usb_read
136
To get commands help, Type "help <command>"
137
S-BOOT #
138
</pre>
139
140
And the respective help:
141
<pre>
142 2 Denis 'GNUtoo' Carikli
S-BOOT # help chipinfo
143
* Help : chipinfo
144
* Usage : display exynos chip info.
145 7 Denis 'GNUtoo' Carikli
146 2 Denis 'GNUtoo' Carikli
S-BOOT # help help
147
* Help : help
148
* Usage : help [command]
149 7 Denis 'GNUtoo' Carikli
150 2 Denis 'GNUtoo' Carikli
S-BOOT # help log
151
* Help : log
152
* Usage : *usage : log
153
154
S-BOOT # help load_kernel
155
* Help : load_kernel
156
* Usage : load kernel image..
157 7 Denis 'GNUtoo' Carikli
158 2 Denis 'GNUtoo' Carikli
S-BOOT # help boot
159
* Help : boot
160
* Usage : boot [kernel options]
161
Boot Linux with optional kernel options
162
163
S-BOOT # help reset
164
* Help : reset
165
* Usage : reboot
166
Reboot system
167
168
S-BOOT # help findenv
169
* Help : findenv
170
* Usage : findenv [filename]
171
172
S-BOOT # help saveenv
173
* Help : saveenv
174
* Usage : saveenv
175
176
S-BOOT # help setenv
177
* Help : setenv
178
* Usage : setenv [name] [value]
179
180
S-BOOT # help printenv
181
* Help : printenv
182
* Usage : printenv
183
184
S-BOOT # help checksum_need
185
* Help : checksum_need
186
* Usage : Setting checksum need. 0 or 1
187 7 Denis 'GNUtoo' Carikli
188 2 Denis 'GNUtoo' Carikli
S-BOOT # help usb
189
* Help : usb
190
* Usage : usb download command.
191 7 Denis 'GNUtoo' Carikli
192 2 Denis 'GNUtoo' Carikli
S-BOOT # help upload
193
* Help : upload
194
* Usage : usb upload command.
195 7 Denis 'GNUtoo' Carikli
196 2 Denis 'GNUtoo' Carikli
S-BOOT # help keyread
197
* Help : keyread
198
* Usage : *Usage : keyread
199
200
S-BOOT # help readadc
201
* Help : readadc
202
* Usage : *usage : readadc <channel>
203
204
S-BOOT # help printcsd
205
* Help : printcsd
206
* Usage : printcsd
207
208
S-BOOT # help rpmbwritedata
209
* Help : rpmbwritedata
210
* Usage : rpmbwritedata [data]
211
212
S-BOOT # help rpmbreadcount
213
* Help : rpmbreadcount
214
* Usage : rpmbreadcount
215
216
S-BOOT # help rpmbsetkey
217
* Help : rpmbsetkey
218
* Usage : rpmbsetkey [key]
219
220
S-BOOT # help rpmbclose
221
* Help : rpmbclose
222
* Usage : rpmbclose
223
224
S-BOOT # help rpmbopen
225
* Help : rpmbopen
226
* Usage : rpmbopen
227
228
S-BOOT # help sdcard_read
229
* Help : sdcard_read
230
* Usage : sdcard_read test command
231 7 Denis 'GNUtoo' Carikli
232 2 Denis 'GNUtoo' Carikli
S-BOOT # help sdcard
233
* Help : sdcard
234
* Usage : sdcard test command
235 7 Denis 'GNUtoo' Carikli
236 2 Denis 'GNUtoo' Carikli
S-BOOT # help fuelgauge
237
* Help : fuelgauge
238
* Usage : *usage : fuelgauge
239
240
S-BOOT # help usb_write
241
* Help : usb_write
242
* Usage : usb_write reg, val
243
Read the usb ic register
244
245
S-BOOT # help usb_read
246
* Help : usb_read
247
* Usage : usb_read reg
248
Read the usb ic register
249 3 Denis 'GNUtoo' Carikli
250
S-BOOT # 
251
</pre>
252
253 7 Denis 'GNUtoo' Carikli
h2. Changing the kernel commandline arguments
254
255
By default we have console=ram and loglevel=4:
256 3 Denis 'GNUtoo' Carikli
<pre>
257 7 Denis 'GNUtoo' Carikli
S-BOOT # printenv
258
: REBOOT_MODE: 0
259
: SWITCH_SEL: 1
260
: DEBUG_LEVEL: 20300
261
: SUD_MODE: 0
262
: DN_ERROR: 0
263
: CHECKSUM: 3
264
: INT_RSVD6: 1
265
: INT_RSVD7: 0
266
: INT_RSVD8: 0
267
: INT_RSVD9: 0
268
: CMDLINE: console=ram loglevel=4
269
: STR_RSVD1: (null)
270
: STR_RSVD2: (null)
271
</pre>
272
273
However if we change that:
274
<pre>
275 3 Denis 'GNUtoo' Carikli
S-BOOT # setenv CMDLINE console=ram loglevel=8
276
argv[0]: setenv
277
argv[1]: CMDLINE
278
argv[2]: console=ram loglevel=8
279
S-BOOT # printenv
280
: REBOOT_MODE: 0
281 1 Denis 'GNUtoo' Carikli
: SWITCH_SEL: 1
282 3 Denis 'GNUtoo' Carikli
: DEBUG_LEVEL: 20300
283
: SUD_MODE: 0
284 7 Denis 'GNUtoo' Carikli
: DN_ERROR: 0
285 3 Denis 'GNUtoo' Carikli
: CHECKSUM: 3
286
: INT_RSVD6: 1
287
: INT_RSVD7: 0
288
: INT_RSVD8: 0
289
: INT_RSVD9: 0
290
: CMDLINE: console=ram loglevel=8
291
: STR_RSVD1: (null)
292
: STR_RSVD2: (null)
293
S-BOOT # saveenv
294 1 Denis 'GNUtoo' Carikli
S-BOOT # reset
295
s5p_restart_handler ('N':null)
296 3 Denis 'GNUtoo' Carikli
297 7 Denis 'GNUtoo' Carikli
PMIC rev = PASS2(4)
298
[...]
299 3 Denis 'GNUtoo' Carikli
</pre>
300
301 7 Denis 'GNUtoo' Carikli
Then after boot we can observe that the cmdline has changed:
302 4 Denis 'GNUtoo' Carikli
<pre>
303
$ adb root
304
$ adb shell
305
root@i9300:/ # cat /proc/cmdline                                               
306 1 Denis 'GNUtoo' Carikli
console=ttySAC2,115200 consoleblank=0 androidboot.hardware=smdk4x12 console=ram loglevel=8 [...]
307 4 Denis 'GNUtoo' Carikli
</pre>
308
309 7 Denis 'GNUtoo' Carikli
After complete power off (with battery removal) and power on, we can see that the modified cmdline has sticked:
310 5 Denis 'GNUtoo' Carikli
<pre>
311
S-BOOT # printenv
312
: REBOOT_MODE: 0
313
: SWITCH_SEL: 1
314
: DEBUG_LEVEL: 20300
315
: SUD_MODE: 0
316
: DN_ERROR: 0
317
: CHECKSUM: 3
318
: INT_RSVD6: 1
319
: INT_RSVD7: 0
320
: INT_RSVD8: 0
321
: INT_RSVD9: 0
322
: CMDLINE: console=ram loglevel=8
323
: STR_RSVD1: (null)
324
: STR_RSVD2: (null)
325
</pre>