File: /usr/src/linux/include/asm-ppc/ppcboot.h

1     /*
2      * (C) Copyright 2000, 2001
3      * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4      *
5      * This program is free software; you can redistribute it and/or
6      * modify it under the terms of the GNU General Public License as
7      * published by the Free Software Foundation; either version 2 of
8      * the License, or (at your option) any later version.
9      *
10      * This program is distributed in the hope that it will be useful,
11      * but WITHOUT ANY WARRANTY; without even the implied warranty of
12      * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
13      * GNU General Public License for more details.
14      *
15      * You should have received a copy of the GNU General Public License
16      * along with this program; if not, write to the Free Software
17      * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18      * MA 02111-1307 USA
19      */
20     
21     #ifndef _PPCBOOT_H_
22     #define _PPCBOOT_H_	1
23     
24     /*
25      * Board information passed to kernel from PPCBoot
26      *
27      * include/asm-ppc/ppcboot.h
28      */
29     
30     #ifndef __ASSEMBLY__
31     
32     #include <linux/types.h>
33     
34     typedef void (interrupt_handler_t)(void *);
35     
36     typedef struct monitor_functions {
37     	int	(*getc)(void);
38     	int	(*tstc)(void);
39     	void	(*putc)(const char c);
40     	void	(*puts)(const char *s);
41     	void	(*printf)(const char *fmt, ...);
42     	void	(*install_hdlr)(int, interrupt_handler_t *, void *);
43     	void	(*free_hdlr)(int);
44     	void	*(*malloc)(size_t);
45     	void	(*free)(void *);
46     } mon_fnc_t;
47     
48     typedef struct bd_info {
49     	unsigned long	bi_memstart;	/* start of  DRAM memory		*/
50     	unsigned long	bi_memsize;	/* size	 of  DRAM memory in bytes	*/
51     	unsigned long	bi_flashstart;	/* start of FLASH memory		*/
52     	unsigned long	bi_flashsize;	/* size	 of FLASH memory		*/
53     	unsigned long	bi_flashoffset; /* reserved area for startup monitor	*/
54     	unsigned long	bi_sramstart;	/* start of  SRAM memory		*/
55     	unsigned long	bi_sramsize;	/* size	 of  SRAM memory		*/
56     #if defined(CONFIG_8xx) || defined(CONFIG_8260)
57     	unsigned long	bi_immr_base;	/* base of IMMR register		*/
58     #endif
59     	unsigned long	bi_bootflags;	/* boot / reboot flag (for LynxOS)	*/
60     	unsigned long	bi_ip_addr;	/* IP Address				*/
61     	unsigned char	bi_enetaddr[6]; /* Ethernet adress			*/
62     	unsigned short	bi_ethspeed;	/* Ethernet speed in Mbps		*/
63     	unsigned long	bi_intfreq;	/* Internal Freq, in MHz		*/
64     	unsigned long	bi_busfreq;	/* Bus Freq, in MHz			*/
65     #if defined(CONFIG_8260)
66     	unsigned long	bi_cpmfreq;	/* CPM_CLK Freq, in MHz			*/
67     	unsigned long	bi_brgfreq;	/* BRG_CLK Freq, in MHz			*/
68     	unsigned long	bi_sccfreq;	/* SCC_CLK Freq, in MHz			*/
69     	unsigned long	bi_vco;		/* VCO Out from PLL, in MHz		*/
70     #endif
71     	unsigned long	bi_baudrate;	/* Console Baudrate			*/
72     #if defined(CONFIG_PPC405)
73     	unsigned char	bi_s_version[4];  /* Version of this structure		*/
74     	unsigned char	bi_r_version[32]; /* Version of the ROM (IBM)		*/
75     	unsigned int	bi_procfreq;	/* CPU (Internal) Freq, in Hz		*/
76     	unsigned int	bi_plb_busfreq;	/* PLB Bus speed, in Hz */
77     	unsigned int	bi_pci_busfreq;	/* PCI Bus speed, in Hz */
78     	unsigned char	bi_pci_enetaddr[6];	/* PCI Ethernet MAC address     */
79     #endif
80     #if defined(CONFIG_HYMOD)
81     	hymod_conf_t	bi_hymod_conf;	/* hymod configuration information	*/
82     #endif
83     #if defined(CONFIG_EVB64260)
84     	/* the board has three onboard ethernet ports */
85     	unsigned char   bi_enet1addr[6];
86     	unsigned char   bi_enet2addr[6];
87     #endif
88     	mon_fnc_t	*bi_mon_fnc;	/* Pointer to monitor functions		*/
89     } bd_t;
90     
91     #endif /* __ASSEMBLY__ */
92     
93     #endif	/* _PPCBOOT_H_ */
94