Patchwork tinybootblock for AMD K8 and Asus M2V-MX SE

login
register
about
Submitter Rudolf Marek
Date 2010-01-04 22:23:16
Message ID <4B426A54.8050009@assembler.cz>
Download mbox | patch
Permalink /patch/732/
State Accepted
Headers show

Comments

Rudolf Marek - 2010-01-04 22:23:16
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

Thanks to Patrick we have now support for the tiny bootblock for Asus M2V-MX SE
which has K8 CAR. It was pretty straightforward!

Signed-off-by: Rudolf Marek <r.marek@assembler.cz>


Thanks,
Rudolf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAktCalQACgkQ3J9wPJqZRNUo6gCfSxVvazoE9zwgBRa9u/6nc2eR
E+MAoNuAwhj5fCU7MWF3UtnIKqLBBu3/
=yYLs
-----END PGP SIGNATURE-----
Stefan Reinauer - 2010-01-04 22:54:02
On 1/4/10 11:23 PM, Rudolf Marek wrote:
> Hello,
>
> Thanks to Patrick we have now support for the tiny bootblock for Asus
> M2V-MX SE
> which has K8 CAR. It was pretty straightforward!
>
> Signed-off-by: Rudolf Marek <r.marek@assembler.cz>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
Peter Stuge - 2010-01-05 03:05:03
Rudolf Marek wrote:
> +++ src/arch/i386/Makefile.tinybootblock.inc	(working copy)
> @@ -24,12 +24,20 @@
>  bootblock_lds += $(src)/cpu/x86/16bit/entry16.lds
>  bootblock_lds += $(src)/cpu/x86/16bit/reset16.lds
>  bootblock_lds += $(src)/arch/i386/lib/id.lds
> +ifeq ($(CONFIG_SOUTHBRIDGE_VIA_K8T890),y)
> +bootblock_lds += $(src)/southbridge/via/k8t890/romstrap.lds
> +endif
..
> +
> +ifeq ($(CONFIG_SOUTHBRIDGE_VIA_K8T890),y)
> +bootblock_inc += $(src)/southbridge/via/k8t890/romstrap.inc
> +endif
> +

Could these hunks go into a Makefile under southbridge/via/k8t890/
and become unconditional?

Lovely!

Acked-by: Peter Stuge <peter@stuge.se>
Patrick Georgi - 2010-01-05 10:09:10
Am 05.01.2010 04:05, schrieb Peter Stuge:
> Could these hunks go into a Makefile under southbridge/via/k8t890/
> and become unconditional?
>   
That's the plan - we just don't have the infrastructure for it yet.


Patrick

Patch

Index: src/cpu/amd/car/cache_as_ram.inc
===================================================================
--- src/cpu/amd/car/cache_as_ram.inc	(revision 4996)
+++ src/cpu/amd/car/cache_as_ram.inc	(working copy)
@@ -264,7 +264,14 @@ 
 	 */
 	movl	$0x202, %ecx
 	xorl	%edx, %edx
-	movl	$(CONFIG_XIP_ROM_BASE | MTRR_TYPE_WRBACK), %eax
+
+#if defined(CONFIG_TINY_BOOTBLOCK) && CONFIG_TINY_BOOTBLOCK
+#define REAL_XIP_ROM_BASE AUTO_XIP_ROM_BASE
+#else
+#define REAL_XIP_ROM_BASE CONFIG_XIP_ROM_BASE
+#endif
+       movl    $REAL_XIP_ROM_BASE, %eax
+       orl     $MTRR_TYPE_WRBACK, %eax
 	wrmsr
 
 	movl	$0x203, %ecx
Index: src/mainboard/asus/m2v-mx_se/Kconfig
===================================================================
--- src/mainboard/asus/m2v-mx_se/Kconfig	(revision 4996)
+++ src/mainboard/asus/m2v-mx_se/Kconfig	(working copy)
@@ -35,6 +35,8 @@ 
 	select HAVE_ACPI_TABLES
 	select BOARD_ROMSIZE_KB_512
 	select VGA
+	select TINY_BOOTBLOCK
+	select HAVE_MAINBOARD_RESOURCES
 
 config MAINBOARD_DIR
 	string
Index: src/mainboard/asus/m2v-mx_se/Makefile.inc
===================================================================
--- src/mainboard/asus/m2v-mx_se/Makefile.inc	(revision 4996)
+++ src/mainboard/asus/m2v-mx_se/Makefile.inc	(working copy)
@@ -30,20 +30,12 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0-y += ../../../../src/cpu/x86/16bit/entry16.inc
-crt0-y += ../../../../src/southbridge/via/k8t890/romstrap.inc
 crt0-y += ../../../../src/cpu/x86/32bit/entry32.inc
-crt0-y += ../../../../src/cpu/x86/16bit/reset16.inc
-crt0-y += ../../../../src/arch/i386/lib/id.inc
 crt0-y += ../../../../src/cpu/amd/car/cache_as_ram.inc
 crt0-y += auto.inc
 
 ldscript-y += ../../../../src/arch/i386/init/ldscript_fallback_cbfs.lb
-ldscript-y += ../../../../src/cpu/x86/16bit/entry16.lds
-ldscript-y += ../../../../src/southbridge/via/k8t890/romstrap.lds
-ldscript-y += ../../../../src/cpu/x86/16bit/reset16.lds
-ldscript-y += ../../../../src/arch/i386/lib/id.lds
-ldscript-y += ../../../../src/arch/i386/lib/failover.lds
+ldscript-y += ../../../../src/cpu/x86/32bit/entry32.lds
 
 ifdef POST_EVALUATION
 
Index: src/arch/i386/Makefile.tinybootblock.inc
===================================================================
--- src/arch/i386/Makefile.tinybootblock.inc	(revision 4996)
+++ src/arch/i386/Makefile.tinybootblock.inc	(working copy)
@@ -24,12 +24,20 @@ 
 bootblock_lds += $(src)/cpu/x86/16bit/entry16.lds
 bootblock_lds += $(src)/cpu/x86/16bit/reset16.lds
 bootblock_lds += $(src)/arch/i386/lib/id.lds
+ifeq ($(CONFIG_SOUTHBRIDGE_VIA_K8T890),y)
+bootblock_lds += $(src)/southbridge/via/k8t890/romstrap.lds
+endif
 
 bootblock_inc := $(src)/arch/i386/init/bootblock_prologue.c
 bootblock_inc += $(src)/cpu/x86/16bit/entry16.inc
 bootblock_inc += $(src)/cpu/x86/16bit/reset16.inc
 bootblock_inc += $(src)/cpu/x86/32bit/entry32.inc
 bootblock_inc += $(src)/arch/i386/lib/id.inc
+
+ifeq ($(CONFIG_SOUTHBRIDGE_VIA_K8T890),y)
+bootblock_inc += $(src)/southbridge/via/k8t890/romstrap.inc
+endif
+
 ifeq ($(CONFIG_SSE),y)
 bootblock_inc += $(src)/cpu/x86/sse_enable.inc
 endif
@@ -67,13 +75,13 @@ 
 # Build the romstage
 $(obj)/coreboot.romstage: $(obj)/coreboot.pre1 $(initobjs) $(obj)/romstage/ldscript.ld
 	@printf "    LINK       $(subst $(obj)/,,$(@))\n"
-	printf "CONFIG_ROMBASE = 0x0;\n" > $(obj)/location.ld
+	printf "CONFIG_ROMBASE = 0x0;\nAUTO_XIP_ROM_BASE = 0x0;\n" > $(obj)/location.ld
 	$(CC) -nostdlib -nostartfiles -static -o $(obj)/romstage.elf -L$(obj) -T $(obj)/romstage/ldscript.ld $(initobjs)
 	$(OBJCOPY) -O binary $(obj)/romstage.elf $(obj)/romstage.bin
 	printf "CONFIG_ROMBASE = 0x" > $(obj)/location.ld
 	$(CBFSTOOL) $(obj)/coreboot.pre1 locate $(obj)/romstage.bin fallback/romstage $(CONFIG_XIP_ROM_SIZE) > $(obj)/location.txt
 	cat $(obj)/location.txt >> $(obj)/location.ld
-	printf ";\n" >> $(obj)/location.ld
+	printf ';\nAUTO_XIP_ROM_BASE = CONFIG_ROMBASE & ~(CONFIG_XIP_ROM_SIZE - 1);\n' >> $(obj)/location.ld
 	$(CC) -nostdlib -nostartfiles -static -o $(obj)/romstage.elf -L$(obj) -T $(obj)/romstage/ldscript.ld $(initobjs)
 	$(NM) -n $(obj)/romstage.elf | sort > $(obj)/romstage.map
 	$(OBJCOPY) -O binary $(obj)/romstage.elf $@