summaryrefslogtreecommitdiffstats
path: root/recipes/bootstream/bootstream-chumby-falconwing_1.bb
blob: c1549637780cf73bfa160e74343cf35ed52ff98e (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
# Builds the boot partition for a chumby Falconwing-based platform.
# Note that bootstream-chumby.bin is a binary-blob combination of
# chumby_stub, and the Freescale-provided bootlets that set up power,
# clocks, and RAM.  It is provided as a blob because Freescale provides
# elftosb2 as a blob.  If you would like to recreate these from scratch and
# are on an x86 Linux machine, you'll need the following files:
#   http://files.chumby.com/source/falconwing/bootloader/elftosb2;name=elftosb2
#   http://files.chumby.com/source/falconwing/bootloader/falconwing_chumby_sb.db;name=chumbyconfig
#   http://files.chumby.com/source/falconwing/bootloader/falconwing_factory_sb.db;name=factoryconfig
SECTION = "bootloaders"
PRIORITY = "optional"
LICENSE = "GPLv2"
DEPENDS = "virtual/kernel"
PROVIDES = "virtual/bootloader"
RPROVIDES = "virtual/bootloader"
PR = "r4"

SRC_URI = "http://files.chumby.com/source/falconwing/build2913/bootstream-1.0.tgz;name=archive              \
           http://files.chumby.com/source/falconwing/build2913/bootstream-chumby.bin;name=bootstream        \
           file://fix-oe-build.patch                                                                        \
"
SRC_URI[archive.md5sum] = "de87fbc40f0466d5f3d3f083537f9559"
SRC_URI[archive.sha256sum] = "532101f5721eb9540fcac37bf6feb79449c4d5d66dbb7331dd1d3560c68abad9"
SRC_URI[bootstream.md5sum] = "8aa29fc431f349b22d147b5cec52927b"
SRC_URI[bootstream.sha256sum] = "8dcf12cb6f749de2e373a780b8bbcee099ec23aad212d58131750caa7360c0eb"

S = "${WORKDIR}/bootstream-1.0"

do_compile () {
    oe_runmake 'LINUX_DIR=${STAGING_KERNEL_DIR}'
}

FILES_${PN} = "/boot"

addtask deploy before do_build after do_compile

do_deploy () {
    ./config_util --cmd=create \
        --mbr=/dev/zero \
        --configname=falconwing \
        --build_ver=1000 --force --pad \
        --blockdef=${S}/output/chumby_boot.rom,215040,boot,1,0,0,0 \
        --blockdef=${S}/images/4_1.bin,153600,img1,1,0,0,0 \
        --blockdef=${S}/images/4_2.bin,153600,img2,1,0,0,0 \
        --blockdef=${S}/images/5_1.bin,153600,img3,1,0,0,0 \
        --blockdef=${S}/images/5_2.bin,153600,img4,1,0,0,0 \
        --blockdef=${S}/images/5_3.bin,153600,img5,1,0,0,0 \
        --blockdef=${DEPLOY_DIR_IMAGE}/zImage-${MACHINE}.bin,4194304,krnA,1,0,0,0 \
        --blockdef=${DEPLOY_DIR_IMAGE}/zImage-${MACHINE}.bin,4194304,krnB,1,0,0,0 \
        > ${S}/output/config_block.bin
    install -d ${DEPLOY_DIR_IMAGE}
    rm -f ${DEPLOY_DIR_IMAGE}/boot.bin
    touch ${DEPLOY_DIR_IMAGE}/boot.bin
    dd if=../bootstream-chumby.bin of=${DEPLOY_DIR_IMAGE}/boot.bin seek=0 count=64
    dd if=${S}/output/config_block.bin of=${DEPLOY_DIR_IMAGE}/boot.bin seek=96 count=32
    dd if=${S}/output/chumby_boot.rom of=${DEPLOY_DIR_IMAGE}/boot.bin seek=128 count=420
    dd if=${S}/images/4_1.bin of=${DEPLOY_DIR_IMAGE}/boot.bin seek=548 count=300
    dd if=${S}/images/4_2.bin of=${DEPLOY_DIR_IMAGE}/boot.bin seek=848 count=300
    dd if=${S}/images/5_1.bin of=${DEPLOY_DIR_IMAGE}/boot.bin seek=1148 count=300
    dd if=${S}/images/5_2.bin of=${DEPLOY_DIR_IMAGE}/boot.bin seek=1448 count=300
    dd if=${S}/images/5_3.bin of=${DEPLOY_DIR_IMAGE}/boot.bin seek=1748 count=300
    dd if=${DEPLOY_DIR_IMAGE}/zImage-${MACHINE}.bin of=${DEPLOY_DIR_IMAGE}/boot.bin seek=2048 count=8192
    dd if=${DEPLOY_DIR_IMAGE}/zImage-${MACHINE}.bin of=${DEPLOY_DIR_IMAGE}/boot.bin seek=10240 count=8192
    package_stagefile_shell ${DEPLOY_DIR_IMAGE}/boot.bin
}