From patchwork Thu Nov 2 04:22:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashish Kumar X-Patchwork-Id: 833200 X-Patchwork-Delegate: yorksun@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=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3ySBk862dKz9sP1 for ; Thu, 2 Nov 2017 15:21:52 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 842ABC21D75; Thu, 2 Nov 2017 04:21:49 +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=BAD_ENC_HEADER, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS 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 932CAC21C45; Thu, 2 Nov 2017 04:21:46 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 13A86C21C45; Thu, 2 Nov 2017 04:21:44 +0000 (UTC) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0056.outbound.protection.outlook.com [104.47.36.56]) by lists.denx.de (Postfix) with ESMTPS id 9F8DBC21C35 for ; Thu, 2 Nov 2017 04:21:43 +0000 (UTC) Received: from MWHPR03CA0022.namprd03.prod.outlook.com (10.175.133.160) by BN6PR03MB2692.namprd03.prod.outlook.com (10.173.144.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.178.6; Thu, 2 Nov 2017 04:21:41 +0000 Received: from BN1BFFO11FD033.protection.gbl (2a01:111:f400:7c10::1:188) by MWHPR03CA0022.outlook.office365.com (2603:10b6:300:117::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7 via Frontend Transport; Thu, 2 Nov 2017 04:21:41 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD033.mail.protection.outlook.com (10.58.144.96) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.178.5 via Frontend Transport; Thu, 2 Nov 2017 04:21:40 +0000 Received: from ubuntu1604.ap.freescale.net (ubuntu1604.ap.freescale.net [10.232.133.7]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id vA24Lbfx025300; Wed, 1 Nov 2017 21:21:38 -0700 From: Ashish Kumar To: Date: Thu, 2 Nov 2017 09:52:08 +0530 Message-ID: <1509596529-15895-1-git-send-email-Ashish.Kumar@nxp.com> X-Mailer: git-send-email 2.7.4 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131540701011543257; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(7966004)(346002)(39860400002)(376002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(53936002)(106466001)(48376002)(105606002)(2351001)(498600001)(72206003)(4326008)(50226002)(77096006)(189998001)(104016004)(50986999)(50466002)(97736004)(316002)(5003940100001)(356003)(47776003)(68736007)(36756003)(8936002)(6666003)(16586007)(8676002)(81166006)(2906002)(54906003)(81156014)(305945005)(6916009)(8656006)(86362001)(85426001)(5660300001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB2692; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD033; 1:xifnQINYtiZL6Qy3mLtzQzm+T1ImzmKnhc6Ent3i2y2+QWip8KGtf/cPmzTqOjTpqs/dhlWvyPWOKgYeM5Av92sudMz4CAHb+Z1SWSDBN+DYZVBjmAYfx8h81SeyUiVo MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b0bf531a-dd44-461b-2378-08d521a937c1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4628075)(201703131517081)(2017052603199); SRVR:BN6PR03MB2692; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2692; 3:ZKjFa2L1hPosXaEtr/9JEFyRwnQCfMANCmidTPEGtzwj2AS4CI+EDmmc4p6lK2xbDs0QsCtvBhflCHrMF+9qnnDDPSZbtSLy+zcaNpVI1PUCmNSyz2W0oj5r+wS7n09g31H8CoWcF2JtqunDQ8lPIVamfLVkL4n+5vyuQQWymlbuusDfZbkziiDlFTbDBIEvg0VlmXPyp6k0OJrf7MUCohsu4vxWU5aR0Nno/YD2c3pabbWciH15g9kaY3PmGzM2YAF8DXBECm1uko0kTsZ66Aotr4K23jD00h4lavT8suRO3F4voPjUZHJfBKMC3AHErtN1hPZ1qFLuiSRauGv7u0Mw3yKWavGxE579Hh6cUwc=; 25:USDvwuRteyevDRztdE2bVlIOc7/3z9qrzbFnGS5q58ihRUTFNDoUoxhoE6dFg68GRUBBH2bF5lajf+hBmeQwyIr4ucVvHCxLxIlGr840CVksVNlPjbYJfeAxqDjDq7TfV9cyA3M1YKN0qkSwk9pLywjMNnRPSa7egibLo9L21GYlqJmJ4m44u2wEF+AWIZAaVQRduG3/EKz+lTYvjr7clwvj/xItdTSwZPnkP1ffZLnT3dEwS+PjI5659VyT4fydY2EU0ZtyQ4R7F8G9IjF2P1kFmzz3SvDz+mmdy15vfZQE4O/uT9k30/CffG0daoh5YOXAe1yHNcwA2jqCqvrbYQ== X-MS-TrafficTypeDiagnostic: BN6PR03MB2692: X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2692; 31:ZPZ9wizxJ7ih7VbLGvv01ORT8wmM9H6dng5Lsay4sJT2nevq8cTgLKJZLg7uq0gZ/hcAlA/HZ0JUWPifUfAauVOMeI0uOW0mwhjm/V2Oi9gzWul7dAV+YW3fyRGtPyBPs8CA4KtXif3fxMwv0P6+k4ZXnxNwyrk/Ir6eiqr+f/ajUvI/F0mnPjL0fCzerjgGf0HVgepnbt2kyu4SNBHw8asF7sZwU+Fw7huNLLpQ1iU=; 4:MBXpEJBQDiOq1G5JTZGnAuXwT4HYTkTeX9H+HTvUZMyhc+KnFGvAFWJvnCUHjD8/gsbvMx9Z1mm9Ehjx1aUUMKKwwyKIxygxl3teXYicsxtaOCtQMDtjUe3MVK1TNDw/cVneO418RR6KtzxGfWzmHRKlk3eJfLPKDoYY0hCdTH7VmR1Rdhn7zbBZdAR3EY1sbp6vj8Aajk6Z/UOnjoXSSEJEoQ6xcbW/N6uBvrCcvnADJPSl2clWNU/cxRu3v2vwlH6a3VqSgad5KhBI80XVZI6lJO8NEQXg4abCAgvvnz9YUvADQx80g9XfGeU5i/6d X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(3231020)(6055026)(6096035)(20161123565025)(20161123561025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123563025)(20161123556025)(20161123559100)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR03MB2692; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR03MB2692; X-Forefront-PRVS: 047999FF16 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR03MB2692; 23:VCbwPx/+T2/G3sgRC+kE9bf5BC7SnJnxEbceQlAwm?= assrEzyQpMpd41lwTrqie9xyVdI9mJuD3xmWtDKg/wbOPCiD7Lshu/eYbEP0r3Pr/1tgOKoMnYAE5o/ave0MrQ6bXho0tG5OXO7urEQ0SR5lB9h6TJ5QMTICd9+NGLVji8+u/xaZEYdC+mOL8RW/blJiHX8LLh43lrbhD49BzaX7aH0XEDkYgBaBO/QHRkJt/eSLxG6+KbIjjwWvCoplZvc6dSIrUhnLL0D4GpmcMHcRhKWQB8J0wYriWfSRadheuJh6SLNoC76NerADtNYOnvr7wBf69DlTzjs6tLypcXcDfvngqN53XkrEyG0znCX/TdcahDf1czFnD9MyTBBkiJN1tK1FiAupECoesqbW7BI54vNRojue54iO5xy92XnWj11h1dlYRgLAC5ByTeugWuaDQMxS7jvH4C+cySm6Jm0Vhjmm6PVGCrQJWO2eG4xh67BM5TKzcYwtkYX5rfj8UnjIE5FMzwWneIoO4sBa6AcMIpRccDzYrcqx58WVeFb7bRy3G4nFlenNk1ckNfBtGIkZENqfRmvVWy5BeVnyzCLSCfH9TLrqTUyBp7nYli5ZTx4VMYHa12+XFxpORadT73Pw1QH4vf7FEUntO3xHieQVgtPhqmWvUdfwtCMJI3CoiCrD4w+F+lcZV5GbjfDjFPqp25GmAmxxoQvXsDR/fWKMQemd27dMSo+r7MtD3eRBQXeKxh1kOccE4ifmpj4YCPwpRymMAT6LS5QDm9N+A1X2PjVTWBFsVSPI/yNR62c4G60Uffy4Xr1OlnnQfH4fa9BShMI2hETJ1bg9BGA6BCGoMa4Tso2/ORzvEEOMwPdnbufNYxiHZDal3PjGtgxFyyabdvvm/A6rCbLc6U0J+O59Z/cBSjnTOZY+C/g1jjATNWzaf8pdvKu8op7KasHPqhg30EEaalYCzSF6a1eNznIu50mGoImKIu4C+F/S1+UsFd3JgdvD3xafnUVDDKagb0Ph9lZMQgqdvDSUUCyYYt0D4nOrqPQMFvtzcsPEtIJCcJpFF9+eLWGOUtVhJwzAbTkAhQqASgWOMPvaU3SkkvKX1m3joWMxg9IrDvDp+PJf5/Ywyv5r/yLMPIHPS8xjIJH X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2692; 6:LUtJajLnNoSkCipOYffiRb5xktvRGMGbPx8mcprREBeNUz1d5OLA5cWswCndx+lc3RQ7SfO4BWIHmi7E3ArsFYWhq4/8+ZJoeCejN2cFuAkaBwP5VMLYy4Ds7jN2n+sBSPOtQvMTZmGSjabk/M4g2oK8pYXC6DwBCE1byuP/4ZsHkwToYh6vDcBW34WUkP9W2LTeipYdtPES3+1xy8TTdmRzX1TDIll9pERVQHDb9bkTXNAZBmLkMKENjlA1wteWOMPiGqKQoyHHdBbtVOeK9ATGE9i07gDrhobCC5jNRSsG13W3FQ85PeVg3bjodOdv6uFmUsRUSf5dJAjnLYwasbpsSdImTt+NF7oJLKp0ZYI=; 5:Zw5cXeeDzwnFhA7nvdy51GYOfb3mQd/T1lDs8+KekX5LdgPwNQ1xCPNTwNeibdSKhDX2IsE7sOkUbHuLY3AZJvibcKQVxjrPKeO67sSQGE2kXJQaU6CGuyjPQu6HWsQRzCwNl3NafcWmDA8tIgWqQZeolkrZ8JTLI7z6+WwDRxE=; 24:68ovU7bxE1lE+LmM55XgtHomhbsx1mnBLxModR/87i2ZtqBsId90diCCzenBbcIABQlXaCw1O+kAQGfolRYRUdasVIu4xfpiOBGZR06zwD8=; 7:11IyAygxbLluiOfqh/UxpCMDfG5nmWYNYmQVpZU193ykaqF/S4xhklqg11PhE2+/Q7neUYAviXTpKOdaV3fFA4CGPF7fpt8vNv0zkUH5MX0DXXmjLOmRkSOSeKUAUwmHEe98ZKMJZlyHgV09myQH2qWuLYz2Vn+54M1Gv7827OXAC27n2TDA4g+oviWe9pSVPi8fX2fm4yFb35hPjlXHr1M+qv8TD23qv6bI/jR/BiuVNQMT2VV5uwbanWS4YtKY SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2017 04:21:40.9671 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b0bf531a-dd44-461b-2378-08d521a937c1 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR03MB2692 Cc: Raghav Dogra Subject: [U-Boot] [Patch V5 1/2] armv8: ls1088ardb: Add SD boot support for ls1088 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" Signed-off-by: Prabhakar Kushwaha Signed-off-by: Ashish Kumar Signed-off-by: Raghav Dogra --- v5: Rewording and incorporation of review comments in README Move define to defconfig arch/arm/Kconfig | 1 + arch/arm/cpu/armv8/fsl-layerscape/doc/README.lsch3 | 45 ++++++++++++++++++++++ board/freescale/ls1088a/MAINTAINERS | 1 + board/freescale/ls1088a/ddr.c | 5 ++- configs/ls1088ardb_sdcard_qspi_defconfig | 42 ++++++++++++++++++++ include/configs/ls1088a_common.h | 25 ++++++++++++ include/configs/ls1088ardb.h | 30 ++++++++++++++- 7 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 configs/ls1088ardb_sdcard_qspi_defconfig diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 83b7aa5..5707111 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -938,6 +938,7 @@ config TARGET_LS1088ARDB select ARMV8_MULTIENTRY select ARCH_MISC_INIT select BOARD_LATE_INIT + select SUPPORT_SPL help Support for NXP LS1088ARDB platform. The LS1088A Reference design board (RDB) is a high-performance diff --git a/arch/arm/cpu/armv8/fsl-layerscape/doc/README.lsch3 b/arch/arm/cpu/armv8/fsl-layerscape/doc/README.lsch3 index 7867c37..a4ed24f 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/doc/README.lsch3 +++ b/arch/arm/cpu/armv8/fsl-layerscape/doc/README.lsch3 @@ -201,6 +201,51 @@ nand write 80000 Notice the difference from QDS is SRC, SRC_ADDR and the offset of u-boot image to match board NAND device with 4KB/page, block size 512KB. +Booting from SD/eMMC +------------------- +Booting from SD/eMMC requires two images, RCW and u-boot-with-spl.bin. +The difference between SD boot RCW image and QSPI-NOR boot image is the PBI +command sequence. Below is one example for PBI commands for RDB and QDS which uses +SD device with block size 512. Block location can be calculated by dividing offset with +block size. + +1) Block Copy: SRC=0x0040, SRC_ADDR=0x00100000, DEST_ADDR=0x1800a000, +BLOCK_SIZE=0x00016000 + +This command copies u-boot image from SD device into OCRAM. The values need +to adjust accordingly for SD/eMMC + +SRC should match the cfg_rcw_src, the reset config pins. + The value for source(SRC) can be 0x0040 or 0x0041 + depending upon SD or eMMC. +SRC_ADDR is the offset of u-boot-with-spl.bin image in SD device. In + the example above, 1MB. This is same as QSPI-NOR. +DEST_ADDR is configured at 0x1800a000, matching bootloc set above. +BLOCK_SIZE is the size to be copied by PBI. + +2) CCSR 4-byte write to 0x01e00404, data=0x00000000 +3) CCSR 4-byte write to 0x01e00400, data=0x1800a000 +The above two commands set bootloc register to 0x00000000_1800a000 where +the u-boot code will be running in OCRAM. + + +RCW image should be written at 8th block of device(SD/eMMC). Example of using +u-boot command + +mmc erase 0x8 0x10 +mmc write 0x8 + +To form the SD-Boot image, build u-boot with SD config, for example, +ls1088ardb_sdcard_qspi_defconfig. The image needed is u-boot-with-spl.bin. +The u-boot image should be written to match SRC_ADDR, in above example offset 0x100000 +in other work it means block location 0x800 + +mmc erase 0x800 0x1800 +mmc write 0x800 + +With these two images in SD/eMMC device, the board can boot from SD/eMMC. + + MMU Translation Tables ====================== diff --git a/board/freescale/ls1088a/MAINTAINERS b/board/freescale/ls1088a/MAINTAINERS index e1e6d4b..68f23d6 100644 --- a/board/freescale/ls1088a/MAINTAINERS +++ b/board/freescale/ls1088a/MAINTAINERS @@ -5,6 +5,7 @@ S: Maintained F: board/freescale/ls1088a/ F: include/configs/ls1088ardb.h F: configs/ls1088ardb_qspi_defconfig +F: configs/ls1088ardb_sdcard_qspi_defconfig LS1088AQDS BOARD M: Prabhakar Kushwaha diff --git a/board/freescale/ls1088a/ddr.c b/board/freescale/ls1088a/ddr.c index 0ecfd65..e24bfd5 100644 --- a/board/freescale/ls1088a/ddr.c +++ b/board/freescale/ls1088a/ddr.c @@ -96,7 +96,10 @@ int fsl_initdram(void) { puts("Initializing DDR....using SPD\n"); +#if defined(CONFIG_SPL) && !defined(CONFIG_SPL_BUILD) + gd->ram_size = fsl_ddr_sdram_size(); +#else gd->ram_size = fsl_ddr_sdram(); - +#endif return 0; } diff --git a/configs/ls1088ardb_sdcard_qspi_defconfig b/configs/ls1088ardb_sdcard_qspi_defconfig new file mode 100644 index 0000000..b677b2f --- /dev/null +++ b/configs/ls1088ardb_sdcard_qspi_defconfig @@ -0,0 +1,42 @@ +CONFIG_ARM=y +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1088a-rdb" +CONFIG_DM=y +CONFIG_DM_SPI=y +CONFIG_DM_SPI_FLASH=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_I2C=y +CONFIG_CMD_MMC=y +# CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_SF=y +CONFIG_CMD_PING=y +# CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_E1000=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_FIT=y +CONFIG_FIT_VERBOSE=y +CONFIG_FSL_DSPI=y +CONFIG_FSL_LS_PPA=y +CONFIG_HUSH_PARSER=y +CONFIG_NETDEVICES=y +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_OF_BOARD_SETUP=y +CONFIG_OF_CONTROL=y +CONFIG_PARTITIONS=y +CONFIG_SD_BOOT=y +CONFIG_SPI_FLASH=y +CONFIG_SPL=y +CONFIG_SPL_BUILD=y +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y +CONFIG_SPL_ENV_SUPPORT=y +CONFIG_SPL_I2C_SUPPORT=y +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_SPL_MMC_SUPPORT=y +CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT=y +CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_SYS_EXTRA_OPTIONS="SD_BOOT_QSPI" +CONFIG_SYS_NS16550=y +# CONFIG_SYS_MALLOC_F is not set +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x8b0 +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y +CONFIG_TARGET_LS1088ARDB=y diff --git a/include/configs/ls1088a_common.h b/include/configs/ls1088a_common.h index 9d59472..f3db65c 100644 --- a/include/configs/ls1088a_common.h +++ b/include/configs/ls1088a_common.h @@ -20,18 +20,24 @@ #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_FSL_OCRAM_BASE + 0xfff0) /* Link Definitions */ +#ifdef CONFIG_SPL +#define CONFIG_SYS_TEXT_BASE 0x80400000 +#else #ifdef CONFIG_QSPI_BOOT #define CONFIG_SYS_TEXT_BASE 0x20100000 #else #define CONFIG_SYS_TEXT_BASE 0x30100000 #endif +#endif #define CONFIG_SUPPORT_RAW_INITRD #define CONFIG_SKIP_LOWLEVEL_INIT +#if !defined(CONFIG_SD_BOOT) #define CONFIG_FSL_DDR_INTERACTIVE /* Interactive debugging */ +#endif #define CONFIG_VERY_BIG_RAM #define CONFIG_SYS_DDR_SDRAM_BASE 0x80000000UL @@ -198,6 +204,11 @@ unsigned long long get_qixis_addr(void); " fsl_mc apply dpl 0x80200000 &&" \ " sf read $kernel_load $kernel_start" \ " $kernel_size && bootm $kernel_load" +#elif defined(CONFIG_SD_BOOT) +#define CONFIG_BOOTCOMMAND "mmcinfo;mmc read 0x80200000 0x6800 0x800;"\ + " fsl_mc apply dpl 0x80200000 &&" \ + " mmc read $kernel_load $kernel_start" \ + " $kernel_size && bootm $kernel_load" #else /* NOR BOOT*/ #define CONFIG_BOOTCOMMAND "fsl_mc apply dpl 0x580d00000 &&" \ " cp.b $kernel_start $kernel_load" \ @@ -217,6 +228,20 @@ unsigned long long get_qixis_addr(void); #define CONFIG_PANIC_HANG /* do not reset board on panic */ +#ifdef CONFIG_SPL +#define CONFIG_SPL_BSS_START_ADDR 0x80100000 +#define CONFIG_SPL_BSS_MAX_SIZE 0x00100000 +#define CONFIG_SPL_FRAMEWORK +#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv8/u-boot-spl.lds" +#define CONFIG_SPL_MAX_SIZE 0x16000 +#define CONFIG_SPL_STACK (CONFIG_SYS_FSL_OCRAM_BASE + 0x9ff0) +#define CONFIG_SPL_TARGET "u-boot-with-spl.bin" +#define CONFIG_SPL_TEXT_BASE 0x1800a000 + +#define CONFIG_SYS_SPL_MALLOC_SIZE 0x00100000 +#define CONFIG_SYS_SPL_MALLOC_START 0x80200000 +#define CONFIG_SYS_MONITOR_LEN (512 * 1024) +#endif #define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size */ #endif /* __LS1088_COMMON_H */ diff --git a/include/configs/ls1088ardb.h b/include/configs/ls1088ardb.h index 958d472..eef9a07 100644 --- a/include/configs/ls1088ardb.h +++ b/include/configs/ls1088ardb.h @@ -15,6 +15,10 @@ #define CONFIG_ENV_SIZE 0x2000 /* 8KB */ #define CONFIG_ENV_OFFSET 0x300000 /* 3MB */ #define CONFIG_ENV_SECT_SIZE 0x40000 +#elif defined(CONFIG_SD_BOOT) +#define CONFIG_ENV_OFFSET (3 * 1024 * 1024) +#define CONFIG_SYS_MMC_ENV_DEV 0 +#define CONFIG_ENV_SIZE 0x2000 #else #define CONFIG_ENV_IS_IN_FLASH #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x300000) @@ -22,9 +26,10 @@ #define CONFIG_ENV_SIZE 0x20000 #endif -#if defined(CONFIG_QSPI_BOOT) +#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) #define CONFIG_QIXIS_I2C_ACCESS #define SYS_NO_FLASH +#undef CONFIG_CMD_IMLS #endif #define CONFIG_SYS_CLK_FREQ 100000000 @@ -232,7 +237,7 @@ #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 /* QSPI device */ -#if defined(CONFIG_QSPI_BOOT) +#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) #define CONFIG_FSL_QSPI #define FSL_QSPI_FLASH_SIZE (1 << 26) #define FSL_QSPI_FLASH_NUM 2 @@ -243,7 +248,11 @@ #define CONFIG_SYS_MEMTEST_START 0x80000000 #define CONFIG_SYS_MEMTEST_END 0x9fffffff +#ifdef CONFIG_SPL_BUILD +#define CONFIG_SYS_MONITOR_BASE CONFIG_SPL_TEXT_BASE +#else #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE +#endif #define CONFIG_FSL_MEMAC @@ -265,6 +274,23 @@ "sf read 0x80100000 0xE00000 0x100000;" \ "fsl_mc start mc 0x80000000 0x80100000\0" \ "mcmemsize=0x70000000 \0" +#elif defined(CONFIG_SD_BOOT) +#undef CONFIG_EXTRA_ENV_SETTINGS +#define CONFIG_EXTRA_ENV_SETTINGS \ + "hwconfig=fsl_ddr:bank_intlv=auto\0" \ + "loadaddr=0x90100000\0" \ + "kernel_addr=0x800\0" \ + "ramdisk_addr=0x800000\0" \ + "ramdisk_size=0x2000000\0" \ + "fdt_high=0xa0000000\0" \ + "initrd_high=0xffffffffffffffff\0" \ + "kernel_start=0x8000\0" \ + "kernel_load=0xa0000000\0" \ + "kernel_size=0x14000\0" \ + "mcinitcmd=mmcinfo;mmc read 0x80000000 0x5000 0x800;" \ + "mmc read 0x80100000 0x7000 0x800;" \ + "fsl_mc start mc 0x80000000 0x80100000\0" \ + "mcmemsize=0x70000000 \0" #endif