^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * This file describes the structure passed from the BootX application
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * (for MacOS) when it is used to boot Linux.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Written by Benjamin Herrenschmidt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #ifndef __ASM_BOOTX_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define __ASM_BOOTX_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <uapi/asm/bootx.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) /* (*) The format of the colormap is 256 * 3 * 2 bytes. Each color index
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) * is represented by 3 short words containing a 16 bits (unsigned) color
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) * component. Later versions may contain the gamma table for direct-color
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) * devices here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define BOOTX_COLORTABLE_SIZE (256UL*3UL*2UL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) /* BootX passes the device-tree using a format that comes from earlier
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) * ppc32 kernels. This used to match what is in prom.h, but not anymore
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) * so we now define it here
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) struct bootx_dt_prop {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) u32 name;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) int length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) u32 value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) u32 next;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) struct bootx_dt_node {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) u32 unused0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) u32 unused1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) u32 phandle; /* not really available */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) u32 unused2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) u32 unused3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) u32 unused4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) u32 unused5;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) u32 full_name;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) u32 properties;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) u32 parent;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) u32 child;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) u32 sibling;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) u32 next;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) u32 allnext;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) extern void bootx_init(unsigned long r4, unsigned long phys);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #endif