summaryrefslogtreecommitdiff
path: root/conf/machine/include/ixp4xx.conf
blob: 42ca723d90d0f6076bde19aee0a5bc27aa99c96a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#@TYPE: Machine configuration
#@NAME: ixp4xx
#@DESCRIPTION: genric machine configuration for ixp4xx platforms

MACHINE_FEATURES = "kernel26 usbhost ext2"

EXTRA_IMAGECMD_jffs2 = "--pad --eraseblock=0x20000 --faketime -n"

PREFERRED_PROVIDER_virtual/kernel ?= "ixp4xx-kernel"

#-------------------------------------------------------------------------------
# INPUTS
#-------------------------------------------------------------------------------
# conf/${DISTRO}.conf is included after this file and should be used to modify
# variables identified as 'INPUTS' to the required values for the DISTRO, this
# will cause the board specific settings (which depend for the most part on the
# exact CPU used) to be set correctly within this file.  The results are the
# variables identifies here as 'OUTPUTS'
#
#variable = "default"
# <possible values>
#    description

IXP4XX_MACHINE_ENDIAN ?= "le"
# "be" "le"
#    The memory byte sex and (on correctly implemented hardware - the IXP4XX is
#    correct) the byte sex of the buses within the system.  'be' (big-endian)
#    means that the first byte is the most significant byte on a bus, 'le'
#    (little-endian) means that the first byte is the least significant byte.
# Default to little-endian mode (since EABI does not support big endian yet)

ARM_INSTRUCTION_SET = "arm"
# "arm" "thumb"
#    The instruction set the compiler should use when generating application
#    code.  The kernel is always compiled with arm code at present.  arm code
#    is the original 32 bit ARM instruction set, thumb code is the 16 bit
#    encoded RISC sub-set.  Thumb code is smaller (maybe 70% of the ARM size)
#    but requires more instructions (140% for 70% smaller code) so may be
#    slower.

THUMB_INTERWORK = "yes"
# "yes" "no"
#    Whether to compile with code to allow interworking between the two
#    instruction sets.  This allows thumb code to be executed on a primarily
#    arm system and vice versa.  It is strongly recommended that DISTROs not
#    turn this off - the actual cost is very small.

DISTRO_BASE = ""
# "" ":<base>"
#    If given this must be the name of a 'distro' to add to the bitbake OVERRIDES
#    after ${DISTRO}, this allows different distros to share a common base of
#    overrides.  The value given must include a leading ':' or chaos will result.

#-------------------------------------------------------------------------------
# OUTPUTS
#-------------------------------------------------------------------------------

#OVERRIDES
#    The standard ':' separated list of overrides used by bitbake - see the
#    basic setting in bitbake.conf.  This list is based on that used for the
#    standard setting however :<base> will be
#    inserted at appropriate points if a base distro is enabled in the inputs.
OVERRIDES = "local:${MACHINE}:ixp4xx:${DISTRO}${DISTRO_BASE}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast"

require conf/machine/include/tune-xscale.conf
require conf/machine/include/tune-thumb.conf

#-------------------------------------------------------------------------------
# Board defaults
#-------------------------------------------------------------------------------
# These values are board specific but they seem to be common to a large number
# of boards so are reasonable defaults.
SERIAL_CONSOLE = "115200 ttyS0"
KERNEL_CONSOLE = "ttyS0,115200n8"
USE_VT = "0"

# FULL_OPTIMIZATION
#    Optimization settings.  Os works fine and is significantly better than O2.
#    The other settings are somewhat arbitrary.  The optimisations chosen here
#    include the ones which 'break' symbolic debugging (because the compiler does
#    not include enough information to allow the debugger to know where given
#    values are.)  The -fno options are an attempt to cancel explicit use of space
#    consuming options found in some packages (this isn't a complete list, this is
#    just the ones which package writers seem to know about and abuse).
FULL_OPTIMIZATION = "-Os -fomit-frame-pointer -frename-registers \
	-fno-unroll-loops -fno-inline-functions \
	-fweb -funit-at-a-time"