2010-03-16 02:38:54 +01:00
|
|
|
/*
|
|
|
|
* This file is part of the coreboot project.
|
|
|
|
*
|
|
|
|
* Copyright (C) 2010 Advanced Micro Devices, Inc.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; version 2 of the License.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef SB700_SMBUS_H
|
|
|
|
#define SB700_SMBUS_H
|
|
|
|
|
Update AMD SR5650 and SB700
This updates the code for the AMD SR5650 and SB700 southbridges.
Among other things, it changes the romstage.c files by replacing a
.C file include with a pair of .H file includes. The .C file is
now added to the romstage in the SB700 or SR5650 Makefile.inc.
file to the romstage and ramstage elements. This particular change
affects all mainboards that use the SB700, and their changes are
include herein. These mainboards are:
Advansus a785e,
AMD Mahogany, Mahogany-fam10, Tilapia-fam10,
Asrock 939a785gmh,
Asus m4a78-em, m4a785-m,
Gigabyte ma785gm,
Iei Kino-780am2-fam10
Jetway pa78vm5
Supermicro h8scm_fam10
The nuvoton/wpcm450 earlysetup interface is changed because the file
is no longer included in the mainboard romstage.c files.
Change-Id: I502c0b95a7b9e7bb5dd81d03902bbc2143257e33
Signed-off-by: Frank Vibrans <frank.vibrans@amd.com>
Signed-off-by: efdesign98 <efdesign98@gmail.com>
Reviewed-on: http://review.coreboot.org/107
Tested-by: build bot (Jenkins)
Reviewed-by: Kerry She <shekairui@gmail.com>
Reviewed-by: Marc Jones <marcj303@gmail.com>
2011-07-20 20:37:58 +02:00
|
|
|
#include <stdint.h>
|
|
|
|
#include "stddef.h"
|
|
|
|
#include <arch/io.h>
|
|
|
|
|
|
|
|
#define SMBUS_IO_BASE 0x6000 /* Is it a temporary SMBus I/O base address? */
|
|
|
|
/*SIZE 0x40 */
|
|
|
|
|
2010-03-16 02:38:54 +01:00
|
|
|
#define SMBHSTSTAT 0x0
|
|
|
|
#define SMBSLVSTAT 0x1
|
|
|
|
#define SMBHSTCTRL 0x2
|
|
|
|
#define SMBHSTCMD 0x3
|
|
|
|
#define SMBHSTADDR 0x4
|
|
|
|
#define SMBHSTDAT0 0x5
|
|
|
|
#define SMBHSTDAT1 0x6
|
|
|
|
#define SMBHSTBLKDAT 0x7
|
|
|
|
|
|
|
|
#define SMBSLVCTRL 0x8
|
|
|
|
#define SMBSLVCMD_SHADOW 0x9
|
|
|
|
#define SMBSLVEVT 0xa
|
|
|
|
#define SMBSLVDAT 0xc
|
|
|
|
|
|
|
|
#define AX_INDXC 0
|
|
|
|
#define AX_INDXP 1
|
|
|
|
#define AXCFG 2
|
|
|
|
#define ABCFG 3
|
|
|
|
|
|
|
|
#define AB_INDX 0xCD8
|
|
|
|
#define AB_DATA (AB_INDX+4)
|
|
|
|
|
|
|
|
/* Between 1-10 seconds, We should never timeout normally
|
|
|
|
* Longer than this is just painful when a timeout condition occurs.
|
|
|
|
*/
|
|
|
|
#define SMBUS_TIMEOUT (100*1000*10)
|
|
|
|
|
|
|
|
#define abcfg_reg(reg, mask, val) \
|
|
|
|
alink_ab_indx((ABCFG), (reg), (mask), (val))
|
|
|
|
#define axcfg_reg(reg, mask, val) \
|
|
|
|
alink_ab_indx((AXCFG), (reg), (mask), (val))
|
|
|
|
#define axindxc_reg(reg, mask, val) \
|
|
|
|
alink_ax_indx(0, (reg), (mask), (val))
|
|
|
|
#define axindxp_reg(reg, mask, val) \
|
|
|
|
alink_ax_indx(1, (reg), (mask), (val))
|
|
|
|
|
Update AMD SR5650 and SB700
This updates the code for the AMD SR5650 and SB700 southbridges.
Among other things, it changes the romstage.c files by replacing a
.C file include with a pair of .H file includes. The .C file is
now added to the romstage in the SB700 or SR5650 Makefile.inc.
file to the romstage and ramstage elements. This particular change
affects all mainboards that use the SB700, and their changes are
include herein. These mainboards are:
Advansus a785e,
AMD Mahogany, Mahogany-fam10, Tilapia-fam10,
Asrock 939a785gmh,
Asus m4a78-em, m4a785-m,
Gigabyte ma785gm,
Iei Kino-780am2-fam10
Jetway pa78vm5
Supermicro h8scm_fam10
The nuvoton/wpcm450 earlysetup interface is changed because the file
is no longer included in the mainboard romstage.c files.
Change-Id: I502c0b95a7b9e7bb5dd81d03902bbc2143257e33
Signed-off-by: Frank Vibrans <frank.vibrans@amd.com>
Signed-off-by: efdesign98 <efdesign98@gmail.com>
Reviewed-on: http://review.coreboot.org/107
Tested-by: build bot (Jenkins)
Reviewed-by: Kerry She <shekairui@gmail.com>
Reviewed-by: Marc Jones <marcj303@gmail.com>
2011-07-20 20:37:58 +02:00
|
|
|
void alink_ab_indx(u32 reg_space, u32 reg_addr, u32 mask, u32 val);
|
|
|
|
void alink_ax_indx(u32 space, u32 axindc, u32 mask, u32 val);
|
2010-07-07 23:59:06 +02:00
|
|
|
int do_smbus_recv_byte(u32 smbus_io_base, u32 device);
|
|
|
|
int do_smbus_send_byte(u32 smbus_io_base, u32 device, u8 val);
|
2010-03-23 07:49:16 +01:00
|
|
|
int do_smbus_read_byte(u32 smbus_io_base, u32 device, u32 address);
|
|
|
|
int do_smbus_write_byte(u32 smbus_io_base, u32 device, u32 address, u8 val);
|
|
|
|
|
2010-03-16 02:38:54 +01:00
|
|
|
#endif
|