From patchwork Sun Jan 7 05:10:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Derald D. Woods" X-Patchwork-Id: 856480 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="mptf3XOM"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zDmhK43lpz9s72 for ; Sun, 7 Jan 2018 16:10:56 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id C7B11C21F5D; Sun, 7 Jan 2018 05:10:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id B511FC21E90; Sun, 7 Jan 2018 05:10:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AEA1BC21EBD; Sun, 7 Jan 2018 05:10:28 +0000 (UTC) Received: from mail-it0-f66.google.com (mail-it0-f66.google.com [209.85.214.66]) by lists.denx.de (Postfix) with ESMTPS id 21042C21C2B for ; Sun, 7 Jan 2018 05:10:28 +0000 (UTC) Received: by mail-it0-f66.google.com with SMTP id r6so5939373itr.3 for ; Sat, 06 Jan 2018 21:10:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=+6EU5Vl7aiuioJOPn2oClt5AV+IOXielHhgEcby0ds0=; b=mptf3XOM5+ACeoiJxi+lIRFjqlg8QrUpw7LR84Zd2HBPSrdrcYmYwIeJmcbPKZl8ua 6wa6+mm0GqqphryAWQQ8WAPuHw7A675YS90fjpL9RwzXPLIt/zJ4i9BopVk3yNRln1dR Xs+qC8RElvTBo+4P7pXgAqlycovIUxHjt1GmAukWOtRwYATpRMEC7PNJnGA8hGSsbNWA xlHJtxMLxL+WeP32qi/GKJf1f/B0sb7Z2IGLK4HY52kz4GyOanHhk5+P3U9EuFDdVOEM v7PQJx+ka9P/NxXxN9ROCRPrT4bmyajciLCNgLAq1H4h2ZvbwQxq3mfdONLi4Z9HvGb3 AEqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=+6EU5Vl7aiuioJOPn2oClt5AV+IOXielHhgEcby0ds0=; b=N6cuxad+4w1z7RWjfNadg+Qaq2/GSbcnI1cxL97ONegUw4b4dJvX8YaeowOZb8dJLi MQzCnwqf8ctRpwzFLXmRx7cXL/vqsRJltgLTECbCZcru8XeVLN+6ejbv+DkDswqrXmDg Z0H39S/eILN72RNxAMzxnMNxyO1E9EgBnHXPLkq/grtZAjU4GeKDxWdZmvh40f8hxP7A NWqxiPxQlj8xCwQxLnZ5RAojhFZSrdRdEYAXDRIzbrrvrwG7+t7eo/6sYzmAer5RnDNK 81A98VOXvd8BKGPwoR0HsYWs+Spt6aHv7hvbIX+mm5C0ZlxhOfFopAl2ZwXSp0I/wHLe qi7g== X-Gm-Message-State: AKGB3mJxqVJGtYDEK3iPGtw1Qa5WzlBjksxXJAdbyNA+4OGjpO/loLv3 xrD2pemEzcKtStCU1LqtxZn8Pw== X-Google-Smtp-Source: ACJfBosYD6todTJ6N1QJzgr01RX60gb+xc6O24hYSTGqob0hmibAxJmBfM8GBXYmc1nVqI8yHtoHPQ== X-Received: by 10.36.46.215 with SMTP id i206mr8105534ita.106.1515301826367; Sat, 06 Jan 2018 21:10:26 -0800 (PST) Received: from ethiopia.woodsts.org (c-73-74-196-48.hsd1.il.comcast.net. [73.74.196.48]) by smtp.gmail.com with ESMTPSA id 15sm5464154ioh.14.2018.01.06.21.10.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Jan 2018 21:10:25 -0800 (PST) From: "Derald D. Woods" To: u-boot@lists.denx.de Date: Sat, 6 Jan 2018 23:10:06 -0600 Message-Id: <20180107051006.6343-1-woods.technical@gmail.com> X-Mailer: git-send-email 2.15.1 Cc: trini@konsulko.com Subject: [U-Boot] [PATCH] ARM: omap3: evm: Add kernel image loading from UBIFS and EXT4 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This commit adds UBIFS_NAND to BOOT_TARGET_DEVICES. This will allow the kernel zImage to be loaded from '/boot/zImage' in UBIFS (ubi0:rootfs). Additionally update the *_MMC devices to also load kernel image from the MMC 0:2 EXT4 file system. DISTRO_DEFAULTS Setup ===================== [primary] Check MMC 0:1 for /extlinux/extlinux.conf and boot [fallback 1] Check MMC 0:2 /boot/zImage and run mmcbootz [fallback 2] Check MMC 0:2 /boot/uImage and run mmcboot [fallback 3] Check NAND UBIFS /boot/zImage and run nandbootubifs [fallback 4] Check NAND partitions and run nandboot The following "extlinux.conf" can be used to load images in the top-level of the MMC 0:1 FAT partition. [MMC(0:1)/extlinux/extlinux.conf] ---8<------------------------------------------------------------------- default omap3-evm label omap3-evm kernel /zImage fdt /omap3-evm.dtb append console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait ---8<------------------------------------------------------------------- Signed-off-by: Derald D. Woods --- include/configs/omap3_evm.h | 57 +++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h index d95ccdf035..3ecfdbb3ce 100644 --- a/include/configs/omap3_evm.h +++ b/include/configs/omap3_evm.h @@ -89,28 +89,35 @@ #define MEM_LAYOUT_ENV_SETTINGS \ DEFAULT_LINUX_BOOT_ENV -#if defined(CONFIG_NAND) +#if defined(CONFIG_NAND) && defined(CONFIG_CMD_UBI) +/* NAND boot with uImage from NAND 'kernel' partition */ #define BOOTENV_DEV_NAND(devtypeu, devtypel, instance) \ "bootcmd_" #devtypel #instance "=" \ "run nandboot\0" - #define BOOTENV_DEV_NAME_NAND(devtypeu, devtypel, instance) \ #devtypel #instance " " -#endif /* CONFIG_NAND */ +/* NAND boot with zImage from UBIFS '/boot/zImage' */ +#define BOOTENV_DEV_UBIFS_NAND(devtypeu, devtypel, instance) \ + "bootcmd_" #devtypel #instance "=" \ + "run nandbootubifs\0" +#define BOOTENV_DEV_NAME_UBIFS_NAND(devtypeu, devtypel, instance) \ + #devtypel #instance " " +#endif /* CONFIG_NAND && CONFIG_CMD_UBI */ + +/* MMC boot with uImage from MMC 0:2 '/boot/uImage' */ #define BOOTENV_DEV_UIMAGE_MMC(devtypeu, devtypel, instance) \ "bootcmd_" #devtypel #instance "=" \ "setenv mmcdev " #instance"; " \ "run mmcboot\0" - #define BOOTENV_DEV_NAME_UIMAGE_MMC(devtypeu, devtypel, instance) \ #devtypel #instance " " +/* MMC boot with zImage from MMC 0:2 '/boot/zImage' */ #define BOOTENV_DEV_ZIMAGE_MMC(devtypeu, devtypel, instance) \ "bootcmd_" #devtypel #instance "=" \ "setenv mmcdev " #instance"; " \ "run mmcbootz\0" - #define BOOTENV_DEV_NAME_ZIMAGE_MMC(devtypeu, devtypel, instance) \ #devtypel #instance " " @@ -118,6 +125,7 @@ func(MMC, mmc, 0) \ func(ZIMAGE_MMC, zimage_mmc, 0) \ func(UIMAGE_MMC, uimage_mmc, 0) \ + func(UBIFS_NAND, ubifs_nand, 0) \ func(NAND, nand, 0) #include @@ -128,9 +136,11 @@ "mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \ "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \ "fdt_high=0xffffffff\0" \ + "bootdir=/boot\0" \ "bootenv=uEnv.txt\0" \ "optargs=\0" \ "mmcdev=0\0" \ + "mmcpart=2\0" \ "console=ttyO0,115200n8\0" \ "mmcargs=setenv bootargs console=${console} " \ "${mtdparts} " \ @@ -143,39 +153,52 @@ "root=ubi0:rootfs rw ubi.mtd=rootfs noinitrd " \ "rootfstype=ubifs rootwait\0" \ "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ + "ext4bootenv=ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootenv}\0" \ "importbootenv=echo Importing environment from mmc ...; " \ "env import -t ${loadaddr} ${filesize}\0" \ - "mmcbootenv=" \ - "mmc dev ${mmcdev}; " \ - "if mmc rescan && run loadbootenv; then " \ - "run importbootenv; " \ + "mmcbootenv=mmc dev ${mmcdev}; " \ + "if mmc rescan; then " \ + "run loadbootenv && run importbootenv; " \ + "run ext4bootenv && run importbootenv; " \ "if test -n $uenvcmd; then " \ "echo Running uenvcmd ...; " \ "run uenvcmd; " \ "fi; " \ "fi\0" \ "loaduimage=setenv bootfile uImage; " \ - "fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ + "ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ "loadzimage=setenv bootfile zImage; " \ - "fatload mmc ${mmcdev} ${loadaddr} zImage\0" \ - "loaddtb=fatload mmc ${mmcdev} ${fdtaddr} ${fdtfile}\0" \ + "ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ + "loaddtb=ext4load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ + "loadubizimage=setenv bootfile zImage; " \ + "ubifsload ${loadaddr} ${bootdir}/${bootfile}\0" \ + "loadubidtb=ubifsload ${fdtaddr} ${bootdir}/${fdtfile}\0" \ "mmcboot=run mmcbootenv; " \ "if run loaduimage && run loaddtb; then " \ - "echo Booting ${bootfile} from mmc ...; " \ + "echo Booting ${bootdir}/${bootfile} from mmc ${mmcdev}:${mmcpart} ...; " \ "run mmcargs; " \ "bootm ${loadaddr} - ${fdtaddr}; " \ "fi\0" \ "mmcbootz=run mmcbootenv; " \ "if run loadzimage && run loaddtb; then " \ - "echo Booting ${bootfile} from mmc ...; " \ + "echo Booting ${bootdir}/${bootfile} from mmc ${mmcdev}:${mmcpart} ...; " \ "run mmcargs; " \ - "bootz ${loadaddr} - ${fdtaddr};" \ + "bootz ${loadaddr} - ${fdtaddr}; " \ "fi\0" \ - "nandboot=echo Booting uImage from nand ...; " \ - "run nandargs; " \ + "nandboot=" \ "nand read ${loadaddr} kernel; " \ "nand read ${fdtaddr} dtb; " \ + "echo Booting uImage from NAND MTD 'kernel' partition ...; " \ + "run nandargs; " \ "bootm ${loadaddr} - ${fdtaddr}\0" \ + "nandbootubifs=" \ + "ubi part rootfs; " \ + "ubifsmount ubi0:rootfs; " \ + "if run loadubizimage && run loadubidtb; then " \ + "echo Booting ${bootdir}/${bootfile} from NAND ubi0:rootfs ...; " \ + "run nandargs; " \ + "bootz ${loadaddr} - ${fdtaddr}; " \ + "fi\0" \ BOOTENV #endif /* __CONFIG_H */