[U-Boot-Users] Re: Problem building U-boot for RpxLite with Mpc823e
Ccool
ccool at ninjatech.biz
Sun Nov 28 01:08:32 CET 2004
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
More information about the U-Boot
mailing list