mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-19 01:33:10 +00:00
b75d8dc564
The Linux coding style guide (Documentation/process/coding-style.rst) clearly says: It's a **mistake** to use typedef for structures and pointers. Besides, using typedef for structures is annoying when you try to make headers self-contained. Let's say you have the following function declaration in a header: void foo(bd_t *bd); This is not self-contained since bd_t is not defined. To tell the compiler what 'bd_t' is, you need to include <asm/u-boot.h> #include <asm/u-boot.h> void foo(bd_t *bd); Then, the include direcective pulls in more bloat needlessly. If you use 'struct bd_info' instead, it is enough to put a forward declaration as follows: struct bd_info; void foo(struct bd_info *bd); Right, typedef'ing bd_t is a mistake. I used coccinelle to generate this commit. The semantic patch that makes this change is as follows: <smpl> @@ typedef bd_t; @@ -bd_t +struct bd_info </smpl> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> |
||
---|---|---|
.. | ||
bcsr.c | ||
bcsr.h | ||
ddr.c | ||
Kconfig | ||
law.c | ||
MAINTAINERS | ||
Makefile | ||
mpc8569mds.c | ||
README | ||
tlb.c |
Overview -------- MPC8569MDS is composed of two boards - PB (Processor Board) and PIB (Platform I/O Board). The mpc8569 PowerTM processor is mounted on PB board. Building U-Boot ----------- make MPC8569MDS_config make Memory Map ---------- 0x0000_0000 0x7fff_ffff DDR 2G 0xa000_0000 0xbfff_ffff PCIe MEM 512MB 0xe000_0000 0xe00f_ffff CCSRBAR 1M 0xe280_0000 0xe2ff_ffff PCIe I/O 8M 0xc000_0000 0xdfff_ffff SRIO 512MB 0xf000_0000 0xf3ff_ffff SDRAM 64MB 0xf800_0000 0xf800_7fff BCSR 32KB 0xf800_8000 0xf800_ffff PIB (CS4) 32KB 0xf801_0000 0xf801_7fff PIB (CS5) 32KB 0xfe00_0000 0xffff_ffff Flash 32MB Flashing U-Boot Images --------------- Use the following commands to program U-Boot image into flash: => tftp 1000000 u-boot.bin => protect off all => erase fff80000 ffffffff => cp.b 1000000 fff80000 80000 Setting the correct MAC addresses ----------------------- The command - "mac", is introduced to set on-board system EEPROM in the format defined in board/freescale/common/sys_eeprom.c. we must set all 8 MAC addresses for the MPC8569MDS's 8 Ethernet ports and save it by "mac save" when we first get the board. The commands are as follows: => mac i NXID /* Set NXID to this EEPROM */ => mac e 01 /* Set Errata, this value is not defined by hardware designer, we can set whatever we want */ => mac n a0 /* Set Serial Number. This is not defined by hardware designer, we can set whatever we want */ => mac date 090512080000 /* Set the date in YYMMDDhhmmss format */ => mac p 8 /* Set the number of mac ports, it should be 8 */ => mac 0 xx:xx:xx:xx:xx:xx /* xx:xx:xx:xx:xx:xx should be the real mac address, you can refer to the value on the sticker of the rear side of the board */ ..... => mac 7 xx:xx:xx:xx:xx:xx => mac read => mac save After resetting the board, the ethxaddrs will be filled with the mac addresses if such environment variables are blank(never been set before). If the ethxaddr has been set but we want to update it, we can use the following commands: => setenv ethxaddr /* x = "none",1,2,3,4,5,6,7 */ => save => reset Programming the ucode to flash --------------------------------- MPC8569 doesn't have ROM in QE, so we must upload the microcode(ucode) to QE's IRAM so that the QE can work. The ucode binary can be downloaded from http://opensource.freescale.com/firmware/, and it must be programmed to the address 0xfff0000 in the flash. Otherwise, the QE can't work and uboot hangs at "Net:" Please note the above two steps(setting mac addresses and programming ucode) are very important to get the board booting up and working properly.