summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYinghai Lu <yinghailu@gmail.com>2004-04-28 05:37:36 +0000
committerYinghai Lu <yinghailu@gmail.com>2004-04-28 05:37:36 +0000
commit97c4947ec9af1664e81ee797834a32d3ca2f74fe (patch)
tree33f41aaaf4c61c0b41ae4751081d2c369ee371b0 /src
parent48d11d557f725ecf89678a1b9df440417b8da225 (diff)
downloadcoreboot-97c4947ec9af1664e81ee797834a32d3ca2f74fe.tar.xz
Changes for btext and etherboot and filo merge support
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1540 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src')
-rw-r--r--src/console/btext_console.c24
-rw-r--r--src/drivers/ati/ragexl/atyfb.h11
-rw-r--r--src/drivers/ati/ragexl/fb.h5
-rw-r--r--src/drivers/ati/ragexl/mach64_ct.c13
-rw-r--r--src/drivers/ati/ragexl/xlinit.c170
-rw-r--r--src/mainboard/tyan/s2850/Config.lb10
-rw-r--r--src/mainboard/tyan/s2875/Config.lb5
-rw-r--r--src/mainboard/tyan/s2880/Config.lb12
-rw-r--r--src/mainboard/tyan/s2881/Config.lb64
-rw-r--r--src/mainboard/tyan/s2882/Config.lb10
-rw-r--r--src/mainboard/tyan/s2885/Config.lb17
-rw-r--r--src/mainboard/tyan/s2885/mptable.c8
-rw-r--r--src/mainboard/tyan/s4880/Config.lb15
-rw-r--r--src/mainboard/tyan/s4882/Config.lb15
14 files changed, 219 insertions, 160 deletions
diff --git a/src/console/btext_console.c b/src/console/btext_console.c
index 5961a8ab3b..6601b0f668 100644
--- a/src/console/btext_console.c
+++ b/src/console/btext_console.c
@@ -48,7 +48,13 @@ static u32 g_loc_Y;
static u32 g_max_loc_X;
static u32 g_max_loc_Y;
+#define CHAR_256 0
+
+#if CHAR_256==1
#define cmapsz (16*256)
+#else
+#define cmapsz (16*96)
+#endif
static unsigned char vga_font[cmapsz];
@@ -285,7 +291,7 @@ void BTEXT btext_drawchar(char c)
}
#endif
}
-
+#if 0
void BTEXT
btext_drawstring(const char *c)
{
@@ -312,13 +318,17 @@ btext_drawhex(u32 v)
btext_drawchar(hex_table[(v >> 0) & 0x0000000FUL]);
btext_drawchar(' ');
}
-
+#endif
static void BTEXT
draw_byte(unsigned char c, u32 locX, u32 locY)
{
boot_infos_t* bi = &disp_bi;
unsigned char *base = calc_base(bi, locX << 3, locY << 4);
- unsigned char *font = &vga_font[((u32)c) * 16];
+#if CHAR_256==1
+ unsigned char *font = &vga_font[((u32)c) * 16];
+#else
+ unsigned char *font = &vga_font[((u32)c-0x20) * 16]; // skip the first 0x20
+#endif
u32 rb = bi->dispDeviceRowBytes;
switch(bi->dispDeviceDepth) {
@@ -451,7 +461,7 @@ static struct console_driver btext_console __console = {
static unsigned char vga_font[cmapsz] BTDATA = {
-
+#if CHAR_256==1
/* 0 0x00 '^@' */
0x00, /* 00000000 */
0x00, /* 00000000 */
@@ -1027,7 +1037,7 @@ static unsigned char vga_font[cmapsz] BTDATA = {
0x00, /* 00000000 */
0x00, /* 00000000 */
0x00, /* 00000000 */
-
+#endif
/* 32 0x20 ' ' */
0x00, /* 00000000 */
0x00, /* 00000000 */
@@ -2755,7 +2765,7 @@ static unsigned char vga_font[cmapsz] BTDATA = {
0x00, /* 00000000 */
0x00, /* 00000000 */
0x00, /* 00000000 */
-
+#if CHAR_256==1
/* 128 0x80 '€' */
0x00, /* 00000000 */
0x00, /* 00000000 */
@@ -5059,6 +5069,6 @@ static unsigned char vga_font[cmapsz] BTDATA = {
0x00, /* 00000000 */
0x00, /* 00000000 */
0x00, /* 00000000 */
-
+#endif
};
diff --git a/src/drivers/ati/ragexl/atyfb.h b/src/drivers/ati/ragexl/atyfb.h
index 31092e2e16..16eb15295d 100644
--- a/src/drivers/ati/ragexl/atyfb.h
+++ b/src/drivers/ati/ragexl/atyfb.h
@@ -20,6 +20,8 @@
#define max(x,y) (x>=y)?x:y
+
+#if CONFIG_CONSOLE_BTEXT==1
/*
* Elements of the hardware specific atyfb_par structure
*/
@@ -38,6 +40,7 @@ struct crtc {
u32 dp_pix_width; /* acceleration */
u32 dp_chain_mask; /* acceleration */
};
+#endif /* CONFIG_CONSOLE_BTEXT */
#if 0
struct pll_514 {
u8 m;
@@ -83,7 +86,9 @@ union aty_pll {
* The hardware parameters for each card
*/
struct atyfb_par {
+#if CONFIG_CONSOLE_BTEXT==1
struct crtc crtc;
+#endif
union aty_pll pll;
u32 accel_flags;
};
@@ -105,7 +110,11 @@ struct aty_cursor {
};
#endif
struct fb_info_aty {
+#if CONFIG_CONSOLE_BTEXT==1
+#if PLL_CRTC_DECODE==1
struct fb_info fb_info;
+#endif
+#endif
#if 0
struct fb_info_aty *next;
unsigned long ati_regbase_phys;
@@ -125,7 +134,7 @@ struct fb_info_aty {
struct { u8 red, green, blue, pad; } palette[256];
#endif
struct atyfb_par default_par;
-#if 0
+#if PLL_CRTC_DECODE==1
struct atyfb_par current_par;
#endif
diff --git a/src/drivers/ati/ragexl/fb.h b/src/drivers/ati/ragexl/fb.h
index cdcbc2596c..01f2887707 100644
--- a/src/drivers/ati/ragexl/fb.h
+++ b/src/drivers/ati/ragexl/fb.h
@@ -110,6 +110,7 @@
#define FB_ACCEL_NEOMAGIC_NM2360 97 /* NeoMagic NM2360 */
#define FB_ACCEL_NEOMAGIC_NM2380 98 /* NeoMagic NM2380 */
+#if 0
struct fb_fix_screeninfo {
char id[16]; /* identification string eg "TT Builtin" */
@@ -130,6 +131,8 @@ struct fb_fix_screeninfo {
u16 reserved[3]; /* Reserved for future compatibility */
};
+#endif
+
/* Interpretation of offset for color fields: All offsets are from the right,
* inside a "pixel" value, which is exactly 'bits_per_pixel' wide (means: you
* can use the offset as right argument to <<). A pixel afterwards is a bit
@@ -309,7 +312,9 @@ struct fb_info {
int flags;
int open; /* Has this been open already ? */
struct fb_var_screeninfo var; /* Current var */
+#if 0
struct fb_fix_screeninfo fix; /* Current fix */
+#endif
struct fb_monspecs monspecs; /* Current Monitor specs */
struct fb_cmap cmap; /* Current cmap */
// struct fb_ops *fbops;
diff --git a/src/drivers/ati/ragexl/mach64_ct.c b/src/drivers/ati/ragexl/mach64_ct.c
index bc1af5ff3a..74ef0cc5e2 100644
--- a/src/drivers/ati/ragexl/mach64_ct.c
+++ b/src/drivers/ati/ragexl/mach64_ct.c
@@ -1,7 +1,11 @@
#define DEBUG_PLL 0
/* FIXME: remove the FAIL definition */
-#define FAIL(x) do { printk_spew(x); return -EINVAL; } while (0)
+#if 0
+#define FAIL(x) do { printk_debug(x); return -EINVAL; } while (0)
+#else
+#define FAIL(x)
+#endif
static int aty_valid_pll_ct(const struct fb_info_aty *info, u32 vclk_per,
struct pll_ct *pll);
@@ -9,7 +13,7 @@ static int aty_dsp_gt(const struct fb_info_aty *info, u32 bpp,
struct pll_ct *pll);
static int aty_var_to_pll_ct(const struct fb_info_aty *info, u32 vclk_per,
u8 bpp, union aty_pll *pll);
-#if 0
+#if PLL_CRTC_DECODE==1
static u32 aty_pll_ct_to_var(const struct fb_info_aty *info,
const union aty_pll *pll);
#endif
@@ -281,7 +285,8 @@ int aty_var_to_pll_ct(const struct fb_info_aty *info, u32 vclk_per,
aty_calc_pll_ct(info, &pll->ct);
return 0;
}
-#if 0
+#if CONFIG_CONSOLE_BTEXT==1
+#if PLL_CRTC_DECODE==1
u32 aty_pll_ct_to_var(const struct fb_info_aty *info,
const union aty_pll *pll)
{
@@ -362,3 +367,5 @@ static struct aty_pll_ops aty_pll_ct = {
#endif
};
#endif
+
+#endif /* CONFIG_CONSOLE_BTEXT */
diff --git a/src/drivers/ati/ragexl/xlinit.c b/src/drivers/ati/ragexl/xlinit.c
index 4ec637a6aa..38e1aa4198 100644
--- a/src/drivers/ati/ragexl/xlinit.c
+++ b/src/drivers/ati/ragexl/xlinit.c
@@ -21,9 +21,13 @@
#include <device/pci_ids.h>
#include <device/pci_ops.h>
+#if CONFIG_CONSOLE_BTEXT==1
+
+#define PLL_CRTC_DECODE 0
+#define SUPPORT_8_BPP_ABOVE 0
+
#include "fb.h"
#include "fbcon.h"
-#include "mach64.h"
struct aty_cmap_regs {
u8 windex;
@@ -33,18 +37,28 @@ struct aty_cmap_regs {
u8 cntl;
};
-#include "atyfb.h"
-
#include <console/btext.h>
+#endif /*CONFIG_CONSOLE_BTEXT*/
+
+#include "mach64.h"
+
+#include "atyfb.h"
+
#include "mach64_ct.c"
#define MPLL_GAIN 0xad
#define VPLL_GAIN 0xd5
+#define HAS_VICTORIA 0
+
enum {
+#if HAS_VICTORIA==1
VICTORIA = 0,
XPERT98,
+#else
+ XPERT98=0,
+#endif
NUM_XL_CARDS
};
@@ -67,12 +81,14 @@ static const struct xl_card_cfg_t {
u8 dll2_cntl;
u8 pll_yclk_cntl;
} card_cfg[NUM_XL_CARDS] = {
+#if HAS_VICTORIA==1
// VICTORIA
{ 2700, SDRAM, 0x800000,
0x10757A3B, 0x64000C81, 0x00110202, 0x7b33A040,
0x82010102, 0x48803800, 0x005E0179,
0x50, 0x25
},
+#endif
// XPERT98
{ 1432, WRAM, 0x800000,
0x00165A2B, 0xE0000CF1, 0x00200213, 0x7333A001,
@@ -198,12 +214,14 @@ static int atyfb_xl_init(struct fb_info_aty *info)
info->ref_clk_per = 100000000UL/card->ref_crystal;
info->ram_type = card->mem_type;
info->total_vram = card->mem_size;
+#if HAS_VICTORIA == 1
if (xl_card == VICTORIA) {
// the MCLK, XCLK are 120MHz on victoria card
info->mclk_per = 1000000/120;
info->xclk_per = 1000000/120;
info->features &= ~M64F_MFB_TIMES_4;
}
+#endif
/*
* Calculate mclk and xclk dividers, etc. The passed
@@ -367,12 +385,14 @@ static int atyfb_xl_init(struct fb_info_aty *info)
static char m64n_xl_33[] = "3D RAGE (XL PCI-33MHz)";
static char m64n_xl_66[] = "3D RAGE (XL PCI-66MHz)";
+
+#if CONFIG_CONSOLE_BTEXT==1
static void aty_set_crtc(const struct fb_info_aty *info,
const struct crtc *crtc);
static int aty_var_to_crtc(const struct fb_info_aty *info,
const struct fb_var_screeninfo *var,
struct crtc *crtc);
-#if 0
+#if PLL_CRTC_DECODE==1
static int aty_crtc_to_var(const struct crtc *crtc,
struct fb_var_screeninfo *var);
#endif
@@ -382,13 +402,13 @@ static void atyfb_set_par(const struct atyfb_par *par,
static int atyfb_decode_var(const struct fb_var_screeninfo *var,
struct atyfb_par *par,
const struct fb_info_aty *info);
-#if 0
+#if PLL_CRTC_DECODE==1
static int atyfb_encode_var(struct fb_var_screeninfo *var,
const struct atyfb_par *par,
const struct fb_info_aty *info);
#endif
-static void do_install_cmap(int con, struct fb_info *fb);
+static void do_install_cmap(int con, struct fb_info_aty *info);
#if 0
static u32 default_vram = 0;
@@ -414,6 +434,8 @@ struct fb_var_screeninfo default_var = {
0, FB_VMODE_NONINTERLACED
};
+#endif /*CONFIG_CONSOLE_BTEXT*/
+
static struct {
u16 pci_id, chip_type;
u8 rev_mask, rev_val;
@@ -426,7 +448,7 @@ static struct {
/* 3D RAGE XL PCI-33/BGA */
{ 0x4752, 0x4752, 0x00, 0x00, m64n_xl_33, 230, 83, 63, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_SDRAM_MAGIC_PLL | M64F_EXTRA_BRIGHT | M64F_XL_DLL | M64F_MFB_TIMES_4 },
};
-#if 1
+#if CONFIG_CONSOLE_BTEXT==1
static void aty_calc_mem_refresh(struct fb_info_aty *info,
u16 id,
int xclk)
@@ -461,7 +483,7 @@ static void aty_calc_mem_refresh(struct fb_info_aty *info,
info->mem_refresh_rate = i;
}
-#endif
+#endif /*CONFIG_CONSOLE_BTEXT */
static void ati_ragexl_init(device_t dev) {
u32 chip_id;
u32 i;
@@ -470,15 +492,13 @@ static void ati_ragexl_init(device_t dev) {
u8 rev;
const char *chipname = NULL, *xtal;
int pll, mclk, xclk;
+
+#if CONFIG_CONSOLE_BTEXT==1
+
#if 0
int gtb_memsize, k;
#endif
- struct fb_info_aty *info;
- struct fb_info_aty info_t;
- struct resource *res;
- info = &info_t;
-
struct fb_var_screeninfo var;
#if 0
struct display *disp;
@@ -488,13 +508,25 @@ static void ati_ragexl_init(device_t dev) {
u8 pll_ref_div;
#endif
+#endif /*CONFIG_CONSOLE_BTEXT==1 */
+
+ struct fb_info_aty *info;
+ struct fb_info_aty info_t;
+ struct resource *res;
+ info = &info_t;
+
#define USE_AUX_REG 1
+
res = &dev->resource[0];
if(res->flags & IORESOURCE_IO) {
res = &dev->resource[1];
}
+
+#if CONFIG_CONSOLE_BTEXT==1
info->frame_buffer = res->base;
+#endif /* CONFIG_CONSOLE_BTEXT */
+
#if USE_AUX_REG==0
info->ati_regbase = res->base+0x7ff000+0xc00;
#else
@@ -504,9 +536,14 @@ static void ati_ragexl_init(device_t dev) {
}
#endif
- printk_info("ati_regbase = 0x%08x, frame_buffer = 0x%08x\r\n", info->ati_regbase, info->frame_buffer);
- info->aty_cmap_regs = (struct aty_cmap_regs *)(info->ati_regbase+0xc0);
+#if CONFIG_CONSOLE_BTEXT==1
+ info->aty_cmap_regs = (struct aty_cmap_regs *)(info->ati_regbase+0xc0);
+#endif
+
+#if 0
+ printk_debug("ati_regbase = 0x%08x, frame_buffer = 0x%08x\r\n", info->ati_regbase, info->frame_buffer);
+#endif
chip_id = aty_ld_le32(CONFIG_CHIP_ID, info);
type = chip_id & CFG_CHIP_TYPE;
@@ -521,7 +558,7 @@ static void ati_ragexl_init(device_t dev) {
info->features = aty_chips[j].features;
goto found;
}
- printk_debug("ati_ragexl_init: Unknown mach64 0x%04x rev 0x%04x\n", type, rev);
+ printk_spew("ati_ragexl_init: Unknown mach64 0x%04x rev 0x%04x\n", type, rev);
return ;
found:
@@ -533,7 +570,10 @@ found:
mclk = 63;
}
#endif
+#if CONFIG_CONSOLE_BTEXT==1
aty_calc_mem_refresh(info, type, xclk);
+#endif /* CONFIG_CONSOLE_BTEXT */
+
info->pll_per = 1000000/pll;
info->mclk_per = 1000000/mclk;
info->xclk_per = 1000000/xclk;
@@ -545,6 +585,8 @@ found:
atyfb_xl_init(info);
+#if CONFIG_CONSOLE_BTEXT==1
+
info->ram_type = (aty_ld_le32(CONFIG_STAT0, info) & 0x07);
info->ref_clk_per = 1000000000000ULL/14318180;
@@ -675,7 +717,9 @@ found:
}
if (atyfb_decode_var(&var, &info->default_par, info)) {
+#if 0
printk_debug("atyfb: can't set default video mode\n");
+#endif
return ;
}
#if 0
@@ -697,16 +741,17 @@ found:
}
#endif
-#if 0
+#if PLL_CRTC_DECODE==1
atyfb_set_var(&var, -1, &info->fb_info);
#else
atyfb_set_par(&info->default_par, info);
- do_install_cmap(-1, &info->fb_info);
+// do_install_cmap(-1, &info->fb_info);
+ do_install_cmap(-1, info);
#endif
-#if 0
+#if PLL_CRTC_DECODE==1
- printk_info("framebuffer=0x%08x, width=%d, height=%d, bpp=%d, pitch=%d\n",info->frame_buffer,
+ printk_spew("framebuffer=0x%08x, width=%d, height=%d, bpp=%d, pitch=%d\n",info->frame_buffer,
(((info->current_par.crtc.h_tot_disp>>16) & 0xff)+1)*8,
((info->current_par.crtc.v_tot_disp>>16) & 0x7ff)+1,
info->current_par.crtc.bpp,
@@ -718,7 +763,7 @@ found:
info->current_par.crtc.bpp,
info->current_par.crtc.vxres*info->current_par.crtc.bpp/8,info->frame_buffer);
#else
- printk_debug("framebuffer=0x%08x, width=%d, height=%d, bpp=%d, pitch=%d\n",info->frame_buffer,
+ printk_spew("framebuffer=0x%08x, width=%d, height=%d, bpp=%d, pitch=%d\n",info->frame_buffer,
(((info->default_par.crtc.h_tot_disp>>16) & 0xff)+1)*8,
((info->default_par.crtc.v_tot_disp>>16) & 0x7ff)+1,
info->default_par.crtc.bpp,
@@ -736,37 +781,19 @@ found:
map_boot_text();
#if 0
- btext_drawstring("1\n");
- btext_drawstring("2\n");
- btext_drawstring("3\n");
- btext_drawstring("4\n");
- btext_drawstring("test framebuffer 5\n");
- btext_drawstring("test framebuffer 6\n");
- btext_drawstring("test framebuffer 7\n");
- btext_drawstring("test framebuffer 8\n");
- btext_drawstring("test framebuffer 9\n");
- btext_drawstring("test framebuffer 10\n");
- btext_drawstring("test framebuffer 11\n");
- btext_drawstring("test framebuffer 12\n");
- btext_drawstring("test framebuffer 13\n");
- btext_drawstring("test framebuffer 14\n");
- btext_drawstring("test framebuffer 15\n");
- btext_drawstring("test framebuffer 16\n");
- btext_drawstring("test framebuffer 17\n");
- btext_drawstring("test framebuffer 18\n");
- btext_drawstring("test framebuffer 19\n");
- btext_drawstring("test framebuffer 20\n");
- btext_drawstring("test framebuffer 21\n");
- btext_drawstring("test framebuffer 22\n");
- btext_drawstring("test framebuffer 23\n");
- btext_drawstring("test framebuffer 24\n");
+
+ btext_drawstring("test framebuffer\n");
mdelay(10000);
// test end
#endif
+
+#endif /* CONFIG_CONSOLE_BTEXT */
}
+#if CONFIG_CONSOLE_BTEXT==1
+
static int atyfb_decode_var(const struct fb_var_screeninfo *var,
struct atyfb_par *par,
const struct fb_info_aty *info)
@@ -792,7 +819,7 @@ static int atyfb_decode_var(const struct fb_var_screeninfo *var,
return 0;
}
-#if 0
+#if PLL_CRTC_DECODE==1
static int atyfb_encode_var(struct fb_var_screeninfo *var,
const struct atyfb_par *par,
const struct fb_info_aty *info)
@@ -896,7 +923,7 @@ static int aty_var_to_crtc(const struct fb_info_aty *info,
dp_pix_width = HOST_8BPP | SRC_8BPP | DST_8BPP | BYTE_ORDER_LSB_TO_MSB;
dp_chain_mask = 0x8080;
}
-#if 0
+#if SUPPORT_8_BPP_ABOVE==1
else if (bpp <= 16) {
bpp = 16;
pix_width = CRTC_PIX_WIDTH_15BPP;
@@ -948,7 +975,7 @@ else
return 0;
}
-#if 0
+#if PLL_CRTC_DECODE==1
static int aty_crtc_to_var(const struct crtc *crtc,
struct fb_var_screeninfo *var)
{
@@ -1011,7 +1038,7 @@ static int aty_crtc_to_var(const struct crtc *crtc,
var->transp.offset = 0;
var->transp.length = 0;
break;
-#if 0
+#if SUPPORT_8_BPP_ABOVE==1
case CRTC_PIX_WIDTH_15BPP: /* RGB 555 */
bpp = 16;
var->red.offset = 10;
@@ -1023,8 +1050,6 @@ static int aty_crtc_to_var(const struct crtc *crtc,
var->transp.offset = 0;
var->transp.length = 0;
break;
-#endif
-#if 0
case CRTC_PIX_WIDTH_16BPP: /* RGB 565 */
bpp = 16;
var->red.offset = 11;
@@ -1036,8 +1061,6 @@ static int aty_crtc_to_var(const struct crtc *crtc,
var->transp.offset = 0;
var->transp.length = 0;
break;
-#endif
-#if 0
case CRTC_PIX_WIDTH_24BPP: /* RGB 888 */
bpp = 24;
var->red.offset = 16;
@@ -1134,7 +1157,7 @@ static int encode_fix(struct fb_fix_screeninfo *fix,
/*
* Set the User Defined Part of the Display
*/
-#if 0
+#if PLL_CRTC_DECODE==1
static int atyfb_set_var(struct fb_var_screeninfo *var, int con,
struct fb_info *fb)
{
@@ -1214,7 +1237,7 @@ static int atyfb_set_var(struct fb_var_screeninfo *var, int con,
if ((err = fb_alloc_cmap(&display->cmap, 0, 0)))
return err;
#endif
- do_install_cmap(con, &info->fb_info);
+ do_install_cmap(con, info);
#if 0
}
#endif
@@ -1235,8 +1258,7 @@ static void atyfb_set_par(const struct atyfb_par *par,
accelmode = par->accel_flags; /* hack */
-#if 0
-// We only use default_par
+#if PLL_CRTC_DECODE==1
info->current_par = *par;
#endif
@@ -1260,7 +1282,7 @@ static void atyfb_set_par(const struct atyfb_par *par,
case 8:
i |= 0x02000000;
break;
-#if 0
+#if SUPPORT_8_BPP_ABOVE==1
case 16:
i |= 0x03000000;
break;
@@ -1276,10 +1298,12 @@ static void atyfb_set_par(const struct atyfb_par *par,
i |= info->mem_refresh_rate << 20;
switch (par->crtc.bpp) {
case 8:
-// case 24:
+#if SUPPORT_8_BPP_ABOVE==1
+ case 24:
+#endif
i |= 0x00000000;
break;
-#if 0
+#if SUPPORT_8_BPP_ABOVE==1
case 16:
i |= 0x04000000;
break;
@@ -1316,13 +1340,6 @@ static void atyfb_set_par(const struct atyfb_par *par,
#endif
-#if 0
- btext_update_display(info->frame_buffer_phys,
- (((par->crtc.h_tot_disp>>16) & 0xff)+1)*8,
- ((par->crtc.v_tot_disp>>16) & 0x7ff)+1,
- par->crtc.bpp,
- par->crtc.vxres*par->crtc.bpp/8);
-#endif
}
#if 0
static u16 red2[] = {
@@ -1385,9 +1402,8 @@ static struct fb_cmap default_16_colors = {
static int atyfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
- u_int transp, struct fb_info *fb)
+ u_int transp, struct fb_info_aty *info)
{
- struct fb_info_aty *info = (struct fb_info_aty *)fb;
int i, scale;
if (regno > 255)
@@ -1406,7 +1422,7 @@ static int atyfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
i |= 0x2; /*DAC_CNTL|0x2 turns off the extra brightness for gt*/
aty_st_8(DAC_CNTL, i, info);
aty_st_8(DAC_MASK, 0xff, info);
-#if 0
+#if PLL_CRTC_DECODE==1
scale = (M64_HAS(INTEGRATED) && info->current_par.crtc.bpp == 16) ? 3 : 0;
#else
scale = (M64_HAS(INTEGRATED) && info->default_par.crtc.bpp == 16) ? 3 : 0;
@@ -1420,8 +1436,8 @@ static int atyfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
int fb_set_cmap(struct fb_cmap *cmap, int kspc,
int (*setcolreg)(u_int, u_int, u_int, u_int, u_int,
- struct fb_info *),
- struct fb_info *fb)
+ struct fb_info_aty *),
+ struct fb_info_aty *info)
{
int i, start;
u16 *red, *green, *blue, *transp;
@@ -1445,7 +1461,7 @@ int fb_set_cmap(struct fb_cmap *cmap, int kspc,
blue++;
if (transp)
transp++;
- if (setcolreg(start++, hred, hgreen, hblue, htransp, fb))
+ if (setcolreg(start++, hred, hgreen, hblue, htransp, info))
return 0;
}
return 0;
@@ -1464,17 +1480,17 @@ struct fb_cmap *fb_default_cmap(int len)
return &default_16_colors;
}
-static void do_install_cmap(int con, struct fb_info *fb)
+static void do_install_cmap(int con, struct fb_info_aty *info)
{
-#if 0
- struct fb_info_aty *info = (struct fb_info_aty *)fb;
+#if PLL_CRTC_DECODE==1
int size = info->current_par.crtc.bpp == 16 ? 32 : 256;
#else
int size = 256;
#endif
- fb_set_cmap(fb_default_cmap(size), 1, atyfb_setcolreg, fb);
+ fb_set_cmap(fb_default_cmap(size), 1, atyfb_setcolreg, info);
}
+#endif /*CONFIG_CONSOLE_BTEXT */
static struct device_operations ati_ragexl_graph_ops = {
.read_resources = pci_dev_read_resources,
diff --git a/src/mainboard/tyan/s2850/Config.lb b/src/mainboard/tyan/s2850/Config.lb
index 4b1375f4c4..7784192c4f 100644
--- a/src/mainboard/tyan/s2850/Config.lb
+++ b/src/mainboard/tyan/s2850/Config.lb
@@ -33,10 +33,12 @@ default LB_CKS_RANGE_END=122
default LB_CKS_LOC=123
driver mainboard.o
-#driver adaptec_scsi.o
-#driver si_sata.o
-#driver intel_nic_ipmi.o
-#driver broadcom_nic_ipmi.o
+#dir /drivers/lsi/53c1030
+#dir /drivers/adaptec/7902
+#dir /drivers/si/3114
+#dir /drivers/intel/82551
+#dir /drivers/broadcom/tg3_ipmi
+dir /drivers/ati/ragexl
#object reset.o
if HAVE_MP_TABLE object mptable.o end
if HAVE_PIRQ_TABLE object irq_tables.o end
diff --git a/src/mainboard/tyan/s2875/Config.lb b/src/mainboard/tyan/s2875/Config.lb
index 650fc4f22f..595685287e 100644
--- a/src/mainboard/tyan/s2875/Config.lb
+++ b/src/mainboard/tyan/s2875/Config.lb
@@ -35,8 +35,9 @@ default LB_CKS_RANGE_END=122
default LB_CKS_LOC=123
driver mainboard.o
-#driver si_sata.o
-#driver intel_nic.o
+#dir /drivers/adaptec/7902
+#dir /drivers/si/3114
+#dir /driver/intel/82551
#object reset.o
if HAVE_MP_TABLE object mptable.o end
if HAVE_PIRQ_TABLE object irq_tables.o end
diff --git a/src/mainboard/tyan/s2880/Config.lb b/src/mainboard/tyan/s2880/Config.lb
index 0c757dc2df..ef948091b7 100644
--- a/src/mainboard/tyan/s2880/Config.lb
+++ b/src/mainboard/tyan/s2880/Config.lb
@@ -32,10 +32,11 @@ default LB_CKS_LOC=123
driver mainboard.o
-#dir ../common/lsi_scsi
-#driver adaptec_scsi.o
-#driver promise_sata.o
-#driver intel_nic.o
+#dir /drivers/lsi/53c1030
+#dir /drivers/adaptec/7902
+#dir /drivers/si/3114
+#dir /drivers/intel/82551
+dir /drivers/ati/ragexl
#object reset.o
if HAVE_MP_TABLE object mptable.o end
if HAVE_PIRQ_TABLE object irq_tables.o end
@@ -184,7 +185,8 @@ northbridge amd/amdk8 "mc0"
pnp 2e.8 off # GPIO2
pnp 2e.9 off # GPIO3
pnp 2e.a off # ACPI
- pnp 2e.b off # HW Monitor
+ pnp 2e.b on # HW Monitor
+ io 0x60 = 0x290
end
end
end
diff --git a/src/mainboard/tyan/s2881/Config.lb b/src/mainboard/tyan/s2881/Config.lb
index a82d0b0fe6..733e897470 100644
--- a/src/mainboard/tyan/s2881/Config.lb
+++ b/src/mainboard/tyan/s2881/Config.lb
@@ -34,11 +34,11 @@ default LB_CKS_LOC=123
driver mainboard.o
-#driver adaptec_scsi.o
-#driver si_sata.o
-#driver intel_nic.o
-#dir ../drivers/broadcom_nic_ipmi
-dir ../drivers/ati_graph
+#dir /drivers/adaptec/7902
+#dir /drivers/si/3114
+#dir /drivers/intel/82551
+#dir /drivers/broadcom/tg3_ipmi
+dir /drivers/ati/ragexl
#object reset.o
if HAVE_MP_TABLE object mptable.o end
if HAVE_PIRQ_TABLE object irq_tables.o end
@@ -171,33 +171,33 @@ northbridge amd/amdk8 "mc0"
pci 1:0.1 on
pci 1:0.2 on
pci 1:1.0 off
-# superio winbond/w83627hf link 1
-# pnp 2e.0 on # Floppy
-# io 0x60 = 0x3f0
-# irq 0x70 = 6
-# drq 0x74 = 2
-# pnp 2e.1 off # Parallel Port
-# io 0x60 = 0x378
-# irq 0x70 = 7
-# pnp 2e.2 on # Com1
-# io 0x60 = 0x3f8
-# irq 0x70 = 4
-# pnp 2e.3 off # Com2
-# io 0x60 = 0x2f8
-# irq 0x70 = 3
-# pnp 2e.5 on # Keyboard
-# io 0x60 = 0x60
-# io 0x62 = 0x64
-# irq 0x70 = 1
-# irq 0x72 = 12
-# pnp 2e.6 off # CIR
-# pnp 2e.7 off # GAME_MIDI_GIPO1
-# pnp 2e.8 off # GPIO2
-# pnp 2e.9 off # GPIO3
-# pnp 2e.a off # ACPI
-# pnp 2e.b on # HW Monitor
-# io 0x60 = 0x290
-# end
+ superio winbond/w83627hf link 1
+ pnp 2e.0 on # Floppy
+ io 0x60 = 0x3f0
+ irq 0x70 = 6
+ drq 0x74 = 2
+ pnp 2e.1 off # Parallel Port
+ io 0x60 = 0x378
+ irq 0x70 = 7
+ pnp 2e.2 on # Com1
+ io 0x60 = 0x3f8
+ irq 0x70 = 4
+ pnp 2e.3 off # Com2
+ io 0x60 = 0x2f8
+ irq 0x70 = 3
+ pnp 2e.5 on # Keyboard
+ io 0x60 = 0x60
+ io 0x62 = 0x64
+ irq 0x70 = 1
+ irq 0x72 = 12
+ pnp 2e.6 off # CIR
+ pnp 2e.7 off # GAME_MIDI_GIPO1
+ pnp 2e.8 off # GPIO2
+ pnp 2e.9 off # GPIO3
+ pnp 2e.a off # ACPI
+ pnp 2e.b on # HW Monitor
+ io 0x60 = 0x290
+ end
end
end
diff --git a/src/mainboard/tyan/s2882/Config.lb b/src/mainboard/tyan/s2882/Config.lb
index 7d84e15563..6fa3653083 100644
--- a/src/mainboard/tyan/s2882/Config.lb
+++ b/src/mainboard/tyan/s2882/Config.lb
@@ -33,10 +33,10 @@ default LB_CKS_RANGE_END=122
default LB_CKS_LOC=123
driver mainboard.o
-#driver adaptec_scsi.o
-#driver si_sata.o
-#driver intel_nic.o
-#driver broadcom_nic.o
+#dir /drvers/adaptec/7902
+#dir /drivers/si/3114
+#dir /drivers/intel/82551_ipmi
+dir /drivers/ati/ragexl
#object reset.o
if HAVE_MP_TABLE object mptable.o end
if HAVE_PIRQ_TABLE object irq_tables.o end
@@ -132,7 +132,7 @@ end
makerule ./failover.inc
depends "./romcc ./failover.E"
- action "./romcc -O -o failover.inc --label-prefix=failover ./failover.E"
+ action "./romcc -O2 -o failover.inc --label-prefix=failover ./failover.E"
end
makerule ./auto.E
diff --git a/src/mainboard/tyan/s2885/Config.lb b/src/mainboard/tyan/s2885/Config.lb
index 29e0846fd2..33fffe6b48 100644
--- a/src/mainboard/tyan/s2885/Config.lb
+++ b/src/mainboard/tyan/s2885/Config.lb
@@ -35,11 +35,10 @@ default LB_CKS_RANGE_END=122
default LB_CKS_LOC=123
driver mainboard.o
-#driver broadcom_nic.o
+#dir /drvers/adaptec/7902
+#dir /drivers/si/3114
+#dir /drivers/intel/82551
driver ti_firewire.o
-#driver adaptec_scsi.o
-driver si_sata.o
-#driver intel_nic.o
#object reset.o
if HAVE_MP_TABLE object mptable.o end
if HAVE_PIRQ_TABLE object irq_tables.o end
@@ -158,7 +157,7 @@ northbridge amd/amdk8 "mc0"
pci 0:18.2
pci 0:18.3
southbridge amd/amd8131 "amd8131" link 2
- pci 0:0.0
+ pci 0:0.0
pci 0:0.1
pci 0:1.0
pci 0:1.1
@@ -192,7 +191,7 @@ northbridge amd/amdk8 "mc0"
pnp 2e.5 on # Keyboard
io 0x60 = 0x60
io 0x62 = 0x64
- irq 0x70 = 1
+ irq 0x70 = 1
irq 0x72 = 12
pnp 2e.6 off # CIR
pnp 2e.7 off # GAME_MIDI_GIPO1
@@ -200,7 +199,7 @@ northbridge amd/amdk8 "mc0"
pnp 2e.9 off # GPIO3
pnp 2e.a off # ACPI
pnp 2e.b on # HW Monitor
- io 0x60 = 0x290
+ io 0x60 = 0x290
end
end
southbridge amd/amd8151 "amd8151" link 0
@@ -221,8 +220,8 @@ end
#dir /bioscall
cpu k8 "cpu0"
- register "up" = "{.chip = &amd8151, .ht_width=16, .ht_speed=600}"
- register "down" = "{.chip = &amd8131, .ht_width=16, .ht_speed=600}"
+ register "up" = "{.chip = &amd8151, .ht_width=16, .ht_speed=600}"
+ register "down" = "{.chip = &amd8131, .ht_width=16, .ht_speed=600}"
end
cpu k8 "cpu1"
diff --git a/src/mainboard/tyan/s2885/mptable.c b/src/mainboard/tyan/s2885/mptable.c
index dd7cefcc85..d9477e2966 100644
--- a/src/mainboard/tyan/s2885/mptable.c
+++ b/src/mainboard/tyan/s2885/mptable.c
@@ -15,6 +15,7 @@ void *smp_write_config_table(void *v, unsigned long * processor_map)
unsigned char bus_isa;
unsigned char bus_8131_1;
unsigned char bus_8131_2;
+ unsigned char bus_8111_0;
unsigned char bus_8111_1;
unsigned char bus_8151_1;
@@ -44,6 +45,7 @@ void *smp_write_config_table(void *v, unsigned long * processor_map)
/* 8111 */
dev = dev_find_slot(3, PCI_DEVFN(0x03,0));
if (dev) {
+ bus_8111_0 = pci_read_config8(dev, PCI_PRIMARY_BUS);
bus_8111_1 = pci_read_config8(dev, PCI_SECONDARY_BUS);
bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
bus_isa++;
@@ -136,9 +138,9 @@ void *smp_write_config_table(void *v, unsigned long * processor_map)
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xe, 0x2, 0xe);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xf, 0x2, 0xf);
//??? What
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x3, (4<<2)|3, 0x2, 0x13);
-//Onboard AMD AC97 Audio ???
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x3, (4<<2)|1, 0x2, 0x11);
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_0, (4<<2)|3, 0x2, 0x13);
+//Onboard AMD AC97 Audio
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_0, (4<<2)|1, 0x2, 0x11);
// Onboard AMD USB
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_1, (0<<2)|3, 0x2, 0x13);
diff --git a/src/mainboard/tyan/s4880/Config.lb b/src/mainboard/tyan/s4880/Config.lb
index 95714c354c..8de50f59b2 100644
--- a/src/mainboard/tyan/s4880/Config.lb
+++ b/src/mainboard/tyan/s4880/Config.lb
@@ -33,10 +33,11 @@ default LB_CKS_RANGE_END=122
default LB_CKS_LOC=123
driver mainboard.o
-dir ../common/lsi_scsi
-#driver adaptec_scsi.o
-#driver si_sata.o
-#driver intel_nic.o
+#dir /drivers/lsi/53c1030
+#dir /drivers/adaptec/7902
+#dir /drivers/si/3114
+#dir /drivers/intel/82551
+#dir /drivers/ati/ragexl
#object reset.o
if HAVE_MP_TABLE object mptable.o end
if HAVE_PIRQ_TABLE object irq_tables.o end
@@ -184,12 +185,14 @@ northbridge amd/amdk8 "mc0"
io 0x60 = 0x60
io 0x62 = 0x64
irq 0x70 = 1
+ irq 0x72 = 12
pnp 2e.6 off # CIR
pnp 2e.7 off # GAME_MIDI_GIPO1
pnp 2e.8 off # GPIO2
pnp 2e.9 off # GPIO3
pnp 2e.a off # ACPI
- pnp 2e.b off # HW Monitor
+ pnp 2e.b on # HW Monitor
+ io 0x60 = 0x290
end
end
end
@@ -227,7 +230,7 @@ dir /pc80
#dir /bioscall
cpu k8 "cpu0"
- register "up" = "{.chip = &amd8131, .ht_width=16, .ht_speed=600}"
+ register "down" = "{.chip = &amd8131, .ht_width=16, .ht_speed=600}"
end
cpu k8 "cpu1"
diff --git a/src/mainboard/tyan/s4882/Config.lb b/src/mainboard/tyan/s4882/Config.lb
index 9972696a4e..7f6190751d 100644
--- a/src/mainboard/tyan/s4882/Config.lb
+++ b/src/mainboard/tyan/s4882/Config.lb
@@ -34,10 +34,11 @@ default LB_CKS_RANGE_END=122
default LB_CKS_LOC=123
driver mainboard.o
-dir ../common/lsi_scsi
-#driver adaptec_scsi.o
-#driver si_sata.o
-#driver intel_nic.o
+#dir /drivers/lsi/53c1030
+#dir /drivers/adaptec/7902
+#dir /drivers/si/3114
+#dir /drivers/intel/82551
+#dir /drivers/ati/ragexl
#object reset.o
if HAVE_MP_TABLE object mptable.o end
if HAVE_PIRQ_TABLE object irq_tables.o end
@@ -188,12 +189,14 @@ northbridge amd/amdk8 "mc0"
io 0x60 = 0x60
io 0x62 = 0x64
irq 0x70 = 1
+ irq 0x72 = 12
pnp 2e.6 off # CIR
pnp 2e.7 off # GAME_MIDI_GIPO1
pnp 2e.8 off # GPIO2
pnp 2e.9 off # GPIO3
pnp 2e.a off # ACPI
- pnp 2e.b off # HW Monitor
+ pnp 2e.b on # HW Monitor
+ io 0x60 = 0x290
end
end
end
@@ -231,7 +234,7 @@ dir /pc80
#dir /bioscall
cpu k8 "cpu0"
- register "up" = "{.chip = &amd8131, .ht_width=16, .ht_speed=600}"
+ register "across" = "{.chip = &amd8131, .ht_width=16, .ht_speed=600}"
end
cpu k8 "cpu1"