《Linux内核设计与实现》读书笔记 - embedclub/Lavender GitHub Wiki
好读书不求甚解
mm/backing-dev.c:int bdi_init(struct backing_dev_info *bdi)
fs/ramfs/inode.c:int __init init_rootfs(void)
init/initramfs.c:static char * __init unpack_to_rootfs(char *buf, unsigned len)
if (column != -1 || page_addr != -1) {
int ctrl = NAND_CTRL_CHANGE | NAND_NCE | NAND_ALE;
/* Serially input address */
if (column != -1) {
/* Adjust columns for 16 bit buswidth */
if (chip->options & NAND_BUSWIDTH_16)
column >>= 1;
chip->cmd_ctrl(mtd, column, ctrl);
ctrl &= ~NAND_CTRL_CHANGE;
chip->cmd_ctrl(mtd, column >> 8, ctrl);
}
if (page_addr != -1) {
chip->cmd_ctrl(mtd, page_addr, ctrl);
chip->cmd_ctrl(mtd, page_addr >> 8,
NAND_NCE | NAND_ALE);
/* One more address cycle for devices > 128MiB */
if (chip->chipsize > (128 << 20))
chip->cmd_ctrl(mtd, page_addr >> 16,
NAND_NCE | NAND_ALE);
}
}
nand_read nand_do_read_ops nand_command_lp nand_read_page_hwecc