Guest User

EROSQ_V3_Display-Init-How_I_Found_the_Sequence.txt

a guest
Jul 21st, 2024
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.83 KB | Software | 0 0
  1.  
  2.  
  3. Problem:
  4. Surfans F20 (2024 Firmware v3.2 Model) with obviously New Display Module
  5. (Mirrored/Inverted and bad Contrast/Gamma/Blacklevel with orig. Rockbox LCD Init sequence)
  6.  
  7. Solution:
  8. For the TL/DR Quick-Starters -
  9. Rockbox-Patch for ERosQK_v3 LCD-Type 'Galaxycore GC9A01' Style-Init Sequence
  10. Go straight to Chapter 04 .... and don't look back.
  11.  
  12.  
  13.  
  14. Table of contents
  15.  
  16. 00. Eros Q V2.1 Firmware decode: Hunt for LCD Init Sequence
  17. 01. Controller Type with similar Command set found
  18. 02. Transform the LCD Init Sequence for more readability
  19. 03. Recheck my Surface F20 v3.2 - Kernel extraction and Linux-x1000 LCD-Panel-Init Sequence Table Search
  20. 04. Creating a Rockbox Source Patch for ErosQ v3 GC9A01 Style Init
  21. 05. Compile and install with this Patch for a Surfans F20 v3.2 / Hifi Walker H2 v1.8
  22. 06. Result - Success
  23.  
  24.  
  25.  
  26. 00. Eros Q V2.1 Firmware decode: Hunt for LCD Init Sequence
  27. --------------------------------------------------------------
  28.  
  29. Found following Link: http://www.eroshifi.com/download/firmware/122.html
  30.  
  31. (Deepl.com English Translation of the Chinese Stuff...)
  32. EROS Q (Port C) Upgrade Firmware V2.1 Description .................. April 9, 2024 (latest)
  33.  
  34. This upgrade firmware is for EROS Q hifi player products with tpye c interface.
  35. This firmware is used to restore EROS Q display irregularity (reverse display) caused by flashing the wrong system firmware
  36.  
  37. This firmware is only for recovery use, if there is no problem of brushing wrong firmware, no need to use
  38. (* This firmware is the factory default V2.1 version firmware) EROS Q (c-port) currently has two versions
  39. of firmware: V2.0 and V2.1 version, the two versions to adapt to different batches of products optimized
  40. for the screen hardware driver launched (can not be universal interchangeable, the two versions of the
  41. firmware function is identical. V2.1 is not an upgraded and optimized version of the function)
  42.  
  43. Please download this firmware file, copy the update.upt file to the root directory of the TF card, and
  44. make sure that there is no other version of the firmware file in the card.
  45.  
  46. Please follow the upgrade method described in the manual and select firmware upgrade in the product settings
  47.  
  48.  
  49. Click to download !!! -> There is followig Firmware-File
  50. EROS Q (c口)_V2.1_20231209固件.zip
  51.  
  52. (cd /tmp)
  53. unzip EROS\ Q\ (c口)_V2.1_20231209固件.zip
  54. mv update.upt update.iso
  55. Extract the 'uboot.bin' (to /tmp etc.)
  56. Convert in a Hex-Listing: od -Ax -x uboot.bin >uboot.hex
  57. Edit the File z.B.: kate uboot.hex
  58. Search for "2c2c 2c2c" or "0000 0001 0000"
  59.  
  60. And found: A Linux-x1000 LCD-Panel-Init Sequence Table at 0x52da4 !
  61.  
  62. 052da0 2c2c 2c2c 0000 0000 00fe 0000 0000 0000
  63. 052db0 00ef 0000 0000 0000 0036 0000 0001 0000
  64. 052dc0 0090 0000 0000 0000 003a 0000 0001 0000
  65. 052dd0 0066 0000 0000 0000 0084 0000 0001 0000
  66. 052de0 0004 0000 0000 0000 0086 0000 0001 0000
  67. 052df0 00fb 0000 0000 0000 0087 0000 0001 0000
  68. 052e00 0079 0000 0000 0000 0089 0000 0001 0000
  69. 052e10 000b 0000 0000 0000 008a 0000 0001 0000
  70. 052e20 0020 0000 0000 0000 008b 0000 0001 0000
  71. 052e30 0080 0000 0000 0000 008d 0000 0001 0000
  72. 052e40 003b 0000 0000 0000 008e 0000 0001 0000
  73. 052e50 00cf 0000 0000 0000 00ec 0000 0001 0000
  74. 052e60 0033 0000 0001 0000 0002 0000 0001 0000
  75. 052e70 004c 0000 0000 0000 0098 0000 0001 0000
  76. 052e80 003e 0000 0000 0000 009c 0000 0001 0000
  77. 052e90 004b 0000 0000 0000 0099 0000 0001 0000
  78. 052ea0 003e 0000 0000 0000 009d 0000 0001 0000
  79. 052eb0 004b 0000 0000 0000 009b 0000 0001 0000
  80. 052ec0 0055 0000 0000 0000 00e8 0000 0001 0000
  81. 052ed0 0011 0000 0001 0000 0000 0000 0000 0000
  82. 052ee0 00ff 0000 0001 0000 0062 0000 0000 0000
  83. 052ef0 00c3 0000 0001 0000 0020 0000 0000 0000
  84. 052f00 00c4 0000 0001 0000 0003 0000 0000 0000
  85. 052f10 00c9 0000 0001 0000 002a 0000 0000 0000
  86. 052f20 00f0 0000 0001 0000 004a 0000 0001 0000
  87. 052f30 0010 0000 0001 0000 000a 0000 0001 0000
  88. 052f40 000a 0000 0001 0000 0026 0000 0001 0000
  89. 052f50 0039 0000 0000 0000 00f2 0000 0001 0000
  90. 052f60 004a 0000 0001 0000 0010 0000 0001 0000
  91. 052f70 000a 0000 0001 0000 000a 0000 0001 0000
  92. 052f80 0026 0000 0001 0000 0039 0000 0000 0000
  93. 052f90 00f1 0000 0001 0000 0050 0000 0001 0000
  94. 052fa0 008f 0000 0001 0000 00af 0000 0001 0000
  95. 052fb0 003b 0000 0001 0000 003f 0000 0001 0000
  96. 052fc0 007f 0000 0000 0000 00f3 0000 0001 0000
  97. 052fd0 0050 0000 0001 0000 008f 0000 0001 0000
  98. 052fe0 00af 0000 0001 0000 003b 0000 0001 0000
  99. 052ff0 003f 0000 0001 0000 007f 0000 0000 0000
  100. 053000 00ba 0000 0001 0000 000a 0000 0000 0000
  101. 053010 0035 0000 0001 0000 0000 0000 0000 0000
  102. 053020 0021 0000 0000 0000 00fe 0000 0000 0000
  103. 053030 00ee 0000 0000 0000 0011 0000 0002 0000
  104. 053040 d4c0 0001 0000 0000 0029 0000 0002 0000
  105. 053050 4e20 0000 0000 0000 002c 0000 ffff ffff
  106.  
  107.  
  108.  
  109.  
  110. 01. Controller Type with similar Command set found
  111. --------------------------------------------------
  112.  
  113. Google Search 'lcd controller 0xfe 0xef 0xec 0xba' (or so) pointed u.a. to GC9A01 Type
  114. That thingy is vastly similar the ErosQ_V3 Init Commands (0x6x 0x8x 0x9x Commands are undocumented)
  115.  
  116. https://espruino.microcosm.app/api/v1/files/9dc1b976d621a2ab3854312cce862c4a9a50dc1b.html#GC9A01
  117. https://www.google.com/search?q=gc9a01+datasheet
  118.  
  119.  
  120.  
  121.  
  122. 02. Transform the LCD Init Sequence for more readability
  123. ---------------------------------------------------------
  124.  
  125. 0000 0000 xxcc xxxx – Command
  126. 0001 0000 xxdd xxxx – Command Data
  127. 0002 0000 tttt tttt – Delay uS
  128. ffff ffff – End of List
  129.  
  130.  
  131. 0000 0000 00fe 0000 <Inter Register Enable1>
  132. 0000 0000 00ef 0000 <Inter Register Enable2>
  133.  
  134. 0000 0000 0036 0000 0001 0000 0090 0000 <Memory Access Control>
  135. 0000 0000 003a 0000 0001 0000 0066 0000 <Pixel Format Set>
  136.  
  137. 0000 0000 0084 0000 0001 0000 0004 0000 (undocumented)
  138. 0000 0000 0086 0000 0001 0000 00fb 0000
  139. 0000 0000 0087 0000 0001 0000 0079 0000
  140. 0000 0000 0089 0000 0001 0000 000b 0000
  141. 0000 0000 008a 0000 0001 0000 0020 0000
  142. 0000 0000 008b 0000 0001 0000 0080 0000
  143. 0000 0000 008d 0000 0001 0000 003b 0000
  144. 0000 0000 008e 0000 0001 0000 00cf 0000
  145.  
  146. 0000 0000 00ec 0000 <Charge Pump Frequent Control>
  147. 0001 0000 0033 0000 0001 0000 0002 0000 0001 0000 004c 0000
  148.  
  149. 0000 0000 0098 0000 0001 0000 003e 0000 (undocumented)
  150. 0000 0000 009c 0000 0001 0000 004b 0000
  151. 0000 0000 0099 0000 0001 0000 003e 0000
  152. 0000 0000 009d 0000 0001 0000 004b 0000
  153. 0000 0000 009b 0000 0001 0000 0055 0000
  154.  
  155. 0000 0000 00e8 0000 <Frame Rate>
  156. 0001 0000 0011 0000 0001 0000 0000 0000
  157.  
  158. 0000 0000 00ff 0000 0001 0000 0062 0000 (undocumented)
  159. 0000 0000 00c3 0000 0001 0000 0020 0000 <Vreg1a voltage Control>
  160. 0000 0000 00c4 0000 0001 0000 0003 0000 <Vreg1b voltage Control>
  161. 0000 0000 00c9 0000 0001 0000 002a 0000 <Vreg2a voltage Control>
  162.  
  163. 0000 0000 00f0 0000 <Gamma1>
  164. 0001 0000 004a 0000 0001 0000 0010 0000 0001 0000 000a 0000
  165. 0001 0000 000a 0000 0001 0000 0026 0000 0001 0000 0039 0000
  166. 0000 0000 00f2 0000 <Gamma3>
  167. 0001 0000 004a 0000 0001 0000 0010 0000 0001 0000 000a 0000
  168. 0001 0000 000a 0000 0001 0000 0026 0000 0001 0000 0039 0000
  169. 0000 0000 00f1 0000 <Gamma2>
  170. 0001 0000 0050 0000 0001 0000 008f 0000 0001 0000 00af 0000
  171. 0001 0000 003b 0000 0001 0000 003f 0000 0001 0000 007f 0000
  172. 0000 0000 00f3 0000 <Gamma4>
  173. 0001 0000 0050 0000 0001 0000 008f 0000 0001 0000 00af 0000
  174. 0001 0000 003b 0000 0001 0000 003f 0000 0001 0000 007f 0000
  175.  
  176. 0000 0000 00ba 0000 0001 0000 000a 0000 <TE Control>
  177. 0000 0000 0035 0000 0001 0000 0000 0000 <Tearing Effect Line ON>
  178. 0000 0000 0021 0000 <Invert>
  179.  
  180. 0000 0000 00fe 0000 <Inter Register Enable1>
  181. 0000 0000 00ee 0000 (undocumented)
  182.  
  183. 0000 0000 0011 0000 0002 0000 d4c0 0001 <Exit Sleep + Wait 120mS>
  184. 0000 0000 0029 0000 0002 0000 4e20 0000 <Display On + Wait 20mS>
  185.  
  186. ffff ffff
  187.  
  188.  
  189.  
  190.  
  191. 03. Recheck my Surface F20 v3.2 - Kernel extraction and Linux-x1000 LCD-Panel-Init Sequence Table Search
  192. ---------------------------------------------------------------------------------------------------------
  193.  
  194. Compile and Run a modified Rockbox-ErosQ Bootloader (Memory Access Commands 0x36 0x90 and Invert 0x21)
  195. via jztool on the Surfans F20 v3.2
  196.  
  197. Backup erosqnative-boot.bin, of_player.img, flash.img, flash_info.txt flash_onfi_info.txt
  198. on a SD Card via jztool Ram-Bootloader...
  199.  
  200. Copy the of_player.img to /tmp
  201. Strip u-Boot header: tail -c+65 < /tmp/of_player.img > out.gz
  202. Its an gzipped Blob: gzip -cd out.gz >out.bin (trailing Garbage ignored)
  203. Convert in a Hex-Listing: od -Ax -x out.bin >out.hex
  204. Edit the File z.B.: kate out.hex
  205. Search for "2c2c 2c2c" or "0000 0001 0000"
  206.  
  207. And found: A Linux-x1000 LCD-Panel-Init Sequence Table at 0x4a3f18 !
  208. !!! Identical to the LCD-Init sequence of the Eros Q V2.1 Firmware !!!
  209.  
  210. 4a3f14 2c2c 2c2c 0000 0000 00fe 0000 0000 0000
  211. 4a3f24 00ef 0000 0000 0000 0036 0000 0001 0000
  212. 4a3f34 0090 0000 0000 0000 003a 0000 0001 0000
  213. 4a3f44 0066 0000 0000 0000 0084 0000 0001 0000
  214. 4a3f54 0004 0000 0000 0000 0086 0000 0001 0000
  215. 4a3f64 00fb 0000 0000 0000 0087 0000 0001 0000
  216. 4a3f74 0079 0000 0000 0000 0089 0000 0001 0000
  217. 4a3f84 000b 0000 0000 0000 008a 0000 0001 0000
  218. 4a3f94 0020 0000 0000 0000 008b 0000 0001 0000
  219. 4a3fa4 0080 0000 0000 0000 008d 0000 0001 0000
  220. 4a3fb4 003b 0000 0000 0000 008e 0000 0001 0000
  221. 4a3fc4 00cf 0000 0000 0000 00ec 0000 0001 0000
  222. 4a3fd4 0033 0000 0001 0000 0002 0000 0001 0000
  223. 4a3fe4 004c 0000 0000 0000 0098 0000 0001 0000
  224. 4a3ff4 003e 0000 0000 0000 009c 0000 0001 0000
  225. 4a4004 004b 0000 0000 0000 0099 0000 0001 0000
  226. 4a4014 003e 0000 0000 0000 009d 0000 0001 0000
  227. 4a4024 004b 0000 0000 0000 009b 0000 0001 0000
  228. 4a4034 0055 0000 0000 0000 00e8 0000 0001 0000
  229. 4a4044 0011 0000 0001 0000 0000 0000 0000 0000
  230. 4a4054 00ff 0000 0001 0000 0062 0000 0000 0000
  231. 4a4064 00c3 0000 0001 0000 0020 0000 0000 0000
  232. 4a4074 00c4 0000 0001 0000 0003 0000 0000 0000
  233. 4a4084 00c9 0000 0001 0000 002a 0000 0000 0000
  234. 4a4094 00f0 0000 0001 0000 004a 0000 0001 0000
  235. 4a40a4 0010 0000 0001 0000 000a 0000 0001 0000
  236. 4a40b4 000a 0000 0001 0000 0026 0000 0001 0000
  237. 4a40c4 0039 0000 0000 0000 00f2 0000 0001 0000
  238. 4a40d4 004a 0000 0001 0000 0010 0000 0001 0000
  239. 4a40e4 000a 0000 0001 0000 000a 0000 0001 0000
  240. 4a40f4 0026 0000 0001 0000 0039 0000 0000 0000
  241. 4a4104 00f1 0000 0001 0000 0050 0000 0001 0000
  242. 4a4114 008f 0000 0001 0000 00af 0000 0001 0000
  243. 4a4124 003b 0000 0001 0000 003f 0000 0001 0000
  244. 4a4134 007f 0000 0000 0000 00f3 0000 0001 0000
  245. 4a4144 0050 0000 0001 0000 008f 0000 0001 0000
  246. 4a4154 00af 0000 0001 0000 003b 0000 0001 0000
  247. 4a4164 003f 0000 0001 0000 007f 0000 0000 0000
  248. 4a4174 00ba 0000 0001 0000 000a 0000 0000 0000
  249. 4a4184 0035 0000 0001 0000 0000 0000 0000 0000
  250. 4a4194 0021 0000 0000 0000 00fe 0000 0000 0000
  251. 4a41a4 00ee 0000 0000 0000 0011 0000 0002 0000
  252. 4a41b4 d4c0 0001 0000 0000 0029 0000 0002 0000
  253. 4a41c4 4e20 0000 0000 0000 002c 0000 0000 0000
  254.  
  255. (p.s. same Sequence found in an Hifi Walker H2 v1.8 of_player.img)
  256.  
  257.  
  258.  
  259. 04. Creating a Rockbox Source Patch for ErosQ v3 GC9A01 Style Init
  260. -------------------------------------------------------------------
  261.  
  262. Pastebin-Link: <<< https://pastebin.com/X5ha2JYd >>>
  263.  
  264.  
  265.  
  266.  
  267. 05. Compile and install with this Patch for a Surfans F20 v3.2 / Hifi Walker H2 v1.8
  268. ------------------------------------------------------------------------------------
  269.  
  270. Build a Bootloader for ErosQK_v3 Model (Device 248)
  271. Build a Rockbox.zip for ErosQK_v3 Model (Device 248)
  272.  
  273. Install native Bootloader for v3 on a ErosQK_v3 Device normally
  274. Install native Rockbox.zip v3 on a SD-Card
  275.  
  276.  
  277.  
  278.  
  279. 06. Result - Success:
  280. ---------------------
  281.  
  282. The Display Color Format and Orientation are OK
  283. The Gamme Curve is vastly better, No more washed out
  284. Colors/Contrast/Blacklevel on ErosQK_v3 with GC9A01 Display.
  285.  
  286. When boot to original-Firmware with the v3 bootloader no more Flicker and
  287. Wrong Contrast/Gamma at first Display-On.
  288. (Original-Firmware semms to runs always the Complete LCD-Init Sequence
  289. at Display-Wakeup after Sleep)
  290.  
Advertisement
Add Comment
Please, Sign In to add comment