瑞芯微Rockchip开发者社区
直播中

好名字

9年用户 869经验值
擅长:可编程逻辑
私信 关注
[问答]

如何将RK3288的debug口从uart2修改为uart3呢

如何将RK3288的debug口从uart2修改为uart3呢?有哪些修改步骤?

回帖(1)

林森

2022-3-10 11:43:01
  kernel/arch/arm/mach-rockchip/rk_fiq_debugger.c
  搜索:static int debug_port_init(struct platform_device *pdev)
  将该函数内容替换为以下即可:
  int dll = 0, dlm = 0;
  struct rk_fiq_debugger *t;
  t = container_of(dev_get_platdata(&pdev-》dev), typeof(*t), pdata);
  if (rk_fiq_read(t, UART_LSR) & UART_LSR_DR)
  (void)rk_fiq_read(t, UART_RX);
  //switch (t-》baudrate) {
  //case 1500000:
  //dll = 0x1;
  //break;
  //case 115200:
  //default:
  dll = 0xd;
  //break;
  //}
  rk_fiq_write(t, 0x83, UART_LCR);
  /* set baud rate */
  rk_fiq_write(t, dll, UART_DLL);
  rk_fiq_write(t, dlm, UART_DLM);
  rk_fiq_write(t, 0x03, UART_LCR);
  /* enable rx and lsr interrupt */
  rk_fiq_write(t, UART_IER_RLSI | UART_IER_RDI, UART_IER);
  /* interrupt on every character when receive,but we can enable fifo for TX
  I found that if we enable the RX fifo, some problem may vanish such as when
  you continuously input characters in the command line the uart irq may be disable
  because of the uart irq is served when CPU is at IRQ exception,but it is
  found unregistered, so it is disable.
  hhb@rock-chips.com */
  rk_fiq_write(t, 0xc1, UART_FCR);
  return 0;
  rk3288.dtsi里fiq_debugger改成以下:
  fiq_debugger: fiq-debugger {
  compatible = “rockchip,fiq-debugger”;
  rockchip,serial-id = 《3》;
  rockchip,signal-irq = 《182》; //无论是哪一个口,都不用修改该数值
  rockchip,wake-irq = 《0》;
  rockchip,irq-mode-enable = 《1》; /* If enable uart uses irq instead of fiq */
  rockchip,baudrate = 《1500000》; / *Only 115200 and 1500000 */
  pinctrl-names = “default”;
  pinctrl-0 = 《&uart1_xfer》;
  };
  rk3288-popmetal.dts里需要添加:
  &uart_gps{
  status = “okay”;
  dma-names = “!tx”, “!rx”;
  pinctrl-0 = 《&uart3_xfer &uart3_cts》;
  };
 
举报

更多回帖

发帖
×
20
完善资料,
赚取积分