Uboot在手臂

时间:2017-12-30 08:35:58

标签: c arm u-boot

我试图将自己的串行驱动程序添加到uboot。到目前为止我所取得的成就是这些信息:

U-Boot SPL 2017.09-gdc4fd1d6eb-dirty (Dec 30 2017 - 09:13:03)
DRAM: 2048 MiB
Trying to boot from FEL

但就是这样。我知道还应该有其他消息,但没有任何消息。

我怀疑我的串口驱动程序只在uboot SPL中工作,但之后就有了#u; uboot device model"驱动程序兼容需要运行。我是对的吗?

在" uboot设备型号"中注册我的驱动程序我介绍了两个调用:

U_BOOT_DEVICE(sun8i_serials) = {
        .name = "serial_sun8i",
        .platdata = &sun8i_serial_plat,
};


U_BOOT_DRIVER(serial_sun8i) = {
    .name = "serial_sun8i",
    .id = UCLASS_SERIAL,
    .ops = &sun8i_serial_ops,
    .probe = sun8i_serial_probe,
};

有了这两个结构,我期待我的程序" sun8i_serial_probe"将被执行,但它不是。在这个程序中,我只是打开一些LED,但是这个LED仍然关闭,所以我的结论是它没有被调用。

如何正确注册我的驱动程序并实现对sun8i_serial_probe程序的调用?

也许在SPL之后还有另一个步骤(第三个程序加载器?)并且它正在使用虚拟内存空间,这就是为什么我的程序无法打开LED?

有什么建议吗?

Edit1:我发现proc list_bind_drivers()发出"不匹配驱动程序serial_sun8i"。所以看起来U_BOOT_DEVICE工作正常而U_BOOT_DRIVER由于某些原因没有。

Edit2:好像我修复了这个bug。该错误发生在Makefile中。

0 个答案:

没有答案