lin
2025-01-10 2e0fe69425adee0529756dc3381ac1838197f3ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
 * (C) Copyright 2007-2013
 * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
 * Jerry Wang <wangflord@allwinnertech.com>
 *
 *
 */
 
#ifndef __USB_FASTBOOT_H__
#define __USB_FASTBOOT_H__
 
#include <common.h>
 
#define SUNXI_USB_FASTBOOT_DEV_MAX (6)
 
char sunxi_fastboot_normal_LangID[8] = { 0x04, 0x03, 0x09, 0x04, '\0' };
#define SUNXI_FASTBOOT_DEVICE_MANUFACTURER "USB Developer" /* 厂商信息     */
#define SUNXI_FASTBOOT_DEVICE_PRODUCT "Android Fastboot" /* 产品信息     */
#define SUNXI_FASTBOOT_DEVICE_SERIAL_NUMBER "20080411" /* 产品序列号     */
#define SUNXI_FASTBOOT_DEVICE_CONFIG "Android Fastboot"
#define SUNXI_FASTBOOT_DEVICE_INTERFACE "Android Bootloader Interface"
 
/* String 0 is the language id */
#define SUNXI_FASTBOOT_DEVICE_STRING_PRODUCT_INDEX 1
#define SUNXI_FASTBOOT_DEVICE_STRING_SERIAL_NUMBER_INDEX 2
#define SUNXI_FASTBOOT_DEVICE_STRING_CONFIG_INDEX 3
#define SUNXI_FASTBOOT_DEVICE_STRING_INTERFACE_INDEX 4
#define SUNXI_FASTBOOT_DEVICE_STRING_MANUFACTURER_INDEX 5
 
/* fastboot */
 
#define FASTBOOT_TRANSFER_BUFFER SDRAM_OFFSET(1000000)
#define FASTBOOT_TRANSFER_BUFFER_SIZE (256 << 20)
#define FASTBOOT_ERASE_BUFFER SDRAM_OFFSET(0000000)
#define FASTBOOT_ERASE_BUFFER_SIZE (16 << 20)
 
char *sunxi_usb_fastboot_dev[SUNXI_USB_FASTBOOT_DEV_MAX] = {
   sunxi_fastboot_normal_LangID,  SUNXI_FASTBOOT_DEVICE_MANUFACTURER,
   SUNXI_FASTBOOT_DEVICE_PRODUCT, SUNXI_FASTBOOT_DEVICE_SERIAL_NUMBER,
   SUNXI_FASTBOOT_DEVICE_CONFIG,  SUNXI_FASTBOOT_DEVICE_INTERFACE
};
 
#define SUNXI_USB_FASTBOOT_BUFFER_MAX (32 * 1024 * 1024)
 
#define SUNXI_USB_FASTBOOT_IDLE (0)
#define SUNXI_USB_FASTBOOT_SETUP (1)
#define SUNXI_USB_FASTBOOT_SEND_DATA (2)
#define SUNXI_USB_FASTBOOT_RECEIVE_DATA (3)
 
typedef struct {
   char *base_recv_buffer; //存放接收到的数据
   char *act_recv_buffer;
   uint try_to_recv;
   uint act_recv;
   char *base_send_buffer; //存放预发送数据
   char *act_send_buffer;
   uint send_size; //需要发送数据的长度
} fastboot_trans_set_t;
 
#define SUNXI_FASTBOOT_SEND_MEM_SIZE (64 * 1024)
 
#define DEVICE_VENDOR_ID 0x1F3A
#define DEVICE_PRODUCT_ID 0x1010
#define DEVICE_BCD 0x0200
 
#endif