xref: /openbmc/u-boot/include/ubi_uboot.h (revision 592cd5de)
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>
190c06db59SHeiko Schocher #include <linux/compat.h>
207e6ee7adSKyungmin Park #include <malloc.h>
217e6ee7adSKyungmin Park #include <div64.h>
220c06db59SHeiko 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 
351221ce45SMasahiro Yamada #include <linux/errno.h>
367e6ee7adSKyungmin Park 
377e6ee7adSKyungmin Park /* configurable */
387e6ee7adSKyungmin Park #define CONFIG_MTD_UBI_BEB_RESERVE	1
397e6ee7adSKyungmin Park 
407e6ee7adSKyungmin Park /* debug options (Linux: drivers/mtd/ubi/Kconfig.debug) */
417e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG
427e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_PARANOID
437e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG
447e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG_EBA
457e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG_WL
467e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG_IO
477e6ee7adSKyungmin Park #undef CONFIG_MTD_UBI_DEBUG_MSG_BLD
480c06db59SHeiko Schocher 
490c06db59SHeiko Schocher #undef CONFIG_MTD_UBI_BLOCK
500c06db59SHeiko Schocher 
51d1cfeee9SAndrew Ruder /* ubi_init() disables returning error codes when built into the Linux
52d1cfeee9SAndrew Ruder  * kernel so that it doesn't hang the Linux kernel boot process.  Since
53d1cfeee9SAndrew Ruder  * the U-Boot driver code depends on getting valid error codes from this
54d1cfeee9SAndrew Ruder  * function we just tell the UBI layer that we are building as a module
55d1cfeee9SAndrew Ruder  * (which only enables the additional error reporting).
56d1cfeee9SAndrew Ruder  */
57d1cfeee9SAndrew Ruder #define CONFIG_MTD_UBI_MODULE
58d1cfeee9SAndrew Ruder 
597e6ee7adSKyungmin Park /* build.c */
607e6ee7adSKyungmin Park #define get_device(...)
617e6ee7adSKyungmin Park #define put_device(...)
627e6ee7adSKyungmin Park #define ubi_sysfs_init(...)		0
637e6ee7adSKyungmin Park #define ubi_sysfs_close(...)		do { } while (0)
647e6ee7adSKyungmin Park 
659eefe2a2SStefan Roese #ifndef __UBIFS_H__
667e6ee7adSKyungmin Park #include "../drivers/mtd/ubi/ubi.h"
679eefe2a2SStefan Roese #endif
687e6ee7adSKyungmin Park 
697e6ee7adSKyungmin Park /* functions */
707e6ee7adSKyungmin Park extern int ubi_mtd_param_parse(const char *val, struct kernel_param *kp);
717e6ee7adSKyungmin Park extern int ubi_init(void);
722ee951baSStefan Roese extern void ubi_exit(void);
7371829067SJoe Hershberger extern int ubi_part(char *part_name, const char *vid_header_offset);
7471829067SJoe Hershberger extern int ubi_volume_write(char *volume, void *buf, size_t size);
7571829067SJoe Hershberger extern int ubi_volume_read(char *volume, char *buf, size_t size);
767e6ee7adSKyungmin Park 
777e6ee7adSKyungmin Park extern struct ubi_device *ubi_devices[];
78*14dfc648STien Fong Chee int cmd_ubifs_mount(char *vol_name);
7910c20440STien Fong Chee int cmd_ubifs_umount(void);
807e6ee7adSKyungmin Park 
817e6ee7adSKyungmin Park #endif
82