読者です 読者をやめる 読者になる 読者になる

GT-I9100用のURAT JIGを作った

GT-I9100

これまでのあらすじ

f:id:moguriso:20130120201321j:plain
kernel領域をubootの書き換えて、Linux Kernelが起動するところまで持っていきました。が、ペンギンさんから進みません。

UARTを引き出すJIGがあるそうな

ぐぐってみると、UARTを採取できるJIGが作れるそうです。
https://wiki.mozilla.org/DHylands_SGS2_SerialAdapter

JIGでググったりヤフオクで調べると、301kΩの抵抗で強制ダウンロードモードに入るJIGは売っているのですが、UARTに対応したJIGは流石に売っていませんでした。諦め気味でしたが、↑の参考ページを見ると何点かハンダ付けするだけでなんとかなりそうと思ったのでやって見ました。

FT232RL搭載小型USB-シリアルアダプタ 3.3V

FT232RL搭載小型USB-シリアルアダプタ 3.3V



あと、micro USBの変換基板。しめて2000円ちょっとくらいでした。

あせんぶる

ともあれ、ハンダ付けなんて中学校の技術の時間からやっていないので練習しました。
f:id:moguriso:20130124023054j:plain
苦労の後。トータル3時間くらいかかってますが、この練習に半分以上の時間を使ったような。。。

とりあえず動いた

f:id:moguriso:20130124022852j:plain

Welcome to Samsung Primitive Bootloader.
build time: Mar 16 2012 17:52:29
current time: 44/0/0 3f:1f:1

[set_mmc_ocr] Sector Mode
[hsmmc_init] MMC card is detected
Product Name : V3U00M
<display_card_info:1009> ext_csd
<display_card_info:1011>card_size: 15028
 Total Card Size: 15029 MByte

mmc_init: card initialization completed!
pbl found bootable sbl in #49152.
jump to sbl 0x4d400000.

Secondary Bootloader v3.1 version.
Copyright (C) 2011 System S/W Group. Samsung Electronics Co., Ltd.
Board: C1 REV 02 / Mar 16 2012 17:52:36
current time: 44/0/0 3f:1f:2

booting code=0x3f3f3f3f
[set_mmc_ocr] Sector Mode
[hsmmc_init] MMC card is detected
Product Name : V3U00M
CID:150100 56335530 304d0e5f c23d919f
<display_card_info:1046> ext_csd
<display_card_info:1048>card_size: 15028
 Total Card Size: 15029 MByte

 Total Sector Count: 30777344

MoviNand Initialization Complete!
===== PARTITION INFORMATION =====
 ID         : GANG (0x0)
 DEVICE     : MMC
 FIRST UNIT : 0
 NO. UNITS  : 0
=================================
 ID         : BOOT (0x1)
 DEVICE     : MMC
 FIRST UNIT : 0
 NO. UNITS  : 0
=================================
 ID         : EFS (0x4)
 DEVICE     : MMC
 FIRST UNIT : 8192
 NO. UNITS  : 40960
=================================
 ID         : SBL1 (0x2)
 DEVICE     : MMC
 FIRST UNIT : 49152
 NO. UNITS  : 2560
=================================
 ID         : SBL2 (0x3)
 DEVICE     : MMC
 FIRST UNIT : 53248
 NO. UNITS  : 2560
=================================
 ID         : PARAM (0x5)
 DEVICE     : MMC
 FIRST UNIT : 57344
 NO. UNITS  : 16384
=================================
 ID         : KERNEL (0x6)
 DEVICE     : MMC
 FIRST UNIT : 73728
 NO. UNITS  : 16384
=================================
 ID         : RECOVERY (0x7)
 DEVICE     : MMC
 FIRST UNIT : 90112
 NO. UNITS  : 16384
=================================
 ID         : CACHE (0x8)
 DEVICE     : MMC
 FIRST UNIT : 106496
 NO. UNITS  : 204800
=================================
 ID         : MODEM (0x9)
 DEVICE     : MMC
 FIRST UNIT : 311296
 NO. UNITS  : 32768
=================================
 ID         : FACTORYFS (0xa)
 DEVICE     : MMC
 FIRST UNIT : 344064
 NO. UNITS  : 1048576
=================================
 ID         : DATAFS (0xb)
 DEVICE     : MMC
 FIRST UNIT : 1392640
 NO. UNITS  : 4194304
=================================
 ID         : UMS (0xc)
 DEVICE     : MMC
 FIRST UNIT : 5586944
 NO. UNITS  : 24133632
=================================
 ID         : HIDDEN (0xd)
 DEVICE     : MMC
 FIRST UNIT : 29720576
 NO. UNITS  : 1048576
=================================
loke_init: j4fs_open..success
<start_checksum:1033>CHECKSUM_HEADER_SECTOR :42
<start_checksum:1035>offset:42, size:1024
Not Need Movinand Checksum
load_lfs_parameters valid magic code and version.
switch_sel_str='1'
load_debug_level: read debug level successfully(0x574f4c44)...LOW
init_ddi_data: usable ddi data.
fuelgauge_implementaion - start
fuelgauge_implementaion - end
fuel_gauge_get_version: [1]=0, [0]=92
init_fuel_gauge: vcell = 3803 mV, vfocv = 3841 mV, soc = 56 
microusb_get_attached_device: STATUS1:0x3c, 2:0x0
microusb_get_attached_device: STATUS1:0x3c, 2:0x0
5629 = (378300 - 346818)*17883/100000
[4] 384040 = (5629 * 100000) / 28706 + 364431
init_microusb_ic: MUIC: CONTROL1:0x1b
init_microusb_ic: MUIC: CONTROL1:0x1b
init_microusb_ic: MUIC: CONTROL2:0x3a
init_microusb_ic: MUIC: CONTROL2:0x3a
reading nps status file is successfully!.
nps status=0x504d4f43
PMIC_IRQSRC  = 0x0 
PMIC_IRQ1    = 0x0 
PMIC_IRQ2    = 0x1f 
PMIC_IRQ3    = 0x0 
PMIC_IRQ4    = 0x10 
PMIC_STATUS1 = 0x0 
PMIC_STATUS2 = 0x17 
PMIC_STATUS3 = 0x0 
PMIC_STATUS4 = 0x0 
bootloader base address=0x
4d400000
LPDDR0 1st. cached=0x40000000, size=0xe400000
LPDDR0 non-cached=0x4e400000, size=0xa00000
LPDDR0 2nd. cached=0x4ee00000, size=0x1200000
RST_STAT = 0x10000
get_hwrev() = 14
board_process_platform: MAGIC 3f3f3f3f at 40000000!
scan_keypad_level: pressed key is 0
scan_keypad_level: pressed key is 3
scan_keypad_level: pressed key is 0
scan_keypad_level: pressed key is 3
scan_keypad_level: pressed key is 0
scan_keypad_level: pressed key is 3
microusb_get_attached_device: STATUS1:0x3c, 2:0x0
microusb_get_attached_device: STATUS1:0x3c, 2:0x0
microusb_get_attached_device: STATUS1:0x3c, 2:0x0
microusb_get_attached_device: STATUS1:0x3c, 2:0x0
hw_pm_status: jig_status = 1, chg_status = 0
s5p_set_high_clk: ARM Clock = 800MHz.
.......kernel is non signed binary.
DISPLAY_PATH_SEL[MDNIE 0x1]is on
div:2, FB_SOURCE_CLOCK:667000000, FB_PIXEL_CLOCK:25067520
MDNIE setting Init start!!
vsync interrupt is off
video interrupt is off
[fb0] turn on                        
MDNIE setting Init end!!  

Autoboot (0 seconds) in progress, press a
boot_kernel: debug level low!
checkbit: find RECOVERY
checkbit (0)
.......kernel is non signed binary.
ATAG_CORE: 5 54410001 0 0 0
MEMCONFIG: 20e01323 20e01323
ATAG_MEM: 4 54410002 10000000 40000000
ATAG_MEM: 4 54410002 10000000 50000000
ATAG_MEM: 4 54410002 10000000 60000000
ATAG_MEM: 4 54410002 10000000 70000000
ATAG_SERIAL: 4 54410006 c23d919f 304d0e5f
ATAG_REVISION: 3 54410007 e
hardware_ID : 000e5fc23d919f
ATAG_CMDLINE: 40 54410009 'loglevel=4 console=ram androidboot.serialno=000e5fc23d919f sec_debug.enable=0 sec_'
ATAG_NONE: 0 0

Starting kernel at 0x40008000...

ただ、ubootに差し替えたり、kernelをlinuxのにすると出力されてくれません。*1どうもttySAC2じゃ無いのかもしれません。ともあれ、素人の工作でも動いたのが嬉しくて書いております(ぉ
ハード的におかしいんじゃないなら何とかなるでしょう。。。


週末展示会なので、土曜に会社でやることにして寝ます。 orz

*1:余談ですが、ISW11SCでは普通のAndroidでもUART出力されませんでした。対策されてるのか、HWが違うのか