diff options
Diffstat (limited to 'recipes-bsp/imx-bootlets')
4 files changed, 183 insertions, 0 deletions
diff --git a/recipes-bsp/imx-bootlets/imx-bootlets/add-command-script-for-barebox.patch b/recipes-bsp/imx-bootlets/imx-bootlets/add-command-script-for-barebox.patch new file mode 100644 index 00000000..1deca1cb --- /dev/null +++ b/recipes-bsp/imx-bootlets/imx-bootlets/add-command-script-for-barebox.patch @@ -0,0 +1,46 @@ +imx-bootlets: Add command script for barebox + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> + +diff --git a/barebox_ivt.bd b/barebox_ivt.bd +new file mode 100644 +index 0000000..79cbccf +--- /dev/null ++++ b/barebox_ivt.bd +@@ -0,0 +1,34 @@ ++// STMP378x ROM command script to load and run barebox ++ ++sources { ++ power_prep="imx-bootlets-power_prep-@MACHINE@"; ++ sdram_prep="imx-bootlets-boot_prep-@MACHINE@"; ++ barebox="barebox-@MACHINE@.bin"; ++} ++ ++section (0) { ++ ++ //---------------------------------------------------------- ++ // Power Supply initialization ++ //---------------------------------------------------------- ++ ++ load power_prep; ++ load ivt (entry = power_prep:_start) > 0x8000; ++ hab call 0x8000; ++ ++ //---------------------------------------------------------- ++ // SDRAM initialization ++ //---------------------------------------------------------- ++ ++ load sdram_prep; ++ load ivt (entry = sdram_prep:_start) > 0x8000; ++ hab call 0x8000; ++ //---------------------------------------------------------- ++ // Load and call barebox - ELF ARM image ++ //---------------------------------------------------------- ++ ++ load barebox; ++ load ivt (entry = barebox:start) > 0x8000; ++ hab call 0x8000; ++ ++} diff --git a/recipes-bsp/imx-bootlets/imx-bootlets/linux-fix-paths.patch b/recipes-bsp/imx-bootlets/imx-bootlets/linux-fix-paths.patch new file mode 100644 index 00000000..d54add12 --- /dev/null +++ b/recipes-bsp/imx-bootlets/imx-bootlets/linux-fix-paths.patch @@ -0,0 +1,28 @@ +imx-bootlets: Fix paths for used during boot stream generation + +This will be run during image generation thus this won't use a +complete path to allow for relocation. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> + +diff --git a/linux.bd b/linux.bd +index 516f4f2..366ac22 100644 +--- a/linux.bd ++++ b/linux.bd +@@ -4,10 +4,10 @@ + flags = 0x01; + } + sources { +- power_prep="./power_prep/power_prep"; +- sdram_prep="./boot_prep/boot_prep"; +- linux_prep="./linux_prep/output-target/linux_prep"; +- zImage = "./zImage"; ++ power_prep="imx-bootlets-power_prep-@MACHINE@"; ++ sdram_prep="imx-bootlets-boot_prep-@MACHINE@"; ++ linux_prep="imx-bootlets-linux_prep-@MACHINE@"; ++ zImage="zImage-@MACHINE@.bin@DTB@"; + } + + section (0) { diff --git a/recipes-bsp/imx-bootlets/imx-bootlets/linux_prep-fix-cmdlines.patch b/recipes-bsp/imx-bootlets/imx-bootlets/linux_prep-fix-cmdlines.patch new file mode 100644 index 00000000..4fb4c519 --- /dev/null +++ b/recipes-bsp/imx-bootlets/imx-bootlets/linux_prep-fix-cmdlines.patch @@ -0,0 +1,30 @@ +imx-bootlets: Fix cmdlines for Linux boot + +This adapt the cmdlines for the partitioning layout used on the +generated SD cards. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> + +diff --git a/linux_prep/cmdlines/iMX28_EVK.txt b/linux_prep/cmdlines/iMX28_EVK.txt +index 6bc36b9..6cf89a0 100644 +--- a/linux_prep/cmdlines/iMX28_EVK.txt ++++ b/linux_prep/cmdlines/iMX28_EVK.txt +@@ -1 +1 @@ +-console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait ++console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait +diff --git a/linux_prep/cmdlines/stmp378x_dev.txt b/linux_prep/cmdlines/stmp378x_dev.txt +index 9a717eb..fdb7390 100644 +--- a/linux_prep/cmdlines/stmp378x_dev.txt ++++ b/linux_prep/cmdlines/stmp378x_dev.txt +@@ -1,6 +1,3 @@ +-console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait lcd_panel=lms430 no_console_suspend +-console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait lcd_panel=lms350 +-console=ttyAM0,115200 ssp1=spi1 ubi.mtd=2 root=ubi0:rootfs0 rootfstype=ubifs lcd_panel=lms430 +- +- +- ++console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait ssp1=mmc lcd_panel=lms430 no_console_suspend ++console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait ssp1=mmc lcd_panel=lms350 ++console=ttyAMA0,115200 ssp1=spi1 ubi.mtd=2 root=ubi0:rootfs0 rootfstype=ubifs lcd_panel=lms430 diff --git a/recipes-bsp/imx-bootlets/imx-bootlets_10.12.01.bb b/recipes-bsp/imx-bootlets/imx-bootlets_10.12.01.bb new file mode 100644 index 00000000..6084f169 --- /dev/null +++ b/recipes-bsp/imx-bootlets/imx-bootlets_10.12.01.bb @@ -0,0 +1,79 @@ +DESCRIPTION = "i.MXS boot streams" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +PR = "r5" + +SRC_URI = "http://download.ossystems.com.br/bsp/freescale/source/imx-bootlets-src-${PV}.tar.gz \ + file://linux-fix-paths.patch \ + file://linux_prep-fix-cmdlines.patch \ + file://add-command-script-for-barebox.patch" + +SRC_URI[md5sum] = "cf0ab3822dca694b930a051501c1d0e4" +SRC_URI[sha256sum] = "63f6068ae36884adef4259bbb1fe2591755718f22c46d0a59d854883dfab1ffc" + +S = "${WORKDIR}/imx-bootlets-src-${PV}" + +inherit deploy + +# Disable parallel building or it may fail to build. +PARALLEL_MAKE = "" + +EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}" + +# Ensure machine defines the IMXBOOTLETS_MACHINE +python () { + if not d.getVar("IMXBOOTLETS_MACHINE", True): + PN = d.getVar("PN", True) + FILE = os.path.basename(d.getVar("FILE", True)) + bb.debug(1, "To build %s, see %s for instructions on \ + setting up your machine config" % (PN, FILE)) + raise bb.parse.SkipPackage("because IMXBOOTLETS_MACHINE is not set") +} + +do_configure () { + # Use machine specific binaries + sed 's,@MACHINE@,${MACHINE},g;s,@DTB@,-dtb,g' < linux.bd > linux.bd-dtb + sed -i 's,@MACHINE@,${MACHINE},g;s,@DTB@,,g' linux.bd + sed -i 's,@MACHINE@,${MACHINE},g' barebox_ivt.bd +} + +do_compile () { + oe_runmake BOARD=${IMXBOOTLETS_MACHINE} linux_prep \ + boot_prep \ + power_prep \ + 'CC=${TARGET_PREFIX}gcc --sysroot="${STAGING_DIR_TARGET}"' \ + 'LD=${TARGET_PREFIX}ld --sysroot="${STAGING_DIR_TARGET}"' +} + +do_install () { + install -d ${D}/boot/ + install -m 644 boot_prep/boot_prep power_prep/power_prep \ + linux_prep/output-target/linux_prep \ + linux.bd linux.bd-dtb \ + barebox_ivt.bd \ + ${D}/boot +} + +FILES_${PN} = "/boot" + +do_deploy () { + install -d ${DEPLOYDIR} + + for f in boot_prep/boot_prep \ + power_prep/power_prep \ + linux_prep/output-target/linux_prep \ + barebox_ivt.bd \ + linux.bd linux.bd-dtb; do + full_name="imx-bootlets-`basename $f`-${MACHINE}-${PV}-${PR}" + symlink_name="imx-bootlets-`basename $f`-${MACHINE}" + + install -m 644 ${S}/$f ${DEPLOYDIR}/$full_name + (cd ${DEPLOYDIR} ; rm -f $symlink_name ; ln -sf $full_name $symlink_name) + done +} + +addtask deploy before do_build after do_compile + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(mxs)" |