mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
956b03e180
This patch adds a driver for the diskonchip G4 nand flash device. It is based on the driver from the linux kernel. This also includes a separate SPL driver. A separate SPL driver is used because the device operates in a different mode (reliable mode) when loading a boot image, and also because the storage format of the boot image is different from normal data (pages are stored redundantly). The SPL driver basically mimics how a typical IPL reads data from the device. The special operating mode and storage format are used to compensate for the fact that the IPL does not contain the BCH ecc decoding algorithm (due to size constraints). Although the u-boot SPL *could* use ecc, it operates like an IPL for the sake of simplicity and uniformity, since the IPL and SPL share the task of loading the u-boot image. As a side benefit, the SPL driver is very small. [port from linux kernel 3.4 commit 570469f3bde7f71cc1ece07a18d54a05b6a8775d] Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
107 lines
3 KiB
Makefile
107 lines
3 KiB
Makefile
#
|
|
# (C) Copyright 2006
|
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
#
|
|
# 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., 59 Temple Place, Suite 330, Boston,
|
|
# MA 02111-1307 USA
|
|
#
|
|
|
|
include $(TOPDIR)/config.mk
|
|
|
|
LIB := $(obj)libnand.o
|
|
|
|
ifdef CONFIG_CMD_NAND
|
|
|
|
ifdef CONFIG_SPL_BUILD
|
|
|
|
ifdef CONFIG_SPL_NAND_DRIVERS
|
|
NORMAL_DRIVERS=y
|
|
endif
|
|
|
|
COBJS-$(CONFIG_SPL_NAND_AM33XX_BCH) += am335x_spl_bch.o
|
|
COBJS-$(CONFIG_SPL_NAND_DOCG4) += docg4_spl.o
|
|
COBJS-$(CONFIG_SPL_NAND_SIMPLE) += nand_spl_simple.o
|
|
COBJS-$(CONFIG_SPL_NAND_LOAD) += nand_spl_load.o
|
|
COBJS-$(CONFIG_SPL_NAND_ECC) += nand_ecc.o
|
|
COBJS-$(CONFIG_SPL_NAND_BASE) += nand_base.o
|
|
|
|
else # not spl
|
|
|
|
NORMAL_DRIVERS=y
|
|
|
|
COBJS-y += nand.o
|
|
COBJS-y += nand_bbt.o
|
|
COBJS-y += nand_ids.o
|
|
COBJS-y += nand_util.o
|
|
COBJS-y += nand_ecc.o
|
|
COBJS-y += nand_base.o
|
|
|
|
endif # not spl
|
|
|
|
ifdef NORMAL_DRIVERS
|
|
|
|
COBJS-$(CONFIG_NAND_ECC_BCH) += nand_bch.o
|
|
|
|
COBJS-$(CONFIG_NAND_ATMEL) += atmel_nand.o
|
|
COBJS-$(CONFIG_DRIVER_NAND_BFIN) += bfin_nand.o
|
|
COBJS-$(CONFIG_NAND_DAVINCI) += davinci_nand.o
|
|
COBJS-$(CONFIG_NAND_FSL_ELBC) += fsl_elbc_nand.o
|
|
COBJS-$(CONFIG_NAND_FSL_IFC) += fsl_ifc_nand.o
|
|
COBJS-$(CONFIG_NAND_FSL_UPM) += fsl_upm.o
|
|
COBJS-$(CONFIG_NAND_FSMC) += fsmc_nand.o
|
|
COBJS-$(CONFIG_NAND_JZ4740) += jz4740_nand.o
|
|
COBJS-$(CONFIG_NAND_KB9202) += kb9202_nand.o
|
|
COBJS-$(CONFIG_NAND_KIRKWOOD) += kirkwood_nand.o
|
|
COBJS-$(CONFIG_NAND_KMETER1) += kmeter1_nand.o
|
|
COBJS-$(CONFIG_NAND_MPC5121_NFC) += mpc5121_nfc.o
|
|
COBJS-$(CONFIG_NAND_MXC) += mxc_nand.o
|
|
COBJS-$(CONFIG_NAND_MXS) += mxs_nand.o
|
|
COBJS-$(CONFIG_NAND_NDFC) += ndfc.o
|
|
COBJS-$(CONFIG_NAND_NOMADIK) += nomadik.o
|
|
COBJS-$(CONFIG_NAND_S3C2410) += s3c2410_nand.o
|
|
COBJS-$(CONFIG_NAND_SPEAR) += spr_nand.o
|
|
COBJS-$(CONFIG_TEGRA_NAND) += tegra_nand.o
|
|
COBJS-$(CONFIG_NAND_OMAP_GPMC) += omap_gpmc.o
|
|
COBJS-$(CONFIG_NAND_PLAT) += nand_plat.o
|
|
COBJS-$(CONFIG_NAND_DOCG4) += docg4.o
|
|
|
|
else # minimal SPL drivers
|
|
|
|
COBJS-$(CONFIG_NAND_FSL_ELBC) += fsl_elbc_spl.o
|
|
COBJS-$(CONFIG_NAND_MXC) += mxc_nand_spl.o
|
|
|
|
endif # drivers
|
|
endif # nand
|
|
|
|
COBJS := $(COBJS-y)
|
|
SRCS := $(COBJS:.o=.c)
|
|
OBJS := $(addprefix $(obj),$(COBJS))
|
|
|
|
all: $(LIB)
|
|
|
|
$(LIB): $(obj).depend $(OBJS)
|
|
$(call cmd_link_o_target, $(OBJS))
|
|
|
|
#########################################################################
|
|
|
|
# defines $(obj).depend target
|
|
include $(SRCTREE)/rules.mk
|
|
|
|
sinclude $(obj).depend
|
|
|
|
#########################################################################
|