mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-19 09:43:08 +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> |
||
---|---|---|
.. | ||
ddr.c | ||
Kconfig | ||
law.c | ||
MAINTAINERS | ||
Makefile | ||
mpc8544ds.c | ||
README | ||
tlb.c |
Overview -------- The MPC8544DS system is similar to the 85xx CDS systems such as the MPC8548CDS due to the similar E500 core. However, it is placed on the same board as the 8641 HPCN system. Flash Banks ----------- Like the 85xx CDS systems, the 8544 DS board has two flash banks. They are both present on boot, but there locations can be swapped using the dip-switch SW10, bit 2. However, unlike the CDS systems, but similar to the 8641 HPCN board, a runtime reset through the FPGA can also affect a swap on the flash bank mappings for the next reset cycle. Irrespective of the switch SW10[2], booting is always from the boot bank at 0xfff8_0000. Memory Map ---------- 0xff80_0000 - 0xffbf_ffff Alternate bank 4MB 0xffc0_0000 - 0xffff_ffff Boot bank 4MB 0xffb8_0000 Alternate image start 512KB 0xfff8_0000 Boot image start 512KB Flashing Images --------------- For example, to place a new image in the alternate flash bank and then reset with that new image temporarily, use this: tftp 1000000 u-boot.bin.8544ds erase ffb80000 ffbfffff cp.b 1000000 ffb80000 80000 pixis_reset altbank To overwrite the image in the boot flash bank: tftp 1000000 u-boot.bin.8544ds protect off all erase fff80000 ffffffff cp.b 1000000 fff80000 80000 Other example U-Boot image and flash manipulations examples can be found in the README.mpc85xxcds file as well. The pixis_reset command ----------------------- A new command, "pixis_reset", is introduced to reset mpc8641hpcn board using the FPGA sequencer. When the board restarts, it has the option of using either the current or alternate flash bank as the boot image, with or without the watchdog timer enabled, and finally with or without frequency changes. Usage is; pixis_reset pixis_reset altbank pixis_reset altbank wd pixis_reset altbank cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> pixis_reset cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> Examples; /* reset to current bank, like "reset" command */ pixis_reset /* reset board but use the to alternate flash bank */ pixis_reset altbank /* reset board, use alternate flash bank with watchdog timer enabled*/ pixis_reset altbank wd /* reset board to alternate bank with frequency changed. * 40 is SYSCLK, 2.5 is COREPLL ratio, 10 is MPXPLL ratio */ pixis-reset altbank cf 40 2.5 10 Valid clock choices are in the 8641 Reference Manuals. Using the Device Tree Source File --------------------------------- To create the DTB (Device Tree Binary) image file, use a command similar to this: dtc -b 0 -f -I dts -O dtb mpc8544ds.dts > mpc8544ds.dtb Likely, that .dts file will come from here; linux-2.6/arch/powerpc/boot/dts/mpc8544ds.dts After placing the DTB file in your TFTP disk area, you can download that dtb file using a command like: tftp 900000 mpc8544ds.dtb Burn it to flash if you want. Booting Linux ------------- Place a linux uImage in the TFTP disk area too. tftp 1000000 uImage.8544 tftp 900000 mpc8544ds.dtb bootm 1000000 - 900000 Watch your ethact, netdev and bootargs U-Boot environment variables. You may want to do something like this too: setenv ethact eTSEC3 setenv netdev eth1