This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VH-Q1:TDA4VH USB fastboot 功能 get

Guru**** 1956055 points
Other Parts Discussed in Thread: TDA4VM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1206670/tda4vh-q1-tda4vh-usb-fastboot-functiongetd

器件型号:TDA4VH-Q1
主题中讨论的其他器件:TDA4VMTDA4VH

尊敬的 TI:

我们使用 Linux SDK 0805版本来测试 uboot fastboot 功能、buf 发现了问题:

在 uboot 运行"Fastboot_handle_command:download:00008600 "后、USB DMA 索引无法自动增加数字"1"

我们发现 USB DMA 索引来自函数:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
static int cdns3_get_dma_pos(struct cdns3_device *priv_dev,
struct cdns3_endpoint *priv_ep)
{
int dma_index;
printf("%s ruijie :ep_traddr: 0x%x, readl(ep_traddr):0x%x trb_pool_dma:0x%x\n", __func__, priv_dev->regs->ep_traddr, readl(&priv_dev->regs->ep_traddr), priv_ep->trb_pool_dma);
dma_index = readl(&priv_dev->regs->ep_traddr) - priv_ep->trb_pool_dma;
return dma_index / TRB_SIZE;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 n‘t 找到了 usb priv_dev->regs->ep_traddr 无法 自动增大,  

TDA4VM 中的 log printf,它是正常的 log,

在第2行: cdns3_get_dma_pos ruijie:ep_traddr:0xf7ec269c、readl (EP_traddr):0xf7ec269c trb_pool_dma:0xf7ec2600

在第57行:cdns3_get_dma_pos ruijie:ep_traddr:0xf7ec26a8、readl (EP_traddr):0xf7ec26a8 trb_pool_dma:0xf7ec2600

但 TDA4VH EP_traddr 值不能增加

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cdns3_select_ep return
cdns3_get_dma_pos ruijie :ep_traddr: 0xf7ec269c, readl(ep_traddr):0xf7ec269c trb_pool_dma:0xf7ec2600
cdns3_request_handled trb->control & TRB_CYCLE: 0x1 priv_ep->ccs:0x1
cdns3_request_handled current_index: 13, priv_ep->dequeue:12
cdns3_request_handled:===enter===trb[00000000f7ec2690] doorbell[1] ep_cmd[53824]
cdns3_request_handled: ep->dequeue[12] ep->enqueue[13] req->start_trb[12] req->end_trb[12] current_index[13],trb_pool_dma[00000000f7ec2600] free_trbs[38] num_trbs[40] flags[0x141] dir[0] num[1], priv_req->request.complete[00000000fff45130]
cdns3_request_handled ruijie 3
cdns3_transfer_completed call cdns3_gadget_giveback 17 4096
cdns3_gadget_giveback enter 00000000fff45130
cdns3_gadget_giveback usb_gadget_giveback_request 00000000fff45130
actual:17 length:4096
fastboot_handle_command : download:00008600
Starting download of 34304 bytes
rx_handler_command DATA ruijie
cdns3_select_ep writel(ep, &priv_dev->regs->ep_sel);
cdns3_gadget_ep_dequeue goto pending_req_list found
cdns3_gadget_ep_dequeue call cdns3_gadget_giveback
cdns3_gadget_giveback enter 00000000fff4498c
cdns3_gadget_giveback usb_gadget_giveback_request 00000000fff4498c
status: -104 ep 'ep1in' trans: 0
cdns3_gadget_ep_queue enter ep_cmd: 0xea00
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我们在 TDA4VM 中发现 USB 的版本是  DEV_VER_TI_V1,但在 TDA4VH 中,USB 版本是 DEV_VER_V3,

将 TDA4VH 使用版本修改为 DEV_VER_TI_V1、问题得到解决、您能提供帮助吗? 谢谢

#define DEV_VER_TI_V1       0x00024509
#define DEV_VER_V2        0x0002450C
#define DEV_VER_V3        0x0002450d
Fullscreen
1
2
3
4
5
6
7
8
9
10
priv_dev->dev_ver = readl(&priv_dev->regs->usb_cap6);
dev_dbg(priv_dev->dev, "Device Controller version: %08x\n",
readl(&priv_dev->regs->usb_cap6));
dev_dbg(priv_dev->dev, "USB Capabilities:: %08x\n",
readl(&priv_dev->regs->usb_cap1));
dev_dbg(priv_dev->dev, "On-Chip memory cnfiguration: %08x\n",
readl(&priv_dev->regs->usb_cap2));
priv_dev->dev_ver = GET_DEV_BASE_VERSION(priv_dev->dev_ver);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    TDA4VH 日志为:

    第345行

    cdns3_get_dma_pos EP_traddr:0xf7ec277c TRB_pool_dma:0xf7ec2740

    cdns3_request_handled TRB->control & TRB_cycle:0x1 priv_ep->CCS:0x1

    cdns3_request_handled current_index:5,priv_ep->dequeue:4

    2)第435行

    cdns3_get_dma_pos EP_traddr:0xf7ec277c TRB_pool_dma:0xf7ec2740

    cdns3_request_handled TRB->control & TRB_cycle:0x1 priv_ep->CCS:0x1

    cdns3_request_handled current_index:5,priv_ep->dequeue:5

    EP_traddr 值相同

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    traddr: 0xf7ec274c trb_pool_dma: 0xf7ec2740
    cdns3_request_handled trb->control & TRB_CYCLE: 0x1 priv_ep->ccs:0x1
    cdns3_request_handled current_index: 1, priv_ep->dequeue:1
    cdns3_request_handled 11 goto finish
    cdns3_transfer_completed error prepare_next_td
    cdns3_start_all_request start
    cdns3_device_thread_irq_handler bit 1
    cdns3_device_irq_handler ep_ists:0x20001
    cdns3_select_ep writel(ep, &priv_dev->regs->ep_sel);
    cdns3_ep0_setup_phase
    cdns3_ep0_standard_request
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、 sun ruijie  

    感谢您报告此问题。我能够重现此问题、我已经在此提出了一个错误  

    TI 内部错误链接  

    https://jira.itg.ti.com/browse/JACINTOREQ-5445

    此致
    Diwakar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、 sun ruijie  

    关于此问题的更新是计划针对9.1 SDK 提供该更新。

    此致
    Diwakar

x 出现错误。请重试或与管理员联系。