xref: /openbmc/linux/Documentation/arch/xtensa/booting.rst (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1*87670c57SJonathan Corbet=====================================
2*87670c57SJonathan CorbetPassing boot parameters to the kernel
3*87670c57SJonathan Corbet=====================================
4*87670c57SJonathan Corbet
5*87670c57SJonathan CorbetBoot parameters are represented as a TLV list in the memory. Please see
6*87670c57SJonathan Corbetarch/xtensa/include/asm/bootparam.h for definition of the bp_tag structure and
7*87670c57SJonathan Corbettag value constants. First entry in the list must have type BP_TAG_FIRST, last
8*87670c57SJonathan Corbetentry must have type BP_TAG_LAST. The address of the first list entry is
9*87670c57SJonathan Corbetpassed to the kernel in the register a2. The address type depends on MMU type:
10*87670c57SJonathan Corbet
11*87670c57SJonathan Corbet- For configurations without MMU, with region protection or with MPU the
12*87670c57SJonathan Corbet  address must be the physical address.
13*87670c57SJonathan Corbet- For configurations with region translarion MMU or with MMUv3 and CONFIG_MMU=n
14*87670c57SJonathan Corbet  the address must be a valid address in the current mapping. The kernel will
15*87670c57SJonathan Corbet  not change the mapping on its own.
16*87670c57SJonathan Corbet- For configurations with MMUv2 the address must be a virtual address in the
17*87670c57SJonathan Corbet  default virtual mapping (0xd0000000..0xffffffff).
18*87670c57SJonathan Corbet- For configurations with MMUv3 and CONFIG_MMU=y the address may be either a
19*87670c57SJonathan Corbet  virtual or physical address. In either case it must be within the default
20*87670c57SJonathan Corbet  virtual mapping. It is considered physical if it is within the range of
21*87670c57SJonathan Corbet  physical addresses covered by the default KSEG mapping (XCHAL_KSEG_PADDR..
22*87670c57SJonathan Corbet  XCHAL_KSEG_PADDR + XCHAL_KSEG_SIZE), otherwise it is considered virtual.
23