Vlad Lungu wrote: [snip] >>> +long int initdram(int board_type) >>> +{ >>> + /* Sdram is setup by assembler code */ >>> + /* If memory could be changed, we should return the true value >>> here */ >>> + return MEM_SIZE*1024*1024; >>> >> >> Qemu gets the amount of RAM passed via a command line switch, the >> qemu-mips emulation sets up a Linux kernel like "command line" in >> memory where u-boot could parse it from. >> >> > Does it, or just when you pass -kernel to it? I'll check.
Hm, you are right, it does that only for -kernel. Would it make sense to change that in Qemu? Since the mips_r4k machine doesn't correspond to any real hardware we have a bit of leeway with the "hardware" design. >>> +} >>> + >>> + >>> +int checkboard (void) >>> +{ >>> + u32 proc_id; >>> + >>> + proc_id = read_32bit_cp0_register(CP0_PRID); >>> + >>> + switch (proc_id >> 24) { >>> + default: >>> + printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> >>> 24, proc_id); >>> + } >>> + >>> + return 0; >>> +} >>> >> >> Huh? What is this code good for? >> >> > Checking for the type of board, I suppose :-) I think all BSPs have it and > it's called early in the boot process. I could either do only a return 0 or > actually decode CP0_PRID and print something meaningful, if Qemu sets it to > something sensible. Or just print a nice banner. As it is, this code prints a nice "Unsupported CPU" banner no matter what (and proceeds anyway instead of bailing out). Latest CVS Qemu supports a number of different CPUs (see the -cpu switch), the default for 32 bit is a 24Kf, and for 64 bit a R4000. Thiemo