rockchip: add fastboot support for rk3036 board
Enable fastboot feature on rk3036, please refer to doc/README.rockchip for more detailed usage. Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
e1efe43c71
commit
d2d763fa83
|
|
@ -41,6 +41,4 @@
|
||||||
|
|
||||||
&usb_otg {
|
&usb_otg {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
dr_mode = "host";
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -47,3 +47,49 @@ void enable_caches(void)
|
||||||
dcache_enable();
|
dcache_enable();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
|
||||||
|
#include <usb.h>
|
||||||
|
#include <usb/dwc2_udc.h>
|
||||||
|
|
||||||
|
static struct dwc2_plat_otg_data rk3036_otg_data = {
|
||||||
|
.rx_fifo_sz = 512,
|
||||||
|
.np_tx_fifo_sz = 16,
|
||||||
|
.tx_fifo_sz = 128,
|
||||||
|
};
|
||||||
|
|
||||||
|
int board_usb_init(int index, enum usb_init_type init)
|
||||||
|
{
|
||||||
|
int node;
|
||||||
|
const char *mode;
|
||||||
|
bool matched = false;
|
||||||
|
const void *blob = gd->fdt_blob;
|
||||||
|
|
||||||
|
/* find the usb_otg node */
|
||||||
|
node = fdt_node_offset_by_compatible(blob, -1,
|
||||||
|
"rockchip,rk3288-usb");
|
||||||
|
|
||||||
|
while (node > 0) {
|
||||||
|
mode = fdt_getprop(blob, node, "dr_mode", NULL);
|
||||||
|
if (mode && strcmp(mode, "otg") == 0) {
|
||||||
|
matched = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
node = fdt_node_offset_by_compatible(blob, node,
|
||||||
|
"rockchip,rk3288-usb");
|
||||||
|
}
|
||||||
|
if (!matched) {
|
||||||
|
debug("Not found usb_otg device\n");
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
rk3036_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
|
||||||
|
|
||||||
|
return dwc2_udc_probe(&rk3036_otg_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
int board_usb_cleanup(int index, enum usb_init_type init)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -79,3 +79,49 @@ void enable_caches(void)
|
||||||
dcache_enable();
|
dcache_enable();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
|
||||||
|
#include <usb.h>
|
||||||
|
#include <usb/dwc2_udc.h>
|
||||||
|
|
||||||
|
static struct dwc2_plat_otg_data rk3036_otg_data = {
|
||||||
|
.rx_fifo_sz = 512,
|
||||||
|
.np_tx_fifo_sz = 16,
|
||||||
|
.tx_fifo_sz = 128,
|
||||||
|
};
|
||||||
|
|
||||||
|
int board_usb_init(int index, enum usb_init_type init)
|
||||||
|
{
|
||||||
|
int node;
|
||||||
|
const char *mode;
|
||||||
|
bool matched = false;
|
||||||
|
const void *blob = gd->fdt_blob;
|
||||||
|
|
||||||
|
/* find the usb_otg node */
|
||||||
|
node = fdt_node_offset_by_compatible(blob, -1,
|
||||||
|
"rockchip,rk3288-usb");
|
||||||
|
|
||||||
|
while (node > 0) {
|
||||||
|
mode = fdt_getprop(blob, node, "dr_mode", NULL);
|
||||||
|
if (mode && strcmp(mode, "otg") == 0) {
|
||||||
|
matched = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
node = fdt_node_offset_by_compatible(blob, node,
|
||||||
|
"rockchip,rk3288-usb");
|
||||||
|
}
|
||||||
|
if (!matched) {
|
||||||
|
debug("Not found usb_otg device\n");
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
rk3036_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
|
||||||
|
|
||||||
|
return dwc2_udc_probe(&rk3036_otg_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
int board_usb_cleanup(int index, enum usb_init_type init)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
#ifndef __CONFIG_RK3036_COMMON_H
|
#ifndef __CONFIG_RK3036_COMMON_H
|
||||||
#define __CONFIG_RK3036_COMMON_H
|
#define __CONFIG_RK3036_COMMON_H
|
||||||
|
|
||||||
#define CONFIG_SYS_CACHELINE_SIZE 32
|
#define CONFIG_SYS_CACHELINE_SIZE 64
|
||||||
|
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
|
|
||||||
|
|
@ -60,6 +60,25 @@
|
||||||
#define CONFIG_SF_DEFAULT_SPEED 20000000
|
#define CONFIG_SF_DEFAULT_SPEED 20000000
|
||||||
|
|
||||||
#ifndef CONFIG_SPL_BUILD
|
#ifndef CONFIG_SPL_BUILD
|
||||||
|
/* usb otg */
|
||||||
|
#define CONFIG_USB_GADGET
|
||||||
|
#define CONFIG_USB_GADGET_DUALSPEED
|
||||||
|
#define CONFIG_USB_GADGET_DWC2_OTG
|
||||||
|
#define CONFIG_USB_GADGET_VBUS_DRAW 0
|
||||||
|
|
||||||
|
/* fastboot */
|
||||||
|
#define CONFIG_CMD_FASTBOOT
|
||||||
|
#define CONFIG_USB_FUNCTION_FASTBOOT
|
||||||
|
#define CONFIG_FASTBOOT_FLASH
|
||||||
|
#define CONFIG_FASTBOOT_FLASH_MMC_DEV 0
|
||||||
|
#define CONFIG_FASTBOOT_BUF_ADDR CONFIG_SYS_LOAD_ADDR
|
||||||
|
#define CONFIG_FASTBOOT_BUF_SIZE 0x08000000
|
||||||
|
|
||||||
|
#define CONFIG_USB_GADGET_DOWNLOAD
|
||||||
|
#define CONFIG_G_DNL_MANUFACTURER "Rockchip"
|
||||||
|
#define CONFIG_G_DNL_VENDOR_NUM 0x2207
|
||||||
|
#define CONFIG_G_DNL_PRODUCT_NUM 0x310a
|
||||||
|
|
||||||
#include <config_distro_defaults.h>
|
#include <config_distro_defaults.h>
|
||||||
|
|
||||||
#define ENV_MEM_LAYOUT_SETTINGS \
|
#define ENV_MEM_LAYOUT_SETTINGS \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue