A64配置UART1或者UART2为串口打印\控制台输出说明

  

例:将log信息从uart1口输出。

1.修改boot阶段的uart输出口。

在tools目录下对应平台的sys_config.fex中,将修改uart_para 项,修改uboot阶段的打印输出。

boot默认使用uart0作打印输出,配置如下:

[uart_para]

uart_debug_port = 0

uart_debug_tx   = port:PB8<4><1><default><default>

uart_debug_rx   = port:PB9<4><1><default><default>

配置uart1作为uboot的打印输出,端口号和:

[uart_para]

uart_debug_port = 1

uart_debug_tx   = port:PG6<2><1><default><default>

uart_debug_rx   = port:PG7<2><1><default><default>

 

  1. 修改kernel阶段的uart输出口

如果不需要earlyprintk的打印,可以直接把earlypritk阶段的打印关闭。

关闭方法:make ARCH=arm64 menuconfig,然后关闭下面这两个选项

kernel hacking ---> early printk support

如果需要使用earlyprintk,那么按如下配置:

(1)64位的平台

修改env.cfg配置文件中的earlyprintk选项,使用uart1的地址:

//默认使用uart0的地址

Earlyprintk=sunxi-uart,0x01c28000

//默认使用uart1的地址

Earlyprintk=sunxi-uart,0x01c28400

   内核中的.config 中需要把CONFIG_CMDLINE_FROM_BOOTLOADER打开:

CONFIG_CMDLINE_FROM_BOOTLOADER=y

(2).修改kernel阶段的uart输出口

修改uart0 和uart1的uart_port 值,即把uart0生成设备ttyS1,uart1生成设备ttyS0:

[uart0]

uart0_used       = 1

uart0_port       = 1

uart0_type       = 2

uart0_tx         = port:PB8<4><1><default><default>

uart0_rx         = port:PB9<4><1><default><default>

 

[uart1]

uart1_used       = 1

uart1_port       = 0

uart1_type       = 4

uart1_tx         = port:PG6<2><1><default><default>

uart1_rx         = port:PG7<2><1><default><default>

uart1_rts        = port:PG8<2><1><default><default>

uart1_cts        = port:PG9<2><1><default><default>

具体修改如下:

[uart0]

uart0_used       = 1

uart0_port       = 1

uart0_type       = 2

uart0_tx         = port:PB8<4><1><default><default>

uart0_rx         = port:PB9<4><1><default><default>

 

[uart1]

uart1_used       = 1

uart1_port       = 0

uart1_type       = 4

uart1_tx         = port:PG6<2><1><default><default>

uart1_rx         = port:PG7<2><1><default><default>

uart1_rts        = port:PG8<2><1><default><default>

uart1_cts        = port:PG9<2><1><default><default>

 

  1. 在lichee/brandy/u-boot-2014.07/目录下打上补丁:

--- a/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/serial_spl.c

+++ b/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/serial_spl.c

@@ -44,10 +44,6 @@ void sunxi_serial_init(int uart_port, void *gpio_cfg, int gpio_max)

        u32 reg, i;

        u32 uart_clk;

 

-       if( (uart_port < 0) ||(uart_port > 0) )

-       {

-               return;

-       }

        //reset

        reg = readl(CCMU_BUS_SOFT_RST_REG4);

        reg &= ~(1<<(CCM_UART_PORT_OFFSET + uart_port));

 

  1. lichee/brandy/u-boot-20107/目录下打上补丁:

--- a/u-boot-2014.07/drivers/serial/serial_ns16550.c

+++ b/u-boot-2014.07/drivers/serial/serial_ns16550.c

@@ -259,6 +259,21 @@ struct serial_device eserial6_device =

 

 __weak struct serial_device *default_serial_console(void)

 {

+#if 1

+       int port = uboot_spare_head.boot_data.uart_port;

+       switch(port) {

+                       case 0:

+                                       return &eserial1_device;

+                       case 1:

+                                       return &eserial2_device;

+                       case 2:

+                                       return &eserial3_device;

+                       case 3:

+                                       return &eserial4_device;

+                       default:

+                                       return &eserial1_device;

+               }

+#else

 #if CONFIG_CONS_INDEX == 1

        return &eserial1_device;

 #elif CONFIG_CONS_INDEX == 2

@@ -274,6 +289,7 @@ __weak struct serial_device *default_serial_console(void)

 #else

 #error "Bad CONFIG_CONS_INDEX."

 #endif

+#endif

 }

 

使用uart2打印时相应修改以上1 、2对应uart2两点即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值