Hi Valdis, You mean In non embedded system( laptop, desktop and server ) DT is not at all required? Regards, Madhu On Tue, Oct 25, 2016 at 1:09 PM, <Valdis.Kletnieks@vt.edu> wrote:
On Tue, 25 Oct 2016 11:51:38 +0530, Madhu K said:
If in case Device tree is not there, where and how to pass the hardware information to the linux kernel.
For many types of hardware, the bus protocol provides a standard way to find everything on the bus. And that sort of bus scanning is how non-embedded systems find all their devices. If it's a laptop or a desktop or server, there's always the possibility that the user has plugged in a new graphics card or a different network card - so being able to scan and detect is important there.
However, in an embedded system, the configuration is fixed - all the parts are soldered in place, and there's no place to add new devices. So the hardware designers save the US$0.08 per chip by picking stripped down chips that don't have full function (for instance, leave off the PCI config circuitry and just provide a hardwired "this device will live at this address permanently")
And yes, if you're building microwave ovens, and selling 10 million of them, suddenly saving 8 cents US per chip adds up to some major profits...
Does all embedded systems contains Device tree?
No, only embedded systems that have I/O devices that cannot be enumerated by the hardware. So for instance, usually a PCI device or a USB device can be detected by a bus scan. So if that's all you have, you don't need device tree - the system can find all the hardware resources.
But if you have GPIO pins, or an audio or ethernet card that's hard-wired in some non-scannable way, or weird clock chips, or anything like that, you'll need device tree.
And it's certainly possible to do *both* - let the kernel scan for PCI and USB devices, *and* provide a device tree for non-scannable resources.