九鼎创展论坛
标题:
九鼎创展s5p4418开发板Android4.4-VGA驱动
[打印本页]
作者:
luxingwu
时间:
2015-7-11 11:02
标题:
九鼎创展s5p4418开发板Android4.4-VGA驱动
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
欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/)
Powered by Discuz! X3.2