tyan s2880 build broken?
Hi, I checked out linuxbios2 tree from sourceforge.net, and I have problem with building bios for tyan s2880 motherboard, here is the error message from buildtarget tyan/s2880: Configuring PART mainboard, path tyan/s2880 === NOTE: Changing default value of LB_CKS_RANGE_START === NOTE: Changing default value of LB_CKS_RANGE_END === NOTE: Changing default value of LB_CKS_LOC Configuring DIR ../common/lsi_scsi/Config.lb === ERROR: Could not open file /home/hcwang/linux-bios/freebios2/src/mainboard/tyan/s2880/../common/lsi_scsi/Config.lb tyan/s2880/Config.lb:0 mainboard/tyan/s2880/Config.lb:0 ../common/lsi_scsi/Config.lb:0 [EMAIL PROTECTED] targets]$ pwd /home/hcwang/linux-bios/freebios2/targets Has anybody experience similar problem? Thanks, HC
Re: tyan s2880 build broken?
I think with Stefan's last set of patches we're missing some cvs adds? Stefan? ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: tyan s2880 build broken?
I will change the code to disable the lsi_scsi as the default. Do you have lsi 1030 onboard? You need to use it? If you need to use it, I send you pre-built image, because I can not publish the source code of lsi_scsi. LSI dont want to. Regards YH : HC Wang [mailto:[EMAIL PROTECTED] : 2004426 10:15 : [EMAIL PROTECTED] : tyan s2880 build broken? Hi, I checked out linuxbios2 tree from sourceforge.net, and I have problem with building bios for tyan s2880 motherboard, here is the error message from buildtarget tyan/s2880: Configuring PART mainboard, path tyan/s2880 === NOTE: Changing default value of LB_CKS_RANGE_START === NOTE: Changing default value of LB_CKS_RANGE_END === NOTE: Changing default value of LB_CKS_LOC Configuring DIR ../common/lsi_scsi/Config.lb === ERROR: Could not open file /home/hcwang/linux-bios/freebios2/src/mainboard/tyan/s2880/../common/lsi_scsi/Config.lb tyan/s2880/Config.lb:0 mainboard/tyan/s2880/Config.lb:0 ../common/lsi_scsi/Config.lb:0 [EMAIL PROTECTED] targets]$ pwd /home/hcwang/linux-bios/freebios2/targets Has anybody experience similar problem? Thanks, HC
Re: tyan s2880 build broken?
On Mon, 26 Apr 2004, YhLu wrote: If you need to use it, I send you pre-built image, because I can not publish the source code of lsi_scsi. LSI don¡¯t want to. grr. Is there a ROM BIOS for it? ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: tyan s2880 build broken?
I just commented out the #dir ../ entry in mainboard/tyan/s2880/Config.lb and the buildtarget seems ok. I will commit. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
: tyan s2880 build broken?
1. In freebios2/src/mainboard/tyan/s2880/Config.lb comment out dir ../common/lsi_scsi 2. In freebios2/targets/tyan/s2880/Config.lb comment out option ROM_SIZE = 475136 Don't forget 2. otherwise the final image will short some. Regards YH -- : ron minnich [mailto:[EMAIL PROTECTED] : 2004426 10:42 : YhLu : HC Wang; [EMAIL PROTECTED] : Re: tyan s2880 build broken? I just commented out the #dir ../ entry in mainboard/tyan/s2880/Config.lb and the buildtarget seems ok. I will commit. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: : : tyan s2880 build broken?
On Mon, 26 Apr 2004, YhLu wrote: When enabling lsi_scsi support, It need leave 48k in the BIOS ROM for lsi_scsi fw. So need to change normal mode ROM_SIZE to 512k-48k. OK, BTW you can do this: option ROM_SIZE = 512*1024 - 48*1024 which is not as readable as 512k-48k, but is pretty readable. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: : tyan s2880 build broken?
On Mon, 26 Apr 2004, YhLu wrote: Don't forget 2. otherwise the final image will short some. What should it be? ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
: : tyan s2880 build broken?
When enabling lsi_scsi support, It need leave 48k in the BIOS ROM for lsi_scsi fw. So need to change normal mode ROM_SIZE to 512k-48k. After that, cat fwx, normal linuxbios, fallback linuxbios to 512k final image. YH -- : ron minnich [mailto:[EMAIL PROTECTED] : 2004426 10:49 : YhLu : HC Wang; [EMAIL PROTECTED] : Re: : tyan s2880 build broken? On Mon, 26 Apr 2004, YhLu wrote: Don't forget 2. otherwise the final image will short some. What should it be? ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
: : : tyan s2880 build broken?
When I using the new config to deal with it, the tool seems doesnt support expression. I will check that in current config tool. YH -- : ron minnich [mailto:[EMAIL PROTECTED] : 2004426 10:57 : YhLu : HC Wang; [EMAIL PROTECTED] : Re: : : tyan s2880 build broken? On Mon, 26 Apr 2004, YhLu wrote: When enabling lsi_scsi support, It need leave 48k in the BIOS ROM for lsi_scsi fw. So need to change normal mode ROM_SIZE to 512k-48k. OK, BTW you can do this: option ROM_SIZE = 512*1024 - 48*1024 which is not as readable as 512k-48k, but is pretty readable. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: : : : tyan s2880 build broken?
On Mon, 26 Apr 2004, YhLu wrote: When I using the new config to deal with it, the tool seems doesn¡¯t support expression. I will check that in current config tool. it supports the expression, it just gets it wrong. Sorry. Another bug! ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: tyan s2880 build broken?
YhLu [EMAIL PROTECTED] writes: I will change the code to disable the lsi_scsi as the default. Do you have lsi 1030 onboard? You need to use it? If you need to use it, I send you pre-built image, because I can not publish the source code of lsi_scsi. LSI dont want to. If you can't publish the source then distributing the binary with the code compiled from that source linked in violates the GPL. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: tyan s2880 build broken?
So I need disable the code always, and don't send the image to the end user. What's pity! YH. -- : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] : 2004426 11:12 : YhLu : [EMAIL PROTECTED] : Re: tyan s2880 build broken? YhLu [EMAIL PROTECTED] writes: I will change the code to disable the lsi_scsi as the default. Do you have lsi 1030 onboard? You need to use it? If you need to use it, I send you pre-built image, because I can not publish the source code of lsi_scsi. LSI dont want to. If you can't publish the source then distributing the binary with the code compiled from that source linked in violates the GPL. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
: tyan s2880 build broken?
I have talked to the LSI two times. I have asked our HW engineers to use adapted chip except special customer requirement. Adaptec don't need download FW into it. Regards YH -- : ron minnich [mailto:[EMAIL PROTECTED] : 2004426 14:20 : YhLu : [EMAIL PROTECTED]; [EMAIL PROTECTED] : Re: tyan s2880 build broken? On Mon, 26 Apr 2004, YhLu wrote: So I need disable the code always, and don't send the image to the end user. What's pity! you might want to talk to LSI about this, but Eric is right. LSI needs to get their act together. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: : tyan s2880 build broken?
What about 3Ware? They had someone on this list a while ago, so maybe they'd be willing to help. On Mon, 26 Apr 2004, YhLu wrote: I have talked to the LSI two times. I have asked our HW engineers to use adapted chip except special customer requirement. Adaptec don't need download FW into it. Regards YH -ÓʼþÔ¼þ- ·¢¼þÈË: ron minnich [mailto:[EMAIL PROTECTED] ·¢ËÍʱ¼ä: 2004Äê4ÔÂ26ÈÕ 14:20 ÊÕ¼þÈË: YhLu ³ËÍ: [EMAIL PROTECTED]; [EMAIL PROTECTED] Ö÷Ìâ: Re: tyan s2880 build broken? On Mon, 26 Apr 2004, YhLu wrote: So I need disable the code always, and don't send the image to the end user. What's pity! you might want to talk to LSI about this, but Eric is right. LSI needs to get their act together. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
: : tyan s2880 build broken?
I talked to lsi again, and they will do sth. -- : Hendricks David W. [mailto:[EMAIL PROTECTED] : 2004426 15:02 : YhLu : [EMAIL PROTECTED] : Re: : tyan s2880 build broken? What about 3Ware? They had someone on this list a while ago, so maybe they'd be willing to help. On Mon, 26 Apr 2004, YhLu wrote: I have talked to the LSI two times. I have asked our HW engineers to use adapted chip except special customer requirement. Adaptec don't need download FW into it. Regards YH -- : ron minnich [mailto:[EMAIL PROTECTED] : 2004426 14:20 : YhLu : [EMAIL PROTECTED]; [EMAIL PROTECTED] : Re: tyan s2880 build broken? On Mon, 26 Apr 2004, YhLu wrote: So I need disable the code always, and don't send the image to the end user. What's pity! you might want to talk to LSI about this, but Eric is right. LSI needs to get their act together. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: tyan s2880 build broken?
On Mon, Apr 26, 2004 at 03:13:51PM -0700, YhLu wrote: I talked to lsi again, and they will do sth. Great news, even if we haven't seen the results. Thanks a lot! :) //Peter ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Inline assembler problems with S2880 build
* [EMAIL PROTECTED] [EMAIL PROTECTED] [031118 17:35]: Hi, I'm a newbie to this, but I'm trying to build for a Tyan S2880 board. However during the build I get; eebios2/src/devices/hypertransport.c /tmp/ccniyAWJ.s: Assembler messages: /tmp/ccniyAWJ.s:120: Error: Incorrect register `%rcx' used with `l' suffix /tmp/ccniyAWJ.s:122: Error: Incorrect register `%rcx' used with `l' suffix This is built on a completely standard Suse 2.4.19 build Linux Boco 2.4.19 #1 Wed Jun 25 21:34:14 UTC 2003 x86_64 unknown unknown GNU/Linux You have to compile LinuxBIOS using the 32bit instruction set of the AMD64 cpu. To do this, add the following to your target configuration file (i.e. freebios2/targets/tyan/s2880/Config.lb): uses CC option CC=gcc -m32 Stefan -- Stefan Reinauer, SUSE LINUX AG Teamleader Architecture Development ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: filo on Tyan s2880
* Takeshi Sone [EMAIL PROTECTED] [031031 19:38]: On Fri, Oct 31, 2003 at 10:07:28AM -0800, YhLu wrote: So need one customerization Installation image to execute the sh to install conf file. Also the kernel in the installation image should support X server without VGA init. X works at least on EPIA using VGABIOS support of LinuxBIOS(v1). On the Tyan S2880 with onboard Rage XL it works using the kernel framebuffer driver with SGIs nobios patch (partly integrated in 2.6) I'll try to write it down when I got the other things done. Stefan -- Stefan Reinauer, SUSE LINUX AG Teamleader Architecture Development ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
filo on Tyan s2880
Hi, I am using an etherboot payload that reads an elf image from the first sectors on the disk. This works fine, I put filo there so I can load a kernel from any filesystem. Unfortunately filo seems to find no IDE controller, it says IDE channel 0 not found. Etherboot and Linux can see the ide controller though (it's on bus 1) This happens with filo 0.4.1 Stefan -- Stefan Reinauer, SUSE LINUX AG Teamleader Architecture Development ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: filo on Tyan s2880
On Thu, Oct 30, 2003 at 11:34:29AM +0100, Stefan Reinauer wrote: I am using an etherboot payload that reads an elf image from the first sectors on the disk. This works fine, I put filo there so I can load a kernel from any filesystem. Unfortunately filo seems to find no IDE controller, it says IDE channel 0 not found. Etherboot and Linux can see the ide controller though (it's on bus 1) Maybe the problem is with my PCI code. Please send me the output log with DEBUG_ALL. -- Takeshi ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: filo on Tyan s2880
* SONE Takeshi [EMAIL PROTECTED] [031030 11:40]: On Thu, Oct 30, 2003 at 11:34:29AM +0100, Stefan Reinauer wrote: I am using an etherboot payload that reads an elf image from the first sectors on the disk. This works fine, I put filo there so I can load a kernel from any filesystem. Unfortunately filo seems to find no IDE controller, it says IDE channel 0 not found. Etherboot and Linux can see the ide controller though (it's on bus 1) Maybe the problem is with my PCI code. Bus 1 is not scanned. Disabling SUPPORT_PCI in the Config file solved the problem. Stefan -- Stefan Reinauer, SUSE LINUX AG Teamleader Architecture Development ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: filo on Tyan s2880
* SONE Takeshi [EMAIL PROTECTED] [031030 13:25]: On Thu, Oct 30, 2003 at 12:40:02PM +0100, Stefan Reinauer wrote: * SONE Takeshi [EMAIL PROTECTED] [031030 11:40]: On Thu, Oct 30, 2003 at 11:34:29AM +0100, Stefan Reinauer wrote: I am using an etherboot payload that reads an elf image from the first sectors on the disk. This works fine, I put filo there so I can load a kernel from any filesystem. Unfortunately filo seems to find no IDE controller, it says IDE channel 0 not found. Etherboot and Linux can see the ide controller though (it's on bus 1) Maybe the problem is with my PCI code. Please send me the output log with DEBUG_ALL. You only seem to scan bus 0: Ok.. My PCI scan routine starts from bus 0, and recurses when PCI bridges are found. I think I took this algorithm from pciutils. However your board has only host bridges on bus 0, so FILO doesn't know if bus 1 exists. I checked Etherboot and it just scans bus 0 to 255 unconditionally. I don't know which is better. Anyway attached patch changes the PCI scan to Etherboot way. Thanks. with this patch it also works using PCI. Stefan -- Stefan Reinauer, SUSE LINUX AG Teamleader Architecture Development Index: main/pci.c === RCS file: /home/ts1/cvsroot/filo/main/pci.c,v retrieving revision 1.3 diff -u -r1.3 pci.c --- main/pci.c 14 Oct 2003 19:54:29 - 1.3 +++ main/pci.c 30 Oct 2003 12:22:17 - @@ -6,37 +6,34 @@ static struct pci_dev *dev_list; static int n_devs; -static void pci_scan_bus(int bus) +static void pci_scan_bus(void) { -int devnum, fn, is_multi, vid; +int bus, devnum, fn, is_multi, vid; pci_addr addr; unsigned int htype; -for (devnum = 0; devnum 32; devnum++) { - is_multi = 0; - for (fn = 0; fn==0 || (is_multi fn8); fn++) { - addr = PCI_ADDR(bus, devnum, fn); - vid = pci_read16(addr, PCI_VENDOR_ID); - if (vid==0x || vid==0) - continue; - - htype = pci_read8(addr, PCI_HEADER_TYPE); - if (fn == 0) - is_multi = htype 0x80; - htype = 0x7f; - - if (dev_list) { - dev_list[n_devs].addr = addr; - dev_list[n_devs].vendor = vid; - dev_list[n_devs].device = pci_read16(addr, PCI_DEVICE_ID); - dev_list[n_devs].devclass = pci_read16(addr, PCI_CLASS_DEVICE); - dev_list[n_devs].prog_if = pci_read8(addr, PCI_CLASS_PROG); +for (bus = 0; bus 256; bus++) { + for (devnum = 0; devnum 32; devnum++) { + is_multi = 0; + for (fn = 0; fn==0 || (is_multi fn8); fn++) { + addr = PCI_ADDR(bus, devnum, fn); + vid = pci_read16(addr, PCI_VENDOR_ID); + if (vid==0x || vid==0) + continue; + + htype = pci_read8(addr, PCI_HEADER_TYPE); + if (fn == 0) + is_multi = htype 0x80; + + if (dev_list) { + dev_list[n_devs].addr = addr; + dev_list[n_devs].vendor = vid; + dev_list[n_devs].device = pci_read16(addr, PCI_DEVICE_ID); + dev_list[n_devs].devclass = pci_read16(addr, PCI_CLASS_DEVICE); + dev_list[n_devs].prog_if = pci_read8(addr, PCI_CLASS_PROG); + } + n_devs++; } - n_devs++; - - if (htype==PCI_HEADER_TYPE_BRIDGE - || htype==PCI_HEADER_TYPE_CARDBUS) - pci_scan_bus(pci_read8(addr, PCI_SECONDARY_BUS)); } } } @@ -46,13 +43,13 @@ /* Count devices */ dev_list = 0; debug(Scanning PCI: ); -pci_scan_bus(0); +pci_scan_bus(); debug(found %d devices\n, n_devs); /* Make the list */ dev_list = malloc(n_devs * sizeof(struct pci_dev)); n_devs = 0; -pci_scan_bus(0); +pci_scan_bus(); #if DEBUG {
Re: filo on Tyan s2880
On Thu, Oct 30, 2003 at 01:32:49PM +0100, Stefan Reinauer wrote: I checked Etherboot and it just scans bus 0 to 255 unconditionally. I don't know which is better. Anyway attached patch changes the PCI scan to Etherboot way. Thanks. with this patch it also works using PCI. I'll make this a Config option (turned off by default) in the next version. -- Takeshi ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: filo on Tyan s2880
On Thu, Oct 30, 2003 at 02:43:47PM -0600, Richard Smith wrote: My plan is to add support for configuration file, so the default kernel location and parameters will no longer be hard coded in the Flash, and Stephan told me maybe he can support this config file in the future releases of SuSE installation CDs. I bet if you asked nicely on the Debian boot list you could get support under Debian as well. Putting /filo.conf in the CD or floppy is a trivial task, but the hard part is to make the installer create the filo.conf for booting from installed hard disk. Maybe KNOPPIX would be easier. It doesn't install. :) -- Takeshi ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
re: S2880
Eric, Under 4G RAM linusbios_tables occupy 0x500-0xae0, cmos_util can find option_table even after rebooting. Under 6G RAM linuxbios_tables occupy 0x500-0xaf4, cmos_util can find option_table after power on but can not find it after rebooting. The only difference should be that rebooting don't execute auto.c again. Any advise. Regards Yingahi Lu -- : YhLu : 200386 17:11 : ron minnich : '[EMAIL PROTECTED]'; 'Stefan Reinauer'; '[EMAIL PROTECTED]' : : S2880 Ron, I have verfied that if I disable the XIP... in old config tool, the image produced will make the option table not accessiable after reboot too. Regards Yinghai Lu -- : ron minnich [mailto:[EMAIL PROTECTED] : 200386 15:51 : YhLu : '[EMAIL PROTECTED]'; 'Stefan Reinauer'; '[EMAIL PROTECTED]' : Re: S2880 I will try to email you my latest tree, Stefan put them in last night. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: S2880
On Wed, 6 Aug 2003, YhLu wrote: So you will add one module that will produce PIRQ automatically? I don't see any choice. Bus mapping is dynamic and hence a static table is not going to work. We have needed this for some time now anyway. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: S2880
It seems the Kernel clear 0x0--4k. Of course after itself take the MP TABLE. Maybe need to update the kernel. YH -- : YhLu : 200386 18:30 : ron minnich : '[EMAIL PROTECTED]'; 'Stefan Reinauer'; '[EMAIL PROTECTED]' : re: S2880 Eric, Under 4G RAM linusbios_tables occupy 0x500-0xae0, cmos_util can find option_table even after rebooting. Under 6G RAM linuxbios_tables occupy 0x500-0xaf4, cmos_util can find option_table after power on but can not find it after rebooting. The only difference should be that rebooting don't execute auto.c again. Any advise. Regards Yingahi Lu -- : YhLu : 200386 17:11 : ron minnich : '[EMAIL PROTECTED]'; 'Stefan Reinauer'; '[EMAIL PROTECTED]' : : S2880 Ron, I have verfied that if I disable the XIP... in old config tool, the image produced will make the option table not accessiable after reboot too. Regards Yinghai Lu -- : ron minnich [mailto:[EMAIL PROTECTED] : 200386 15:51 : YhLu : '[EMAIL PROTECTED]'; 'Stefan Reinauer'; '[EMAIL PROTECTED]' : Re: S2880 I will try to email you my latest tree, Stefan put them in last night. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: S2880
Ron, It seems I can not enable XIP_ROM_SIZE and XIP_ROM_BASE. Even I have set them in Options.lb Regards Yinghai Lu -- : YhLu : 200386 15:17 : YhLu; [EMAIL PROTECTED]; ron minnich : Stefan Reinauer; [EMAIL PROTECTED] : Re: S2880 Ron, After swap _ROMBASE etc to after ROM_SECTION_SIZE and ROM_SECTION_OFFSET. I can switch to the normal mode. But in fallback mode and normal mode ( after reboot) still got problem. ~ # cmos_util -d # The CMOS Definition table was not found in ram # CMOS definition table was not found in RAM memory # Looking for definitions in cmos.layout file Can not open config file cmos.layout Regards Yinghai Lu -- : YhLu : 200386 11:18 : '[EMAIL PROTECTED]'; ron minnich : Stefan Reinauer; [EMAIL PROTECTED] : S2880 Eric, It seems the image that built with can not switch to Normal booting. 1. In Fallback mode, after power on I can use cmos_util. 2. after rebooting it is still in Fallback mode,and can not cmos_util, it said can not find option table in the ram. And can not access cmos.layout. When I using old tool, I can switch to normal mode, but need to change boot_option and last_boot from fallback to normal. regards Yinghai Lu ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
: S2880
Ron, I have verfied that if I disable the XIP... in old config tool, the image produced will make the option table not accessiable after reboot too. Regards Yinghai Lu -- : ron minnich [mailto:[EMAIL PROTECTED] : 200386 15:51 : YhLu : '[EMAIL PROTECTED]'; 'Stefan Reinauer'; '[EMAIL PROTECTED]' : Re: S2880 I will try to email you my latest tree, Stefan put them in last night. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: S2880
YhLu [EMAIL PROTECTED] writes: Eric, Under 4G RAM linusbios_tables occupy 0x500-0xae0, cmos_util can find option_table even after rebooting. Under 6G RAM linuxbios_tables occupy 0x500-0xaf4, cmos_util can find option_table after power on but can not find it after rebooting. The only difference should be that rebooting don't execute auto.c again. I am not really certain what is going on, but it doesn't sound good. Normally I just reset the board and that is probably the right solution. I am still struggling to get the new config tool usable, so I am a bit distracted. We should be rewriting the table even during a reboot. So the fact that this doesn't work indicates there is some kind of problem. What I don't know. I can positively report that I have seen this. If I don't start pushing my reset code into the tree in the next couple of days please bug me. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: S2880
I really need a working PIRQ (don't ask) so I'm going to take a stab at generating one from the linuxbios tables, unless somebody else has done/wants to do it. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: S2880
Ron, After swap _ROMBASE etc to after ROM_SECTION_SIZE and ROM_SECTION_OFFSET. I can switch to the normal mode. But in fallback mode and normal mode ( after reboot) still got problem. ~ # cmos_util -d # The CMOS Definition table was not found in ram # CMOS definition table was not found in RAM memory # Looking for definitions in cmos.layout file Can not open config file cmos.layout Regards Yinghai Lu -- : YhLu : 200386 11:18 : '[EMAIL PROTECTED]'; ron minnich : Stefan Reinauer; [EMAIL PROTECTED] : S2880 Eric, It seems the image that built with can not switch to Normal booting. 1. In Fallback mode, after power on I can use cmos_util. 2. after rebooting it is still in Fallback mode,and can not cmos_util, it said can not find option table in the ram. And can not access cmos.layout. When I using old tool, I can switch to normal mode, but need to change boot_option and last_boot from fallback to normal. regards Yinghai Lu ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: S2880
On Wed, 6 Aug 2003, Steve Gehlbach wrote: I don't know if it is helpful to what you need or not, but there is code in the stpc section that builds a PIRQ table: (freebios/src/mainboard/stpc/consumer2/mainboard.c). This uses the 0x0f router code which is a way around linux if it does not know about the router in your north/south bridge. There are comments in the code. That's what I love about this list. Everytime I ask a question it gets answered in a work-saving way. Steve, I'll take a look at your stuff, and thanks. I am much relieved ... ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: S2880
In the cmos_util if it can not find linuxbios table from (0--4k) , it will find that from (960k to 1M). Please suggest where we should preserve second copy of linuxbios table. YH -- : ron minnich [mailto:[EMAIL PROTECTED] : 200386 20:49 : YhLu : '[EMAIL PROTECTED]'; 'Stefan Reinauer'; '[EMAIL PROTECTED]' : Re: S2880 On Wed, 6 Aug 2003, YhLu wrote: It seems the Kernel clear 0x0--4k. Of course after itself take the MP TABLE. yuck. I always thought it left that page alone, since it's page zero anyway. Well, that explains a thing or two. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: S2880
So you will add one module that will produce PIRQ automatically? YH -- : ron minnich [mailto:[EMAIL PROTECTED] : 200386 20:50 : YhLu : '[EMAIL PROTECTED]'; 'Stefan Reinauer'; '[EMAIL PROTECTED]' : Re: S2880 I really need a working PIRQ (don't ask) so I'm going to take a stab at generating one from the linuxbios tables, unless somebody else has done/wants to do it. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
YhLu [EMAIL PROTECTED] writes: Eric, Several Macro in console/console.h should be changed. For example: #define print_debug_hex8(HEX) printk_debug(0x08x, ((HEX)) #define print_debug_hex16(HEX) printk_debug(0x016x, ((HEX)) #define print_debug_hex32(HEX) printk_debug(0x032x, ((HEX)) to: #define print_debug_hex8(HEX) printk_debug(0x02x, ((HEX)) #define print_debug_hex16(HEX) printk_debug(0x04x, ((HEX)) #define print_debug_hex32(HEX) printk_debug(0x08x, ((HEX)) regards Thanks. That was a thinko. Eric. ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
* Eric W. Biederman [EMAIL PROTECTED] [030801 05:43]: Here is my most recent snapshot, which is slightly newer than what I have in the public CVS tree. I think I need to scrub all of memory on the B3 stepping before I start using it. I have not tested anything that is C0 specific yet. Even with this one I still dont get the kernel up on hdama I get lots of these: 80065d08: 80065d0c: 80065d10: 80065d14: 80065d18: 80065d1c: My machine has 2*256MB on each CPU. driving only the first controller works fine. (both with old config method.) Stefan ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
Stefan Reinauer [EMAIL PROTECTED] writes: * Eric W. Biederman [EMAIL PROTECTED] [030801 05:43]: Here is my most recent snapshot, which is slightly newer than what I have in the public CVS tree. I think I need to scrub all of memory on the B3 stepping before I start using it. I have not tested anything that is C0 specific yet. Even with this one I still dont get the kernel up on hdama I get lots of these: 80065d08: 80065d0c: 80065d10: 80065d14: 80065d18: 80065d1c: My machine has 2*256MB on each CPU. This is a relic of my debugging code in auto.c Move the test down to 512MB instead of 2GB and you should be fine. I have 2GB in my first cpu... driving only the first controller works fine. (both with old config method.) Stefan ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
On 31 Jul 2003, Eric W. Biederman wrote: I should be switching over to the new configuration system on Monday and once that is sorted out quite I can start putting hard codes where they belong in the board specific configuration. good timing, I'm back then. Greg has further ideas and we need to keep talking as we converge. I will try hard to get the cpu stuff in before monday. Note that V2 is now supporting PPC and K8. I am going to use the AMD SC520 for the third architecture test, then it's on to Elan for the fourth. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
Eric, Great. Then there should be no big issue on opteron any more. Can you send to the new raminit.c to me now? Regards Yinghai Lu ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
Eric, I have checked your old k8/cpufixup.c, and it already has TOM2 etc setup. and SYSCFG_TOM2_EN...etc... Regards Yinghai Lu -- : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] : 2003731 20:18 : YhLu : ron minnich; Stefan Reinauer; [EMAIL PROTECTED] : Re: Fixes for Tyan s2880 YhLu [EMAIL PROTECTED] writes: Eric, I have made two changes in raminit.c 1. csbase counting 2. fill_last to make sure kernel to scan NUMA successfully. For s2880 it can work with 4*1G+2*256M RAM, and doesn't work with 4*1G+2*512M or 4*1G+2*1G. I would try to substitute raminit.c with hardcode one to test for 6G, if it can help. Please advise. There has been enough code churn that my head is still spinning in trying to get in sync with the main tree. I have updated raminit.c so that it now handles the case of each memory controller starting from 0 cleanly, and I have updated cpufixup.c so that we are handling 4GB of memory properly. TOP_MEM2 was not getting set to the proper value. fill_last was pretty much a duplicate of route_dram_access except different assumptions were made, so I have removed fill_last again. If you have memory that doesn't get setup properly now holler. So we should be pretty close. Before I can go much farther I need a test for pre rev c0 cpus. Because a lot of the remaining memory code needs to be conditional on it. I am in the last stages of stabilizing an internal version to be used in large scale testing to search for hardware incompatibilities. I also have a the links width and speed being automatically setup properly. But the way I discover the links is still kind of nasty, so I am not quite ready to push the code back yet. I should be switching over to the new configuration system on Monday and once that is sorted out quite I can start putting hard codes where they belong in the board specific configuration. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
YhLu [EMAIL PROTECTED] writes: Eric, I have checked your old k8/cpufixup.c, and it already has TOM2 etc setup. and SYSCFG_TOM2_EN...etc... I shift by 12 instead of 10 for the low half of TOP_MEM2... Which tends to leave TOP_MEM2 at 4GB... Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
: Fixes for Tyan s2880
Eric, I see. I move some code from raminit.c setup_top_ram to it and have a try. Regards Yinghai Lu -- : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] : 2003731 20:40 : YhLu : ron minnich; Stefan Reinauer; [EMAIL PROTECTED] : Re: Fixes for Tyan s2880 YhLu [EMAIL PROTECTED] writes: Eric, I have checked your old k8/cpufixup.c, and it already has TOM2 etc setup. and SYSCFG_TOM2_EN...etc... I shift by 12 instead of 10 for the low half of TOP_MEM2... Which tends to leave TOP_MEM2 at 4GB... Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
YhLu [EMAIL PROTECTED] writes: Eric, Great. Then there should be no big issue on opteron any more. Can you send to the new raminit.c to me now? Here is my most recent snapshot, which is slightly newer than what I have in the public CVS tree. I think I need to scrub all of memory on the B3 stepping before I start using it. I have not tested anything that is C0 specific yet. Eric #include cpu/k8/mtrr.h #include raminit.h /* Function 2 */ #define DRAM_CSBASE0x40 #define DRAM_CSMASK0x60 #define DRAM_BANK_ADDR_MAP 0x80 #define DRAM_TIMING_LOW0x88 #define DTL_TCL_SHIFT 0 #define DTL_TCL_MASK 0x7 #define DTL_CL_2 1 #define DTL_CL_3 2 #define DTL_CL_2_5 5 #define DTL_TRC_SHIFT 4 #define DTL_TRC_MASK 0xf #define DTL_TRC_BASE 7 #define DTL_TRC_MIN 7 #define DTL_TRC_MAX 22 #define DTL_TRFC_SHIFT8 #define DTL_TRFC_MASK 0xf #define DTL_TRFC_BASE9 #define DTL_TRFC_MIN 9 #define DTL_TRFC_MAX 24 #define DTL_TRCD_SHIFT12 #define DTL_TRCD_MASK 0x7 #define DTL_TRCD_BASE0 #define DTL_TRCD_MIN 2 #define DTL_TRCD_MAX 6 #define DTL_TRRD_SHIFT16 #define DTL_TRRD_MASK 0x7 #define DTL_TRRD_BASE0 #define DTL_TRRD_MIN 2 #define DTL_TRRD_MAX 4 #define DTL_TRAS_SHIFT20 #define DTL_TRAS_MASK 0xf #define DTL_TRAS_BASE0 #define DTL_TRAS_MIN 5 #define DTL_TRAS_MAX 15 #define DTL_TRP_SHIFT 24 #define DTL_TRP_MASK 0x7 #define DTL_TRP_BASE 0 #define DTL_TRP_MIN 2 #define DTL_TRP_MAX 6 #define DTL_TWR_SHIFT 28 #define DTL_TWR_MASK 0x1 #define DTL_TWR_BASE 2 #define DTL_TWR_MIN 2 #define DTL_TWR_MAX 3 #define DRAM_TIMING_HIGH 0x8c #define DTH_TWTR_SHIFT0 #define DTH_TWTR_MASK 0x1 #define DTH_TWTR_BASE1 #define DTH_TWTR_MIN 1 #define DTH_TWTR_MAX 2 #define DTH_TRWT_SHIFT4 #define DTH_TRWT_MASK 0x7 #define DTH_TRWT_BASE1 #define DTH_TRWT_MIN 1 #define DTH_TRWT_MAX 6 #define DTH_TREF_SHIFT8 #define DTH_TREF_MASK 0x1f #define DTH_TREF_100MHZ_4K 0x00 #define DTH_TREF_133MHZ_4K 0x01 #define DTH_TREF_166MHZ_4K 0x02 #define DTH_TREF_200MHZ_4K 0x03 #define DTH_TREF_100MHZ_8K 0x08 #define DTH_TREF_133MHZ_8K 0x09 #define DTH_TREF_166MHZ_8K 0x0A #define DTH_TREF_200MHZ_8K 0x0B #define DTH_TWCL_SHIFT 20 #define DTH_TWCL_MASK 0x7 #define DTH_TWCL_BASE 1 #define DTH_TWCL_MIN 1 #define DTH_TWCL_MAX 2 #define DRAM_CONFIG_LOW0x90 #define DCL_DLL_Disable (10) #define DCL_D_DRV (11) #define DCL_QFC_EN(12) #define DCL_DisDqsHys (13) #define DCL_DramInit (18) #define DCL_DramEnable(110) #define DCL_MemClrStatus (111) #define DCL_ESR (112) #define DCL_SRS (113) #define DCL_128BitEn (116) #define DCL_DimmEccEn (117) #define DCL_UnBufDimm (118) #define DCL_32ByteEn (119) #define DCL_x4DIMM_SHIFT 20 #define DRAM_CONFIG_HIGH 0x94 #define DCH_ASYNC_LAT_SHIFT 0 #define DCH_ASYNC_LAT_MASK 0xf #define DCH_ASYNC_LAT_BASE 0 #define DCH_ASYNC_LAT_MIN 0 #define DCH_ASYNC_LAT_MAX 15 #define DCH_RDPREAMBLE_SHIFT 8 #define DCH_RDPREAMBLE_MASK 0xf #define DCH_RDPREAMBLE_BASE ((21)+0) /* 2.0 ns */ #define DCH_RDPREAMBLE_MIN ((21)+0) /* 2.0 ns */ #define DCH_RDPREAMBLE_MAX ((91)+1) /* 9.5 ns */ #define DCH_IDLE_LIMIT_SHIFT 16 #define DCH_IDLE_LIMIT_MASK 0x7 #define DCH_IDLE_LIMIT_00 #define DCH_IDLE_LIMIT_41 #define DCH_IDLE_LIMIT_82 #define DCH_IDLE_LIMIT_16 3 #define DCH_IDLE_LIMIT_32 4 #define DCH_IDLE_LIMIT_64 5 #define DCH_IDLE_LIMIT_128 6 #define DCH_IDLE_LIMIT_256 7 #define DCH_DYN_IDLE_CTR_EN (1 19) #define DCH_MEMCLK_SHIFT 20 #define DCH_MEMCLK_MASK 0x7 #define DCH_MEMCLK_100MHZ 0 #define DCH_MEMCLK_133MHZ 2 #define DCH_MEMCLK_166MHZ 5 #define DCH_MEMCLK_200MHZ 7 #define DCH_MEMCLK_VALID (1 25) #define DCH_MEMCLK_EN0 (1 26) #define DCH_MEMCLK_EN1 (1 27) #define DCH_MEMCLK_EN2 (1 28) #define DCH_MEMCLK_EN3 (1 29) /* Function 3 */ #define MCA_NB_CONFIG 0x44 #define MNC_ECC_EN (1 22) #define MNC_CHIPKILL_EN (1 23) #define SCRUB_CONTROL 0x58 #define SCRUB_NONE0 #define SCRUB_40ns1 #define SCRUB_80ns2 #define SCRUB_160ns 3 #define SCRUB_320ns 4 #define SCRUB_640ns 5 #define SCRUB_1_28us 6 #define SCRUB_2_56us 7 #define SCRUB_5_12us 8 #define SCRUB_10_2us 9 #define SCRUB_20_5us 10 #define SCRUB_41_0us 11 #define SCRUB_81_9us 12 #define SCRUB_163_8us13 #define SCRUB_327_7us14 #define SCRUB_655_4us15 #define SCRUB_1_31ms 16 #define SCRUB_2_62ms 17 #define SCRUB_5_24ms 18 #define SCRUB_10_49ms19 #define
re: Fixes for Tyan s2880
Eric, It works. For 6G. Tommorrow I will try 12G. Thanks. Yinghai Lu -- : YhLu : 2003731 20:44 : [EMAIL PROTECTED] : ron minnich; Stefan Reinauer; [EMAIL PROTECTED] : : Fixes for Tyan s2880 Eric, I see. I move some code from raminit.c setup_top_ram to it and have a try. Regards Yinghai Lu -- : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] : 2003731 20:40 : YhLu : ron minnich; Stefan Reinauer; [EMAIL PROTECTED] : Re: Fixes for Tyan s2880 YhLu [EMAIL PROTECTED] writes: Eric, I have checked your old k8/cpufixup.c, and it already has TOM2 etc setup. and SYSCFG_TOM2_EN...etc... I shift by 12 instead of 10 for the low half of TOP_MEM2... Which tends to leave TOP_MEM2 at 4GB... Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
* Eric W. Biederman [EMAIL PROTECTED] [030730 07:55]: Index: src/southbridge/amd/amd8111/amd8111_ldtstop.c === RCS file: /cvsroot/freebios/freebios2/src/southbridge/amd/amd8111/amd8111_ldtstop.c,v retrieving revision 1.4 diff -r1.4 amd8111_ldtstop.c 22c22 pci_write_config16(dev, 0x48, pci_read_config16(dev,0x48) ~CPUPIN); --- pci_write_config32(dev, 0x48, pci_read_config32(dev,0x48) ~CPUPIN); The Bios and kernel developers guide specifies 16bit for that register. But since it's all Little Endian it really does not matter. OTOH, if Tom gets his warm reboot code in place after setting link speed, we can probably get rid of ldtstop assertion completely. How does doing a warm boot there affect boot time? Stefan ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
Stefan Reinauer [EMAIL PROTECTED] writes: * Eric W. Biederman [EMAIL PROTECTED] [030730 07:55]: Index: src/southbridge/amd/amd8111/amd8111_ldtstop.c === RCS file: /cvsroot/freebios/freebios2/src/southbridge/amd/amd8111/amd8111_ldtstop.c,v retrieving revision 1.4 diff -r1.4 amd8111_ldtstop.c 22c22 pci_write_config16(dev, 0x48, pci_read_config16(dev,0x48) ~CPUPIN); --- pci_write_config32(dev, 0x48, pci_read_config32(dev,0x48) ~CPUPIN); The Bios and kernel developers guide specifies 16bit for that register. But since it's all Little Endian it really does not matter. OTOH, if Tom gets his warm reboot code in place after setting link speed, we can probably get rid of ldtstop assertion completely. The code is there. There is a challenge because of errata #48 that says the 8131 cannot operate at 800Mhz reliably, but it reports that it can. How does doing a warm boot there affect boot time? It pretty much doubles the time before the booloader. And there is the large delay that you see on current Opteron systems. My plan for today is to see about integrating all of these divergent pieces so I have everything working in one tree. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
On 29 Jul 2003, Eric W. Biederman wrote: Hmm. We can't have a per architecture default _RAMBASE? not sure if it makes sense per architecture. Consider those Alpha boards where rambase depended on chip type, board type, engineer's last name, and phase of the moon. I'm sure we'll see more of that. Ron while we are thinking about it where should we place tables on the ARM? It has a ROM chip as the first thing in memory. cool! you're looking at ARM? possibly at put tables at the other end of memory? Is there an ARM standard for this? ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
ron minnich [EMAIL PROTECTED] writes: On 29 Jul 2003, Eric W. Biederman wrote: Hmm. We can't have a per architecture default _RAMBASE? not sure if it makes sense per architecture. Consider those Alpha boards where rambase depended on chip type, board type, engineer's last name, and phase of the moon. I'm sure we'll see more of that. Hmm. Perhaps. The SGI Itanium nodes start their memory at 196GB. For commodity stuff standardization is the rule of the game, so how much of this we will have to deal with LinuxBIOS wise is an interesting question. Mostly on the embedded stuff I would suspect. Ron while we are thinking about it where should we place tables on the ARM? It has a ROM chip as the first thing in memory. cool! you're looking at ARM? No, I have just been talking to a lot of people doing embedded stuff. And I like to look at problems long before I actually have to cope with them. possibly at put tables at the other end of memory? Is there an ARM standard for this? ARM kernels currently have a fair amount of board specific knowledge in them. An ARM BIOS is so far to easy to share code with LinuxBIOS, but we may be able to share a table structure with. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
OK, I have applied Yh Lu's patches for the most part. In almost all cases they are tyan 2880-specific. There are three things I can see that might affect others: #ifdef some-variable no longer works in many places, it has to be #if some-variable == 1 to work. - for the new config too, there is no longer a default for _RAMBASE, due to PPC and K8 differences raminit.c sees the following changes: Index: src/northbridge/amd/amdk8/raminit.c === RCS file: /cvsroot/freebios/freebios2/src/northbridge/amd/amdk8/raminit.c,v retrieving revision 1.12 diff -r1.12 raminit.c 921a922,927 //BY LYH add IOMMU 64M APERTURE PCI_ADDR(0, 0x18, 3, 0x94), 0x8000, 0x0f70, PCI_ADDR(0, 0x18, 3, 0x90), 0xff80, 0x0002, PCI_ADDR(0, 0x18, 3, 0x98), 0x000f, 0x00068300, //BY LYH END 1119c1125,1141 --- static void fill_last(unsigned long node_id,unsigned long base) { //BY LYH //Fill next base reg with right value unsigned i; unsigned base_reg; base =0x; device_t device; for(device = PCI_DEV(0, 0x18, 1); device = PCI_DEV(0, 0x1f, 1); device += PCI_DEV(0, 1, 0)) { for(i=node_id+1;i=7;i++) { base_reg=0x40+(i3); pci_write_config32(device,base_reg,base); } } //BY LYH END } 1128a1151 1145a1169 1254,1256c1278,1280 print_debug(csbase=); print_debug_hex32(csbase); print_debug(\r\n); --- //print_debug(csbase=); //print_debug_hex32(csbase); //print_debug(\r\n); 1285a1310,1312 //BY LYH fill_last(ctrl-node_id, tom_k2); //BY LYH END 1288,1291c1315,1319 if(ctrl-node_id==1) { pci_write_config32(ctrl-f2, DRAM_CSBASE, 0x0001); } --- dump_pci_device(PCI_DEV(0, 0x18, 1)); //if(ctrl-node_id==1) { //pci_write_config32(ctrl-f2, DRAM_CSBASE, 0x0001); //} and the amd8111 sees this: Index: src/southbridge/amd/amd8111/amd8111_ldtstop.c === RCS file: /cvsroot/freebios/freebios2/src/southbridge/amd/amd8111/amd8111_ldtstop.c,v retrieving revision 1.4 diff -r1.4 amd8111_ldtstop.c 22c22 pci_write_config16(dev, 0x48, pci_read_config16(dev,0x48) ~CPUPIN); --- pci_write_config32(dev, 0x48, pci_read_config32(dev,0x48) ~CPUPIN); If this is trouble, let me know. You are going to have to set _RAMBASE in your mainboard Config.lb now. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
* ron minnich [EMAIL PROTECTED] [030728 06:38]: Eric and Stefan, please pick a name and let us know what it should be. Are CONFIG_MAX_CPUS and CONFIG_MAX_PHYSICAL_CPUS the same or different (I'm guessing different due to hyperthreading)? I agree. Naming CONFIG_MAX_CPUS CONFIG_MAX_LOGICAL_CPUS would imply that there is a number of max. physical cpus as well. Stefan -- Architecture Team SuSE Linux AG ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
Ron. Changes in raminit.c add fill_last function. So remove following error while kernel booting: Scanning NUMA topology in Northbridge 24 Node 0 MemBase Limit 7fff Node 1 MemBase 8000 Limit f000 Node map not sorted 8000,0 No NUMA configuration found Faking a node at -f000 Bootmem setup node 0 -f000 To: Scanning NUMA topology in Northbridge 24 Node 0 MemBase Limit 7fff Node 1 MemBase 8000 Limit f000 Using node hash shift of 24 Bootmem setup node 0 -7fff Bootmem setup node 1 8000-f000 Is the raminit.c taken care by ERIC? Is he planning to add 4G support in that? Regards Yinghai Lu tyan-2880-072803-change.diff.gz Description: Binary data
Re: Fixes for Tyan s2880
Yh Lu, this will take me a little time to integrate your patches, I hope to be done tomorrow. Some of the things you have patched I have also fixed, but due to the 24-hour delay at sourceforge.net, we are out of sync. Thanks for your patches, I hpoe to commit by tomorrow. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
On Sat, 26 Jul 2003, Yinghai Lu wrote: I can send you the diff next Monday if you want. please do. I add LINUXBIOS_EXTRA_VERSION to the Option.lb in the config. Use that We can diff from normal boot to fallback boot in the output. very cool. Change some #ifdef to #if CONFIG_SMP==1 thanks, we're still working on them. Also please verify 1. Several CONFIG_MAX_CPUS using in the source code, You may need to select one from CONFIG_MAX_CPUS and MAX_CPUS.CONFIG_MAX_PHYSICAL_CPUS. Since all SMP have been changed to CONFIG_SMP, and Will you use CONFIG_MAX_CPUS etc instead of MAX_CPUS etc... Eric and Stefan, please pick a name and let us know what it should be. Are CONFIG_MAX_CPUS and CONFIG_MAX_PHYSICAL_CPUS the same or different (I'm guessing different due to hyperthreading)? 2. Config.lb in arch/i386/smp, missed secondary.S.need to remove the #. I fixed this too, please make sure you have it as I have comitted it. 3. _RAMBASE default is 0x10 in the new Config , and it is not working with SMP. In hardwaremain(), can not start the second CPU. Need to change to 0x4000 as the old config tool did. Done and committed. Eric, Stefan, please make sure this is not a problem for you, but it looks harmless to me. 4. You need to remove make.base.lb, since the function has been replaced by the above Config.lb. the rule control make linuxbios.rom. Done and committed. I thank you for using the new tool. We intend to make further changes this week as requested by Stefan. I am on vacation so this will not happen as quickly as I would wish, but it should happen. I think we are getting closer to the goals we set for the new tool. I know Greg is very happy with it for his use on PPC. thanks ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
Ron, The image that is built via the new config tool can work as the old config tools last night. CHIP_CONFIGURE is workable too. It will be very useful to device config or disable some device. I can send you the diff next Monday if you want. I add LINUXBIOS_EXTRA_VERSION to the Option.lb in the config. Use that We can diff from normal boot to fallback boot in the output. Change some #ifdef to #if CONFIG_SMP==1 Also please verify 1. Several CONFIG_MAX_CPUS using in the source code, You may need to select one from CONFIG_MAX_CPUS and MAX_CPUS.CONFIG_MAX_PHYSICAL_CPUS. Since all SMP have been changed to CONFIG_SMP, and Will you use CONFIG_MAX_CPUS etc instead of MAX_CPUS etc... 2. Config.lb in arch/i386/smp, missed secondary.S.need to remove the #. 3. _RAMBASE default is 0x10 in the new Config , and it is not working with SMP. In hardwaremain(), can not start the second CPU. Need to change to 0x4000 as the old config tool did. 4. You need to remove make.base.lb, since the function has been replaced by the above Config.lb. the rule control make linuxbios.rom. Regards Yinghai Lu -- : ron minnich [mailto:[EMAIL PROTECTED] : 2003725 14:44 : YhLu : Re: Fixes for Tyan s2880 On Fri, 25 Jul 2003, YhLu wrote: 1. I have tried to add lines In targets/tyan/s2880/Config.lb Uses CONFIG_LSI_SCSI_FW_FIXUP Option CONFIG_LSI_SCSI_FW_FIXUP=1 you shouldn't need to do that at all. What code depends on it? As I set up the code, this should just be working right now. We need to talk about what you need to do, I may have gotten part of it wrong. 2. Another problem: In Makefile newconfig tool it creates, it says linuxbios.rom: linuxbios.strip buildrom ./buildrom $ $@ $(PAYLOAD) $(ROM_IMAGE_SIZE) $(ROM_SIZE) can you change ROM_SIZE to ROM_SECTION_SIZE? committed. You also changes the standing for linuxbios.rom. old tool it doesn't include pay load and only romimage include payload, if so you should discard romimage define. fixed and committed. Thanks very much for working with the new tool. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
Ron, It seems that you roll back to the tree, because of Stefan's complain. I want to give detail description on the coherent_ht.c and raminit.c 1. coherent_ht.c add two function: notify_bsp_ap_is_stopped. And wait_ap_stop. 2. raminit.c change csbase counting methods. Any way you at least can put files on s2880 for me. Also please send the Config.lb to me and I would to test the new config tool. Thanks. Regards Yinghai Lu -- : ron minnich [mailto:[EMAIL PROTECTED] : 2003724 21:31 : [EMAIL PROTECTED] : Fixes for Tyan s2880 Yh Lu needed to add a mainboard-specific initialization code for the Tyan s2880 board, and needed it called at a special place in hardwaremain(). In V1, we would use defines and other such trickery to get this capability. We're trying to avoid that in V2. This problem turns out to be a perfect use for the static device initialization support. First, we apply patches that are tyan-only or are bug fixes to these files: src/include/device/pci_ids.h src/mainboard/tyan/s2880/auto.c src/mainboard/tyan/s2880/Config src/mainboard/tyan/s2880/debug.c src/mainboard/tyan/s2880/failover.c src/mainboard/tyan/s2880/static_devices.c src/mainboard/tyan/s2880/tyan-fallback.config src/mainboard/tyan/s2880/tyan-normal.config src/mainboard/tyan/s2880/VERSION src/mainboard/tyan/VERSION src/northbridge/amd/amdk8/coherent_ht.c src/northbridge/amd/amdk8/raminit.c src/southbridge/amd/amd8111/Config src/southbridge/amd/amd8111/Config.lb src/southbridge/amd/amd8131/amd8131_bridge.c targets/tyan/s2880/Config.lb Now, we need to ensure that YhLu's special code is called for his mainboard. As it happens, the mainboard is also a chip in the new scheme. The config tool builds a tree based on this structure, from src/include/device/chip.h: struct chip { struct chip_control *control; /* for this device */ char *path; /* can be 0, in which case the default is taken */ char *configuration; /* can be 0. */ int irq; struct chip *next, *children; /* there is one of these for each INSTANCE of a chip */ void *chip_info; /* the dreaded void * */ }; The tree for the s2880 looks like this: = #include device/chip.h struct chip static_root, static_dev1, static_dev2, static_dev3, static_dev4, sta tic_dev5, static_dev6, static_dev7, static_dev8, static_dev9, static_dev10; #include /home/rminnich/src/bios/freebios2/src/mainboard/tyan/s2880/chip.h struct chip static_root = { /* mainboard /home/rminnich/src/bios/freebios2/src/mainboard/tyan/s2880 */ .children = static_dev9, }; struct chip static_dev9 = { /* cpu /home/rminnich/src/bios/freebios2/src/cpu/k8 */ .next = static_dev8, }; . . . == (the rest is removed for clearness) Note that there are even chips for CPUs: it is possible to handle CPU fixup in this system. Each entry in the above structures defines a static device. Please recall that static devices consist of a generic structure and then special-purpose (device specific) structures. The generic structure is this: /* there is one of these for each TYPE of chip */ struct chip_control { void (*enable)(struct chip *, enum chip_pass); char *path; /* the default path. Can be overridden * by commands in config */ // This is the print name for debugging char *name; }; Device-specific classes are defined by the attributes of the device, and hence vary for each device. In the V1 days, we tried to have one generic structure, but that did not even work for the limited case of superio's, so for V2 we are making the structure unique to each device. We have to define one device structure for the Tyan s2880. The structure has to be defined in an include file that is in the directory that contains the code for the device. So, for the tyan s2880 mainboard, we need to have a definition file in src/mainboard/tyan/s2880. We'll call it src/mainboard/tyan/s2880/chip.h. In this case, it is rather simple: struct mainboard_tyan_s2880_config { int fixup_scsi; }; This is the only thing we're controlling at present. Note that the name of the struct is a 'flattened' version of the device name. We need to tell the config tool where to find the file containing the structure, and how to initialize the struct in the file. Add these lines to src/tyan/s2880/Config.lb. They will define the name of the file to use, and the code to initialize the static device. config chip.h register fixup_scsi = 1 We need to create the structure that defines the generic structure for the mainboard, so linuxbios can hook into it. So add these lines to the end of src/mainboard/tyan/s2880/mainboard.c: struct chip_control mainboard_tyan_s2880_control = { enable: enable, name: Tyan s2880 mainboard }; Then add the enable function (BEFORE the struct chip_control declaration). Note that it is declared 'static', and has only one entry in the switch. static void enable(struct chip *chip, enum chip_pass pass
Re: Fixes for Tyan s2880
On Fri, 25 Jul 2003, YhLu wrote: It seems that you roll back to the tree, because of Stefan's complain. no, I did not roll anything back. Did something roll back? Or are you seeing the 24-hour sourceforge.net delay? ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: Fixes for Tyan s2880
Maybe you are right, becase I can not see any update on s2880 dir. And can not get config.lb and chip.c that you prepare for me. Can you send those files to me? Regards Yinghai Lu -- : ron minnich [mailto:[EMAIL PROTECTED] : 2003725 12:05 : YhLu : [EMAIL PROTECTED] : Re: Fixes for Tyan s2880 On Fri, 25 Jul 2003, YhLu wrote: It seems that you roll back to the tree, because of Stefan's complain. no, I did not roll anything back. Did something roll back? Or are you seeing the 24-hour sourceforge.net delay? ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
* ron minnich [EMAIL PROTECTED] [030724 21:37]: Thank you for the patch. What I would like to do is get my linuxbios back to working condition, then merge these in. Otherwise, if Stefan can test and verify them, maybe he can merge them in before me. I'm sitting at home and don't have access to any SMP K8 from here, so I'm going to test (and commit) this tommorrow at work.. Greetings, Stefan -- Architecture Team SuSE Linux AG ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
OK, I'm back, the checked out tree works fine now. YhLu, I will try to commit your changes tomrrow. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
YhLu: I can fix your problem without adding the mainboard init function to hardware main, and also without code like this to the include file: #ifdef FINAL_MAINBOARD_FIXUP void final_mainboard_fixup(void); #else # define final_mainboard_fixup() do {} while(0) #endif /* FINAL_MAINBOARD_FIXUP */ All I need to do is add an enable function for the mainboard into the static device tree, and create a structure for your mainboard in the mainboard/tyan/2880 directory. This is pretty easy, and will let us test out the new static device support. But, if I make this change you are going to have to use the new config tool for your mainboard. There is no going back to the old config tool once I make the change. The new config tool is working pretty well, now, however: Greg and Stefan and I are using it, and Greg and I use it exclusively. There are still some glitches here and there but overall it is quite solid. Is this acceptable to you? Stefan, Greg, and I can help you with any problems you encounter with the new config tool. thanks ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
Good, I will use your new config tool for s2880. -- : ron minnich [mailto:[EMAIL PROTECTED] : 2003724 16:07 : YhLu : [EMAIL PROTECTED]; Stefan Reinauer; [EMAIL PROTECTED] : Re: K8 + 2.4.21 + Tyan S2880 YhLu: I can fix your problem without adding the mainboard init function to hardware main, and also without code like this to the include file: #ifdef FINAL_MAINBOARD_FIXUP void final_mainboard_fixup(void); #else # define final_mainboard_fixup() do {} while(0) #endif /* FINAL_MAINBOARD_FIXUP */ All I need to do is add an enable function for the mainboard into the static device tree, and create a structure for your mainboard in the mainboard/tyan/2880 directory. This is pretty easy, and will let us test out the new static device support. But, if I make this change you are going to have to use the new config tool for your mainboard. There is no going back to the old config tool once I make the change. The new config tool is working pretty well, now, however: Greg and Stefan and I are using it, and Greg and I use it exclusively. There are still some glitches here and there but overall it is quite solid. Is this acceptable to you? Stefan, Greg, and I can help you with any problems you encounter with the new config tool. thanks ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
OK, I will start on this tonight. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Fixes for Tyan s2880
Yh Lu needed to add a mainboard-specific initialization code for the Tyan s2880 board, and needed it called at a special place in hardwaremain(). In V1, we would use defines and other such trickery to get this capability. We're trying to avoid that in V2. This problem turns out to be a perfect use for the static device initialization support. First, we apply patches that are tyan-only or are bug fixes to these files: src/include/device/pci_ids.h src/mainboard/tyan/s2880/auto.c src/mainboard/tyan/s2880/Config src/mainboard/tyan/s2880/debug.c src/mainboard/tyan/s2880/failover.c src/mainboard/tyan/s2880/static_devices.c src/mainboard/tyan/s2880/tyan-fallback.config src/mainboard/tyan/s2880/tyan-normal.config src/mainboard/tyan/s2880/VERSION src/mainboard/tyan/VERSION src/northbridge/amd/amdk8/coherent_ht.c src/northbridge/amd/amdk8/raminit.c src/southbridge/amd/amd8111/Config src/southbridge/amd/amd8111/Config.lb src/southbridge/amd/amd8131/amd8131_bridge.c targets/tyan/s2880/Config.lb Now, we need to ensure that YhLu's special code is called for his mainboard. As it happens, the mainboard is also a chip in the new scheme. The config tool builds a tree based on this structure, from src/include/device/chip.h: struct chip { struct chip_control *control; /* for this device */ char *path; /* can be 0, in which case the default is taken */ char *configuration; /* can be 0. */ int irq; struct chip *next, *children; /* there is one of these for each INSTANCE of a chip */ void *chip_info; /* the dreaded void * */ }; The tree for the s2880 looks like this: = #include device/chip.h struct chip static_root, static_dev1, static_dev2, static_dev3, static_dev4, sta tic_dev5, static_dev6, static_dev7, static_dev8, static_dev9, static_dev10; #include /home/rminnich/src/bios/freebios2/src/mainboard/tyan/s2880/chip.h struct chip static_root = { /* mainboard /home/rminnich/src/bios/freebios2/src/mainboard/tyan/s2880 */ .children = static_dev9, }; struct chip static_dev9 = { /* cpu /home/rminnich/src/bios/freebios2/src/cpu/k8 */ .next = static_dev8, }; . . . == (the rest is removed for clearness) Note that there are even chips for CPUs: it is possible to handle CPU fixup in this system. Each entry in the above structures defines a static device. Please recall that static devices consist of a generic structure and then special-purpose (device specific) structures. The generic structure is this: /* there is one of these for each TYPE of chip */ struct chip_control { void (*enable)(struct chip *, enum chip_pass); char *path; /* the default path. Can be overridden * by commands in config */ // This is the print name for debugging char *name; }; Device-specific classes are defined by the attributes of the device, and hence vary for each device. In the V1 days, we tried to have one generic structure, but that did not even work for the limited case of superio's, so for V2 we are making the structure unique to each device. We have to define one device structure for the Tyan s2880. The structure has to be defined in an include file that is in the directory that contains the code for the device. So, for the tyan s2880 mainboard, we need to have a definition file in src/mainboard/tyan/s2880. We'll call it src/mainboard/tyan/s2880/chip.h. In this case, it is rather simple: struct mainboard_tyan_s2880_config { int fixup_scsi; }; This is the only thing we're controlling at present. Note that the name of the struct is a 'flattened' version of the device name. We need to tell the config tool where to find the file containing the structure, and how to initialize the struct in the file. Add these lines to src/tyan/s2880/Config.lb. They will define the name of the file to use, and the code to initialize the static device. config chip.h register fixup_scsi = 1 We need to create the structure that defines the generic structure for the mainboard, so linuxbios can hook into it. So add these lines to the end of src/mainboard/tyan/s2880/mainboard.c: struct chip_control mainboard_tyan_s2880_control = { enable: enable, name: Tyan s2880 mainboard }; Then add the enable function (BEFORE the struct chip_control declaration). Note that it is declared 'static', and has only one entry in the switch. static void enable(struct chip *chip, enum chip_pass pass) { struct mainboard_tyan_s2880_config *conf = (struct mainboard_tyan_s2880_config *)chip-chip_info; switch (pass) { default: break; case CONF_PASS_PRE_BOOT: if (conf-fixup_scsi) onboard_scsi_fixup(); printk_debug(mainboard fixup pass %d done\r\n, pass); break; } } That's pretty much it. total changes are 170 lines. The static
Re: K8 + 2.4.21 + Tyan S2880
Eric, It can be compiled with you new code. But it meet problems in Etherboot stage. In S2880 has two broadcom NIC port in 8131 bus B, and one amd 8111 built-in nic, and even if I hide it in amd8111 init and Etherboot can find it and try to enable it and can not find the PM cap so aborting, in the old linuxbios code (before yesterday) ( with mem hard code), it will go to tickle on Broadcom nic, but in the new code (yesterday check in) ( mem configurable), it will go to MB restarting.??? How about arima broadcom nic position? Regards Yinghai Lu -- : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] : 2003721 18:33 : YhLu : ron minnich; Stefan Reinauer; [EMAIL PROTECTED] : Re: K8 + 2.4.21 + Tyan S2880 YhLu [EMAIL PROTECTED] writes: Eric, In the auto.c, if I enable : sdram_initialize(cpu1), the linuxbios need another 20k. What happened? Only add one line and the same function has been called ??? All functions are inline and the set of functions called is large. At least I believe that is the issue. And good luck catching up While I am away you get a chance. My latest code has changed sdram_initialize one more time to take a cpu count parameter. And perversely this should help because if a function is called in a loop it will only be inlined once instead of multiple times. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
On Mon, 21 Jul 2003, YhLu wrote: I can build the linuxbios. But it is too large and it is around 60k, and tg3.zelf is about 22k, and tg3--ide_disk.zelf is about 24k, then the sum is above 65k.So I can not build the images. I now routinely set my linuxbios size for 64K with payload size of 32k. romcc is WONDERFUL but it does grow things a bit. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: : K8 + 2.4.21 + Tyan S2880
On Mon, 21 Jul 2003, YhLu wrote: So fallback image will be 96K? that's how I'm doing it. With a 1 Mbyte flash I don't worry much. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
: K8 + 2.4.21 + Tyan S2880
Ron, So fallback image will be 96K? Regards Yinghai Lu -- : ron minnich [mailto:[EMAIL PROTECTED] : 2003721 14:45 : YhLu : [EMAIL PROTECTED]; Stefan Reinauer; [EMAIL PROTECTED] : Re: K8 + 2.4.21 + Tyan S2880 On Mon, 21 Jul 2003, YhLu wrote: I can build the linuxbios. But it is too large and it is around 60k, and tg3.zelf is about 22k, and tg3--ide_disk.zelf is about 24k, then the sum is above 65k.So I can not build the images. I now routinely set my linuxbios size for 64K with payload size of 32k. romcc is WONDERFUL but it does grow things a bit. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
ron minnich [EMAIL PROTECTED] writes: On Mon, 21 Jul 2003, YhLu wrote: I can build the linuxbios. But it is too large and it is around 60k, and tg3.zelf is about 22k, and tg3--ide_disk.zelf is about 24k, then the sum is above 65k.So I can not build the images. I now routinely set my linuxbios size for 64K with payload size of 32k. romcc is WONDERFUL but it does grow things a bit. Next time I get to it I intend to start honoring the inline keyword. The problem is that it inlines everything and creates code bloat. So far it is working well enough and there are other priorities that I have not come back to it. It is my goal that before the 2.0 release I can fit everything back into 64K for fallback again. It is not critical now but it is a warning sign of troubles ahead. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
ron minnich [EMAIL PROTECTED] writes: On 21 Jul 2003, Eric W. Biederman wrote: Next time I get to it I intend to start honoring the inline keyword. The problem is that it inlines everything and creates code bloat. hmm, I'll be wanting to see how you solve the call stack problem :-) Well routines that are only called once will still get inlined. And with 24 registers I have a lot more freedom, than with just 8. Historically Fortran did not have a call stack and it made procedure and function calls just fine. The same techniques with registers instead of hard coded memory locations should work fine. So far it is working well enough and there are other priorities that I have not come back to it. It is my goal that before the 2.0 release I can fit everything back into 64K for fallback again. It is not critical now but it is a warning sign of troubles ahead. Personally, for now, I think it's fine. You haven't had your debug code fail to compile because linuxbios goes over the 64K limit yet either. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
On 21 Jul 2003, Eric W. Biederman wrote: You haven't had your debug code fail to compile because linuxbios goes over the 64K limit yet either. I just did :-) ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
YhLu [EMAIL PROTECTED] writes: Eric, In the auto.c, if I enable : sdram_initialize(cpu1), the linuxbios need another 20k. What happened? Only add one line and the same function has been called ??? All functions are inline and the set of functions called is large. At least I believe that is the issue. And good luck catching up While I am away you get a chance. My latest code has changed sdram_initialize one more time to take a cpu count parameter. And perversely this should help because if a function is called in a loop it will only be inlined once instead of multiple times. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
What I will do is first, get my tree in sync with Greg's new config tool code and Eric's new updates for SMP; Then look at YhLu's code and try to get it integrated. Next week is K8 week for me. It is very exciting to see this coming up on my bench after reading about all the work you folks have been doing. ron ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
Eric, My boss has said that I can release the source code to you. Please find out the patch I made. Make the diff to today's tree. I didn't test RON new script and still use the old scripts tools. I strip out the LSI scsi support, because I don't know if there is any license problem, and I have referred to their documents and may need put their FW in the ROM. It's greater you add ops-enable function that make it easy to handle special device. To some device if it is not gotten magic code, it will not get the resource allocate to it. Before that I have to do it in init function and re-allocate the resource to it again. Please refer to my old amd8131_ioapic.c in southbridge/amd8111. Also you init the io_base, upper16 reg, otherwise the device in PCIX will not got io port allocated to them, and will not work. I have tested Stefan's the code about coherent_ht.c, and add some hardcode to it. coherent_ht.o.c is the original one. Coherent_ht.1.c is total hardcode one. coherent_ht.c and coherent_ht.2.c are modified with some hardcode ones. raminit.c and raminit.1.c are till the hardcode one, and I have tried to use the configurable one, but auto.c can not be compiled, it is too big and used up REG? The old one has been renamed to raminit.o.c. To start other cpus, in auto.c We must enable apic and make sure all apic_id is right. Please refer to mainboard/tyan/s2880/auto.c boot_cpu function. Again, thank you all to answer my questions to help Tyan s2880 work with LinuxBIOS. Regards Yinghai Lu change.diff.gz Description: Binary data
Re: K8 + 2.4.21 + Tyan S2880
YhLu [EMAIL PROTECTED] writes: Eric, My boss has said that I can release the source code to you. Please find out the patch I made. Make the diff to today's tree. I didn't test RON new script and still use the old scripts tools. I strip out the LSI scsi support, because I don't know if there is any license problem, and I have referred to their documents and may need put their FW in the ROM. It's greater you add ops-enable function that make it easy to handle special device. To some device if it is not gotten magic code, it will not get the resource allocate to it. Before that I have to do it in init function and re-allocate the resource to it again. Please refer to my old amd8131_ioapic.c in southbridge/amd8111. Also you init the io_base, upper16 reg, otherwise the device in PCIX will not got io port allocated to them, and will not work. I have tested Stefan's the code about coherent_ht.c, and add some hardcode to it. coherent_ht.o.c is the original one. Coherent_ht.1.c is total hardcode one. coherent_ht.c and coherent_ht.2.c are modified with some hardcode ones. raminit.c and raminit.1.c are till the hardcode one, and I have tried to use the configurable one, but auto.c can not be compiled, it is too big and used up REG? The old one has been renamed to raminit.o.c. To start other cpus, in auto.c We must enable apic and make sure all apic_id is right. Please refer to mainboard/tyan/s2880/auto.c boot_cpu function. Again, thank you all to answer my questions to help Tyan s2880 work with LinuxBIOS. Welcome. You have the most interesting time. Your stuff always seems to come in just as I am about to walk away for the day. I have just gotten SMP working in my tree and that is checked in. I did the fun thing and am using the apic timer as my timer. It has the nice property of working without calibration because it is based on the FSB clock, which on the Opteron is fixed at 200Mhz. And as a very cool thing I have that code compiling both ways. More later, Good Night. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios
Re: K8 + 2.4.21 + Tyan S2880
Eric, Thanks, I change 8k to 40k and it works. Because I put the elf in hda1. In the Config of Ehterboot, I have set BOOT_FIRST=BOOT_DISK and BOOT_SECOND=BOOT_NIC. In the fallback track, It works great and if HD is not there is will boot from Network. About the normal boot, it seems there some problems. After change the cmos.conf. boot_option=Normal boot_first=HDD boot_second=HDD boot_third=Network Then corresponding to BOOT_FIRST it says that Wrong index ??? When the HDD is present, it works as touch pci_ide (find one HD and print Wrong index)/ isa_ide/ pci_ide and load image from ide. And When the HDD is not present , it works as touch pci_ide/isa_ide/pci_nic and load image from ide. Is it because boot_first should be set Network fixedly? In the main.c of Etherboot, it only at state=3 and index=0 and type mismatched can print such Wrong index, It is a bug in Etherboot 5.1.8.? Regards Yinghai Lu -- : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] : 2003714 18:21 : YhLu : ron minnich; [EMAIL PROTECTED] : Re: K8 + 2.4.21 + SuSE 64-bit mode + Arima HDAMA + 49LF040 + MTD YhLu [EMAIL PROTECTED] writes: Eric, I have tried to build the tg3--ide_disk.zelf and use it in fallback and normal but all failed. In fallback track: It said: Searching for image...abort In Normal track: It said: Wrong index I have use to cmos_util to change boot track and BOOT_FIRST=HDD and BOOT_SECOND=Network. Yes. It only pays attention to the variables in Normal mode. When building tg3--ide_disk.zelf, I used BOOT_FIRST=IDE and BOOT_SECOND=NIC. What kind of image in HDD that eltherboot wound want? An ELF image within 8K from the start of the DISK. Imperfect but it works. Eric ___ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios