176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/*
276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * This file describes the structure passed from the BootX application
376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * (for MacOS) when it is used to boot Linux.
476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman *
576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Written by Benjamin Herrenschmidt.
676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman *
776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Move to LinuxBIOS by LYH  yhlu@tyan.com
876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman *
976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */
1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef _BTEXT_H__
1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define _BTEXT_H__
1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if 1
1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define u32 unsigned int
1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define u16 unsigned short
1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define u8 unsigned char
1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif
2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* Here are the boot informations that are passed to the bootstrap
2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Note that the kernel arguments and the device tree are appended
2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * at the end of this structure. */
2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct boot_infos
2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman{
2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    /* NEW (vers. 2) this holds the current _logical_ base addr of
2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman       the frame buffer (for use by early boot message) */
2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    u8*       logicalDisplayBase;
3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    /* Some infos about the current MacOS display */
3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    u32       dispDeviceRect[4];       /* left,top,right,bottom */
3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    u32       dispDeviceDepth;         /* (8, 16 or 32) */
3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    u32       dispDeviceBase;          /* base address (physical) */
3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    u32       dispDeviceRowBytes;      /* rowbytes (in bytes) */
3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    u32       dispDeviceColorsOffset;  /* Colormap (8 bits only) or 0 (*) */
3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    /* The framebuffer size (optional, currently 0) */
4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    u32       frameBufferSize;         /* Represents a max size, can be 0. */
4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} boot_infos_t;
4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* (*) The format of the colormap is 256 * 3 * 2 bytes. Each color index is represented
4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * by 3 short words containing a 16 bits (unsigned) color component.
4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Later versions may contain the gamma table for direct-color devices here.
4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */
5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define BOOTX_COLORTABLE_SIZE    (256UL*3UL*2UL)
5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/*
5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Definitions for using the procedures in btext.c.
5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman *
5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Benjamin Herrenschmidt <benh@kernel.crashing.org>
5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */
5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern boot_infos_t disp_bi;
6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern u32 boot_text_mapped;
6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif /* _BTEXT_H */
63