|
s5p4418开发板Android4.4-VGA驱动:
在s5p4418开发板Android4.4中现在并不支持,VGA输出,首先硬件上就没有VGA输出口,但是后续的x4418的iBox应该会支持,也会有VGA接口。但是x4418要想VGA输出也不是没有任何办法,这里可以使用一块VGA转接板来做试验,VGA输出其实也是用的LCD输出接口,这对于需要使用VGA输出的就简单了,直接修改
~/x4418-kitkat/linux/bootloader/u-boot-2014.07$ nish.txt的内容:
主要是把 PLL2设置成 780M,以适应 VGA_1024x768。
- //------------------------------------------------------------------------------
- // Copyright (C) 2012 Nexell Co., All Rights Reserved
- // Nexell Co. Proprietary < Confidential
- //
- // NEXELL INFORMS THAT THIS CODE AND INFORMATION IS PROVIDED "AS IS" BASE
- // AND WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING
- // BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS
- // FOR A PARTICULAR PURPOSE.
- //
- // Module : Boot Header
- // File : NSIH.txt
- // Description : system initialize info
- // Author : Firmware Team
- // Version : 0.4
- // History :
- // Hans 2014.01.13 Excel Generator
- // Hans 2013.06.23 Create
- //------------------------------------------------------------------------------
- // This must be synchronized with SecondBoot.h
- //------------------------------------------------------------------------------
- // Nexell System Infomation Header
- //------------------------------------------------------------------------------
- // Vector Code Area
- E59FF018 // 0x000 : MOV PC, ResetV
- E59FF018 // 0x004 : MOV PC, UndefV
- E59FF018 // 0x008 : MOV PC, SWIV
- E59FF018 // 0x00C : MOV PC, PAbortV
- E59FF018 // 0x010 : MOV PC, DAbortV
- E59FF018 // 0x014 : MOV PC, NotUsed
- E59FF018 // 0x018 : MOV PC, IRQV
- E59FF018 // 0x01C : MOV PC, FIQV
-
- FFFF0200 // 0x020 : SRAMBASE + Header
- FFFF0204 // 0x024 : SRAMBASE + Header
- FFFF0208 // 0x028 : SRAMBASE + Header
- FFFF020C // 0x02C : SRAMBASE + Header
- FFFF0210 // 0x030 : SRAMBASE + Header
- FFFF0214 // 0x034 : SRAMBASE + Header
- FFFF0218 // 0x038 : SRAMBASE + Header
- FFFF021C // 0x03C : SRAMBASE + Header
-
- //------------------------------------------------------------------------------
- // Main Bootloader Load Info
- //------------------------------------------------------------------------------
- <font color="#ff0000">00008000 // 0x040 : Device Read Address from 2ndboot Device. </font>
- 00040000 // 0x044 : Load Size for 2ndboot.
- FFFF0000 // 0x048 : Load Address for 2ndboot.
- FFFF0000 // 0x04C : Launch Address for 2ndboot.
-
- 00000000 // 0x050
- 00000000 // 0x054 Boot From USB 24bit position - 0: USB, 1: SPI, 2:NAND, 3: SDMMC, 4: SDFS
- 00000000 // 0x058
-
- //------------------------------------------------------------------------------
- // CLKPWR registers
- //------------------------------------------------------------------------------
- 100D2C02 // 0x05C : PLL0 600MHz P:3 M:300 S:2
- 100D2C01 // 0x060 : PLL1 1200MHz P:3 M:300 S:1
- <font color="#ff0000">100CC301 // 0x064 : PLL2 780MHz P:3 M:195 S:1 K:0</font>
- 100CC801 // 0x068 : PLL3 800MHz P:3 M:200 S:1 K:0
-
- 00000104 // 0x06C : PLL2 SPREAD
- 00000104 // 0x070 : PLL3 SPREAD
-
- 00000A01 // 0x074 : CPU PLL1 /FCLK:1200 /HCLK:200
- 00000208 // 0x078 : BUS PLL0 /BCLK:300 /PCLK:150
- 00208003 // 0x07C : MEM PLL3 /MDCLK:800 /MCLK:800 /MBCLK:400 /MPCLK:200
- 00000208 // 0x080 : GR3D PLL0 /GR3DBCLK:300
- 00000208 // 0x084 : MPEG PLL0 /MPEGBCLK:300 /MPEGPCLK:150
-
- //------------------------------------------------------------------------------
- // MCU-D registers
- //------------------------------------------------------------------------------
- // Mem Controller Configuration
- 03100301 // 0x088 /Chip Num:1 /Chip Row:15 /Bus Width:16 /Chip Col:10
- 004007C0 // 0x08C 256x16x1CS
- 06000B08 // 0x090 /CWL:8 /CL:11 /MR1_AL:0 /MR0_WR:6
-
- // DDR PHY delay timing Configuration
- 0C0C0C0C // 0x094
- 02020202 // 0x098
-
- // DDR AC Timing Configuration
- 0000401B // 0x09C /tPZQ:128000us
- 00000618 // 0x0A0 /Refresh Interval:7.8us
- 6836650F // 0x0A4 /tRFC:260ns(tCK) /tRRD:7.5ns(tCK) /tRP:13.75ns(tCK) /tRCD:13.75ns(tCK) /tRC:48.75ns(tCK) /tRAS:35ns(tCK)
- 3631880B // 0x0A8 /tWTR:7.5ns(tCK) /tWR:15ns(tCK) /tRTP:7.5ns(tCK)
- 41000A26 // 0x0AC /tFAW:40ns(tCK) /tXSR:256ns(tCK) /tXP:24ns(tCK) /tCKE:5ns(tCK)
-
- //------------------------------------------------------------------------------
- // STUB
- //------------------------------------------------------------------------------
- 00000000 // 0x0B0
- 00000000 // 0x0B4
- 00000000 // 0x0B8
- 00000000 // 0x0BC
- 00000000 // 0x0C0
- 00000000 // 0x0C4
- 00000000 // 0x0C8
- 00000000 // 0x0CC
- 00000000 // 0x0D0
- 00000000 // 0x0D4
- 00000000 // 0x0D8
- 00000000 // 0x0DC
- 00000000 // 0x0E0
- 00000000 // 0x0E4
- 00000000 // 0x0E8
- 00000000 // 0x0EC
- 00000000 // 0x0F0
- 00000000 // 0x0F4
- 00000000 // 0x0F8
- 00000000 // 0x0FC
- 00000000 // 0x100
- 00000000 // 0x104
- 00000000 // 0x108
- 00000000 // 0x10C
- 00000000 // 0x110
- 00000000 // 0x114
- 00000000 // 0x118
- 00000000 // 0x11C
- 00000000 // 0x120
- 00000000 // 0x124
- 00000000 // 0x128
- 00000000 // 0x12C
- 00000000 // 0x130
- 00000000 // 0x134
- 00000000 // 0x138
- 00000000 // 0x13C
- 00000000 // 0x140
- 00000000 // 0x144
- 00000000 // 0x148
- 00000000 // 0x14C
- 00000000 // 0x150
- 00000000 // 0x154
- 00000000 // 0x158
- 00000000 // 0x15C
- 00000000 // 0x160
- 00000000 // 0x164
- 00000000 // 0x168
- 00000000 // 0x16C
- 00000000 // 0x170
- 00000000 // 0x174
- 00000000 // 0x178
- 00000000 // 0x17C
- 00000000 // 0x180
- 00000000 // 0x184
- 00000000 // 0x188
- 00000000 // 0x18C
- 00000000 // 0x190
- 00000000 // 0x194
- 00000000 // 0x198
- 00000000 // 0x19C
- 00000000 // 0x1A0
- 00000000 // 0x1A4
- 00000000 // 0x1A8
- 00000000 // 0x1AC
- 00000000 // 0x1B0
- 00000000 // 0x1B4
- 00000000 // 0x1B8
- 00000000 // 0x1BC
- 00000000 // 0x1C0
- 00000000 // 0x1C4
- 00000000 // 0x1C8
- 00000000 // 0x1CC
- 00000000 // 0x1D0
- 00000000 // 0x1D4
- 00000000 // 0x1D8
- 00000000 // 0x1DC
- 00000000 // 0x1E0
- 00000000 // 0x1E4
- 00000000 // 0x1E8
- 00000000 // 0x1EC
- 00000000 // 0x1F0
- 00000000 // 0x1F4
- 00000000 // 0x1F8
-
- //------------------------------------------------------------------------------
- // Signature
- //------------------------------------------------------------------------------
- 4849534E // 0x1FC "NSIH"
复制代码
修改
~/x4418-kitkat/linux/bootloader/u-boot-2014.07/board/s5p4418/x4418/include$ 中的 cfg_main.h 文件
和
~/x4418-kitkat/linux/kernel/kernel-3.4.39/arch/arm/plat-s5p4418/drone2/include$中的 cfg_main.h 文件
两个文件修改一样
添加修改内容如下:
- ...//添加的
- //#define CONFIG_FB_S3C_VS070CXN //同时把这个屏蔽掉。
- #define CONFIG_FB_S3C_VGA_1024x768
- ...
复制代码- ... //添加的
- #ifdef CONFIG_FB_S3C_VGA_1024x768 //lxw 20150701 VGA_1024x768@60Hz 65M test pass
- //PLL2=780M,'.'780/12=65M set in file: nsih.txt
- #define CFG_DISP_PRI_RESOL_WIDTH 1024 // X Resolution
- #define CFG_DISP_PRI_RESOL_HEIGHT 768 // Y Resolution
- #define CFG_DISP_PRI_HSYNC_SYNC_WIDTH 136 //lxw 20150619
- #define CFG_DISP_PRI_HSYNC_BACK_PORCH 160 //lxw 20150619
- #define CFG_DISP_PRI_HSYNC_FRONT_PORCH 24 //lxw 20150619
- #define CFG_DISP_PRI_HSYNC_ACTIVE_HIGH CFALSE
- #define CFG_DISP_PRI_VSYNC_SYNC_WIDTH 6 //lxw 20150619
- #define CFG_DISP_PRI_VSYNC_BACK_PORCH 29 //lxw 20150619
- #define CFG_DISP_PRI_VSYNC_FRONT_PORCH 3 //lxw 20150619
- #define CFG_DISP_PRI_VSYNC_ACTIVE_HIGH CFALSE
- #define CFG_DISP_PRI_CLKGEN0_DIV 12 // even divide
- #endif
- ...
复制代码- ...//修改的
- #define CFG_DISP_PRI_PIXEL_CLOCK 780000000/CFG_DISP_PRI_CLKGEN0_DIV
- ...
复制代码
编译 ubookpak(./mk –u),内核(./mk -k),文件系统(./mk -s),烧写到开发板。通过VGA转接板接到VGA显示器。可以显示。
另外的VGA分辨率:
1028x1024@60Hz_108M:PLL2=756M 分频因子=7,
1920x1080@60Hz_148.5M:PLL2=742.5M 分频因子=5,
对文件nish.txt 和 cfg_main.h的修改可以参照上面的 1024x768分辨率的方法,具体参数参考VGA时序标准。
附:在nish.txt中我们看到这一行:100CC301 // 0x064 : PLL2 780MHz P:3 M:195 S:1 K:0
其实这里有一个PLL2的计算公式:
PLL2=(M+(K/65536))*(tmp/(P*2S), P 、M、S、K这四个由CLKPWR registers决定。
根据用户手册 tmp=24M
如:
PLL2=(195+0/65536)*(24M/(3*21)=780M
|
|