cregit-Linux how code gets into the kernel

Release 4.14 arch/mips/include/asm/mach-pmcs-msp71xx/msp_prom.h

/*
 * MIPS boards bootprom interface for the Linux kernel.
 *
 * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
 * Author: Carsten Langgaard, carstenl@mips.com
 *
 * ########################################################################
 *
 *  This program is free software; you can distribute it and/or modify it
 *  under the terms of the GNU General Public License (Version 2) as
 *  published by the Free Software Foundation.
 *
 *  This program is distributed in the hope it will be useful, but WITHOUT
 *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 *  for more details.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
 *
 * ########################################################################
 */

#ifndef _ASM_MSP_PROM_H

#define _ASM_MSP_PROM_H

#include <linux/types.h>


#define DEVICEID			"deviceid"

#define FEATURES			"features"

#define PROM_ENV			"prom_env"

#define PROM_ENV_FILE			"/proc/"PROM_ENV

#define PROM_ENV_SIZE			256


#define CPU_DEVID_FAMILY		0x0000ff00

#define CPU_DEVID_REVISION		0x000000ff


#define FPGA_IS_POLO(revision) \
		(((revision >= 0xb0) && (revision < 0xd0)))

#define FPGA_IS_5000(revision) \
		((revision >= 0x80) && (revision <= 0x90))

#define FPGA_IS_ZEUS(revision)		((revision < 0x7f))

#define FPGA_IS_DUET(revision) \
		(((revision >= 0xa0) && (revision < 0xb0)))

#define FPGA_IS_MSP4200(revision)	((revision >= 0xd0))

#define FPGA_IS_MSP7100(revision)	((revision >= 0xd0))


#define MACHINE_TYPE_POLO		"POLO"

#define MACHINE_TYPE_DUET		"DUET"

#define MACHINE_TYPE_ZEUS		"ZEUS"

#define MACHINE_TYPE_MSP2000REVB	"MSP2000REVB"

#define MACHINE_TYPE_MSP5000		"MSP5000"

#define MACHINE_TYPE_MSP4200		"MSP4200"

#define MACHINE_TYPE_MSP7120		"MSP7120"

#define MACHINE_TYPE_MSP7130		"MSP7130"

#define MACHINE_TYPE_OTHER		"OTHER"


#define MACHINE_TYPE_POLO_FPGA		"POLO-FPGA"

#define MACHINE_TYPE_DUET_FPGA		"DUET-FPGA"

#define MACHINE_TYPE_ZEUS_FPGA		"ZEUS_FPGA"

#define MACHINE_TYPE_MSP2000REVB_FPGA	"MSP2000REVB-FPGA"

#define MACHINE_TYPE_MSP5000_FPGA	"MSP5000-FPGA"

#define MACHINE_TYPE_MSP4200_FPGA	"MSP4200-FPGA"

#define MACHINE_TYPE_MSP7100_FPGA	"MSP7100-FPGA"

#define MACHINE_TYPE_OTHER_FPGA		"OTHER-FPGA"

/* Device Family definitions */

#define FAMILY_FPGA			0x0000

#define FAMILY_ZEUS			0x1000

#define FAMILY_POLO			0x2000

#define FAMILY_DUET			0x4000

#define FAMILY_TRIAD			0x5000

#define FAMILY_MSP4200			0x4200

#define FAMILY_MSP4200_FPGA		0x4f00

#define FAMILY_MSP7100			0x7100

#define FAMILY_MSP7100_FPGA		0x7f00

/* Device Type definitions */

#define TYPE_MSP7120			0x7120

#define TYPE_MSP7130			0x7130


#define ENET_KEY		'E'

#define ENETTXD_KEY		'e'

#define PCI_KEY			'P'

#define PCIMUX_KEY		'p'

#define SEC_KEY			'S'

#define SPAD_KEY		'D'

#define TDM_KEY			'T'

#define ZSP_KEY			'Z'


#define FEATURE_NOEXIST		'-'

#define FEATURE_EXIST		'+'


#define ENET_MII		'M'

#define ENET_RMII		'R'


#define ENETTXD_FALLING		'F'

#define ENETTXD_RISING		'R'


#define PCI_HOST		'H'

#define PCI_PERIPHERAL		'P'


#define PCIMUX_FULL		'F'

#define PCIMUX_SINGLE		'S'


#define SEC_DUET		'D'

#define SEC_POLO		'P'

#define SEC_SLOW		'S'

#define SEC_TRIAD		'T'


#define SPAD_POLO		'P'


#define TDM_DUET		'D'	
/* DUET TDMs might exist */

#define TDM_POLO		'P'	
/* POLO TDMs might exist */

#define TDM_TRIAD		'T'	
/* TRIAD TDMs might exist */


#define ZSP_DUET		'D'	
/* one DUET zsp engine */

#define ZSP_TRIAD		'T'	
/* two TRIAD zsp engines */

extern char *prom_getenv(char *name);
extern void prom_init_cmdline(void);
extern void prom_meminit(void);
extern void prom_fixup_mem_map(unsigned long start_mem,
			       unsigned long end_mem);

extern int get_ethernet_addr(char *ethaddr_name, char *ethernet_addr);
extern unsigned long get_deviceid(void);
extern char identify_enet(unsigned long interface_num);
extern char identify_enetTxD(unsigned long interface_num);
extern char identify_pci(void);
extern char identify_sec(void);
extern char identify_spad(void);
extern char identify_sec(void);
extern char identify_tdm(void);
extern char identify_zsp(void);
extern unsigned long identify_family(void);
extern unsigned long identify_revision(void);

/*
 * The following macro calls prom_printf and puts the format string
 * into an init section so it can be reclaimed.
 */

#define ppfinit(f, x...) \
	do { \
                static char _f[] __initdata = KERN_INFO f; \
                printk(_f, ## x); \
        } while (0)

/* Memory descriptor management. */

#define PROM_MAX_PMEMBLOCKS    7	
/* 6 used */


enum yamon_memtypes {
	
yamon_dontuse,
	
yamon_prom,
	
yamon_free,
};


struct prom_pmemblock {
	
unsigned long base; /* Within KSEG0. */
	
unsigned int size;  /* In bytes. */
	
unsigned int type;  /* free or prom memory */
};

extern int prom_argc;
extern char **prom_argv;
extern char **prom_envp;
extern int *prom_vec;
extern struct prom_pmemblock *prom_getmdesc(void);

#endif /* !_ASM_MSP_PROM_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Marc St-Jean529100.00%1100.00%
Total529100.00%1100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.