162306a36Sopenharmony_ci=====================================
262306a36Sopenharmony_ciPassing boot parameters to the kernel
362306a36Sopenharmony_ci=====================================
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciBoot parameters are represented as a TLV list in the memory. Please see
662306a36Sopenharmony_ciarch/xtensa/include/asm/bootparam.h for definition of the bp_tag structure and
762306a36Sopenharmony_citag value constants. First entry in the list must have type BP_TAG_FIRST, last
862306a36Sopenharmony_cientry must have type BP_TAG_LAST. The address of the first list entry is
962306a36Sopenharmony_cipassed to the kernel in the register a2. The address type depends on MMU type:
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci- For configurations without MMU, with region protection or with MPU the
1262306a36Sopenharmony_ci  address must be the physical address.
1362306a36Sopenharmony_ci- For configurations with region translarion MMU or with MMUv3 and CONFIG_MMU=n
1462306a36Sopenharmony_ci  the address must be a valid address in the current mapping. The kernel will
1562306a36Sopenharmony_ci  not change the mapping on its own.
1662306a36Sopenharmony_ci- For configurations with MMUv2 the address must be a virtual address in the
1762306a36Sopenharmony_ci  default virtual mapping (0xd0000000..0xffffffff).
1862306a36Sopenharmony_ci- For configurations with MMUv3 and CONFIG_MMU=y the address may be either a
1962306a36Sopenharmony_ci  virtual or physical address. In either case it must be within the default
2062306a36Sopenharmony_ci  virtual mapping. It is considered physical if it is within the range of
2162306a36Sopenharmony_ci  physical addresses covered by the default KSEG mapping (XCHAL_KSEG_PADDR..
2262306a36Sopenharmony_ci  XCHAL_KSEG_PADDR + XCHAL_KSEG_SIZE), otherwise it is considered virtual.
23