Re: Device Tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Oct 25, 2016, at 12:39 AM, Valdis.Kletnieks@xxxxxx 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.

This is not entirely true, usually things like the CPU and machine information can’t be auto detected and DT provides this info.

It is also used to communicate things like bootargs to the kernel [1]
[1] http://lxr.free-electrons.com/source/drivers/of/fdt.c#L1081

DT is not the only way to do these things. But I just wanted to highlight that DT is used as a vehicle for more than just solving “bus scanning” issues so you’ve to either use it or use other alternate methods to have such meta-data communicated from firmware.

- Joel


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux