diff options
author | Yinghai Lu <yinghailu@gmail.com> | 2004-04-28 05:37:36 +0000 |
---|---|---|
committer | Yinghai Lu <yinghailu@gmail.com> | 2004-04-28 05:37:36 +0000 |
commit | 97c4947ec9af1664e81ee797834a32d3ca2f74fe (patch) | |
tree | 33f41aaaf4c61c0b41ae4751081d2c369ee371b0 /src | |
parent | 48d11d557f725ecf89678a1b9df440417b8da225 (diff) | |
download | coreboot-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.c | 24 | ||||
-rw-r--r-- | src/drivers/ati/ragexl/atyfb.h | 11 | ||||
-rw-r--r-- | src/drivers/ati/ragexl/fb.h | 5 | ||||
-rw-r--r-- | src/drivers/ati/ragexl/mach64_ct.c | 13 | ||||
-rw-r--r-- | src/drivers/ati/ragexl/xlinit.c | 170 | ||||
-rw-r--r-- | src/mainboard/tyan/s2850/Config.lb | 10 | ||||
-rw-r--r-- | src/mainboard/tyan/s2875/Config.lb | 5 | ||||
-rw-r--r-- | src/mainboard/tyan/s2880/Config.lb | 12 | ||||
-rw-r--r-- | src/mainboard/tyan/s2881/Config.lb | 64 | ||||
-rw-r--r-- | src/mainboard/tyan/s2882/Config.lb | 10 | ||||
-rw-r--r-- | src/mainboard/tyan/s2885/Config.lb | 17 | ||||
-rw-r--r-- | src/mainboard/tyan/s2885/mptable.c | 8 | ||||
-rw-r--r-- | src/mainboard/tyan/s4880/Config.lb | 15 | ||||
-rw-r--r-- | src/mainboard/tyan/s4882/Config.lb | 15 |
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" |