Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 091994cf authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'spi/merge' of git://git.secretlab.ca/git/linux-2.6

* 'spi/merge' of git://git.secretlab.ca/git/linux-2.6:
  devicetree-discuss is moderated for non-subscribers
  MAINTAINERS: Add entry for GPIO subsystem
  dt: add documentation of ARM dt boot interface
  dt: Remove obsolete description of powerpc boot interface
  dt: Move device tree documentation out of powerpc directory
  spi/spi_sh_msiof: fix wrong address calculation, which leads to an Oops
parents d8ed516f c170093d
Loading
Loading
Loading
Loading
+29 −4
Original line number Original line Diff line number Diff line
@@ -65,13 +65,19 @@ looks at the connected hardware is beyond the scope of this document.
The boot loader must ultimately be able to provide a MACH_TYPE_xxx
The boot loader must ultimately be able to provide a MACH_TYPE_xxx
value to the kernel. (see linux/arch/arm/tools/mach-types).
value to the kernel. (see linux/arch/arm/tools/mach-types).



4. Setup boot data
4. Setup the kernel tagged list
------------------
-------------------------------


Existing boot loaders:		OPTIONAL, HIGHLY RECOMMENDED
Existing boot loaders:		OPTIONAL, HIGHLY RECOMMENDED
New boot loaders:		MANDATORY
New boot loaders:		MANDATORY


The boot loader must provide either a tagged list or a dtb image for
passing configuration data to the kernel.  The physical address of the
boot data is passed to the kernel in register r2.

4a. Setup the kernel tagged list
--------------------------------

The boot loader must create and initialise the kernel tagged list.
The boot loader must create and initialise the kernel tagged list.
A valid tagged list starts with ATAG_CORE and ends with ATAG_NONE.
A valid tagged list starts with ATAG_CORE and ends with ATAG_NONE.
The ATAG_CORE tag may or may not be empty.  An empty ATAG_CORE tag
The ATAG_CORE tag may or may not be empty.  An empty ATAG_CORE tag
@@ -101,6 +107,24 @@ The tagged list must be placed in a region of memory where neither
the kernel decompressor nor initrd 'bootp' program will overwrite
the kernel decompressor nor initrd 'bootp' program will overwrite
it.  The recommended placement is in the first 16KiB of RAM.
it.  The recommended placement is in the first 16KiB of RAM.


4b. Setup the device tree
-------------------------

The boot loader must load a device tree image (dtb) into system ram
at a 64bit aligned address and initialize it with the boot data.  The
dtb format is documented in Documentation/devicetree/booting-without-of.txt.
The kernel will look for the dtb magic value of 0xd00dfeed at the dtb
physical address to determine if a dtb has been passed instead of a
tagged list.

The boot loader must pass at a minimum the size and location of the
system memory, and the root filesystem location.  The dtb must be
placed in a region of memory where the kernel decompressor will not
overwrite it.  The recommended placement is in the first 16KiB of RAM
with the caveat that it may not be located at physical address 0 since
the kernel interprets a value of 0 in r2 to mean neither a tagged list
nor a dtb were passed.

5. Calling the kernel image
5. Calling the kernel image
---------------------------
---------------------------


@@ -125,7 +149,8 @@ In either case, the following conditions must be met:
- CPU register settings
- CPU register settings
  r0 = 0,
  r0 = 0,
  r1 = machine type number discovered in (3) above.
  r1 = machine type number discovered in (3) above.
  r2 = physical address of tagged list in system RAM.
  r2 = physical address of tagged list in system RAM, or
       physical address of device tree block (dtb) in system RAM


- CPU mode
- CPU mode
  All forms of interrupts must be disabled (IRQs and FIQs)
  All forms of interrupts must be disabled (IRQs and FIQs)
Loading