From 63437b3ecfef5acf322aa827fd6430c43d444269 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Thu, 3 Oct 2013 17:13:39 +0200 Subject: colibri_vf50: migrate nand vs. sdboot configuration Migrate to default NAND boot configuration (e.g. colibri_vf50_config) and SD card boot on request (e.g. colibri_vf50_sdboot_config). Automatically do the padding required for NAND boot image (e.g. u-boot.nand). This is also more in-line with how we did stuff back on the Colibri T20. --- .gitignore | 2 + Makefile | 10 ++++ board/toradex/colibri_vf50/colibrivf50image.cfg | 44 ---------------- .../toradex/colibri_vf50/colibrivf50nandimage.cfg | 61 ---------------------- board/toradex/colibri_vf50/nandimage.cfg | 61 ++++++++++++++++++++++ board/toradex/colibri_vf50/sdbootimage.cfg | 44 ++++++++++++++++ boards.cfg | 4 +- include/configs/colibri_vf50.h | 8 +-- include/configs/colibri_vf50_sdboot.h | 57 ++++++++++++++++++++ 9 files changed, 180 insertions(+), 111 deletions(-) delete mode 100644 board/toradex/colibri_vf50/colibrivf50image.cfg delete mode 100644 board/toradex/colibri_vf50/colibrivf50nandimage.cfg create mode 100644 board/toradex/colibri_vf50/nandimage.cfg create mode 100644 board/toradex/colibri_vf50/sdbootimage.cfg create mode 100644 include/configs/colibri_vf50_sdboot.h diff --git a/.gitignore b/.gitignore index e4e95e2d34..ba64aa0cab 100644 --- a/.gitignore +++ b/.gitignore @@ -22,9 +22,11 @@ /MLO /System.map /u-boot +/u-boot-pad /u-boot.hex /u-boot.imx /u-boot.map +/u-boot.nand /u-boot.srec /u-boot.ldr /u-boot.ldr.hex diff --git a/Makefile b/Makefile index fd5b7d0ed3..a8c16f75c8 100644 --- a/Makefile +++ b/Makefile @@ -790,4 +790,14 @@ backup: F=`basename $(TOPDIR)` ; cd .. ; \ gtar --force-local -zcvf `LC_ALL=C date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F +ifeq ($(BOARD),colibri_vf50) +.DEFAULT_GOAL := u-boot.imx +ifeq ($(CONFIG_NANDBOOT),y) +.DEFAULT_GOAL := u-boot.nand +u-boot.nand: u-boot.imx + dd if=/dev/zero of=u-boot-pad bs=1024 count=1 + cat u-boot-pad u-boot.imx > u-boot.nand +endif +endif + ######################################################################### diff --git a/board/toradex/colibri_vf50/colibrivf50image.cfg b/board/toradex/colibri_vf50/colibrivf50image.cfg deleted file mode 100644 index 85e5869806..0000000000 --- a/board/toradex/colibri_vf50/colibrivf50image.cfg +++ /dev/null @@ -1,44 +0,0 @@ -# -# Copyright 2013 Toradex, Inc. -# -# See file CREDITS for list of people who contributed to this -# project. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not write to the Free Software -# Foundation Inc. 51 Franklin Street Fifth Floor Boston, -# MA 02110-1301 USA -# -# Refer docs/README.imxmage for more details about how-to configure -# and create imximage boot image -# -# The syntax is taken as close as possible with the kwbimage - -IMAGE_VERSION 2 - -# Boot Device : one of -# spi, sd (the board has no nand neither onenand) - -BOOT_FROM sd - -# Device Configuration Data (DCD) -# -# Each entry must have the format: -# Addr-type Address Value -# -# where: -# Addr-type register length (1,2 or 4 bytes) -# Address absolute address of the register -# value value to be stored in the register - -# Setting IOMUXC diff --git a/board/toradex/colibri_vf50/colibrivf50nandimage.cfg b/board/toradex/colibri_vf50/colibrivf50nandimage.cfg deleted file mode 100644 index dd093f90ac..0000000000 --- a/board/toradex/colibri_vf50/colibrivf50nandimage.cfg +++ /dev/null @@ -1,61 +0,0 @@ -# -# Copyright 2013 Toradex, Inc. -# -# See file CREDITS for list of people who contributed to this -# project. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not write to the Free Software -# Foundation Inc. 51 Franklin Street Fifth Floor Boston, -# MA 02110-1301 USA -# -# Refer docs/README.imxmage for more details about how-to configure -# and create imximage boot image -# -# The syntax is taken as close as possible with the kwbimage - -IMAGE_VERSION 2 - -# Boot Device : one of -# spi, sd (the board has no nand neither onenand) - -BOOT_FROM nand - -# Device Configuration Data (DCD) -# -# Each entry must have the format: -# Addr-type Address Value -# -# where: -# Addr-type register length (1,2 or 4 bytes) -# Address absolute address of the register -# value value to be stored in the register - -# Hack for ROM to read past the first 4k of the NAND image. - -# If the FW is located at a different location in flash the -# row address will need to be changed to the first page of -# the new location. -# This forces a NAND page read -DATA 4 0x400E3F0C 0x11000100 # Row address - page 256 -DATA 4 0x400E3F20 0x3F040000 -DATA 4 0x400E3F34 0x3F040800 -DATA 4 0x400E3F38 0x60160000 -DATA 4 0x400E3F04 0x007EE001 - -# This forces a NAND page read -DATA 4 0x400E3F0C 0x11000100 # Row address - page 256 -DATA 4 0x400E3F20 0x3F040000 -DATA 4 0x400E3F34 0x3F040800 -DATA 4 0x400E3F38 0x60160000 -DATA 4 0x400E3F04 0x007EE001 diff --git a/board/toradex/colibri_vf50/nandimage.cfg b/board/toradex/colibri_vf50/nandimage.cfg new file mode 100644 index 0000000000..dd093f90ac --- /dev/null +++ b/board/toradex/colibri_vf50/nandimage.cfg @@ -0,0 +1,61 @@ +# +# Copyright 2013 Toradex, Inc. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not write to the Free Software +# Foundation Inc. 51 Franklin Street Fifth Floor Boston, +# MA 02110-1301 USA +# +# Refer docs/README.imxmage for more details about how-to configure +# and create imximage boot image +# +# The syntax is taken as close as possible with the kwbimage + +IMAGE_VERSION 2 + +# Boot Device : one of +# spi, sd (the board has no nand neither onenand) + +BOOT_FROM nand + +# Device Configuration Data (DCD) +# +# Each entry must have the format: +# Addr-type Address Value +# +# where: +# Addr-type register length (1,2 or 4 bytes) +# Address absolute address of the register +# value value to be stored in the register + +# Hack for ROM to read past the first 4k of the NAND image. + +# If the FW is located at a different location in flash the +# row address will need to be changed to the first page of +# the new location. +# This forces a NAND page read +DATA 4 0x400E3F0C 0x11000100 # Row address - page 256 +DATA 4 0x400E3F20 0x3F040000 +DATA 4 0x400E3F34 0x3F040800 +DATA 4 0x400E3F38 0x60160000 +DATA 4 0x400E3F04 0x007EE001 + +# This forces a NAND page read +DATA 4 0x400E3F0C 0x11000100 # Row address - page 256 +DATA 4 0x400E3F20 0x3F040000 +DATA 4 0x400E3F34 0x3F040800 +DATA 4 0x400E3F38 0x60160000 +DATA 4 0x400E3F04 0x007EE001 diff --git a/board/toradex/colibri_vf50/sdbootimage.cfg b/board/toradex/colibri_vf50/sdbootimage.cfg new file mode 100644 index 0000000000..85e5869806 --- /dev/null +++ b/board/toradex/colibri_vf50/sdbootimage.cfg @@ -0,0 +1,44 @@ +# +# Copyright 2013 Toradex, Inc. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not write to the Free Software +# Foundation Inc. 51 Franklin Street Fifth Floor Boston, +# MA 02110-1301 USA +# +# Refer docs/README.imxmage for more details about how-to configure +# and create imximage boot image +# +# The syntax is taken as close as possible with the kwbimage + +IMAGE_VERSION 2 + +# Boot Device : one of +# spi, sd (the board has no nand neither onenand) + +BOOT_FROM sd + +# Device Configuration Data (DCD) +# +# Each entry must have the format: +# Addr-type Address Value +# +# where: +# Addr-type register length (1,2 or 4 bytes) +# Address absolute address of the register +# value value to be stored in the register + +# Setting IOMUXC diff --git a/boards.cfg b/boards.cfg index e4d07f8310..b7a2c5799a 100644 --- a/boards.cfg +++ b/boards.cfg @@ -192,8 +192,8 @@ am335x_evm arm armv7 am335x ti highbank arm armv7 highbank - highbank efikamx arm armv7 efikamx - mx5 efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKAMX,IMX_CONFIG=board/efikamx/imximage_mx.cfg efikasb arm armv7 efikamx - mx5 efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKASB,IMX_CONFIG=board/efikamx/imximage_sb.cfg -colibri_vf50 arm armv7 colibri_vf50 toradex vybrid colibri_vf50:SYS_TEXT_BASE=0x3F400800,IMX_CONFIG=board/toradex/colibri_vf50/colibrivf50image.cfg -colibri_vf50_nand arm armv7 colibri_vf50 toradex vybrid colibri_vf50:SYS_TEXT_BASE=0x3F400800,IMX_CONFIG=board/toradex/colibri_vf50/colibrivf50nandimage.cfg +colibri_vf50 arm armv7 colibri_vf50 toradex vybrid colibri_vf50:SYS_TEXT_BASE=0x3F400800,IMX_CONFIG=board/toradex/colibri_vf50/nandimage.cfg,NANDBOOT +colibri_vf50_sdboot arm armv7 colibri_vf50 toradex vybrid colibri_vf50_sdboot:SYS_TEXT_BASE=0x3F400800,IMX_CONFIG=board/toradex/colibri_vf50/sdbootimage.cfg vybrid_auto arm armv7 vybrid_auto freescale vybrid vybrid_auto:SYS_TEXT_BASE=0x3F000800,IMX_CONFIG=board/freescale/vybrid_auto/vybridimage.cfg vybrid_auto_iram arm armv7 vybrid_auto freescale vybrid vybrid_auto_iram:SYS_TEXT_BASE=0x3F000400,IMX_CONFIG=board/freescale/vybrid_auto/vybridimage.cfg vybrid arm armv7 vybrid freescale vybrid vybrid:SYS_TEXT_BASE=0x3F000800,IMX_CONFIG=board/freescale/vybrid/vybridimage.cfg diff --git a/include/configs/colibri_vf50.h b/include/configs/colibri_vf50.h index 1531ea4065..139a1ab644 100644 --- a/include/configs/colibri_vf50.h +++ b/include/configs/colibri_vf50.h @@ -1,7 +1,7 @@ /* * Copyright 2013 Toradex, Inc. * - * Configuration settings for the Colibri VF50 module. + * Configuration settings for the Colibri VF50 module booting from NAND flash. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -10,7 +10,7 @@ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License @@ -172,7 +172,7 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "defargs=vmalloc=64M mem=128M usb_high_speed=1\0" \ "mmcargs=root=/dev/mmcblk0p2 rw rootwait\0" \ - "mmcboot=" MMC_BOOTCMD "\0" \ + "sdboot=" MMC_BOOTCMD "\0" \ "mtdparts=" MTDPARTS_DEFAULT "\0" \ "nfsargs=ip=:::::eth0: root=/dev/nfs\0" \ "setup=setenv setupargs " \ @@ -188,7 +188,7 @@ #define CONFIG_MTD_DEVICE /* needed for mtdparts commands */ #define MTDIDS_DEFAULT "nand0=NAND" #define MTDPARTS_DEFAULT "mtdparts=NAND:" \ - "256k(fcb)ro," \ + "256k(fcb_)ro," \ "256k@256k(config-block)ro," \ "512k@512k(u-boot)ro," \ "1m(u-boot-env)ro," \ diff --git a/include/configs/colibri_vf50_sdboot.h b/include/configs/colibri_vf50_sdboot.h new file mode 100644 index 0000000000..f70ae62ae5 --- /dev/null +++ b/include/configs/colibri_vf50_sdboot.h @@ -0,0 +1,57 @@ +/* + * Copyright 2013 Toradex, Inc. + * + * Configuration settings for the Colibri VF50 module booting from SD card. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +/* + * Use this configuration for an u-boot which stores its environment in SD/MMC + * Useful if SD/MMC is selected as the boot device, so also the environment is taken from there + * + * Use colibri_vf50.h for everything which is not specific to using SD/MMC as the boot device!! + */ + +#ifndef __CONFIG_SDBOOT_H +#define __CONFIG_SDBOOT_H + +#include "colibri_vf50.h" + +#undef DEFAULT_BOOTCOMMAND +#undef CONFIG_BOOTCOMMAND + +#define DEFAULT_BOOTCOMMAND \ + "run sdboot; run nfsboot" +#define CONFIG_BOOTCOMMAND DEFAULT_BOOTCOMMAND + + +#ifdef CONFIG_ENV_IS_NOWHERE +#undef CONFIG_ENV_IS_NOWHERE +#endif +#ifdef CONFIG_ENV_IS_IN_NAND +#undef CONFIG_ENV_IS_IN_NAND +#endif + +/* Environment stored in SD/MMC */ +#define CONFIG_ENV_IS_IN_MMC 1 + +#if defined(CONFIG_ENV_IS_IN_MMC) +#define CONFIG_SYS_MMC_ENV_DEV 0 /* use MMC0, slot on eval board and Iris */ +#define CONFIG_ENV_OFFSET (512 * 1024) +#endif + +#endif /* __CONFIG_SDBOOT_H */ -- cgit v1.2.3