九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 2929|回复: 12

PX30开发板子,启动时候没法进入uboot命令行

[复制链接]
发表于 2021-11-9 09:58:39 | 显示全部楼层 |阅读模式
如题,修改了CONFIG_BOOTDELAY=3时,启动有进行3秒倒计时,但是按任何按键都无法进入uboot命令行,包括ctrl+c和回车键都不行,请问下还需要修改哪些配置项?
回复

使用道具 举报

发表于 2021-11-9 10:27:06 | 显示全部楼层
九鼎的源码脚本里面(mk.sh),有这样一句描述 BS_CONFIG_BOOTLOADER_UBOOT=x30_defconfig 也就是uboot用的是x30_defconfig 这个配置 也就是u-boot\configs\x30_defconfig 里面的CONFIG_BOOTDELAY=3 这个3指的是3秒回车进入uboot命令行,是否配置正确
回复 支持 反对

使用道具 举报

发表于 2021-11-9 11:06:06 | 显示全部楼层
我的uboot/configs/配置如下附件(所发配置都是基于android平台 px30_oreo)源码配置

x30_defconfig

2.35 KB, 下载次数: 1

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-9 11:24:36 | 显示全部楼层
1.我的mk.sh调用的是BS_CONFIG_BOOTLOADER_UBOOT=9tripod-px30_defconfig
2.我修改了9tripod-px30_defconfig的CONFIG_BOOTDELAY=3,系统启动也确实变成3秒倒计时,但是依然进不去命令行模式
3.我对比了x30_defconfig和9tripod-px30_defconfig两个文件,配置项差异比较多。无法直接使用,可否提供9tripod-px30开发板的配置文件
回复 支持 反对

使用道具 举报

发表于 2021-11-9 11:34:20 | 显示全部楼层
上述我发的x30_defconfig 配置是android平台的配置,9tripod-px30_defconfig 是 linux平台的配置,不能直接使用是正常的
回复 支持 反对

使用道具 举报

发表于 2021-11-9 11:37:59 | 显示全部楼层
linux平台的配置如下

9tripod-px30_defconfig

2.87 KB, 下载次数: 1

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-9 11:38:15 | 显示全部楼层
能发一个linux可以用的配置文件吗,感觉捕捉不到键盘信号
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-9 13:47:17 | 显示全部楼层
你上传的9tripod-px30_defconfig这个文件跟我的是一样的配置,你的CONFIG_BOOTDELAY=1而我的本来也是1,后面我改为3了。
回复 支持 反对

使用道具 举报

发表于 2021-11-9 14:49:41 | 显示全部楼层
经检验确实有问题,请安下图所示修改
QQ图片20211109144721.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-9 16:42:28 | 显示全部楼层
按照截图所该仍然不行,代码进行跟踪发现下面这个函数始终返回0,导致进不去tstc.麻烦帮忙看看怎么回事
static int console_tstc(int file)
{
        int i, ret;
        struct stdio_dev *dev;

        disable_ctrlc(1);
        for (i = 0; i < cd_count[file]; i++) {
                dev = console_devices[file][i];
                if (dev->tstc != NULL) {
                        ret = dev->tstc(dev);
                        if (ret > 0) {
                                tstcdev = dev;
                                disable_ctrlc(0);
                                return ret;
                        }
                }
        }
        disable_ctrlc(0);

        return 0;
}
///////////////////////////////
if (tstc()) {   /* we got a key press   */
                abort  = 1; /* don't auto boot  */
                bootdelay = 0;  /* no more delay    */
                printf("wgw_test8:-------------------------\n");
# ifdef CONFIG_MENUKEY
                menukey = getc();
# else
                (void) getc();  /* consume input    */
# endif
                break;
            }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-9 17:59:41 | 显示全部楼层
我把串口线换到uart0后就可以。我之前串口线一直放串口2,同样可以输出,只是捕获不到键盘。
我提问下下面问题
1.uboot是通过设备树配置的串口信息还是代码,如果是代码的话在哪个位置指定了串口号,为什么串口2在终端也可以收到串口信息
回复 支持 反对

使用道具 举报

发表于 2021-11-10 10:36:03 | 显示全部楼层
rk3326-linux.dtsi里面有这样的节点描述,如下:
chosen {
                bootargs = "earlycon=uart8250,mmio32,0xff160000 swiotlb=1 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootwait";
        };
px30.dtsi 里面有对uart2这样的描述:
        uart2: serial@ff160000 {
                compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
                reg = <0x0 0xff160000 0x0 0x100>;
                interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
                clock-names = "baudclk", "apb_pclk";
                reg-shift = <2>;
                reg-io-width = <4>;
                dmas = <&dmac 4>, <&dmac 5>;
                pinctrl-names = "default";
                pinctrl-0 = <&uart2m0_xfer>;
                status = "disabled";
        };
chosen节点里面的0xff160000 和uart2节点里面的uart2: serial@ff160000(ff160000)对应;(这个口是不能随意定的,不是说想用uart1做为调试串口就将uart1的地址对应上去,这个在rkbin的里面是指定了的)


回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-10 18:10:43 | 显示全部楼层
不太明白uboot的串口输出为什么是通过内核的rk3326-linux.dtsi设备树指定的,不是应该uboot的设备树指定的吗。有点难理解这整个启动流程,可否提供文档协助
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-5-29 14:22 , Processed in 0.022743 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表