【问题标题】:At which place uart driver from u-boot will get removed and kernel's uart driver get inserted while booting?u-boot 中的 uart 驱动程序将在哪个位置被删除并在引导时插入内核的 uart 驱动程序?
【发布时间】:2014-09-29 22:47:31
【问题描述】:

我有这个疑问是因为,我知道 u-boot 有 uart 驱动程序,它有助于在引导内核时从 u-boot 开始查看调试日志(其中内核驱动程序不会起作用),我的问题是

  1. u-boot 将控制权移交给内核后,内核启动后,u-boot 端的uart、以太网驱动程序会发生什么变化?

2.kernel 也会有这样的驱动程序,它会在内核启动后起作用?

  1. 我可以看到从u-boot到内核的启动日志,内核启动后我可以通过u-boot或内核的驱动使用提示符?

4.如果是内核端,什么时候从u-boot的uart驱动切换?

【问题讨论】:

    标签: linux arm linux-device-driver u-boot


    【解决方案1】:

    首先,您需要了解驱动程序在 u-boot 阶段和内核阶段是不同的(尽管功能相同)。例如,U-Boot 使用自己的 uart 驱动程序向您展示它的控制台。一旦它把控制权交给内核,内核就会加载它自己的 uart 驱动程序(根据板子),初始化它,最后给你控制台。

    现在,一一回答你的问题:

    1. U-Boot 完全驻留在 RAM 中。因此,它的所有驱动程序都驻留在 RAM 本身中。一旦 U-Boot 将控制权转移给内核,内核就会在 RAM 中建立自己的环境,因此所有引导加载程序的数据都消失了(包括驱动程序)。一旦内核启动,U-Boot 的驱动程序就不再存在了!

    2. 没错。内核有自己的驱动程序来访问设备。它比引导加载程序提供的功能丰富得多。通常,额外的功能包括中断处理和可能的 DMA。 u-boot驱动一般是一个简单的轮询驱动。如果请求,Linux 内核的 uart 可能会在早期启动期间使用轮询模式,但代码与 u-boot 驱动程序不同。

    3. 是通过内核驱动。 U-Boot 的 uart 驱动打印的最后一条信息是“Starting kernel ...”。在此消息之后,您看到的所有控制台消息都是使用内核驱动程序打印的。因此,内核驱动程序打印的第一条消息是“Uncompressing Linux... done, booting the kernel

    4. 我希望第三个问题的答案也能回答这个问题!

    【讨论】:

      猜你喜欢
      • 2015-10-12
      • 2014-09-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      相关资源
      最近更新 更多