| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | 2 | #ifndef _PPC_REDBOOT_H | 
|  | 3 | #define _PPC_REDBOOT_H | 
|  | 4 |  | 
|  | 5 | //========================================================================= | 
|  | 6 | // include/asm-ppc/redboot.h | 
|  | 7 | //   Copyright (c) 2002, 2003 Gary Thomas (<gary@mlbassoc.com> | 
|  | 8 | //   Copyright (c) 1997 Dan Malek (dmalek@jlc.net) | 
|  | 9 |  | 
|  | 10 | // | 
|  | 11 | // Board specific details, as provided by RedBoot | 
|  | 12 | // | 
|  | 13 |  | 
|  | 14 | /* A Board Information structure that is given to a program when | 
|  | 15 | * RedBoot starts it up.  Note: not all fields make sense for all | 
|  | 16 | * architectures and it's up to the platform specific code to fill | 
|  | 17 | * in the details. | 
|  | 18 | */ | 
|  | 19 | typedef struct bd_info { | 
|  | 20 | unsigned int   bi_tag;        /* Should be 0x42444944 "BDID" */ | 
|  | 21 | unsigned int   bi_size;       /* Size of this structure */ | 
|  | 22 | unsigned int   bi_revision;   /* revision of this structure */ | 
|  | 23 | unsigned int   bi_bdate;      /* bootstrap date, i.e. 0x19971106 */ | 
|  | 24 | unsigned int   bi_memstart;   /* Memory start address */ | 
|  | 25 | unsigned int   bi_memsize;    /* Memory (end) size in bytes */ | 
|  | 26 | unsigned int   bi_intfreq;    /* Internal Freq, in Hz */ | 
|  | 27 | unsigned int   bi_busfreq;    /* Bus Freq, in Hz */ | 
|  | 28 | unsigned int   bi_cpmfreq;    /* CPM Freq, in Hz */ | 
|  | 29 | unsigned int   bi_brgfreq;    /* BRG Freq, in Hz */ | 
|  | 30 | unsigned int   bi_vco;        /* VCO Out from PLL */ | 
|  | 31 | unsigned int   bi_pci_freq;   /* PCI Freq, in Hz */ | 
|  | 32 | unsigned int   bi_baudrate;   /* Default console baud rate */ | 
|  | 33 | unsigned int   bi_immr;       /* IMMR when called from boot rom */ | 
|  | 34 | unsigned char  bi_enetaddr[6]; | 
|  | 35 | unsigned int   bi_flashbase;  /* Physical address of FLASH memory */ | 
|  | 36 | unsigned int   bi_flashsize;  /* Length of FLASH memory */ | 
|  | 37 | int            bi_flashwidth; /* Width (8,16,32,64) */ | 
|  | 38 | unsigned char *bi_cmdline;    /* Pointer to command line */ | 
|  | 39 | unsigned char  bi_esa[3][6];  /* Ethernet station addresses */ | 
|  | 40 | unsigned int   bi_ramdisk_begin, bi_ramdisk_end; | 
|  | 41 | struct {                      /* Information about [main] video screen */ | 
|  | 42 | short x_res;              /*   Horizontal resolution in pixels */ | 
|  | 43 | short y_res;              /*   Vertical resolution in pixels */ | 
|  | 44 | short bpp;                /*   Bits/pixel */ | 
|  | 45 | short mode;               /*   Type of pixels (packed, indexed) */ | 
|  | 46 | unsigned long fb;         /*   Pointer to frame buffer (pixel) memory */ | 
|  | 47 | } bi_video; | 
|  | 48 | void         (*bi_cputc)(char);   /* Write a character to the RedBoot console */ | 
|  | 49 | char         (*bi_cgetc)(void);   /* Read a character from the RedBoot console */ | 
|  | 50 | int          (*bi_ctstc)(void);   /* Test for input on the RedBoot console */ | 
|  | 51 | } bd_t; | 
|  | 52 |  | 
|  | 53 | #define BI_REV 0x0102    /* Version 1.02 */ | 
|  | 54 |  | 
|  | 55 | #define bi_pci_busfreq bi_pci_freq | 
|  | 56 | #define bi_immr_base   bi_immr | 
|  | 57 | #endif |