On 11/01/2017 09:21 PM, Ashish Kumar wrote: > Signed-off-by: Prabhakar Kushwaha <[email protected]> > Signed-off-by: Ashish Kumar <[email protected]> > Signed-off-by: Raghav Dogra <[email protected]> > --- > > 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 <u-boot image in memory> 80000 <size of > u-boot image> > 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.
Inconsistent wrap-back length at multiple places. Please fix. > + > +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 <rcw image in memory> 0x8 <size of rcw in block count typical > value=10> > + > +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 <u-boot image in memory> 0x800 <size of u-boot image in block > count> > + > +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 <[email protected]> > 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 Please keep the config options sorted. You can use "make savedefconfig" or moveconfig.py. York _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

