[U-Boot-Users] How can I get board information(u-boot saved) from linux kernel

I am new to U-Boot, I checked file:\include\asm\u-boot.h,it's defined struct bd_info,this struct store board information passed to linux kernel.How can I get this struct from linux kernel? If anyone knows of a way to get U-Boot saved board information from linux kernel,give me a hint,thanks advance.
Sincerely,
Jie
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com

Hi, jie!
Well, almost off-topic as you asked in the u-boot-list But just browse the source: checkout some platform code for i.e.
"bd_t" and "__res"
Depending on your platform, it's picked up in the platform-setup file. i.e.: in arch/ppc/syslib/ppc4xx_setup.c lines:
218 /* 219 * Input(s): 220 * r3 - Optional pointer to a board information structure. 221 * r4 - Optional pointer to the physical starting address of the init RAM 222 * disk. 223 * r5 - Optional pointer to the physical ending address of the init RAM 224 * disk. 225 * r6 - Optional pointer to the physical starting address of any kernel 226 * command-line parameters. 227 * r7 - Optional pointer to the physical ending address of any kernel 228 * command-line parameters. 229 */ 230 void __init 231 ppc4xx_init(unsigned long r3, unsigned long r4, unsigned long r5, 232 unsigned long r6, unsigned long r7) 233 { 234 parse_bootinfo(find_bootinfo()); 235 236 /* 237 * If we were passed in a board information, copy it into the 238 * residual data area. 239 */ 240 if (r3) 241 __res = *(bd_t *)(r3 + KERNELBASE); and so on...
------------------------------- To use it in your code try something like: #include <linux/init.h> #include <asm/io.h> #include <asm/mpc85xx.h>
... bd_t *binfo=(bd_t *) __res;
DBG("Size of BoardInfo structure: %i\n",sizeof(bd_t));
DBG("CPU Frequency: %luMHz\n",binfo->bi_intfreq/1000000); DBG("DRAM start: %0lX\n",binfo->bi_memstart); DBG("DRAM size (bytes): %0lX\n",binfo->bi_memsize); DBG("FLASH start: %0lX\n",binfo->bi_flashstart); DBG("FLASH size (bytes): %0lX\n",binfo->bi_flashsize); DBG("FLASH offset: %0lX\n",binfo->bi_flashoffset); DBG("SRAM start: %0lX\n",binfo->bi_sramstart); DBG("SRAM size (bytes): %0lX\n",binfo->bi_sramsize); DBG("IMMR base: %0lX\n",binfo->bi_immr_base);
DBG("PVR %0X\n",mfspr(PVR)); DBG("SVR %0X\n",mfspr(SVR));
------------------------
But you might consider using the new OpenFirmware structure to acces bios/boot information on ppc and friends... checkout the lastest OF Patches for that.
Greets,
Clemens Koller _______________________________ R&D Imaging Devices Anagramm GmbH Rupert-Mayer-Str. 45/1 81379 Muenchen Germany
http://www.anagramm.de Phone: +49-89-741518-50 Fax: +49-89-741518-19
jie han wrote:
I am new to U-Boot, I checked file:\include\asm\u-boot.h,it's defined struct bd_info,this struct store board information passed to linux kernel.How can I get this struct from linux kernel? If anyone knows of a way to get U-Boot saved board information from linux kernel,give me a hint,thanks advance.
Sincerely,
Jie
Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
participants (2)
-
Clemens Koller
-
jie han