TERES/SOFTWARE/A64-TERES/u-boot_new/usb_sunxi/usb_mass.h
Dimitar Gamishev 093685c7d8 u-boot
2017-10-13 14:02:55 +03:00

89 lines
3.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* (C) Copyright 2007-2013
* Allwinner Technology Co., Ltd. <www.allwinnertech.com>
* Jerry Wang <wangflord@allwinnertech.com>
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#ifndef __USB_MASS_H__
#define __USB_MASS_H__
#include <common.h>
#define SUNXI_USB_MASS_DEV_MAX (4)
unsigned char normal_LangID[8] = {0x04, 0x03, 0x09, 0x04, '\0'};
unsigned char sunxi_usb_mass_iSerialNum0[32] = "20101201120001";
unsigned char sunxi_usb_mass_iManufacturer[32] = "AllWinner Technology";
unsigned char sunxi_usb_mass_iProduct[32] = "USB Mass Storage";
#define SUNXI_USB_STRING_LANGIDS (0)
#define SUNXI_USB_STRING_IMANUFACTURER (1)
#define SUNXI_USB_STRING_IPRODUCT (2)
#define SUNXI_USB_STRING_ISERIALNUMBER (3)
unsigned char *sunxi_usb_mass_dev[SUNXI_USB_MASS_DEV_MAX] = { normal_LangID, \
sunxi_usb_mass_iSerialNum0, \
sunxi_usb_mass_iManufacturer, \
sunxi_usb_mass_iProduct};
const unsigned char InquiryData[40] = {0x00, 0x80, 0x02, 0x02, 0x1f, \
0x00, 0x00, 0x00, \
'U', 'S', 'B', '2', '.', '0', 0x00, 0x00, \
'U' , 'S', 'B', ' ', 'S', 't', 'o' , 'r' , 'a' , 'g' , 'e', \
0x00, 0x00, 0x00, 0x00, 0x00,
'0', '1', '0', '0', '\0' };
const unsigned char RequestSense[20] = {0x07,0x00,0x02,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x00,0x00};
#define SUNXI_USB_MASS_IDLE (0)
#define SUNXI_USB_MASS_SETUP (1)
#define SUNXI_USB_MASS_SEND_DATA (2)
#define SUNXI_USB_MASS_RECEIVE_DATA (3)
#define SUNXI_USB_MASS_STATUS (4)
typedef struct
{
uchar *base_recv_buffer; //存放接收到的数据的首地址,必须足够大
uchar *act_recv_buffer;//
uint recv_size;
uint to_be_recved_size;
uchar *base_send_buffer; //存放将要到的数据的首地址,必须足够大
uchar *act_send_buffer;//
uint send_size; //需要发送数据的长度
uint flash_start; //起始位置可能是内存也可能是flash扇区
uint flash_sectors;
}
mass_trans_set_t;
#define SUNXI_MASS_RECV_MEM_SIZE (512 * 1024)
#define SUNXI_MASS_SEND_MEM_SIZE (512 * 1024)
#endif