277 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			277 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * SPROM format definitions for the Broadcom 47xx and 43xx chip family.
 | 
						|
 *
 | 
						|
 * Copyright(c) 2002 Broadcom Corporation
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef	_SBSPROM_H
 | 
						|
#define	_SBSPROM_H
 | 
						|
 | 
						|
#include "typedefs.h"
 | 
						|
#include "bcmdevs.h"
 | 
						|
 | 
						|
/* A word is this many bytes */
 | 
						|
#define SRW		2
 | 
						|
 | 
						|
/* offset into PCI config space for write enable bit */
 | 
						|
#define CFG_SROM_WRITABLE_OFFSET	0x88
 | 
						|
#define SROM_WRITEABLE			0x10
 | 
						|
 | 
						|
/* enumeration space consists of N contiguous 4Kbyte core register sets */
 | 
						|
#define SBCORES_BASE	0x18000000
 | 
						|
#define SBCORES_EACH	0x1000
 | 
						|
 | 
						|
/* offset from BAR0 for srom space */
 | 
						|
#define SROM_BASE	4096
 | 
						|
 | 
						|
/* number of 2-byte words in srom */
 | 
						|
#define SROM_SIZE	64
 | 
						|
 | 
						|
#define SROM_BYTES	(SROM_SIZE * SRW)
 | 
						|
 | 
						|
#define MAX_FN		4
 | 
						|
 | 
						|
/* Word 0, Hardware control */
 | 
						|
#define SROM_HWCTL	0
 | 
						|
#define HW_FUNMSK	0x000f
 | 
						|
#define HW_FCLK		0x0200
 | 
						|
#define HW_CBM		0x0400
 | 
						|
#define HW_PIMSK	0xf000
 | 
						|
#define HW_PISHIFT	12
 | 
						|
#define HW_4301PISHIFT 13
 | 
						|
#define HW_PI4402	0x2
 | 
						|
#define HW_FUN4401	0x0001
 | 
						|
#define HW_FCLK4402	0x0000
 | 
						|
 | 
						|
/* Word 1, common-power/boot-rom */
 | 
						|
#define SROM_COMMPW		1
 | 
						|
/* boot rom present bit */
 | 
						|
#define BR_PRESSHIFT	8
 | 
						|
/* 15:9 for n; boot rom size is 2^(14 + n) bytes */
 | 
						|
#define BR_SIZESHIFT	9
 | 
						|
 | 
						|
/* Word 2, SubsystemId */
 | 
						|
#define SROM_SSID	2
 | 
						|
 | 
						|
/* Word 3, VendorId */
 | 
						|
#define SROM_VID	3
 | 
						|
 | 
						|
/* Function 0 info, function info length */
 | 
						|
#define SROM_FN0	4
 | 
						|
#define SROM_FNSZ	8
 | 
						|
 | 
						|
/* Within each function: */
 | 
						|
/* Word 0, deviceID */
 | 
						|
#define SRFN_DID	0
 | 
						|
 | 
						|
/* Words 1-2, ClassCode */
 | 
						|
#define SRFN_CCL	1
 | 
						|
/* Word 2, D0 Power */
 | 
						|
#define SRFN_CCHD0	2
 | 
						|
 | 
						|
/* Word 3, PME and D1D2D3 power */
 | 
						|
#define SRFN_PMED123	3
 | 
						|
 | 
						|
#define PME_IL		0
 | 
						|
#define PME_ENET0	1
 | 
						|
#define PME_ENET1	2
 | 
						|
#define PME_CODEC	3
 | 
						|
 | 
						|
#define PME_4402_ENET	0
 | 
						|
#define PME_4402_CODEC	1
 | 
						|
#define PME_4301_WL	2
 | 
						|
#define PMEREP_4402_ENET	(PMERD3CV | PMERD3CA | PMERD3H | PMERD2 | PMERD1 | PMERD0 | PME)
 | 
						|
 | 
						|
/* Word 4, Bar1 enable, pme reports */
 | 
						|
#define SRFN_B1PMER	4
 | 
						|
#define B1E		1
 | 
						|
#define B1SZMSK	0xe
 | 
						|
#define B1SZSH		1
 | 
						|
#define PMERMSK	0x0ff0
 | 
						|
#define PME		0x0010
 | 
						|
#define PMERD0		0x0020
 | 
						|
#define PMERD1		0x0040
 | 
						|
#define PMERD2		0x0080
 | 
						|
#define PMERD3H	0x0100
 | 
						|
#define PMERD3CA	0x0200
 | 
						|
#define PMERD3CV	0x0400
 | 
						|
#define IGNCLKRR	0x0800
 | 
						|
#define B0LMSK		0xf000
 | 
						|
 | 
						|
/* Words 4-5, Bar0 Sonics value */
 | 
						|
#define SRFN_B0H	5
 | 
						|
/* Words 6-7, CIS Pointer */
 | 
						|
#define SRFN_CISL	6
 | 
						|
#define SRFN_CISH	7
 | 
						|
 | 
						|
/* Words 36-38: iLine MAC address */
 | 
						|
#define SROM_I_MACHI	36
 | 
						|
#define SROM_I_MACMID	37
 | 
						|
#define SROM_I_MACLO	38
 | 
						|
 | 
						|
/* Words 36-38: wireless0 MAC address on 43xx */
 | 
						|
#define SROM_W0_MACHI	36
 | 
						|
#define SROM_W0_MACMID	37
 | 
						|
#define SROM_W0_MACLO	38
 | 
						|
 | 
						|
/* Words 39-41: enet0 MAC address */
 | 
						|
#define SROM_E0_MACHI	39
 | 
						|
#define SROM_E0_MACMID	40
 | 
						|
#define SROM_E0_MACLO	41
 | 
						|
 | 
						|
/* Words 42-44: enet1 MAC address */
 | 
						|
#define SROM_E1_MACHI	42
 | 
						|
#define SROM_E1_MACMID	43
 | 
						|
#define SROM_E1_MACLO	44
 | 
						|
 | 
						|
/* Words 42-44: wireless1 MAC address on 4309 */
 | 
						|
#define SROM_W1_MACHI	42
 | 
						|
#define SROM_W1_MACMID	43
 | 
						|
#define SROM_W1_MACLO	44
 | 
						|
 | 
						|
#define SROM_EPHY	45
 | 
						|
 | 
						|
/* Word 46: BdRev & Antennas0/1 & ccLock for 430x */
 | 
						|
#define SROM_REV_AA_LOCK	46
 | 
						|
 | 
						|
/* Words 47-51 wl0 PA bx */
 | 
						|
#define SROM_WL0_PAB0	47
 | 
						|
#define SROM_WL0_PAB1	48
 | 
						|
#define SROM_WL0_PAB2	49
 | 
						|
#define SROM_WL0_PAB3	50
 | 
						|
#define SROM_WL0_PAB4	51
 | 
						|
 | 
						|
/* Word 52: wl0/wl1 MaxPower */
 | 
						|
#define SROM_WL_MAXPWR	52
 | 
						|
 | 
						|
/* Words 53-55 wl1 PA bx */
 | 
						|
#define SROM_WL1_PAB0	53
 | 
						|
#define SROM_WL1_PAB1	54
 | 
						|
#define SROM_WL1_PAB2	55
 | 
						|
 | 
						|
/* Woprd 56: itt */
 | 
						|
#define SROM_ITT        56
 | 
						|
 | 
						|
/* Words 59-62: OEM Space */
 | 
						|
#define SROM_WL_OEM	59
 | 
						|
#define SROM_OEM_SIZE	4
 | 
						|
 | 
						|
/* Contents for the srom */
 | 
						|
 | 
						|
#define BU4710_SSID	0x0400
 | 
						|
#define VSIM4710_SSID	0x0401
 | 
						|
#define QT4710_SSID	0x0402
 | 
						|
 | 
						|
#define BU4610_SSID	0x0403
 | 
						|
#define VSIM4610_SSID	0x0404
 | 
						|
 | 
						|
#define BU4307_SSID	0x0405
 | 
						|
#define BCM94301CB_SSID	0x0406
 | 
						|
#define BCM94301MP_SSID	0x0407
 | 
						|
#define BCM94307MP_SSID	0x0408
 | 
						|
#define AP4307_SSID	0x0409
 | 
						|
 | 
						|
#define BU4309_SSID	0x040a
 | 
						|
#define BCM94309CB_SSID	0x040b
 | 
						|
#define BCM94309MP_SSID	0x040c
 | 
						|
#define AP4309_SSID	0x040d
 | 
						|
 | 
						|
#define BU4402_SSID	0x4402
 | 
						|
 | 
						|
#define CLASS_OTHER	0x8000
 | 
						|
#define CLASS_ETHER	0x0000
 | 
						|
#define CLASS_NET	0x0002
 | 
						|
#define CLASS_COMM	0x0007
 | 
						|
#define CLASS_MODEM	0x0300
 | 
						|
#define CLASS_MIPS	0x3000
 | 
						|
#define CLASS_PROC	0x000b
 | 
						|
#define CLASS_FLASH	0x0100
 | 
						|
#define CLASS_MEM	0x0005
 | 
						|
#define CLASS_SERIALBUS 0x000c
 | 
						|
#define CLASS_OHCI	0x0310
 | 
						|
 | 
						|
/* Broadcom IEEE MAC addresses are 00:90:4c:xx:xx:xx */
 | 
						|
#define MACHI			0x90
 | 
						|
 | 
						|
#define MACMID_BU4710I		0x4c17
 | 
						|
#define MACMID_BU4710E0		0x4c18
 | 
						|
#define MACMID_BU4710E1		0x4c19
 | 
						|
 | 
						|
#define MACMID_94710R1I		0x4c1a
 | 
						|
#define MACMID_94710R1E0	0x4c1b
 | 
						|
#define MACMID_94710R1E1	0x4c1c
 | 
						|
 | 
						|
#define MACMID_94710R4I		0x4c1d
 | 
						|
#define MACMID_94710R4E0	0x4c1e
 | 
						|
#define MACMID_94710R4E1	0x4c1f
 | 
						|
 | 
						|
#define MACMID_94710DEVI	0x4c20
 | 
						|
#define MACMID_94710DEVE0	0x4c21
 | 
						|
#define MACMID_94710DEVE1	0x4c22
 | 
						|
 | 
						|
#define MACMID_BU4402		0x4c23
 | 
						|
 | 
						|
#define MACMID_BU4610I		0x4c24
 | 
						|
#define MACMID_BU4610E0		0x4c25
 | 
						|
#define MACMID_BU4610E1		0x4c26
 | 
						|
 | 
						|
#define MACMID_BU4307W		0x4c27
 | 
						|
#define MACMID_BU4307E		0x4c28
 | 
						|
 | 
						|
#define MACMID_94301CB		0x4c29
 | 
						|
 | 
						|
#define MACMID_94301MP		0x4c2a
 | 
						|
 | 
						|
#define MACMID_94307MPW		0x4c2b
 | 
						|
#define MACMID_94307MPE		0x4c2c
 | 
						|
 | 
						|
#define MACMID_AP4307W		0x4c2d
 | 
						|
#define MACMID_AP4307E		0x4c2e
 | 
						|
 | 
						|
#define MACMID_BU4309W0		0x4c2f
 | 
						|
#define MACMID_BU4309W1		0x4c30
 | 
						|
#define MACMID_BU4309E		0x4c31
 | 
						|
 | 
						|
#define MACMID_94309CBW0	0x4c32
 | 
						|
#define MACMID_94309CBW1	0x4c33
 | 
						|
 | 
						|
#define MACMID_94309MPW0	0x4c34
 | 
						|
#define MACMID_94309MPW1	0x4c35
 | 
						|
#define MACMID_94309MPE		0x4c36
 | 
						|
 | 
						|
#define MACMID_BU4401		0x4c37
 | 
						|
 | 
						|
/* Enet phy settings one or two singles or a dual	*/
 | 
						|
/* Bits 4-0 : MII address for enet0 (0x1f for not there */
 | 
						|
/* Bits 9-5 : MII address for enet1 (0x1f for not there */
 | 
						|
/* Bit 14   : Mdio for enet0  */
 | 
						|
/* Bit 15   : Mdio for enet1  */
 | 
						|
 | 
						|
/* bu4710 with only one phy on enet1 with address 7: */
 | 
						|
#define SROM_EPHY_ONE	0x80ff
 | 
						|
 | 
						|
/* bu4710 with two individual phys, at 6 and 7, */
 | 
						|
/* each mdio connected to its own mac: */
 | 
						|
#define SROM_EPHY_TWO	0x80e6
 | 
						|
 | 
						|
/* bu4710 with a dual phy addresses 0 & 1, mdio-connected to enet0 */
 | 
						|
#define SROM_EPHY_DUAL	0x0001
 | 
						|
 | 
						|
/* r1 board with a dual phy at 0, 1 (NOT swapped and mdc0 */
 | 
						|
#define SROM_EPHY_R1	0x0010
 | 
						|
 | 
						|
/* r4 board with a single phy on enet0 at address 5 and a switch */
 | 
						|
/* chip on enet1 (speciall case: 0x1e */
 | 
						|
#define SROM_EPHY_R4	0x83e5
 | 
						|
 | 
						|
/* 4402 uses an internal phy at phyaddr 1; want mdcport == coreunit == 0 */
 | 
						|
#define SROM_EPHY_INTERNAL 0x0001
 | 
						|
 | 
						|
/* 4307 uses an external phy at phyaddr 0; want mdcport == coreunit == 0 */
 | 
						|
#define SROM_EPHY_ZERO	0x0000
 | 
						|
 | 
						|
#define SROM_VERS	0x0001
 | 
						|
 | 
						|
 | 
						|
#endif	/* _SBSPROM_H */
 |