A bug was found in freebios2/src/northbridge/via/vt8601/raminit.c

scheng at msica.com scheng at msica.com
Mon Jul 5 18:58:01 CEST 2004

I am trying to use LinuxBIOS V2 + Filo to boot local Linux on hard disk
(EPIA 800 board).

I found that LinuxBIOS executes an infinite loop in dumpnorth() function
of freebios2/src/northbridge/via/vt8601/raminit.c .

The function is:
dumpnorth(device_t north)
	uint8_t r, c;
	for(r = 0; r < 256; r += 16) {
		for(c = 0; c < 16; c++) {
			print_debug_hex8(pci_read_config8(north, r+c));
			print_debug(" ");

Since r is an unsigned char, it will never reach 256. To fix the problem,
I simply added a line at the end of the loop: if( r >= 240 ) break;

By the way, I am still working on filo. In my machine, after elfboot
passing control to filo, LinuxBIOS  Fallback restarts again. Following is
a piece of screenshot:
Loading Segment: addr: 0x0000000000100000 memsz: 0x00000000000240e0
filesz: 0x000000000000a048
Clearing Segment: addr: 0x000000000010a048 memsz: 0x000000000001a098
Loading Segment: addr: 0x00000000001240e0 memsz: 0x0000000000000048
filesz: 0x0000000000000048
Jumping to boot code at 0x107d28

LinuxBIOS- Mon Jul 5 15:38:49 PDT 2004 starting...
87 is the comm register
SMBus controller enabled

Does anyone have any suggestion about this?




More information about the coreboot mailing list