xref: /openbmc/u-boot/doc/README.pblimage (revision 5d898a00f3929fbe18427d15524c4da6b7575b95)
1*5d898a00SShaohui Xie------------------------------------------------------------------
2*5d898a00SShaohui XieFreescale PBL(pre-boot loader) Boot Image generation using mkimage
3*5d898a00SShaohui Xie------------------------------------------------------------------
4*5d898a00SShaohui Xie
5*5d898a00SShaohui XieThe CoreNet SoC's can boot directly from eSPI FLASH, SD/MMC and
6*5d898a00SShaohui XieNAND, etc. These SoCs use PBL to load RCW and/or pre-initialization
7*5d898a00SShaohui Xieinstructions. For more details refer section 5 Pre-boot loader
8*5d898a00SShaohui Xiespecifications of reference manual P3041RM/P4080RM/P5020RM at link:
9*5d898a00SShaohui Xiehttp://www.freescale.com/webapp/search/Serp.jsp?Reference+Manuals
10*5d898a00SShaohui Xie
11*5d898a00SShaohui XieBuilding PBL Boot Image and boot steps
12*5d898a00SShaohui Xie--------------------------------------
13*5d898a00SShaohui Xie
14*5d898a00SShaohui Xie1. Building PBL Boot Image.
15*5d898a00SShaohui Xie   The default Image is u-boot.pbl.
16*5d898a00SShaohui Xie
17*5d898a00SShaohui Xie   For eSPI boot(available on P3041/P4080/P5020):
18*5d898a00SShaohui Xie	To build the eSPI boot image:
19*5d898a00SShaohui Xie	make <board_name>_SPIFLASH_config
20*5d898a00SShaohui Xie	make u-boot.pbl
21*5d898a00SShaohui Xie
22*5d898a00SShaohui Xie   For SD boot(available on P3041/P4080/P5020):
23*5d898a00SShaohui Xie	To build the SD boot image:
24*5d898a00SShaohui Xie	make <board_name>_SDCARD_config
25*5d898a00SShaohui Xie	make u-boot.pbl
26*5d898a00SShaohui Xie
27*5d898a00SShaohui Xie   For Nand boot(available on P3041/P5020):
28*5d898a00SShaohui Xie	To build the NAND boot image:
29*5d898a00SShaohui Xie	make <board_name>_NAND_config
30*5d898a00SShaohui Xie	make u-boot.pbl
31*5d898a00SShaohui Xie
32*5d898a00SShaohui Xie
33*5d898a00SShaohui Xie2. pblimage support available with mkimage utility will generate Freescale PBL
34*5d898a00SShaohui Xieboot image that can be flashed on the board eSPI flash, SD/MMC and NAND.
35*5d898a00SShaohui XieFollowing steps describe it in detail.
36*5d898a00SShaohui Xie
37*5d898a00SShaohui Xie	1). Boot from eSPI flash
38*5d898a00SShaohui Xie	Write u-boot.pbl to eSPI flash from offset 0x0.
39*5d898a00SShaohui Xie	for ex in u-boot:
40*5d898a00SShaohui Xie	=>tftp 100000 u-boot.pbl
41*5d898a00SShaohui Xie	=>sf probe 0
42*5d898a00SShaohui Xie	=>sf erase 0 100000
43*5d898a00SShaohui Xie	=>sf write 100000 0 $filesize
44*5d898a00SShaohui Xie	Change SW1[1:5] = off off on off on.
45*5d898a00SShaohui Xie
46*5d898a00SShaohui Xie	2). Boot from SD/MMC
47*5d898a00SShaohui Xie	Write u-boot.pbl to SD/MMC from offset 0x1000.
48*5d898a00SShaohui Xie	for ex in u-boot:
49*5d898a00SShaohui Xie	=>tftp 100000 u-boot.pbl
50*5d898a00SShaohui Xie	=>mmcinfo
51*5d898a00SShaohui Xie	=>mmc write 100000 8 441
52*5d898a00SShaohui Xie	Change SW1[1:5] = off off on on off.
53*5d898a00SShaohui Xie
54*5d898a00SShaohui Xie	3). Boot from Nand
55*5d898a00SShaohui Xie	Write u-boot.pbl to Nand from offset 0x0.
56*5d898a00SShaohui Xie	for ex in u-boot:
57*5d898a00SShaohui Xie	=>tftp 100000 u-boot.pbl
58*5d898a00SShaohui Xie	=>nand info
59*5d898a00SShaohui Xie	=>nand erase 0 100000
60*5d898a00SShaohui Xie	=>nand write 100000 0 $filesize
61*5d898a00SShaohui Xie	Change SW1[1:5] = off on off off on
62*5d898a00SShaohui Xie	Change SW7[1:4] = on off off on
63*5d898a00SShaohui Xie
64*5d898a00SShaohui XieBoard specific configuration file specifications:
65*5d898a00SShaohui Xie------------------------------------------------
66*5d898a00SShaohui Xie1. Configuration files rcw.cfg and pbi.cfg must present in the
67*5d898a00SShaohui Xieboard/freescale/corenet_ds/, rcw.cfg is for RCW, pbi.cfg is for
68*5d898a00SShaohui XiePBI instructions. File name must not be changed since they are used
69*5d898a00SShaohui Xiein Makefile.
70*5d898a00SShaohui Xie2. These files can have empty lines and lines starting with "#" as first
71*5d898a00SShaohui Xiecharacter to put comments
72*5d898a00SShaohui Xie
73*5d898a00SShaohui XieTypical example of rcw.cfg file:
74*5d898a00SShaohui Xie-----------------------------------
75*5d898a00SShaohui Xie
76*5d898a00SShaohui Xie#PBL preamble and RCW header
77*5d898a00SShaohui Xieaa55aa55 010e0100
78*5d898a00SShaohui Xie#64 bytes RCW data
79*5d898a00SShaohui Xie4c580000 00000000 18185218 0000cccc
80*5d898a00SShaohui Xie40464000 3c3c2000 58000000 61000000
81*5d898a00SShaohui Xie00000000 00000000 00000000 008b6000
82*5d898a00SShaohui Xie00000000 00000000 00000000 00000000
83*5d898a00SShaohui Xie
84*5d898a00SShaohui XieTypical example of pbi.cfg file:
85*5d898a00SShaohui Xie-----------------------------------
86*5d898a00SShaohui Xie
87*5d898a00SShaohui Xie#PBI commands
88*5d898a00SShaohui Xie#Initialize CPC1
89*5d898a00SShaohui Xie09010000 00200400
90*5d898a00SShaohui Xie09138000 00000000
91*5d898a00SShaohui Xie091380c0 00000100
92*5d898a00SShaohui Xie09010100 00000000
93*5d898a00SShaohui Xie09010104 fff0000b
94*5d898a00SShaohui Xie09010f00 08000000
95*5d898a00SShaohui Xie09010000 80000000
96*5d898a00SShaohui Xie#Configure LAW for CPC1
97*5d898a00SShaohui Xie09000d00 00000000
98*5d898a00SShaohui Xie09000d04 fff00000
99*5d898a00SShaohui Xie09000d08 81000013
100*5d898a00SShaohui Xie09000010 00000000
101*5d898a00SShaohui Xie09000014 ff000000
102*5d898a00SShaohui Xie09000018 81000000
103*5d898a00SShaohui Xie#Initialize eSPI controller
104*5d898a00SShaohui Xie09110000 80000403
105*5d898a00SShaohui Xie09110020 2d170008
106*5d898a00SShaohui Xie09110024 00100008
107*5d898a00SShaohui Xie09110028 00100008
108*5d898a00SShaohui Xie0911002c 00100008
109*5d898a00SShaohui Xie#Flush PBL data
110*5d898a00SShaohui Xie09138000 00000000
111*5d898a00SShaohui Xie091380c0 00000000
112*5d898a00SShaohui Xie
113*5d898a00SShaohui Xie------------------------------------------------
114*5d898a00SShaohui XieAuthor: Shaohui Xie<Shaohui.Xie@freescale.com>
115