xref: /rk3399_rockchip-uboot/include/ubi_uboot.h (revision 0c06db59836746c5caf397e642cd0f2bf1cc20a6)
17e6ee7adSKyungmin Park /*
27e6ee7adSKyungmin Park  * Header file for UBI support for U-Boot
37e6ee7adSKyungmin Park  *
47e6ee7adSKyungmin Park  * Adaptation from kernel to U-Boot
57e6ee7adSKyungmin Park  *
67e6ee7adSKyungmin Park  *  Copyright (C) 2005-2007 Samsung Electronics
77e6ee7adSKyungmin Park  *  Kyungmin Park <kyungmin.park@samsung.com>
87e6ee7adSKyungmin Park  *
97e6ee7adSKyungmin Park  * This program is free software; you can redistribute it and/or modify
107e6ee7adSKyungmin Park  * it under the terms of the GNU General Public License version 2 as
117e6ee7adSKyungmin Park  * published by the Free Software Foundation.
127e6ee7adSKyungmin Park  */
137e6ee7adSKyungmin Park 
147e6ee7adSKyungmin Park #ifndef __UBOOT_UBI_H
157e6ee7adSKyungmin Park #define __UBOOT_UBI_H
167e6ee7adSKyungmin Park 
177e6ee7adSKyungmin Park #include <common.h>
18d8bc55a6SAnton Vorontsov #include <compiler.h>
19*0c06db59SHeiko Schocher #include <linux/compat.h>
207e6ee7adSKyungmin Park #include <malloc.h>
217e6ee7adSKyungmin Park #include <div64.h>
22*0c06db59SHeiko Schocher #include <linux/math64.h>
237e6ee7adSKyungmin Park #include <linux/crc32.h>
249eefe2a2SStefan Roese #include <linux/types.h>
259eefe2a2SStefan Roese #include <linux/list.h>
269eefe2a2SStefan Roese #include <linux/rbtree.h>
279eefe2a2SStefan Roese #include <linux/string.h>
287e6ee7adSKyungmin Park #include <linux/mtd/mtd.h>
299eefe2a2SStefan Roese #include <linux/mtd/ubi.h>
307e6ee7adSKyungmin Park 
317e6ee7adSKyungmin Park #ifdef CONFIG_CMD_ONENAND
327e6ee7adSKyungmin Park #include <onenand_uboot.h>
337e6ee7adSKyungmin Park #endif
347e6ee7adSKyungmin Park 
357e6ee7adSKyungmin Park #include <asm/errno.h>
367e6ee7adSKyungmin Park 
377e6ee7adSKyungmin Park /* configurable */
38*0c06db59SHeiko Schocher #if !defined(CONFIG_MTD_UBI_WL_THRESHOLD)
397e6ee7adSKyungmin Park #define CONFIG_MTD_UBI_WL_THRESHOLD	4096
40*0c06db59SHeiko Schocher #endif
417e6ee7adSKyungmin Park #define CONFIG_MTD_UBI_BEB_RESERVE	1
427e6ee7adSKyungmin Park 
437e6ee7adSKyungmin Park /* debug options (Linux: drivers/mtd/ubi/Kconfig.debug) */
447e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG
457e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_PARANOID
467e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG
477e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG_EBA
487e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG_WL
497e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG_IO
507e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG_BLD
51*0c06db59SHeiko Schocher 
52*0c06db59SHeiko Schocher #undef CONFIG_MTD_UBI_BLOCK
53*0c06db59SHeiko Schocher 
54*0c06db59SHeiko Schocher #if !defined(CONFIG_MTD_UBI_BEB_LIMIT)
55*0c06db59SHeiko Schocher #define CONFIG_MTD_UBI_BEB_LIMIT	20
56*0c06db59SHeiko Schocher #endif
577e6ee7adSKyungmin Park 
587e6ee7adSKyungmin Park /* build.c */
597e6ee7adSKyungmin Park #define get_device(...)
607e6ee7adSKyungmin Park #define put_device(...)
617e6ee7adSKyungmin Park #define ubi_sysfs_init(...)		0
627e6ee7adSKyungmin Park #define ubi_sysfs_close(...)		do { } while (0)
637e6ee7adSKyungmin Park 
649eefe2a2SStefan Roese #ifndef __UBIFS_H__
657e6ee7adSKyungmin Park #include "../drivers/mtd/ubi/ubi.h"
669eefe2a2SStefan Roese #endif
677e6ee7adSKyungmin Park 
687e6ee7adSKyungmin Park /* functions */
697e6ee7adSKyungmin Park extern int ubi_mtd_param_parse(const char *val, struct kernel_param *kp);
707e6ee7adSKyungmin Park extern int ubi_init(void);
712ee951baSStefan Roese extern void ubi_exit(void);
7271829067SJoe Hershberger extern int ubi_part(char *part_name, const char *vid_header_offset);
7371829067SJoe Hershberger extern int ubi_volume_write(char *volume, void *buf, size_t size);
7471829067SJoe Hershberger extern int ubi_volume_read(char *volume, char *buf, size_t size);
757e6ee7adSKyungmin Park 
767e6ee7adSKyungmin Park extern struct ubi_device *ubi_devices[];
777e6ee7adSKyungmin Park 
787e6ee7adSKyungmin Park #endif
79