diff options
author | Zheng Bao <zheng.bao@amd.com> | 2010-03-16 01:42:50 +0000 |
---|---|---|
committer | Zheng Bao <Zheng.Bao@amd.com> | 2010-03-16 01:42:50 +0000 |
commit | dec279fa300243bc3c5afe039a5ff6f1fc3264de (patch) | |
tree | 5c6237726610ac9f493759c522636ca17b5cdcd7 /src/mainboard/amd/mahogany/acpi/globutil.asl | |
parent | 1088bbff4503df7e8507aae45da823268262ca8f (diff) |
1. Features of mahogany.
The code can run on the Mahogany board, which is one of sample boards
made by AMD. Its major features are:
CPU (only K8 system):
* AMD AM2+
* AMD Athlon 64 x2
* AMD Athlon 64 FX
* AMD Athlon 64
* AMD Sempron CPUs
System Chipset:
* RS780E
* SB700
On Board Chipset:
* BIOS - SPI
* Azalia CODEC - Realtek ALC888
* LPC SuperIO - ITE8718F(GX).
* LAN - REALTEK 8111C
* TPM - SLB9635TT1.2
Main Memory:
* DDR II * 4 (Max 4GB)
Expansion Slots:
* PCI Express X16 slot*2 (PCI-E X8 Bus)
* PCI Express X4 Slot*1
Intersil PWM:
* Controller - Intersil 6323
2. The ACPI feature is already added. I suggest that firstly we can test
the board without the ACPI by setting the HAVE_ACPI_TABLE as 0.
With Rev F processor, the HT link can only work in HT1, whose max
frequency is 1GHz.
Signed-off-by: Zheng Bao <zheng.bao@amd.com>
Acked-by: Marc Jones <marcj303@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5220 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/mainboard/amd/mahogany/acpi/globutil.asl')
-rw-r--r-- | src/mainboard/amd/mahogany/acpi/globutil.asl | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/src/mainboard/amd/mahogany/acpi/globutil.asl b/src/mainboard/amd/mahogany/acpi/globutil.asl new file mode 100644 index 0000000000..782fab28e4 --- /dev/null +++ b/src/mainboard/amd/mahogany/acpi/globutil.asl @@ -0,0 +1,118 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2010 Advanced Micro Devices, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* +Scope(\_SB) { + #include "globutil.asl" +} +*/ + +/* string compare functions */ +Method(MIN, 2) +{ + if (LLess(Arg0, Arg1)) { + Return(Arg0) + } else { + Return(Arg1) + } +} + +Method(SLEN, 1) +{ + Store(Arg0, Local0) + Return(Sizeof(Local0)) +} + +Method(S2BF, 1) +{ + Add(SLEN(Arg0), One, Local0) + Name(BUFF, Buffer(Local0) {}) + Store(Arg0, BUFF) + Return(BUFF) +} + +/* Strong string compare. Checks both length and content */ +Method(SCMP, 2) +{ + Store(S2BF(Arg0), Local0) + Store(S2BF(Arg1), Local1) + Store(Zero, Local4) + Store(SLEN(Arg0), Local5) + Store(SLEN(Arg1), Local6) + Store(MIN(Local5, Local6), Local7) + + While(LLess(Local4, Local7)) { + Store(Derefof(Index(Local0, Local4)), Local2) + Store(Derefof(Index(Local1, Local4)), Local3) + if (LGreater(Local2, Local3)) { + Return(One) + } else { + if (LLess(Local2, Local3)) { + Return(Ones) + } + } + Increment(Local4) + } + if (LLess(Local4, Local5)) { + Return(One) + } else { + if (LLess(Local4, Local6)) { + Return(Ones) + } else { + Return(Zero) + } + } +} + +/* Weak string compare. Checks to find Arg1 at beginning of Arg0. +* Fails if length(Arg0) < length(Arg1). Returns 0 on Fail, 1 on +* Pass. +*/ +Method(WCMP, 2) +{ + Store(S2BF(Arg0), Local0) + Store(S2BF(Arg1), Local1) + if (LLess(SLEN(Arg0), SLEN(Arg1))) { + Return(0) + } + Store(Zero, Local2) + Store(SLEN(Arg1), Local3) + + While(LLess(Local2, Local3)) { + if (LNotEqual(Derefof(Index(Local0, Local2)), + Derefof(Index(Local1, Local2)))) { + Return(0) + } + Increment(Local2) + } + Return(One) +} + +/* ARG0 = IRQ Number(0-15) +* Returns Bit Map +*/ +Method(I2BM, 1) +{ + Store(0, Local0) + if (LNotEqual(ARG0, 0)) { + Store(1, Local1) + ShiftLeft(Local1, ARG0, Local0) + } + Return(Local0) +} |