via vab-600 springboard linux bsp development guide

62
1.3-10292013-142500 VAB-600 Linux BSP v1.0.3 Development Guide v1.4

Upload: gergely-imreh

Post on 12-May-2015

744 views

Category:

Software


7 download

DESCRIPTION

Linux development guide for the VIA VAB-600 Springboard hardware. Includes kernel compilation, booting, hardware, debugging, GPIO....

TRANSCRIPT

Page 1: VIA VAB-600 Springboard Linux BSP Development Guide

1.3-10292013-142500

VAB-600 Linux BSP v1.0.3

Development Guide

v1.4

Page 2: VIA VAB-600 Springboard Linux BSP Development Guide

Copyright

Copyright © 2013 VIA Technologies Incorporated. All rights reserved.

No part of this document may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any

language, in any form or by any means, electronic, mechanical, magnetic, optical, chemical, manual or otherwise without the

prior written permission of VIA Technologies, Incorporated.

Trademarks

All brands, product names, company names, trademarks and service marks are the property of their respective holders.

Disclaimer

VIA Technologies makes no warranties, implied or otherwise, in regard to this document and to the products described in this

document. The information provided in this document is believed to be accurate and reliable as of the publication date of this

document. However, VIA Technologies assumes no responsibility for the use or misuse of the information in this document

and for any patent infringements that may arise from the use of this document. The information and product specifications

within this document are subject to change at any time, without notice and without obligation to notify any person of such

change.

VIA Technologies, Inc. reserves the right the make changes to the products described in this manual at any time without prior

notice.

Page 3: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

iii

Revision History

Version Date Remarks

1.0 05/08/2013 Initial external release

1.1 05/21/2013 Added TTL panel and modified the part of LVDS panel

1.1 05/23/2013 Added the description of the patches

1.2 08/06/2013

Revised TTL panel and single channel LVDS panel

Added dual channel LVDS panel

Added the description of networking patch

Added PWM frequency control limitation

1.3 10/03/2013

Added the description of GPIO control

Added the description of external RTC control

Added the description of watch dog control

1.4 10/28/2013

Adjust some version errors

Modify external RTC registers descriptions

Add GPIO test example

Page 4: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

iv

Table of Contents

1. Introduction ........................................................................................ 1

1.1. Overview ...................................................................................... 1

1.2. Package content .......................................................................... 1

2. Setup Environment ............................................................................ 3

2.1. System requirement .................................................................... 3

2.2. Setup cross-compiling environment ............................................ 3

3. Building BSP ..................................................................................... 6

3.1. Building kernel ............................................................................. 6

3.1.1. Setup the kernel source .......................................................... 6

3.1.2. Build 3.0.8 kernel source ........................................................ 6

4. Making System Booting Media ........................................................... 8

4.1. Set booting media ....................................................................... 8

4.1.1. Prepare Debian 7 file system .................................................. 8

4.1.2. Boot from eMMC ..................................................................... 9

4.1.3. Boot from SD card ................................................................. 10

4.1.3.1. Update uboot parameters ............................................. 10

4.1.3.2. Format the SD card ...................................................... 11

4.1.3.3. Install kernel and root filesystem to SD card ................ 11

4.1.3.4. Download the fully Debian7 file system ....................... 12

4.2. Install graphics and multimedia package .................................. 15

4.2.1. Prerequisites ......................................................................... 15

4.2.2. Install graphics driver package ............................................. 15

4.2.3. Install Multimedia package .................................................... 17

Page 5: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

v

5. Functionality .................................................................................... 19

5.1. Light LVDS panel (TP070C01) .................................................. 19

5.2. Light TTL panel (LW700AT9901) .............................................. 21

5.3. Light Dual Channel LVDS panel (AUO G220SVN01.0) ............ 23

5.4. Light HDMI monitor ................................................................... 26

5.5. Switch HDMI mode by xrandr tool ............................................. 28

5.6. Change Color Depth/bpp. .......................................................... 29

5.7. Multimedia local playback ......................................................... 30

5.8. Audio adjustment ....................................................................... 30

5.9. GPIO control .............................................................................. 33

5.9.1. GPIO hardware design ......................................................... 33

5.9.2. devmem2 utility ..................................................................... 34

5.9.2.1. devmem2 utility read and write..................................... 35

5.9.3. Test GPIO input and output .................................................. 37

5.9.3.1. Test GPIO connection .................................................. 37

5.9.3.2. Set GPIO 20-23 to change GPIO 24-27 ....................... 37

5.9.3.3. Set GPIO 24-27 to change GPIO 20-23 ....................... 39

5.10. External RTC control ................................................................. 41

5.10.1. External RTC hardware design ........................................ 41

5.10.2. Display external RTC timekeeper registers ...................... 42

5.10.3. Set date and time to external RTC ................................... 42

5.10.4. Test auto power-on control of external RTC..................... 42

5.10.5. Disable alarm2 and clear alarm2 status of external RTC . 44

5.11. Watch dog control ..................................................................... 45

5.11.1. Enable the watch dog ....................................................... 45

5.11.2. Set the watch dog timer .................................................... 46

5.11.3. Get the watch dog timer.................................................... 47

Page 6: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

vi

5.11.4. Disable the watch dog ...................................................... 48

6. Debug Message .............................................................................. 49

6.1. Enter U-Boot environment ......................................................... 49

6.2. Default u-boot parameters ......................................................... 50

Appendix A. Q&A .................................................................................... 51

Appendix B. Limitation ............................................................................ 52

Appendix C. GPIO registers .................................................................... 53

GPIO Input Data Registers .................................................................. 53

GPIO Enable Registers ....................................................................... 53

GPIO Output Enable Registers ........................................................... 54

GPIO Output Data Registers ............................................................... 54

GPIO Pull-up/Pull-down Enable Registers .......................................... 54

GPIO Pull-up/Pull-down Control Registers .......................................... 55

GPIO Interrupt Request Status Registers ........................................... 55

Page 7: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

1

1. Introduction

1.1. Overview

This document describes how to run Debian 7.0 OS on VIA VAB-600

platform, and evaluates thin client functions.

1.2. Package content

The evaluation package includes:

1. Kernel source:

“/BSP/Kernel_Source_Codes/

VAB-600_Linux_BSP_Kernel_Source_0.03.tar.gz”,

“/BSP/Frame_Buffer_Driver/ANDROID_3.0.8_VE“

2. Toolchain: “/BSP/arm_201103_gcc4.5.2.tgz“

3. Kernel image: “/EVK/Kernel_Image/uzImage.bin”

4. Graphics driver package: locates in “/EVK/BSP/Graphics_Driver”folder

5. Multimedia package: locates in“/EVK/BSP/Multimedia”folder

6. Other file system patches:

locates in“/EVK/BSP/Others”folder

7. Uboot update package:“/EVK/Update_Package”

Page 8: VIA VAB-600 Springboard Linux BSP Development Guide
Page 9: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

3

2. Setup Environment

2.1. System requirement

Host PC:

SD Card reader: SDHC compliant

Operation System: Ubuntu 10.04 x64 version

Target board:

VAB-600 platform (with 4G EMMC)

SD Card: 4GB SDHC (at least). VAB-600 now supports up to class 6

SDHC.

2.2. Setup cross-compiling environment

Get root permission

If you are not login as a root, use “su” command to get the root permission.

Setup the Tool Chain

Please reference 4.2.1 to connect to network. Then perform the packages

update.

apt-get update

Page 10: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

4

Install the build essential packages.

apt-get install git-core gnupg flex bison gperf build-essential \

zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \

x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \

libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \

libxml2-utils xsltproc

Install the uboot mkimage tool.

apt-get install uboot-mkimage

Confirm if the GNU C library version is 2.11 or newer.

# ldd -version

ldd (Ubuntu EGLIBC 2.1.11-0ubuntu7.11) 2.11.1

Copyright (C) 2009 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR

PURPOSE.

Written by Roland McGrath and Ulrich Drepper.

Unzip the Tool Chain to “/usr/local/arm/” (If your system doesn’t exist this

folder previously, you must create manually with “# mkdir /usr/local/arm”)

# tar -zxvf arm_201103_gcc4.5.2.tgz -C /usr/local/arm/

As Figure 1 shows, the cross compiler is located at

“/usr/local/arm/arm_201103_gcc4.5.2/”

Page 11: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

5

Figure 1. The Toolchain for VAB-600

Export the Tool Chain to system PATH.

# export PATH=/usr/local/arm/arm_201103_gcc4.5.2/mybin/:$PATH

Next, alias the Tool Chain for best floats calculation.

# alias arm_1103_le-as='arm_1103_le-as -mcpu=cortex-a9 -mfpu=neon -mfloat-

abi=softfp'

# alias arm_1103_le-c++='arm_1103_le-c++ -mcpu=cortex-a9 -mfpu=neon -mfloat-

abi=softfp'

# alias arm_1103_le-cpp='arm_1103_le-cpp -mcpu=cortex-a9 -mfpu=neon -mfloat-

abi=softfp'

# alias arm_1103_le-g++='arm_1103_le-g++ -mcpu=cortex-a9 -mfpu=neon -mfloat-

abi=softfp'

# alias arm_1103_le-gcc='arm_1103_le-gcc -mcpu=cortex-a9 -mfpu=neon -mfloat-

abi=softfp'

# alias arm_1103_le-gcc-4.5.2='arm_1103_le-gcc-4.5.2 -mcpu=cortex-a9 -

mfpu=neon -mfloat-abi=softfp'

Page 12: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

6

3. Building BSP

3.1. Building kernel

This section will tell you how to build kernel image from source code.

To use BSP package without spending too much time on building source

code, there is a pre-build kernel image located under “\EVK\Kernel_Image\”.

3.1.1. Setup the kernel source

Unzip the Kernel source

# tar -zxvf Linux_BSP_Kernel_Source_0.03.tar.gz

Then the kernel source will be located at

“Linux_BSP_Kernel_Source_0.02.tar.gz”. The“ANDROID_3.0.8” is the

source code.

Copy all the files under the sub-folder

“\BSP\Frame_Buffer_Driver\ANDROID_3.0.8_VE\” to your corresponding

kernel tree folder and start to build the Linux kernel.

3.1.2. Build 3.0.8 kernel source

How to build 3.0.8 kernel source

To use the default configurations, type the following command.

Page 13: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

7

# make VAB-600_Linux_defconfig

If there is no “VAB-600_Linux_defconfig, “ copy it from

/BSP/Kernel_Source_Codes/ to ${Kernel_Source}/arch/arm/configs/

To modify the unique configurations, input this to enter the menu with the

graphic user interface.

# make menuconfig

After selecting particular options, now it is time to build the kernel image.

# make ubin CROSS_COMPILE=arm_1103_le- -jX

X = The threads to build the kernel image, depend on the efficiency of your

host PC. For example, a platform with three cores CPU and 8GB RAM

should sustain “-j8” parameter.

As shown in Figure 2, it takes a few minutes to get the kernel image,

uzImage.bin.

Figure 2 Building kernel

Page 14: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

8

The uzImage.bin is located at “ANDROID_3.0.8”.

How to make clean the kernel source

Clean the kernel source and it will clean all the built binaries

in“ANDROID_3.0.8”.

# make clean

4. Making System Booting

Media

4.1. Set booting media

4.1.1. Prepare Debian 7 file system

Debian File System:

Prepare the Debian7 root file system, armel-rootfs-20131003_v0.01.tar.tgz.

We need to use the armel-rootfs-20131003_v0.01.tar.tgz to install Debian

with full functions. It locates under

“/EVK/Update_Package/bspinst/packages”folder.

You can also download it from http://rcn-ee.net/deb/minfs/wheezy/

Patches:

Page 15: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

9

Moreover, there are some other patches in

“/EVK/Update_Package/bspinst/packages” which must be manually

copied to SD card when booting from SD card. In this version, the patches

in /EVK/BSP/Others” folder has been previously added to Debian file

system.

If you use the Debian file system obtaining from the website, it certainly

doesn’t contain the patches described below. Therefore, you still must

manually copy the patches to your downloaded Debian file system.

4.1.2. Boot from eMMC

1. Insert SD card to host PC.

2. Find the inserted SD card. Create all the volume to FAT partition, and

name it “update”.

3. Copy the “bspinst” folder and scriptcmd file under

“Update_Package”folder to “update” partition.

4. Once the copy is finished, please un-mount Volume and remove the SD

card.

5. Insert the SD card to VAB-600 and boot.

Page 16: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

10

6. After the installation is finished, please remove SD card. The system will

shut down in 3 seconds.

7. Power on VAB-600, and it will boot from on-board eMMC.

Username: debian

Password: temppwd

4.1.3. Boot from SD card

4.1.3.1. Update uboot parameters

Connect VAB-600 and host PC through COM port. Update uboot

parameters as below.

setenv boot-method boot-emmc

setenv ethaddr 00:40:63:11:23:29 ( If there is no default value )

setenv memtotal 850M

setenv mbsize 62M

setenv wmt.display.dual 0

setenv wmt.display.param 4:6:1:1920:1080:60

setenv wmt.ge.param 1:-1:100:-1

setenv wmt.audio.i2s vt1603:f2:f2:f1:f1:100

setenv boot-emmc "mmcinit 0; fatload mmc 0:1 0x01000000 uzimage.bin; if iminfo

0x01000000; then run set-rfs-emmc; bootm 0x01000000; fi"

setenv set-rfs-emmc "setenv bootargs mem=${memtotal} root=/dev/mmcblk0p2 rw

rootfstype=ext3 noinitrd mbtotal=${mbsize} ${bootargs-common} ${bootargs-extra}"

setenv wmt.plla.param 1:792:1:2:1:1:1

Page 17: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

11

setenv wmt.plla2.param 1:792:1:2:1:1:1

saveenv

reset

Default display setting “setenv wmt.display.param 4:6:1:1920:1080:60”

lights HDMI.

If you want to light LVDS panel, please refer to Section 4.1.

If you want to light TTL panel, please refer to Section 4.2.

4.1.3.2. Format the SD card

Insert the SD card into host PC. Open the Disk Utility (System-

>Administrator->Disk Utility)

If the SD card is already formatted, we need to umount volume first. Then

Delete the Partition to get a clear SD card. Click “Create Partition” to

continue.

Click the SD card reader. Create a FAT partition with 200MB and name it

kernel.

Create an EXT3 partition with remaining space (about 3.7GB) and name it

fs. Then you will get a SD card with FAT and ext3 partition.

4.1.3.3. Install kernel and root filesystem to SD card

Copy the kernel Image uzImage.bin to kernel partition.

Use the following command to unzip the root file system to the ext3

partition on SD card.

Page 18: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

12

# tar -zxvf armel-rootfs-20131003_v0.01.tar.tgz -C /media/fs

Once the unzip procedure is complete. You can see the root file system is

installed in the ext3 partition on SD card.

4.1.3.4. Download the fully Debian7 file system

Connect VAB-600 and host PC through COM port. On the host PC, you will

see the kernel message and login prompt through serial console. The

default username and password is debian/temppwd

Use the following command to get the root permission for the following

steps.

Page 19: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

13

# sudo -i

Get correct ethX by using the command, (X is variable, depending on your

environment.)

# ifconfig -a

Then type the following command in the command prompt to get a DHCP

IP.

# /usr/lib/klibc/bin/ipconfig ethX

Please confirm that the DNS information in /etc/resolv.conf is correct. For

example the DNS for VIA in /etc/resolv.conf is

domain via.com.tw

search via.com.tw

Page 20: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

14

nameserver 10.5.254.150

nameserver 10.5.254.149

Now we are ready to download the fully Debian7 file system.

Type the following command to update the source list.

# apt-get update

Type the following command to install the xorg. Press “Y” to install the xorg.

# apt-get install xorg

Type the following command to install the lxde. Press “Y” to install the lxde.

Please choose the default setting during installation.

# apt-get install lxde

Once you finish the above steps, please reboot the VAB-600 after the

installation is complete. It is required to install the graphic driver in order to

make the user interface work.

Page 21: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

15

4.2. Install graphics and multimedia package

4.2.1. Prerequisites

Enable network

Get correct ethX by using the command, (X is variable, depending on your

environment.)

# ifconfig -a

Enable network

# dhclient ethX

4.2.2. Install graphics driver package

Graphics driver package contains Display(xorg), 2D(EXA), 3D(openGL ES),

video decoder and Mali memory management drivers. Those drivers may

be user space libraries or kernel space kernel modules.

1. 1. Get graphics driver package VAB-600-Debian7.0-Graphics-

v1.0.4.tgz from the folder “/EVK/BSP/Graphics_driver/”.

2. Uncompress the graphics driver.

# tar xzf VAB-600-Debian7.0-Graphics-v1.0.4.tgz

Page 22: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

16

3. Install Graphics driver by script, and reboot the system.

# cd VAB-600-Debian7.0-Graphics-v1.0.4

# sudo sh install.sh

# sudo reboot

4. Check installation result

a. Mali driver(mali_drv.so)

# grep 'mali' /var/log/Xorg.0.log

Success

[ 42.820] (II) LoadModule: "mali"

[ 42.833] (II) Loading /usr/lib/xorg/modules/drivers/mali_drv.so

[ 42.913] (II) Module mali: vendor="X.Org Foundation"

[ 42.913] (II) MALI: driver for Mali Framebuffer: mali

[ 42.913] (WW) Falling back to old probe method for mali

[ 42.917] (EE) MALI(0): mali_drm_open_master DRM OPEN (fd:

0x7)

[ 43.277] (II) MALI(0): maliSetupExa: ENTER

[ 43.280] (II) MALI(0): maliSetupExa: EXIT

Failure -

b. EXA

# grep 'EXA' /var/log/Xorg.0.log

Success

[ 41.073] (II) MALI(0): Mali EXA driver will use GE!

[ 41.073] (II) MALI(0): Mali EXA driver is loaded successfully

[ 41.073] (WW) MALI(0): Initializing EXA Driver!

[ 41.073] (II) EXA(0): Driver allocated offscreen pixmaps

[ 41.077] (II) EXA(0): Driver registered support for the following

operations:

Failure [ 41.073] (WW) MALI(0): Failed allocating EXA Driver!

Page 23: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

17

If results show success, continue the following steps. Otherwise, solve

the problem before taking further action.

4.2.3. Install Multimedia package

Multimedia package contains Gstreamer 0.10.35 environment and ffmpeg

plugin.

1. Set locale. Make sure the network of your Debian system is connected.

Then run:

# apt-get update

# apt-get install locales

# dpkg-reconfigure locales

And choose en_US.UTF-8 UTF-8

2. Get multimedia package VAB-600-Debian7.0-Multimedia-v1.0.1.tgz from

the folder “/EVK/BSP/Multimedia”.

# tar –xvf VAB-600-Debian7.0-Multimedia-v1.0.1.tgz

# cd VAB-600-Debian7.0-Multimedia-v1.0.1

# ./install_quick.sh

3. Check gst plugins version

Run gst-inspect command to check version number of installed gst plugins’.

It should be 1.5.1.

# gst-inspect-0.10 ffdec_wmt_*

Page 24: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

18

Note: Replace "*" by h264, mpeg2video or mpeg4

# gst-inspect-0.10 wmtimagesink

# gst-inspect-0.10 playbin

Page 25: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

19

5. Functionality

5.1. Light LVDS panel (TP070C01)

Connection:

Connect the LVDS panel to VAB-600 via VAB-600-D card.

U-Boot:

Connect VAB-600 and host PC through COM port. Update uboot

parameters as below

setenv wmt.display.param 2:0:24:800:480:60

setenv bootargs-common console=ttyS0,115200n8 console=tty0 init=/init

saveenv

reset

800:480 is LVDS panel resolution. Please replace it with the LVDS panel

resolution that you use.

Xorg:

Edit /etc/X11/xorg.conf in Debian to support LVDS panel display. Delete

“ # ”to select the annotated timing for LVDS panel.

Page 26: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

20

# Modeline "1440x900" 106.50 1440 1528 1672 1904 900 903 909 934 -

hsync +vsync

# Modeline "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088

1120 -hsync +vsync

Modeline "800x480" 33.5 800 964 974 1063 480 490 500 523

So does the display resolution for LVDS panel.

Section "Screen"

Identifier "Mali Screen"

Device "Mali FBDEV"

Monitor "Mali Monitor"

DefaultDepth 16

SubSection "Display"

Depth 16

# Modes "1024x768" "800x600"

Modes "800x480"

EndSubSection

EndSection

Page 27: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

21

※ Notice that to light LVDS panel, you have to modify both U-Boot and

Xorg, lack of any step of them may probably cause the failure to display the

LVDS panel.

5.2. Light TTL panel (LW700AT9901)

Connection:

Connect the TTL panel to VAB-600 via VAB-600-C card.

U-Boot:

Connect VAB-600 and host PC through COM port. Update uboot

parameters as below

setenv wmt.display.param 2:1:24:800:480:60

setenv bootargs-common console=ttyS0,115200n8 console=tty0 init=/init

saveenv

reset

800:480 is TTL panel resolution. Please replace it with the TTL panel

resolution that you use.

Page 28: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

22

Xorg:

Edit /etc/X11/xorg.conf in Debian to support TTL panel display. Delete

“ # ”to select the annotated timing for TTL panel.

# Modeline "1440x900" 106.50 1440 1528 1672 1904 900 903 909 934 -

hsync +vsync

# Modeline "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088

1120 -hsync +vsync

Modeline "800x480" 33.5 800 964 974 1063 480 490 500 523

So does the display resolution for TTL panel.

Section "Screen"

Identifier "Mali Screen"

Device "Mali FBDEV"

Monitor "Mali Monitor"

DefaultDepth 16

SubSection "Display"

Depth 16

# Modes "1024x768" "800x600"

Modes "800x480"

Page 29: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

23

EndSubSection

EndSection

※ Notice that to light TTL panel, you have to modify both U-Boot and Xorg,

lack of any step of them may probably cause failure to display the TTL

panel.

5.3. Light Dual Channel LVDS panel (AUO

G220SVN01.0)

Connection:

Connect the dual channel LVDS panel to VAB-600 via VAB-600-D card.

U-Boot:

Page 30: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

24

Connect VAB-600 and host PC through COM port. Update uboot

parameters as below

setenv wmt.display.param 2:0:24:1680:1050:60

setenv bootargs-common console=ttyS0,115200n8 console=tty0 init=/init

saveenv

reset

1680:1050 is dual channel LVDS panel resolution. Please replace it with

the dual channel LVDS panel resolution that you use.

Xorg:

Edit /etc/X11/xorg.conf in Debian to support dual channel LVDS panel

display. Delete“ # ”to select the annotated timing for dual channel LVDS

panel.

# Modeline "1920x1080_75" 220.75 1920 2064 2264 2608 1080 1083

1088 1130 -hsync +vsync

Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059

1089 -hsync +vsync

# Modeline "640x480" 23.75 640 664 720 800 480 483 487 500 -hsync

+vsync

So does the display resolution for dual channel LVDS panel.

Page 31: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

25

Section "Screen"

Identifier "Mali Screen"

Device "Mali FBDEV"

Monitor "Mali Monitor"

DefaultDepth 16

SubSection "Display"

Depth 16

# Modes "1024x768" "800x600"

Modes "1680x1050"

EndSubSection

EndSection

※ Notice that to light dual channel LVDS panel, you have to modify both U-

Boot and Xorg, lack of any step of them may probably cause failure to

display the TTL panel.

Page 32: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

26

5.4. Light HDMI monitor

U-Boot:

Connect VAB-600 and host PC through COM port. Update uboot

parameters as below

setenv wmt.display.param 4:6:1:1920:1080:60

setenv bootargs-common console=ttyS0,115200n8 console=tty0 init=/init

saveenv

reset

1920:1080 is HDMI monitor resolution. Actually it will detect EDID

information automatically and choose the maximum resolution, therefore

the setting influences U-Boot logo resolution only.

Xorg:

Edit /etc/X11/xorg.conf in Debian to support HDMI monitor display. Add

“ # ”to annotate the timing for LDS panel.

# Modeline "1440x900" 106.50 1440 1528 1672 1904 900 903 909 934 -

hsync +vsync

# Modeline "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088

1120 -hsync +vsync

# Modeline "800x480" 33.5 800 964 974 1063 480 490 500 523

Page 33: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

27

So does the display resolution for LVDS.

Section "Screen"

Identifier "Mali Screen"

Device "Mali FBDEV"

Monitor "Mali Monitor"

DefaultDepth 16

SubSection "Display"

Depth 16

# Modes "1024x768" "800x600"

# Modes "800x480"

EndSubSection

EndSection

※ Notice that to light HDMI monitor normally, you have to modify both U-

Boot and Xorg, lack of any step of them may probably cause the failure to

display the HDMI monitor.

Page 34: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

28

5.5. Switch HDMI mode by xrandr tool

In order to switch Mode, we use xrandr command to switch the resolution

and refresh rate of the monitor.

For example, to list all the supporting modes, we usually run "xrandr -q" or

“xrandr --verbose”.

To switch resolution and refresh rate, such as "800x600@75", we usually

run " xrandr --output DVI-I --mode 800x600 --rate 75", --output DVI-I must

be added and does not need to be changed for every resolution change

xrandr command.

Currently, we only support the display modes that are listed in the following

table. “xrandr -q” command shows the combination/subset of the mode

your display device support (from EDID) and the mode in the following

table. Please do not set “--mode” outside of the result of “xrandr -q”, the “--

rate” can only be followed by 60 or 75. If you can see refresh rate 59.9, just

set it 60.

Page 35: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

29

Resolutions

Color Depth

Refresh (VIA)

60 75

640 x 480 16/32bit

800x480 16/32bit

800 x 600 16/32bit

1024 x 768 16/32bit

1280x720 16/32bit

1280x768 16/32bit

1280 x 1024 16/32bit

1360x768 16/32bit

1400x1050 16/32bit

1440x900 16/32bit

1680x1050 16bit

1920x1080 16bit

5.6. Change Color Depth/bpp.

Please open /etc/X11/xorg.conf and change DefaultDepth to 16 or 24 to

change the Color Depth. You must restart the x-window, so the change can

take effect.

Page 36: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

30

5.7. Multimedia local playback

Currently we support MPEG1, MPEG2, MPEG4 (except MSMPEGv1/v2),

WMV9/VC1, H264 HW acceleration. Play local multimedia files by the

following command:

# gst-launch-0.10 playbin uri=file:/<path-and-file-name>

Or

# totem <path-and-file-name>

5.8. Audio adjustment

To modify the settings of audio, open a terminal and modulate alsamixer.

# alsamixer

The following figure shows a fine-tuned result of alsamixer.

Page 37: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

31

Click“←”or“→”to choose the item to be modified. Press“M”to turn

on or turn off an option, and click“↓”or“↑”to subtract or add the

value.

To enable PCM audio volume control, “asound.conf”must be reloaded.

To achieve this goal, install the necessary packages first.

# apt-get install alsa-utils

Then operate the playing action to initialize the configurations in

“asound.conf.”

# speaker-test –Dsoftvolume –c2 -twav

Page 38: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

32

After it outputs the test music for several seconds, use CTRL+C to stop the

examination. Next step is to open alsamixer again, check whether PCM

audio volume control appears or not.

The name of PCM audio volume control is “PCM.” Change its value to

observe if the volume alters.

Page 39: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

33

5.9. GPIO control

This section describes how to operate GPIO function. Please use

devmem2 utility to access GPIO, which was pre-installed in the file system

image. If you need to change kernel configurations, please refer to “VAB-

600_Linux_defconfig” in /BSP/Kernel_Source_Codes/ to ensure the GPIO

function.

5.9.1. GPIO hardware design

The GPIO function was provided by CN9 “GPIO / SMBus Interface Pin

Header”. They are mapped to GPIO20 ~ GPIO27. The corresponding pins

in VAB-600 are listed in the following figures.

Page 40: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

34

You can connect your own device to the pins and operate it via the relative

GPIO settings. To manage the particular GPIO, the homologous register

values have to be changed.

5.9.2. devmem2 utility This utility can also be installed in Linux official distribution.

Use devmem2 utility to read/write GPIO registers.

devmem2 [address] [type] [data]

Page 41: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

35

address : physical address of the register

type : data type to be read/written, [b]yte, [h]alfword or [w]ord

data : data to be written to the register

5.9.2.1. devmem2 utility read and write

For example, if you want to read the register 0xd8110030 in byte format,

you must type the command below.

# devmem2 0xd8110030 b

Same for the writing operation, write 0xff value to the register 0xd81100b0

in byte format with the coming order.

# devmem2 0xd81100b0 b 0xff

Page 42: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

36

For detailed descriptions of GPIO register values, please refer to Appendix

C.

Page 43: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

37

5.9.3. Test GPIO input and output

5.9.3.1. Test GPIO connection

In this test, GPIO 20-23 are connected to GPIO 24-27. Once the state of

GPIO 20–23 are changed, GPIO 24–27 also turn to be the same situation,

and vice versa. In other words, this phenomenon means that the influence

you do to one part may change another side.

Besides, before everything starts, you had batter clean the relative

registers.

# devmem2 0xd81100b0 b 0x0

# devmem2 0xd81100b1 b 0x0

# devmem2 0xd81100f0 b 0x0

# devmem2 0xd81100f1 b 0x0

5.9.3.2. Set GPIO 20-23 to change GPIO 24-27

a. The first step is to examine the value of GPIO 24-27 input data register

value.

# devmem2 0xd8110031 b

/* Read GPIO 24-27 input Registers*/

Page 44: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

38

Obviously, the value should be 0x0.

b. To begin the experiment, set the value of GPIO 20-23 output enable

registers to be high state.

# devmem2 0xd81100b0 b 0xf0

/* Write GPIO 20-23 Output Enable Registers*/

c. Then set the value of GPIO 20-23 output data registers also to be high

state.

# devmem2 0xd81100f0 b 0xf0

/* Write GPIO 20-23 Output Data Registers*/

Now GPIO 20-23 should output the high state, which changes the low state

of GPIO 24-27 to be high state.

d. Examine the value of GPIO 24-27 input data register value.

Page 45: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

39

# devmem2 0xd8110031 b

/* Read GPIO 24-27 input Registers*/

The value should be 0xF because of the influence of GPIO 20-23.

5.9.3.3. Set GPIO 24-27 to change GPIO 20-23

a. The first step is to examine the value of GPIO 20-23 input data register

value.

# devmem2 0xd8110030 b

/* Read GPIO 20-23 input Registers*/

Obviously, the value should be 0x0.

b. To begin the experiment, set the value of GPIO 24-27 output enable

registers to be high state.

# devmem2 0xd81100b1 b 0x0f

/* Write GPIO 24-27 Output Enable Registers*/

Page 46: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

40

c. Then set the value of GPIO 24-27 output data registers also to be high

state.

# devmem2 0xd81100f1 b 0x0f

/* Write GPIO 24-27 Output Data Registers*/

Now GPIO 24-27 should output the high state, which changes the low state

of GPIO 20-23 to be high state.

d. Examine the value of GPIO 20-23 input data register value.

# devmem2 0xd811003b b

/* Read GPIO 20-23 input Registers*/

The value should be 0xF because of the influence of GPIO 24-27.

Page 47: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

41

5.10. External RTC control

This section describes how to operate external RTC function. Please use

i2c-tools utility to access external RTC, which was pre-installed in the file

system image. If you need to change kernel configurations, please refer to

“VAB-600_Linux_defconfig” in /BSP/Kernel_Source_Codes/ to ensure the

external RTC function.

5.10.1. External RTC hardware design

The external RTC IDT1337G was controlled by VAB-600 via I2C0 bus. The

slave address of IDT1337G is 0x68 and it supports 16 timekeeper registers.

The IDT1337G supports auto power-on control by using alarm2 and INTB

pin.

Page 48: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

42

5.10.2. Display external RTC timekeeper registers

# i2cdump -f -y -r 0-15 0 0x68 b

5.10.3. Set date and time to external RTC

# i2cset -f -y 0 0x68 0x0 0x$(date +"%S") // seconds

# i2cset -f -y 0 0x68 0x1 0x$(date +"%M") // minutes

# i2cset -f -y 0 0x68 0x2 0x$(date +"%-k") // hours

# i2cset -f -y 0 0x68 0x3 0x$(date +"%u") // day of week

# i2cset -f -y 0 0x68 0x4 0x$(date +"%d") // date of month

# i2cset -f -y 0 0x68 0x5 0x$(date +"%m") // month

# i2cset -f -y 0 0x68 0x6 0x$(date +"%g") // year

# i2cset -f -y 0 0x68 0xb 0x0 // alarm2 minutes

# i2cset -f -y 0 0x68 0xc 0x0 // alarm2 hours

# i2cset -f -y 0 0x68 0xd 0x0 // alarm2 day or date

# i2cset -f -y 0 0x68 0xe 0x4 // disable alarm

# i2cset -f -y 0 0x68 0xf 0x0 // clear alarm status

5.10.4. Test auto power-on control of external RTC

Page 49: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

43

Configure alarm2 registers to enable auto power-on control.

For example: set alarm each hour.

# I2cset -f -y 0 0x68 0xb 0x0 // alarm2 minutes

# i2cset -f -y 0 0x68 0xc 0x80 // alarm2 hours

# i2cset -f -y 0 0x68 0xd 0x80 // alarm2 day or date

# i2cset -f -y 0 0x68 0xf 0x0 // clear alarm status

# i2cset -f -y 0 0x68 0xe 0x6 // enable alarm2

The register values “0x80” indicate “don’t care.” Only when minutes match

(register value(0x1) == value(0xb)), alarm2 will set, A2F flag is at logic 1

and the INTB pin goes low.

After configuration, you will see the register values like below:

If system time is 10:30 a.m., then the system will auto boot on 11:00 a.m.,

12:00 p.m., 1:00 p.m. and so on.

After auto power-on, you will see the register values like below:

Page 50: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

44

5.10.5. Disable alarm2 and clear alarm2 status of

external RTC

Please remember to disable alarm2 and clear alarm2 status after booting

the system every time. If you don’t disable alarm2 and alarm2 status isn’t

clear, the system will boot right away after shutdown. If alarm2 status is

clear but you don't disable alarm2, the system will still boot on schedule

even the system is running.

Disable alarm and clear alarm status:

# i2cset -f -y 0 0x68 0xe 0x4 // disable alarm

# i2cset -f -y 0 0x68 0xf 0x0 // clear alarm status

In order to boot on schedule, please remember to clear alarm2 status and

enable alarm2 before shutdown.

Clear alarm status and enable alarm2:

# i2cset -f -y 0 0x68 0xf 0x0 // clear alarm status

# i2cset -f -y 0 0x68 0xe 0x6 // enable alarm2

When alarm2 status is not clear, if you enable alarm2 first without clearing

alarm2 status then the system will auto boot after 5 seconds. In order to

avoid this situation, you need to clear alarm2 status first, then enable

alarm2.

Page 51: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

45

5.11. Watch dog control

This section describes how to operate watch dog function. Please use

watch dog utility (wdt_app) to access watch dog, which was pre-installed in

the file system image. If you need to change kernel configurations, please

refer to “VAB-600_Linux_defconfig” in /BSP/Kernel_Source_Codes/ to

ensure the watch dog function.

5.11.1. Enable the watch dog

First of all, the watch dog must be enabled to carry out its tasks.

# wdt_app -et

Without enabling watch dog, the operations that are relative to watch dog

will not take any effect.

Page 52: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

46

5.11.2. Set the watch dog timer

Fill the value of the watch dog timer in this step, decide when the watch

dog can perform its function to restart the system.

# wdt_app –t${second}

${second} means the period counting in seconds to reboot your machine,

which should be within 0 to 256.

For example, you want the system to restart automatically in 180 seconds,

the command format should look like the following texts.

# wdt_app –t180

After 180 seconds, the machine will reboot by itself.

Page 53: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

47

5.11.3. Get the watch dog timer

Once you set the watch dog timer, you may observe the value of the watch

dog timer by this order.

# wdt_app -tg

Its return value will show the number counting down in your watch dog,

which indicates the remaining time before the system restarts.

For instance, in the last step you just set the watch dog timer to 180

seconds, you will see the value of the watch dog timer decreases.

Moreover, to print the return value, add ”echo $?” to the input command.

Page 54: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

48

This figure means that there are still 150 seconds left before the machine

reboots.

5.11.4. Disable the watch dog

To stop the function of watch dog, you can disable watch dog through this

command.

# wdt_app -dt

Therefore, watch dog won’t be active unless you enable watch dog again.

Since the watch dog is closed, nothing will happen even though the timer

counts down to zero.

Page 55: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

49

6. Debug Message VAB-600 Linux BSP supports debugging with RS232 port.

The RS232 client software (such as putty) should configure the parameters

as follows:

COM speed:115200

COM parity: NONE

COM data: 8

COM stop-bit:1

Use picocom in the HOST PC to open the console.

# picocom -b 115200 /dev/ttyS0

If the picocom is not installed, use ap-get to install it.

# apt-get install picocom

After successfully connecting to VAB-600 through RS232 line, you can

enter the u-boot console and try modifying the u-boot parameters for

various configurations, such as changing display resolution and so on.

6.1. Enter U-Boot environment

VAB-600 Linux platform can stop booting to enter u-boot environment. The

u-boot will initiate hardware at an earlier stage by those parameters.

The u-boot will wait 3 seconds to stop booting after power on by pressing

any key. When booting comes to a halt, the sign “WMT #” will pop up on

terminal screen.

Page 56: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

50

U-Boot is similar to a tiny operation system that has its own commands.

Some important commands and parameters are described here.

Print online help

WMT # help

Change display U-boot logo resolution

WMT # setenv wmt.display.param 4:6:1:1280:1024:60

Save changed parameters

WMT # saveenv

6.2. Default u-boot parameters

The default u-boot parameters are configured in the following file

/update_package/bspinst/bspinst.cfg

The bspinst.cfg file structure has four segments.

Scenario: board model and boot method

Common: general setting

Target (board models): specific setting for each target

Routine: parameters of boot method

Its content will be parsed and stored into the on-board storage device

during installation procedure described in section 4.1.2

Page 57: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

51

Appendix A. Q&A Q: When trying to setup static IP address in “Network Connections”, the IP

setup does not take effect.

A: After setting “Network Connections”, user should open a console to shut

down the Ethernet adapter and then turn on by following the command

below, target Ethernet adapter is eth1.

ifconfig eth1 down

ifconfig eth1 up

Page 58: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

52

Appendix B. Limitation 1) On some special monitors, some modes may cause screen garbage

and other display issue. This is probably due to the timing passed by Xorg

that cannot work well with the monitor. In this case, please delete the "#"

before the corresponding Modeline in section "Monitor" of file "xorg.conf".

For example, for mode "1680x1050", we can enable its modeline:

Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059

1089 -hsync +vsync

then switch to this mode.

2) Support smooth video playback of 720P on 1280x1024 display mode.

3) If making action to the playing video or moving mouse over the video,

this video will not sound and be blocked.

4) XVID video will sometimes show garbage.

5). Some VC1 video files may become static when seek or having audio

playback abnormal issue, it can be reproduced on x86 platform with SW

decoder (Totem). It is demuxer issue.

6). If I frame is too long, some video files may pause for a few seconds

after seek and resume, since demuxer could not locate I frame.

7). It is slow when switching between window mode and fullscreen mode.

8). There is no PWM frequency control. In other words, the backlight

brightness can’t be modified.

Page 59: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

53

Appendix C. GPIO registers

GPIO Input Data Registers Address 0xd8110030 – 0xd8110031

GPIO[27:20] Input Data Register

BIT Attribute Default Description

15:12 RO 4'h0 Reserved

11 RO GPIO27 Signal GPIO Input Data

10 RO GPIO26 Signal GPIO Input Data

9 RO GPIO25 Signal GPIO Input Data

8 RO GPIO24 Signal GPIO Input Data

7 RO GPIO23 Signal GPIO Input Data

6 RO GPIO22 Signal GPIO Input Data

5 RO GPIO21 Signal GPIO Input Data

4 RO GPIO20 Signal GPIO Input Data

3:0 RO Reserved

GPIO Enable Registers Address 0xd8110070

GPIO[23:20] Enable Register

BIT Attribute Default Description

7:0 RW FFh GPIO[23:20] Enable Register

Address 0xd8110071

GPIO[27:24] Enable Register

BIT Attribute Default Description

7:0 RW 0Fh GPIO[27:24] Enable Register

Page 60: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

54

GPIO Output Enable Registers Address 0xd81100B0

GPIO[23:20] Output Enable Register

BIT Attribute Default Description

7:0 RW 00h GPIO[23:20] Output Enable Register

Address 0xd81100B1

GPIO[27:24] Output Enable Register

BIT Attribute Default Description

7:0 RW 00h GPIO[27:24] Output Enable Register

GPIO Output Data Registers Address 0xd81100F0

GPIO[23:20] Output Data Register

BIT Attribute Default Description

7:0 RW 00h GPIO[23:20] Output Data Register

Address 0xd81100F1

GPIO[27:24] Output Data Register

BIT Attribute Default Description

7:0 RW 00h GPIO[27:24] Output Data Register

GPIO Pull-up/Pull-down Enable Registers

Page 61: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

55

Address 0xd81104B0

GPIO[23:20] Pull-up/Pull-down Enable Register

BIT Attribute Default Description

7:0 RW F0h GPIO[23:20] Pull-up/Pull-down Enable Register

Address 0xd81104B1

GPIO[27:24] Pull-up/Pull-down Enable Register

BIT Attribute Default Description

7:0 RW 0Fh GPIO[27:24] Pull-up/Pull-down Enable Register

GPIO Pull-up/Pull-down Control Registers Address 0xd81104F0

GPIO[23:20] Pull-up/Pull-down Control Register

BIT Attribute Default Description

7:0 RW 00h GPIO[23:20] Pull-up/Pull-down Control Register

Address 0xd81104F1

GPIO[27:24] Pull-up/Pull-down Control Register

BIT Attribute Default Description

7:0 RW 00h GPIO[27:24] Pull-up/Pull-down Control Register

GPIO Interrupt Request Status Registers Address 0xd8110362

GPIO Interrupt Request Status Register (GPIO[23:20])

Page 62: VIA VAB-600 Springboard Linux BSP Development Guide

VAB-600 Linux BSP v1.0.3 Development Guide

56

BIT Attribute Default Description

7 RW1C 0 GPIO23 Interrupt Status When this bit is inactive (a zero), it indicates that no interrupt has been configured and detected on the associated signal. When this bit is active (an one), it indicates that an interrupt request has been configured and detected on the associated signal. Once this bit is active (an one), software must write an one to this bit to clear it inactive (a zero), otherwise this bit and the associated GPIO Interrupt Request will remain active (an one).

6 RW1C 0 GPIO22 Interrupt Status

5 RW1C 0 GPIO21 Interrupt Status

4 RW1C 0 GPIO20 Interrupt Status

Address 0xd8110363

GPIO Interrupt Request Status Register (GPIO[27:24])

BIT Attribute Default Description

3 RW1C 0 GPIO27 Interrupt Status

2 RW1C 0 GPIO26 Interrupt Status

1 RW1C 0 GPIO25 Interrupt Status

0 RW1C 0 GPIO24 Interrupt Status