mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
da844a8177
Device trees allow specification of hardware topology and device parameters at runtime instead of hard-coding them in platform setup code. This allows running single binary kernel on a range of compatible boards. New boot parameters tag BP_TAG_FDT is allocated and a pointer to flat device tree is passed in it. Note that current interrupt mapping scheme uses single cell for interrupt identification. That means that IRQ numbers used in DTS must be CPU internal IRQ numbers, not external. It is possible to extend interrupt identification to two cells, and use second cell to tell external IRQ numbers form internal. That would allow to use single DTS on multiple boards with different mapping of external IRQ numbers. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Chris Zankel <chris@zankel.net>
63 lines
1.5 KiB
C
63 lines
1.5 KiB
C
/*
|
|
* include/asm-xtensa/bootparam.h
|
|
*
|
|
* Definition of the Linux/Xtensa boot parameter structure
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Copyright (C) 2001 - 2005 Tensilica Inc.
|
|
*
|
|
* (Concept borrowed from the 68K port)
|
|
*/
|
|
|
|
#ifndef _XTENSA_BOOTPARAM_H
|
|
#define _XTENSA_BOOTPARAM_H
|
|
|
|
#define BP_VERSION 0x0001
|
|
|
|
#define BP_TAG_COMMAND_LINE 0x1001 /* command line (0-terminated string)*/
|
|
#define BP_TAG_INITRD 0x1002 /* ramdisk addr and size (bp_meminfo) */
|
|
#define BP_TAG_MEMORY 0x1003 /* memory addr and size (bp_meminfo) */
|
|
#define BP_TAG_SERIAL_BAUSRATE 0x1004 /* baud rate of current console. */
|
|
#define BP_TAG_SERIAL_PORT 0x1005 /* serial device of current console */
|
|
#define BP_TAG_FDT 0x1006 /* flat device tree addr */
|
|
|
|
#define BP_TAG_FIRST 0x7B0B /* first tag with a version number */
|
|
#define BP_TAG_LAST 0x7E0B /* last tag */
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
/* All records are aligned to 4 bytes */
|
|
|
|
typedef struct bp_tag {
|
|
unsigned short id; /* tag id */
|
|
unsigned short size; /* size of this record excluding the structure*/
|
|
unsigned long data[0]; /* data */
|
|
} bp_tag_t;
|
|
|
|
typedef struct meminfo {
|
|
unsigned long type;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
} meminfo_t;
|
|
|
|
#define SYSMEM_BANKS_MAX 5
|
|
|
|
#define MEMORY_TYPE_CONVENTIONAL 0x1000
|
|
#define MEMORY_TYPE_NONE 0x2000
|
|
|
|
typedef struct sysmem_info {
|
|
int nr_banks;
|
|
meminfo_t bank[SYSMEM_BANKS_MAX];
|
|
} sysmem_info_t;
|
|
|
|
extern sysmem_info_t sysmem;
|
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|