Submitter | Scott |
---|---|
Date | 2011-02-24 16:42:26 |
Message ID | <2CC455A98CF84BB5AD9067CC4205143C@m3a78> |
Download | mbox | patch |
Permalink | /patch/2691/ |
State | New |
Headers | show |
Comments
Scott Duplichan wrote: > ]> A video option rom needs to be added to support the built-in uma > ]> graphics. > ] > ]Does the default filename match what was extracted from factory EFI? > > I do not know of a way to recover the original filename of the > extracted video BIOS. After booting the factory BIOS, I saved > physical memory range C0000-CFFFF to a file with a made up name. Ahh! And that worked? It doesn't always. The original filename would be discovered by using bios_extract or another similar tool on the factory firmware image. That also doesn't work always, but it's worth a try. > > +++ src/mainboard/asrock/e350m1/dsdt.asl (working copy) > > @@ -23,7 +23,7 @@ > > "DSDT", /* Signature */ > > 0x02, /* DSDT Revision, needs to be 2 for 64bit */ > > "AMD ", /* OEMID */ > > - "PERSIMMO", /* TABLE ID */ > > + "E350M1 ", /* TABLE ID */ > > ]Also change AMD? > Thanks for pointing this out, I changed it. > In the revised patch, I also changed it in mptable.c Nice catch! > +++ src/mainboard/asrock/e350m1/mainboard.c (working copy) .. > @@ -110,6 +110,6 @@ > return 0; > } > struct chip_operations mainboard_ops = { > - CHIP_NAME("AMD PERSIMMON Mainboard") > - .enable_dev = persimmon_enable, > + CHIP_NAME(CONFIG_MAINBOARD_VENDOR " " CONFIG_MAINBOARD_PART_NUMBER " Mainboard") > + .enable_dev = e350m1_enable, Some whitespace on the CHIP_NAME line seems off. After that and if you find something out about the VGA BIOS filename it's Acked-by: Peter Stuge <peter@stuge.se>
Peter wrote:
]Scott Duplichan wrote:
]> ]> A video option rom needs to be added to support the built-in uma
]> ]> graphics.
]> ]
]> ]Does the default filename match what was extracted from factory EFI?
]>
]> I do not know of a way to recover the original filename of the
]> extracted video BIOS. After booting the factory BIOS, I saved
]> physical memory range C0000-CFFFF to a file with a made up name.
]Ahh! And that worked? It doesn't always. The original filename would
]be discovered by using bios_extract or another similar tool on the
]factory firmware image. That also doesn't work always, but it's worth
]a try.
I tried AMIBCP.exe. That is the only tool I have for AMI Aptio UEFI BIOS.
It displays lots of strings, but no filenames. Wonderful UEFI uses GUIDs
internally for option rom tracking.
]> > +++ src/mainboard/asrock/e350m1/dsdt.asl (working copy)
]> > @@ -23,7 +23,7 @@
]> > "DSDT", /* Signature */
]> > 0x02, /* DSDT Revision, needs to be 2 for 64bit */
]> > "AMD ", /* OEMID */
]> > - "PERSIMMO", /* TABLE ID */
]> > + "E350M1 ", /* TABLE ID */
]>
]> ]Also change AMD?
]> Thanks for pointing this out, I changed it.
]> In the revised patch, I also changed it in mptable.c
]
]Nice catch!
]> +++ src/mainboard/asrock/e350m1/mainboard.c (working copy)
]..
]> @@ -110,6 +110,6 @@
]> return 0;
]> }
]> struct chip_operations mainboard_ops = {
]> - CHIP_NAME("AMD PERSIMMON Mainboard")
]> - .enable_dev = persimmon_enable,
]> + CHIP_NAME(CONFIG_MAINBOARD_VENDOR " " CONFIG_MAINBOARD_PART_NUMBER " Mainboard")
]> + .enable_dev = e350m1_enable,
]
]Some whitespace on the CHIP_NAME line seems off. After that and if
]you find something out about the VGA BIOS filename it's
Oops, got it.
Acked-by: Peter Stuge <peter@stuge.se>
On 02/24/11 13:48, Scott Duplichan wrote: > Peter wrote: > > ]Scott Duplichan wrote: > ]> ]> A video option rom needs to be added to support the built-in uma > ]> ]> graphics. > ]> ] > ]> ]Does the default filename match what was extracted from factory EFI? > ]> > ]> I do not know of a way to recover the original filename of the > ]> extracted video BIOS. After booting the factory BIOS, I saved > ]> physical memory range C0000-CFFFF to a file with a made up name. > > ]Ahh! And that worked? It doesn't always. The original filename would > ]be discovered by using bios_extract or another similar tool on the > ]factory firmware image. That also doesn't work always, but it's worth > ]a try. > > I tried AMIBCP.exe. That is the only tool I have for AMI Aptio UEFI BIOS. > It displays lots of strings, but no filenames. Wonderful UEFI uses GUIDs > internally for option rom tracking. > > this EFI bios is using the CSM module so it can use the traditional vBIOS. are there any plans to support this new GOP model they (the EFI guys) are trying to push? > ]> > +++ src/mainboard/asrock/e350m1/dsdt.asl (working copy) > ]> > @@ -23,7 +23,7 @@ > ]> > "DSDT", /* Signature */ > ]> > 0x02, /* DSDT Revision, needs to be 2 for 64bit */ > ]> > "AMD ", /* OEMID */ > ]> > - "PERSIMMO", /* TABLE ID */ > ]> > + "E350M1 ", /* TABLE ID */ > ]> > ]> ]Also change AMD? > ]> Thanks for pointing this out, I changed it. > ]> In the revised patch, I also changed it in mptable.c > ] > ]Nice catch! > > > ]> +++ src/mainboard/asrock/e350m1/mainboard.c (working copy) > ].. > ]> @@ -110,6 +110,6 @@ > ]> return 0; > ]> } > ]> struct chip_operations mainboard_ops = { > ]> - CHIP_NAME("AMD PERSIMMON Mainboard") > ]> - .enable_dev = persimmon_enable, > ]> + CHIP_NAME(CONFIG_MAINBOARD_VENDOR " " CONFIG_MAINBOARD_PART_NUMBER " Mainboard") > ]> + .enable_dev = e350m1_enable, > ] > ]Some whitespace on the CHIP_NAME line seems off. After that and if > ]you find something out about the VGA BIOS filename it's > > Oops, got it. > > Acked-by: Peter Stuge<peter@stuge.se> > > >
Anish Patel wrote: ]this EFI bios is using the CSM module so it can use the traditional vBIOS. ]are there any plans to support this new GOP model they (the EFI guys) ]are trying to push? I like the idea of replacing a 16-bit binary module with 32-bit source code. But I think the use of EFI GOP is still quite limited. All of the UEFI BIOS I have seen from AMI, Insyde, and Phoenix still use CSM to execute the old legacy 16-bit video option rom. The only EFI BIOS I know of that executes video code natively is Apple. Native video code execution probably contributes to Apple's fast boot time. The problem for us is getting the needed source code from the video manufacturer. Thanks, Scott
On 03/10/11 13:36, Scott Duplichan wrote: > Anish Patel wrote: > > ]this EFI bios is using the CSM module so it can use the traditional vBIOS. > ]are there any plans to support this new GOP model they (the EFI guys) > ]are trying to push? > > I like the idea of replacing a 16-bit binary module with 32-bit > source code. But I think the use of EFI GOP is still quite limited. > All of the UEFI BIOS I have seen from AMI, Insyde, and Phoenix still > use CSM to execute the old legacy 16-bit video option rom. The only > EFI BIOS I know of that executes video code natively is Apple. Native > video code execution probably contributes to Apple's fast boot time. > The problem for us is getting the needed source code from the video > manufacturer. > > Thanks, > Scott > > > > Well Intel lets you get to their GOP module with IMGD/EMGD for certain products. They also have this EPOG thingy for their BLDK thing they just built. which apparently is also going to be released for their other procs too.
Anish Patel wrote: >> ]are there any plans to support this new GOP model they (the EFI >> ]guys) are trying to push? >> >> I like the idea of replacing a 16-bit binary module with 32-bit >> source code. .. > Well Intel lets you get to their GOP module with IMGD/EMGD for > certain products. They also have this EPOG thingy for their BLDK > thing they just built. Great. Please send a patch that you have made sure is legal. > which apparently is also going to be released for their other > procs too. Great. Please send patches for those too! //Peter
Patch
Index: src/mainboard/asrock/e350m1/acpi/ssdt2.asl =================================================================== --- src/mainboard/asrock/e350m1/acpi/ssdt2.asl (revision 6375) +++ src/mainboard/asrock/e350m1/acpi/ssdt2.asl (working copy) @@ -17,7 +17,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -DefinitionBlock ("SSDT2.aml", "SSDT", 1, "AMD-FAM10", "AMDACPI", 100925440) +DefinitionBlock ("SSDT2.aml", "SSDT", 1, "AMD-FAM14", "AMDACPI", 100925440) { Scope (_SB) { Index: src/mainboard/asrock/e350m1/acpi/ssdt3.asl =================================================================== --- src/mainboard/asrock/e350m1/acpi/ssdt3.asl (revision 6375) +++ src/mainboard/asrock/e350m1/acpi/ssdt3.asl (working copy) @@ -17,7 +17,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -DefinitionBlock ("SSDT3.aml", "SSDT", 1, "AMD-FAM10", "AMDACPI", 100925440) +DefinitionBlock ("SSDT3.aml", "SSDT", 1, "AMD-FAM14", "AMDACPI", 100925440) { Scope (_SB) { Index: src/mainboard/asrock/e350m1/acpi/ssdt4.asl =================================================================== --- src/mainboard/asrock/e350m1/acpi/ssdt4.asl (revision 6375) +++ src/mainboard/asrock/e350m1/acpi/ssdt4.asl (working copy) @@ -17,7 +17,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -DefinitionBlock ("SSDT4.aml", "SSDT", 1, "AMD-FAM10", "AMDACPI", 100925440) +DefinitionBlock ("SSDT4.aml", "SSDT", 1, "AMD-FAM14", "AMDACPI", 100925440) { Scope (_SB) { Index: src/mainboard/asrock/e350m1/acpi/ssdt5.asl =================================================================== --- src/mainboard/asrock/e350m1/acpi/ssdt5.asl (revision 6375) +++ src/mainboard/asrock/e350m1/acpi/ssdt5.asl (working copy) @@ -18,7 +18,7 @@ */ -DefinitionBlock ("SSDT5.aml", "SSDT", 1, "AMD-FAM10", "AMDACPI", 100925440) +DefinitionBlock ("SSDT5.aml", "SSDT", 1, "AMD-FAM14", "AMDACPI", 100925440) { Scope (_SB) { Index: src/mainboard/asrock/e350m1/devicetree.cb =================================================================== --- src/mainboard/asrock/e350m1/devicetree.cb (revision 6375) +++ src/mainboard/asrock/e350m1/devicetree.cb (working copy) @@ -55,30 +55,46 @@ device pci 14.1 on end # IDE 0x439c device pci 14.2 on end # HDA 0x4383 device pci 14.3 on # LPC 0x439d - chip superio/fintek/f81865f - device pnp 4e.0 off # Floppy + chip superio/winbond/w83627hf + device pnp 2e.0 off # Floppy io 0x60 = 0x3f0 irq 0x70 = 6 drq 0x74 = 2 end - device pnp 4e.3 off end # Parallel Port - device pnp 4e.4 off end # Hardware Monitor - device pnp 4e.5 on # Keyboard - io 0x60 = 0x60 - io 0x62 = 0x64 - irq 0x70 = 1 + device pnp 2e.1 off # Parallel Port + io 0x60 = 0x378 + irq 0x70 = 7 end - device pnp 4e.6 off end # GPIO - device pnp 4e.a off end # PME - device pnp 4e.10 on # COM1 + device pnp 2e.2 on # Com1 io 0x60 = 0x3f8 irq 0x70 = 4 end - device pnp 4e.11 off # COM2 + device pnp 2e.3 off # Com2 io 0x60 = 0x2f8 irq 0x70 = 3 end - end # f81865f + device pnp 2e.5 on # Keyboard + io 0x60 = 0x60 + io 0x62 = 0x64 + irq 0x70 = 1 + irq 0x72 = 12 + end + device pnp 2e.6 off # CIR + io 0x60 = 0x100 + end + device pnp 2e.7 off # GAME_MIDI_GIPO1 + io 0x60 = 0x220 + io 0x62 = 0x300 + irq 0x70 = 9 + end + device pnp 2e.8 off end # GPIO2 + device pnp 2e.9 off end # GPIO3 + device pnp 2e.a off end # ACPI + device pnp 2e.b on # HW Monitor + io 0x60 = 0x290 + irq 0x70 = 5 + end + end end #LPC device pci 14.4 on end # PCI 0x4384 device pci 14.5 on end # USB 2 Index: src/mainboard/asrock/e350m1/dimmSpd.c =================================================================== --- src/mainboard/asrock/e350m1/dimmSpd.c (revision 6375) +++ src/mainboard/asrock/e350m1/dimmSpd.c (working copy) @@ -34,8 +34,8 @@ { // socket 0 { - {0xA0, 0xA2}, // channel 0 dimms - {0xA4, 0xA8}, // channel 1 dimms + {0xA0, 0xA4}, // channel 0 dimms + {0x00, 0x00}, // channel 1 dimms }, // socket 1 { Index: src/mainboard/asrock/e350m1/dsdt.asl =================================================================== --- src/mainboard/asrock/e350m1/dsdt.asl (revision 6375) +++ src/mainboard/asrock/e350m1/dsdt.asl (working copy) @@ -22,8 +22,8 @@ "DSDT.AML", /* Output filename */ "DSDT", /* Signature */ 0x02, /* DSDT Revision, needs to be 2 for 64bit */ - "AMD ", /* OEMID */ - "PERSIMMO", /* TABLE ID */ + "ASROCK", /* OEMID */ + "E350M1 ", /* TABLE ID */ 0x00010001 /* OEM Revision */ ) { /* Start of ASL file */ Index: src/mainboard/asrock/e350m1/Kconfig =================================================================== --- src/mainboard/asrock/e350m1/Kconfig (revision 6375) +++ src/mainboard/asrock/e350m1/Kconfig (working copy) @@ -17,7 +17,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -if BOARD_AMD_PERSIMMON +if BOARD_ASROCK_E350M1 config BOARD_SPECIFIC_OPTIONS # dummy def_bool y @@ -28,7 +28,7 @@ select NORTHBRIDGE_AMD_AGESA_WRAPPER_FAMILY14_ROOT_COMPLEX select NORTHBRIDGE_AMD_AGESA_WRAPPER_FAMILY14 select SOUTHBRIDGE_AMD_CIMX_WRAPPER_SB800 - select SUPERIO_FINTEK_F81865F + select SUPERIO_WINBOND_W83627HF select BOARD_HAS_FADT select HAVE_BUS_CONFIG select HAVE_OPTION_TABLE @@ -56,7 +56,7 @@ config MAINBOARD_DIR string - default amd/persimmon + default asrock/e350m1 config APIC_ID_OFFSET hex @@ -64,7 +64,7 @@ config MAINBOARD_PART_NUMBER string - default "Persimmon" + default "E350M1" config HW_MEM_HOLE_SIZEK hex @@ -132,16 +132,15 @@ config SIO_PORT hex - default 0x4e + default 0x2e config ONBOARD_VGA_IS_PRIMARY bool default y -#define CONFIG_VGA_BIOS_ID "1002,9804" config VGA_BIOS_ID string - default "1002,9804" + default "1002,9802" config DRIVERS_PS2_KEYBOARD bool @@ -151,5 +150,5 @@ bool default n -endif # BOARD_AMD_PERSIMMON +endif # BOARD_ASROCK_E350M1 Index: src/mainboard/asrock/e350m1/mainboard.c =================================================================== --- src/mainboard/asrock/e350m1/mainboard.c (revision 6375) +++ src/mainboard/asrock/e350m1/mainboard.c (working copy) @@ -49,11 +49,11 @@ uint64_t uma_memory_base, uma_memory_size; /************************************************* -* enable the dedicated function in persimmon board. +* enable the dedicated function in e350m1 board. *************************************************/ -static void persimmon_enable(device_t dev) +static void e350m1_enable(device_t dev) { - printk(BIOS_INFO, "Mainboard Persimmon Enable. dev=0x%p\n", dev); + printk(BIOS_INFO, "Mainboard " CONFIG_MAINBOARD_PART_NUMBER " Enable.\n"); #if (CONFIG_GFXUMA == 1) msr_t msr, msr2; uint32_t sys_mem; @@ -110,6 +110,6 @@ return 0; } struct chip_operations mainboard_ops = { - CHIP_NAME("AMD PERSIMMON Mainboard") - .enable_dev = persimmon_enable, + CHIP_NAME(CONFIG_MAINBOARD_VENDOR " " CONFIG_MAINBOARD_PART_NUMBER " Mainboard") + .enable_dev = e350m1_enable, }; Index: src/mainboard/asrock/e350m1/mptable.c =================================================================== --- src/mainboard/asrock/e350m1/mptable.c (revision 6375) +++ src/mainboard/asrock/e350m1/mptable.c (working copy) @@ -50,7 +50,7 @@ mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); mptable_init(mc, LAPIC_ADDR); - memcpy(mc->mpc_oem, "AMD ", 8); + memcpy(mc->mpc_oem, "ASROCK ", 8); smp_write_processors(mc); Index: src/mainboard/asrock/e350m1/romstage.c =================================================================== --- src/mainboard/asrock/e350m1/romstage.c (revision 6375) +++ src/mainboard/asrock/e350m1/romstage.c (working copy) @@ -31,16 +31,16 @@ #include <console/loglevel.h> #include "agesawrapper.h" #include "cpu/x86/bist.h" -#include "superio/fintek/f81865f/f81865f_early_serial.c" +#include "superio/winbond/w83627hf/early_serial.c" #include "cpu/x86/lapic/boot_cpu.c" #include "pc80/i8254.c" +#define SERIAL_DEV PNP_DEV(0x2e, W83627HF_SP1) #include "pc80/i8259.c" #include "SbEarly.h" #include "SBPLATFORM.h" void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx); -#define SERIAL_DEV PNP_DEV(0x4e, F81865F_SP1) void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx) { @@ -52,7 +52,7 @@ sb_poweron_init(); post_code(0x31); - f81865f_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); + w83627hf_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); uart_init(); console_init(); } Index: src/mainboard/asrock/Kconfig =================================================================== --- src/mainboard/asrock/Kconfig (revision 6380) +++ src/mainboard/asrock/Kconfig (working copy) @@ -23,10 +23,12 @@ config BOARD_ASROCK_939A785GMH bool "939A785GMH/128M" +config BOARD_ASROCK_E350M1 + bool "E350M1" endchoice -source "src/mainboard/asrock/939a785gmh/Kconfig" +source "src/mainboard/asrock/e350m1/Kconfig" config MAINBOARD_VENDOR string