MTKRomloader » History » Version 3
steve-m, 02/19/2016 10:48 PM
1 | 1 | steve-m | [[PageOutline]] |
---|---|---|---|
2 | |||
3 | = MediaTek Romloader = |
||
4 | |||
5 | 3 | steve-m | Just like the [wiki:Hardware/CalypsoRomloader], the the MTK romloader is a serial bootstrap-loader inside the Digital Baseband Processors manufactured by MediaTek. |
6 | 2 | steve-m | It is executed when the power button of the phone is pressed, and listens on the UART for an 0xa0 activation byte. |
7 | 1 | steve-m | |
8 | The loader can read/write from/to all registers and memory addresses of the DBB, which is used extensively by the host software. |
||
9 | Most of the initialization logic is therefore in the application on the host, which uploads the code to the phone. |
||
10 | 3 | steve-m | |
11 | It is stored in a ROM which is always mapped to 0x48000000 of the ARM memory space in the MT622x. Therefore, only one instruction is mapped to the reset vector at 0x0 when powering on: |
||
12 | |||
13 | {{{ |
||
14 | ROM:00000000 LDR PC, =0x48000000 |
||
15 | }}} |
||
16 | |||
17 | Osmocon has working support for it (-m mtk), but it uses the default 19200 baud for uploading the image to the SRAM. |
||
18 | For higher loading baudrates the proprietary MTK windows flashing tool uses several register writes to enable the UART Autobaud mode, and sends an autobaud-sample. |
||
19 | Just setting the baudrate the normal way would result in a deadlock, since when setting LCR[7] to 1 maps the baud divider registers to the RX and TX holding registers. |