九鼎创展论坛

标题: PX30开发板子,启动时候没法进入uboot命令行 [打印本页]

作者: leedarson_wgw    时间: 2021-11-9 09:58
标题: PX30开发板子,启动时候没法进入uboot命令行
如题,修改了CONFIG_BOOTDELAY=3时,启动有进行3秒倒计时,但是按任何按键都无法进入uboot命令行,包括ctrl+c和回车键都不行,请问下还需要修改哪些配置项?
作者: zhangd    时间: 2021-11-9 10:27
九鼎的源码脚本里面(mk.sh),有这样一句描述 BS_CONFIG_BOOTLOADER_UBOOT=x30_defconfig 也就是uboot用的是x30_defconfig 这个配置 也就是u-boot\configs\x30_defconfig 里面的CONFIG_BOOTDELAY=3 这个3指的是3秒回车进入uboot命令行,是否配置正确
作者: zhangd    时间: 2021-11-9 11:06
我的uboot/configs/配置如下附件(所发配置都是基于android平台 px30_oreo)源码配置

x30_defconfig

2.35 KB, 下载次数: 1


作者: leedarson_wgw    时间: 2021-11-9 11:24
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开发板的配置文件
作者: zhangd    时间: 2021-11-9 11:34
上述我发的x30_defconfig 配置是android平台的配置,9tripod-px30_defconfig 是 linux平台的配置,不能直接使用是正常的
作者: zhangd    时间: 2021-11-9 11:37
linux平台的配置如下

9tripod-px30_defconfig

2.87 KB, 下载次数: 1


作者: leedarson_wgw    时间: 2021-11-9 11:38
能发一个linux可以用的配置文件吗,感觉捕捉不到键盘信号
作者: leedarson_wgw    时间: 2021-11-9 13:47
你上传的9tripod-px30_defconfig这个文件跟我的是一样的配置,你的CONFIG_BOOTDELAY=1而我的本来也是1,后面我改为3了。
作者: zhangd    时间: 2021-11-9 14:49
经检验确实有问题,请安下图所示修改

QQ图片20211109144721.png (15 KB, 下载次数: 113)

QQ图片20211109144721.png

作者: leedarson_wgw    时间: 2021-11-9 16:42
按照截图所该仍然不行,代码进行跟踪发现下面这个函数始终返回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;
            }
作者: leedarson_wgw    时间: 2021-11-9 17:59
我把串口线换到uart0后就可以。我之前串口线一直放串口2,同样可以输出,只是捕获不到键盘。
我提问下下面问题
1.uboot是通过设备树配置的串口信息还是代码,如果是代码的话在哪个位置指定了串口号,为什么串口2在终端也可以收到串口信息
作者: zhangd    时间: 2021-11-10 10:36
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的里面是指定了的)



作者: leedarson_wgw    时间: 2021-11-10 18:10
不太明白uboot的串口输出为什么是通过内核的rk3326-linux.dtsi设备树指定的,不是应该uboot的设备树指定的吗。有点难理解这整个启动流程,可否提供文档协助




欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2