Patchwork ASRock E350M1 update

login
register
about
Submitter Scott
Date 2011-05-20 06:04:39
Message ID <71770C804BF1478782F3FFD7741E8CA0@asusp67>
Download mbox | patch
Permalink /patch/2977/
State Accepted
Headers show

Comments

Scott - 2011-05-20 06:04:39
The attached changes for the ASRock E350M1 board improve OS support and
reduce boot time. DOS boot from SSD drive takes 690 ms. Windows 7,
Windows XP, and linux can install from DVD and boot from hard disk.

Signed-off-by: Scott Duplichan <scott@notabs.org>

OS install test:
Using SeaBIOS 0.6.2 plus AHCI patch,
http://comments.gmane.org/gmane.comp.bios.coreboot.seabios/1663.

Windows XP SP3 X86
    Tested with revision 6600 plus attached patches (removed rev 6579 AHCI
enable).
    Setup from CD-ROM: pass.
    Install latest graphics driver 11-5_xp32_dd_ccc_ocl.exe: 8.850.0.0
(4/19/2011): pass. 
Win7 Ultimate x64 SP1
    Tested with revision 6600 plus attached patches.
    Setup from DVD: pass.
    Install latest graphics driver 11-5_vista64_win7_64_dd_ccc_ocl.exe:
8.850.0.0 (4/19/2011): pass. 
Ubuntu 11.04 beta
 
http://mirror.anl.gov/pub/ubuntu-iso/DVDs/ubuntu/natty/beta-2/ubuntu-11.04-b
eta2-dvd-amd64.iso
    Tested with revision 6600 plus attached patches.
    Setup from DVD: pass.

Thanks,
Scott
1) Make fadt revision match its length. Solves Windows 7 checked build assert.

Signed-off-by: Scott Duplichan <scott@notabs.org>
1) Declare RTC as not PIIX4 compatible to match AMD hardware.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Declare legacy video frame buffer so that Windows generic VGA driver will work.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Remove some non-essential agesa options to reduce boot time.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Fix memory allocation problem in amdInitLate. Disabled until further debug.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Enable rom cache early to reduce boot time.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Update gpp port configuration.

Signed-off-by: Scott Duplichan <scott@notabs.org>
1) Remove unused kconfig options.
2) Correct UMA graphics PCI device ID.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Cosmetic changes.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Skip memory clear for boot time reduction. Memory clear is not required for non-ECC boards.

Signed-off-by: Scott Duplichan <scott@notabs.org>

Move the ACPI FACP table to the front of the RSDT list. This is done to work around a Windows XP or Server 2003 setup failure where an error message such as: "An unexpected error (805262864) occurred at line 1768 of d:\xpclient\base\boot\setup\arcdisp.c" occurs.

Signed-off-by: Scott Duplichan <scott@notabs.org>
1) Set I/O APIC ID according to BKDG recommendation
2) Correct I/O APIC ID reported by mptable

Signed-off-by: Scott Duplichan <scott@notabs.org>
1) Use D18F1xF4 VGA Enable to simplify legacy video I/O support.
2) Extend PCI MMIO limit from dfffffff to fecfffff.
3) Add AMD recommended non-posted mapping for SB800 legacy devices.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Size mmconf according to CONFIG_MMCONF_BUS_NUMBER.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Move mmconf base from e0000000 to f8000000 to avoid conflict with UMA BAR.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Enable 33 MHz fast mode SPI read early to reduce boot time.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Switch processor cores to pstate 0 early to reduce boot time.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Enable SPI cacheline prefetch early to reduce boot time.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Move SB800 clock init earlier to fix problem where initial serial port
output is garbled.

Signed-off-by: Scott Duplichan <scott@notabs.org>
Marc Jones - 2011-06-02 16:03:11
Hi Scott,

i have not forgotten about these. I'll try to get to these this week.

Marc


On Fri, May 20, 2011 at 12:04 AM, Scott Duplichan <scott@notabs.org> wrote:
> The attached changes for the ASRock E350M1 board improve OS support and
> reduce boot time. DOS boot from SSD drive takes 690 ms. Windows 7,
> Windows XP, and linux can install from DVD and boot from hard disk.
>
> Signed-off-by: Scott Duplichan <scott@notabs.org>
>
> OS install test:
> Using SeaBIOS 0.6.2 plus AHCI patch,
> http://comments.gmane.org/gmane.comp.bios.coreboot.seabios/1663.
>
> Windows XP SP3 X86
>    Tested with revision 6600 plus attached patches (removed rev 6579 AHCI
> enable).
>    Setup from CD-ROM: pass.
>    Install latest graphics driver 11-5_xp32_dd_ccc_ocl.exe: 8.850.0.0
> (4/19/2011): pass.
> Win7 Ultimate x64 SP1
>    Tested with revision 6600 plus attached patches.
>    Setup from DVD: pass.
>    Install latest graphics driver 11-5_vista64_win7_64_dd_ccc_ocl.exe:
> 8.850.0.0 (4/19/2011): pass.
> Ubuntu 11.04 beta
>
> http://mirror.anl.gov/pub/ubuntu-iso/DVDs/ubuntu/natty/beta-2/ubuntu-11.04-b
> eta2-dvd-amd64.iso
>    Tested with revision 6600 plus attached patches.
>    Setup from DVD: pass.
>
> Thanks,
> Scott
>
> --
> coreboot mailing list: coreboot@coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
>
mbuschman@lucidmachines.com - 2011-06-07 03:26:44
Marc:

After taking a quick look through the git log, it looks like we've 
probably applied all of the patches you mentioned to me besides these:

"Move SB800 clock init earlier to fix problem where initial serial port 
output is garbled."
"Skip memory clear for boot time reduction. Memory clear is not required 
for non-ECC boards."

I'd confirm manually, but I don't know where to find the actual patches.

Thanks!
-Marshall

On 06/02/2011 11:03 AM, Marc Jones wrote:
> Hi Scott,
>
> i have not forgotten about these. I'll try to get to these this week.
>
> Marc
>
>
> On Fri, May 20, 2011 at 12:04 AM, Scott Duplichan<scott@notabs.org>  wrote:
>> The attached changes for the ASRock E350M1 board improve OS support and
>> reduce boot time. DOS boot from SSD drive takes 690 ms. Windows 7,
>> Windows XP, and linux can install from DVD and boot from hard disk.
>>
>> Signed-off-by: Scott Duplichan<scott@notabs.org>
>>
>> OS install test:
>> Using SeaBIOS 0.6.2 plus AHCI patch,
>> http://comments.gmane.org/gmane.comp.bios.coreboot.seabios/1663.
>>
>> Windows XP SP3 X86
>>     Tested with revision 6600 plus attached patches (removed rev 6579 AHCI
>> enable).
>>     Setup from CD-ROM: pass.
>>     Install latest graphics driver 11-5_xp32_dd_ccc_ocl.exe: 8.850.0.0
>> (4/19/2011): pass.
>> Win7 Ultimate x64 SP1
>>     Tested with revision 6600 plus attached patches.
>>     Setup from DVD: pass.
>>     Install latest graphics driver 11-5_vista64_win7_64_dd_ccc_ocl.exe:
>> 8.850.0.0 (4/19/2011): pass.
>> Ubuntu 11.04 beta
>>
>> http://mirror.anl.gov/pub/ubuntu-iso/DVDs/ubuntu/natty/beta-2/ubuntu-11.04-b
>> eta2-dvd-amd64.iso
>>     Tested with revision 6600 plus attached patches.
>>     Setup from DVD: pass.
>>
>> Thanks,
>> Scott
>>
>> --
>> coreboot mailing list: coreboot@coreboot.org
>> http://www.coreboot.org/mailman/listinfo/coreboot
>>
>
>
Scott - 2011-06-07 04:56:52
Marshall Buschman wrote:

]Marc:
]
]After taking a quick look through the git log, it looks like we've 
]probably applied all of the patches you mentioned to me besides these:
]
]"Move SB800 clock init earlier to fix problem where initial serial port 
]output is garbled."
]"Skip memory clear for boot time reduction. Memory clear is not required 
]for non-ECC boards."
]
]I'd confirm manually, but I don't know where to find the actual patches.
]
]Thanks!
]-Marshall

Hello Marshall and Marc,

Thanks for committing these patches. The two mentioned above are
items "17-early-serial-fix.patch" and "skip-memclr.patch" from 
this set:
http://permalink.gmane.org/gmane.linux.bios/66598

Thanks,
Scott

Patch

Index: src/mainboard/asrock/e350m1/romstage.c
===================================================================
--- src/mainboard/asrock/e350m1/romstage.c	(revision 6584)
+++ src/mainboard/asrock/e350m1/romstage.c	(revision 6585)
@@ -50,6 +50,21 @@ 
   // all cores: set pstate 0 (1600 MHz) early to save a few ms of boot time
   __writemsr (0xc0010062, 0);
 
+  if (boot_cpu())
+    {
+    u8 reg8;
+    // SB800: program AcpiMmioEn to enable MMIO access to MiscCntrl register
+    outb(0x24, 0xCD6);
+    reg8 = inb(0xCD7);
+    reg8 |= 1;
+    reg8 &= ~(1 << 1);
+    outb(reg8, 0xCD7);
+  
+    // program SB800 MiscCntrl
+    *(volatile u32 *)(0xFED80000+0xE00+0x40) &= ~((1 << 0) | (1 << 2)); /* 48Mhz */
+    *(volatile u32 *)(0xFED80000+0xE00+0x40) |= 1 << 1; /* 48Mhz */
+    }
+
   // early enable of PrefetchEnSPIFromHost
   if (boot_cpu())
     {
@@ -78,18 +93,7 @@ 
     f81865f_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE);
     console_init();
   }
-	//reg8 = pmio_read(0x24);
-  outb(0x24, 0xCD6);
-  reg8 = inb(0xCD7);
-	reg8 |= 1;
-	reg8 &= ~(1 << 1);
-	//pmio_write(0x24, reg8);
-	outb(0x24, 0xCD6);
-	outb(reg8, 0xCD7);
 
-	*(volatile u32 *)(0xFED80000+0xE00+0x40) &= ~((1 << 0) | (1 << 2)); /* 48Mhz */
-	*(volatile u32 *)(0xFED80000+0xE00+0x40) |= 1 << 1; /* 48Mhz */
-
   /* Halt if there was a built in self test failure */
   post_code(0x34);
   report_bist_failure(bist);