Mauro Carvalho Chehab | 8ea0afa | 2019-04-18 14:34:34 -0300 | [diff] [blame] | 1 | ===================================== |
| 2 | Passing boot parameters to the kernel |
| 3 | ===================================== |
Max Filippov | 05bdebd | 2018-11-14 17:48:07 -0800 | [diff] [blame] | 4 | |
| 5 | Boot parameters are represented as a TLV list in the memory. Please see |
| 6 | arch/xtensa/include/asm/bootparam.h for definition of the bp_tag structure and |
| 7 | tag value constants. First entry in the list must have type BP_TAG_FIRST, last |
| 8 | entry must have type BP_TAG_LAST. The address of the first list entry is |
| 9 | passed to the kernel in the register a2. The address type depends on MMU type: |
Mauro Carvalho Chehab | 8ea0afa | 2019-04-18 14:34:34 -0300 | [diff] [blame] | 10 | |
Max Filippov | 05bdebd | 2018-11-14 17:48:07 -0800 | [diff] [blame] | 11 | - For configurations without MMU, with region protection or with MPU the |
| 12 | address must be the physical address. |
| 13 | - For configurations with region translarion MMU or with MMUv3 and CONFIG_MMU=n |
| 14 | the address must be a valid address in the current mapping. The kernel will |
| 15 | not change the mapping on its own. |
| 16 | - For configurations with MMUv2 the address must be a virtual address in the |
| 17 | default virtual mapping (0xd0000000..0xffffffff). |
| 18 | - For configurations with MMUv3 and CONFIG_MMU=y the address may be either a |
| 19 | virtual or physical address. In either case it must be within the default |
| 20 | virtual mapping. It is considered physical if it is within the range of |
| 21 | physical addresses covered by the default KSEG mapping (XCHAL_KSEG_PADDR.. |
| 22 | XCHAL_KSEG_PADDR + XCHAL_KSEG_SIZE), otherwise it is considered virtual. |