
Hi,
I don't think this is the definition of "struct bd_info" ??
And I don't know what is the IMAP_ADDR, I don't know what to do. If you ca> n
I still don't have a clue what is "IMAP_ADDR" and what it does?
We don't know your hardware or your memory map...
What can I tell you that will help you. I do have the memory map of my board and my hardware is simple, " EP MPC823 H1 DW " but with only 16M of RAM. We ordered thoses board and we received a few boards with MPC823 and some with MPC823e. I'm now developping for the MPC823. Here is the link if you're interested.
http://www.embeddedplanet.com/products/lite.asp
The memory map is pretty much that. I would be glad to be more specific if I need to. I just need to understand :
0000 0000 - 16 Mb SDRAM 00FF FFFF
FA00 0000 - 128 Kb NVRAM FA02 0000
FA20 0000 - 16 Kb Internal Register and DP Ram FA20 3FFF
FA40 0000 - RPXlite configuration Register (32 bits), mirrored 8192 times FA40 7FFF
FC00 0000 - Mirror 16 Mb flash FCFF FFFF
FD00 0000 - Mirror 16 Mb flash FDFF FFFF
FE00 0000 - Mirror 16 Mb flash FEFF FFFF
FF00 0000 - 16 Mb flash, - At the adresse FFF0 0000 (hard-coded) the RPXlite looks for a boot-loader at startup. if the original bootloader is there, it looks for the diagnostic utilities at the adress FFF8 0000 FFFF FFFF
As for the struc bd_info, here they are. I'm sorry if I'm a complete newbee, I did not know I should have sent both of the structures:
in u-boot/include/asm-ppc/u-boot.h (well, you should have it, but here it is anyway) typedef struct bd_info { 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 long bi_flashsize; /* size of FLASH memory */ unsigned long bi_flashoffset; /* reserved area for startup monitor */ unsigned long bi_sramstart; /* start of SRAM memory */ unsigned long bi_sramsize; /* size of SRAM memory */ #if defined(CONFIG_5xx) || defined(CONFIG_8xx) || defined(CONFIG_8260) \ || defined(CONFIG_E500) unsigned long bi_immr_base; /* base of IMMR register */ #endif #if defined(CONFIG_MPC5xxx) unsigned long bi_mbar_base; /* base of internal registers */ #endif #if defined(CONFIG_MPC8220) unsigned long bi_mbar_base; /* base of internal registers */ unsigned long bi_inpfreq; /* Input Freq, In MHz */ unsigned long bi_pcifreq; /* PCI Freq, in MHz */ unsigned long bi_pevfreq; /* PEV Freq, in MHz */ unsigned long bi_flbfreq; /* Flexbus Freq, in MHz */ unsigned long bi_vcofreq; /* VCO Freq, in MHz */ #endif unsigned long bi_bootflags; /* boot / reboot flag (for LynxOS) */ unsigned long bi_ip_addr; /* IP Address */ unsigned char bi_enetaddr[6]; /* Ethernet adress */ unsigned short bi_ethspeed; /* Ethernet speed in Mbps */ unsigned long bi_intfreq; /* Internal Freq, in MHz */ unsigned long bi_busfreq; /* Bus Freq, in MHz */ #if defined(CONFIG_8260) || defined(CONFIG_MPC8560) unsigned long bi_cpmfreq; /* CPM_CLK Freq, in MHz */ unsigned long bi_brgfreq; /* BRG_CLK Freq, in MHz */ unsigned long bi_sccfreq; /* SCC_CLK Freq, in MHz */ unsigned long bi_vco; /* VCO Out from PLL, in MHz */ #endif #if defined(CONFIG_MPC5xxx) unsigned long bi_ipbfreq; /* IPB Bus Freq, in MHz */ unsigned long bi_pcifreq; /* PCI Bus Freq, in MHz */ #endif unsigned long bi_baudrate; /* Console Baudrate */ #if defined(CONFIG_405) || \ defined(CONFIG_405GP) || \ defined(CONFIG_405CR) || \ defined(CONFIG_405EP) || \ defined(CONFIG_440) unsigned char bi_s_version[4]; /* Version of this structure */ unsigned char bi_r_version[32]; /* Version of the ROM (IBM) */ unsigned int bi_procfreq; /* CPU (Internal) Freq, in Hz */ unsigned int bi_plb_busfreq; /* PLB Bus speed, in Hz */ unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */ #endif #if defined(CONFIG_HYMOD) hymod_conf_t bi_hymod_conf; /* hymod configuration information */ #endif
#if defined(CONFIG_ETH1ADDR) /* second onboard ethernet port */ unsigned char bi_enet1addr[6]; #endif #if defined(CONFIG_ETH2ADDR) /* third onboard ethernet port */ unsigned char bi_enet2addr[6]; #endif #if defined(CONFIG_ETH3ADDR) unsigned char bi_enet3addr[6]; #endif
#if defined(CONFIG_405GP) || defined(CONFIG_405EP) || defined (CONFIG_440_GX) unsigned int bi_opbfreq; /* OPB clock in Hz */ int bi_iic_fast[2]; /* Use fast i2c mode */ #endif #if defined(CONFIG_NX823) unsigned char bi_sernum[8]; #endif #if defined(CONFIG_440_GX) int bi_phynum[4]; /* Determines phy mapping */ int bi_phymode[4]; /* Determines phy mode */ #endif } bd_t;
in linux-2.4.22/include/asm-ppc/ppcboot.h typedef struct bd_info { 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 long bi_flashsize; /* size of FLASH memory */ unsigned long bi_flashoffset; /* reserved area for startup monitor */ unsigned long bi_sramstart; /* start of SRAM memory */ unsigned long bi_sramsize; /* size of SRAM memory */ #if defined(CONFIG_8xx) || defined(CONFIG_8260) unsigned long bi_immr_base; /* base of IMMR register */ #endif unsigned long bi_bootflags; /* boot / reboot flag (for LynxOS) */ unsigned long bi_ip_addr; /* IP Address */ unsigned char bi_enetaddr[6]; /* Ethernet adress */ unsigned short bi_ethspeed; /* Ethernet speed in Mbps */ unsigned long bi_intfreq; /* Internal Freq, in MHz */ unsigned long bi_busfreq; /* Bus Freq, in MHz */ #if defined(CONFIG_8260) unsigned long bi_cpmfreq; /* CPM_CLK Freq, in MHz */ unsigned long bi_brgfreq; /* BRG_CLK Freq, in MHz */ unsigned long bi_sccfreq; /* SCC_CLK Freq, in MHz */ unsigned long bi_vco; /* VCO Out from PLL, in MHz */ #endif unsigned long bi_baudrate; /* Console Baudrate */ #if defined(CONFIG_405GP) unsigned char bi_s_version[4]; /* Version of this structure */ unsigned char bi_r_version[32]; /* Version of the ROM (IBM) */ unsigned int bi_procfreq; /* CPU (Internal) Freq, in Hz */ unsigned int bi_plb_busfreq; /* PLB Bus speed, in Hz */ unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */ #endif #if defined(CONFIG_HYMOD) hymod_conf_t bi_hymod_conf; /* hymod configuration information */ #endif #if defined(CONFIG_EVB64260) /* the board has three onboard ethernet ports */ unsigned char bi_enet1addr[6]; unsigned char bi_enet2addr[6]; #endif mon_fnc_t *bi_mon_fnc; /* Pointer to monitor functions */ } bd_t;
help me with only one question, please make it this one. I've been working> on this kernel for a long time. I tried the linux-2.4.25 from your site, (with the mkimage tool included and working with mkimage), it's a great kernel, but the mtd is not working at all, and it is working with my kernel> .
MTD is working fine on all supported boards.
Well, it is not detected on my board with the linuxppc_2_4_devel, but I do have a character device on my linux-2.4.22 patched with the stuff on penguinppc.org I used the same config and I tried some other and it does not work.
but I don't want to blame anyone by saying this. All I'm trying to do here is to get this RPXlite board up and working with linux, a ramdisk, and access to the mtd device, pcmcia and I2c. I know my last kernel worked fine and that is why I want to use it. Whit the old/original boot-loader, I could just load the kernel (example "load at 0x0010 0000" and start it 64kb further, to skip the elf header, so "go at 0x0011 0000"), and it was booting. So I though that the kernel would work with u-boot. To do so, I have read the doc on http://www.denx.de/twiki/bin/view/DULG/Manual and some other tip found in google and the README in u-boot.
Sadly, it did not work, it froze exactly after uncompressing the kernel. So I refer myself to the FAQ and I am not experimented enough (or a good enough code-writer at this point) to fully understand what I had to do modify the bd_info structures correctly without breaking everything. That's pretty much it.
Thanks for your help. If the information I gave is not enough, I will be glad to give more, if I know what to give.
Raphaƫl