With this set of changes, the lx target loads VSA and configures the PCI bus, with VSA operating correctly. This is tested with AMD's recently released new-model VSA code. Note that v3 build is correctly compressing the uncompressed vsa payload. I am really happy with v3 so far.
Signed-off-by: Ronald G. Minnich rminnich@gmail.com
Sadly, the first jump to payload crashes and burns. Marc, can you check this with fs2 for me? I still have not found mine ...
PS: PLEASE, if you are going to the coreboot summit April 3-5, register at hpcsw.org. You can get good rates at the hotel through april 6 even. I am staying there through sunday.
thanks
ron
On 01.02.2008 20:28, ron minnich wrote:
With this set of changes, the lx target loads VSA and configures the PCI bus, with VSA operating correctly. This is tested with AMD's recently released new-model VSA code. Note that v3 build is correctly compressing the uncompressed vsa payload. I am really happy with v3 so far.
Signed-off-by: Ronald G. Minnich rminnich@gmail.com
That's great!
Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
This passed my compile tests for all targets except the artec dbe61, which has been broken for a long time anyway. A few minor comments. It would be great if you could address them before committing.
northbridge/amd/geodelx/domain is a copy of northbridge/amd/geodelx/dts. You probably want to use "svn mv" for that because it preserves history and the old file was probably intended to have been moved, not copied.
northbridge/amd/geodelx/vsmsetup.c:247: warning: ‘biosint’ defined but not used Since the new VSA does not use BIOSINT services anymore, deleting biosint and related functions from vsmsetup.c would shrink vsmsetup.c by one fourth. Patch follows (could you merge it into your patch?):
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Index: northbridge/amd/geodelx/vsmsetup.c =================================================================== --- northbridge/amd/geodelx/vsmsetup.c (Revision 570) +++ northbridge/amd/geodelx/vsmsetup.c (Arbeitskopie) @@ -227,83 +227,3 @@ MEMSIZE = 0x12 };
-int pcibios(unsigned long *pedi, unsigned long *pesi, unsigned long *pebp, - unsigned long *pesp, unsigned long *pebx, unsigned long *pedx, - unsigned long *pecx, unsigned long *peax, unsigned long *pflags); - -int handleint21(unsigned long *pedi, unsigned long *pesi, unsigned long *pebp, - unsigned long *pesp, unsigned long *pebx, unsigned long *pedx, - unsigned long *pecx, unsigned long *peax, - unsigned long *pflags); - -/* see the vga_exit() call. until we clean this up this function will remain here */ -static int biosint(unsigned long intnumber, - unsigned long gsfs, unsigned long dses, - unsigned long edi, unsigned long esi, - unsigned long ebp, unsigned long esp, - unsigned long ebx, unsigned long edx, - unsigned long ecx, unsigned long eax, - unsigned long cs_ip, unsigned short stackflags) -{ - unsigned long ip; - unsigned long cs; - unsigned long flags; - int ret = -1; - - ip = cs_ip & 0xffff; - cs = cs_ip >> 16; - flags = stackflags; - - printk(BIOS_DEBUG, "biosint: INT# 0x%lx\n", intnumber); - printk(BIOS_DEBUG, "biosint: eax 0x%lx ebx 0x%lx ecx 0x%lx edx 0x%lx\n", - eax, ebx, ecx, edx); - printk(BIOS_DEBUG, "biosint: ebp 0x%lx esp 0x%lx edi 0x%lx esi 0x%lx\n", - ebp, esp, edi, esi); - printk(BIOS_DEBUG, "biosint: ip 0x%lx cs 0x%lx flags 0x%lx\n", - ip, cs, flags); - printk(BIOS_DEBUG, "biosint: gs 0x%lx fs 0x%lx ds 0x%lx es 0x%lx\n", - gsfs >> 16, gsfs & 0xffff, dses >> 16, dses & 0xffff); - - // cases in a good compiler are just as good as your own tables. - switch (intnumber) { - case 0 ... 15: - // These are not BIOS service, but the CPU-generated exceptions - printk(BIOS_INFO, "biosint: Oops, exception %lu\n", intnumber); - if (esp < 0x1000) { - printk(BIOS_DEBUG, "Stack contents: "); - while (esp < 0x1000) { - printk(BIOS_DEBUG, "0x%04x ", *(unsigned short *)esp); - esp += 2; - } - printk(BIOS_DEBUG, "\n"); - } - printk(BIOS_DEBUG, "biosint: Bailing out ... not now\n"); - // "longjmp" - //vga_exit(); - break; - - case PCIBIOS: - ret = pcibios(&edi, &esi, &ebp, &esp, - &ebx, &edx, &ecx, &eax, &flags); - break; - case MEMSIZE: - // who cares. - eax = 128 * 1024; - ret = 0; - break; - case 0x15: - ret = handleint21(&edi, &esi, &ebp, &esp, - &ebx, &edx, &ecx, &eax, &flags); - break; - default: - printk(BIOS_INFO, "BIOSINT: Unsupport int #0x%lx\n", intnumber); - break; - } - if (ret) - flags |= 1; // carry flags - else - flags &= ~1; - stackflags = flags; - return ret; -} -
Committed revision 571.
I included your svn mv suggestion, and have also removed the pci biosint support in vsmsetup.c
Thanks
ron
On 01.02.2008 21:36, ron minnich wrote:
Committed revision 571.
I included your svn mv suggestion, and have also removed the pci biosint support in vsmsetup.c
Thanks, great!
Regards, Carl-Daniel
ron minnich wrote:
Committed revision 571.
I included your svn mv suggestion, and have also removed the pci biosint support in vsmsetup.c
Thanks
ron
Ron,
How is VSA being compressed and built in? I seem to have missed something.
Marc
On Feb 1, 2008 1:44 PM, Marc Jones marc.jones@amd.com wrote:
How is VSA being compressed and built in? I seem to have missed something.
No, I missed something: it's not being compressed. Oops. That's for buildrom.
./build/util/lar/lar -a build/bios.bin lxvsa:blob/vsa
I could nrv2b encode it by hand, then it would also work.
ron
ron minnich wrote:
On Feb 1, 2008 1:44 PM, Marc Jones marc.jones@amd.com wrote:
How is VSA being compressed and built in? I seem to have missed something.
No, I missed something: it's not being compressed. Oops. That's for buildrom.
./build/util/lar/lar -a build/bios.bin lxvsa:blob/vsa
I could nrv2b encode it by hand, then it would also work.
ron
OK, I agree it is for buildrom to compress. Marc
On 01.02.2008 22:50, ron minnich wrote:
On Feb 1, 2008 1:44 PM, Marc Jones marc.jones@amd.com wrote:
How is VSA being compressed and built in? I seem to have missed something.
No, I missed something: it's not being compressed. Oops. That's for buildrom.
./build/util/lar/lar -a build/bios.bin lxvsa:blob/vsa
I could nrv2b encode it by hand, then it would also work.
Why nrv2b? Default compression does work out just fine.
Regards, Carl-Daniel
On Feb 1, 2008 2:08 PM, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
Why nrv2b? Default compression does work out just fine.
no real reason.
ron