1*ec62a746SCosta Shulyupin.. SPDX-License-Identifier: GPL-2.0
2*ec62a746SCosta Shulyupin
3*ec62a746SCosta ShulyupinBMIPS DeviceTree Booting
4*ec62a746SCosta Shulyupin------------------------
5*ec62a746SCosta Shulyupin
6*ec62a746SCosta Shulyupin  Some bootloaders only support a single entry point, at the start of the
7*ec62a746SCosta Shulyupin  kernel image.  Other bootloaders will jump to the ELF start address.
8*ec62a746SCosta Shulyupin  Both schemes are supported; CONFIG_BOOT_RAW=y and CONFIG_NO_EXCEPT_FILL=y,
9*ec62a746SCosta Shulyupin  so the first instruction immediately jumps to kernel_entry().
10*ec62a746SCosta Shulyupin
11*ec62a746SCosta Shulyupin  Similar to the arch/arm case (b), a DT-aware bootloader is expected to
12*ec62a746SCosta Shulyupin  set up the following registers:
13*ec62a746SCosta Shulyupin
14*ec62a746SCosta Shulyupin         a0 : 0
15*ec62a746SCosta Shulyupin
16*ec62a746SCosta Shulyupin         a1 : 0xffffffff
17*ec62a746SCosta Shulyupin
18*ec62a746SCosta Shulyupin         a2 : Physical pointer to the device tree block (defined in chapter
19*ec62a746SCosta Shulyupin         II) in RAM.  The device tree can be located anywhere in the first
20*ec62a746SCosta Shulyupin         512MB of the physical address space (0x00000000 - 0x1fffffff),
21*ec62a746SCosta Shulyupin         aligned on a 64 bit boundary.
22*ec62a746SCosta Shulyupin
23*ec62a746SCosta Shulyupin  Legacy bootloaders do not use this convention, and they do not pass in a
24*ec62a746SCosta Shulyupin  DT block.  In this case, Linux will look for a builtin DTB, selected via
25*ec62a746SCosta Shulyupin  CONFIG_DT_*.
26*ec62a746SCosta Shulyupin
27*ec62a746SCosta Shulyupin  This convention is defined for 32-bit systems only, as there are not
28*ec62a746SCosta Shulyupin  currently any 64-bit BMIPS implementations.
29