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:
void
dumpnorth(device_t north)
{
	uint8_t r, c;
	for(r = 0; r < 256; r += 16) {
		print_debug_hex8(r);
		print_debug(":");
		for(c = 0; c < 16; c++) {
			print_debug_hex8(pci_read_config8(north, r+c));
			print_debug(" ");
		}
		print_debug("\r\n");
  }
}

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
.8(=±sioÿ.

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

Does anyone have any suggestion about this?

Thanks,

Simon

MSICA.com






More information about the coreboot mailing list