diff options
Diffstat (limited to 'src/mainboard/amd/serengeti_leopard/irq_tables.c')
-rw-r--r-- | src/mainboard/amd/serengeti_leopard/irq_tables.c | 58 |
1 files changed, 20 insertions, 38 deletions
diff --git a/src/mainboard/amd/serengeti_leopard/irq_tables.c b/src/mainboard/amd/serengeti_leopard/irq_tables.c index 7eb6c53867..d176d7775b 100644 --- a/src/mainboard/amd/serengeti_leopard/irq_tables.c +++ b/src/mainboard/amd/serengeti_leopard/irq_tables.c @@ -1,39 +1,9 @@ -/*============================================================================ -Copyright 2005 ADVANCED MICRO DEVICES, INC. All Rights Reserved. -This software and any related documentation (the "Materials") are the -confidential proprietary information of AMD. Unless otherwise provided in a -software agreement specifically licensing the Materials, the Materials are -provided in confidence and may not be distributed, modified, or reproduced in -whole or in part by any means. -LIMITATION OF LIABILITY: THE MATERIALS ARE PROVIDED "AS IS" WITHOUT ANY -EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO -WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, TITLE, FITNESS FOR ANY -PARTICULAR PURPOSE, OR WARRANTIES ARISING FROM CONDUCT, COURSE OF DEALING, OR -USAGE OF TRADE. IN NO EVENT SHALL AMD OR ITS LICENSORS BE LIABLE FOR ANY -DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, -BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OF OR -INABILITY TO USE THE MATERIALS, EVEN IF AMD HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME JURISDICTIONS PROHIBIT THE EXCLUSION -OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE -LIMITATION MAY NOT APPLY TO YOU. -AMD does not assume any responsibility for any errors which may appear in the -Materials nor any responsibility to support or update the Materials. AMD -retains the right to modify the Materials at any time, without notice, and is -not obligated to provide such modified Materials to you. -NO SUPPORT OBLIGATION: AMD is not obligated to furnish, support, or make any -further information, software, technical information, know-how, or show-how -available to you. -U.S. GOVERNMENT RESTRICTED RIGHTS: The Materials are provided with "RESTRICTED -RIGHTS." Use, duplication, or disclosure by the Government is subject to the -restrictions as set forth in FAR 52.227-14 and DFAR 252.227-7013, et seq., or -its successor. Use of the Materials by the Government constitutes -acknowledgement of AMD's proprietary rights in them. -============================================================================*/ -// 2005.9 serengeti support -// by yhlu -// -//= +/* 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 , wich BIOS sets up + Documentation at : http://www.microsoft.com/hwdev/busbios/PCIIRQ.HTM +*/ #include <console/console.h> #include <device/pci.h> #include <string.h> @@ -120,7 +90,11 @@ unsigned long write_pirq_routing_table(unsigned long addr) pirq->version = PIRQ_VERSION; pirq->rtr_bus = bus_8111_0; - pirq->rtr_devfn = (4<<3)|0; +#if HT_CHAIN_END_UNITID_BASE < HT_CHAIN_UNITID_BASE + pirq->rtr_devfn = ((2+HT_CHAIN_END_UNITID_BASE-1)<<3)|0; +#else + pirq->rtr_devfn = ((4+HT_CHAIN_UNITID_BASE-1)<<3)|0; +#endif pirq->exclusive_irqs = 0; @@ -136,13 +110,21 @@ unsigned long write_pirq_routing_table(unsigned long addr) pirq_info = (void *) ( &pirq->checksum + 1); slot_num = 0; //pci bridge - write_pirq_info(pirq_info, bus_8111_0, (4<<3)|0, 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0); +#if HT_CHAIN_END_UNITID_BASE < HT_CHAIN_UNITID_BASE + write_pirq_info(pirq_info, bus_8111_0, ((2+HT_CHAIN_END_UNITID_BASE-1)<<3)|0, 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0); +#else + write_pirq_info(pirq_info, bus_8111_0, ((4+HT_CHAIN_UNITID_BASE-1)<<3)|0, 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0); +#endif pirq_info++; slot_num++; //pcix bridge // write_pirq_info(pirq_info, bus_8132_0, (1<<3)|0, 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0); // pirq_info++; slot_num++; //agp bridge - write_pirq_info(pirq_info, bus_8151_0, (1<<3)|0, 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0); +#if SB_HT_CHAIN_UNITID_OFFSET_ONLY == 1 + write_pirq_info(pirq_info, bus_8151_0, (1<<3)|0, 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0); // FIXE: Only do that on SB chain? +#else + write_pirq_info(pirq_info, bus_8151_0, ((1+HT_CHAIN_UNITID_BASE-1)<<3)|0, 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0); // FIXE: Only do that on SB chain +#endif pirq_info++; slot_num++; pirq->size = 32 + 16 * slot_num; |