Difference between revisions of "Creating A devicetree.cb"

From coreboot
Jump to: navigation, search
(Examples)
m (What you will need)
Line 3: Line 3:
 
== What you will need ==
 
== What you will need ==
  
* '''lspci -nvvv''' output
+
While running GNU/Linux on the vendor BIOS, collect the output from:
 +
 
 +
* '''dmesg'''
 +
* '''lspci -ntvvv'''
 +
* '''cat /proc/ioports'''
 +
 
 +
If you have support for your board in '''serialice''' you may wish to gather its output also.
  
 
== Introduction ==
 
== Introduction ==

Revision as of 11:26, 18 February 2014

This article should help people who are writting a devicetree.cb for their system.

What you will need

While running GNU/Linux on the vendor BIOS, collect the output from:

  • dmesg
  • lspci -ntvvv
  • cat /proc/ioports

If you have support for your board in serialice you may wish to gather its output also.

Introduction

The mainboard's devicetree.cb file contains many build and platform configuration settings. One of the most important items is the mainboard device list.

A device needs to be listed in the mainboard devicetree.cb if it requires more setup than standard PCI initialization (resource allocation). Typically, that includes the CPU, northbridge, southbridge, and Super I/O. These devices are usually required for system specific configuration as well as indicate the system bus structure (pci_domain).

When a device in devicetree.cb is found during the coreboot PCI/system scan process the functions to do customized initialization are called via the device_operations and the chip_operations structures. You will find these structures in the devices source files.

Keywords & Symbols

chip, device, register,on,off,pci,ioapic,pnp,i2c,lapic,cpu_cluster,domain,irq,drq,io,ioapic_irq,inherit,subsystemid,end,=

Syntax

  • ioapic_irq
ioapic_irq: ioapic_irq number-literal pciint number-literal

rewrite this in BNF notation..

Grammar

Literals

Literal values types are defined and thus consumed by the following regular expressions:

  • Hex
0x[0-9a-fA-F.]+
 
[0-9a-fA-F.]+
  • Decimals
[0-9.]+
  • PCI Interrupts
INT[A-D]
  • Strings
\"[^\"]+\"
 
[^ \n\t]+

NOTES

See source util/sconfig/sconfig.* for devicetree compiler..

Examples

NorthBridge

..

Super I/O

»       chip superio/fintek/f71869ad
»       »       device pnp 4e.00 off # Floppy
»       »       »       io 0x60 = 0x3f0
»       »       »       irq 0x70 = 6
»       »       »       drq 0x74 = 2
»       »       end
»       »       device pnp 4e.01 on # COM1
»       »       »       io 0x60 = 0x3f8
»       »       »       irq 0x70 = 4
»       »       end
»       »       »       device pnp 4e.02 off # COM2
»       »       »       io 0x60 = 0x2f8
»       »       »       irq 0x70 = 3
»       »       end
»       »       device pnp 4e.03 off # Parallel Port
»       »       »       io 0x60 = 0x378
»       »       »       irq 0x70 = 7
»       »       »       drq 0x74 = 3
»       »       end
»       »       device pnp 4e.04 on # Hardware Monitor
»       »       »       io 0x60 = 0x295
»       »       »       irq 0x70 = 0
»       »       end
»       »       device pnp 4e.05 on # KBC
»       »       »       io 0x60 = 0x060
»       »       »       irq 0x70 = 1 # Keyboard IRQ
»       »       »       irq 0x72 = 12 # Mouse IRQ
»       »       end
»       »       device pnp 4e.06 off end # GPIO
»       »       device pnp 4e.07 on end # BSEL
»       »       device pnp 4e.0a off end # PME
»       end # f71869ad
Creative Commons License
Creative Commons Attribution icon
This file is licensed under Creative Commons Attribution 2.5 License.
In short: you are free to distribute and modify the file as long as you attribute its author(s) or licensor(s).