diff options
22 files changed, 0 insertions, 1824 deletions
diff --git a/src/mainboard/via/Kconfig b/src/mainboard/via/Kconfig index c3fcb143cd..328d33d7d5 100644 --- a/src/mainboard/via/Kconfig +++ b/src/mainboard/via/Kconfig @@ -12,12 +12,6 @@ config BOARD_VIA_EPIA_M850 help STOP RIGHT HERE AND READ THIS!!! Read http://www.coreboot.org/VIA_EPIA-M850 before you proceed. -config BOARD_VIA_EPIA_M - bool "EPIA-M" -config BOARD_VIA_EPIA_MII - bool "EPIA-MII" -config BOARD_VIA_EPIA_ML - bool "EPIA-ML" config BOARD_VIA_EPIA_N bool "EPIA-N" config BOARD_VIA_PC2500E @@ -30,9 +24,6 @@ endchoice source "src/mainboard/via/epia-cn/Kconfig" source "src/mainboard/via/epia-m700/Kconfig" source "src/mainboard/via/epia-m850/Kconfig" -source "src/mainboard/via/epia-m/Kconfig" -source "src/mainboard/via/epia-mii/Kconfig" -source "src/mainboard/via/epia-ml/Kconfig" source "src/mainboard/via/epia-n/Kconfig" source "src/mainboard/via/pc2500e/Kconfig" source "src/mainboard/via/vt8454c/Kconfig" diff --git a/src/mainboard/via/epia-m/Kconfig b/src/mainboard/via/epia-m/Kconfig deleted file mode 100644 index 843b7f443c..0000000000 --- a/src/mainboard/via/epia-m/Kconfig +++ /dev/null @@ -1,33 +0,0 @@ -if BOARD_VIA_EPIA_M || BOARD_VIA_EPIA_MII || BOARD_VIA_EPIA_ML - -config BOARD_SPECIFIC_OPTIONS # dummy - def_bool y - select CPU_VIA_C3 - select NORTHBRIDGE_VIA_VT8623 - select SOUTHBRIDGE_VIA_VT8235 - select SOUTHBRIDGE_RICOH_RL5C476 - select SUPERIO_VIA_VT1211 - select HAVE_OPTION_TABLE - select HAVE_PIRQ_TABLE - select HAVE_ACPI_TABLES - select BOARD_ROMSIZE_KB_256 - select ROMCC - select PER_DEVICE_ACPI_TABLES - -config MAINBOARD_DIR - string - default via/epia-m - -if BOARD_VIA_EPIA_M - -config MAINBOARD_PART_NUMBER - string - default "EPIA-M" - -endif # BOARD_VIA_EPIA_M - -config IRQ_SLOT_COUNT - int - default 5 - -endif # BOARD_VIA_EPIA_M || BOARD_VIA_EPIA_MII || BOARD_VIA_EPIA_ML diff --git a/src/mainboard/via/epia-m/acpi_tables.c b/src/mainboard/via/epia-m/acpi_tables.c deleted file mode 100644 index d02bac2bc6..0000000000 --- a/src/mainboard/via/epia-m/acpi_tables.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * coreboot ACPI Table support - * written by Stefan Reinauer <stepan@openbios.org> - * ACPI FADT, FACS, and DSDT table support added by - * Nick Barker <nick.barker9@btinternet.com>, and those portions - * (C) Copyright 2004 Nick Barker - * (C) Copyright 2005 Stefan Reinauer - */ - -#include <console/console.h> -#include <string.h> -#include <arch/acpi.h> - -unsigned long acpi_fill_mcfg(unsigned long current) -{ - /* Nothing to do */ - return current; -} - -unsigned long acpi_fill_slit(unsigned long current) -{ - // Not implemented - return current; -} - -unsigned long acpi_fill_madt(unsigned long current) -{ - /* Nothing to do */ - return current; -} - -unsigned long acpi_fill_srat(unsigned long current) -{ - /* No NUMA, no SRAT */ - return current; -} diff --git a/src/mainboard/via/epia-m/board_info.txt b/src/mainboard/via/epia-m/board_info.txt deleted file mode 100644 index 3d084e0712..0000000000 --- a/src/mainboard/via/epia-m/board_info.txt +++ /dev/null @@ -1,3 +0,0 @@ -Category: mini -Board URL: http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=81 -Flashrom support: y diff --git a/src/mainboard/via/epia-m/cmos.layout b/src/mainboard/via/epia-m/cmos.layout deleted file mode 100644 index 9050c3db7a..0000000000 --- a/src/mainboard/via/epia-m/cmos.layout +++ /dev/null @@ -1,72 +0,0 @@ -entries - -#start-bit length config config-ID name -#0 8 r 0 seconds -#8 8 r 0 alarm_seconds -#16 8 r 0 minutes -#24 8 r 0 alarm_minutes -#32 8 r 0 hours -#40 8 r 0 alarm_hours -#48 8 r 0 day_of_week -#56 8 r 0 day_of_month -#64 8 r 0 month -#72 8 r 0 year -#80 4 r 0 rate_select -#84 3 r 0 REF_Clock -#87 1 r 0 UIP -#88 1 r 0 auto_switch_DST -#89 1 r 0 24_hour_mode -#90 1 r 0 binary_values_enable -#91 1 r 0 square-wave_out_enable -#92 1 r 0 update_finished_enable -#93 1 r 0 alarm_interrupt_enable -#94 1 r 0 periodic_interrupt_enable -#95 1 r 0 disable_clock_updates -#96 288 r 0 temporary_filler -0 384 r 0 reserved_memory -384 1 e 4 boot_option -385 1 e 4 last_boot -386 1 e 1 ECC_memory -388 4 r 0 reboot_bits -392 3 e 5 baud_rate -400 1 e 1 power_on_after_fail -412 4 e 6 debug_level -416 4 e 7 boot_first -420 4 e 7 boot_second -424 4 e 7 boot_third -428 4 h 0 boot_index -432 8 h 0 boot_countdown -1008 16 h 0 check_sum - -enumerations - -#ID value text -1 0 Disable -1 1 Enable -2 0 Enable -2 1 Disable -4 0 Fallback -4 1 Normal -5 0 115200 -5 1 57600 -5 2 38400 -5 3 19200 -5 4 9600 -5 5 4800 -5 6 2400 -5 7 1200 -6 6 Notice -6 7 Info -6 8 Debug -6 9 Spew -7 0 Network -7 1 HDD -7 2 Floppy -7 8 Fallback_Network -7 9 Fallback_HDD -7 10 Fallback_Floppy -#7 3 ROM - -checksums - -checksum 392 1007 1008 diff --git a/src/mainboard/via/epia-m/devicetree.cb b/src/mainboard/via/epia-m/devicetree.cb deleted file mode 100644 index 98f6b4f9bd..0000000000 --- a/src/mainboard/via/epia-m/devicetree.cb +++ /dev/null @@ -1,61 +0,0 @@ -chip northbridge/via/vt8623 - - device cpu_cluster 0 on - chip cpu/via/c3 - device lapic 0 on end - end - end - - device domain 0 on - - device pci 0.0 on end - device pci 1.0 on end - - chip southbridge/via/vt8235 - - device pci 10.0 on end # USB 1.1 - device pci 10.1 on end # USB 1.1 - device pci 10.2 on end # USB 1.1 - device pci 10.3 on end # USB 2 - - device pci 11.0 on # Southbridge - chip superio/via/vt1211 - device pnp 2e.0 on # Floppy - io 0x60 = 0x3f0 - irq 0x70 = 6 - drq 0x74 = 2 - end - device pnp 2e.1 on # Parallel Port - io 0x60 = 0x378 - irq 0x70 = 7 - drq 0x74 = 3 - end - device pnp 2e.2 on # COM1 - io 0x60 = 0x3f8 - irq 0x70 = 4 - end - device pnp 2e.3 on # COM2 - io 0x60 = 0x2f8 - irq 0x70 = 3 - end - device pnp 2e.b on # HWM - io 0x60 = 0xec00 - end - - end - end - - device pci 11.1 on end # IDE - # 2-4 non existant? - device pci 11.5 on end # AC97 Audio - device pci 11.6 off end # AC97 Modem - device pci 12.0 on end # Ethernet - end -# This is on the EPIA MII, not the M. - chip southbridge/ricoh/rl5c476 - register "enable_cf" = "1" - device pci 0a.0 on end - device pci 0a.1 on end - end - end -end diff --git a/src/mainboard/via/epia-m/dsdt.asl b/src/mainboard/via/epia-m/dsdt.asl deleted file mode 100644 index d8553a2e15..0000000000 --- a/src/mainboard/via/epia-m/dsdt.asl +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Minimalist ACPI DSDT table for EPIA-M / MII - * (C) Copyright 2004 Nick Barker <Nick.Barker9@btinternet.com> - * - * - */ - -DefinitionBlock ("DSDT.aml", "DSDT", 1, "CORE ", "COREBOOT", 1) -{ - /* - * Define the main processor - */ - Scope (\_PR) - { - Processor (\_PR.CPU0, 0x00, 0x00000410, 0x06) {} - } - - /* For now only define 2 power states: - * - S0 which is fully on - * - S5 which is soft off - * any others would involve declaring the wake up methods - */ - Name (\_S0, Package () {0x00, 0x00, 0x00, 0x00 }) - Name (\_S5, Package () {0x02, 0x02, 0x00, 0x00 }) - - /* Root of the bus hierarchy */ - Scope (\_SB) - { - /* Define how interrupt Link A is plumbed in */ - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F")) - Name (_UID, 0x01) - /* Status - always return ready */ - Method (_STA, 0, NotSerialized) - { - Return (0x0B) - } - /* Current Resources - return irq set up in BIOS */ - Method (_CRS, 0, NotSerialized) - { - Name (BUFF, ResourceTemplate () - { - IRQ (Level, ActiveLow, Shared) {5} - }) - Return (BUFF) - } - /* Possible Resources - return the range of irqs - * we are using for PCI - only here to keep Linux ACPI - * happy - */ - Method (_PRS, 0, NotSerialized) - { - Name (BUFF, ResourceTemplate () - { - IRQ (Level, ActiveLow, Shared) {5,9,10} - }) - Return (BUFF) - } - /* Set Resources - dummy function to keep Linux ACPI happy - * Linux is more than happy not to tinker with irq - * assignments as long as the CRS and STA functions - * return good values - */ - Method (_SRS, 1, NotSerialized ) {} - /* Disable - dummy function to keep Linux ACPI happy */ - Method (_DIS, 0, NotSerialized ) {} - - } // End of LNKA - - /* Define how interrupt Link B is plumbed in */ - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F")) - Name (_UID, 0x02) - /* Status - always return ready */ - Method (_STA, 0, NotSerialized) - { - Return (0x0B) - } - /* Current Resources - return irq set up in BIOS */ - Method (_CRS, 0, NotSerialized) - { - Name (BUFF, ResourceTemplate () - { - IRQ (Level, ActiveLow, Shared) {9} - }) - Return (BUFF) - } - /* Possible Resources - return the range of irqs - * we are using for PCI - only here to keep Linux ACPI - * happy - */ - Method (_PRS, 0, NotSerialized) - { - Name (BUFF, ResourceTemplate () - { - IRQ (Level, ActiveLow, Shared) {5,9,10} - }) - Return (BUFF) - } - /* Set Resources - dummy function to keep Linux ACPI happy - * Linux is more than happy not to tinker with irq - * assignments as long as the CRS and STA functions - * return good values - */ - Method (_SRS, 1, NotSerialized ) {} - /* Disable - dummy function to keep Linux ACPI happy */ - Method (_DIS, 0, NotSerialized ) {} - - } // End of LNKB - - /* Define how interrupt Link C is plumbed in */ - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F")) - Name (_UID, 0x03) - /* Status - always return ready */ - Method (_STA, 0, NotSerialized) - { - Return (0x0B) - } - /* Current Resources - return irq set up in BIOS */ - Method (_CRS, 0, NotSerialized) - { - Name (BUFF, ResourceTemplate () - { - IRQ (Level, ActiveLow, Shared) {9} - }) - Return (BUFF) - } - /* Possible Resources - return the range of irqs - * we are using for PCI - only here to keep Linux ACPI - * happy - */ - Method (_PRS, 0, NotSerialized) - { - Name (BUFF, ResourceTemplate () - { - IRQ (Level, ActiveLow, Shared) {5,9,10} - }) - Return (BUFF) - } - /* Set Resources - dummy function to keep Linux ACPI happy - * Linux is more than happy not to tinker with irq - * assignments as long as the CRS and STA functions - * return good values - */ - Method (_SRS, 1, NotSerialized ) {} - /* Disable - dummy function to keep Linux ACPI happy */ - Method (_DIS, 0, NotSerialized ) {} - - } // End of LNKC - - /* Define how interrupt Link D is plumbed in */ - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F")) - Name (_UID, 0x04) - /* Status - always return ready */ - Method (_STA, 0, NotSerialized) - { - Return (0x0B) - } - /* Current Resources - return irq set up in BIOS */ - Method (_CRS, 0, NotSerialized) - { - Name (BUFF, ResourceTemplate () - { - IRQ (Level, ActiveLow, Shared) {5} - }) - Return (BUFF) - } - /* Possible Resources - return the range of irqs - * we are using for PCI - only here to keep Linux ACPI - * happy - */ - Method (_PRS, 0, NotSerialized) - { - Name (BUFF, ResourceTemplate () - { - IRQ (Level, ActiveLow, Shared) {5,9,10} - }) - Return (BUFF) - } - /* Set Resources - dummy function to keep Linux ACPI happy - * Linux is more than happy not to tinker with irq - * assignments as long as the CRS and STA functions - * return good values - */ - Method (_SRS, 1, NotSerialized ) {} - /* Disable - dummy function to keep Linux ACPI happy */ - Method (_DIS, 0, NotSerialized ) {} - - } // End of LNKD - - - /* top PCI device */ - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A03")) - Name (_ADR, 0x00) - Name (_UID, 0x00) - Name (_BBN, 0x00) - - /* PCI Routing Table */ - Name (_PRT, Package () { - /* Epia-MII 6000e cardbus: */ - Package () {0x000AFFFF, 0x00, LNKA, 0x00}, // Cardbus Link A - Package () {0x000AFFFF, 0x01, LNKB, 0x00}, // Cardbus Link B - Package () {0x000AFFFF, 0x02, LNKC, 0x00}, // Cardbus Link C - Package () {0x000AFFFF, 0x03, LNKD, 0x00}, // Cardbus Link D - - Package () {0x000DFFFF, 0x00, LNKB, 0x00}, // Firewire Link B - Package () {0x000DFFFF, 0x01, LNKC, 0x00}, // Firewire Link C - Package () {0x000DFFFF, 0x02, LNKD, 0x00}, // Firewire Linc D - Package () {0x000DFFFF, 0x03, LNKA, 0x00}, // Firewire Link A - - Package () {0x0010FFFF, 0x00, LNKA, 0x00}, // USB Link A - Package () {0x0010FFFF, 0x01, LNKB, 0x00}, // USB Link B - Package () {0x0010FFFF, 0x02, LNKC, 0x00}, // USB Link C - Package () {0x0010FFFF, 0x03, LNKD, 0x00}, // USB Link D - - Package () {0x0011FFFF, 0x00, LNKA, 0x00}, // vt8623 Link A - Package () {0x0011FFFF, 0x01, LNKB, 0x00}, // vt8623 Link B - Package () {0x0011FFFF, 0x02, LNKC, 0x00}, // vt8623 Link C - Package () {0x0011FFFF, 0x03, LNKD, 0x00}, // vt8623 Link D - - Package () {0x0012FFFF, 0x00, LNKA, 0x00}, // LAN Link A - Package () {0x0012FFFF, 0x01, LNKB, 0x00}, // LAN Link B - Package () {0x0012FFFF, 0x02, LNKC, 0x00}, // LAN Link C - Package () {0x0012FFFF, 0x03, LNKD, 0x00}, // LAN Link D - - Package () {0x0013FFFF, 0x00, LNKA, 0x00}, // Riser slot LinkA - Package () {0x0013FFFF, 0x01, LNKB, 0x00}, // Riser slot LinkB - Package () {0x0013FFFF, 0x02, LNKC, 0x00}, // Riser slot LinkC - Package () {0x0013FFFF, 0x03, LNKD, 0x00}, // Riser slot LinkD - - Package () {0x0014FFFF, 0x00, LNKB, 0x00}, // Slot 1, Link B - Package () {0x0014FFFF, 0x01, LNKC, 0x00}, // Slot 1, Link C - Package () {0x0014FFFF, 0x02, LNKD, 0x00}, // Slot 1, Link D - Package () {0x0014FFFF, 0x03, LNKA, 0x00}, // Slot 1, Link A - - Package () {0x0001FFFF, 0x00, LNKA, 0x00}, // VGA Link A - Package () {0x0001FFFF, 0x01, LNKB, 0x00}, // VGA Link B - Package () {0x0001FFFF, 0x02, LNKC, 0x00}, // VGA Link C - Package () {0x0001FFFF, 0x03, LNKD, 0x00} // VGA Link D - - }) - - - } // End of PCI0 - - } // End of _SB - -} // End of Definition Block diff --git a/src/mainboard/via/epia-m/fadt.c b/src/mainboard/via/epia-m/fadt.c deleted file mode 100644 index 101ff19182..0000000000 --- a/src/mainboard/via/epia-m/fadt.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * (C) Copyright 2004 Nick Barker <nick.barker9@btinternet.com> - * - * 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; either version 2 of the License, or - * (at your option) any later version. - * - * 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 - */ - -/* - * ACPI - create the Fixed ACPI Description Tables (FADT) - */ - -#include <string.h> -#include <arch/acpi.h> - -void acpi_create_fadt(acpi_fadt_t *fadt,acpi_facs_t *facs,void *dsdt){ - acpi_header_t *header=&(fadt->header); - - memset((void *)fadt,0,sizeof(acpi_fadt_t)); - memcpy(header->signature,"FACP",4); - header->length = 244; - header->revision = 3; - memcpy(header->oem_id,OEM_ID,6); - memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, 8); - memcpy(header->asl_compiler_id,ASLC,4); - header->asl_compiler_revision=0; - - fadt->firmware_ctrl=(u32)facs; - fadt->dsdt=(u32)dsdt; - fadt->preferred_pm_profile=0; - fadt->sci_int=5; - fadt->smi_cmd = 0; - fadt->acpi_enable = 0; - fadt->acpi_disable = 0; - fadt->s4bios_req = 0x0; - fadt->pstate_cnt = 0x0; - - fadt->pm1a_evt_blk = 0x400; - fadt->pm1b_evt_blk = 0x0; - fadt->pm1a_cnt_blk = 0x404; - fadt->pm1b_cnt_blk = 0x0; - fadt->pm2_cnt_blk = 0x0; - fadt->pm_tmr_blk = 0x408; - fadt->gpe0_blk = 0x420; - fadt->gpe1_blk = 0x0; - - fadt->pm1_evt_len = 4; - fadt->pm1_cnt_len = 2; - fadt->pm2_cnt_len = 0; - fadt->pm_tmr_len = 4; - fadt->gpe0_blk_len = 4; - fadt->gpe1_blk_len = 0; - fadt->gpe1_base = 0; - fadt->cst_cnt = 0; - fadt->p_lvl2_lat = 90; - fadt->p_lvl3_lat = 900; - fadt->flush_size = 0; - fadt->flush_stride = 0; - fadt->duty_offset = 0; - fadt->duty_width = 1; - fadt->day_alrm = 125; - fadt->mon_alrm = 126; - fadt->century = 50; - fadt->iapc_boot_arch = 0x1; - fadt->flags = 0x4a5; - - fadt->reset_reg.space_id = 0; - fadt->reset_reg.bit_width = 0; - fadt->reset_reg.bit_offset = 0; - fadt->reset_reg.resv = 0; - fadt->reset_reg.addrl = 0x0; - fadt->reset_reg.addrh = 0x0; - - fadt->reset_value = 0; - fadt->x_firmware_ctl_l = (u32)facs; - fadt->x_firmware_ctl_h = 0; - fadt->x_dsdt_l = (u32)dsdt; - fadt->x_dsdt_h = 0; - - fadt->x_pm1a_evt_blk.space_id = 1; - fadt->x_pm1a_evt_blk.bit_width = 4; - fadt->x_pm1a_evt_blk.bit_offset = 0; - fadt->x_pm1a_evt_blk.resv = 0; - fadt->x_pm1a_evt_blk.addrl = 0x400; - fadt->x_pm1a_evt_blk.addrh = 0x0; - - - fadt->x_pm1b_evt_blk.space_id = 1; - fadt->x_pm1b_evt_blk.bit_width = 4; - fadt->x_pm1b_evt_blk.bit_offset = 0; - fadt->x_pm1b_evt_blk.resv = 0; - fadt->x_pm1b_evt_blk.addrl = 0x0; - fadt->x_pm1b_evt_blk.addrh = 0x0; - - - fadt->x_pm1a_cnt_blk.space_id = 1; - fadt->x_pm1a_cnt_blk.bit_width = 2; - fadt->x_pm1a_cnt_blk.bit_offset = 0; - fadt->x_pm1a_cnt_blk.resv = 0; - fadt->x_pm1a_cnt_blk.addrl = 0x404; - fadt->x_pm1a_cnt_blk.addrh = 0x0; - - - fadt->x_pm1b_cnt_blk.space_id = 1; - fadt->x_pm1b_cnt_blk.bit_width = 2; - fadt->x_pm1b_cnt_blk.bit_offset = 0; - fadt->x_pm1b_cnt_blk.resv = 0; - fadt->x_pm1b_cnt_blk.addrl = 0x0; - fadt->x_pm1b_cnt_blk.addrh = 0x0; - - - fadt->x_pm2_cnt_blk.space_id = 1; - fadt->x_pm2_cnt_blk.bit_width = 0; - fadt->x_pm2_cnt_blk.bit_offset = 0; - fadt->x_pm2_cnt_blk.resv = 0; - fadt->x_pm2_cnt_blk.addrl = 0x0; - fadt->x_pm2_cnt_blk.addrh = 0x0; - - - fadt->x_pm_tmr_blk.space_id = 1; - fadt->x_pm_tmr_blk.bit_width = 4; - fadt->x_pm_tmr_blk.bit_offset = 0; - fadt->x_pm_tmr_blk.resv = 0; - fadt->x_pm_tmr_blk.addrl = 0x408; - fadt->x_pm_tmr_blk.addrh = 0x0; - - - fadt->x_gpe0_blk.space_id = 1; - fadt->x_gpe0_blk.bit_width = 0; - fadt->x_gpe0_blk.bit_offset = 0; - fadt->x_gpe0_blk.resv = 0; - fadt->x_gpe0_blk.addrl = 0x420; - fadt->x_gpe0_blk.addrh = 0x0; - - - fadt->x_gpe1_blk.space_id = 1; - fadt->x_gpe1_blk.bit_width = 0; - fadt->x_gpe1_blk.bit_offset = 0; - fadt->x_gpe1_blk.resv = 0; - fadt->x_gpe1_blk.addrl = 0x0; - fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *)fadt, sizeof(acpi_fadt_t)); - -} diff --git a/src/mainboard/via/epia-m/irq_tables.c b/src/mainboard/via/epia-m/irq_tables.c deleted file mode 100644 index 1f2634e967..0000000000 --- a/src/mainboard/via/epia-m/irq_tables.c +++ /dev/null @@ -1,34 +0,0 @@ -/* This file was generated by getpir.c, do not modify! - (but if you do, please run checkpir on it to verify) - * Contains the IRQ Routing Table dumped directly from your memory, which BIOS sets up - * - * Documentation at : http://www.microsoft.com/hwdev/busbios/PCIIRQ.HTM -*/ - -#include <arch/pirq_routing.h> - -static const struct irq_routing_table intel_irq_routing_table = { - PIRQ_SIGNATURE, /* u32 signature */ - PIRQ_VERSION, /* u16 version */ - 32+16*CONFIG_IRQ_SLOT_COUNT, /* there can be total CONFIG_IRQ_SLOT_COUNT devices on the bus */ - 0x00, /* Where the interrupt router lies (bus) */ - (0x00<<3)|0x0, /* Where the interrupt router lies (dev) */ - 0xc20, /* IRQs devoted exclusively to PCI usage */ - 0, /* Vendor */ - 0, /* Device */ - 0, /* Miniport data */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8 rfu[11] */ - 0x68, /* u8 checksum , this hase to set to some value that would give 0 after the sum of all bytes for this structure (including checksum) */ - { - /* bus, dev|fn, {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap}, slot, rfu */ - {0x00,(0x14<<3)|0x0, {{0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x04, 0xdeb8}, {0x01, 0x0deb8}}, 0x1, 0x0}, - {0x00,(0x13<<3)|0x0, {{0x01, 0xdeb8}, {0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x04, 0x0deb8}}, 0x2, 0x0}, - {0x00,(0x0a<<3)|0x0, {{0x04, 0xdeb8}, {0x01, 0xdeb8}, {0x02, 0xdeb8}, {0x03, 0x0deb8}}, 0x3, 0x0}, - {0x00,(0x0d<<3)|0x0, {{0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x04, 0xdeb8}, {0x01, 0x0deb8}}, 0x4, 0x0}, - {0x00,(0x01<<3)|0x0, {{0x01, 0xdeb8}, {0x02, 0xdeb8}, {0x03, 0xdeb8}, {0x04, 0x0deb8}}, 0x0, 0x0}, - } -}; -unsigned long write_pirq_routing_table(unsigned long addr) -{ - return copy_pirq_routing_table(addr, &intel_irq_routing_table); -} diff --git a/src/mainboard/via/epia-m/romstage.c b/src/mainboard/via/epia-m/romstage.c deleted file mode 100644 index f63b6a855c..0000000000 --- a/src/mainboard/via/epia-m/romstage.c +++ /dev/null @@ -1,109 +0,0 @@ -#include <stdint.h> -#include <device/pci_def.h> -#include <device/pci_ids.h> -#include <arch/io.h> -#include <device/pnp_def.h> -#include <stdlib.h> -#include <console/console.h> -#include "northbridge/via/vt8623/raminit.h" -#include "cpu/x86/mtrr/earlymtrr.c" -#include "cpu/x86/bist.h" -#include "drivers/pc80/udelay_io.c" -#include "lib/delay.c" -#include "cpu/x86/lapic/boot_cpu.c" -#include "lib/debug.c" -#include "southbridge/via/vt8235/early_smbus.c" -#include "southbridge/via/vt8235/early_serial.c" - -static inline int spd_read_byte(unsigned device, unsigned address) -{ - return smbus_read_byte(device, address); -} - -#include "northbridge/via/vt8623/raminit.c" - -static void enable_mainboard_devices(void) -{ - device_t dev; - - dev = pci_locate_device_on_bus(PCI_ID(PCI_VENDOR_ID_VIA, - PCI_DEVICE_ID_VIA_8235), 0); - - if (dev == PCI_DEV_INVALID) { - die("Southbridge not found!!!\n"); - } - pci_write_config8(dev, 0x50, 0x80); - pci_write_config8(dev, 0x51, 0x1f); -#if 0 - // This early setup switches IDE into compatibility mode before PCI gets - // a chance to assign I/Os - // movl $CONFIG_ADDR(0, 0x89, 0x42), %eax - // // movb $0x09, %dl - // movb $0x00, %dl - // PCI_WRITE_CONFIG_BYTE -#endif - /* we do this here as in V2, we can not yet do raw operations - * to pci! - */ - dev += 0x100; /* ICKY */ - - pci_write_config8(dev, 0x04, 7); - pci_write_config8(dev, 0x40, 3); - pci_write_config8(dev, 0x42, 0); - pci_write_config8(dev, 0x3c, 0xe); - pci_write_config8(dev, 0x3d, 0); -} - -static void enable_shadow_ram(void) -{ - device_t dev = 0; /* no need to look up 0:0.0 */ - unsigned char shadowreg; - /* dev 0 for southbridge */ - shadowreg = pci_read_config8(dev, 0x63); - /* 0xf0000-0xfffff */ - shadowreg |= 0x30; - pci_write_config8(dev, 0x63, shadowreg); -} - -#include <cpu/intel/romstage.h> -static void main(unsigned long bist) -{ - device_t dev; - - /* Enable VGA; 32MB buffer. */ - pci_write_config8(0, 0xe1, 0xdd); - - /* - * Disable the firewire stuff, which apparently steps on IO 0+ on - * reset. Doh! - */ - dev = pci_locate_device_on_bus(PCI_ID(PCI_VENDOR_ID_VIA, - PCI_DEVICE_ID_VIA_6305), 0); - if (dev != PCI_DEV_INVALID) - pci_write_config8(dev, 0x15, 0x1c); - - enable_vt8235_serial(); - console_init(); - - enable_smbus(); - - /* Halt if there was a built in self test failure */ - report_bist_failure(bist); - - // init_timer(); - - post_code(0x05); - - print_debug(" Enabling mainboard devices\n"); - enable_mainboard_devices(); - - print_debug(" Enabling shadow ram\n"); - enable_shadow_ram(); - - ddr_ram_setup((const struct mem_controller *)0); - - if (bist == 0) - early_mtrr_init(); - - //dump_pci_devices(); -} diff --git a/src/mainboard/via/epia-mii/Kconfig b/src/mainboard/via/epia-mii/Kconfig deleted file mode 100644 index ff31b936c3..0000000000 --- a/src/mainboard/via/epia-mii/Kconfig +++ /dev/null @@ -1,9 +0,0 @@ -if BOARD_VIA_EPIA_MII - -# Dummy for abuild - -config MAINBOARD_PART_NUMBER - string - default "EPIA-MII" - -endif diff --git a/src/mainboard/via/epia-mii/board_info.txt b/src/mainboard/via/epia-mii/board_info.txt deleted file mode 100644 index 78b956d590..0000000000 --- a/src/mainboard/via/epia-mii/board_info.txt +++ /dev/null @@ -1,4 +0,0 @@ -Board URL: http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=202 -Flashrom support: y -Category: mini -Clone of: via/epia-m diff --git a/src/mainboard/via/epia-ml/Kconfig b/src/mainboard/via/epia-ml/Kconfig deleted file mode 100644 index 5e7b6abb36..0000000000 --- a/src/mainboard/via/epia-ml/Kconfig +++ /dev/null @@ -1,9 +0,0 @@ -if BOARD_VIA_EPIA_ML - -# Dummy for abuild - -config MAINBOARD_PART_NUMBER - string - default "EPIA-ML" - -endif diff --git a/src/mainboard/via/epia-ml/board_info.txt b/src/mainboard/via/epia-ml/board_info.txt deleted file mode 100644 index cbea1129d6..0000000000 --- a/src/mainboard/via/epia-ml/board_info.txt +++ /dev/null @@ -1,4 +0,0 @@ -Board URL: http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=301 -Flashrom support: y -Category: mini -Clone of: via/epia-m diff --git a/src/northbridge/via/Kconfig b/src/northbridge/via/Kconfig index 8a85e2a221..9fe6e8dbba 100644 --- a/src/northbridge/via/Kconfig +++ b/src/northbridge/via/Kconfig @@ -1,6 +1,5 @@ source src/northbridge/via/cn700/Kconfig source src/northbridge/via/cx700/Kconfig source src/northbridge/via/cn400/Kconfig -source src/northbridge/via/vt8623/Kconfig source src/northbridge/via/vx800/Kconfig source src/northbridge/via/vx900/Kconfig diff --git a/src/northbridge/via/Makefile.inc b/src/northbridge/via/Makefile.inc index 6c54bef8e8..9c0f4314fc 100644 --- a/src/northbridge/via/Makefile.inc +++ b/src/northbridge/via/Makefile.inc @@ -1,4 +1,3 @@ -subdirs-$(CONFIG_NORTHBRIDGE_VIA_VT8623) += vt8623 subdirs-$(CONFIG_NORTHBRIDGE_VIA_CN700) += cn700 subdirs-$(CONFIG_NORTHBRIDGE_VIA_CX700) += cx700 subdirs-$(CONFIG_NORTHBRIDGE_VIA_CN400) += cn400 diff --git a/src/northbridge/via/vt8623/Kconfig b/src/northbridge/via/vt8623/Kconfig deleted file mode 100644 index c2aa82b47e..0000000000 --- a/src/northbridge/via/vt8623/Kconfig +++ /dev/null @@ -1,3 +0,0 @@ -config NORTHBRIDGE_VIA_VT8623 - bool - diff --git a/src/northbridge/via/vt8623/Makefile.inc b/src/northbridge/via/vt8623/Makefile.inc deleted file mode 100644 index 7c0012ff1e..0000000000 --- a/src/northbridge/via/vt8623/Makefile.inc +++ /dev/null @@ -1,22 +0,0 @@ -## -## This file is part of the coreboot project. -## -## Copyright (C) 2007 Corey Osgood <corey.osgood@gmail.com> -## -## 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; either version 2 of the License, or -## (at your option) any later version. -## -## 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 -## - -ramstage-y += northbridge.c -ramstage-y += vga.c diff --git a/src/northbridge/via/vt8623/northbridge.c b/src/northbridge/via/vt8623/northbridge.c deleted file mode 100644 index 546db4cb61..0000000000 --- a/src/northbridge/via/vt8623/northbridge.c +++ /dev/null @@ -1,194 +0,0 @@ -#include <console/console.h> -#include <arch/io.h> -#include <stdint.h> -#include <device/device.h> -#include <device/pci.h> -#include <device/hypertransport.h> -#include <device/pci_ids.h> -#include <stdlib.h> -#include <string.h> -#include <cpu/cpu.h> -#include <cpu/x86/mtrr.h> -#include <cpu/x86/msr.h> -#include <cbmem.h> - -/* - * This fixup is based on capturing values from an Award BIOS. Without - * this fixup the DMA write performance is awful (i.e. hdparm -t /dev/hda is 20x - * slower than normal, ethernet drops packets). - * Apparently these registers govern some sort of bus master behavior. - */ - -static void northbridge_init(device_t dev) -{ - device_t fb_dev; - unsigned long fb; - unsigned char c; - - printk(BIOS_DEBUG, "VT8623 random fixup ...\n"); - pci_write_config8(dev, 0x0d, 0x08); - pci_write_config8(dev, 0x70, 0x82); - pci_write_config8(dev, 0x71, 0xc8); - pci_write_config8(dev, 0x72, 0x00); - pci_write_config8(dev, 0x73, 0x01); - pci_write_config8(dev, 0x74, 0x01); - pci_write_config8(dev, 0x75, 0x08); - pci_write_config8(dev, 0x76, 0x52); - pci_write_config8(dev, 0x13, 0xd0); - pci_write_config8(dev, 0x84, 0x80); - pci_write_config16(dev, 0x80, 0x610f); - pci_write_config32(dev, 0x88, 0x00000002); - - fb_dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0); - if (fb_dev) { - /* Fixup GART and framebuffer addresses properly. - * First setup frame buffer properly. - */ - //fb = pci_read_config32(dev, 0x10); /* Base addres of framebuffer */ - fb = 0xd0000000; - printk(BIOS_DEBUG, "Frame buffer at %8lx\n",fb); - - c = pci_read_config8(dev, 0xe1) & 0xf0; /* size of vga */ - c |= fb>>28; /* upper nibble of frame buffer address */ - c = 0xdd; - pci_write_config8(dev, 0xe1, c); - c = 0x81; /* enable framebuffer */ - pci_write_config8(dev, 0xe0, c); - pci_write_config8(dev, 0xe2, 0x42); /* 'cos award does */ - } -} - -static void nullfunc(device_t dev) -{ - /* Nothing to do */ -} - -static struct device_operations northbridge_operations = { - .read_resources = nullfunc, - .set_resources = pci_dev_set_resources, - .enable_resources = pci_dev_enable_resources, - .init = northbridge_init -}; - -static const struct pci_driver northbridge_driver __pci_driver = { - .ops = &northbridge_operations, - .vendor = PCI_VENDOR_ID_VIA, - .device = PCI_DEVICE_ID_VIA_8623, -}; - -static void agp_init(device_t dev) -{ - printk(BIOS_DEBUG, "VT8623 AGP random fixup ...\n"); - - pci_write_config8(dev, 0x3e, 0x0c); - pci_write_config8(dev, 0x40, 0x83); - pci_write_config8(dev, 0x41, 0xc5); - pci_write_config8(dev, 0x43, 0x44); - pci_write_config8(dev, 0x44, 0x34); - pci_write_config8(dev, 0x83, 0x02); -} - -static struct device_operations agp_operations = { - .read_resources = nullfunc, - .set_resources = pci_dev_set_resources, - .enable_resources = pci_bus_enable_resources, - .init = agp_init, - .scan_bus = pci_scan_bridge, - .ops_pci = 0, -}; - -static const struct pci_driver agp_driver __pci_driver = { - .ops = &agp_operations, - .vendor = PCI_VENDOR_ID_VIA, - .device = PCI_DEVICE_ID_VIA_8633_1, -}; - -static void pci_domain_set_resources(device_t dev) -{ - static const uint8_t ramregs[] = {0x5a, 0x5b, 0x5c, 0x5d }; - device_t mc_dev; - uint32_t pci_tolm; - - printk(BIOS_SPEW, "Entering vt8623 pci_domain_set_resources.\n"); - - pci_tolm = find_pci_tolm(dev->link_list); - mc_dev = dev->link_list->children; - if (mc_dev) { - unsigned long tomk, tolmk; - unsigned char rambits; - int i, idx; - - for(rambits = 0, i = 0; i < ARRAY_SIZE(ramregs); i++) { - unsigned char reg; - reg = pci_read_config8(mc_dev, ramregs[i]); - /* these are ENDING addresses, not sizes. - * if there is memory in this slot, then reg will be > rambits. - * So we just take the max, that gives us total. - * We take the highest one to cover for once and future coreboot - * bugs. We warn about bugs. - */ - if (reg > rambits) - rambits = reg; - if (reg < rambits) - printk(BIOS_ERR, "ERROR! register 0x%x is not set!\n", - ramregs[i]); - } - printk(BIOS_DEBUG, "I would set ram size to 0x%x Kbytes\n", (rambits)*16*1024); - tomk = rambits*16*1024 - 32768; - /* Compute the top of Low memory */ - tolmk = pci_tolm >> 10; - if (tolmk >= tomk) { - /* The PCI hole does does not overlap the memory. - */ - tolmk = tomk; - } - - set_top_of_ram(tolmk * 1024); - - /* Report the memory regions */ - idx = 10; - ram_resource(dev, idx++, 0, 640); /* first 640k */ - ram_resource(dev, idx++, 768, tolmk - 768); /* leave a hole for vga */ - } - assign_resources(dev->link_list); -} - -static struct device_operations pci_domain_ops = { - .read_resources = pci_domain_read_resources, - .set_resources = pci_domain_set_resources, - .enable_resources = NULL, - .init = NULL, - .scan_bus = pci_domain_scan_bus, - .ops_pci_bus = pci_bus_default_ops, -}; - -static void cpu_bus_init(device_t dev) -{ - initialize_cpus(dev->link_list); -} - -static struct device_operations cpu_bus_ops = { - .read_resources = DEVICE_NOOP, - .set_resources = DEVICE_NOOP, - .enable_resources = DEVICE_NOOP, - .init = cpu_bus_init, - .scan_bus = 0, -}; - -static void enable_dev(struct device *dev) -{ - printk(BIOS_SPEW, "In vt8623 enable_dev for device %s.\n", dev_path(dev)); - - /* Set the operations if it is a special bus type */ - if (dev->path.type == DEVICE_PATH_DOMAIN) { - dev->ops = &pci_domain_ops; - } - else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER) { - dev->ops = &cpu_bus_ops; - } -} - -struct chip_operations northbridge_via_vt8623_ops = { - CHIP_NAME("VIA VT8623 Northbridge") - .enable_dev = enable_dev, -}; diff --git a/src/northbridge/via/vt8623/raminit.c b/src/northbridge/via/vt8623/raminit.c deleted file mode 100644 index f281ce096c..0000000000 --- a/src/northbridge/via/vt8623/raminit.c +++ /dev/null @@ -1,628 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2005 Nick Barker <nick.barker9@btinternet.com> - * - * 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; either version 2 of the License, or - * (at your option) any later version. - * - * 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 - */ - -/* - Automatically detect and set up ddr dram on the CLE266 chipset. - Assumes DDR memory, though chipset also supports SDRAM - Assumes at least 266MHz memory as no attempt is made to clock - the chipset down if slower memory is installed. - So far tested on: - 256 Mb 266MHz 1 Bank (i.e. single sided) - 256 Mb 266MHz 2 Bank (i.e. double sided) - 512 Mb 266MHz 2 Bank (i.e. double sided) -*/ -/* ported and enhanced from assembler level code in coreboot v1 */ - -#include <spd.h> -#include <cpu/x86/mtrr.h> -#include "raminit.h" - - - -void dimm_read(unsigned long bank,unsigned long x) -{ - //unsigned long eax; - volatile unsigned long y; - //eax = x; - y = * (volatile unsigned long *) (x+ bank) ; - -} - - -void -dumpnorth(device_t north) -{ - uint16_t r, c; - for(r = 0; r < 256; r += 16) { - print_debug_hex8(r); - print_debug(":"); - for(c = 0; c < 16; c++) { - print_debug_hex8(pci_read_config8(north, r+c)); - print_debug(" "); - } - print_debug("\n"); - } -} -void print_val(char *str, int val) -{ - print_debug(str); - print_debug_hex8(val); -} - -static void ddr_ram_setup(const struct mem_controller *ctrl) -{ - device_t north = (device_t) 0; - uint8_t b, c, bank; - uint16_t i; - unsigned long bank_address; - - print_debug("vt8623 init starting\n"); - north = pci_locate_device(PCI_ID(0x1106, 0x3123), 0); - north = 0; - - - pci_write_config8(north,0x75,0x08); - - /* setup cpu */ - pci_write_config8(north,0x50,0xc8); - pci_write_config8(north,0x51,0xde); - pci_write_config8(north,0x52,0xcf); - pci_write_config8(north,0x53,0x88); - pci_write_config8(north,0x55,0x04); - -/* - DRAM MA Map Type Device 0 Offset 58 - - Determine memory addressing based on the module's memory technology and - arrangement. See Table 4-9 of Intel's 82443GX datasheet for details. - - Bank 1/0 MA map type 58[7-5] - Bank 1/0 command rate 58[4] - Bank 3/2 MA map type 58[3-1] - Bank 3/2 command rate 58[0] - - - Read SPD byte 17, Number of banks on SDRAM device. -*/ - c = 0; - b = smbus_read_byte(DIMM0,17); - print_val("Detecting Memory\nNumber of Banks ",b); - - if( b != 2 ){ // not 16 Mb type - -/* - Read SPD byte 3, Number of row addresses. -*/ - b = smbus_read_byte(DIMM0,3); - print_val("\nNumber of Rows ",b); - if( b >= 0x0d ){ // not 64/128Mb (rows <=12) - -/* - Read SPD byte 13, Primary DRAM width. -*/ - b = smbus_read_byte(DIMM0,13); - print_val("\nPriamry DRAM width",b); - if( b != 4 ) // mot 64/128Mb (x4) - c = 0x80; // 256Mb - } - -/* - 64/128Mb chip - - Read SPD byte 4, Number of column addresses. -*/ - b = smbus_read_byte(DIMM0,4); - print_val("\nNo Columns ",b); - if( b == 10 || b == 11 ) c |= 0x60; // 10/11 bit col addr - if( b == 9 ) c |= 0x40; // 9 bit col addr - if( b == 8 ) c |= 0x20; // 8 bit col addr - - } - print_val("\nMA type ",c); - pci_write_config8(north,0x58,c); - -/* - DRAM bank size. See 4.3.1 pg 35 - - 5a->5d set to end address for each bank. 1 bit == 16MB - 5a = bank 0 - 5b = bank 0 + b1 - 5c = bank 0 + b1 + b2 - 5d = bank 0 + b1 + b2 + b3 -*/ - -// Read SPD byte 31 Module bank density - c = 0; - b = smbus_read_byte(DIMM0,31); - if( b & 0x02 ) c = 0x80; // 2GB - else if( b & 0x01) c = 0x40; // 1GB - else if( b & 0x80) c = 0x20; // 512Mb - else if( b & 0x40) c = 0x10; // 256Mb - else if( b & 0x20) c = 0x08; // 128Mb - else if( b & 0x10) c = 0x04; // 64Mb - else if( b & 0x08) c = 0x02; // 32Mb - else if( b & 0x04) c = 0x01; // 16Mb / 4Gb - else c = 0x01; // Error, use default - - - print_val("\nBank 0 (*16 Mb) ",c); - - // set bank zero size - pci_write_config8(north,0x5a,c); - // SPD byte 5 # of physical banks - b = smbus_read_byte(DIMM0,5); - - print_val("\nNo Physical Banks ",b); - if( b == 2) - c <<=1; - - print_val("\nTotal Memory (*16 Mb) ",c); - // set banks 1,2,3 - pci_write_config8(north,0x5b,c); - pci_write_config8(north,0x5c,c); - pci_write_config8(north,0x5d,c); - - - /* Read SPD byte 18 CAS Latency */ - b = smbus_read_byte(DIMM0,18); - print_debug("\nCAS Supported "); - if(b & 0x04) - print_debug("2 "); - if(b & 0x08) - print_debug("2.5 "); - if(b & 0x10) - print_debug("3"); - print_val("\nCycle time at CL X (nS)",smbus_read_byte(DIMM0,9)); - print_val("\nCycle time at CL X-0.5 (nS)",smbus_read_byte(DIMM0,23)); - print_val("\nCycle time at CL X-1 (nS)",smbus_read_byte(DIMM0,25)); - - - if( b & 0x10 ){ // DDR offering optional CAS 3 - print_debug("\nStarting at CAS 3"); - c = 0x30; - /* see if we can better it */ - if( b & 0x08 ){ // DDR mandatory CAS 2.5 - if( smbus_read_byte(DIMM0,23) <= 0x75 ){ // we can manage 133MHz at CAS 2.5 - print_debug("\nWe can do CAS 2.5"); - c = 0x20; - } - } - if( b & 0x04 ){ // DDR mandatory CAS 2 - if( smbus_read_byte(DIMM0,25) <= 0x75 ){ // we can manage 133MHz at CAS 2 - print_debug("\nWe can do CAS 2"); - c = 0x10; - } - } - }else{ // no optional CAS values just 2 & 2.5 - print_debug("\nStarting at CAS 2.5"); - c = 0x20; // assume CAS 2.5 - if( b & 0x04){ // Should always happen - if( smbus_read_byte(DIMM0,23) <= 0x75){ // we can manage 133MHz at CAS 2 - print_debug("\nWe can do CAS 2"); - c = 0x10; - } - } - } - - - -/* - DRAM Timing Device 0 Offset 64 - - Row pre-charge 64[7] - RAS Pulse width 64[6] - CAS Latency 64[5,4] - - SDR DDR - 00 1T - - 01 2T 2T - 10 3T 2.5T - 11 - 3T - - RAS/CAS delay 64[2] - Bank Interleave 64[1,0] - - - Determine row pre-charge time (tRP) - - T nS SPD*4 SPD - 1T 7.5 0x1e - 2T 15 0x3c - 3T 22.5 0x5a - 4T 30 0x1e - 5T 37.5 0x25 .5? - 6T 45 0x2d - - - Read SPD byte 27, min row pre-charge time. -*/ - - b = smbus_read_byte(DIMM0,27); - print_val("\ntRP ",b); - if( b > 0x3c ) // set tRP = 3T - c |= 0x80; - - -/* - Determine RAS to CAS delay (tRCD) - - Read SPD byte 29, min row pre-charge time. -*/ - - b = smbus_read_byte(DIMM0,29); - print_val("\ntRCD ",b); - if( b > 0x3c ) // set tRCD = 3T - c |= 0x04; - -/* - Determine RAS pulse width (tRAS) - - - Read SPD byte 30, device min active to pre-charge time. -*/ - - b = smbus_read_byte(DIMM0,30); - print_val("\ntRAS ",b); - if( b > 0x25 ) // set tRAS = 6T - c |= 0x40; - - -/* - Determine bank interleave - - Read SPD byte 17, Number of banks on SDRAM device. -*/ - b = smbus_read_byte(DIMM0,17); - if( b == 4) c |= 0x02; - else if (b == 2) c |= 0x01; - - - /* set DRAM timing for all banks */ - pci_write_config8(north,0x64,c); - - /* set DRAM type to DDR */ - pci_write_config8(north,0x60,0x02); - - - /* DRAM arbitration timer */ - pci_write_config8(north,0x65,0x32); - - -/* - CPU Frequency Device 0 Offset 54 - - CPU Frequency 54[7,6] bootstraps at 0xc0 (133MHz) - DRAM burst length = 8 54[5] -*/ - pci_write_config8(north,0x54,0xe0); - - -/* - DRAM Clock Device 0 Offset 69 - - DRAM/CPU speed 69[7,6] (leave at default 00 == CPU) - Controller que > 2 69[5] - Controller que != 4 69[4] - DRAM 8k page size 69[3] - DRAM 4k page size 69[2] - Multiple page mode 69[0] -*/ - - pci_write_config8(north,0x69,0x2d); - - /* Delay >= 100ns after DRAM Frequency adjust, See 4.1.1.3 pg 15 */ - udelay(200); - - - /* Enable CKE */ - pci_write_config8(north,0x6b,0x10); - udelay(200); - - /* Disable DRAM refresh */ - pci_write_config8(north,0x6a,0x0); - - - /* Set drive for 1 bank DDR (Table 4.4.2, pg 40) */ - pci_write_config8(north,0x6d,0x044); - pci_write_config8(north,0x67,0x3a); - - b = smbus_read_byte(DIMM0,5); // SPD byte 5 # of physical banks - if( b > 1) { - // Increase drive control when there is more than 1 physical bank - pci_write_config8(north,0x6c,0x84); // Drive control: MA, DQS, MD/CKE - pci_write_config8(north,0x6d,0x55); // DC: Early clock select, DQM, CS#, MD - } - /* place frame buffer on last bank */ - if( !b) b++; // make sure at least 1 bank reported - pci_write_config8(north,0xe3,b-1); - - for( bank = 0 , bank_address=0; bank < b ; bank++){ -/* - DDR init described in Via BIOS Porting Guide. Pg 28 (4.2.3.1) -*/ - - - /* NOP command enable */ - pci_write_config8(north,0x6b,0x11); - - /* read a double word from any address of the dimm */ - dimm_read(bank_address,0x1f000); - //udelay(200); - - /* All bank precharge Command Enable */ - pci_write_config8(north,0x6b,0x12); - dimm_read(bank_address,0x1f000); - - - /* MSR Enable */ - pci_write_config8(north,0x6b,0x13); - dimm_read(bank_address,0x2000); - udelay(1); - dimm_read(bank_address,0x800); - udelay(1); - - /* All banks precharge Command Enable */ - pci_write_config8(north,0x6b,0x12); - dimm_read(bank_address,0x1f200); - - /* CBR Cycle Enable */ - pci_write_config8(north,0x6b,0x14); - - /* Read 8 times */ - dimm_read(bank_address,0x1f300); - udelay(100); - dimm_read(bank_address,0x1f400); - udelay(100); - dimm_read(bank_address,0x1f500); - udelay(100); - dimm_read(bank_address,0x1f600); - udelay(100); - dimm_read(bank_address,0x1f700); - udelay(100); - dimm_read(bank_address,0x1f800); - udelay(100); - dimm_read(bank_address,0x1f900); - udelay(100); - dimm_read(bank_address,0x1fa00); - udelay(100); - - /* MSR Enable */ - pci_write_config8(north,0x6b,0x13); - -/* - Mode Register Definition - with adjustement so that address calculation is correct - 64 bit technology, therefore - a0-a2 refer to byte within a 64 bit long word, and a3 is the first address line presented - to DIMM as a row or column address. - - MR[9-7] CAS Latency - MR[6] Burst Type 0 = sequential, 1 = interleaved - MR[5-3] burst length 001 = 2, 010 = 4, 011 = 8, others reserved - MR[0-2] dont care - - CAS Latency - 000 reserved - 001 reserved - 010 2 - 011 3 - 100 reserved - 101 1.5 - 110 2.5 - 111 reserved - - CAS 2 0101011000 = 0x158 - CAS 2.5 1101011000 = 0x358 - CAS 3 0111011000 = 0x1d8 - -*/ - c = pci_read_config8(north,0x64); - if( (c & 0x30) == 0x10 ) - dimm_read(bank_address,0x150); - else if((c & 0x30) == 0x20 ) - dimm_read(bank_address,0x350); - else - dimm_read(bank_address,0x1d0); - - //dimm_read(bank_address,0x350); - - /* Normal SDRAM Mode */ - pci_write_config8(north,0x6b,0x58 ); - - - bank_address = pci_read_config8(north,0x5a+bank) * 0x1000000; - } // end of for each bank - - /* Adjust DQS (data strobe output delay). See 4.2.3.2 pg 29 */ - pci_write_config8(north,0x66,0x41); - - /* determine low bond */ - if( b == 2) - bank_address = pci_read_config8(north,0x5a) * 0x1000000; - else - bank_address = 0; - - for(i = 0 ; i < 0x0ff; i++){ - c = i ^ (i>>1); // convert to gray code - pci_write_config8(north,0x68,c); - // clear - *(volatile unsigned long*)(0x4000) = 0; - *(volatile unsigned long*)(0x4100+bank_address) = 0; - *(volatile unsigned long*)(0x4200) = 0; - *(volatile unsigned long*)(0x4300+bank_address) = 0; - *(volatile unsigned long*)(0x4400) = 0; - *(volatile unsigned long*)(0x4500+bank_address) = 0; - - - // fill - *(volatile unsigned long*)(0x4000) = 0x12345678; - *(volatile unsigned long*)(0x4100+bank_address) = 0x81234567; - *(volatile unsigned long*)(0x4200) = 0x78123456; - *(volatile unsigned long*)(0x4300+bank_address) = 0x67812345; - *(volatile unsigned long*)(0x4400) = 0x56781234; - *(volatile unsigned long*)(0x4500+bank_address) = 0x45678123; - - // verify - if( *(volatile unsigned long*)(0x4000) != 0x12345678) - continue; - - if( *(volatile unsigned long*)(0x4100+bank_address) != 0x81234567) - continue; - - if( *(volatile unsigned long*)(0x4200) != 0x78123456) - continue; - - if( *(volatile unsigned long*)(0x4300+bank_address) != 0x67812345) - continue; - - if( *(volatile unsigned long*)(0x4400) != 0x56781234) - continue; - - if( *(volatile unsigned long*)(0x4500+bank_address) != 0x45678123) - continue; - - // if everything verified then found low bond - break; - - } - print_val("\nLow Bond ",i); - if( i < 0xff ){ - c = i++; - for( ; i <0xff ; i++){ - pci_write_config8(north,0x68,i ^ (i>>1) ); - - // clear - *(volatile unsigned long*)(0x8000) = 0; - *(volatile unsigned long*)(0x8100+bank_address) = 0; - *(volatile unsigned long*)(0x8200) = 0x0; - *(volatile unsigned long*)(0x8300+bank_address) = 0; - *(volatile unsigned long*)(0x8400) = 0x0; - *(volatile unsigned long*)(0x8500+bank_address) = 0; - - // fill - *(volatile unsigned long*)(0x8000) = 0x12345678; - *(volatile unsigned long*)(0x8100+bank_address) = 0x81234567; - *(volatile unsigned long*)(0x8200) = 0x78123456; - *(volatile unsigned long*)(0x8300+bank_address) = 0x67812345; - *(volatile unsigned long*)(0x8400) = 0x56781234; - *(volatile unsigned long*)(0x8500+bank_address) = 0x45678123; - - // verify - if( *(volatile unsigned long*)(0x8000) != 0x12345678) - break; - - if( *(volatile unsigned long*)(0x8100+bank_address) != 0x81234567) - break; - - if( *(volatile unsigned long*)(0x8200) != 0x78123456) - break; - - if( *(volatile unsigned long*)(0x8300+bank_address) != 0x67812345) - break; - - if( *(volatile unsigned long*)(0x8400) != 0x56781234) - break; - - if( *(volatile unsigned long*)(0x8500+bank_address) != 0x45678123) - break; - - } - print_val(" High Bond",i); - c = ((i - c)<<1)/3 +c; - print_val(" Setting DQS delay",c); - c = c ^ (c>>1); // convert to gray code - pci_write_config8(north,0x68,c); - pci_write_config8(north,0x68,0x42); - }else{ - print_debug("Unable to determine low bond - Setting default\n"); - pci_write_config8(north,0x68,0x59); - } - - - pci_write_config8(north,0x66,0x01); - pci_write_config8(north,0x55,0x07); - - - -/* - DRAM refresh rate Device 0 Offset 6a - - Units of 16 DRAM clock cycles. (See 4.4.1 pg 39) - - Rx69 (DRAM freq) Rx58 (chip tech) Rx6a - - 133MHz 64/128Mb 0x86 - 133MHz 256/512Mb 0x43 - 100MHz 64/128Mb 0x65 - 100MHz 256/512Mb 0x32 -*/ - - b = pci_read_config8(north,0x58); - if( b < 0x80 ) // 256 tech - pci_write_config8(north,0x6a,0x86); - else - pci_write_config8(north,0x6a,0x43); - - pci_write_config8(north,0x61,0xff); - //pci_write_config8(north,0x67,0x22); - - /* pci */ - pci_write_config8(north,0x70,0x82); - pci_write_config8(north,0x73,0x01); - pci_write_config8(north,0x76,0x50); - - - pci_write_config8(north,0x71,0xc8); - - - /* graphics aperture base */ - - pci_write_config8(north,0x13,0xd0); - - //pci_write_config8(north,0xe1,0xdf); - //pci_write_config8(north,0xe2,0x42); - pci_write_config8(north,0xe0,0x00); - - pci_write_config8(north,0x84,0x80); - pci_write_config16(north,0x80,0x610f); - pci_write_config32(north,0x88,0x00000002); - - - - pci_write_config8(north,0xa8,0x04); - pci_write_config8(north,0xac,0x2f); - pci_write_config8(north,0xae,0x04); - - print_debug("vt8623 done\n"); - dumpnorth(north); - - print_debug("AGP\n"); - north = pci_locate_device(PCI_ID(0x1106, 0xb091), 0); - pci_write_config32(north,0x20,0xddf0dc00); - pci_write_config32(north,0x24,0xdbf0d800); - pci_write_config8(north,0x3e,0x0c); - //dumpnorth(north); - - //print_err("VGA\n"); - //north = pci_locate_device(PCI_ID(0x1106, 0x3122), 0); - //pci_write_config32(north,0x10,0xd8000008); - //pci_write_config32(north,0x14,0xdc000000); - //dumpnorth(north); - -} diff --git a/src/northbridge/via/vt8623/raminit.h b/src/northbridge/via/vt8623/raminit.h deleted file mode 100644 index b6d2339df3..0000000000 --- a/src/northbridge/via/vt8623/raminit.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef RAMINIT_H -#define RAMINIT_H - -struct mem_controller { - int empty; -}; - -#endif /* RAMINIT_H */ diff --git a/src/northbridge/via/vt8623/vga.c b/src/northbridge/via/vt8623/vga.c deleted file mode 100644 index 7ed279272b..0000000000 --- a/src/northbridge/via/vt8623/vga.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2007-2009 coresystems GmbH - * - * 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 - */ - -#include <console/console.h> -#include <arch/io.h> -#include <stdint.h> -#include <device/device.h> -#include <device/pci.h> -#include <device/pci_ids.h> -#include <stdlib.h> -#include <string.h> -#include <cpu/cpu.h> -#include <cpu/x86/mtrr.h> -#include <cpu/x86/msr.h> -#include <arch/interrupt.h> -#include <x86emu/regs.h> -#if CONFIG_PCI_OPTION_ROM_RUN_REALMODE -#include <device/oprom/realmode/x86.h> -#endif - -static int via_vt8623_int15_handler(void) -{ - int res=0; - printk(BIOS_DEBUG, "via_vt8623_int15_handler\n"); - switch(X86_EAX & 0xffff) { - case 0x5f19: - break; - case 0x5f18: - X86_EAX=0x5f; - X86_EBX=0x545; // MCLK = 133, 32M frame buffer, 256 M main memory - X86_ECX=0x060; - res=1; - break; - case 0x5f00: - X86_EAX = 0x8600; - break; - case 0x5f01: - X86_EAX = 0x5f; - X86_ECX = (X86_ECX & 0xffffff00 ) | 2; // panel type = 2 = 1024 * 768 - res = 1; - break; - case 0x5f02: - X86_EAX=0x5f; - X86_EBX= (X86_EBX & 0xffff0000) | 2; - X86_ECX= (X86_ECX & 0xffff0000) | 0x401; // PAL + crt only - X86_EDX= (X86_EDX & 0xffff0000) | 0; // TV Layout - default - res=1; - break; - case 0x5f0f: - X86_EAX=0x860f; - break; - default: - printk(BIOS_DEBUG, "Unknown INT15 function %04x!\n", - X86_EAX & 0xffff); - break; - } - return res; -} - -#ifdef UNUSED_CODE -static void write_protect_vgabios(void) -{ - device_t dev; - - printk(BIOS_DEBUG, "write_protect_vgabios\n"); - - dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0); - if (dev) - pci_write_config8(dev, 0x61, 0xaa); - - dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0); - if (dev) - pci_write_config8(dev, 0x61, 0xaa); -} -#endif - -static void vga_random_fixup(device_t dev) -{ - printk(BIOS_DEBUG, "VGA random fixup ...\n"); - pci_write_config8(dev, 0x04, 0x07); - pci_write_config8(dev, 0x0d, 0x20); - pci_write_config32(dev,0x10,0xd8000008); - pci_write_config32(dev,0x14,0xdc000000); -} - -static void vga_enable_console(void) -{ -#if CONFIG_PCI_OPTION_ROM_RUN_REALMODE - /* Call VGA BIOS int10 function 0x4f14 to enable main console - * Epia-M does not always autosense the main console so forcing - * it on is good. - */ - - /* int#, EAX, EBX, ECX, EDX, ESI, EDI */ - realmode_interrupt(0x10, 0x4f14, 0x8003, 0x0001, 0x0000, 0x0000, 0x0000); -#endif -} - -static void vga_init(device_t dev) -{ - vga_random_fixup(dev); - - mainboard_interrupt_handlers(0x15, &via_vt8623_int15_handler); - -#ifdef MEASURE_VGA_INIT_TIME - msr_t clocks1, clocks2, instructions, setup; - - // set up performnce counters for debugging vga init sequence - setup.lo = 0x1c0; // count instructions - wrmsr(0x187,setup); - instructions.hi = 0; - instructions.lo = 0; - wrmsr(0xc2,instructions); - clocks1 = rdmsr(0x10); -#endif - printk(BIOS_DEBUG, "Initializing VGA...\n"); - - pci_dev_init(dev); - - printk(BIOS_DEBUG, "Enable VGA console\n"); - vga_enable_console(); - -#ifdef MEASURE_VGA_INIT_TIME - clocks2 = rdmsr(0x10); - instructions = rdmsr(0xc2); - - printk(BIOS_DEBUG, "Clocks 1 = %08x:%08x\n",clocks1.hi,clocks1.lo); - printk(BIOS_DEBUG, "Clocks 2 = %08x:%08x\n",clocks2.hi,clocks2.lo); - printk(BIOS_DEBUG, "Instructions = %08x:%08x\n",instructions.hi,instructions.lo); -#endif - - pci_write_config32(dev, 0x30, 0); - -#if 0 - /* Set the vga mtrrs - disable for the moment as the add_var_mtrr function has vapourised */ - unsigned long fb; - add_var_mtrr( 0xd0000000 >> 10, 0x08000000>>10, MTRR_TYPE_WRCOMB); - fb = pci_read_config32(dev,0x10); // get the fb address - add_var_mtrr( fb>>10, 8192, MTRR_TYPE_WRCOMB); -#endif -} - -static struct device_operations vga_operations = { - .read_resources = pci_dev_read_resources, - .set_resources = pci_dev_set_resources, - .enable_resources = pci_dev_enable_resources, - .init = vga_init, - .ops_pci = 0, -}; - -static const struct pci_driver vga_driver __pci_driver = { - .ops = &vga_operations, - .vendor = PCI_VENDOR_ID_VIA, - .device = 0x3122, -}; |