[meta-freescale] [meta-fsl-arm][PATCH v2 2/6] Add u-boot recipe for Layerscape1 support

Otavio Salvador otavio at ossystems.com.br
Sun Aug 31 12:54:25 PDT 2014


On Thu, Aug 28, 2014 at 8:53 AM, zhenhua.luo at freescale.com
<zhenhua.luo at freescale.com> wrote:
>> -----Original Message-----
>> From: otavio.salvador at gmail.com [mailto:otavio.salvador at gmail.com] On
>> Behalf Of Otavio Salvador
>> Sent: Wednesday, August 27, 2014 8:55 PM
>>
>> On Wed, Aug 27, 2014 at 1:57 AM, Zhenhua Luo <zhenhua.luo at freescale.com>
>> wrote:
>>
>> > +do_stage_endian_swap_tool () {
>> > +    install -m 755 ${S}/byte_swap.tcl ${STAGING_BINDIR_NATIVE} }
>> > +
>> > +addtask stage_endian_swap_tool before do_compile after do_patch
>>
>> What this tcl script does? it seems it should be split from here.
> [Luo Zhenhua-B19537] the script swaps the byte for QSPI boot image, currently it is maintained in ls1 u-boot  What do you mean by "split from here"?

This has been discussed in the other message and you agreed in split
this out. So I am just commenting here for completeness.

>> > +    if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
>> > +    then
>> > +        head=`git rev-parse --verify --short HEAD 2> /dev/null`
>> > +        printf "%s%s%s" ${UBOOT_LOCALVERSION} +g $head >
>> ${B}/.scmversion
>> > +        printf "%s%s%s" ${UBOOT_LOCALVERSION} +g $head >
>> ${S}/.scmversion
>> > +    fi
>>
>> UBOOT_LOCALVERSION is already supported in u-boot.inc
> [Luo Zhenhua-B19537] The UBOOT_LOCALVERSION code is in do_compile function, LS1 build process is different from the definition in poky/meta/recipes-bsp/u-boot/u-boot.inc, so we rewrite the function and keep the code UBOOT_LOCALVERSION code here.

I will handle this as the same way I will do for the kernel and I will
provide a class for us to share this code.

>> > +    if [ "x${UBOOT_MACHINES}" = "x" ]; then
>> > +        UBOOT_MACHINES="${UBOOT_MACHINE}"
>> > +    fi
>> > +
>> > +    for board in ${UBOOT_MACHINES}; do
>> > +        oe_runmake O=${board} distclean
>> > +        oe_runmake O=${board} ${board}
>> > +        oe_runmake O=${board} all
>> > +        case "${board}" in
>> > +             *sdcard*) UBOOT_TARGET="u-boot-with-spl-pbl";;
>> > +             *nand*)   UBOOT_TARGET="u-boot-with-spl-pbl";;
>> > +             *spi*)    UBOOT_TARGET="u-boot-qspiboot_swap"
>> > +                       ${bindir}/tclsh byte_swap.tcl ${S}/${board}/u-
>> boot.bin ${S}/${board}/${UBOOT_TARGET}.bin 8 ;;
>> > +             *)        UBOOT_TARGET="u-boot";;
>> > +        esac
>> > +    done
>> > +}
>> > +
>> > +do_install(){
>> > +    if [ "x${UBOOT_MACHINES}" = "x" ]; then
>> > +        UBOOT_MACHINES="${UBOOT_MACHINE}"
>> > +    fi
>> > +
>> > +    for board in ${UBOOT_MACHINES}; do
>> > +        case "${board}" in
>> > +             *sdcard*) UBOOT_TARGET="u-boot-with-spl-pbl";;
>> > +             *nand*)   UBOOT_TARGET="u-boot-with-spl-pbl";;
>> > +             *spi*)    UBOOT_TARGET="u-boot-qspiboot_swap";;
>> > +             *)        UBOOT_TARGET="u-boot";;
>> > +        esac
>> > +
>> > +        if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then
>> > +            install -d ${D}/boot/
>> > +            install ${S}/${board}/${UBOOT_TARGET}.bin
>> ${D}/boot/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
>> > +            ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
>> ${D}/boot/${UBOOT_TARGET}.bin
>> > +        fi
>> > +    done
>> > +}
>> > +
>> > +do_deploy(){
>> > +    if [ "x${UBOOT_MACHINES}" = "x" ]; then
>> > +        UBOOT_MACHINES="${UBOOT_MACHINE}"
>> > +    fi
>> > +
>> > +    for board in ${UBOOT_MACHINES}; do
>> > +        case "${board}" in
>> > +             *sdcard*) UBOOT_TARGET="u-boot-with-spl-pbl";;
>> > +             *nand*)   UBOOT_TARGET="u-boot-with-spl-pbl";;
>> > +             *spi*)    UBOOT_TARGET="u-boot-qspiboot_swap";;
>> > +             *)        UBOOT_TARGET="u-boot";;
>> > +        esac
>> > +
>> > +        if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then
>> > +            mkdir -p ${DEPLOYDIR}
>> > +            install ${S}/${board}/${UBOOT_TARGET}.bin
>> ${DEPLOYDIR}/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
>> > +            cd ${DEPLOYDIR}
>> > +            rm -f ${UBOOT_TARGET}-${board}.bin
>> > +            ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
>> ${UBOOT_TARGET}-${board}.bin
>> > +        fi
>> > +    done
>> > +}
>> > +addtask deploy after do_install
>> > +
>> > +PACKAGES += "${PN}-images"
>> > +FILES_${PN}-images += "/boot"
>> > +
>> > +ALLOW_EMPTY_${PN} = "1"
>> > +
>> > +PACKAGE_ARCH = "${MACHINE_ARCH}"
>> > +COMPATIBLE_MACHINE = "(ls1021aqds|ls1021atwr)"
>> > +
>>
>> I understand why you are doing this all here but I think we need to
>> address this in the uboot-config.bbclass so we have a standard way for
>> this.
> [Luo Zhenhua-B19537] Does this mean UBOOT_MACHINE usage will be replaced by UBOOT_CONFIG usage?
>         Seems like only one u-boot config can be built at one time, is it possible to build multiple u-boot options at one build? This is the reason we rewrite the u-boot compile/install/deploy code.

When having several configs, the UBOOT_CONFIG is the way to go. The
possibility to build several binaries we need to add in Poky.

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


More information about the meta-freescale mailing list