1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Definition of the Linux/Xtensa boot parameter structure 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2001 - 2009 Tensilica Inc. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * (Concept borrowed from the 68K port) 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifndef _XTENSA_BOOTPARAM_H 12*4882a593Smuzhiyun #define _XTENSA_BOOTPARAM_H 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #define BP_VERSION 0x0001 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #define BP_TAG_COMMAND_LINE 0x1001 /* command line (0-terminated string)*/ 17*4882a593Smuzhiyun #define BP_TAG_INITRD 0x1002 /* ramdisk addr and size (bp_meminfo) */ 18*4882a593Smuzhiyun #define BP_TAG_MEMORY 0x1003 /* memory addr and size (bp_meminfo) */ 19*4882a593Smuzhiyun #define BP_TAG_SERIAL_BAUDRATE 0x1004 /* baud rate of current console */ 20*4882a593Smuzhiyun #define BP_TAG_SERIAL_PORT 0x1005 /* serial device of current console */ 21*4882a593Smuzhiyun #define BP_TAG_FDT 0x1006 /* flat device tree */ 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #define BP_TAG_FIRST 0x7B0B /* first tag with a version number */ 24*4882a593Smuzhiyun #define BP_TAG_LAST 0x7E0B /* last tag */ 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #ifndef __ASSEMBLY__ 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun /* All records are aligned to 4 bytes */ 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun struct bp_tag { 31*4882a593Smuzhiyun unsigned short id; /* tag id */ 32*4882a593Smuzhiyun unsigned short size; /* size of this record excluding the structure*/ 33*4882a593Smuzhiyun unsigned long data[0]; /* data */ 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun #define bp_tag_next(tag) \ 37*4882a593Smuzhiyun ((struct bp_tag *)((unsigned long)((tag) + 1) + (tag)->size)) 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun struct meminfo { 40*4882a593Smuzhiyun unsigned long type; 41*4882a593Smuzhiyun unsigned long start; 42*4882a593Smuzhiyun unsigned long end; 43*4882a593Smuzhiyun }; 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun #define MEMORY_TYPE_CONVENTIONAL 0x1000 46*4882a593Smuzhiyun #define MEMORY_TYPE_NONE 0x2000 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun struct sysmem_info { 49*4882a593Smuzhiyun int nr_banks; 50*4882a593Smuzhiyun struct meminfo bank[0]; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun #endif 54*4882a593Smuzhiyun #endif 55