From patchwork Thu Jan 24 05:22:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Priyanka Jain X-Patchwork-Id: 1030280 X-Patchwork-Delegate: prabhakar@freescale.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; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="GPVgMZ+H"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43lVsS5jVgz9s4s for ; Thu, 24 Jan 2019 16:22:32 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 5D1A4C21DD9; Thu, 24 Jan 2019 05:22:26 +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=SPF_HELO_PASS, 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 0DBDFC21C38; Thu, 24 Jan 2019 05:22:24 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 695C6C21C57; Thu, 24 Jan 2019 05:22:22 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70057.outbound.protection.outlook.com [40.107.7.57]) by lists.denx.de (Postfix) with ESMTPS id C75BFC21C38 for ; Thu, 24 Jan 2019 05:22:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ftqWV10ejtER6sxrDacqKw+pFBiUGzLWTm9rUMNX4Wo=; b=GPVgMZ+Hhi0NqLo7MKLIAkP2bckfq0CKKReU6tz3FHlQD+dCWEkd9qp2cruRygxvZXN8zzRxfcdO8sWCyvt2KzSQOwZPnXDtfAN4oRXwp+r8zJtoIqor796R1eGSg5s1I9PPar9WVVDpVtqWT7+gnGD0YSpVd16oJIlhLojXlPc= Received: from VI1PR04MB4942.eurprd04.prod.outlook.com (20.177.49.207) by VI1PR04MB1054.eurprd04.prod.outlook.com (10.161.109.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.17; Thu, 24 Jan 2019 05:22:19 +0000 Received: from VI1PR04MB4942.eurprd04.prod.outlook.com ([fe80::2d9f:f6e:6bf7:b119]) by VI1PR04MB4942.eurprd04.prod.outlook.com ([fe80::2d9f:f6e:6bf7:b119%6]) with mapi id 15.20.1537.031; Thu, 24 Jan 2019 05:22:19 +0000 From: Priyanka Jain To: "u-boot@lists.denx.de" , York Sun Thread-Topic: [PATCH][v3] board/lx2160ardb: Add distro boot support Thread-Index: AQHUs6TGDjLI1utdc0GX9Utjkfkfhg== Date: Thu, 24 Jan 2019 05:22:18 +0000 Message-ID: <1548307216-5423-1-git-send-email-priyanka.jain@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SG2PR06CA0122.apcprd06.prod.outlook.com (2603:1096:1:1d::24) To VI1PR04MB4942.eurprd04.prod.outlook.com (2603:10a6:803:57::15) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 1.9.1 x-originating-ip: [92.120.1.66] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR04MB1054; 6:K/Plzgs+6lPEKQ0DJY5FF05nzMiBgNR43hUhuIHye8vZRyyjmSktdOnybQHuHYLKHegkzGPjkvxbICO2/dQ0d6XLb8wJ93o1QiEMoGltVHyUK4GfK61MKGfwcdAIJelyaYP/Oj9X5MQGLaSwBWeoVJJP+nbhi1B3Rs1KhsrQ7lw6XM2N983t8Pgi24HJ41FcLAU7m2eSJjyiTehm7WiS7osxTNWhTa5pYrRzdjZ2JqiRH8KRLairE2RnFIiWYoBTJGMNVovotRLMEpkhWr/QIwj5FrTI7d5EGsjbCapI6ctoP7MvlyAMVsfpaeu6NbSPeyzOu5/hYcHQt9WrpbM0/Fh7Tljh+O8/xFV4o18ghEkKa6dfXxvuVbeftgs97SU27OGS9mYd4iXhBOCTQh14/uq5y6+4mTUpplGdvFjVG/dT9aNuZEqZJKRh17s0u4R2RtdND7GMxArEkj4zFaGrmg==; 5:UnOU7EpnRvMvWFSxBDA/bCzRNc1KaFdMZhbpIjZH45hLwr7qHYrbVU4ZXPN8pVwc1oYoCSYRbkVK/6Q+JH/iE+U/g0F1mOeyA4nzcJXoOjtGWweFFokztQ1TYvjB+9vElJI9rZXg35kmPBiUCK3XWOKbdn9z+WLVaf+mi/fIRor1xWk0+8wnVgmKhcnRF4LF5zniPmQPEeEyngkUPwUWjA==; 7:iwxKdauBXnojAGRSdpSVTUYUdAB+Q2hQdbuLDDHqx246GMCyvinOFa04DfUAJZqH+pKPpM11SPgsnOTBKg+JefSlRY+BxyjAQHqGZLSXKoEMNONxP5cgADtswF3EHjQgz2aNxmsTVvPK1D8kH6xTWg== x-ms-office365-filtering-correlation-id: 310049e3-39a1-4a27-8504-08d681bbe8a7 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB1054; x-ms-traffictypediagnostic: VI1PR04MB1054: authentication-results: spf=none (sender IP is ) smtp.mailfrom=priyanka.jain@nxp.com; x-microsoft-antispam-prvs: x-forefront-prvs: 0927AA37C7 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(396003)(136003)(39860400002)(189003)(199004)(71190400001)(71200400001)(86362001)(36756003)(52116002)(50226002)(486006)(966005)(2501003)(305945005)(97736004)(7736002)(25786009)(14444005)(4326008)(6306002)(6512007)(44832011)(53936002)(256004)(6486002)(6436002)(68736007)(105586002)(106356001)(99286004)(316002)(4743002)(14454004)(8676002)(2906002)(110136005)(81156014)(8936002)(81166006)(6506007)(386003)(478600001)(66066001)(102836004)(6636002)(6116002)(3846002)(186003)(476003)(26005)(2616005)(139555002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB1054; H:VI1PR04MB4942.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: e+vdA9P7U9YeEDtN5eulMw5+PCZhssqEHhaEJtiwIlPGJC4VlFqAnkZYQYGl0ZOh9O8ypgB/icTMrvcIdsg0zrpKTgQPueFwWoKJwODX+hszZg1zqjD84h+zbXSYpK3fjuaz/wS2VPlB9dO2J4tGza/mDUAa9OjBVi/qXUTKrCKQ1KEr7R6rjKsZceoJC4Zk1FRQEFUjsNIVvFQ5IjiQ4CRzH+Xyq4D9bT5y1CUSv3smlPyp8CEgviVclJItY84VDC1G+9SwpQU/oKzpliDvs3X1nSF4o1bxNHf6sfPUGZbRoAzFkT1lObEwtcIzpR5hATL9WJoj1hzHz8rRqPIRfQsBaQOkR8zxindaHfgov/NWxrE89Vtu6kafLx90N0/lP+GP/xBG5clrgGgBLzzmPfa+uHSwtR6KTbjAP8olHmE= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 310049e3-39a1-4a27-8504-08d681bbe8a7 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jan 2019 05:22:16.7403 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB1054 Cc: Priyanka Jain Subject: [U-Boot] [PATCH][v3] board/lx2160ardb: Add distro boot support 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: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add u-boot enviroments to support distro boot which scan boot.scr from external storage devices (e.g. SD/USB/SCSI disk) and execute autoboot script Signed-off-by: Priyanka Jain --- Depends on https://patchwork.ozlabs.org/patch/990094/ Changes for v3: Add USB as boot target device Changes for v2: xspi_bootcmd, sd_bootcmd env variables are dependent on board. So, move the definition from lx2160a_common.h file to lx2160ardb.h file configs/lx2160ardb_tfa_defconfig | 3 +- includefigs/lx2160a_common.h | 85 +++++++++++++++++++++++++++++++++++----- include/configs/lx2160ardb.h | 29 +++++++------- 3 files changed, 91 insertions(+), 26 deletions diff --git a/configs/lx2160ardb_tfa_defconfig b/configs/lx2160ardb_tfa_defconfig index 67ba96b..8fb4950 100644 --- a +++ b/configs/lx2160ardb_tfa_defconfig @@ -6,7 +6,6 @@ CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y CONFIG_DEFAULT_DEVICE_TREE="fsl-lx2160a-rdb" CONFIG_NR_DRAM_BANKS=3 CONFIG_DM=y -CONFIG_FIT=y CONFIG_FIT_VERBOSE=y CONFIG_OF_BOARD_SETUP=y CONFIG_OF_STDOUT_VIA_ALIAS=y @@ -14,7 +13,7 @@ CONFIG_TFABOOT=y CONFIG_BOOTDELAY=10 CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyAMA0,115200 root=/dev/ram0 earlycon=pl011,mmio32,0x21c0000 ramdisk_size=0x2000000 default_hugepagesz=1024m hugepagesz=1024m hugepages=2 pci=pcie_bus_perf" -# CONFIG_CMD_IMLS is not set +# CONFIG_USE_BOOTCOMMAND is not set CONFIG_CMD_GREPENV=y CONFIG_CMD_EEPROM=y CONFIG_CMD_GPT=y diff --git a/include/configs/lx2160a_common.h b/include/configs/lx2160a_common.h index 41931e5..0e0e72d 100644 --- a/include/configs/lx2160a_common.h +++ b/include/configs/lx2160a_common.h @@ -193,16 +193,6 @@ unsigned long get_board_ddr_clk(void); #define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size */ /* Initial environment variables */ -#define XSPI_NOR_BOOTCOMMAND "fsl_mc apply dpl 0x20d00000;" \ - "sf probe 0:0;" \ - "sf read 0xa0000000 0x1000000 0x3000000;" \ - "bootm 0xa0000000" - -#define SD_BOOTCOMMAND "mmc read 0xa0000000 0x6800 0xA0;" \ - "fsl_mc apply dpl 0xa0000000;" \ - "mmc read 0xb0000000 0x8000 0x1d000;" \ - "bootm 0xb0000000" - #define XSPI_MC_INIT_CMD \ "fsl_mc start mc 0x20a00000 0x20e00000\0" @@ -211,4 +201,79 @@ unsigned long get_board_ddr_clk(void); "mmc read 0x80100000 0x7000 0x800;" \ "fsl_mc start mc 0x80000000 0x80100000\0" +#define EXTRA_ENV_SETTINGS \ + "hwconfig=fsl_ddr:bank_intlv=auto\0" \ + "ramdisk_addr=0x800000\0" \ + "ramdisk_size=0x2000000\0" \ + "fdt_high=0xa0000000\0" \ + "initrd_high=0xffffffffffffffff\0" \ + "fdt_addr=0x64f00000\0" \ + "kernel_start=0x1000000\0" \ + "kernelheader_start=0x800000\0" \ + "scriptaddr=0x80000000\0" \ + "scripthdraddr=0x80080000\0" \ + "fdtheader_addr_r=0x80100000\0" \ + "kernelheader_addr_r=0x80200000\0" \ + "kernel_addr_r=0x81000000\0" \ + "kernelheader_size=0x40000\0" \ + "fdt_addr_r=0x90000000\0" \ + "load_addr=0xa0000000\0" \ + "kernel_size=0x2800000\0" \ + "kernel_addr_sd=0x8000\0" \ + "kernel_size_sd=0x1d000\0" \ + "console=ttyAMA0,38400n8\0" \ + BOOTENV \ + "mcmemsize=0x70000000\0" \ + XSPI_MC_INIT_CMD \ + "boot_scripts=lx2160ardb_boot.scr\0" \ + "boot_script_hdr=hdr_lx2160ardb_bs.out\0" \ + "scan_dev_for_boot_part=" \ + "part list ${devtype} ${devnum} devplist; " \ + "env exists devplist || setenv devplist 1; " \ + "for distro_bootpart in ${devplist}; do " \ + "if fstype ${devtype} " \ + "${devnum}:${distro_bootpart} " \ + "bootfstype; then " \ + "run scan_dev_for_boot; " \ + "fi; " \ + "done\0" \ + "scan_dev_for_boot=" \ + "echo Scanning ${devtype} " \ + "${devnum}:${distro_bootpart}...; " \ + "for prefix in ${boot_prefixes}; do " \ + "run scan_dev_for_scripts; " \ + "done;\0" \ + "boot_a_script=" \ + "load ${devtype} ${devnum}:${distro_bootpart} " \ + "${scriptaddr} ${prefix}${script}; " \ + "env exists secureboot && load ${devtype} " \ + "${devnum}:${distro_bootpart} " \ + "${scripthdraddr} ${prefix}${boot_script_hdr} " \ + "&& esbc_validate ${scripthdraddr};" \ + "source ${scriptaddr}\0" + +#define XSPI_NOR_BOOTCOMMAND \ + "env exists mcinitcmd && env exists secureboot "\ + "&& esbc_validate 0x20780000; " \ + "env exists mcinitcmd && " \ + "fsl_mc lazyapply dpl 0x20d00000; " \ + "run distro_bootcmd;run xspi_bootcmd; " \ + "env exists secureboot && esbc_halt;" + +#define SD_BOOTCOMMAND \ + "env exists mcinitcmd && mmcinfo; " \ + "mmc read 0x80001000 0x6800 0x800; " \ + "env exists mcinitcmd && env exists secureboot " \ + " && mmc read 0x80780000 0x3C00 0x10 " \ + "&& esbc_validate 0x80780000;env exists mcinitcmd " \ + "&& fsl_mc lazyapply dpl 0x80001000;" \ + "run distro_bootcmd;run sd_bootcmd;" \ + "env exists secureboot && esbc_halt;" + +#define BOOT_TARGET_DEVICES(func) \ + func(USB, usb, 0) \ + func(MMC, mmc, 0) \ + func(SCSI, scsi, 0) +#include + #endif /* __LX2_COMMON_H */ diff --git a/include/configs/lx2160ardb.h b/include/configs/lx2160ardb.h index 67d214d..8c91fea 100644 --- a/include/configs/lx2160ardb.h +++ b/include/configs/lx2160ardb.h @@ -81,21 +81,22 @@ /* Initial environment variables */ #define CONFIG_EXTRA_ENV_SETTINGS \ - "hwconfig=fsl_ddr:bank_intlv=auto\0" \ - "scriptaddr=0x80800000\0" \ - "kernel_addr_r=0x81000000\0" \ - "pxefile_addr_r=0x81000000\0" \ - "fdt_addr_r=0x88000000\0" \ - "ramdisk_addr_r=0x89000000\0" \ - "loadaddr=0x80100000\0" \ - "kernel_addr=0x100000\0" \ - "ramdisk_addr=0x800000\0" \ - "ramdisk_size=0x2000000\0" \ - "fdt_high=0xa0000000\0" \ - "initrd_high=0xffffffffffffffff\0" \ - "kernel_start=0x21000000\0" \ + EXTRA_ENV_SETTINGS \ "lx2160ardb_vdd_mv=800\0" \ - "mcmemsize=0x40000000\0" + "BOARD=lx2160ardb\0" \ + "xspi_bootcmd=echo Trying load from flexspi..;" \ + "sf probe 0:0 && sf read $load_addr " \ + "$kernel_start $kernel_size ; env exists secureboot &&" \ + "sf read $kernelheader_addr_r $kernelheader_start " \ + "$kernelheader_size && esbc_validate ${kernelheader_addr_r}; "\ + " bootm $load_addr#$BOARD\0" \ + "sd_bootcmd=echo Trying load from sd card..;" \ + "mmcinfo; mmc read $load_addr " \ + "$kernel_addr_sd $kernel_size_sd ;" \ + "env exists secureboot && mmc read $kernelheader_addr_r "\ + "$kernelhdr_addr_sd $kernelhdr_size_sd " \ + " && esbc_validate ${kernelheader_addr_r};" \ + "bootm $load_addr#$BOARD\0" #include