Board:asus/a8v-e se

From coreboot
Revision as of 22:55, 5 December 2007 by Ruik (talk | contribs) (Just some hacktext ACPI)
Jump to: navigation, search

The wiki is being retired!

Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to Contributions welcome!


Device/functionality Status Comments
CPU works OK I'm using an AMD Opteron 175 Dual Core Processor, both cores do work, Opteron 144 worked too.
L1 cache enabled Unknown
L2 cache enabled Unknown
L3 cache enabled Unknown
Multiple CPU support Unknown
Multi-core support Unknown
Hardware virtualization Unknown
DDR OK Works with patches I posted to the list.
DDR2 Unknown
DDR3 Unknown
Dual channel support OK According to memtest86+ it works.
ECC support Unknown
On-board Hardware
On-board IDE 3.5" OK
On-board IDE 2.5" N/A
On-board SATA OK
On-board SCSI Unknown
On-board USB OK Tested: USB thumb drive.
On-board VGA N/A
On-board Ethernet OK
On-board Audio OK
On-board Modem N/A
On-board FireWire Unknown
On-board Smartcard reader N/A
On-board CompactFlash Unknown
On-board PCMCIA Unknown
On-board Wifi N/A
On-board Bluetooth N/A
On-board SD card reader N/A
Add-on slots/cards
ISA add-on cards N/A
Audio/Modem-Riser (AMR/CNR) cards Unknown
PCI add-on cards OK
Mini-PCI add-on cards Unknown
Mini-PCI-Express add-on cards Unknown
PCI-X add-on cards Unknown
AGP graphics cards N/A
PCI Express x1 add-on cards OK
PCI Express x2 add-on cards N/A
PCI Express x4 add-on cards N/A
PCI Express x8 add-on cards N/A
PCI Express x16 add-on cards OK Graphics card works.
PCI Express x32 add-on cards N/A
HTX add-on cards N/A
Legacy / Super I/O
Floppy Untested
Serial port 1 (COM1) OK
Serial port 2 (COM2) N/A
Parallel port Untested Doing modprobe parport parport_pc works, but no further tests were done.
PS/2 keyboard OK
PS/2 mouse OK
Game port Unknown
Infrared Unknown
PC speaker Unknown
DiskOnChip N/A
Trackpoint N/A
Touchpad N/A
Fn Hotkeys N/A
Fingerprint Reader N/A
Docking VGA N/A
Docking LAN N/A
Docking USB N/A
Docking Audio N/A
Docking Displayport N/A
Thinklight N/A
Webcam N/A
Sensors / fan control OK
Hardware watchdog Unknown
SMBus Unknown
CAN bus N/A
CPU frequency scaling OK All you need is to patch the DSDT table with your CPU performance state settings.
Other powersaving features Unknown
ACPI OK ACPI power button event works.
Reboot OK
Poweroff OK
Suspend Unknown
Nonstandard LEDs Unknown TODO: Are there special-purpose LEDs on this board?
High precision event timers (HPET) OK
Random number generator (RNG) Unknown
Wake on modem ring Unknown
Wake on LAN Unknown
Wake on keyboard Unknown
Wake on mouse Unknown
TPM Unknown
Flashrom OK


Please have a look to files in the src/mainboard/asus/a8v-e_se. Check also the [ ] which contains the specification.

Setup hardware

Setup the PMIO base address to some known address, and setup the desired ACPI IRQ (usually IRQ9). Sometimes it is called SCI interrupt.


Now you will need to create an ACPI table which describes the I/O port location for kernel ACPI implementation. This is the FACP table. You will need to create the fadt.c file and fill in the IO port values plus IRQ:

fadt->sci_int = 9;
fadt->pm1a_evt_blk = VT8237R_ACPI_IO_BASE;
fadt->pm1b_evt_blk = 0x0;
fadt->pm1a_cnt_blk = VT8237R_ACPI_IO_BASE + 0x4;
fadt->pm1b_cnt_blk = 0x0;
fadt->pm2_cnt_blk = 0x0;
fadt->pm_tmr_blk = VT8237R_ACPI_IO_BASE + 0x8;
fadt->gpe0_blk = VT8237R_ACPI_IO_BASE + 0x20;
fadt->gpe1_blk = 0x0;

In this example the ACPI IRQ is 9, and the PM1A event block start at VT8237R_ACPI_IO_BASE. You may obtain some values from cat /proc/ioport if running with proprietary BIOS. Not all blocks are necessary usually only PM1A PMTMR and GPE0 are used. Please note that this table has the IO port information stored twice using different formats. Please consult the ACPI specification for details, mostly could be used what are the defaults in the fadt.c


The DSDT table contains a bytecode that is executed by driver in the kernel. This table stores also ACPI routing information in _PRT methods. You may add those _PRT methods later.

Very generic DSDT table would look like in similar way how it is ASUS A8V-E

        Scope (\_PR)
                Processor (\_PR.CPU0, 0x00, 0x000000, 0x00) {}
                Processor (\_PR.CPU1, 0x01, 0x000000, 0x00) {}

This is here for compatibility. More interresting is:

        /* 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 })

This defines the SLP_TYP fields in PM1A register. In my case I need to store 010 to perform soft off. And 000 to wakeup. Modify it to fit your chipset needs. Rest of the files is quite generic, except the _PRT methods which define the routing.

     Package (0x04) { 0x000BFFFF, 0x00, 0x00, 0x10 }, //slot 0xB
     Package (0x04) { 0x000BFFFF, 0x01, 0x00, 0x11 },
     Package (0x04) { 0x000BFFFF, 0x02, 0x00, 0x12 },
     Package (0x04) { 0x000BFFFF, 0x03, 0x00, 0x13 },

This defines the slot 0xB (all functions FFFF) routing as follows :


You may also just state just one state/function:

Package (0x04) { 0x000F0001, 0x00, 0x00, 0x14 }, //0xf NAtive IDE IRQ 20

This means 0:0f.1 INTA is routed to IRQ20.

Please note that the 0x10, 0x11 are called GSI (global system interrupt). All your interrupts routed through first APIC will start with 0x00, second APIC will perhaps start at IRQ24 etc etc...

       /* Root of the bus hierarchy */
       Scope (\_SB)
               /* top PCI device */
               Device (PCI0)
                       Name (_HID, EisaId ("PNP0A03"))
                       Name (_ADR, 0x00)
                       Name (_UID, 0x00)
                       Name (_BBN, 0x00)


1. Create MADT table