From: Ziyuan Xu <xzy.xu@rock-chips.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 3/4] rockchip: rk3288: add fastboot support
Date: Thu, 14 Jul 2016 23:51:34 +0800 [thread overview]
Message-ID: <5787B506.9030208@rock-chips.com> (raw)
In-Reply-To: <668c3bbc-a3fb-04ca-7223-298166b5895d@rock-chips.com>
Hi William,
On 2016?07?14? 19:06, William.wu wrote:
> Hi Ziyuan Xu?
>
>
> On 2016/7/14 14:52, Ziyuan Xu wrote:
>> From: Xu Ziyuan <xzy.xu@rock-chips.com>
>>
>> Enable fastboot feature on rk3288.
>>
>> This path doesn't support the fastboot flash function command entirely.
>> We will hit "cannot find partition" assertion without specified
>> partition environment. Define gpt partition layout in specified board
>> such as firefly-rk3288, then enjoy it!
>>
>> Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
>>
>> ---
>>
>> Changes in v4:
>> - Add fifo size for rk3288
>> - Get usb_phy's dt_node
>>
>> Changes in v3:
>> - Achieve UOC_CON_OFFSET physical address from DT
>>
>> Changes in v2:
>> - Achieve the regs_phy from DT
>> - Update comments a little
>>
>> arch/arm/dts/rk3288.dtsi | 1 +
>> arch/arm/mach-rockchip/board.c | 72
>> +++++++++++++++++++++++++++++++++++++++++
>> include/configs/rk3288_common.h | 26 +++++++++++++++
>> 3 files changed, 99 insertions(+)
>>
>> diff --git a/arch/arm/dts/rk3288.dtsi b/arch/arm/dts/rk3288.dtsi
>> index 3dab0fc..bcf051a 100644
>> --- a/arch/arm/dts/rk3288.dtsi
>> +++ b/arch/arm/dts/rk3288.dtsi
>> @@ -454,6 +454,7 @@
>> interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
>> clocks = <&cru HCLK_OTG0>;
>> clock-names = "otg";
>> + dr_mode = "otg";
>> phys = <&usbphy0>;
>> phy-names = "usb2-phy";
>> status = "disabled";
>> diff --git a/arch/arm/mach-rockchip/board.c
>> b/arch/arm/mach-rockchip/board.c
>> index 816540e..ab41877 100644
>> --- a/arch/arm/mach-rockchip/board.c
>> +++ b/arch/arm/mach-rockchip/board.c
>> @@ -52,6 +52,78 @@ void lowlevel_init(void)
>> {
>> }
>> +#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 rk3288_otg_data = {
>> + .rx_fifo_sz = 512,
>> + .np_tx_fifo_sz = 16,
>> + .tx_fifo_sz = 512,
>> +};
>> +
> rk3288 otg port total fifo size is only 0x3cc ?972?this value is in
> terms of 32-bit words??
> read from GHWCFG3 register bit[31:16], it's smaller than the total
> fifo size you configured.
>
I understand what you concern, but fifo size is in terms of 1 byte
above, please take a look on v4
2/4(http://patchwork.ozlabs.org/patch/648237/).I remove >> 2 on the
former code. Let me know if you still disagree with it.
Thanks!
>> +int board_usb_init(int index, enum usb_init_type init)
>> +{
>> + int node, phy_node;
>> + const char *mode;
>> + bool matched = false;
>> + const void *blob = gd->fdt_blob;
>> + u32 grf_phy_offset;
>> +
>> + /* 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;
>> + }
>> + rk3288_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
>> +
>> + node = fdtdec_lookup_phandle(blob, node, "phys");
>> + if (node <= 0) {
>> + debug("Not found usb phy device\n");
>> + return -ENODEV;
>> + }
>> +
>> + phy_node = fdt_parent_offset(blob, node);
>> + if (phy_node <= 0) {
>> + debug("Not found usb phy device\n");
>> + return -ENODEV;
>> + }
>> +
>> + rk3288_otg_data.phy_of_node = phy_node;
>> + grf_phy_offset = fdtdec_get_addr(blob, node, "reg");
>> +
>> + /* find the grf node */
>> + node = fdt_node_offset_by_compatible(blob, -1,
>> + "rockchip,rk3288-grf");
>> + if (node <= 0) {
>> + debug("Not found grf device\n");
>> + return -ENODEV;
>> + }
>> + rk3288_otg_data.regs_phy = grf_phy_offset +
>> + fdtdec_get_addr(blob, node, "reg");
>> +
>> + return dwc2_udc_probe(&rk3288_otg_data);
>> +}
>> +
>> +int board_usb_cleanup(int index, enum usb_init_type init)
>> +{
>> + return 0;
>> +}
>> +#endif
>> +
>> static int do_clock(cmd_tbl_t *cmdtp, int flag, int argc,
>> char * const argv[])
>> {
>> diff --git a/include/configs/rk3288_common.h
>> b/include/configs/rk3288_common.h
>> index 8adc26f..2040cdd 100644
>> --- a/include/configs/rk3288_common.h
>> +++ b/include/configs/rk3288_common.h
>> @@ -79,6 +79,32 @@
>> #define CONFIG_SPI
>> #define CONFIG_SF_DEFAULT_SPEED 20000000
>> +/* usb otg */
>> +#define CONFIG_USB_GADGET
>> +#define CONFIG_USB_GADGET_DUALSPEED
>> +#define CONFIG_USB_GADGET_DWC2_OTG
>> +#define CONFIG_ROCKCHIP_USB2_PHY
>> +#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 1 /* eMMC */
>> +/* stroe safely fastboot buffer data to the middle of bank */
>> +#define CONFIG_FASTBOOT_BUF_ADDR (CONFIG_SYS_SDRAM_BASE \
>> + + SDRAM_BANK_SIZE / 2)
>> +#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 0x320a
>> +
>> +/* Enable gpt partition table */
>> +#define CONFIG_CMD_GPT
>> +#define CONFIG_EFI_PARTITION
>> +
>> #ifndef CONFIG_SPL_BUILD
>> #include <config_distro_defaults.h>
>
>
>
>
next prev parent reply other threads:[~2016-07-14 15:51 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-14 6:52 [U-Boot] [PATCH v4 0/4] rockchip: rk3288: add fastboot support Ziyuan Xu
2016-07-14 6:52 ` [U-Boot] [PATCH v4 1/4] usb: rockchip-phy: implement USB2.0 phy control Ziyuan Xu
2016-07-15 3:20 ` Simon Glass
2016-07-15 3:56 ` Simon Glass
2016-07-14 6:52 ` [U-Boot] [PATCH v4 2/4] usb: dwc2-otg: adjust fifo size via platform data Ziyuan Xu
2016-07-15 3:20 ` Simon Glass
2016-07-15 3:56 ` Simon Glass
2016-07-16 5:43 ` Marek Vasut
2016-07-16 20:59 ` Simon Glass
2016-07-14 6:52 ` [U-Boot] [PATCH v4 3/4] rockchip: rk3288: add fastboot support Ziyuan Xu
2016-07-14 11:06 ` William.wu
2016-07-14 15:51 ` Ziyuan Xu [this message]
2016-07-14 16:26 ` [U-Boot] [PATCH v4.1 " Ziyuan Xu
2016-07-15 3:20 ` Simon Glass
2016-07-15 14:05 ` Ziyuan Xu
2016-07-15 14:38 ` Simon Glass
2016-07-16 22:31 ` Simon Glass
2016-07-14 6:52 ` [U-Boot] [PATCH v4 4/4] usb: dwc2 : invalidate dcache before starting DMA Ziyuan Xu
2016-07-15 3:20 ` Simon Glass
2016-07-15 3:56 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5787B506.9030208@rock-chips.com \
--to=xzy.xu@rock-chips.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox