xref: /openbmc/u-boot/doc/README.uniphier (revision 673ac334fc4776064201cf78eec55ce248db1f95)
17168da16SMasahiro YamadaU-Boot for UniPhier SoC family
27168da16SMasahiro Yamada==============================
37168da16SMasahiro Yamada
47168da16SMasahiro Yamada
512a5ce72SMasahiro YamadaRecommended toolchains
612a5ce72SMasahiro Yamada----------------------
77168da16SMasahiro Yamada
8*673ac334SMasahiro YamadaThe UniPhier platform is well tested with Linaro toolchains.
97168da16SMasahiro YamadaYou can download pre-built toolchains from:
107168da16SMasahiro Yamada
117168da16SMasahiro Yamada    http://www.linaro.org/downloads/
127168da16SMasahiro Yamada
137168da16SMasahiro Yamada
147168da16SMasahiro YamadaCompile the source
157168da16SMasahiro Yamada------------------
167168da16SMasahiro Yamada
17*673ac334SMasahiro YamadaThe source can be configured and built with the following commands:
187168da16SMasahiro Yamada
19*673ac334SMasahiro Yamada    $ make <defconfig>
20*673ac334SMasahiro Yamada    $ make CROSS_COMPILE=<toolchain-prefix> DEVICE_TREE=<device-tree>
217168da16SMasahiro Yamada
22*673ac334SMasahiro YamadaThe recommended <toolchain-prefix> is `arm-linux-gnueabihf-` for 32bit SoCs,
23*673ac334SMasahiro Yamada`aarch64-linux-gnu-` for 64bit SoCs, but you may wish to change it to use your
24*673ac334SMasahiro Yamadafavorite compiler.
255fd3f434SMasahiro Yamada
26*673ac334SMasahiro YamadaThe following tables show <defconfig> and <device-tree> for each board.
273365b4ebSMasahiro Yamada
28*673ac334SMasahiro Yamada32bit SoC boards:
29c6c7eed7SMasahiro Yamada
30*673ac334SMasahiro Yamada Board         | <defconfig>                  | <device-tree>
31*673ac334SMasahiro Yamada---------------|------------------------------|------------------------------
32*673ac334SMasahiro YamadasLD3 reference | uniphier_sld3_defconfig      | uniphier-sld3-ref (default)
33*673ac334SMasahiro YamadaLD4 reference  | uniphier_ld4_sld8_defconfig  | uniphier-ld4-ref (default)
34*673ac334SMasahiro Yamadasld8 reference | uniphier_ld4_sld8_defconfig  | uniphier-sld8-def
35*673ac334SMasahiro YamadaPro4 reference | uniphier_pro4_defconfig      | uniphier-pro4-ref (default)
36*673ac334SMasahiro YamadaPro4 Ace       | uniphier_pro4_defconfig      | uniphier-pro4-ace
37*673ac334SMasahiro YamadaPro4 Sanji     | uniphier_pro4_defconfig      | uniphier-pro4-sanji
38*673ac334SMasahiro YamadaPro5 4KBOX     | uniphier_pxs2_ld6b_defconfig | uniphier-pro5-4kbox
39*673ac334SMasahiro YamadaPXs2 Gentil    | uniphier_pxs2_ld6b_defconfig | uniphier-pxs2-gentil
40*673ac334SMasahiro YamadaPXs2 Vodka     | uniphier_pxs2_ld6b_defconfig | uniphier-pxs2-vodka (default)
41*673ac334SMasahiro YamadaLD6b reference | uniphier_pxs2_ld6b_defconfig | uniphier-ld6b-ref
42c6c7eed7SMasahiro Yamada
43*673ac334SMasahiro Yamada64bit SoC boards:
44*673ac334SMasahiro Yamada
45*673ac334SMasahiro Yamada Board         | <defconfig>           | <device-tree>
46*673ac334SMasahiro Yamada---------------|-----------------------|----------------------------
47*673ac334SMasahiro YamadaLD11 reference | uniphier_v8_defconfig | uniphier-ld11-ref
48*673ac334SMasahiro YamadaLD11 Global    | uniphier_v8_defconfig | uniphier-ld11-global
49*673ac334SMasahiro YamadaLD20 reference | uniphier_v8_defconfig | uniphier-ld20-ref (default)
50*673ac334SMasahiro YamadaLD20 Global    | uniphier_v8_defconfig | uniphier-ld20-global
51*673ac334SMasahiro Yamada
52*673ac334SMasahiro YamadaFor example, to compile the source for PXs2 Vodka board, run the following:
53*673ac334SMasahiro Yamada
54fe7c95eeSMasahiro Yamada    $ make uniphier_pxs2_ld6b_defconfig
55*673ac334SMasahiro Yamada    $ make CROSS_COMPILE=arm-linux-gnueabihf- DEVICE_TREE=uniphier-pxs2-vodka
5628f40d4aSMasahiro Yamada
57*673ac334SMasahiro YamadaThe device tree marked as (default) can be omitted.  `uniphier-pxs2-vodka` is
58*673ac334SMasahiro Yamadathe default device tree for the configuration `uniphier_pxs2_ld6b_defconfig`,
59*673ac334SMasahiro Yamadaso the following gives the same result.
601a264534SMasahiro Yamada
611a264534SMasahiro Yamada    $ make uniphier_pxs2_ld6b_defconfig
6212a5ce72SMasahiro Yamada    $ make CROSS_COMPILE=arm-linux-gnueabihf-
63019df879SMasahiro Yamada
64019df879SMasahiro Yamada
65*673ac334SMasahiro YamadaBooting 32bit SoC boards
66*673ac334SMasahiro Yamada------------------------
6712a5ce72SMasahiro Yamada
68*673ac334SMasahiro YamadaThe build command will generate the following:
69*673ac334SMasahiro Yamada- u-boot.bin
70*673ac334SMasahiro Yamada- spl/u-boot.bin
7112a5ce72SMasahiro Yamada
72*673ac334SMasahiro YamadaU-Boot can boot UniPhier 32bit SoC boards by itself.  Flash the generated images
73*673ac334SMasahiro Yamadato the storage device (NAND or eMMC) on your board.
74d085ecd6SMasahiro Yamada
753cb9abc9SMasahiro Yamada - spl/u-boot-spl.bin at the offset address 0x00000000
76cf3175bcSMasahiro Yamada - u-boot.bin         at the offset address 0x00020000
77d085ecd6SMasahiro Yamada
78*673ac334SMasahiro YamadaThe `u-boot-with-spl.bin` is the concatenation of the two (with appropriate
79*673ac334SMasahiro Yamadapadding), so you can also do:
80d085ecd6SMasahiro Yamada
81d085ecd6SMasahiro Yamada - u-boot-with-spl.bin at the offset address 0x00000000
827168da16SMasahiro Yamada
837168da16SMasahiro YamadaIf a TFTP server is available, the images can be easily updated.
84d085ecd6SMasahiro YamadaJust copy the u-boot-spl.bin and u-boot.bin to the TFTP public directory,
85*673ac334SMasahiro Yamadaand run the following command at the U-Boot command line:
86*673ac334SMasahiro Yamada
87*673ac334SMasahiro YamadaTo update the images in NAND:
887168da16SMasahiro Yamada
897168da16SMasahiro Yamada    => run nandupdate
907168da16SMasahiro Yamada
91*673ac334SMasahiro YamadaTo update the images in eMMC:
92c231c436SMasahiro Yamada
93c231c436SMasahiro Yamada    => run emmcupdate
94c231c436SMasahiro Yamada
95c231c436SMasahiro Yamada
96*673ac334SMasahiro YamadaBooting 64bit SoC boards
97*673ac334SMasahiro Yamada------------------------
98*673ac334SMasahiro Yamada
99*673ac334SMasahiro YamadaThe build command will generate the following:
100*673ac334SMasahiro Yamada- u-boot.bin
101*673ac334SMasahiro Yamada
102*673ac334SMasahiro YamadaHowever, U-Boot is not the first stage loader for UniPhier 64bit SoC boards.
103*673ac334SMasahiro YamadaU-Boot serves as a non-secure boot loader loaded by [ARM Trusted Firmware],
104*673ac334SMasahiro Yamadaso you need to provide the `u-boot.bin` to the build command of ARM Trusted
105*673ac334SMasahiro YamadaFirmware.
106*673ac334SMasahiro Yamada
107*673ac334SMasahiro Yamada[ARM Trusted Firmware]: https://github.com/ARM-software/arm-trusted-firmware
108*673ac334SMasahiro Yamada
109*673ac334SMasahiro Yamada
1107168da16SMasahiro YamadaUniPhier specific commands
1117168da16SMasahiro Yamada--------------------------
1127168da16SMasahiro Yamada
1137168da16SMasahiro Yamada - pinmon (enabled by CONFIG_CMD_PINMON)
1147168da16SMasahiro Yamada     shows the boot mode pins that has been latched at the power-on reset
1157168da16SMasahiro Yamada
1167168da16SMasahiro Yamada - ddrphy (enabled by CONFIG_CMD_DDRPHY_DUMP)
1177168da16SMasahiro Yamada     shows the DDR PHY parameters set by the PHY training
1187168da16SMasahiro Yamada
11912a5ce72SMasahiro Yamada - ddrmphy (enabled by CONFIG_CMD_DDRMPHY_DUMP)
12012a5ce72SMasahiro Yamada     shows the DDR Multi PHY parameters set by the PHY training
12112a5ce72SMasahiro Yamada
1227168da16SMasahiro Yamada
1237168da16SMasahiro YamadaSupported devices
1247168da16SMasahiro Yamada-----------------
1257168da16SMasahiro Yamada
1267168da16SMasahiro Yamada - UART (on-chip)
1277168da16SMasahiro Yamada - NAND
128a111bfbfSMasahiro Yamada - SD/eMMC
1291e7df7c4SMasahiro Yamada - USB 2.0 (EHCI)
1301e7df7c4SMasahiro Yamada - USB 3.0 (xHCI)
131b9a66b63SMasahiro Yamada - GPIO
1327168da16SMasahiro Yamada - LAN (on-board SMSC9118)
1337168da16SMasahiro Yamada - I2C
1347168da16SMasahiro Yamada - EEPROM (connected to the on-board I2C bus)
1357168da16SMasahiro Yamada - Support card (SRAM, NOR flash, some peripherals)
1367168da16SMasahiro Yamada
1377168da16SMasahiro Yamada
13862102beeSMasahiro YamadaMicro Support Card
13962102beeSMasahiro Yamada------------------
14062102beeSMasahiro Yamada
14162102beeSMasahiro YamadaThe recommended bit switch settings are as follows:
14262102beeSMasahiro Yamada
14362102beeSMasahiro Yamada SW2    OFF(1)/ON(0)   Description
14462102beeSMasahiro Yamada ------------------------------------------
14562102beeSMasahiro Yamada bit 1   <----         BKSZ[0]
14662102beeSMasahiro Yamada bit 2   ---->         BKSZ[1]
14762102beeSMasahiro Yamada bit 3   <----         SoC Bus Width 16/32
14862102beeSMasahiro Yamada bit 4   <----         SERIAL_SEL[0]
14962102beeSMasahiro Yamada bit 5   ---->         SERIAL_SEL[1]
15062102beeSMasahiro Yamada bit 6   ---->         BOOTSWAP_EN
15162102beeSMasahiro Yamada bit 7   <----         CS1/CS5
15262102beeSMasahiro Yamada bit 8   <----         SOC_SERIAL_DISABLE
15362102beeSMasahiro Yamada
15462102beeSMasahiro Yamada SW8    OFF(1)/ON(0)   Description
15562102beeSMasahiro Yamada ------------------------------------------
156e69514ccSMasahiro Yamada bit 1    <----        CS1_SPLIT
15762102beeSMasahiro Yamada bit 2    <----        CASE9_ON
15862102beeSMasahiro Yamada bit 3    <----        CASE10_ON
15962102beeSMasahiro Yamada bit 4  Don't Care     Reserve
16062102beeSMasahiro Yamada bit 5  Don't Care     Reserve
16162102beeSMasahiro Yamada bit 6  Don't Care     Reserve
16262102beeSMasahiro Yamada bit 7    ---->        BURST_EN
16362102beeSMasahiro Yamada bit 8    ---->        FLASHBUS32_16
16462102beeSMasahiro Yamada
16562102beeSMasahiro YamadaThe BKSZ[1:0] specifies the address range of memory slot and peripherals
16662102beeSMasahiro Yamadaas follows:
16762102beeSMasahiro Yamada
16862102beeSMasahiro Yamada BKSZ    Description              RAM slot            Peripherals
16962102beeSMasahiro Yamada --------------------------------------------------------------------
170c57a9a63SMasahiro Yamada 0b00   15MB RAM / 1MB Peri    00000000-00efffff    00f00000-00ffffff
171c57a9a63SMasahiro Yamada 0b01   31MB RAM / 1MB Peri    00000000-01efffff    01f00000-01ffffff
172c57a9a63SMasahiro Yamada 0b10   64MB RAM / 1MB Peri    00000000-03efffff    03f00000-03ffffff
173c57a9a63SMasahiro Yamada 0b11  127MB RAM / 1MB Peri    00000000-07efffff    07f00000-07ffffff
17462102beeSMasahiro Yamada
17562102beeSMasahiro YamadaSet BSKZ[1:0] to 0b01 for U-Boot.
17662102beeSMasahiro YamadaThis mode is the most handy because EA[24] is always supported by the save pin
17762102beeSMasahiro Yamadamode of the system bus.  On the other hand, EA[25] is not supported for some
17862102beeSMasahiro Yamadanewer SoCs.  Even if it is, EA[25] is not connected on most of the boards.
17962102beeSMasahiro Yamada
1807168da16SMasahiro Yamada--
18162102beeSMasahiro YamadaMasahiro Yamada <yamada.masahiro@socionext.com>
182*673ac334SMasahiro YamadaJul. 2017
183