Project

General

Profile

XMMBoot » History » Version 36

Denis 'GNUtoo' Carikli, 03/25/2020 01:58 AM

1 1 Denis 'GNUtoo' Carikli
h1. XMMBoot
2
3
h2.  Introduction
4
5
For both libsamsung-ipc and the Linux driver it's interesting to understand better the boot of the modem in order to come with good names for the abstraction.
6
7 16 Denis 'GNUtoo' Carikli
h2. GPIOs
8
9 10 Denis 'GNUtoo' Carikli
The GPIO platform data names were taken from the "modem_modemctl_device_xmm6260.c":https://git.replicant.us/replicant/kernel_samsung_smdk4412/tree/drivers/misc/modem_if/modem_modemctl_device_xmm6260.c file
10
11 36 Denis 'GNUtoo' Carikli
|_. libsamsung-ipc |_\3. Kernel |_\2. Devices |_\2. Documentation |
12
|_. Function using the ioctl |_. ioctl name |_. function pointer name |_. gpio platform data name |_. present |_. absent |_. Implementation |_. comments |
13
| | | | gpio_cp_on | | | | cp == baseband processor |
14
| | | | gpio_reset_req_n | | | |
15
| | | | gpio_cp_reset | | | | cp == baseband processor |
16
| | | | gpio_pda_active | | | | |
17
| | | | gpio_phone_active | | | | |
18
| | | | gpio_cp_dump_int | | | | cp == baseband processor |
19
| xmm626_kernel_smdk4412_boot_power | IOCTL_MODEM_BOOT_ON
20 1 Denis 'GNUtoo' Carikli
IOCTL_MODEM_BOOT_OFF | modem_boot_on
21 35 Denis 'GNUtoo' Carikli
modem_boot_off | gpio_flm_uart_sel |\2. Only used for the Galaxy Nexus in libsamsung-ipc | | Modem download mode ? |
22 36 Denis 'GNUtoo' Carikli
| | | | gpio_cp_warm_reset | | | | cp == baseband processor |
23
| | | | gpio_revers_bias_clear | | | | |
24
| | | | gpio_revers_bias_restore | | | | |
25
| | | | gpio_sim_detect | | | | Detect SIM card presence ? |
26 1 Denis 'GNUtoo' Carikli
27 16 Denis 'GNUtoo' Carikli
h3. SIM card presence detection
28 7 Denis 'GNUtoo' Carikli
29
Do we really want to check the SIM card presence?
30
31
Would it be possible not to for privacy reasons?
32
33
Example:
34
* Boot a modem with a SIM
35
* Take away the SIM card
36 1 Denis 'GNUtoo' Carikli
* Go to a protest with only the SIM card and a phone with no data on it to be able to call if necessary.
37 7 Denis 'GNUtoo' Carikli
38 16 Denis 'GNUtoo' Carikli
h3. TODO
39 1 Denis 'GNUtoo' Carikli
40
* check gpio_flm_uart_sel in smdk4412 kernel too
41 16 Denis 'GNUtoo' Carikli
42
h2. Modem partitions
43
44 30 Denis 'GNUtoo' Carikli
h3. GT-I9300, GT-N7100
45 3 Denis 'GNUtoo' Carikli
46 19 Denis 'GNUtoo' Carikli
|_. Location |_. Name |_. Content |
47 25 Denis 'GNUtoo' Carikli
| [ 0x0 -> 0xfff ] | ? | Partition table? |
48 31 Denis 'GNUtoo' Carikli
| [ 0x1000 -> 0xefff ] | PSIRAM | First stage bootloader? |
49
| [ 0xF000 -> 0x27fff ] | EBL | Second stage bootloader ? |
50 29 Denis 'GNUtoo' Carikli
| [ 0x28000 -> 0x9ff7ff ] | MAIN | ? |
51 28 Denis 'GNUtoo' Carikli
| [ 0x9ff800 -> 0x9fffff ] | SECPACK | ? |
52 1 Denis 'GNUtoo' Carikli
| [ 0xa00000 -> 0xbfffff ] | NV | ? |
53
54 31 Denis 'GNUtoo' Carikli
References for the table:
55
* https://git.replicant.us/replicant/external_libsamsung-ipc/tree/samsung-ipc/devices/i9300/i9300.h?id=9ff9785a7f48e32f107ca7fb2e298b1320ad4cbc
56
* https://git.replicant.us/replicant/external_libsamsung-ipc/tree/samsung-ipc/devices/n7100/n7100.h?id=9ff9785a7f48e32f107ca7fb2e298b1320ad4cbc
57
* Verified on GT-I9300 and GT-N7100 modem partition table
58 23 Denis 'GNUtoo' Carikli
59 32 Denis 'GNUtoo' Carikli
h4. GT-I9300 and GT-N7100 modem partition table dump
60 23 Denis 'GNUtoo' Carikli
61
<pre>
62 24 Denis 'GNUtoo' Carikli
$ hexdump -C RADIO.img
63
00000000  50 53 49 52 41 4d 00 00  00 00 00 00 00 10 00 00  |PSIRAM..........|
64
00000010  00 00 00 00 00 e0 00 00  00 00 00 00 00 00 00 00  |................|
65
00000020  45 42 4c 00 00 00 00 00  00 00 00 00 00 f0 00 00  |EBL.............|
66
00000030  00 00 00 60 00 90 01 00  00 00 00 00 00 00 00 00  |...`............|
67
00000040  4d 41 49 4e 00 00 00 00  00 00 00 00 00 80 02 00  |MAIN............|
68
00000050  00 00 30 60 00 78 9d 00  00 00 00 00 00 00 00 00  |..0`.x..........|
69
00000060  53 45 43 50 41 43 4b 00  00 00 00 00 00 f8 9f 00  |SECPACK.........|
70
00000070  00 00 00 00 00 08 00 00  00 00 00 00 00 00 00 00  |................|
71
00000080  4e 56 00 00 00 00 00 00  00 00 00 00 00 00 a0 00  |NV..............|
72
00000090  00 00 e8 60 00 00 20 00  00 00 00 00 00 00 00 00  |...`.. .........|
73
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
74
*
75
[...]
76 1 Denis 'GNUtoo' Carikli
</pre>
77 32 Denis 'GNUtoo' Carikli
78
h3. Devices without a partition table or with a different one
79
80
* GT-I9250
81 17 Denis 'GNUtoo' Carikli
82 1 Denis 'GNUtoo' Carikli
h2. Links
83
84 15 Denis 'GNUtoo' Carikli
* "modem_modemctl_device_xmm6260.c":https://git.replicant.us/replicant/kernel_samsung_smdk4412/tree/drivers/misc/modem_if/modem_modemctl_device_xmm6260.c
85 1 Denis 'GNUtoo' Carikli
* https://forum.xda-developers.com/galaxy-s2/help/how-to-talk-to-modem-commands-t1471241/page4