any idea why linuxbios is not starting on the epia-m 600? i run memtest86 -- all tests (took about 24hours ;-) -> everyting ok. (run memtest86 from lilo). i also tried the patch of Ian Smith ian@abelon.com.
do you have an idea how i can find out which asm line the stop happens? unfort i cannot use TX_STRING in c_start.c...
niki
On Tue, 23 Sep 2003, Niki Waibel wrote:
any idea why linuxbios is not starting on the epia-m 600? i run memtest86 -- all tests (took about 24hours ;-) -> everyting ok. (run memtest86 from lilo). i also tried the patch of Ian Smith ian@abelon.com.
ok, so you did memtest86 as a payload and it worked?
It's time to try XIP (execute in place) and see how it goes.
rno
On 23-Sep-2003 ron minnich wrote:
On Tue, 23 Sep 2003, Niki Waibel wrote:
any idea why linuxbios is not starting on the epia-m 600? i run memtest86 -- all tests (took about 24hours ;-) -> everyting ok. (run memtest86 from lilo). i also tried the patch of Ian Smith ian@abelon.com.
ok, so you did memtest86 as a payload and it worked?
no. executed memtest86 from lilo -- not as payload. as i sayed, the payload code is not executed / not reached. linuxbios seems to stop in c_start.s and it never reaches src/arch/i386/lib/hardwaremain.c (i think so, because there are some printk's in harwaremain which i never see on the serial console).
It's time to try XIP (execute in place) and see how it goes.
xip? instead of copying to ram, execute the code directly from the rom?
Hi,
no. executed memtest86 from lilo -- not as payload. as i sayed, the payload code is not executed / not reached. linuxbios seems to stop in c_start.s and it never reaches src/arch/i386/lib/hardwaremain.c (i think so, because there are some printk's in harwaremain which i never see on the serial console).
You probably want to copy the 0:00.0 pci register setting to the raminit.inc. Most likly is the memory bank/type causing the problem.
-Andrew
i just got a romimage from ian smith (thanks a lot!). see this!!! === LinuxBIOS-1.0.0 Tue Sep 23 21:19:35 BST 2003 starting... Testing SDRAM : 00000000-0009ffff SDRAM fill: 0009ffff SDRAM verify: 0009ffff Done. Copying LinuxBIOS to ram. 000f0fd4 00004000 ffffffff Jumping to LinuxBIOS. 000f0fd0 00006c8c ffeef6ff 010f2efa 00406115 0410ea00 18b80010 00004000 010f2efa 00406115 4010ea00 00100000 000018b8 8ed88e00 LinuxBIOS-1.0.0 Tue Sep 23 21:19:35 BST 2003 rebooting... Finding PCI configuration type. PCI: Using configuration type 1 Scanning PCI bus...PCI: pci_scan_bus for bus 0 PCI: 00:00.0 [1106/3123] PCI: 00:01.0 [1106/b091] PCI: 00:0d.0 [1106/3044] PCI: 00:10.0 [1106/3038] PCI: 00:10.1 [1106/3038] PCI: 00:10.2 [1106/3038] PCI: 00:10.3 [1106/3104] PCI: 00:11.0 [1106/3177] PCI: 00:11.1 [1106/0571] PCI: 00:11.5 [1106/3059] PCI: 00:12.0 [1106/3065] PCI: 00:14.0 [8086/1229] PCI: pci_scan_bus for bus 1 PCI: pci_scan_bus returning with max=01 PCI: pci_scan_bus returning with max=01 done Allocating PCI resources... PCI: 00:00.0 register 10(00000008), read-only ignoring it PCI: 00:00.0 register 10(00000008), read-only ignoring it PCI: 00:00.0 register 10(00000008), read-only ignoring it PCI: 00:00.0 register 10(00000008), read-only ignoring it ASSIGN RESOURCES, bus 0 PCI: 00:01.0 1c <- [0x00001000 - 0x00000fff] bus 1 io PCI: 00:01.0 24 <- [0xfeb00000 - 0xfeafffff] bus 1 prefmem PCI: 00:01.0 20 <- [0xfeb00000 - 0xfeafffff] bus 1 mem PCI: 00:0d.0 10 <- [0xfeb01000 - 0xfeb017ff] mem PCI: 00:0d.0 14 <- [0x00001800 - 0x0000187f] io PCI: 00:10.0 20 <- [0x000018c0 - 0x000018df] io PCI: 00:10.1 20 <- [0x000018e0 - 0x000018ff] io PCI: 00:10.2 20 <- [0x00001c00 - 0x00001c1f] io PCI: 00:10.3 10 <- [0xfeb02000 - 0xfeb020ff] mem PCI: 00:11.1 20 <- [0x00001c20 - 0x00001c2f] io PCI: 00:11.5 10 <- [0x00001000 - 0x000010ff] io PCI: 00:12.0 10 <- [0x00001400 - 0x000014ff] io PCI: 00:12.0 14 <- [0xfeb03000 - 0xfeb030ff] mem PCI: 00:14.0 10 <- [0xfeb00000 - 0xfeb00fff] mem PCI: 00:14.0 14 <- [0x00001880 - 0x000018bf] io PCI: 00:14.0 18 <- [0xfea00000 - 0xfeafffff] mem ASSIGNED RESOURCES, bus 0 done. Enabling PCI resourcess...PCI: 00:00.0 cmd <- 06 PCI: 00:01.0 cmd <- 07 PCI: 00:0d.0 cmd <- 83 PCI: 00:10.0 cmd <- 01 PCI: 00:10.1 cmd <- 01 PCI: 00:10.2 cmd <- 01 PCI: 00:10.3 cmd <- 02 PCI: 00:11.0 cmd <- 87 PCI: 00:11.1 cmd <- 07 PCI: 00:11.5 cmd <- 01 PCI: 00:12.0 cmd <- 83 PCI: 00:14.0 cmd <- 03 done. Initializing PCI devices... PCI devices initialized totalram: 127M Initializing CPU #0 Enabling cache... Setting fixed MTRRs(0-88) type: UC Setting fixed MTRRs(0-16) type: WB DONE fixed MTRRs Setting variable MTRR 0, base: 0MB, range: 64MB, type WB Setting variable MTRR 1, base: 64MB, range: 32MB, type WB Setting variable MTRR 2, base: 96MB, range: 16MB, type WB Setting variable MTRR 3, base: 112MB, range: 8MB, type WB Setting variable MTRR 4, base: 120MB, range: 4MB, type WB Setting variable MTRR 5, base: 124MB, range: 2MB, type WB DONE variable MTRRs Clear out the extra MTRR's call intel_enable_fixed_mtrr() call intel_enable_var_mtrr() Leave setup_mtrrs done.
Max cpuid index : 1 Vendor ID : CentaurHauls Processor Type : 0x00 Processor Family : 0x06 Processor Model : 0x07 Processor Mask : 0x00 Processor Stepping : 0x03 Feature flags : 0x00803035
MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled
Disabling local apic...done. CPU #0 Initialized Mainboard fixup Final mainboard fixup Southbridge fixup setting firewire Assigning IRQ 10 to 0:d.0 Readback = 10 setting usb Assigning IRQ 11 to 0:10.0 Readback = 11 Assigning IRQ 10 to 0:10.1 Readback = 10 Assigning IRQ 12 to 0:10.2 Readback = 12 Assigning IRQ 5 to 0:10.3 Readback = 5 setting ethernet Assigning IRQ 11 to 0:12.0 Readback = 11 setting pci slot Assigning IRQ 10 to 0:14.0 Readback = 10 setting vt8235 slot Assigning IRQ 5 to 0:11.1 Readback = 5 Assigning IRQ 12 to 0:11.5 Readback = 12 Checking IRQ routing tables... /home/ian/work/optos/linuxbios/cvs/freebios/src/arch/i386/lib/pirq_routing.c: 0 done. Copying IRQ routing tables to 0xf0000...done. Verifing priq routing tables copy at 0xf0000...failed Wrote linuxbios table at: 00000500 - 00000674 checksum 40ff
Welcome to elfboot, the open sourced starter. January 2002, Eric Biederman. Version 1.2
37:init_bytes() - zkernel_start:0xfffc0000 zkernel_mask:0x0000ffff Cannot Load ELF Image ===
so it seems that mem config, copy to mem, mem itself and jump to mem are okay. maybe my compiler or the binutils have done some fuckup.
niki
On 24-Sep-2003 Andrew Ip wrote:
Hi,
no. executed memtest86 from lilo -- not as payload. as i sayed, the payload code is not executed / not reached. linuxbios seems to stop in c_start.s and it never reaches src/arch/i386/lib/hardwaremain.c (i think so, because there are some printk's in harwaremain which i never see on the serial console).
You probably want to copy the 0:00.0 pci register setting to the raminit.inc. Most likly is the memory bank/type causing the problem.
-Andrew
-- Andrew Ip Email: aip@cwlinux.com Tel: (852) 2542 2046 Fax: (852) 2542 2036 Mobile: (852) 9201 9866
Cwlinux Limited Unit 202B 2/F Lai Cheong Factory Building, 479-479A Castle Peak Road, Lai Chi Kok, Kowloon, Hong Kong.
For public pgp key, please obtain it from http://www.keyserver.net/en.
okay. i found 2 reasons why linuxbios on my epia-m 600mhz was not booting. it stopped after the following msgs on the serial console: === LinuxBIOS-1.0.0 Wed Sep 24 13:12:11 CEST 2003 starting... Copying LinuxBIOS to ram. Jumping to LinuxBIOS. ===
reason a) in freebios-20030924/src/northbridge/via/vt8623/raminit.inc i switched 0x350 to 0x150, because i have a 512MByte, DDR, 133MHz, CL2 infineon memory. === /* 0x150 if CAS Latency 2 or 0x350 CAS Latency 2.5 */ movl $0x150, %esi movl %ds:(%esi), %eax === but this does *NOT* work!!! 0x350 is fine.
reason b) again in freebios-20030924/src/northbridge/via/vt8623/raminit.inc the patch from ian (i think it is already in the CVS, but sourceforge seems to be slow/strange as usual) is necessary: === 85c85 < movl $0x2000, %ecx ---
movl $0x2000, %esi /* IAS changed from ecx to esi */
89c89 < movl $0x800, %ecx ---
movl $0x800, %esi /* IAS changed from ecx to esi */
119c119 < movl $0x350, %ecx ---
movl $0x350, %esi /* IAS changed from ecx to esi */
===
in addition i can confirm that compilation of linuxbios with gcc-3.3.1 and binutils-2.14 is fine...
thanks a lot, especially ron, andrew and ian, for your help!
niki
we need to really fix this epia platform. This juggling of constants is the wrong thing to do. If somebody has the time they need to go in and get rid of the magic numbers use the SPD properly.
ron
Hi,
I will try to use Dave's sample code to fix it this weekend. Since I have noticed more and more people are using it, it definitly has to be fixed.
-Andrew
On Wed, Sep 24, 2003 at 08:12:57AM -0600, ron minnich wrote:
we need to really fix this epia platform. This juggling of constants is the wrong thing to do. If somebody has the time they need to go in and get rid of the magic numbers use the SPD properly.
ron
what machine are you on, what install of what os?
ron
On Wed, 24 Sep 2003, Niki Waibel wrote:
instead of copying to ram, execute the code directly from the rom?
yes indeed, the original way we used to run linuxbios.
ron
On Wed, 24 Sep 2003, Niki Waibel wrote:
no. executed memtest86 from lilo -- not as payload.
ah, so we really don't know anything from that test. OK.
ron