## Basic configuration of Image buid
## =====================================================================
##
##     configure.am
##
##     Galois software toplevel makefile
##
## =====================================================================
##
# (C) Copyright Marvell Semicondutors Inc. 2007 
#
# All rightes reserved.
#
## =====================================================================
CPU_TYPE=A0

BOX_PRODUCT_RELEASE=n

DDR_CHANNEL=DDR_DUAL_CHANNEL

CLOCK_SETTING=

PV_COMP_METHOD_PWM=

PV_COMP_METHOD_PG8x7=
#
# Cross Compiling Prefix
#
#CROSS_COMPILE=arm-marvell-eabi-

