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

ron minnich rminnich at lanl.gov
Tue Jul 6 09:59:01 CEST 2004


On Mon, 5 Jul 2004 scheng at msica.com wrote:

> 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;

thanks for the fix, did you do something like this:

void
dumpnorth(device_t north)
{
        uint8_t r, c;
        for(r = 0; ; 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");
                if (r >= 240)
                        break;
  }
}

(r and c are u8 because we're trying to use bytes whereever possible; this 
is rommcc-compiled)

Let me know if this works and I'll commit it.


> 
> *******************************************************************
> 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ÿ.

This looks like baud rate troubles in part. 

also, what does readelf -a of the filo show? your start address seems odd. 
David, what do you think?

ron




More information about the coreboot mailing list