ufs_aio_interface.h 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /* Copyright Statement:
  2. *
  3. * This software/firmware and related documentation ("MediaTek Software") are
  4. * protected under relevant copyright laws. The information contained herein
  5. * is confidential and proprietary to MediaTek Inc. and/or its licensors.
  6. * Without the prior written permission of MediaTek inc. and/or its licensors,
  7. * any reproduction, modification, use or disclosure of MediaTek Software,
  8. * and information contained herein, in whole or in part, shall be strictly prohibited.
  9. */
  10. /* MediaTek Inc. (C) 2015. All rights reserved.
  11. *
  12. * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  13. * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  14. * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
  15. * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  16. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  17. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  18. * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  19. * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  20. * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
  21. * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
  22. * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
  23. * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
  24. * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
  25. * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
  26. * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  27. * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  28. * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
  29. * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  30. */
  31. #ifndef _UFS_AIO_INTERFACE_H
  32. #define _UFS_AIO_INTERFACE_H
  33. #include "ufs_aio_cfg.h"
  34. #include "ufs_aio_types.h"
  35. #include "ufs_aio_hcd.h"
  36. #if defined(MTK_UFS_DRV_PRELOADER)
  37. u32 ufs_init_device(void);
  38. u64 ufs_rpmb_get_lu_size(void);
  39. int ufs_rpmb_get_rw_size(void);
  40. int ufs_get_boot_part(int *part_id);
  41. int ufs_set_boot_part(int part_id);
  42. #endif
  43. #if defined(MTK_UFS_DRV_LK)
  44. int ufs_lk_init(void);
  45. int ufs_lk_get_active_boot_part(u32 *active_boot_part);
  46. unsigned long long ufs_lk_get_device_size(void);
  47. int ufs_lk_erase(int dev_num, u64 start_addr, u64 len,u32 part_id);
  48. int ufs_lk_otp_lock_req(char *otp_part_name);
  49. int ufs_lk_otp_read(u32 current_user_id, off_t offset, u8* data, size_t size);
  50. int ufs_lk_otp_write(u32 current_user_id, off_t offset, u8* data, size_t size);
  51. /* Notice: ufs_lk_otp_lock() can not be called in normal boot. Suggest call in fastboot mode. */
  52. int ufs_lk_otp_lock(void);
  53. int ufs_get_unique_id(struct ufs_unique_id *id);
  54. #endif // MTK_UFS_DRV_LK
  55. #if defined(MTK_UFS_DRV_DA)
  56. status_t interface_ufs_init(u32 boot_channel);
  57. status_t interface_switch_ufs_section(u32 section);
  58. status_t interface_ufs_write(u64 address, u8* buffer, u64 length);
  59. status_t interface_ufs_read(u64 address, u8* buffer, u64 length);
  60. status_t interface_ufs_erase(u64 address, u64 length, const struct progress_cb* cb);
  61. status_t interface_get_ufs_info(struct ufs_info_struct* info);
  62. status_t interface_ufs_device_ctrl(u32 ctrl_code, void* in, u32 in_len, void* out, u32 out_len, u32* ret_len);
  63. #endif // MTK_UFS_DRV_DA
  64. #endif // !_UFS_AIO_INTERFACE_H