mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-09 06:22:54 +00:00
828eaeee25
Reading MTD data with (p)read doesn't return any error when accessing
bad block. As the result, with current code, CRC32 covers "data" stored
in bad blocks.
That behavior doesn't match CFE's one (bootloader simply skips bad
blocks) and may result in:
1) Invalid CRC32
2) CFE refusing to boot firmware with a following error:
Boot program checksum is invalid
Fix that problem by checking every block before reading its content.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 0f54489f75
)
52 lines
1.1 KiB
Makefile
52 lines
1.1 KiB
Makefile
#
|
|
# Copyright (C) 2006-2012 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
|
|
PKG_NAME:=mtd
|
|
PKG_RELEASE:=22$(if $(SDK),,.1)
|
|
|
|
PKG_BUILD_DIR := $(KERNEL_BUILD_DIR)/$(PKG_NAME)
|
|
STAMP_PREPARED := $(STAMP_PREPARED)_$(call confvar,CONFIG_MTD_REDBOOT_PARTS)
|
|
|
|
PKG_LICENSE:=GPL-2.0+
|
|
PKG_LICENSE_FILES:=
|
|
|
|
PKG_FLAGS:=$(if $(SDK),,nonshared)
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/mtd
|
|
SECTION:=utils
|
|
CATEGORY:=Base system
|
|
DEPENDS:=+libubox
|
|
TITLE:=Update utility for trx firmware images
|
|
endef
|
|
|
|
define Package/mtd/description
|
|
This package contains an utility useful to upgrade from other firmware or
|
|
older OpenWrt releases.
|
|
endef
|
|
|
|
target=$(firstword $(subst -, ,$(BOARD)))
|
|
|
|
MAKE_FLAGS += TARGET="$(target)"
|
|
TARGET_CFLAGS := $(TARGET_CFLAGS) -Dtarget_$(target)=1 -Wall
|
|
|
|
ifdef CONFIG_MTD_REDBOOT_PARTS
|
|
MAKE_FLAGS += FIS_SUPPORT=1
|
|
TARGET_CFLAGS += -DFIS_SUPPORT=1
|
|
endif
|
|
|
|
define Package/mtd/install
|
|
$(INSTALL_DIR) $(1)/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mtd $(1)/sbin/
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,mtd))
|