Samsung Galaxy S II (samsung-i9100g)
Appearance
Samsung Galaxy S II (GT-I9100G) running Xfce4 | |
Manufacturer | Samsung |
---|---|
Name | Galaxy S II (GT-I9100G) |
Codename | samsung-i9100g |
Released | 2011 |
Type | handset |
Hardware | |
Chipset | TI OMAP 4430 |
CPU | Dual-core 1.2 GHz Cortex-A9 |
GPU | PowerVR SGX540 |
Display | 480x800 AMOLED |
Storage | 16 GB |
Memory | 1 GB |
Architecture | armv7 |
Software | |
Original software | Android |
Original version | 2.3.4 (TouchWiz UI v4.0) |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | partial |
postmarketOS kernel | 3.0.101 |
Unixbench Whet/Dhry score | 517.2 |
Flashing |
Works |
---|---|
USB Networking |
Works |
Internal storage | |
SD card | |
Battery |
Partial |
Screen |
Works |
Touchscreen |
Works |
Multimedia | |
3D Acceleration | |
Audio |
Broken |
Camera |
Broken |
Camera Flash | |
Connectivity | |
WiFi |
Partial |
Bluetooth |
Broken |
GPS |
Broken |
Modem | |
Calls |
Broken |
SMS |
Broken |
Mobile data |
Broken |
Miscellaneous | |
FDE |
Works |
USB OTG |
Works |
HDMI/DP | |
Sensors | |
Accelerometer | |
Magnetometer | |
Ambient Light | |
Proximity | |
Hall Effect | |
Haptics | |
Barometer | |
This device is based on the TI OMAP 4430. See the SoC page for common tips, guides and troubleshooting steps |
Contributors
Users owning this device
- Bastindo (Notes: Good condition, running Android 6)
- Ungeskriptet (Notes: I LOVE how small it is and the old TouchWiz makes me feel nostalgic too)
How to enter flash mode
- Download mode: While the device is off hold , and to boot it into download mode, afterwards confirm the operation by pressing .
- Recovery mode: While the device is off hold , and to boot it into recovery mode.
Installation
Follow the installation guide.
WiFi
NetworkManager doesn't work on this phone, so to get Wi-Fi working you must use wpa_supplicant only.
Mainline status
Component | Model | Status | Notes |
---|---|---|---|
USB | USB 2.0 Micro-B | ||
eMMC | Sandisk SEM16G | Y | 16 GB |
SD card | microSDXC | Y | |
Charging | Maxim MAX17040 | N | |
PMIC | Texas Instrumemts TWL6030 | N | |
MUIC | Fairchild FSA9480 | N | |
Volume/Power/Home keys | GPIO | Y | |
Touchscreen | Atmel MXT224 | Y | Powered by vaux2 regulator and fixed regulator on GPIO_54 (<&gpio2 22 GPIO_ACTIVE_HIGH> )
|
Touchkeys | (Cypress?) Touchkey | N | |
Accelerometer | Kionix KXTF9 | Y | |
Gyroscope | TDK InvenSense MPU3050 | N | |
Magnetometer | AKM (Asahi Kasei Microdevices) AK8975 | N | |
Light and proximity sensor | Capella Microsystems CM3663 | N | |
Display | Samsung LD9040 AMOLED panel | N | Powered by vaux3 and v1v8 regulators. LCD type "SM2 A2" |
Audio | Texas Instruments TWL 6040 | N | |
GPU | PowerVR SGX 540 | N | PowerVR SGX 540 needs out-of-tree kernel module, patched mesa, and some proprietary blobs |
Wi-Fi | Broadcom BCM4330 | Y | Wi-Fi connected to mmc5 with SDIO and powered with 2V fixed regulator |
Bluetooth | Broadcom BCM4330 | N | Bluetooth connected to UART2 |
Front camera | Samsung S5K5BAF | N | OMAP4 devices have Ducati firmware for cameras |
Main camera | Samsung S5K3H2 | N | OMAP4 devices have Ducati firmware for cameras |
HDMI/MHL | Silicon Image sii9234 | N | Driver available in mainline |
Modem | Intel XMM6260 | N |
Miscellaneous mainline info
GPIO map
Pin | Function | Number |
---|---|---|
gpio-0 | ear_jack_detect | 0 |
gpio-1 | fsa9840_external_id | 1 |
gpio-2 | CP_RST | 2 |
gpio-3 | gpio_kp_in | 3 |
gpio-4 | - | 4 |
gpio-5 | - | 5 |
gpio-6 | SYS_DRM_MSEC | 6 |
gpio-7 | - | 7 |
gpio-8 | gpio_kp_in | 8 |
gpio-9 | - | 9 |
gpio-10 | - | 10 |
gpio-11 | CHG_ING_N | 11 |
gpio-12 | TA_nCONNECTED | 12 |
gpio-13 | CHG_EN | 13 |
gpio-14 | - | 14 |
gpio-15 | - | 15 |
gpio-16 | - | 16 |
gpio-17 | - | 17 |
gpio-18 | - | 18 |
gpio-19 | - | 19 |
gpio-20 | - | 20 |
gpio-21 | - | 21 |
gpio-22 | - | 22 |
gpio-23 | - | 23 |
gpio-24 | - | 24 |
gpio-25 | - | 25 |
gpio-26 | - | 26 |
gpio-27 | - | 27 |
gpio-28 | - | 28 |
gpio-29 | BAT_REMOVAL | 29 |
gpio-30 | gpio_kp_in | 30 |
gpio-31 | gpio_kp_in | 31 |
Pin | Function | Number |
---|---|---|
gpio-32 | 3_TOUCH_INT | 0 |
gpio-33 | cm3663_irq | 1 |
gpio-34 | CP_USB_ON | 2 |
gpio-35 | MLCD_RST | 3 |
gpio-36 | CP_ON | 4 |
gpio-37 | PS_ON | 5 |
gpio-38 | - | 6 |
gpio-39 | - | 7 |
gpio-40 | FM_INT | 8 |
gpio-41 | - | 9 |
gpio-42 | FM_RST | 10 |
gpio-43 | - | 11 |
gpio-44 | - | 12 |
gpio-45 | GYRO_INT | 13 |
gpio-46 | TOUCH_nINT | 14 |
gpio-47 | UART_SEL | 15 |
gpio-48 | MICBIAS_EN | 16 |
gpio-49 | EAR_MICBIAS_EN | 17 |
gpio-50 | RESET_REQ_N | 18 |
gpio-51 | - | 19 |
gpio-52 | - | 20 |
gpio-53 | SENSOR_EN | 21 |
gpio-54 | TOUCH_EN | 22 |
gpio-55 | - | 23 |
gpio-56 | CP_DUMP_INT | 24 |
gpio-57 | - | 25 |
gpio-58 | - | 26 |
gpio-59 | MHL_SEL | 27 |
gpio-60 | MHL_RST | 28 |
gpio-61 | scl | 29 |
gpio-62 | sda | 30 |
gpio-63 | HDMI_HPD | 31 |
Pin | Function | Number |
---|---|---|
gpio-64 | - | 0 |
gpio-65 | - | 1 |
gpio-66 | - | 2 |
gpio-67 | - | 3 |
gpio-68 | - | 4 |
gpio-69 | - | 5 |
gpio-70 | - | 6 |
gpio-71 | - | 7 |
gpio-72 | - | 8 |
gpio-73 | HW_REV3 | 9 |
gpio-74 | HW_REV2 | 10 |
gpio-75 | HW_REV1 | 11 |
gpio-76 | HW_REV0 | 12 |
gpio-77 | - | 13 |
gpio-78 | - | 14 |
gpio-79 | - | 15 |
gpio-80 | - | 16 |
gpio-81 | WLAN_HOST_WAKE | 17 |
gpio-82 | BT_nRST | 18 |
gpio-83 | BT_HOST_WAKE | 19 |
gpio-84 | - | 20 |
gpio-85 | - | 21 |
gpio-86 | - | 22 |
gpio-87 | - | 23 |
gpio-88 | - | 24 |
gpio-89 | - | 25 |
gpio-90 | - | 26 |
gpio-91 | - | 27 |
gpio-92 | - | 28 |
gpio-93 | BT_WAKE | 29 |
gpio-94 | - | 30 |
gpio-95 | MOTOR_EN | 31 |
Pin | Function | Number |
---|---|---|
gpio-96 | - | 0 |
gpio-97 | - | 1 |
gpio-98 | sda | 2 |
gpio-99 | scl | 3 |
gpio-100 | HDMI_EN | 4 |
gpio-101 | 3_TOUCH_EN | 5 |
gpio-102 | 3_TOUCH_LED_EN | 6 |
gpio-103 | BT_EN | 7 |
gpio-104 | vwl1271 | 8 |
gpio-105 | - | 9 |
gpio-106 | - | 10 |
gpio-107 | - | 11 |
gpio-108 | - | 12 |
gpio-109 | - | 13 |
gpio-110 | - | 14 |
gpio-111 | - | 15 |
gpio-112 | - | 16 |
gpio-113 | - | 17 |
gpio-114 | - | 18 |
gpio-115 | - | 19 |
gpio-116 | - | 20 |
gpio-117 | - | 21 |
gpio-118 | - | 22 |
gpio-119 | PDA_ACTIVE | 23 |
gpio-120 | PHONE_ACTIVE | 24 |
gpio-121 | - | 25 |
gpio-122 | - | 26 |
gpio-123 | - | 27 |
gpio-124 | - | 28 |
gpio-125 | - | 29 |
gpio-126 | - | 30 |
gpio-127 | audpwron | 31 |
Pin | Function | Number |
---|---|---|
gpio-128 | - | 0 |
gpio-129 | - | 1 |
gpio-130 | - | 2 |
gpio-131 | - | 3 |
gpio-132 | - | 4 |
gpio-133 | - | 5 |
gpio-134 | - | 6 |
gpio-135 | - | 7 |
gpio-136 | - | 8 |
gpio-137 | - | 9 |
gpio-138 | - | 10 |
gpio-139 | scl | 11 |
gpio-140 | sda | 12 |
gpio-141 | - | 13 |
gpio-142 | - | 14 |
gpio-143 | - | 15 |
gpio-144 | - | 16 |
gpio-145 | - | 17 |
gpio-146 | - | 18 |
gpio-147 | - | 19 |
gpio-148 | - | 20 |
gpio-149 | - | 21 |
gpio-150 | - | 22 |
gpio-151 | LCD_SCLK | 23 |
gpio-152 | LCD_SDI | 24 |
gpio-153 | - | 25 |
gpio-154 | LCD_nCS | 26 |
gpio-155 | - | 27 |
gpio-156 | - | 28 |
gpio-157 | - | 29 |
gpio-158 | - | 30 |
gpio-159 | - | 31 |
Pin | Function | Number |
---|---|---|
gpio-160 | - | 0 |
gpio-161 | - | 1 |
gpio-162 | - | 2 |
gpio-163 | - | 3 |
gpio-164 | - | 4 |
gpio-165 | - | 5 |
gpio-166 | - | 6 |
gpio-167 | - | 7 |
gpio-168 | - | 8 |
gpio-169 | host_notifier | 9 |
gpio-170 | - | 10 |
gpio-171 | USB_OTG_EN | 11 |
gpio-172 | AP_AGPS_TSYNC | 12 |
gpio-173 | GPS_PWR_EN | 13 |
gpio-174 | - | 14 |
gpio-175 | MHL_INT | 15 |
gpio-176 | - | 16 |
gpio-177 | SUB_MICBIAS_EN | 17 |
gpio-178 | GPS_nRST | 18 |
Panel init seqeunce
/* seq_user_set */
[ 0.791839] ld9040: Sending init_seq: 0
[ 0.791870] LD9040 command: 0xF0, data: 0x5A
[ 0.819519] LD9040 command: 0xFF, data: 0x5A
/* seq_displayctl_set */
[ 0.847015] LD9040: Sending init_seq: 1
[ 0.847015] LD9040 command: 0xF2, data: 0x02
[ 0.849151] LD9040 command: 0xFF, data: 0x06
[ 0.855224] LD9040 command: 0xFF, data: 0x0A
[ 0.865264] LD9040 command: 0xFF, data: 0x10
[ 0.881317] LD9040 command: 0xFF, data: 0x10
/* seq_gtcon_set */
[ 0.897338] LD9040: Sending init_seq: 2
[ 0.897369] LD9040 command: 0xF7, data: 0x09
/* acl_on */
[ 0.906463] LD9040: Sending init_seq: 3
[ 0.906494] LD9040 command: 0xC1, data: 0x4D
[ 0.921081] LD9040 command: 0xFF, data: 0x96
[ 0.946075] LD9040 command: 0xFF, data: 0x1D
[ 0.975067] LD9040 command: 0xFF, data: 0x00
[ 0.975158] LD9040 command: 0xFF, data: 0x00
[ 0.975250] LD9040 command: 0xFF, data: 0x01
[ 0.976318] LD9040 command: 0xFF, data: 0xDF
[ 0.980651] LD9040 command: 0xFF, data: 0x00
[ 0.980712] LD9040 command: 0xFF, data: 0x00
[ 0.980804] LD9040 command: 0xFF, data: 0x03
[ 0.983886] LD9040 command: 0xFF, data: 0x1F
[ 1.014862] LD9040 command: 0xFF, data: 0x00
[ 1.014953] LD9040 command: 0xFF, data: 0x00
[ 1.015045] LD9040 command: 0xFF, data: 0x00
[ 1.015136] LD9040 command: 0xFF, data: 0x00
[ 1.015197] LD9040 command: 0xFF, data: 0x00
[ 1.015289] LD9040 command: 0xFF, data: 0x01
[ 1.016357] LD9040 command: 0xFF, data: 0x08
[ 1.024414] LD9040 command: 0xFF, data: 0x0F
[ 1.039459] LD9040 command: 0xFF, data: 0x16
[ 1.061462] LD9040 command: 0xFF, data: 0x1D
[ 1.090454] LD9040 command: 0xFF, data: 0x24
[ 1.095275] LD9040 command: 0xFF, data: 0x2A
[ 1.106079] LD9040 command: 0xFF, data: 0x31
[ 1.123870] LD9040 command: 0xFF, data: 0x38
[ 1.148620] LD9040 command: 0xFF, data: 0x3F
[ 1.149200] LD9040 command: 0xFF, data: 0x46
[ 1.156768] LD9040 command: 0xC0, data: 0x01
/* seq_panelcondition_set *
[ 1.157897] LD9040: Sending init_seq: 4
[ 1.157928] LD9040 command: 0xF8, data: 0x05
[ 1.163055] LD9040 command: 0xFF, data: 0x5E
[ 1.163391] LD9040 command: 0xFF, data: 0x96
[ 1.188385] LD9040 command: 0xFF, data: 0x6B
[ 1.201690] LD9040 command: 0xFF, data: 0x7D
[ 1.232910] LD9040 command: 0xFF, data: 0x0D
[ 1.245941] LD9040 command: 0xFF, data: 0x3F
[ 1.246520] LD9040 command: 0xFF, data: 0x00
[ 1.246612] LD9040 command: 0xFF, data: 0x00
[ 1.246704] LD9040 command: 0xFF, data: 0x32
[ 1.265472] LD9040 command: 0xFF, data: 0x00
[ 1.265563] LD9040 command: 0xFF, data: 0x00
[ 1.265625] LD9040 command: 0xFF, data: 0x00
[ 1.265716] LD9040 command: 0xFF, data: 0x00
[ 1.265808] LD9040 command: 0xFF, data: 0x00
[ 1.265869] LD9040 command: 0xFF, data: 0x00
[ 1.265960] LD9040 command: 0xFF, data: 0x07
[ 1.273040] LD9040 command: 0xFF, data: 0x05
[ 1.278076] LD9040 command: 0xFF, data: 0x1F
[ 1.309082] LD9040 command: 0xFF, data: 0x1F
[ 1.340057] LD9040 command: 0xFF, data: 0x1F
[ 1.371032] LD9040 command: 0xFF, data: 0x00
[ 1.371124] LD9040 command: 0xFF, data: 0x00
/* sleep_out */
[ 1.371215] LD9040: Sending init_seq: 5
[ 1.371215] LD9040 command: 0x11, data: 0xFE
[ 1.375305] LD9040 command: 0x1000, data: 0x78
[ 1.375305] LD9040 sleep: 120000
/* elvss_on */
[ 1.401458] LD9040: Sending init_seq: 6
[ 1.401458] LD9040 command: 0xB1, data: 0x0F
[ 1.416564] LD9040 command: 0xFF, data: 0x00
[ 1.416656] LD9040 command: 0xFF, data: 0x16
/* seq_sm2_a2_pwrctl_set */
[ 1.438659] LD9040: Sending init_seq: 7
[ 1.438690] LD9040 command: 0xF4, data: 0x0A
[ 1.448791] LD9040 command: 0xFF, data: 0xA7
[ 1.459594] LD9040 command: 0xFF, data: 0x25
[ 1.465393] LD9040 command: 0xFF, data: 0x6A
[ 1.477691] LD9040 command: 0xFF, data: 0x44
[ 1.483276] LD9040 command: 0xFF, data: 0x02
/* seq_gamma_set1 */
[ 1.485351] LD9040: Sending init_seq: 8
[ 1.485351] LD9040 command: 0xF9, data: 0x0C
[ 1.497467] LD9040 command: 0xFF, data: 0xA9
[ 1.510253] LD9040 command: 0xFF, data: 0xB0
[ 1.530029] LD9040 command: 0xFF, data: 0xA3
[ 1.536834] LD9040 command: 0xFF, data: 0xC3
[ 1.544403] LD9040 command: 0xFF, data: 0x00
[ 1.544464] LD9040 command: 0xFF, data: 0x87
[ 1.554534] LD9040 command: 0xFF, data: 0x0C
[ 1.566589] LD9040 command: 0xFF, data: 0xA7
[ 1.577392] LD9040 command: 0xFF, data: 0xAF
[ 1.596160] LD9040 command: 0xFF, data: 0xA2
[ 1.601959] LD9040 command: 0xFF, data: 0xC2
[ 1.608520] LD9040 command: 0xFF, data: 0x00
[ 1.608612] LD9040 command: 0xFF, data: 0x9F
[ 1.611450] LD9040 command: 0xFF, data: 0x0C
[ 1.623474] LD9040 command: 0xFF, data: 0xB3
[ 1.646240] LD9040 command: 0xFF, data: 0xB4
[ 1.669982] LD9040 command: 0xFF, data: 0xA5
[ 1.678802] LD9040 command: 0xFF, data: 0xC0
[ 1.683380] LD9040 command: 0xFF, data: 0x00
[ 1.683471] LD9040 command: 0xFF, data: 0xA4
/* gamma_ctrl */
[ 1.691253] LD9040: Sending init_seq: 9
[ 1.691284] LD9040 command: 0xFB, data: 0x02
[ 1.693420] LD9040 command: 0xFF, data: 0x5A
[ 1.720916] LD9040: Successfully initialized
/* ld9040_ldi_enable */
[ 1.720916] LD9040 command: 0x29, data: 0xFE
[ 1.724975] LD9040: Successfully enabled
SimpleFB
To get SimpleFB working add this to omap4-samsung-t1.dts:
/ {
/* ... */
chosen {
#address-cells = <1>;
#size-cells = <1>;
ranges;
bootargs = "console=tty0";
framebuffer@bef00000 {
compatible = "simple-framebuffer";
reg = <0xbef00000 (480 * 800 * 4)>;
width = <480>;
height = <800>;
stride = <(480 * 4)>;
format = "a8r8g8b8";
vci-supply = <&vaux3>;
vdd3-supply = <&v1v8>;
/*
* That's a lot of clocks, but it's necessary due
* to unused clk cleanup & no panel driver yet..
*/
clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 0>,
<&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
<&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
<&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>,
<&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>,
<&l3_div_ck>;
};
};
};
Now disable the following node in omap4.dtsi:
/ {
/* ... */
ocp {
/* ... */
target-module@58000000 {
/* ... */
status = "disabled";
};
};
};
If CONFIG_FB_SIMPLE
is enabled, SimpleFB should work now and you should be able to see kernel logs on the phone.
JTAG
See also
- Mainline kernel fork
- Kernel sources by LineageOS
- Replicant's i9100G wiki
- Seems to have a free software first stage bootloader. Booting worked on stock jelly bean after compiling this x-loader code and flashing it onto the device with odin.
- The modem seems to be the XMM6260
- Accessing UART