Patchwork Coreboot fails to initialize on ASUS A8V-E SE

login
register
about
Submitter Myles Watson
Date 2009-12-14 17:19:06
Message ID <2831fecf0912140919i12d1ceb5rb5106ed300775da4@mail.gmail.com>
Download mbox | patch
Permalink /patch/650/
State Accepted
Headers show

Comments

Myles Watson - 2009-12-14 17:19:06
On Mon, Dec 14, 2009 at 4:03 AM, Knut Kujat <knuku@gap.upv.es> wrote:
> Myles Watson escribió:
>>
>> I made it compile and it worked I get till filo payload after that it
>> stucks because:
>> Error 18: Selected cylinder exceeds maximum supported by BIOS
>>
>> but I thing thats a minor problem the most important thing is that the old
>> revision worked.
>
> I'd like to see it work for you with Kconfig.  Could you send me a working
> log for me to compare with the last one you sent me?
>
> Thanks,
> Myles
>
> Hi again,
>
> here is a funny twist, I tried out revision 4977 building it with Kconfig
> and nothing still not working! But then I tried the buildtarget system with
> the same revision and it worked perfectly it boots and everything seems to
> work except the soundcard huu and I haven't tried out my NIC.
>
> I send you two log files one with the boot process using Kconfig (as far as
> I could get) and using buildtarget.
Perfect.  There is at least one major problem there.  The drivers for
the k8t890 weren't being built.  In the log file you can see that the
ops lines are missing for the Kconfig build.

Try the attached patch.

Signed-off-by: Myles Watson <mylesgw@gmail.com>

Thanks,
Myles
Rudolf Marek - 2009-12-14 21:58:30
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Thank you.

I tried to make it work here too. I can confirm now both versions actually
boots. I had to disable the ROM execution inside coreboot - the VGA BIOS did
something bad.

The only remaining issue is normal/fallback stuff. I had to disable the normal
execution. It does not even work with buildtarget. Otherwise the board boots
fine. It looks once I had some troubles with PCI resource allocation inside
linux but I was not able to reproduce that.

Knut please juts save the .config and do
make distclean
restore the .config
make

eventually there can be one more hidden file .xcompile or something which did
smth wrong to the build too.


Knut, if you like to have CPU powersafe working please let me know. We dont have
automatic generation code for the old family which is hardwired anyway. You will
need to copy the setup from orig bios DSDT/SSDT.

Myles, Acking your patch here.

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

Commited with:

+config HEAP_SIZE
+	hex
+	default 0x40000
+	depends on BOARD_ASUS_A8V_E_SE
+

Committed revision 4978.


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

iEYEARECAAYFAksmtQYACgkQ3J9wPJqZRNWNdACg1ixegoitv/PMFf+E1OGgMJY2
3kkAoNmhsEUML32bwoJYVflLFLRo6dyH
=XUAW
-----END PGP SIGNATURE-----
Myles Watson - 2009-12-14 22:12:27
> Knut please juts save the .config and do
> make distclean
> restore the .config
> make
> 
> eventually there can be one more hidden file .xcompile or something which
> did
> smth wrong to the build too.
I should probably change that back.  It was giving me problems before, so I
made it so that .xcompile was only removed on distclean.  It probably makes
more sense to have it erased on make clean.

> Myles, Acking your patch here.
> 
> Acked-by: Rudolf Marek <r.marek@assembler.cz>
Thanks for testing and committing it.

> Commited with:
> 
> +config HEAP_SIZE
> +	hex
> +	default 0x40000
> +	depends on BOARD_ASUS_A8V_E_SE
> +
Was this still needed with the drivers compiled in?  I was hoping that the
reason the heap was too small was because so many devices had to be
allocated.  At some point in the future we might want to make devices take
up less RAM.  1092 bytes (0x444) seems like a lot, especially as we want to
put fewer devices explicitly in the device tree, and more will need to be
dynamically allocated.

PCI: 00:00.0 [1106/0238] enabled
malloc Enter, size 1092, free_mem_ptr 00138000
PCI: 00:00.1 [1106/1238] enabled
malloc Enter, size 1092, free_mem_ptr 00138444
PCI: 00:00.2 [1106/2238] enabled
malloc Enter, size 1092, free_mem_ptr 00138888
PCI: 00:00.3 [1106/3238] enabled
malloc Enter, size 1092, free_mem_ptr 00138ccc

Thanks,
Myles
Rudolf Marek - 2009-12-14 22:23:54
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> Was this still needed with the drivers compiled in?  I was hoping that the
> reason the heap was too small was because so many devices had to be
> allocated.  At some point in the future we might want to make devices take
> up less RAM.  1092 bytes (0x444) seems like a lot, especially as we want to
> put fewer devices explicitly in the device tree, and more will need to be
> dynamically allocated.

Yes it was needed. Otherwise it would not boot.

free_mem_ptr started at 140000
end was 147770

Like ~31KB total comparing the ptrs from bootlog start/end.

What about the failover? Remove? Fix? Ideas?

Thanks,

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

iEUEARECAAYFAksmuvkACgkQ3J9wPJqZRNVO0gCYy75nl3fLgvfSgo4RjbiPcqSa
CACg34gYgbkad968DQNEdGNfGi5TprI=
=Nrfo
-----END PGP SIGNATURE-----
Myles Watson - 2009-12-14 22:33:59
> > Was this still needed with the drivers compiled in?  I was hoping that
> the
> > reason the heap was too small was because so many devices had to be
> > allocated.  At some point in the future we might want to make devices
> take
> > up less RAM.  1092 bytes (0x444) seems like a lot, especially as we want
> to
> > put fewer devices explicitly in the device tree, and more will need to
> be
> > dynamically allocated.
> 
> Yes it was needed. Otherwise it would not boot.
> 
> free_mem_ptr started at 140000
> end was 147770
> 
> Like ~31KB total comparing the ptrs from bootlog start/end.
I should have looked at the total and the old value.  You're right.
 
> What about the failover? Remove? Fix? Ideas?
Unfortunately I don't have a clear sense of the failover plans for Kconfig
builds.  I think we should at least remove it in the case of a Kconfig
build.  I hope the old build way doesn't live long enough to justify fixing
it.

Thanks,
Myles
Knut Kujat - 2009-12-15 11:56:33
Rudolf Marek escribió:
> Thank you.
>
> I tried to make it work here too. I can confirm now both versions actually
> boots. I had to disable the ROM execution inside coreboot - the VGA
> BIOS did
> something bad.
>
> The only remaining issue is normal/fallback stuff. I had to disable
> the normal
> execution. It does not even work with buildtarget. Otherwise the board
> boots
> fine. It looks once I had some troubles with PCI resource allocation
> inside
> linux but I was not able to reproduce that.
>
> Knut please juts save the .config and do
> make distclean
> restore the .config
> make
>
> eventually there can be one more hidden file .xcompile or something
> which did
> smth wrong to the build too.
>
>
> Knut, if you like to have CPU powersafe working please let me know. We
> dont have
> automatic generation code for the old family which is hardwired
> anyway. You will
> need to copy the setup from orig bios DSDT/SSDT.
No, not necessary but thank you!
>
> Myles, Acking your patch here.
>
> Acked-by: Rudolf Marek <r.marek@assembler.cz>
>
> Commited with:
>
> +config HEAP_SIZE
> +    hex
> +    default 0x40000
> +    depends on BOARD_ASUS_A8V_E_SE
> +
>
> Committed revision 4978.
>
>
> Rudolf

Hello everyone,

yes I can confirm that the Kconfig build method work for me too. As
Rudolf said I had to disable VGA ROM as well otherwise it will came up
with a exception error. It's necessary to have "Serial port console
output" set to yes or it won't compile.

Now I will start the next Board a Supermicro H8QME-2+ :) see how this
works...

bye and thank you all!!

Patch

Index: svn/src/mainboard/asus/a8v-e_se/Kconfig
===================================================================
--- svn.orig/src/mainboard/asus/a8v-e_se/Kconfig
+++ svn/src/mainboard/asus/a8v-e_se/Kconfig
@@ -2,13 +2,14 @@  config BOARD_ASUS_A8V_E_SE
 	bool "A8V-E SE"
 	select ARCH_X86
 	select CPU_AMD_SOCKET_939
+	select K8_HT_FREQ_1G_SUPPORT
 	select NORTHBRIDGE_AMD_AMDK8
 	select NORTHBRIDGE_AMD_AMDK8_ROOT_COMPLEX
 	select SOUTHBRIDGE_VIA_VT8237R
+	select SOUTHBRIDGE_VIA_K8T890
 	select SUPERIO_WINBOND_W83627EHG
 	select USE_PRINTK_IN_CAR
 	select USE_DCACHE_RAM
-	select HAVE_HARD_RESET
 	select IOAPIC
 	select HAVE_ACPI_TABLES
 	select HAVE_MP_TABLE
@@ -41,7 +42,7 @@  config APIC_ID_OFFSET
 
 config SB_HT_CHAIN_ON_BUS0
 	int
-	default 2
+	default 1
 	depends on BOARD_ASUS_A8V_E_SE
 
 config SB_HT_CHAIN_UNITID_OFFSET_ONLY
@@ -66,7 +67,7 @@  config MAINBOARD_PART_NUMBER
 
 config HW_MEM_HOLE_SIZEK
 	hex
-	default 0x100000
+	default 0
 	depends on BOARD_ASUS_A8V_E_SE
 
 config MAX_CPUS
@@ -81,7 +82,7 @@  config MAX_PHYSICAL_CPUS
 
 config HT_CHAIN_END_UNITID_BASE
 	hex
-	default 0x0
+	default 0x20
 	depends on BOARD_ASUS_A8V_E_SE
 
 config HT_CHAIN_UNITID_BASE
@@ -94,9 +95,9 @@  config USE_INIT
 	default n
 	depends on BOARD_ASUS_A8V_E_SE
 
-config SB_HT_CHAIN_ON_BUS0
-	int
-	default 2
+config HAVE_OPTION_TABLE
+	bool
+	default n
 	depends on BOARD_ASUS_A8V_E_SE
 
 config IRQ_SLOT_COUNT
Index: svn/src/mainboard/asus/a8v-e_se/Makefile.inc
===================================================================
--- svn.orig/src/mainboard/asus/a8v-e_se/Makefile.inc
+++ svn/src/mainboard/asus/a8v-e_se/Makefile.inc
@@ -11,6 +11,7 @@  obj-$(CONFIG_GENERATE_ACPI_TABLES) += ac
 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
@@ -19,6 +20,7 @@  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