* Save local variables to board info struct
*/
+#ifdef EXTBDINFO
+ strcpy(bd->bi_s_version, "1.1");
+ strcpy(bd->bi_r_version, PPCBOOT_VERSION);
+#endif
bd->bi_memstart = CFG_SDRAM_BASE; /* start of DRAM memory */
bd->bi_memsize = dram_size; /* size of DRAM memory in bytes */
bd->bi_flashstart = CFG_FLASH_BASE; /* start of FLASH memory */
bd->bi_intfreq = clock_mhz; /* Internal Freq, in MHz */
bd->bi_busfreq = get_bus_freq(clock_mhz); /* Bus Freq, in MHz */
bd->bi_baudrate = baudrate; /* Console Baudrate */
+#ifdef EXTBDINFO
+ bd->bi_procfreq = cpu_speed * 1000000; /* Processor Speed, In Hz */
+ bd->bi_plb_busfreq = bd->bi_busfreq;
+ bd->bi_pci_busfreq = bd->bi_busfreq;
+#endif
/* Function pointers must be added after code relocation */
#if 0
#define CFG_BAUDRATE_DEFAULT CONFIG_BAUDRATE /* default baudrate */
#define CFG_TFTP_LOADADDR 0x100000 /* default load address */
+#define EXTBDINFO 1 /* To use extended board_into (bd_t) */
/*-----------------------------------------------------------------------
* Start addresses for the final memory configuration
* ppcboot starts it up.
*/
typedef struct bd_info {
+#ifdef EXTBDINFO
+ unsigned char bi_s_version[4]; /* Version of this structure */
+ unsigned char bi_r_version[30]; /* Version of the ROM (IBM) */
+#endif
unsigned long bi_memstart; /* start of DRAM memory */
unsigned long bi_memsize; /* size of DRAM memory in bytes */
unsigned long bi_flashstart; /* start of FLASH memory */
unsigned char bi_enetaddr[6]; /* Ethernet adress */
unsigned char bi_reserved[2]; /* -- just for alignment -- */
unsigned long bi_intfreq; /* Internal Freq, in MHz */
+#ifdef EXTBDINFO
+ unsigned int bi_procfreq; /* CPU (Internal) Freq, in Hz */
+#endif
unsigned long bi_busfreq; /* Bus Freq, in MHz */
+#ifdef EXTBDINFO
+ unsigned int bi_plb_busfreq; /* PLB Bus speed, in Hz */
+ unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
+#endif
unsigned long bi_baudrate; /* Console Baudrate */
mon_fnc_t bi_mon_fnc; /* Addresses of monitor functions */
} bd_t;