mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
![WeiXiong Liao](/assets/img/avatar_default.png)
This introduces mtdpstore, which is similar to mtdoops but more powerful. It uses pstore/blk, and aims to store panic and oops logs to a flash partition, where pstore can later read back and present as files in the mounted pstore filesystem. To make mtdpstore work, the "blkdev" of pstore/blk should be set as MTD device name or MTD device number. For more details, see Documentation/admin-guide/pstore-blk.rst This solves a number of issues: - Work duplication: both of pstore and mtdoops do the same job storing panic/oops log. They have very similar logic, registering to kmsg dumper and storing logs to several chunks one by one. - Layer violations: drivers should provides methods instead of polices. MTD should provide read/write/erase operations, and allow a higher level drivers to provide the chunk management, kmsg dump configuration, etc. - Missing features: pstore provides many additional features, including presenting the logs as files, logging dump time and count, and supporting other frontends like pmsg, console, etc. Signed-off-by: WeiXiong Liao <liaoweixiong@allwinnertech.com> Link: https://lore.kernel.org/lkml/20200511233229.27745-11-keescook@chromium.org/ Link: https://lore.kernel.org/r/1589266715-4168-1-git-send-email-liaoweixiong@allwinnertech.com Signed-off-by: Kees Cook <keescook@chromium.org>
33 lines
964 B
Makefile
33 lines
964 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the memory technology device drivers.
|
|
#
|
|
|
|
# Core functionality.
|
|
obj-$(CONFIG_MTD) += mtd.o
|
|
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
|
|
|
obj-y += parsers/
|
|
|
|
# 'Users' - code which presents functionality to userspace.
|
|
obj-$(CONFIG_MTD_BLKDEVS) += mtd_blkdevs.o
|
|
obj-$(CONFIG_MTD_BLOCK) += mtdblock.o
|
|
obj-$(CONFIG_MTD_BLOCK_RO) += mtdblock_ro.o
|
|
obj-$(CONFIG_FTL) += ftl.o
|
|
obj-$(CONFIG_NFTL) += nftl.o
|
|
obj-$(CONFIG_INFTL) += inftl.o
|
|
obj-$(CONFIG_RFD_FTL) += rfd_ftl.o
|
|
obj-$(CONFIG_SSFDC) += ssfdc.o
|
|
obj-$(CONFIG_SM_FTL) += sm_ftl.o
|
|
obj-$(CONFIG_MTD_OOPS) += mtdoops.o
|
|
obj-$(CONFIG_MTD_PSTORE) += mtdpstore.o
|
|
obj-$(CONFIG_MTD_SWAP) += mtdswap.o
|
|
|
|
nftl-objs := nftlcore.o nftlmount.o
|
|
inftl-objs := inftlcore.o inftlmount.o
|
|
|
|
obj-y += chips/ lpddr/ maps/ devices/ nand/ tests/
|
|
|
|
obj-$(CONFIG_MTD_SPI_NOR) += spi-nor/
|
|
obj-$(CONFIG_MTD_UBI) += ubi/
|
|
obj-$(CONFIG_MTD_HYPERBUS) += hyperbus/
|