Vybrid VG Graphics - Spinning Tiger Demo on Auto EVB w/MQX GC355

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Vybrid VG Graphics - Spinning Tiger Demo on Auto EVB w/MQX GC355

Jump to solution
6,415 Views
billkrakar
NXP Employee
NXP Employee

Discussion area for partners and alpha customers who are working to get VG graphics going on Vybrid.

The intent is for this discussion to be populated by the Freescale internal team with the latest files, instructions, tips etc. to allow others to create a known working platform with the Spinning Tiger Demo running on the Auto EVB Rev C w/ MQX 4.0.2 and the MQX VG drivers (0.4.0 now and 0.5.0 shortly) using HW acceleration on the GC355 GPU.

0 Kudos
Reply
1 Solution
5,078 Views
ioseph_martinez
NXP Employee
NXP Employee

I added the uboot sources to the same extranet site http://freescale.com/livelink/livelink?func=ll&objid=226470266&objAction=browse&sort=name

In the tar file there is a binary if you want to skip the building process.

View solution in original post

0 Kudos
Reply
24 Replies
4,611 Views
ioseph_martinez
NXP Employee
NXP Employee

To get the rotating tiger first you need:

The following SW:

- MQX 4.0.2 EAR1

- vf600 OpenVG 0.4.0

- Uboot Image... I am using: U-Boot 2011.12-00548-gd2215dc-dirty (Mar 26 2013 - 16:59:44)

- CodeSourcery GCC compiler: Sourcery CodeBench Lite Edition - Mentor Graphics

     - (Download the EABI release: EABI Release Sourcery CodeBench Lite 2012.03-56)

Note: at this initial state, Bill Krakar can provide access to the OpenVG release and uboot binary.

The following HW:

- Vybrid 1.1 with L2 Cache enabled

- SD Card

- AutoEVB Rev C

- serial console

- Display monitor with DVI input and DVI cable

Building the executable:

Build MQX 4.0.2 EAR1

1. edit mqx/source/bsp/vybrid_autoevb_a5/init_bsp.c, change __EXTERNAL_DDRAM_SIZE to 0x800000

2. cd build/vybrid_autoevb_a5/make

3. TOOL=gcc_cs CONFIG=debug TOOLCHAIN_ROOTDIR=$your_cs_install_path/Sourcery_CodeBench_Lite_for_ARM_EABI make build

Build OpenVG Tiger sample app:

Build demo application:

1. Apply rotation_800 makefile patch for mqx4

--- a/tests/rotation_800/build-autovf600-gnu-mqx-d/eclipse/makefile

+++ b/tests/rotation_800/build-autovf600-gnu-mqx-d/eclipse/makefile

@@ -15,10 +15,10 @@

##############################################################################################

# Start of default section

#

-PLATFORM = faraday_a5

+PLATFORM = vybrid_autoevb_a5

GC3XX_ROOT = ../../../..

-MQX_TWRVF65GS10_PATH ?= /home/wayne/vivante/extpacs/os/mqx_impresario

-MQX_LOC ?= $(MQX_TWRVF65GS10_PATH)

+MQX_TWRVF65GS10_PATH ?= $(GC3XX_ROOT)/../extpacs/os/mqx4

+MQX_LOC = $(MQX_TWRVF65GS10_PATH)/lib/$(PLATFORM).gcc_cs

GCC_DIR = $(shell export PATH='$(PATH)'; which $(CC) | sed 's|/bin/.*||; \

  s|/cygdrive/\(.\)|\1:|')

GCC_VERSION = $(shell $(CC) --version | grep ^arm | sed 's/^.* //g')

@@ -41,9 +41,8 @@ DDEFS = \

  -DTWRVF600 \

  -D__GNU__ \

  -DDISCFG_PLAT_ACR \

+ -D__STRICT_ANSI__ \

  -DARM \

- -DIMPRESARIO_CPU_FARADAY \

- -DUSE_THUMB \

  -DgcdENABLE_BANK_ALIGNMENT=1    \

  -DgcdBANK_BIT_START=13          \

  -DgcdBANK_BIT_END=15            \

@@ -66,35 +65,10 @@ DADEFS =

# List all default directories to look for include files here

DINCDIR = \

  $(GC3XX_ROOT)/hal/os/$(OS_TYPE)/inc \

- $(MQX_LOC)/os/mqx/mqx/include                 \

-    $(MQX_LOC)/os/mqx/mqx/bsp                     \

-    $(MQX_LOC)/os/mqx/mqx/psp                     \

-    $(MQX_LOC)/os/mqx/config                      \

-    $(MQX_LOC)/os/mqx/pcmmgr                      \

-    $(MQX_LOC)/os/mqx/pcmmgr/codec                \

-    $(MQX_LOC)/infrastructure/config/include      \

-    $(MQX_LOC)/os/mqx/config/common               \

-    $(MQX_LOC)/infrastructure/config/profiles     \

-    $(MQX_LOC)/os/mqx/mqx/psp/cortex-a            \

-    $(MQX_LOC)/os/mqx/mqx/psp/cortex-a/vybrid     \

-    $(MQX_LOC)/os/mqx/mqx/bsp/$(PLATFORM)         \

-    $(MQX_LOC)/os/mqx/mqx/io/serial               \

-    $(MQX_LOC)/os/mqx/mqx/io/spi                  \

-    $(MQX_LOC)/os/mqx/mqx/io/esdhc                \

-    $(MQX_LOC)/os/mqx/mqx/io/sdcard               \

-    $(MQX_LOC)/os/mqx/mqx/io/sdcard/sdcard_esdhc  \

-    $(MQX_LOC)/os/mqx/mqx/io/lwgpio               \

-    $(MQX_LOC)/os/mqx/mqx/io/sai                  \

-    $(MQX_LOC)/os/mqx/mqx/io/flashx               \

-    $(MQX_LOC)/os/mqx/mqx/io/flashx/freescale     \

-    $(MQX_LOC)/os/mqx/mqx/io/esai                 \

-    $(MQX_LOC)/os/mqx/mqx/io/esai/esai_fifo       \

-    $(MQX_LOC)/os/mqx/mqx/io/esai/esai_fifo/mqx_dev_drv   \

-    $(MQX_LOC)/os/mqx/mqx/io/asrc                 \

-    $(MQX_LOC)/os/mqx/mqx/io/i2c                  \

-    $(MQX_LOC)/os/mqx/mqx/io/usb                  \

-    $(MQX_LOC)/os/mqx/mqx/io/io_expander          \

-    $(MQX_LOC)/os/mqx/mfs/include \

+ $(MQX_LOC)/debug/bsp \

+ $(MQX_LOC)/debug/psp \

+ $(MQX_LOC)/../../config/common \

+ $(MQX_LOC)/../../config/$(PLATFORM) \

  $(GC3XX_ROOT)/sdk/inc \

  $(GC3XX_ROOT)/tests/libs/twrvf600 \

  $(GC3XX_ROOT)/tests/libs

@@ -107,13 +81,11 @@ DLIBDIR = \

# List all default libraries here

# bsp/psp libs need to be pulled in before libc, to assure mqx malloc is used

DLIBS = \

- $(GC3XX_ROOT)/libs/vg/build-autovf600-gnu-mqx-d/libovg.a \

- $(GC3XX_ROOT)/libs/egl/build-autovf600-gnu-mqx-d/libegl.a \

- $(GC3XX_ROOT)/tests/libs/twrvf600/build-autovf600-gnu-mqx-d/libtwrvf600.a\

- $(GC3XX_ROOT)/tests/libs/guts/build-autovf600-gnu-mqx-d/libguts.a\

- $(MQX_LOC)/os/mqx/lib/libpsp.a \

- $(MQX_LOC)/os/mqx/lib/libbsp.a \

- $(MQX_LOC)/os/mqx/lib/libpcmmgr.a \

+ $(GC3XX_ROOT)/libs/vg/build-twrvf600-gnu-mqx-d/libovg.a \

+ $(GC3XX_ROOT)/libs/egl/build-twrvf600-gnu-mqx-d/libegl.a \

+ $(GC3XX_ROOT)/tests/libs/twrvf600/build-twrvf600-gnu-mqx-d/libtwrvf600.a\

+ $(MQX_LOC)/debug/psp/psp.a \

+ $(MQX_LOC)/debug/bsp/bsp.a \

  -lc -lgcc -lm -lcs3hosted -lcs3 -lcs3arm

#

@@ -131,7 +103,7 @@ PROJECT        = ttt

#

# Define linker script file here

#

-LDSCRIPT = $(GC3XX_ROOT)/tests/scripts/impresario_ddr.ld

+LDSCRIPT = $(GC3XX_ROOT)/tests/scripts/ddr.ld

FULL_PRJ = $(PROJECT)

# List all user C define here, like -D_DEBUG=1

@@ -182,9 +154,6 @@ OPT = \

  -mfloat-abi=soft \

  -fno-exceptions \

  -fno-builtin-printf \

- -mfpu=neon \

- -mthumb \

- -nostdlib \

  -isystem $(GCC_DIR)/lib/gcc/arm-none-eabi/$(GCC_VERSION)/include \

  -isystem $(GCC_DIR)/lib/gcc/arm-none-eabi/$(GCC_VERSION)/include-fixed \

  -isystem $(GCC_DIR)/arm-none-eabi/include

2. cd tests/rotation_800/build-autovf600-gnu-mqx-d/eclipse

3. export MQX_TWRVF65GS10_PATH=$your_mqx4_path

4. make

Prepare SD Card:

On a linux host:

- load uboot into sdcard

dd if=u-boot.imx of=/dev/sdX bs=512 seek=2 conv=sync && sync

where /dev/sdX is your sdcard device, for instance: /dev/sdb

- load the generated elf file:

sudo dd if=/media/shared/ttt.bin of=/dev/sdX bs=512 seek=2048 conv=sync && sync

where /dev/sdX is your sdcard device, for instance: /dev/sdb

Testing the SD Card on the AutoEVB:

- Insert the SD card on the AutoEVB sd card slot

- Set the following RCON switches: SW10: 6,7 ON, SW11 4,6 (numbers of individual switches go from 1 to 8)

- Connect the serial port to a terminal with the following settings: speed 115200, Data bits 8, Stop bits 1, Parity None, Flow control xon/xoff.

- Make sure your board has the uart serial port jumpers properly enabled: J46 1-2, J48 set, J49 1-2.

- Make sure your boot jumpers are configured to boot from RCON switches: J15 0 1 2       J18 0 1 2

- Make sure you have connected the DVI to the AutoEVB and your Display

On Uboot

- As soon as you apply power you should see uboot sending data to your terminal, stop the autoboot and write the following to configure the boot parameters

set bootcmd 'mmc read 0x80000420 0x800 0x11364;go 0x80000420'

saveenv

reset

You should see the tiger rotating in your display.

Message was edited by: Ioseph Martinez Pelayo Added: Make sure your boot jumpers are configured to boot from RCON switches: J15 0 1 2       J18 0 1 2

4,609 Views
jimmikola
Contributor I

The 0.5.0 OVG Driver requires 4.0.2 Alpha 2 (that is my understanding).

I would like to get this same example working with those versions if possible.

Thanks!

0 Kudos
Reply
4,609 Views
ioseph_martinez
NXP Employee
NXP Employee

Hi Jim,

Attached two examples: FBWS, and no FBWS.

Let me know if they work for you.

0 Kudos
Reply
4,609 Views
jasonwilliamson
Contributor II

Can you attach the uboot binary to this topic?

0 Kudos
Reply
5,079 Views
ioseph_martinez
NXP Employee
NXP Employee

I added the uboot sources to the same extranet site http://freescale.com/livelink/livelink?func=ll&objid=226470266&objAction=browse&sort=name

In the tar file there is a binary if you want to skip the building process.

0 Kudos
Reply
4,611 Views
dirkdoerr
Contributor III

Is Vybrid 1.1 required or could it also run on 1.0 version?

0 Kudos
Reply
4,611 Views
ioseph_martinez
NXP Employee
NXP Employee

I think it will work on 1.0 but I don't know for sure. I can give it a try later and let you know.

0 Kudos
Reply
4,611 Views
dirkdoerr
Contributor III

I can't get it running.

It seems to crash in OvgApp_Draw. I can't say exactly because I don't have a hw-debugger; only printf debugging.

Could you upload somewhere a binary that is supposed to work, please? Best with some printfs so I could see where it fails in case of error.

Thanks

            Dirk

0 Kudos
Reply
4,610 Views
ioseph_martinez
NXP Employee
NXP Employee

Posting a binary that I just tested for reference.

0 Kudos
Reply
4,611 Views
ioseph_martinez
NXP Employee
NXP Employee

I just realized that I am using EAR1 and the site is alpha2.

I will give a try with alpha2 and let you know if I see the same problem.

0 Kudos
Reply
4,612 Views
ioseph_martinez
NXP Employee
NXP Employee

I apologize... it is not working with alpha2 on my side too. There should be some differences between the two versions that make it fail. Let me look if we can get you a EAR1 installer.

0 Kudos
Reply
4,612 Views
ioseph_martinez
NXP Employee
NXP Employee

The EAR1 was posted before and upated to alpha2 version of this file.

Can you please try this link? http://compass.freescale.net/livelink/livelink/228827556/MQX_4.0.2_-_Alpha2_%28Vybrid_Auto_Board_Onl...

It is supposed to retrieve a previous version of the file which is EAR1

I had to rename the file to *.exe because it was downloaded as livelink file, but is the installer for MQX 4.0.2 EAR1 which I just tested.

0 Kudos
Reply
4,612 Views
dirkdoerr
Contributor III

Sorry, but following these links never worked at my side.

I normally go to compass side and search for the file.

0 Kudos
Reply
4,612 Views
ioseph_martinez
NXP Employee
NXP Employee

Try this:

go to http://compass.freescale.net/livelink/livelink?func=ll&objId=226470266&objAction=browse

Left clic on the small arrow pointing down, a menu will pop up

Go down to properties and select versions

You will be taken to the version history of the installer, select the one with EAR1 on the name.

Note: hope you can access to all this options, since this is an extranet site and I am not aware about if you have the required permissions to check previous versions. If not, let me know.

0 Kudos
Reply
4,612 Views
dirkdoerr
Contributor III

No, doesn't work. But I think I got it now.

I went to compass directly and looked for all revisions of the installer.

I am downloading it now but I cannot test it until Monday.I am already at home ;-)

0 Kudos
Reply
4,612 Views
billkrakar
NXP Employee
NXP Employee

It might not be a bad idea to do a quick call to confirm Dirk can see, and is downloading the correct versions.

0 Kudos
Reply
4,612 Views
dirkdoerr
Contributor III

Good news: I see a self-build vg tiger rotating on the screen :smileylaugh:

Switching to the previous MQX release does the trick

0 Kudos
Reply
4,612 Views
dirkdoerr
Contributor III

Ok, let's talk on Monday. I will try it first thing when I will be back in office.

The MQX that I loaded is different to the one I used before.

The MD5 checksum of the installer is:

db714ed24e67971c73176b78b05fa72a

0 Kudos
Reply
4,612 Views
jimmikola
Contributor I

Mine is not running either -- but I have 1.1 silicon.  The interrupts don't fire.

0 Kudos
Reply
4,611 Views
ioseph_martinez
NXP Employee
NXP Employee

A couple of updates:

- Attached makefile because seems the posted makefile cannot be used to patch

- for MQX check this post: http://compass.freescale.net/livelink/livelink/228827556/MQX_4.0.2_-_Alpha2_%28Vybrid_Auto_Board_Onl...

0 Kudos
Reply