summaryrefslogtreecommitdiff
path: root/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb
blob: 65fff97c42b243b3a4d4fa347173455a0a15a69e (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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
require recipes-bsp/u-boot/u-boot-common.inc
require recipes-bsp/u-boot/u-boot.inc

LIC_FILES_CHKSUM = "file://Licenses/README;md5=2ca5f2c35c8cc335f0a19756634782f1"
DEPENDS += "bc-native dtc-native python3-setuptools-native"

# hash of release v2022.07"
PV = "2022.07"
SRCREV = "e092e3250270a1016c877da7bdd9384f14b1321e"
SRCREV:use-head-next = "${AUTOREV}"
# patches which are not (yet) in the used stable version
TDX_PATCHES = " \
    file://0001-toradex-tdx-cfg-block-use-only-snprintf.patch \
    file://0002-toradex-tdx-cfg-block-use-defines-for-string-length.patch \
    file://0003-toradex-tdx-cfg-block-extend-assembly-version.patch \
    file://0004-toradex-tdx-cfg-block-add-new-toradex-oui-range.patch \
    file://0005-toradex-tdx-cfg-block-add-0068-i.mx-8m-mini-sku.patch \
    file://0006-toradex-common-Remove-stale-comments-about-modules-a.patch \
    file://0007-toradex-common-Use-ARRAY_SIZE-macro.patch \
    file://0008-toradex-tdx-cfg-block-Cleanup-interactive-cfg-block-.patch \
    file://0009-toradex-common-Remove-stale-function-declaration.patch \
    file://0010-toradex-common-Remove-ifdef-usage-for-2nd-ethaddr.patch \
    file://0011-toradex-tdx-cfg-block-Use-official-SKU-names.patch \
    file://0012-toradex-common-Improve-product-serial-print-during-b.patch \
    file://0013-configs-colibri-imx7-Enable-bootd-command.patch \
    file://0001-ARM-imx8mp-verdin-imx8mp-Add-memory-size-detection.patch \
    file://0001-apalis-colibri_imx6-imx6ull-_imx7-update-env-memory-.patch \
    file://0001-configs-colibri-imx7-Fix-bad-block-table-in-flash-co.patch \
    file://0001-colibri_imx6-fix-RALAT-and-WALAT-values.patch \
"
# patches which are not (yet) in the latest master
TDX_PATCHES:use-head-next = " \
"
SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master"
SRC_URI:append = " ${TDX_PATCHES}"
SRC_URI:append:use-nxp-bsp:colibri-imx7 = " \
    file://0001-colibri_imx7-boot-linux-kernel-in-secure-mode.patch \
"

inherit toradex-u-boot-localversion

UBOOT_INITIAL_ENV = "u-boot-initial-env"

PADDING_DIR = "${B}"
nand_padding () {
    # pad the end of U-Boot with 0x00 up to the the end of the CSF area
    #PAD_END=$(echo -n "0x"; od -X  -j 0x24 -N 4 u-boot.imx | sed -e '/................/!d' -e 's/........\(.*\)/\1/')
    #PAD_END=$(( $PAD_END - 0x400 ))
    #objcopy -I binary -O binary --pad-to $PAD_END u-boot.imx u-boot.imx.zero-padded
    # assume that the above never need more than 10k of padding and skip the
    # shell magic to get a correct size.
    dd bs=10k count=1 if=/dev/zero | cat ${PADDING_DIR}/u-boot.imx - > ${PADDING_DIR}/u-boot.imx.zero-padded

    # U-Boot is flashed 1k into a NAND block, create a binary which prepends
    # U-boot with 1k of zeros to ease flashing
    dd bs=1024 count=1 if=/dev/zero | cat - ${PADDING_DIR}/u-boot.imx.zero-padded > ${PADDING_DIR}/u-boot-nand.imx
}

deploy_uboot_with_spl () {
    #Deploy u-boot-with-spl.imx
    if [ -n "${UBOOT_CONFIG}" ]
    then
        for config in ${UBOOT_MACHINE}; do
            i=$(expr $i + 1);
            for type in ${UBOOT_CONFIG}; do
                j=$(expr $j + 1);
                if [ $j -eq $i ]
                then
                    install -D -m 644 ${B}/${config}/u-boot-with-spl.imx ${DEPLOYDIR}/u-boot-with-spl.imx-${MACHINE}-${type}
                    ln -sf u-boot-with-spl.imx-${MACHINE}-${type} ${DEPLOYDIR}/u-boot-with-spl.imx
                fi
            done
            unset  j
        done
        unset  i
    else
        install -D -m 644 ${B}/${config}/u-boot-with-spl.imx ${DEPLOYDIR}/u-boot-with-spl.imx
    fi
}

# build imx-boot from within U-Boot
inherit ${@oe.utils.ifelse(d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '1', 'imx-boot-container', '')}
DEPENDS:imx-boot-container += "bc-native bison-native dtc-native python3-setuptools-native swig-native"

do_compile:append:colibri-imx6ull () {
    nand_padding
}

do_compile:append:colibri-imx7 () {
    nand_padding
}

do_deploy:append:colibri-imx6 () {
    deploy_uboot_with_spl
}

do_deploy:append:apalis-imx6 () {
    deploy_uboot_with_spl
}

BOOT_TOOLS = "imx-boot-tools"
do_deploy:append:mx8m-generic-bsp() {
    # Deploy u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary
    if [ -n "${UBOOT_CONFIG}" ]
    then
        for config in ${UBOOT_MACHINE}; do
            i=$(expr $i + 1);
            for type in ${UBOOT_CONFIG}; do
                j=$(expr $j + 1);
                if [ $j -eq $i ]
                then
                    install -d ${DEPLOYDIR}/${BOOT_TOOLS}
                    install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME}  ${DEPLOYDIR}/${BOOT_TOOLS}
                    install -m 0777 ${B}/${config}/u-boot-nodtb.bin  ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${type}
                fi
            done
            unset  j
        done
        unset  i
    fi
}

do_deploy:append:imx-boot-container() {
    # Deploy imx-boot
    if [ -n "${UBOOT_CONFIG}" ]
    then
        for config in ${UBOOT_MACHINE}; do
            i=$(expr $i + 1);
            for type in ${UBOOT_CONFIG}; do
                j=$(expr $j + 1);
                if [ $j -eq $i ]
                then
                    install -d ${DEPLOYDIR}
                    install -m 0644 ${B}/${config}/flash.bin ${DEPLOYDIR}/imx-boot-${MACHINE}-${type}
                    ln -sf imx-boot-${MACHINE}-${type} ${DEPLOYDIR}/imx-boot
                fi
            done
            unset  j
        done
        unset  i
    fi
}