mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-23 20:24:26 +08:00
Merge branch 'master' of git://git.denx.de/u-boot-rockchip
This commit is contained in:
commit
c1b62ba9ca
12
Kconfig
12
Kconfig
@ -96,7 +96,17 @@ config SYS_MALLOC_F_LEN
|
||||
initial serial device and any others that are needed.
|
||||
|
||||
config SPL_SYS_MALLOC_F_LEN
|
||||
hex "Size of malloc() pool in spl before relocation"
|
||||
hex "Size of malloc() pool in SPL before relocation"
|
||||
depends on SYS_MALLOC_F
|
||||
default SYS_MALLOC_F_LEN
|
||||
help
|
||||
Before relocation, memory is very limited on many platforms. Still,
|
||||
we can provide a small malloc() pool if needed. Driver model in
|
||||
particular needs this to operate, so that it can allocate the
|
||||
initial serial device and any others that are needed.
|
||||
|
||||
config TPL_SYS_MALLOC_F_LEN
|
||||
hex "Size of malloc() pool in TPL before relocation"
|
||||
depends on SYS_MALLOC_F
|
||||
default SYS_MALLOC_F_LEN
|
||||
help
|
||||
|
3
Makefile
3
Makefile
@ -1400,7 +1400,8 @@ u-boot.lds: $(LDSCRIPT) prepare FORCE
|
||||
spl/u-boot-spl.bin: spl/u-boot-spl
|
||||
@:
|
||||
spl/u-boot-spl: tools prepare \
|
||||
$(if $(CONFIG_OF_SEPARATE)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb)
|
||||
$(if $(CONFIG_OF_SEPARATE)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb) \
|
||||
$(if $(CONFIG_OF_SEPARATE)$(CONFIG_TPL_OF_PLATDATA),dts/dt.dtb)
|
||||
$(Q)$(MAKE) obj=spl -f $(srctree)/scripts/Makefile.spl all
|
||||
|
||||
spl/sunxi-spl.bin: spl/u-boot-spl
|
||||
|
@ -618,6 +618,11 @@ config ARCH_MX6
|
||||
select SYS_FSL_SEC_LE
|
||||
select SYS_THUMB_BUILD if SPL
|
||||
|
||||
if ARCH_MX6
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/arm/mach-omap2/u-boot-spl.lds"
|
||||
endif
|
||||
|
||||
config ARCH_MX5
|
||||
bool "Freescale MX5"
|
||||
select CPU_V7
|
||||
@ -1233,3 +1238,10 @@ source "board/zipitz2/Kconfig"
|
||||
source "arch/arm/Kconfig.debug"
|
||||
|
||||
endmenu
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if TARGET_APX4DEVKIT || TARGET_BG0900 || TARGET_M28EVK || TARGET_MX23_OLINUXINO || TARGET_MX23EVK || TARGET_MX28EVK || TARGET_SANSA_FUZE_PLUS || TARGET_SC_SPS_1 || TARGET_TS4600 || TARGET_XFI3
|
||||
default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
|
||||
default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
|
||||
|
||||
|
||||
|
@ -8,7 +8,9 @@
|
||||
extra-y := start.o
|
||||
|
||||
obj-y += cpu.o
|
||||
ifndef CONFIG_$(SPL_TPL_)TIMER
|
||||
obj-y += generic_timer.o
|
||||
endif
|
||||
obj-y += cache_v8.o
|
||||
obj-y += exceptions.o
|
||||
obj-y += cache.o
|
||||
|
@ -22,6 +22,7 @@
|
||||
* x1: 0 clean & invalidate, 1 invalidate only
|
||||
* x2~x9: clobbered
|
||||
*/
|
||||
.pushsection .text.__asm_dcache_level, "ax"
|
||||
ENTRY(__asm_dcache_level)
|
||||
lsl x12, x0, #1
|
||||
msr csselr_el1, x12 /* select cache level */
|
||||
@ -58,6 +59,7 @@ loop_way:
|
||||
|
||||
ret
|
||||
ENDPROC(__asm_dcache_level)
|
||||
.popsection
|
||||
|
||||
/*
|
||||
* void __asm_flush_dcache_all(int invalidate_only)
|
||||
@ -66,6 +68,7 @@ ENDPROC(__asm_dcache_level)
|
||||
*
|
||||
* flush or invalidate all data cache by SET/WAY.
|
||||
*/
|
||||
.pushsection .text.__asm_dcache_all, "ax"
|
||||
ENTRY(__asm_dcache_all)
|
||||
mov x1, x0
|
||||
dsb sy
|
||||
@ -102,16 +105,21 @@ skip:
|
||||
finished:
|
||||
ret
|
||||
ENDPROC(__asm_dcache_all)
|
||||
.popsection
|
||||
|
||||
.pushsection .text.__asm_flush_dcache_all, "ax"
|
||||
ENTRY(__asm_flush_dcache_all)
|
||||
mov x0, #0
|
||||
b __asm_dcache_all
|
||||
ENDPROC(__asm_flush_dcache_all)
|
||||
.popsection
|
||||
|
||||
.pushsection .text.__asm_invalidate_dcache_all, "ax"
|
||||
ENTRY(__asm_invalidate_dcache_all)
|
||||
mov x0, #0x1
|
||||
b __asm_dcache_all
|
||||
ENDPROC(__asm_invalidate_dcache_all)
|
||||
.popsection
|
||||
|
||||
/*
|
||||
* void __asm_flush_dcache_range(start, end)
|
||||
@ -121,6 +129,7 @@ ENDPROC(__asm_invalidate_dcache_all)
|
||||
* x0: start address
|
||||
* x1: end address
|
||||
*/
|
||||
.pushsection .text.__asm_flush_dcache_range, "ax"
|
||||
ENTRY(__asm_flush_dcache_range)
|
||||
mrs x3, ctr_el0
|
||||
lsr x3, x3, #16
|
||||
@ -138,6 +147,7 @@ ENTRY(__asm_flush_dcache_range)
|
||||
dsb sy
|
||||
ret
|
||||
ENDPROC(__asm_flush_dcache_range)
|
||||
.popsection
|
||||
/*
|
||||
* void __asm_invalidate_dcache_range(start, end)
|
||||
*
|
||||
@ -146,6 +156,7 @@ ENDPROC(__asm_flush_dcache_range)
|
||||
* x0: start address
|
||||
* x1: end address
|
||||
*/
|
||||
.pushsection .text.__asm_invalidate_dcache_range, "ax"
|
||||
ENTRY(__asm_invalidate_dcache_range)
|
||||
mrs x3, ctr_el0
|
||||
ubfm x3, x3, #16, #19
|
||||
@ -162,41 +173,51 @@ ENTRY(__asm_invalidate_dcache_range)
|
||||
dsb sy
|
||||
ret
|
||||
ENDPROC(__asm_invalidate_dcache_range)
|
||||
.popsection
|
||||
|
||||
/*
|
||||
* void __asm_invalidate_icache_all(void)
|
||||
*
|
||||
* invalidate all tlb entries.
|
||||
*/
|
||||
.pushsection .text.__asm_invalidate_icache_all, "ax"
|
||||
ENTRY(__asm_invalidate_icache_all)
|
||||
ic ialluis
|
||||
isb sy
|
||||
ret
|
||||
ENDPROC(__asm_invalidate_icache_all)
|
||||
.popsection
|
||||
|
||||
.pushsection .text.__asm_invalidate_l3_dcache, "ax"
|
||||
ENTRY(__asm_invalidate_l3_dcache)
|
||||
mov x0, #0 /* return status as success */
|
||||
ret
|
||||
ENDPROC(__asm_invalidate_l3_dcache)
|
||||
.weak __asm_invalidate_l3_dcache
|
||||
.popsection
|
||||
|
||||
.pushsection .text.__asm_flush_l3_dcache, "ax"
|
||||
ENTRY(__asm_flush_l3_dcache)
|
||||
mov x0, #0 /* return status as success */
|
||||
ret
|
||||
ENDPROC(__asm_flush_l3_dcache)
|
||||
.weak __asm_flush_l3_dcache
|
||||
.popsection
|
||||
|
||||
.pushsection .text.__asm_invalidate_l3_icache, "ax"
|
||||
ENTRY(__asm_invalidate_l3_icache)
|
||||
mov x0, #0 /* return status as success */
|
||||
ret
|
||||
ENDPROC(__asm_invalidate_l3_icache)
|
||||
.weak __asm_invalidate_l3_icache
|
||||
.popsection
|
||||
|
||||
/*
|
||||
* void __asm_switch_ttbr(ulong new_ttbr)
|
||||
*
|
||||
* Safely switches to a new page table.
|
||||
*/
|
||||
.pushsection .text.__asm_switch_ttbr, "ax"
|
||||
ENTRY(__asm_switch_ttbr)
|
||||
/* x2 = SCTLR (alive throghout the function) */
|
||||
switch_el x4, 3f, 2f, 1f
|
||||
@ -244,3 +265,4 @@ ENTRY(__asm_switch_ttbr)
|
||||
|
||||
ret x3
|
||||
ENDPROC(__asm_switch_ttbr)
|
||||
.popsection
|
||||
|
@ -393,3 +393,6 @@ config SYS_MC_RSV_MEM_ALIGN
|
||||
help
|
||||
Reserved memory needs to be aligned for MC to use. Default value
|
||||
is 512MB.
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A
|
||||
|
@ -14,7 +14,8 @@
|
||||
* void __asm_invalidate_tlb_all(void)
|
||||
*
|
||||
* invalidate all tlb entries.
|
||||
*/
|
||||
*/
|
||||
.pushsection .text.__asm_invalidate_tlb_all, "ax"
|
||||
ENTRY(__asm_invalidate_tlb_all)
|
||||
switch_el x9, 3f, 2f, 1f
|
||||
3: tlbi alle3
|
||||
@ -31,3 +32,4 @@ ENTRY(__asm_invalidate_tlb_all)
|
||||
0:
|
||||
ret
|
||||
ENDPROC(__asm_invalidate_tlb_all)
|
||||
.popsection
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/macro.h>
|
||||
|
||||
.pushsection .text.armv8_switch_to_el2, "ax"
|
||||
ENTRY(armv8_switch_to_el2)
|
||||
switch_el x6, 1f, 0f, 0f
|
||||
0:
|
||||
@ -30,7 +31,9 @@ ENTRY(armv8_switch_to_el2)
|
||||
br x4
|
||||
1: armv8_switch_to_el2_m x4, x5, x6
|
||||
ENDPROC(armv8_switch_to_el2)
|
||||
.popsection
|
||||
|
||||
.pushsection .text.armv8_switch_to_el1, "ax"
|
||||
ENTRY(armv8_switch_to_el1)
|
||||
switch_el x6, 0f, 1f, 0f
|
||||
0:
|
||||
@ -40,7 +43,10 @@ ENTRY(armv8_switch_to_el1)
|
||||
br x4
|
||||
1: armv8_switch_to_el1_m x4, x5, x6
|
||||
ENDPROC(armv8_switch_to_el1)
|
||||
.popsection
|
||||
|
||||
.pushsection .text.armv8_el2_to_aarch32, "ax"
|
||||
WEAK(armv8_el2_to_aarch32)
|
||||
ret
|
||||
ENDPROC(armv8_el2_to_aarch32)
|
||||
.popsection
|
||||
|
@ -42,6 +42,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
|
||||
rk3288-veyron-mickey.dtb \
|
||||
rk3288-veyron-minnie.dtb \
|
||||
rk3328-evb.dtb \
|
||||
rk3368-lion.dtb \
|
||||
rk3368-sheep.dtb \
|
||||
rk3368-geekbox.dtb \
|
||||
rk3368-px5-evb.dtb \
|
||||
|
@ -72,6 +72,17 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
status = "okay";
|
||||
bus-width = <4>;
|
||||
cap-mmc-highspeed;
|
||||
cap-sd-highspeed;
|
||||
card-detect-delay = <200>;
|
||||
disable-wp;
|
||||
num-slots = <1>;
|
||||
supports-sd;
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -21,6 +21,8 @@
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
serial2 = &uart2;
|
||||
mmc0 = &emmc;
|
||||
mmc1 = &sdmmc;
|
||||
};
|
||||
|
||||
cpus {
|
||||
@ -383,12 +385,38 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdmmc: dwmmc@30000000 {
|
||||
compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x30000000 0x4000>;
|
||||
max-frequency = <150000000>;
|
||||
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
|
||||
<&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
|
||||
clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
|
||||
fifo-depth = <0x100>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdio: dwmmc@30010000 {
|
||||
compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x30010000 0x4000>;
|
||||
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
|
||||
<&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
|
||||
clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
|
||||
fifo-depth = <0x100>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
emmc: dwmmc@30020000 {
|
||||
compatible = "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x30020000 0x4000>;
|
||||
max-frequency = <150000000>;
|
||||
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-frequency = <37500000>;
|
||||
max-frequency = <37500000>;
|
||||
clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
|
||||
<&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
|
||||
clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
|
||||
@ -520,6 +548,40 @@
|
||||
drive-strength = <12>;
|
||||
};
|
||||
|
||||
sdmmc {
|
||||
sdmmc_clk: sdmmc-clk {
|
||||
rockchip,pins = <1 16 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
|
||||
};
|
||||
|
||||
sdmmc_cmd: sdmmc-cmd {
|
||||
rockchip,pins = <1 15 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
|
||||
};
|
||||
|
||||
sdmmc_bus4: sdmmc-bus4 {
|
||||
rockchip,pins = <1 18 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
|
||||
<1 19 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
|
||||
<1 20 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
|
||||
<1 21 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
|
||||
};
|
||||
};
|
||||
|
||||
sdio {
|
||||
sdio_clk: sdio-clk {
|
||||
rockchip,pins = <3 0 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
|
||||
};
|
||||
|
||||
sdio_cmd: sdio-cmd {
|
||||
rockchip,pins = <3 1 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
|
||||
};
|
||||
|
||||
sdio_bus4: sdio-bus4 {
|
||||
rockchip,pins = <3 2 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
|
||||
<3 3 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
|
||||
<3 4 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
|
||||
<3 5 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
|
||||
};
|
||||
};
|
||||
|
||||
emmc {
|
||||
emmc_clk: emmc-clk {
|
||||
rockchip,pins = <2 RK_PA7 RK_FUNC_2 &pcfg_pull_none>;
|
||||
|
34
arch/arm/dts/rk3368-geekbox-u-boot.dtsi
Normal file
34
arch/arm/dts/rk3368-geekbox-u-boot.dtsi
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ X11
|
||||
*/
|
||||
|
||||
&pinctrl {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&service_msch {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&dmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pmugrf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&cru {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&grf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
93
arch/arm/dts/rk3368-lion-u-boot.dtsi
Normal file
93
arch/arm/dts/rk3368-lion-u-boot.dtsi
Normal file
@ -0,0 +1,93 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ X11
|
||||
*/
|
||||
|
||||
/ {
|
||||
config {
|
||||
u-boot,spl-payload-offset = <0x40000>; /* @ 256KB */
|
||||
u-boot,mmc-env-offset = <0x4000>; /* @ 16KB */
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
u-boot,spl-boot-order = &emmc, &sdmmc;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&service_msch {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&dmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
/*
|
||||
* Validation of throughput using SPEC2000 shows the following
|
||||
* relative performance for the different memory schedules:
|
||||
* - CBDR: 30.1
|
||||
* - CBRD: 29.8
|
||||
* - CRBD: 29.9
|
||||
* Note that the best performance for any given application workload
|
||||
* may vary from the default configured here (e.g. 164.gzip is fastest
|
||||
* with CBRD, whereas 252.eon and 186.crafty are fastest with CRBD).
|
||||
*
|
||||
* See doc/device-tree-bindings/clock/rockchip,rk3368-dmc.txt for
|
||||
* details on the 'rockchip,memory-schedule' property and how it
|
||||
* affects the physical-address to device-address mapping.
|
||||
*/
|
||||
rockchip,memory-schedule = <DMC_MSCH_CBDR>;
|
||||
rockchip,ddr-frequency = <800000000>;
|
||||
rockchip,ddr-speed-bin = <DDR3_1600K>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pmugrf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&sgrf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&cru {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&grf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&emmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&spi1 {
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
spiflash: w25q32dw@0 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
&timer0 {
|
||||
u-boot,dm-pre-reloc;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
|
||||
|
195
arch/arm/dts/rk3368-lion.dts
Normal file
195
arch/arm/dts/rk3368-lion.dts
Normal file
@ -0,0 +1,195 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ X11
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "rk3368.dtsi"
|
||||
#include "rk3368-lion-u-boot.dtsi"
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
/ {
|
||||
model = "Theobroma Systems RK3368-uQ7 SoM";
|
||||
compatible = "tsd,rk3368-uq7", "tsd,lion", "rockchip,rk3368";
|
||||
|
||||
aliases {
|
||||
mmc0 = &emmc;
|
||||
mmc1 = &sdmmc;
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x80000000>;
|
||||
};
|
||||
|
||||
ext_gmac: gmac-clk {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <125000000>;
|
||||
clock-output-names = "ext_gmac";
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
vcc_sys: vcc-sys-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_sys";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emmc {
|
||||
status = "okay";
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
clock-frequency = <150000000>;
|
||||
disable-wp;
|
||||
keep-power-in-suspend;
|
||||
non-removable;
|
||||
num-slots = <1>;
|
||||
vmmc-supply = <&vcc33_io>;
|
||||
vqmmc-supply = <&vcc18_io>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gmac {
|
||||
status = "okay";
|
||||
phy-supply = <&vcc33_io>;
|
||||
phy-mode = "rgmii";
|
||||
clock_in_out = "input";
|
||||
snps,reset-gpio = <&gpio3 11 GPIO_ACTIVE_LOW>;
|
||||
snps,reset-active-low;
|
||||
snps,reset-delays-us = <2 10000 50000>;
|
||||
assigned-clocks = <&cru SCLK_MAC>;
|
||||
assigned-clock-parents = <&ext_gmac>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rgmii_pins>;
|
||||
tx_delay = <0x10>;
|
||||
rx_delay = <0x10>;
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
|
||||
rk808: pmic@1b {
|
||||
compatible = "rockchip,rk808";
|
||||
reg = <0x1b>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
|
||||
rockchip,system-power-controller;
|
||||
vcc1-supply = <&vcc_sys>;
|
||||
vcc2-supply = <&vcc_sys>;
|
||||
vcc3-supply = <&vcc_sys>;
|
||||
vcc4-supply = <&vcc_sys>;
|
||||
vcc6-supply = <&vcc_sys>;
|
||||
vcc7-supply = <&vcc_sys>;
|
||||
vcc8-supply = <&vcc_sys>;
|
||||
vcc9-supply = <&vcc_sys>;
|
||||
vcc10-supply = <&vcc_sys>;
|
||||
vcc11-supply = <&vcc_sys>;
|
||||
vcc12-supply = <&vcc_sys>;
|
||||
clock-output-names = "xin32k", "rk808-clkout2";
|
||||
#clock-cells = <1>;
|
||||
|
||||
regulators {
|
||||
vdd_cpu: DCDC_REG1 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-name = "vdd_cpu";
|
||||
};
|
||||
|
||||
vdd_log: DCDC_REG2 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-name = "vdd_log";
|
||||
};
|
||||
|
||||
vcc_ddr: DCDC_REG3 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-name = "vcc_ddr";
|
||||
};
|
||||
|
||||
vcc33_io: DCDC_REG4 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc33_io";
|
||||
};
|
||||
|
||||
vcc33_video: LDO_REG2 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc33_video";
|
||||
};
|
||||
|
||||
vdd10_pll: LDO_REG3 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-name = "vdd10_pll";
|
||||
};
|
||||
|
||||
vcc18_io: LDO_REG4 {
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc18_io";
|
||||
};
|
||||
|
||||
vdd10_video: LDO_REG6 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-name = "vdd10_video";
|
||||
};
|
||||
|
||||
vcc18_video: LDO_REG8 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc18_video";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi1 {
|
||||
status = "okay";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
spiflash: w25q32dw@0 {
|
||||
compatible = "spi-flash";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <49500000>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
};
|
||||
};
|
34
arch/arm/dts/rk3368-px5-evb-u-boot.dtsi
Normal file
34
arch/arm/dts/rk3368-px5-evb-u-boot.dtsi
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ X11
|
||||
*/
|
||||
|
||||
&pinctrl {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&service_msch {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&dmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pmugrf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&cru {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&grf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&uart4 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
34
arch/arm/dts/rk3368-sheep-u-boot.dtsi
Normal file
34
arch/arm/dts/rk3368-sheep-u-boot.dtsi
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ X11
|
||||
*/
|
||||
|
||||
&pinctrl {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&service_msch {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&dmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pmugrf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&cru {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&grf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
@ -46,6 +46,7 @@
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/pinctrl/rockchip.h>
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
#include <dt-bindings/memory/rk3368-dmc.h>
|
||||
|
||||
/ {
|
||||
compatible = "rockchip,rk3368";
|
||||
@ -227,6 +228,21 @@
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
dmc: dmc@ff610000 {
|
||||
compatible = "rockchip,rk3368-dmc", "syscon";
|
||||
rockchip,cru = <&cru>;
|
||||
rockchip,grf = <&grf>;
|
||||
rockchip,msch = <&service_msch>;
|
||||
reg = <0 0xff610000 0 0x400
|
||||
0 0xff620000 0 0x400>;
|
||||
};
|
||||
|
||||
service_msch: syscon@ffac0000 {
|
||||
compatible = "rockchip,rk3368-msch", "syscon";
|
||||
reg = <0x0 0xffac0000 0x0 0x2000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdmmc: dwmmc@ff0c0000 {
|
||||
compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x0 0xff0c0000 0x0 0x4000>;
|
||||
@ -546,12 +562,6 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dmc: dmc@ff610000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
compatible = "rockchip,rk3368-dmc", "syscon";
|
||||
reg = <0x0 0xff610000 0x0 0x1000>;
|
||||
};
|
||||
|
||||
i2c0: i2c@ff650000 {
|
||||
compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
|
||||
reg = <0x0 0xff650000 0x0 0x1000>;
|
||||
@ -647,11 +657,15 @@
|
||||
};
|
||||
|
||||
pmugrf: syscon@ff738000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
compatible = "rockchip,rk3368-pmugrf", "syscon";
|
||||
reg = <0x0 0xff738000 0x0 0x1000>;
|
||||
};
|
||||
|
||||
sgrf: syscon@ff740000 {
|
||||
compatible = "rockchip,rk3368-sgrf", "syscon";
|
||||
reg = <0x0 0xff740000 0x0 0x1000>;
|
||||
};
|
||||
|
||||
cru: clock-controller@ff760000 {
|
||||
compatible = "rockchip,rk3368-cru";
|
||||
reg = <0x0 0xff760000 0x0 0x1000>;
|
||||
@ -673,7 +687,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timer@ff810000 {
|
||||
timer0: timer@ff810000 {
|
||||
compatible = "rockchip,rk3368-timer", "rockchip,rk3288-timer";
|
||||
reg = <0x0 0xff810000 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -85,7 +85,7 @@ enum {
|
||||
EMMC_PLL_SELECT_24MHZ,
|
||||
|
||||
EMMC_DIV_SHIFT = 8,
|
||||
EMMC_DIV_MASK = 0x3f < EMMC_DIV_SHIFT,
|
||||
EMMC_DIV_MASK = 0x3f << EMMC_DIV_SHIFT,
|
||||
|
||||
SDIO0_PLL_SHIFT = 6,
|
||||
SDIO0_PLL_MASK = 3 << SDIO0_PLL_SHIFT,
|
||||
|
@ -89,19 +89,26 @@ enum {
|
||||
MCU_CLK_DIV_SHIFT = 0,
|
||||
MCU_CLK_DIV_MASK = GENMASK(4, 0),
|
||||
|
||||
/* CLKSEL43_CON */
|
||||
GMAC_MUX_SEL_EXTCLK = BIT(8),
|
||||
|
||||
/* CLKSEL51_CON */
|
||||
MMC_PLL_SEL_SHIFT = 8,
|
||||
MMC_PLL_SEL_MASK = GENMASK(9, 8),
|
||||
MMC_PLL_SEL_CPLL = 0,
|
||||
MMC_PLL_SEL_GPLL,
|
||||
MMC_PLL_SEL_USBPHY_480M,
|
||||
MMC_PLL_SEL_24M,
|
||||
MMC_PLL_SEL_CPLL = (0 << MMC_PLL_SEL_SHIFT),
|
||||
MMC_PLL_SEL_GPLL = (1 << MMC_PLL_SEL_SHIFT),
|
||||
MMC_PLL_SEL_USBPHY_480M = (2 << MMC_PLL_SEL_SHIFT),
|
||||
MMC_PLL_SEL_24M = (3 << MMC_PLL_SEL_SHIFT),
|
||||
MMC_CLK_DIV_SHIFT = 0,
|
||||
MMC_CLK_DIV_MASK = GENMASK(6, 0),
|
||||
|
||||
/* SOFTRST1_CON */
|
||||
MCU_PO_SRST_MASK = BIT(13),
|
||||
MCU_SYS_SRST_MASK = BIT(12),
|
||||
DMA1_SRST_REQ = BIT(2),
|
||||
|
||||
/* SOFTRST4_CON */
|
||||
DMA2_SRST_REQ = BIT(0),
|
||||
|
||||
/* GLB_RST_CON */
|
||||
PMU_GLB_SRST_CTRL_SHIFT = 2,
|
||||
|
187
arch/arm/include/asm/arch-rockchip/ddr_rk3368.h
Normal file
187
arch/arm/include/asm/arch-rockchip/ddr_rk3368.h
Normal file
@ -0,0 +1,187 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_DDR_RK3368_H__
|
||||
#define __ASM_ARCH_DDR_RK3368_H__
|
||||
|
||||
/*
|
||||
* The RK3368 DDR PCTL differs from the incarnation in the RK3288 only
|
||||
* in a few details. Most notably, it has an additional field to track
|
||||
* tREFI in controller cycles (i.e. trefi_mem_ddr3).
|
||||
*/
|
||||
struct rk3368_ddr_pctl {
|
||||
u32 scfg;
|
||||
u32 sctl;
|
||||
u32 stat;
|
||||
u32 intrstat;
|
||||
u32 reserved0[12];
|
||||
u32 mcmd;
|
||||
u32 powctl;
|
||||
u32 powstat;
|
||||
u32 cmdtstat;
|
||||
u32 cmdtstaten;
|
||||
u32 reserved1[3];
|
||||
u32 mrrcfg0;
|
||||
u32 mrrstat0;
|
||||
u32 mrrstat1;
|
||||
u32 reserved2[4];
|
||||
u32 mcfg1;
|
||||
u32 mcfg;
|
||||
u32 ppcfg;
|
||||
u32 mstat;
|
||||
u32 lpddr2zqcfg;
|
||||
u32 reserved3;
|
||||
u32 dtupdes;
|
||||
u32 dtuna;
|
||||
u32 dtune;
|
||||
u32 dtuprd0;
|
||||
u32 dtuprd1;
|
||||
u32 dtuprd2;
|
||||
u32 dtuprd3;
|
||||
u32 dtuawdt;
|
||||
u32 reserved4[3];
|
||||
u32 togcnt1u;
|
||||
u32 tinit;
|
||||
u32 trsth;
|
||||
u32 togcnt100n;
|
||||
u32 trefi;
|
||||
u32 tmrd;
|
||||
u32 trfc;
|
||||
u32 trp;
|
||||
u32 trtw;
|
||||
u32 tal;
|
||||
u32 tcl;
|
||||
u32 tcwl;
|
||||
u32 tras;
|
||||
u32 trc;
|
||||
u32 trcd;
|
||||
u32 trrd;
|
||||
u32 trtp;
|
||||
u32 twr;
|
||||
u32 twtr;
|
||||
u32 texsr;
|
||||
u32 txp;
|
||||
u32 txpdll;
|
||||
u32 tzqcs;
|
||||
u32 tzqcsi;
|
||||
u32 tdqs;
|
||||
u32 tcksre;
|
||||
u32 tcksrx;
|
||||
u32 tcke;
|
||||
u32 tmod;
|
||||
u32 trstl;
|
||||
u32 tzqcl;
|
||||
u32 tmrr;
|
||||
u32 tckesr;
|
||||
u32 tdpd;
|
||||
u32 trefi_mem_ddr3;
|
||||
u32 reserved5[45];
|
||||
u32 dtuwactl;
|
||||
u32 dturactl;
|
||||
u32 dtucfg;
|
||||
u32 dtuectl;
|
||||
u32 dtuwd0;
|
||||
u32 dtuwd1;
|
||||
u32 dtuwd2;
|
||||
u32 dtuwd3;
|
||||
u32 dtuwdm;
|
||||
u32 dturd0;
|
||||
u32 dturd1;
|
||||
u32 dturd2;
|
||||
u32 dturd3;
|
||||
u32 dtulfsrwd;
|
||||
u32 dtulfsrrd;
|
||||
u32 dtueaf;
|
||||
u32 dfitctrldelay;
|
||||
u32 dfiodtcfg;
|
||||
u32 dfiodtcfg1;
|
||||
u32 dfiodtrankmap;
|
||||
u32 dfitphywrdata;
|
||||
u32 dfitphywrlat;
|
||||
u32 reserved7[2];
|
||||
u32 dfitrddataen;
|
||||
u32 dfitphyrdlat;
|
||||
u32 reserved8[2];
|
||||
u32 dfitphyupdtype0;
|
||||
u32 dfitphyupdtype1;
|
||||
u32 dfitphyupdtype2;
|
||||
u32 dfitphyupdtype3;
|
||||
u32 dfitctrlupdmin;
|
||||
u32 dfitctrlupdmax;
|
||||
u32 dfitctrlupddly;
|
||||
u32 reserved9;
|
||||
u32 dfiupdcfg;
|
||||
u32 dfitrefmski;
|
||||
u32 dfitctrlupdi;
|
||||
u32 reserved10[4];
|
||||
u32 dfitrcfg0;
|
||||
u32 dfitrstat0;
|
||||
u32 dfitrwrlvlen;
|
||||
u32 dfitrrdlvlen;
|
||||
u32 dfitrrdlvlgateen;
|
||||
u32 dfiststat0;
|
||||
u32 dfistcfg0;
|
||||
u32 dfistcfg1;
|
||||
u32 reserved11;
|
||||
u32 dfitdramclken;
|
||||
u32 dfitdramclkdis;
|
||||
u32 dfistcfg2;
|
||||
u32 dfistparclr;
|
||||
u32 dfistparlog;
|
||||
u32 reserved12[3];
|
||||
u32 dfilpcfg0;
|
||||
u32 reserved13[3];
|
||||
u32 dfitrwrlvlresp0;
|
||||
u32 dfitrwrlvlresp1;
|
||||
u32 dfitrwrlvlresp2;
|
||||
u32 dfitrrdlvlresp0;
|
||||
u32 dfitrrdlvlresp1;
|
||||
u32 dfitrrdlvlresp2;
|
||||
u32 dfitrwrlvldelay0;
|
||||
u32 dfitrwrlvldelay1;
|
||||
u32 dfitrwrlvldelay2;
|
||||
u32 dfitrrdlvldelay0;
|
||||
u32 dfitrrdlvldelay1;
|
||||
u32 dfitrrdlvldelay2;
|
||||
u32 dfitrrdlvlgatedelay0;
|
||||
u32 dfitrrdlvlgatedelay1;
|
||||
u32 dfitrrdlvlgatedelay2;
|
||||
u32 dfitrcmd;
|
||||
u32 reserved14[46];
|
||||
u32 ipvr;
|
||||
u32 iptr;
|
||||
};
|
||||
check_member(rk3368_ddr_pctl, iptr, 0x03fc);
|
||||
|
||||
struct rk3368_ddrphy {
|
||||
u32 reg[0x100];
|
||||
};
|
||||
check_member(rk3368_ddrphy, reg[0xff], 0x03fc);
|
||||
|
||||
struct rk3368_msch {
|
||||
u32 coreid;
|
||||
u32 revisionid;
|
||||
u32 ddrconf;
|
||||
u32 ddrtiming;
|
||||
u32 ddrmode;
|
||||
u32 readlatency;
|
||||
u32 reserved1[8];
|
||||
u32 activate;
|
||||
u32 devtodev;
|
||||
};
|
||||
check_member(rk3368_msch, devtodev, 0x003c);
|
||||
|
||||
/* GRF_SOC_CON0 */
|
||||
enum {
|
||||
NOC_RSP_ERR_STALL = BIT(9),
|
||||
MOBILE_DDR_SEL = BIT(4),
|
||||
DDR0_16BIT_EN = BIT(3),
|
||||
MSCH0_MAINDDR3_DDR3 = BIT(2),
|
||||
MSCH0_MAINPARTIALPOP = BIT(1),
|
||||
UPCTL_C_ACTIVE = BIT(0),
|
||||
};
|
||||
|
||||
#endif
|
@ -1,4 +1,6 @@
|
||||
/* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
||||
/*
|
||||
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
@ -74,8 +76,11 @@ struct rk3368_grf {
|
||||
u32 soc_con15;
|
||||
u32 soc_con16;
|
||||
u32 soc_con17;
|
||||
u32 reserved5[0x6e];
|
||||
u32 ddrc0_con0;
|
||||
};
|
||||
check_member(rk3368_grf, soc_con17, 0x444);
|
||||
check_member(rk3368_grf, ddrc0_con0, 0x600);
|
||||
|
||||
struct rk3368_pmu_grf {
|
||||
u32 gpio0a_iomux;
|
||||
@ -92,323 +97,11 @@ struct rk3368_pmu_grf {
|
||||
u32 gpio0d_drv;
|
||||
u32 gpio0l_sr;
|
||||
u32 gpio0h_sr;
|
||||
u32 reserved[(0x200 - 0x34) / 4 - 1];
|
||||
u32 reserved[0x72];
|
||||
u32 os_reg[4];
|
||||
};
|
||||
check_member(rk3368_pmu_grf, os_reg[3], 0x20c);
|
||||
|
||||
/*GRF_GPIO0C_IOMUX*/
|
||||
enum {
|
||||
GPIO0C7_SHIFT = 14,
|
||||
GPIO0C7_MASK = 3 << GPIO0C7_SHIFT,
|
||||
GPIO0C7_GPIO = 0,
|
||||
GPIO0C7_LCDC_D19,
|
||||
GPIO0C7_TRACE_D9,
|
||||
GPIO0C7_UART1_RTSN,
|
||||
|
||||
GPIO0C6_SHIFT = 12,
|
||||
GPIO0C6_MASK = 3 << GPIO0C6_SHIFT,
|
||||
GPIO0C6_GPIO = 0,
|
||||
GPIO0C6_LCDC_D18,
|
||||
GPIO0C6_TRACE_D8,
|
||||
GPIO0C6_UART1_CTSN,
|
||||
|
||||
GPIO0C5_SHIFT = 10,
|
||||
GPIO0C5_MASK = 3 << GPIO0C5_SHIFT,
|
||||
GPIO0C5_GPIO = 0,
|
||||
GPIO0C5_LCDC_D17,
|
||||
GPIO0C5_TRACE_D7,
|
||||
GPIO0C5_UART1_SOUT,
|
||||
|
||||
GPIO0C4_SHIFT = 8,
|
||||
GPIO0C4_MASK = 3 << GPIO0C4_SHIFT,
|
||||
GPIO0C4_GPIO = 0,
|
||||
GPIO0C4_LCDC_D16,
|
||||
GPIO0C4_TRACE_D6,
|
||||
GPIO0C4_UART1_SIN,
|
||||
|
||||
GPIO0C3_SHIFT = 6,
|
||||
GPIO0C3_MASK = 3 << GPIO0C3_SHIFT,
|
||||
GPIO0C3_GPIO = 0,
|
||||
GPIO0C3_LCDC_D15,
|
||||
GPIO0C3_TRACE_D5,
|
||||
GPIO0C3_MCU_JTAG_TDO,
|
||||
|
||||
GPIO0C2_SHIFT = 4,
|
||||
GPIO0C2_MASK = 3 << GPIO0C2_SHIFT,
|
||||
GPIO0C2_GPIO = 0,
|
||||
GPIO0C2_LCDC_D14,
|
||||
GPIO0C2_TRACE_D4,
|
||||
GPIO0C2_MCU_JTAG_TDI,
|
||||
|
||||
GPIO0C1_SHIFT = 2,
|
||||
GPIO0C1_MASK = 3 << GPIO0C1_SHIFT,
|
||||
GPIO0C1_GPIO = 0,
|
||||
GPIO0C1_LCDC_D13,
|
||||
GPIO0C1_TRACE_D3,
|
||||
GPIO0C1_MCU_JTAG_TRTSN,
|
||||
|
||||
GPIO0C0_SHIFT = 0,
|
||||
GPIO0C0_MASK = 3 << GPIO0C0_SHIFT,
|
||||
GPIO0C0_GPIO = 0,
|
||||
GPIO0C0_LCDC_D12,
|
||||
GPIO0C0_TRACE_D2,
|
||||
GPIO0C0_MCU_JTAG_TDO,
|
||||
};
|
||||
|
||||
/*GRF_GPIO0D_IOMUX*/
|
||||
enum {
|
||||
GPIO0D7_SHIFT = 14,
|
||||
GPIO0D7_MASK = 3 << GPIO0D7_SHIFT,
|
||||
GPIO0D7_GPIO = 0,
|
||||
GPIO0D7_LCDC_DCLK,
|
||||
GPIO0D7_TRACE_CTL,
|
||||
GPIO0D7_PMU_DEBUG5,
|
||||
|
||||
GPIO0D6_SHIFT = 12,
|
||||
GPIO0D6_MASK = 3 << GPIO0D6_SHIFT,
|
||||
GPIO0D6_GPIO = 0,
|
||||
GPIO0D6_LCDC_DEN,
|
||||
GPIO0D6_TRACE_CLK,
|
||||
GPIO0D6_PMU_DEBUG4,
|
||||
|
||||
GPIO0D5_SHIFT = 10,
|
||||
GPIO0D5_MASK = 3 << GPIO0D5_SHIFT,
|
||||
GPIO0D5_GPIO = 0,
|
||||
GPIO0D5_LCDC_VSYNC,
|
||||
GPIO0D5_TRACE_D15,
|
||||
GPIO0D5_PMU_DEBUG3,
|
||||
|
||||
GPIO0D4_SHIFT = 8,
|
||||
GPIO0D4_MASK = 3 << GPIO0D4_SHIFT,
|
||||
GPIO0D4_GPIO = 0,
|
||||
GPIO0D4_LCDC_HSYNC,
|
||||
GPIO0D4_TRACE_D14,
|
||||
GPIO0D4_PMU_DEBUG2,
|
||||
|
||||
GPIO0D3_SHIFT = 6,
|
||||
GPIO0D3_MASK = 3 << GPIO0D3_SHIFT,
|
||||
GPIO0D3_GPIO = 0,
|
||||
GPIO0D3_LCDC_D23,
|
||||
GPIO0D3_TRACE_D13,
|
||||
GPIO0D3_UART4_SIN,
|
||||
|
||||
GPIO0D2_SHIFT = 4,
|
||||
GPIO0D2_MASK = 3 << GPIO0D2_SHIFT,
|
||||
GPIO0D2_GPIO = 0,
|
||||
GPIO0D2_LCDC_D22,
|
||||
GPIO0D2_TRACE_D12,
|
||||
GPIO0D2_UART4_SOUT,
|
||||
|
||||
GPIO0D1_SHIFT = 2,
|
||||
GPIO0D1_MASK = 3 << GPIO0D1_SHIFT,
|
||||
GPIO0D1_GPIO = 0,
|
||||
GPIO0D1_LCDC_D21,
|
||||
GPIO0D1_TRACE_D11,
|
||||
GPIO0D1_UART4_RTSN,
|
||||
|
||||
GPIO0D0_SHIFT = 0,
|
||||
GPIO0D0_MASK = 3 << GPIO0D0_SHIFT,
|
||||
GPIO0D0_GPIO = 0,
|
||||
GPIO0D0_LCDC_D20,
|
||||
GPIO0D0_TRACE_D10,
|
||||
GPIO0D0_UART4_CTSN,
|
||||
};
|
||||
|
||||
/*GRF_GPIO2A_IOMUX*/
|
||||
enum {
|
||||
GPIO2A7_SHIFT = 14,
|
||||
GPIO2A7_MASK = 3 << GPIO2A7_SHIFT,
|
||||
GPIO2A7_GPIO = 0,
|
||||
GPIO2A7_SDMMC0_D2,
|
||||
GPIO2A7_JTAG_TCK,
|
||||
|
||||
GPIO2A6_SHIFT = 12,
|
||||
GPIO2A6_MASK = 3 << GPIO2A6_SHIFT,
|
||||
GPIO2A6_GPIO = 0,
|
||||
GPIO2A6_SDMMC0_D1,
|
||||
GPIO2A6_UART2_SIN,
|
||||
|
||||
GPIO2A5_SHIFT = 10,
|
||||
GPIO2A5_MASK = 3 << GPIO2A5_SHIFT,
|
||||
GPIO2A5_GPIO = 0,
|
||||
GPIO2A5_SDMMC0_D0,
|
||||
GPIO2A5_UART2_SOUT,
|
||||
|
||||
GPIO2A4_SHIFT = 8,
|
||||
GPIO2A4_MASK = 3 << GPIO2A4_SHIFT,
|
||||
GPIO2A4_GPIO = 0,
|
||||
GPIO2A4_FLASH_DQS,
|
||||
GPIO2A4_EMMC_CLKO,
|
||||
|
||||
GPIO2A3_SHIFT = 6,
|
||||
GPIO2A3_MASK = 3 << GPIO2A3_SHIFT,
|
||||
GPIO2A3_GPIO = 0,
|
||||
GPIO2A3_FLASH_CSN3,
|
||||
GPIO2A3_EMMC_RSTNO,
|
||||
|
||||
GPIO2A2_SHIFT = 4,
|
||||
GPIO2A2_MASK = 3 << GPIO2A2_SHIFT,
|
||||
GPIO2A2_GPIO = 0,
|
||||
GPIO2A2_FLASH_CSN2,
|
||||
|
||||
GPIO2A1_SHIFT = 2,
|
||||
GPIO2A1_MASK = 3 << GPIO2A1_SHIFT,
|
||||
GPIO2A1_GPIO = 0,
|
||||
GPIO2A1_FLASH_CSN1,
|
||||
|
||||
GPIO2A0_SHIFT = 0,
|
||||
GPIO2A0_MASK = 3 << GPIO2A0_SHIFT,
|
||||
GPIO2A0_GPIO = 0,
|
||||
GPIO2A0_FLASH_CSN0,
|
||||
};
|
||||
|
||||
/*GRF_GPIO2D_IOMUX*/
|
||||
enum {
|
||||
GPIO2D7_SHIFT = 14,
|
||||
GPIO2D7_MASK = 3 << GPIO2D7_SHIFT,
|
||||
GPIO2D7_GPIO = 0,
|
||||
GPIO2D7_SDIO0_D3,
|
||||
|
||||
GPIO2D6_SHIFT = 12,
|
||||
GPIO2D6_MASK = 3 << GPIO2D6_SHIFT,
|
||||
GPIO2D6_GPIO = 0,
|
||||
GPIO2D6_SDIO0_D2,
|
||||
|
||||
GPIO2D5_SHIFT = 10,
|
||||
GPIO2D5_MASK = 3 << GPIO2D5_SHIFT,
|
||||
GPIO2D5_GPIO = 0,
|
||||
GPIO2D5_SDIO0_D1,
|
||||
|
||||
GPIO2D4_SHIFT = 8,
|
||||
GPIO2D4_MASK = 3 << GPIO2D4_SHIFT,
|
||||
GPIO2D4_GPIO = 0,
|
||||
GPIO2D4_SDIO0_D0,
|
||||
|
||||
GPIO2D3_SHIFT = 6,
|
||||
GPIO2D3_MASK = 3 << GPIO2D3_SHIFT,
|
||||
GPIO2D3_GPIO = 0,
|
||||
GPIO2D3_UART0_RTS0,
|
||||
|
||||
GPIO2D2_SHIFT = 4,
|
||||
GPIO2D2_MASK = 3 << GPIO2D2_SHIFT,
|
||||
GPIO2D2_GPIO = 0,
|
||||
GPIO2D2_UART0_CTS0,
|
||||
|
||||
GPIO2D1_SHIFT = 2,
|
||||
GPIO2D1_MASK = 3 << GPIO2D1_SHIFT,
|
||||
GPIO2D1_GPIO = 0,
|
||||
GPIO2D1_UART0_SOUT,
|
||||
|
||||
GPIO2D0_SHIFT = 0,
|
||||
GPIO2D0_MASK = 3 << GPIO2D0_SHIFT,
|
||||
GPIO2D0_GPIO = 0,
|
||||
GPIO2D0_UART0_SIN,
|
||||
};
|
||||
|
||||
/*GRF_GPIO3C_IOMUX*/
|
||||
enum {
|
||||
GPIO3C7_SHIFT = 14,
|
||||
GPIO3C7_MASK = 3 << GPIO3C7_SHIFT,
|
||||
GPIO3C7_GPIO = 0,
|
||||
GPIO3C7_EDPHDMI_CECINOUT,
|
||||
GPIO3C7_ISP_FLASHTRIGIN,
|
||||
|
||||
GPIO3C6_SHIFT = 12,
|
||||
GPIO3C6_MASK = 3 << GPIO3C6_SHIFT,
|
||||
GPIO3C6_GPIO = 0,
|
||||
GPIO3C6_MAC_CLK,
|
||||
GPIO3C6_ISP_SHUTTERTRIG,
|
||||
|
||||
GPIO3C5_SHIFT = 10,
|
||||
GPIO3C5_MASK = 3 << GPIO3C5_SHIFT,
|
||||
GPIO3C5_GPIO = 0,
|
||||
GPIO3C5_MAC_RXER,
|
||||
GPIO3C5_ISP_PRELIGHTTRIG,
|
||||
|
||||
GPIO3C4_SHIFT = 8,
|
||||
GPIO3C4_MASK = 3 << GPIO3C4_SHIFT,
|
||||
GPIO3C4_GPIO = 0,
|
||||
GPIO3C4_MAC_RXDV,
|
||||
GPIO3C4_ISP_FLASHTRIGOUT,
|
||||
|
||||
GPIO3C3_SHIFT = 6,
|
||||
GPIO3C3_MASK = 3 << GPIO3C3_SHIFT,
|
||||
GPIO3C3_GPIO = 0,
|
||||
GPIO3C3_MAC_RXDV,
|
||||
GPIO3C3_EMMC_RSTNO,
|
||||
|
||||
GPIO3C2_SHIFT = 4,
|
||||
GPIO3C2_MASK = 3 << GPIO3C2_SHIFT,
|
||||
GPIO3C2_MAC_MDC = 0,
|
||||
GPIO3C2_ISP_SHUTTEREN,
|
||||
|
||||
GPIO3C1_SHIFT = 2,
|
||||
GPIO3C1_MASK = 3 << GPIO3C1_SHIFT,
|
||||
GPIO3C1_GPIO = 0,
|
||||
GPIO3C1_MAC_RXD2,
|
||||
GPIO3C1_UART3_RTSN,
|
||||
|
||||
GPIO3C0_SHIFT = 0,
|
||||
GPIO3C0_MASK = 3 << GPIO3C0_SHIFT,
|
||||
GPIO3C0_GPIO = 0,
|
||||
GPIO3C0_MAC_RXD1,
|
||||
GPIO3C0_UART3_CTSN,
|
||||
GPIO3C0_GPS_RFCLK,
|
||||
};
|
||||
|
||||
/*GRF_GPIO3D_IOMUX*/
|
||||
enum {
|
||||
GPIO3D7_SHIFT = 14,
|
||||
GPIO3D7_MASK = 3 << GPIO3D7_SHIFT,
|
||||
GPIO3D7_GPIO = 0,
|
||||
GPIO3D7_SC_VCC18V,
|
||||
GPIO3D7_I2C2_SDA,
|
||||
GPIO3D7_GPUJTAG_TCK,
|
||||
|
||||
GPIO3D6_SHIFT = 12,
|
||||
GPIO3D6_MASK = 3 << GPIO3D6_SHIFT,
|
||||
GPIO3D6_GPIO = 0,
|
||||
GPIO3D6_IR_TX,
|
||||
GPIO3D6_UART3_SOUT,
|
||||
GPIO3D6_PWM3,
|
||||
|
||||
GPIO3D5_SHIFT = 10,
|
||||
GPIO3D5_MASK = 3 << GPIO3D5_SHIFT,
|
||||
GPIO3D5_GPIO = 0,
|
||||
GPIO3D5_IR_RX,
|
||||
GPIO3D5_UART3_SIN,
|
||||
|
||||
GPIO3D4_SHIFT = 8,
|
||||
GPIO3D4_MASK = 3 << GPIO3D4_SHIFT,
|
||||
GPIO3D4_GPIO = 0,
|
||||
GPIO3D4_MAC_TXCLKOUT,
|
||||
GPIO3D4_SPI1_CSN1,
|
||||
|
||||
GPIO3D3_SHIFT = 6,
|
||||
GPIO3D3_MASK = 3 << GPIO3D3_SHIFT,
|
||||
GPIO3D3_GPIO = 0,
|
||||
GPIO3D3_HDMII2C_SCL,
|
||||
GPIO3D3_I2C5_SCL,
|
||||
|
||||
GPIO3D2_SHIFT = 4,
|
||||
GPIO3D2_MASK = 3 << GPIO3D2_SHIFT,
|
||||
GPIO3D2_GPIO = 0,
|
||||
GPIO3D2_HDMII2C_SDA,
|
||||
GPIO3D2_I2C5_SDA,
|
||||
|
||||
GPIO3D1_SHIFT = 2,
|
||||
GPIO3D1_MASK = 3 << GPIO3D1_SHIFT,
|
||||
GPIO3D1_GPIO = 0,
|
||||
GPIO3D1_MAC_RXCLKIN,
|
||||
GPIO3D1_I2C4_SCL,
|
||||
|
||||
GPIO3D0_SHIFT = 0,
|
||||
GPIO3D0_MASK = 3 << GPIO3D0_SHIFT,
|
||||
GPIO3D0_GPIO = 0,
|
||||
GPIO3D0_MAC_MDIO,
|
||||
GPIO3D0_I2C4_SDA,
|
||||
};
|
||||
check_member(rk3368_pmu_grf, gpio0h_sr, 0x34);
|
||||
check_member(rk3368_pmu_grf, os_reg[0], 0x200);
|
||||
|
||||
/*GRF_SOC_CON11/12/13*/
|
||||
enum {
|
||||
@ -439,4 +132,5 @@ enum {
|
||||
MCU_CODE_BASE_BIT31_BIT28_SHIFT = 0,
|
||||
MCU_CODE_BASE_BIT31_BIT28_MASK = GENMASK(3, 0),
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -30,6 +30,7 @@ enum {
|
||||
BOOT_DEVICE_BOARD,
|
||||
BOOT_DEVICE_DFU,
|
||||
BOOT_DEVICE_XIP,
|
||||
BOOT_DEVICE_BOOTROM,
|
||||
BOOT_DEVICE_NONE
|
||||
};
|
||||
#endif
|
||||
|
@ -69,7 +69,9 @@ ENTRY(_main)
|
||||
/*
|
||||
* Set up initial C runtime environment and call board_init_f(0).
|
||||
*/
|
||||
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)
|
||||
#if defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_NEEDS_SEPARATE_STACK)
|
||||
ldr x0, =(CONFIG_TPL_STACK)
|
||||
#elif defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)
|
||||
ldr x0, =(CONFIG_SPL_STACK)
|
||||
#else
|
||||
ldr x0, =(CONFIG_SYS_INIT_SP_ADDR)
|
||||
|
@ -199,4 +199,8 @@ source "board/siemens/corvus/Kconfig"
|
||||
source "board/siemens/taurus/Kconfig"
|
||||
source "board/siemens/smartweb/Kconfig"
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/arm/mach-at91/arm926ejs/u-boot-spl.lds" if CPU_ARM926EJS
|
||||
default "arch/arm/mach-at91/armv7/u-boot-spl.lds" if CPU_V7
|
||||
|
||||
endif
|
||||
|
@ -53,4 +53,8 @@ source "board/davinci/ea20/Kconfig"
|
||||
source "board/omicron/calimain/Kconfig"
|
||||
source "board/lego/ev3/Kconfig"
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "board/$(BOARDDIR)/u-boot-spl-ipam390.lds" if TARGET_IPAM390
|
||||
default "board/$(BOARDDIR)/u-boot-spl-da850evm.lds"
|
||||
|
||||
endif
|
||||
|
@ -161,4 +161,7 @@ source "board/samsung/smdk5250/Kconfig"
|
||||
source "board/samsung/smdk5420/Kconfig"
|
||||
source "board/samsung/espresso7420/Kconfig"
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "board/samsung/common/exynos-uboot-spl.lds" if ARCH_EXYNOS5 || ARCH_EXYNOS4
|
||||
|
||||
endif
|
||||
|
@ -170,4 +170,7 @@ source "board/ti/am335x/Kconfig"
|
||||
source "board/compulab/cm_t335/Kconfig"
|
||||
source "board/compulab/cm_t43/Kconfig"
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/arm/mach-omap2/u-boot-spl.lds"
|
||||
|
||||
endif
|
||||
|
@ -15,4 +15,7 @@ config SYS_SOC
|
||||
|
||||
source "board/LaCie/edminiv2/Kconfig"
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "$(CPUDIR)/orion5x/u-boot-spl.lds" if ORION5X
|
||||
|
||||
endif
|
||||
|
@ -67,14 +67,42 @@ config ROCKCHIP_RK3328
|
||||
config ROCKCHIP_RK3368
|
||||
bool "Support Rockchip RK3368"
|
||||
select ARM64
|
||||
select SUPPORT_SPL
|
||||
select SUPPORT_TPL
|
||||
select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
|
||||
select TPL_NEEDS_SEPARATE_STACK if TPL
|
||||
imply SPL_SEPARATE_BSS
|
||||
imply SPL_SERIAL_SUPPORT
|
||||
imply TPL_SERIAL_SUPPORT
|
||||
select ENABLE_ARM_SOC_BOOT0_HOOK
|
||||
select DEBUG_UART_BOARD_INIT
|
||||
select SYS_NS16550
|
||||
help
|
||||
The Rockchip RK3328 is a ARM-based SoC with a octa-core Cortex-A53.
|
||||
including NEON and GPU, 512KB L2 cache for big cluster and 256 KB
|
||||
L2 cache for little cluser, PowerVR G6110 based graphics, one video
|
||||
output processor supporting LVDS、HDMI、eDP, several DDR3 options
|
||||
and video codec support. Peripherals include Gigabit Ethernet,
|
||||
USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
|
||||
The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
|
||||
into a big and little cluster with 4 cores each) Cortex-A53 including
|
||||
AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache
|
||||
(for the little cluster), PowerVR G6110 based graphics, one video
|
||||
output processor supporting LVDS/HDMI/eDP, several DDR3 options and
|
||||
video codec support.
|
||||
|
||||
On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
|
||||
I2S, UARTs, SPI, I2C and PWMs.
|
||||
|
||||
if ROCKCHIP_RK3368
|
||||
|
||||
config TPL_LDSCRIPT
|
||||
default "arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds"
|
||||
|
||||
config TPL_TEXT_BASE
|
||||
default 0xff8c1000
|
||||
|
||||
config TPL_MAX_SIZE
|
||||
default 28672
|
||||
|
||||
config TPL_STACK
|
||||
default 0xff8cffff
|
||||
|
||||
endif
|
||||
|
||||
config ROCKCHIP_RK3399
|
||||
bool "Support Rockchip RK3399"
|
||||
@ -101,10 +129,21 @@ config ROCKCHIP_RV1108
|
||||
The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
|
||||
and a DSP.
|
||||
|
||||
config ROCKCHIP_SPL_BACK_TO_BROM
|
||||
config SPL_ROCKCHIP_BACK_TO_BROM
|
||||
bool "SPL returns to bootrom"
|
||||
default y if ROCKCHIP_RK3036
|
||||
select ROCKCHIP_BROM_HELPER
|
||||
depends on SPL
|
||||
help
|
||||
Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
|
||||
SPL will return to the boot rom, which will then load the U-Boot
|
||||
binary to keep going on.
|
||||
|
||||
config TPL_ROCKCHIP_BACK_TO_BROM
|
||||
bool "TPL returns to bootrom"
|
||||
default y if ROCKCHIP_RK3368
|
||||
select ROCKCHIP_BROM_HELPER
|
||||
depends on TPL
|
||||
help
|
||||
Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
|
||||
SPL will return to the boot rom, which will then load the U-Boot
|
||||
@ -122,7 +161,7 @@ config ROCKCHIP_BROM_HELPER
|
||||
bool
|
||||
|
||||
config SPL_MMC_SUPPORT
|
||||
default y if !ROCKCHIP_SPL_BACK_TO_BROM
|
||||
default y if !SPL_ROCKCHIP_BACK_TO_BROM
|
||||
|
||||
source "arch/arm/mach-rockchip/rk3036/Kconfig"
|
||||
source "arch/arm/mach-rockchip/rk3188/Kconfig"
|
||||
|
@ -4,39 +4,50 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-$(CONFIG_ROCKCHIP_BROM_HELPER) += bootrom.o
|
||||
# We don't want the bootrom-helper present in a full U-Boot build, as
|
||||
# this may have entered from ATF with the stack-pointer pointing to
|
||||
# inaccessible/protected memory (and the bootrom-helper assumes that
|
||||
# the stack-pointer is valid before switching to the U-Boot stack).
|
||||
obj-spl-$(CONFIG_ROCKCHIP_BROM_HELPER) += bootrom.o save_boot_param.o
|
||||
obj-tpl-$(CONFIG_ROCKCHIP_BROM_HELPER) += bootrom.o save_boot_param.o
|
||||
|
||||
ifdef CONFIG_TPL_BUILD
|
||||
obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board-tpl.o
|
||||
obj-$(CONFIG_ROCKCHIP_BROM_HELPER) += save_boot_param.o
|
||||
else ifdef CONFIG_SPL_BUILD
|
||||
obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036-board-spl.o
|
||||
obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board-spl.o
|
||||
obj-$(CONFIG_ROCKCHIP_RK322X) += rk322x-board-spl.o
|
||||
obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board-spl.o
|
||||
obj-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board-spl.o
|
||||
obj-$(CONFIG_ROCKCHIP_BROM_HELPER) += save_boot_param.o
|
||||
else
|
||||
obj-tpl-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board-tpl.o
|
||||
obj-tpl-$(CONFIG_ROCKCHIP_RK3368) += rk3368-board-tpl.o
|
||||
|
||||
obj-spl-$(CONFIG_ROCKCHIP_RK3036) += rk3036-board-spl.o
|
||||
obj-spl-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board-spl.o
|
||||
obj-spl-$(CONFIG_ROCKCHIP_RK322X) += rk322x-board-spl.o
|
||||
obj-spl-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board-spl.o
|
||||
obj-spl-$(CONFIG_ROCKCHIP_RK3368) += rk3368-board-spl.o spl-boot-order.o
|
||||
obj-spl-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board-spl.o spl-boot-order.o
|
||||
|
||||
ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),)
|
||||
obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board.o
|
||||
obj-$(CONFIG_ROCKCHIP_RK322X) += rk322x-board.o
|
||||
obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board.o
|
||||
obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036-board.o
|
||||
ifdef CONFIG_RAM
|
||||
obj-y += sdram_common.o
|
||||
endif
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_$(SPL_TPL_)RAM) += sdram_common.o
|
||||
|
||||
ifndef CONFIG_ARM64
|
||||
obj-y += rk_timer.o
|
||||
endif
|
||||
obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036/
|
||||
|
||||
obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036/
|
||||
ifndef CONFIG_TPL_BUILD
|
||||
obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188/
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_ROCKCHIP_RK322X) += rk322x/
|
||||
obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288/
|
||||
obj-$(CONFIG_ROCKCHIP_RK3328) += rk3328/
|
||||
obj-$(CONFIG_ROCKCHIP_RK3368) += rk3368/
|
||||
obj-$(CONFIG_ROCKCHIP_RK3399) += rk3399/
|
||||
obj-$(CONFIG_ROCKCHIP_RV1108) += rv1108/
|
||||
|
||||
# Clear out SPL objects, in case this is a TPL build
|
||||
obj-spl-$(CONFIG_TPL_BUILD) =
|
||||
|
||||
# Now add SPL/TPL objects back into the main build
|
||||
obj-$(CONFIG_SPL_BUILD) += $(obj-spl-y)
|
||||
obj-$(CONFIG_TPL_BUILD) += $(obj-tpl-y)
|
||||
|
@ -9,8 +9,8 @@
|
||||
|
||||
void back_to_bootrom(void)
|
||||
{
|
||||
#if defined(CONFIG_SPL_LIBCOMMON_SUPPORT) && !defined(CONFIG_TPL_BUILD)
|
||||
puts("Returning to boot ROM...");
|
||||
#if CONFIG_IS_ENABLED(LIBCOMMON_SUPPORT)
|
||||
puts("Returning to boot ROM...\n");
|
||||
#endif
|
||||
_back_to_bootrom_s();
|
||||
}
|
||||
|
@ -167,8 +167,7 @@ void board_init_f(ulong dummy)
|
||||
}
|
||||
|
||||
setup_arm_clock();
|
||||
|
||||
#if defined(CONFIG_ROCKCHIP_SPL_BACK_TO_BROM) && !defined(CONFIG_SPL_BOARD_INIT)
|
||||
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM) && !defined(CONFIG_SPL_BOARD_INIT)
|
||||
back_to_bootrom();
|
||||
#endif
|
||||
}
|
||||
@ -229,7 +228,7 @@ void spl_board_init(void)
|
||||
}
|
||||
|
||||
preloader_console_init();
|
||||
#ifdef CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
|
||||
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
|
||||
back_to_bootrom();
|
||||
#endif
|
||||
return;
|
||||
|
@ -39,7 +39,7 @@ int board_late_init(void)
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
#if defined(CONFIG_ROCKCHIP_SPL_BACK_TO_BROM)
|
||||
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
|
||||
struct udevice *pinctrl;
|
||||
int ret;
|
||||
|
||||
|
@ -30,9 +30,6 @@ config TPL_LIBCOMMON_SUPPORT
|
||||
config TPL_LIBGENERIC_SUPPORT
|
||||
default y
|
||||
|
||||
config TPL_SERIAL_SUPPORT
|
||||
default y
|
||||
|
||||
source "board/radxa/rock/Kconfig"
|
||||
|
||||
endif
|
||||
|
@ -41,6 +41,8 @@ static struct rk322x_grf * const grf = (void *)GRF_BASE;
|
||||
CON_IOMUX_UART2SEL_MASK,
|
||||
CON_IOMUX_UART2SEL_21 << CON_IOMUX_UART2SEL_SHIFT);
|
||||
}
|
||||
|
||||
#define SGRF_DDR_CON0 0x10150000
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
struct udevice *dev;
|
||||
@ -71,6 +73,8 @@ void board_init_f(ulong dummy)
|
||||
return;
|
||||
}
|
||||
|
||||
/* Disable the ddr secure region setting to make it non-secure */
|
||||
rk_clrreg(SGRF_DDR_CON0, 0x4000);
|
||||
#if defined(CONFIG_ROCKCHIP_SPL_BACK_TO_BROM) && !defined(CONFIG_SPL_BOARD_INIT)
|
||||
back_to_bootrom();
|
||||
#endif
|
||||
|
@ -249,7 +249,7 @@ void board_init_f(ulong dummy)
|
||||
debug("DRAM init failed: %d\n", ret);
|
||||
return;
|
||||
}
|
||||
#if defined(CONFIG_ROCKCHIP_SPL_BACK_TO_BROM) && !defined(CONFIG_SPL_BOARD_INIT)
|
||||
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM) && !defined(CONFIG_SPL_BOARD_INIT)
|
||||
back_to_bootrom();
|
||||
#endif
|
||||
}
|
||||
@ -316,7 +316,7 @@ void spl_board_init(void)
|
||||
}
|
||||
|
||||
preloader_console_init();
|
||||
#ifdef CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
|
||||
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
|
||||
back_to_bootrom();
|
||||
#endif
|
||||
return;
|
||||
|
@ -78,7 +78,7 @@ int board_late_init(void)
|
||||
return rk_board_late_init();
|
||||
}
|
||||
|
||||
#ifndef CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
|
||||
#if !CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
|
||||
static int veyron_init(void)
|
||||
{
|
||||
struct udevice *dev;
|
||||
@ -115,7 +115,7 @@ static int veyron_init(void)
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
#ifdef CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
|
||||
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
|
||||
struct udevice *pinctrl;
|
||||
int ret;
|
||||
|
||||
|
78
arch/arm/mach-rockchip/rk3368-board-spl.c
Normal file
78
arch/arm/mach-rockchip/rk3368-board-spl.c
Normal file
@ -0,0 +1,78 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <debug_uart.h>
|
||||
#include <dm.h>
|
||||
#include <dm/pinctrl.h>
|
||||
#include <ram.h>
|
||||
#include <spl.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/cru_rk3368.h>
|
||||
#include <asm/arch/grf_rk3368.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
#include <asm/arch/periph.h>
|
||||
#include <asm/arch/timer.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
void board_debug_uart_init(void)
|
||||
{
|
||||
}
|
||||
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
struct udevice *pinctrl;
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
ret = spl_early_init();
|
||||
if (ret) {
|
||||
debug("spl_early_init() failed: %d\n", ret);
|
||||
hang();
|
||||
}
|
||||
|
||||
/* Set up our preloader console */
|
||||
ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
|
||||
if (ret) {
|
||||
error("%s: pinctrl init failed: %d\n", __func__, ret);
|
||||
hang();
|
||||
}
|
||||
|
||||
ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART0);
|
||||
if (ret) {
|
||||
error("%s: failed to set up console UART\n", __func__);
|
||||
hang();
|
||||
}
|
||||
|
||||
preloader_console_init();
|
||||
|
||||
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
||||
if (ret) {
|
||||
debug("DRAM init failed: %d\n", ret);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
u32 spl_boot_mode(const u32 boot_device)
|
||||
{
|
||||
return MMCSD_MODE_RAW;
|
||||
}
|
||||
|
||||
u32 spl_boot_device(void)
|
||||
{
|
||||
return BOOT_DEVICE_MMC1;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SPL_LOAD_FIT
|
||||
int board_fit_config_name_match(const char *name)
|
||||
{
|
||||
/* Just empty function now - can't decide what to choose */
|
||||
debug("%s: %s\n", __func__, name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
157
arch/arm/mach-rockchip/rk3368-board-tpl.c
Normal file
157
arch/arm/mach-rockchip/rk3368-board-tpl.c
Normal file
@ -0,0 +1,157 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <debug_uart.h>
|
||||
#include <dm.h>
|
||||
#include <ram.h>
|
||||
#include <spl.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/bootrom.h>
|
||||
#include <asm/arch/cru_rk3368.h>
|
||||
#include <asm/arch/grf_rk3368.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
#include <asm/arch/timer.h>
|
||||
#include <syscon.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
/*
|
||||
* The SPL (and also the full U-Boot stage on the RK3368) will run in
|
||||
* secure mode (i.e. EL3) and an ATF will eventually be booted before
|
||||
* starting up the operating system... so we can initialize the SGRF
|
||||
* here and rely on the ATF installing the final (secure) policy
|
||||
* later.
|
||||
*/
|
||||
static inline uintptr_t sgrf_soc_con_addr(unsigned no)
|
||||
{
|
||||
const uintptr_t SGRF_BASE =
|
||||
(uintptr_t)syscon_get_first_range(ROCKCHIP_SYSCON_SGRF);
|
||||
|
||||
return SGRF_BASE + sizeof(u32) * no;
|
||||
}
|
||||
|
||||
static inline uintptr_t sgrf_busdmac_addr(unsigned no)
|
||||
{
|
||||
const uintptr_t SGRF_BASE =
|
||||
(uintptr_t)syscon_get_first_range(ROCKCHIP_SYSCON_SGRF);
|
||||
const uintptr_t SGRF_BUSDMAC_OFFSET = 0x100;
|
||||
const uintptr_t SGRF_BUSDMAC_BASE = SGRF_BASE + SGRF_BUSDMAC_OFFSET;
|
||||
|
||||
return SGRF_BUSDMAC_BASE + sizeof(u32) * no;
|
||||
}
|
||||
|
||||
static void sgrf_init(void)
|
||||
{
|
||||
struct rk3368_cru * const cru =
|
||||
(struct rk3368_cru * const)rockchip_get_cru();
|
||||
const u16 SGRF_SOC_CON_SEC = GENMASK(15, 0);
|
||||
const u16 SGRF_BUSDMAC_CON0_SEC = BIT(2);
|
||||
const u16 SGRF_BUSDMAC_CON1_SEC = GENMASK(15, 12);
|
||||
|
||||
/* Set all configurable IP to 'non secure'-mode */
|
||||
rk_setreg(sgrf_soc_con_addr(5), SGRF_SOC_CON_SEC);
|
||||
rk_setreg(sgrf_soc_con_addr(6), SGRF_SOC_CON_SEC);
|
||||
rk_setreg(sgrf_soc_con_addr(7), SGRF_SOC_CON_SEC);
|
||||
|
||||
/*
|
||||
* From rockchip-uboot/arch/arm/cpu/armv8/rk33xx/cpu.c
|
||||
* Original comment: "ddr space set no secure mode"
|
||||
*/
|
||||
rk_clrreg(sgrf_soc_con_addr(8), SGRF_SOC_CON_SEC);
|
||||
rk_clrreg(sgrf_soc_con_addr(9), SGRF_SOC_CON_SEC);
|
||||
rk_clrreg(sgrf_soc_con_addr(10), SGRF_SOC_CON_SEC);
|
||||
|
||||
/* Set 'secure dma' to 'non secure'-mode */
|
||||
rk_setreg(sgrf_busdmac_addr(0), SGRF_BUSDMAC_CON0_SEC);
|
||||
rk_setreg(sgrf_busdmac_addr(1), SGRF_BUSDMAC_CON1_SEC);
|
||||
|
||||
dsb(); /* barrier */
|
||||
|
||||
rk_setreg(&cru->softrst_con[1], DMA1_SRST_REQ);
|
||||
rk_setreg(&cru->softrst_con[4], DMA2_SRST_REQ);
|
||||
|
||||
dsb(); /* barrier */
|
||||
udelay(10);
|
||||
|
||||
rk_clrreg(&cru->softrst_con[1], DMA1_SRST_REQ);
|
||||
rk_clrreg(&cru->softrst_con[4], DMA2_SRST_REQ);
|
||||
}
|
||||
|
||||
void board_debug_uart_init(void)
|
||||
{
|
||||
/*
|
||||
* N.B.: This is called before the device-model has been
|
||||
* initialised. For this reason, we can not access
|
||||
* the GRF address range using the syscon API.
|
||||
*/
|
||||
struct rk3368_grf * const grf =
|
||||
(struct rk3368_grf * const)0xff770000;
|
||||
|
||||
enum {
|
||||
GPIO2D1_MASK = GENMASK(3, 2),
|
||||
GPIO2D1_GPIO = 0,
|
||||
GPIO2D1_UART0_SOUT = (1 << 2),
|
||||
|
||||
GPIO2D0_MASK = GENMASK(1, 0),
|
||||
GPIO2D0_GPIO = 0,
|
||||
GPIO2D0_UART0_SIN = (1 << 0),
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000)
|
||||
/* Enable early UART0 on the RK3368 */
|
||||
rk_clrsetreg(&grf->gpio2d_iomux,
|
||||
GPIO2D0_MASK, GPIO2D0_UART0_SIN);
|
||||
rk_clrsetreg(&grf->gpio2d_iomux,
|
||||
GPIO2D1_MASK, GPIO2D1_UART0_SOUT);
|
||||
#endif
|
||||
}
|
||||
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
#define EARLY_UART
|
||||
#ifdef EARLY_UART
|
||||
/*
|
||||
* Debug UART can be used from here if required:
|
||||
*
|
||||
* debug_uart_init();
|
||||
* printch('a');
|
||||
* printhex8(0x1234);
|
||||
* printascii("string");
|
||||
*/
|
||||
debug_uart_init();
|
||||
printascii("U-Boot TPL board init\n");
|
||||
#endif
|
||||
|
||||
ret = spl_early_init();
|
||||
if (ret) {
|
||||
debug("spl_early_init() failed: %d\n", ret);
|
||||
hang();
|
||||
}
|
||||
|
||||
/* Reset security, so we can use DMA in the MMC drivers */
|
||||
sgrf_init();
|
||||
|
||||
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
||||
if (ret) {
|
||||
debug("DRAM init failed: %d\n", ret);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void board_return_to_bootrom(void)
|
||||
{
|
||||
back_to_bootrom();
|
||||
}
|
||||
|
||||
u32 spl_boot_device(void)
|
||||
{
|
||||
return BOOT_DEVICE_BOOTROM;
|
||||
}
|
@ -3,6 +3,26 @@ if ROCKCHIP_RK3368
|
||||
choice
|
||||
prompt "RK3368 board"
|
||||
|
||||
config TARGET_LION_RK3368
|
||||
bool "Theobroma Systems RK3368-uQ7 (Lion) module"
|
||||
help
|
||||
The RK3368-uQ7 is a micro-Qseven form-factor (40mm x 70mm,
|
||||
MXM-230 connector) system-on-module designed by Theobroma
|
||||
Systems for industrial applications.
|
||||
|
||||
It provides the following features:
|
||||
- 8x Cortex-A53 (in 2 clusters of 4 cores each)
|
||||
- (on-module) up to 4GB of DDR3 memory
|
||||
- (on-module) SPI-NOR flash
|
||||
- (on-module) eMMC
|
||||
- Gigabit Ethernet (with an on-module KSZ9031 PHY)
|
||||
- USB
|
||||
- HDMI
|
||||
- MIPI-DSI/single-channel LVDS (muxed on the 'LVDS-A' pin-group)
|
||||
- various 'slow' interfaces (e.g. UART, SPI, I2C, I2S, ...)
|
||||
- on-module STM32 providing CAN, RTC and fan-control
|
||||
- (optional on-module) EAL4+-certified security module
|
||||
|
||||
config TARGET_SHEEP
|
||||
bool "Sheep board"
|
||||
help
|
||||
@ -25,8 +45,12 @@ endchoice
|
||||
config SYS_SOC
|
||||
default "rockchip"
|
||||
|
||||
source "board/theobroma-systems/lion_rk3368/Kconfig"
|
||||
source "board/rockchip/sheep_rk3368/Kconfig"
|
||||
source "board/geekbuying/geekbox/Kconfig"
|
||||
source "board/rockchip/evb_px5/Kconfig"
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/arm/cpu/armv8/u-boot-spl.lds"
|
||||
|
||||
endif
|
||||
|
@ -5,5 +5,4 @@
|
||||
#
|
||||
obj-y += clk_rk3368.o
|
||||
obj-y += rk3368.o
|
||||
obj-y += sdram_rk3368.o
|
||||
obj-y += syscon_rk3368.o
|
||||
|
@ -1,60 +0,0 @@
|
||||
/*
|
||||
* (C) Copyright 2016 Rockchip Electronics Co., Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <ram.h>
|
||||
#include <syscon.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/grf_rk3368.h>
|
||||
#include <asm/arch/sdram_common.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
struct dram_info {
|
||||
struct ram_info info;
|
||||
struct rk3368_pmu_grf *pmugrf;
|
||||
};
|
||||
|
||||
static int rk3368_dmc_probe(struct udevice *dev)
|
||||
{
|
||||
struct dram_info *priv = dev_get_priv(dev);
|
||||
|
||||
priv->pmugrf = syscon_get_first_range(ROCKCHIP_SYSCON_PMUGRF);
|
||||
debug("%s: grf=%p\n", __func__, priv->pmugrf);
|
||||
priv->info.base = CONFIG_SYS_SDRAM_BASE;
|
||||
priv->info.size = rockchip_sdram_size(
|
||||
(phys_addr_t)&priv->pmugrf->os_reg[2]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rk3368_dmc_get_info(struct udevice *dev, struct ram_info *info)
|
||||
{
|
||||
struct dram_info *priv = dev_get_priv(dev);
|
||||
|
||||
*info = priv->info;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct ram_ops rk3368_dmc_ops = {
|
||||
.get_info = rk3368_dmc_get_info,
|
||||
};
|
||||
|
||||
|
||||
static const struct udevice_id rk3368_dmc_ids[] = {
|
||||
{ .compatible = "rockchip,rk3368-dmc" },
|
||||
{ }
|
||||
};
|
||||
|
||||
U_BOOT_DRIVER(dmc_rk3368) = {
|
||||
.name = "rockchip_rk3368_dmc",
|
||||
.id = UCLASS_RAM,
|
||||
.of_match = rk3368_dmc_ids,
|
||||
.ops = &rk3368_dmc_ops,
|
||||
.probe = rk3368_dmc_probe,
|
||||
.priv_auto_alloc_size = sizeof(struct dram_info),
|
||||
};
|
@ -1,6 +1,8 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Rockchip Electronics Co., Ltd
|
||||
* Author: Andy Yan <andy.yan@rock-chips.com>
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
@ -14,6 +16,10 @@ static const struct udevice_id rk3368_syscon_ids[] = {
|
||||
.data = ROCKCHIP_SYSCON_GRF },
|
||||
{ .compatible = "rockchip,rk3368-pmugrf",
|
||||
.data = ROCKCHIP_SYSCON_PMUGRF },
|
||||
{ .compatible = "rockchip,rk3368-msch",
|
||||
.data = ROCKCHIP_SYSCON_MSCH },
|
||||
{ .compatible = "rockchip,rk3368-sgrf",
|
||||
.data = ROCKCHIP_SYSCON_SGRF },
|
||||
{ }
|
||||
};
|
||||
|
||||
@ -22,3 +28,41 @@ U_BOOT_DRIVER(syscon_rk3368) = {
|
||||
.id = UCLASS_SYSCON,
|
||||
.of_match = rk3368_syscon_ids,
|
||||
};
|
||||
|
||||
#if CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static int rk3368_syscon_bind_of_platdata(struct udevice *dev)
|
||||
{
|
||||
dev->driver_data = dev->driver->of_match->data;
|
||||
debug("syscon: %s %d\n", dev->name, (uint)dev->driver_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
U_BOOT_DRIVER(rockchip_rk3368_grf) = {
|
||||
.name = "rockchip_rk3368_grf",
|
||||
.id = UCLASS_SYSCON,
|
||||
.of_match = rk3368_syscon_ids,
|
||||
.bind = rk3368_syscon_bind_of_platdata,
|
||||
};
|
||||
|
||||
U_BOOT_DRIVER(rockchip_rk3368_pmugrf) = {
|
||||
.name = "rockchip_rk3368_pmugrf",
|
||||
.id = UCLASS_SYSCON,
|
||||
.of_match = rk3368_syscon_ids + 1,
|
||||
.bind = rk3368_syscon_bind_of_platdata,
|
||||
};
|
||||
|
||||
U_BOOT_DRIVER(rockchip_rk3368_msch) = {
|
||||
.name = "rockchip_rk3368_msch",
|
||||
.id = UCLASS_SYSCON,
|
||||
.of_match = rk3368_syscon_ids + 2,
|
||||
.bind = rk3368_syscon_bind_of_platdata,
|
||||
};
|
||||
|
||||
U_BOOT_DRIVER(rockchip_rk3368_sgrf) = {
|
||||
.name = "rockchip_rk3368_sgrf",
|
||||
.id = UCLASS_SYSCON,
|
||||
.of_match = rk3368_syscon_ids + 3,
|
||||
.bind = rk3368_syscon_bind_of_platdata,
|
||||
};
|
||||
#endif
|
||||
|
13
arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds
Normal file
13
arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds
Normal file
@ -0,0 +1,13 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#undef CONFIG_SPL_TEXT_BASE
|
||||
#define CONFIG_SPL_TEXT_BASE CONFIG_TPL_TEXT_BASE
|
||||
|
||||
#undef CONFIG_SPL_MAX_SIZE
|
||||
#define CONFIG_SPL_MAX_SIZE CONFIG_TPL_MAX_SIZE
|
||||
|
||||
#include "../../cpu/armv8/u-boot-spl.lds"
|
@ -8,9 +8,6 @@
|
||||
#include <debug_uart.h>
|
||||
#include <dm.h>
|
||||
#include <fdtdec.h>
|
||||
#include <led.h>
|
||||
#include <malloc.h>
|
||||
#include <mmc.h>
|
||||
#include <ram.h>
|
||||
#include <spl.h>
|
||||
#include <asm/gpio.h>
|
||||
@ -21,111 +18,10 @@
|
||||
#include <asm/arch/sdram.h>
|
||||
#include <asm/arch/timer.h>
|
||||
#include <dm/pinctrl.h>
|
||||
#include <dm/root.h>
|
||||
#include <dm/test.h>
|
||||
#include <dm/util.h>
|
||||
#include <power/regulator.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_OF_CONTROL)
|
||||
static int spl_node_to_boot_device(int node)
|
||||
{
|
||||
struct udevice *parent;
|
||||
|
||||
/*
|
||||
* This should eventually move into the SPL code, once SPL becomes
|
||||
* aware of the block-device layer. Until then (and to avoid unneeded
|
||||
* delays in getting this feature out, it lives at the board-level).
|
||||
*/
|
||||
if (!uclass_get_device_by_of_offset(UCLASS_MMC, node, &parent)) {
|
||||
struct udevice *dev;
|
||||
struct blk_desc *desc = NULL;
|
||||
|
||||
for (device_find_first_child(parent, &dev);
|
||||
dev;
|
||||
device_find_next_child(&dev)) {
|
||||
if (device_get_uclass_id(dev) == UCLASS_BLK) {
|
||||
desc = dev_get_uclass_platdata(dev);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!desc)
|
||||
return -ENOENT;
|
||||
|
||||
switch (desc->devnum) {
|
||||
case 0:
|
||||
return BOOT_DEVICE_MMC1;
|
||||
case 1:
|
||||
return BOOT_DEVICE_MMC2;
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* SPL doesn't differentiate SPI flashes, so we keep the detection
|
||||
* brief and inaccurate... hopefully, the common SPL layer can be
|
||||
* extended with awareness of the BLK layer (and matching OF_CONTROL)
|
||||
* soon.
|
||||
*/
|
||||
if (!uclass_get_device_by_of_offset(UCLASS_SPI_FLASH, node, &parent))
|
||||
return BOOT_DEVICE_SPI;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void board_boot_order(u32 *spl_boot_list)
|
||||
{
|
||||
const void *blob = gd->fdt_blob;
|
||||
int chosen_node = fdt_path_offset(blob, "/chosen");
|
||||
int idx = 0;
|
||||
int elem;
|
||||
int boot_device;
|
||||
int node;
|
||||
const char *conf;
|
||||
|
||||
if (chosen_node < 0) {
|
||||
debug("%s: /chosen not found, using spl_boot_device()\n",
|
||||
__func__);
|
||||
spl_boot_list[0] = spl_boot_device();
|
||||
return;
|
||||
}
|
||||
|
||||
for (elem = 0;
|
||||
(conf = fdt_stringlist_get(blob, chosen_node,
|
||||
"u-boot,spl-boot-order", elem, NULL));
|
||||
elem++) {
|
||||
/* First check if the list element is an alias */
|
||||
const char *alias = fdt_get_alias(blob, conf);
|
||||
if (alias)
|
||||
conf = alias;
|
||||
|
||||
/* Try to resolve the config item (or alias) as a path */
|
||||
node = fdt_path_offset(blob, conf);
|
||||
if (node < 0) {
|
||||
debug("%s: could not find %s in FDT", __func__, conf);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Try to map this back onto SPL boot devices */
|
||||
boot_device = spl_node_to_boot_device(node);
|
||||
if (boot_device < 0) {
|
||||
debug("%s: could not map node @%x to a boot-device\n",
|
||||
__func__, node);
|
||||
continue;
|
||||
}
|
||||
|
||||
spl_boot_list[idx++] = boot_device;
|
||||
}
|
||||
|
||||
/* If we had no matches, fall back to spl_boot_device */
|
||||
if (idx == 0)
|
||||
spl_boot_list[0] = spl_boot_device();
|
||||
}
|
||||
#endif
|
||||
|
||||
u32 spl_boot_device(void)
|
||||
{
|
||||
return BOOT_DEVICE_MMC1;
|
||||
@ -263,7 +159,7 @@ void spl_board_init(void)
|
||||
}
|
||||
|
||||
preloader_console_init();
|
||||
#ifdef CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
|
||||
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
|
||||
back_to_bootrom();
|
||||
#endif
|
||||
|
||||
|
@ -1,11 +1,47 @@
|
||||
/*
|
||||
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
|
||||
#if defined(CONFIG_ARM64)
|
||||
.globl SAVE_SP_ADDR
|
||||
SAVE_SP_ADDR:
|
||||
.quad 0
|
||||
|
||||
ENTRY(save_boot_params)
|
||||
sub sp, sp, #0x60
|
||||
stp x29, x30, [sp, #0x50]
|
||||
stp x27, x28, [sp, #0x40]
|
||||
stp x25, x26, [sp, #0x30]
|
||||
stp x23, x24, [sp, #0x20]
|
||||
stp x21, x22, [sp, #0x10]
|
||||
stp x19, x20, [sp, #0]
|
||||
ldr x8, =SAVE_SP_ADDR
|
||||
mov x9, sp
|
||||
str x9, [x8]
|
||||
b save_boot_params_ret /* back to my caller */
|
||||
ENDPROC(save_boot_params)
|
||||
|
||||
.globl _back_to_bootrom_s
|
||||
ENTRY(_back_to_bootrom_s)
|
||||
ldr x0, =SAVE_SP_ADDR
|
||||
ldr x0, [x0]
|
||||
mov sp, x0
|
||||
ldp x29, x30, [sp, #0x50]
|
||||
ldp x27, x28, [sp, #0x40]
|
||||
ldp x25, x26, [sp, #0x30]
|
||||
ldp x23, x24, [sp, #0x20]
|
||||
ldp x21, x22, [sp, #0x10]
|
||||
ldp x19, x20, [sp]
|
||||
add sp, sp, #0x60
|
||||
mov x0, xzr
|
||||
ret
|
||||
ENDPROC(_back_to_bootrom_s)
|
||||
#else
|
||||
.globl SAVE_SP_ADDR
|
||||
SAVE_SP_ADDR:
|
||||
.word 0
|
||||
@ -30,3 +66,4 @@ ENTRY(_back_to_bootrom_s)
|
||||
mov r0, #0
|
||||
pop {r1-r12, pc}
|
||||
ENDPROC(_back_to_bootrom_s)
|
||||
#endif
|
||||
|
108
arch/arm/mach-rockchip/spl-boot-order.c
Normal file
108
arch/arm/mach-rockchip/spl-boot-order.c
Normal file
@ -0,0 +1,108 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <mmc.h>
|
||||
#include <spl.h>
|
||||
|
||||
#if CONFIG_IS_ENABLED(OF_CONTROL)
|
||||
static int spl_node_to_boot_device(int node)
|
||||
{
|
||||
struct udevice *parent;
|
||||
|
||||
/*
|
||||
* This should eventually move into the SPL code, once SPL becomes
|
||||
* aware of the block-device layer. Until then (and to avoid unneeded
|
||||
* delays in getting this feature out, it lives at the board-level).
|
||||
*/
|
||||
if (!uclass_get_device_by_of_offset(UCLASS_MMC, node, &parent)) {
|
||||
struct udevice *dev;
|
||||
struct blk_desc *desc = NULL;
|
||||
|
||||
for (device_find_first_child(parent, &dev);
|
||||
dev;
|
||||
device_find_next_child(&dev)) {
|
||||
if (device_get_uclass_id(dev) == UCLASS_BLK) {
|
||||
desc = dev_get_uclass_platdata(dev);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!desc)
|
||||
return -ENOENT;
|
||||
|
||||
switch (desc->devnum) {
|
||||
case 0:
|
||||
return BOOT_DEVICE_MMC1;
|
||||
case 1:
|
||||
return BOOT_DEVICE_MMC2;
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* SPL doesn't differentiate SPI flashes, so we keep the detection
|
||||
* brief and inaccurate... hopefully, the common SPL layer can be
|
||||
* extended with awareness of the BLK layer (and matching OF_CONTROL)
|
||||
* soon.
|
||||
*/
|
||||
if (!uclass_get_device_by_of_offset(UCLASS_SPI_FLASH, node, &parent))
|
||||
return BOOT_DEVICE_SPI;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void board_boot_order(u32 *spl_boot_list)
|
||||
{
|
||||
const void *blob = gd->fdt_blob;
|
||||
int chosen_node = fdt_path_offset(blob, "/chosen");
|
||||
int idx = 0;
|
||||
int elem;
|
||||
int boot_device;
|
||||
int node;
|
||||
const char *conf;
|
||||
|
||||
if (chosen_node < 0) {
|
||||
debug("%s: /chosen not found, using spl_boot_device()\n",
|
||||
__func__);
|
||||
spl_boot_list[0] = spl_boot_device();
|
||||
return;
|
||||
}
|
||||
|
||||
for (elem = 0;
|
||||
(conf = fdt_stringlist_get(blob, chosen_node,
|
||||
"u-boot,spl-boot-order", elem, NULL));
|
||||
elem++) {
|
||||
/* First check if the list element is an alias */
|
||||
const char *alias = fdt_get_alias(blob, conf);
|
||||
if (alias)
|
||||
conf = alias;
|
||||
|
||||
/* Try to resolve the config item (or alias) as a path */
|
||||
node = fdt_path_offset(blob, conf);
|
||||
if (node < 0) {
|
||||
debug("%s: could not find %s in FDT", __func__, conf);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Try to map this back onto SPL boot devices */
|
||||
boot_device = spl_node_to_boot_device(node);
|
||||
if (boot_device < 0) {
|
||||
debug("%s: could not map node @%x to a boot-device\n",
|
||||
__func__, node);
|
||||
continue;
|
||||
}
|
||||
|
||||
spl_boot_list[idx++] = boot_device;
|
||||
}
|
||||
|
||||
/* If we had no matches, fall back to spl_boot_device */
|
||||
if (idx == 0)
|
||||
spl_boot_list[0] = spl_boot_device();
|
||||
}
|
||||
#endif
|
@ -1,5 +1,8 @@
|
||||
if ARCH_SUNXI
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/arm/cpu/armv7/sunxi/u-boot-spl.lds" if !ARM64
|
||||
|
||||
config IDENT_STRING
|
||||
default " Allwinner Technology"
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
if ARCH_ZYNQ
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/arm/mach-zynq/u-boot-spl.lds"
|
||||
|
||||
config SPL_FAT_SUPPORT
|
||||
default y
|
||||
|
||||
|
@ -21,4 +21,7 @@ endchoice
|
||||
|
||||
source "board/xilinx/microblaze-generic/Kconfig"
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/microblaze/cpu/u-boot-spl.lds"
|
||||
|
||||
endmenu
|
||||
|
@ -1,5 +1,8 @@
|
||||
if TARGET_APF27
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/$(ARCH)/cpu/u-boot-spl.lds"
|
||||
|
||||
config SYS_BOARD
|
||||
default "apf27"
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
if TARGET_MX31PDK
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/$(ARCH)/cpu/u-boot-spl.lds"
|
||||
|
||||
config SYS_BOARD
|
||||
default "mx31pdk"
|
||||
|
||||
|
@ -4,30 +4,6 @@
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <fdtdec.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/grf_rk3368.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int mach_cpu_init(void)
|
||||
{
|
||||
struct rk3368_pmu_grf *pmugrf;
|
||||
int node;
|
||||
|
||||
node = fdt_node_offset_by_compatible(gd->fdt_blob, -1, "rockchip,rk3368-pmugrf");
|
||||
pmugrf = (struct rk3368_pmu_grf *)fdtdec_get_addr(gd->fdt_blob, node, "reg");
|
||||
|
||||
rk_clrsetreg(&pmugrf->gpio0d_iomux,
|
||||
GPIO0D0_MASK | GPIO0D1_MASK |
|
||||
GPIO0D2_MASK | GPIO0D3_MASK,
|
||||
GPIO0D0_GPIO << GPIO0D0_SHIFT |
|
||||
GPIO0D1_GPIO << GPIO0D1_SHIFT |
|
||||
GPIO0D2_UART4_SOUT << GPIO0D2_SHIFT |
|
||||
GPIO0D3_UART4_SIN << GPIO0D3_SHIFT);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
|
@ -1,5 +1,8 @@
|
||||
if TARGET_X600
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
default "arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds"
|
||||
|
||||
config SYS_BOARD
|
||||
default "x600"
|
||||
|
||||
|
15
board/theobroma-systems/lion_rk3368/Kconfig
Normal file
15
board/theobroma-systems/lion_rk3368/Kconfig
Normal file
@ -0,0 +1,15 @@
|
||||
if TARGET_LION_RK3368
|
||||
|
||||
config SYS_BOARD
|
||||
default "lion_rk3368"
|
||||
|
||||
config SYS_VENDOR
|
||||
default "theobroma-systems"
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
default "lion_rk3368"
|
||||
|
||||
config BOARD_SPECIFIC_OPTIONS # dummy
|
||||
def_bool y
|
||||
|
||||
endif
|
10
board/theobroma-systems/lion_rk3368/MAINTAINERS
Normal file
10
board/theobroma-systems/lion_rk3368/MAINTAINERS
Normal file
@ -0,0 +1,10 @@
|
||||
LION-RK3368 (RK3368-uQ7 system-on-module)
|
||||
M: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||||
M: Klaus Goger <klaus.goger@theobroma-systems.com>
|
||||
S: Maintained
|
||||
F: board/theobroma-systems/lion_rk3368
|
||||
F: include/configs/lion_rk3368.h
|
||||
F: arch/arm/dts/rk3368-lion.dts
|
||||
F: configs/lion-rk3368_defconfig
|
||||
W: https://www.theobroma-systems.com/rk3368-uq7/tech-specs
|
||||
T: git git://git.theobroma-systems.com/lion-u-boot.git
|
7
board/theobroma-systems/lion_rk3368/Makefile
Normal file
7
board/theobroma-systems/lion_rk3368/Makefile
Normal file
@ -0,0 +1,7 @@
|
||||
#
|
||||
# Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-y += lion_rk3368.o
|
60
board/theobroma-systems/lion_rk3368/README
Normal file
60
board/theobroma-systems/lion_rk3368/README
Normal file
@ -0,0 +1,60 @@
|
||||
Here is the step-by-step to boot to U-Boot on RK3368-uQ7
|
||||
|
||||
Get the Source and build ATF
|
||||
============================
|
||||
|
||||
> git clone git://git.theobroma-systems.com/arm-trusted-firmware.git
|
||||
> cd arm-trusted-firmware
|
||||
> make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3368 bl31
|
||||
> cp build/rk3368/release/bl31.bin ../u-boot/bl31-rk3368.bin
|
||||
|
||||
Configure U-Boot
|
||||
================
|
||||
|
||||
> cd ../u-boot
|
||||
> make lion-rk3368_defconfig
|
||||
|
||||
Build the TPL/SPL stage
|
||||
=======================
|
||||
|
||||
> make CROSS_COMPILE=aarch64-unknown-elf- ARCH=arm
|
||||
> tools/mkimage -n rk3368 -T rksd -d tpl/u-boot-tpl.bin spl-3368.img
|
||||
> cat spl/u-boot-spl-dtb.bin >> spl-3368.img
|
||||
|
||||
Build the full U-Boot and a FIT image including the ATF
|
||||
=======================================================
|
||||
|
||||
> make CROSS_COMPILE=aarch64-unknown-elf- ARCH=arm u-boot.itb
|
||||
|
||||
Write to a SD-card
|
||||
==================
|
||||
|
||||
> dd if=spl-3368.img of=/dev/sdb seek=64
|
||||
> dd if=u-boot.itb of=/dev/sdb seek=512
|
||||
|
||||
|
||||
If everything went according to plan, you should see the following
|
||||
output on UART0:
|
||||
|
||||
<debug_uart> U-Boot TPL board init
|
||||
Trying to boot from BOOTROM
|
||||
Returning to boot ROM...
|
||||
Trying to boot from MMC1
|
||||
NOTICE: BL31: v1.3(release):v1.2-1320-gbf43a443
|
||||
NOTICE: BL31: Built : 18:04:47, Jul 5 2017
|
||||
|
||||
|
||||
U-Boot 2017.07-00158-g2395e99858 (Jul 18 2017 - 21:03:31 +0200)
|
||||
|
||||
Model: Theobroma Systems RK3368-uQ7 SoM
|
||||
DRAM: 2 GiB
|
||||
MMC: dwmmc@ff0c0000: 1, dwmmc@ff0f0000: 0
|
||||
Using default environment
|
||||
|
||||
In: serial@ff180000
|
||||
Out: serial@ff180000
|
||||
Err: serial@ff180000
|
||||
Net:
|
||||
Warning: ethernet@ff290000 (eth0) using random MAC address - d2:69:35:7e:d0:1e
|
||||
eth0: ethernet@ff290000
|
||||
Hit any key to stop autoboot: 2
|
51
board/theobroma-systems/lion_rk3368/fit_spl_atf.its
Normal file
51
board/theobroma-systems/lion_rk3368/fit_spl_atf.its
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* Minimal dts for a SPL FIT image payload.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ X11
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
description = "FIT image with U-Boot proper, ATF bl31, DTB";
|
||||
#address-cells = <1>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
data = /incbin/("../../../u-boot-nodtb.bin");
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x00200000>;
|
||||
};
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
data = /incbin/("../../../bl31-rk3368.bin");
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x00010000>;
|
||||
entry = <0x00010000>;
|
||||
};
|
||||
|
||||
fdt {
|
||||
description = "RK3368-uQ7 (Lion) flat device-tree";
|
||||
data = /incbin/("../../../u-boot.dtb");
|
||||
type = "flat_dt";
|
||||
compression = "none";
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf";
|
||||
conf {
|
||||
description = "Theobroma Systems RK3368-uQ7 (Puma) SoM";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
25
board/theobroma-systems/lion_rk3368/lion_rk3368.c
Normal file
25
board/theobroma-systems/lion_rk3368/lion_rk3368.c
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <ram.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/grf_rk3368.h>
|
||||
#include <asm/arch/timer.h>
|
||||
#include <syscon.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int mach_cpu_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
@ -37,7 +37,7 @@ Compile the ATF
|
||||
|
||||
> cd arm-trusted-firmware
|
||||
> make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31
|
||||
> cp build/rk3399/release/bl31.bin ../u-boot
|
||||
> cp build/rk3399/release/bl31.bin ../u-boot/bl31-rk3399.bin
|
||||
|
||||
Compile the M0 firmware
|
||||
=======================
|
||||
|
@ -13,7 +13,7 @@
|
||||
#address-cells = <1>;
|
||||
|
||||
images {
|
||||
uboot@1 {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
data = /incbin/("../../../u-boot-nodtb.bin");
|
||||
type = "standalone";
|
||||
@ -21,23 +21,23 @@
|
||||
compression = "none";
|
||||
load = <0x00200000>;
|
||||
};
|
||||
atf@1 {
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
data = /incbin/("../../../bl31.bin");
|
||||
data = /incbin/("../../../bl31-rk3399.bin");
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x00001000>;
|
||||
entry = <0x00001000>;
|
||||
};
|
||||
pmu@1 {
|
||||
pmu {
|
||||
description = "Cortex-M0 firmware";
|
||||
data = /incbin/("../../../rk3399m0.bin");
|
||||
type = "pmu-firmware";
|
||||
compression = "none";
|
||||
load = <0xff8c0000>;
|
||||
};
|
||||
fdt@1 {
|
||||
fdt {
|
||||
description = "RK3399-Q7 (Puma) flat device-tree";
|
||||
data = /incbin/("../../../u-boot.dtb");
|
||||
type = "flat_dt";
|
||||
@ -46,12 +46,12 @@
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf@1";
|
||||
conf@1 {
|
||||
default = "conf";
|
||||
conf {
|
||||
description = "Theobroma Systems RK3399-Q7 (Puma) SoM";
|
||||
firmware = "uboot@1";
|
||||
loadables = "atf@1";
|
||||
fdt = "fdt@1";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -53,7 +53,7 @@ obj-$(CONFIG_ENV_IS_IN_UBI) += env_ubi.o
|
||||
obj-$(CONFIG_ENV_IS_NOWHERE) += env_nowhere.o
|
||||
|
||||
obj-$(CONFIG_CMD_BEDBUG) += bedbug.o
|
||||
obj-$(CONFIG_$(SPL_)OF_LIBFDT) += fdt_support.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
|
||||
|
||||
obj-$(CONFIG_MII) += miiphyutil.o
|
||||
obj-$(CONFIG_CMD_MII) += miiphyutil.o
|
||||
@ -96,7 +96,7 @@ obj-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
|
||||
obj-$(CONFIG_SPL_YMODEM_SUPPORT) += xyzModem.o
|
||||
obj-$(CONFIG_SPL_LOAD_FIT) += common_fit.o
|
||||
obj-$(CONFIG_SPL_NET_SUPPORT) += miiphyutil.o
|
||||
obj-$(CONFIG_SPL_OF_LIBFDT) += fdt_support.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
|
||||
ifdef CONFIG_SPL_USB_HOST_SUPPORT
|
||||
obj-$(CONFIG_SPL_USB_SUPPORT) += usb.o usb_hub.o
|
||||
obj-$(CONFIG_USB_STORAGE) += usb_storage.o
|
||||
@ -146,10 +146,10 @@ endif
|
||||
endif
|
||||
obj-y += image.o
|
||||
obj-$(CONFIG_ANDROID_BOOT_IMAGE) += image-android.o
|
||||
obj-$(CONFIG_$(SPL_)OF_LIBFDT) += image-fdt.o
|
||||
obj-$(CONFIG_$(SPL_)FIT) += image-fit.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += image-fdt.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)FIT) += image-fit.o
|
||||
obj-$(CONFIG_FIT_EMBED) += boot_fit.o common_fit.o
|
||||
obj-$(CONFIG_$(SPL_)FIT_SIGNATURE) += image-sig.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)FIT_SIGNATURE) += image-sig.o
|
||||
obj-$(CONFIG_IO_TRACE) += iotrace.o
|
||||
obj-y += memsize.o
|
||||
obj-y += stdio.o
|
||||
|
@ -18,6 +18,16 @@ config SPL
|
||||
|
||||
if SPL
|
||||
|
||||
config SPL_LDSCRIPT
|
||||
string "Linker script for the SPL stage"
|
||||
default "arch/$(ARCH)/cpu/u-boot-spl.lds"
|
||||
depends on SPL
|
||||
help
|
||||
The SPL stage will usually require a different linker-script
|
||||
(as it runs from a different memory region) than the regular
|
||||
U-Boot stage. Set this to the path of the linker-script to
|
||||
be used for SPL.
|
||||
|
||||
config SPL_BOARD_INIT
|
||||
bool "Call board-specific initialization in SPL"
|
||||
help
|
||||
@ -25,6 +35,17 @@ config SPL_BOARD_INIT
|
||||
spl_board_init() from board_init_r(). This function should be
|
||||
provided by the board.
|
||||
|
||||
config SPL_BOOTROM_SUPPORT
|
||||
bool "Support returning to the BOOTROM"
|
||||
help
|
||||
Some platforms (e.g. the Rockchip RK3368) provide support in their
|
||||
ROM for loading the next boot-stage after performing basic setup
|
||||
from the SPL stage.
|
||||
|
||||
Enable this option, to return to the BOOTROM through the
|
||||
BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the
|
||||
boot device list, if not implemented for a given board)
|
||||
|
||||
config SPL_RAW_IMAGE_SUPPORT
|
||||
bool "Support SPL loading and booting of RAW images"
|
||||
default n if (ARCH_MX6 && (SPL_MMC_SUPPORT || SPL_SATA_SUPPORT))
|
||||
@ -51,6 +72,15 @@ config SPL_SYS_MALLOC_SIMPLE
|
||||
this will make the SPL binary smaller at the cost of more heap
|
||||
usage as the *_simple malloc functions do not re-use free-ed mem.
|
||||
|
||||
config TPL_SYS_MALLOC_SIMPLE
|
||||
bool
|
||||
prompt "Only use malloc_simple functions in the TPL"
|
||||
help
|
||||
Say Y here to only use the *_simple malloc functions from
|
||||
malloc_simple.c, rather then using the versions from dlmalloc.c;
|
||||
this will make the TPL binary smaller at the cost of more heap
|
||||
usage as the *_simple malloc functions do not re-use free-ed mem.
|
||||
|
||||
config SPL_STACK_R
|
||||
bool "Enable SDRAM location for SPL stack"
|
||||
help
|
||||
@ -573,14 +603,6 @@ config SPL_SPI_SUPPORT
|
||||
enable SPI drivers that are needed for other purposes also, such
|
||||
as a SPI PMIC.
|
||||
|
||||
config SPL_TIMER_SUPPORT
|
||||
bool "Support timer drivers"
|
||||
help
|
||||
Enable support for timer drivers in SPL. These can be used to get
|
||||
a timer value when in SPL, or perhaps for implementing a delay
|
||||
function. This enables the drivers in drivers/timer as part of an
|
||||
SPL build.
|
||||
|
||||
config SPL_USB_HOST_SUPPORT
|
||||
bool "Support USB host drivers"
|
||||
help
|
||||
@ -687,6 +709,74 @@ config TPL
|
||||
|
||||
if TPL
|
||||
|
||||
config TPL_LDSCRIPT
|
||||
string "Linker script for the TPL stage"
|
||||
depends on TPL
|
||||
help
|
||||
The TPL stage will usually require a different linker-script
|
||||
(as it runs from a different memory region) than the regular
|
||||
U-Boot stage. Set this to the path of the linker-script to
|
||||
be used for TPL.
|
||||
|
||||
May be left empty to trigger the Makefile infrastructure to
|
||||
fall back to the linker-script used for the SPL stage.
|
||||
|
||||
config TPL_NEEDS_SEPARATE_TEXT_BASE
|
||||
bool "TPL needs a separate text-base"
|
||||
default n
|
||||
depends on TPL
|
||||
help
|
||||
Enable, if the TPL stage should not inherit its text-base
|
||||
from the SPL stage. When enabled, a base address for the
|
||||
.text sections of the TPL stage has to be set below.
|
||||
|
||||
config TPL_NEEDS_SEPARATE_STACK
|
||||
bool "TPL needs a separate initial stack-pointer"
|
||||
default n
|
||||
depends on TPL
|
||||
help
|
||||
Enable, if the TPL stage should not inherit its initial
|
||||
stack-pointer from the settings for the SPL stage.
|
||||
|
||||
config TPL_TEXT_BASE
|
||||
hex "Base address for the .text section of the TPL stage"
|
||||
depends on TPL_NEEDS_SEPARATE_TEXT_BASE
|
||||
help
|
||||
The base address for the .text section of the TPL stage.
|
||||
|
||||
config TPL_MAX_SIZE
|
||||
int "Maximum size (in bytes) for the TPL stage"
|
||||
default 0
|
||||
depends on TPL
|
||||
help
|
||||
The maximum size (in bytes) of the TPL stage.
|
||||
|
||||
config TPL_STACK
|
||||
hex "Address of the initial stack-pointer for the TPL stage"
|
||||
depends on TPL_NEEDS_SEPARATE_STACK
|
||||
help
|
||||
The address of the initial stack-pointer for the TPL stage.
|
||||
Usually this will be the (aligned) top-of-stack.
|
||||
|
||||
config TPL_BOOTROM_SUPPORT
|
||||
bool "Support returning to the BOOTROM (from TPL)"
|
||||
help
|
||||
Some platforms (e.g. the Rockchip RK3368) provide support in their
|
||||
ROM for loading the next boot-stage after performing basic setup
|
||||
from the TPL stage.
|
||||
|
||||
Enable this option, to return to the BOOTROM through the
|
||||
BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the
|
||||
boot device list, if not implemented for a given board)
|
||||
|
||||
config TPL_DRIVERS_MISC_SUPPORT
|
||||
bool "Support misc drivers in TPL"
|
||||
help
|
||||
Enable miscellaneous drivers in TPL. These drivers perform various
|
||||
tasks that don't fall nicely into other categories, Enable this
|
||||
option to build the drivers in drivers/misc as part of an TPL
|
||||
build, for those that support building in TPL (not all drivers do).
|
||||
|
||||
config TPL_ENV_SUPPORT
|
||||
bool "Support an environment"
|
||||
help
|
||||
@ -695,7 +785,7 @@ config TPL_ENV_SUPPORT
|
||||
config TPL_I2C_SUPPORT
|
||||
bool "Support I2C"
|
||||
help
|
||||
Enable support for the I2C bus in SPL. See SPL_I2C_SUPPORT for
|
||||
Enable support for the I2C bus in TPL. See SPL_I2C_SUPPORT for
|
||||
details.
|
||||
|
||||
config TPL_LIBCOMMON_SUPPORT
|
||||
@ -725,24 +815,24 @@ config TPL_MMC_SUPPORT
|
||||
config TPL_NAND_SUPPORT
|
||||
bool "Support NAND flash"
|
||||
help
|
||||
Enable support for NAND in SPL. See SPL_NAND_SUPPORT for details.
|
||||
Enable support for NAND in TPL. See SPL_NAND_SUPPORT for details.
|
||||
|
||||
config TPL_SERIAL_SUPPORT
|
||||
bool "Support serial"
|
||||
help
|
||||
Enable support for serial in SPL. See SPL_SERIAL_SUPPORT for
|
||||
Enable support for serial in TPL. See SPL_SERIAL_SUPPORT for
|
||||
details.
|
||||
|
||||
config TPL_SPI_FLASH_SUPPORT
|
||||
bool "Support SPI flash drivers"
|
||||
help
|
||||
Enable support for using SPI flash in SPL. See SPL_SPI_FLASH_SUPPORT
|
||||
Enable support for using SPI flash in TPL. See SPL_SPI_FLASH_SUPPORT
|
||||
for details.
|
||||
|
||||
config TPL_SPI_SUPPORT
|
||||
bool "Support SPI drivers"
|
||||
help
|
||||
Enable support for using SPI in SPL. See SPL_SPI_SUPPORT for
|
||||
Enable support for using SPI in TPL. See SPL_SPI_SUPPORT for
|
||||
details.
|
||||
|
||||
endif # TPL
|
||||
|
@ -10,23 +10,24 @@
|
||||
|
||||
ifdef CONFIG_SPL_BUILD
|
||||
obj-$(CONFIG_SPL_FRAMEWORK) += spl.o
|
||||
obj-$(CONFIG_SPL_LOAD_FIT) += spl_fit.o
|
||||
obj-$(CONFIG_SPL_NOR_SUPPORT) += spl_nor.o
|
||||
obj-$(CONFIG_SPL_XIP_SUPPORT) += spl_xip.o
|
||||
obj-$(CONFIG_SPL_YMODEM_SUPPORT) += spl_ymodem.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)BOOTROM_SUPPORT) += spl_bootrom.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)LOAD_FIT) += spl_fit.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)SPL_NOR_SUPPORT) += spl_nor.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)SPL_XIP_SUPPORT) += spl_xip.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)SPL_YMODEM_SUPPORT) += spl_ymodem.o
|
||||
ifndef CONFIG_SPL_UBI
|
||||
obj-$(CONFIG_SPL_NAND_SUPPORT) += spl_nand.o
|
||||
obj-$(CONFIG_SPL_ONENAND_SUPPORT) += spl_onenand.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)NAND_SUPPORT) += spl_nand.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)ONENAND_SUPPORT) += spl_onenand.o
|
||||
endif
|
||||
obj-$(CONFIG_SPL_UBI) += spl_ubi.o
|
||||
obj-$(CONFIG_SPL_NET_SUPPORT) += spl_net.o
|
||||
obj-$(CONFIG_SPL_MMC_SUPPORT) += spl_mmc.o
|
||||
obj-$(CONFIG_SPL_ATF_SUPPORT) += spl_atf.o
|
||||
obj-$(CONFIG_SPL_USB_SUPPORT) += spl_usb.o
|
||||
obj-$(CONFIG_SPL_FAT_SUPPORT) += spl_fat.o
|
||||
obj-$(CONFIG_SPL_EXT_SUPPORT) += spl_ext.o
|
||||
obj-$(CONFIG_SPL_SATA_SUPPORT) += spl_sata.o
|
||||
obj-$(CONFIG_SPL_DFU_SUPPORT) += spl_dfu.o
|
||||
obj-$(CONFIG_SPL_SPI_LOAD) += spl_spi.o
|
||||
obj-$(CONFIG_SPL_RAM_SUPPORT) += spl_ram.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)UBI) += spl_ubi.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)NET_SUPPORT) += spl_net.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)MMC_SUPPORT) += spl_mmc.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)ATF_SUPPORT) += spl_atf.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)USB_SUPPORT) += spl_usb.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)FAT_SUPPORT) += spl_fat.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)EXT_SUPPORT) += spl_ext.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)SATA_SUPPORT) += spl_sata.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)DFU_SUPPORT) += spl_dfu.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)SPI_LOAD) += spl_spi.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)RAM_SUPPORT) += spl_ram.o
|
||||
endif
|
||||
|
@ -6,6 +6,7 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <spl.h>
|
||||
@ -243,7 +244,7 @@ static int spl_common_init(bool setup_malloc)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
if (IS_ENABLED(CONFIG_SPL_DM)) {
|
||||
if (CONFIG_IS_ENABLED(DM)) {
|
||||
bootstage_start(BOOTSTATE_ID_ACCUM_DM_SPL, "dm_spl");
|
||||
/* With CONFIG_SPL_OF_PLATDATA, bring in all devices */
|
||||
ret = dm_init_and_scan(!CONFIG_IS_ENABLED(OF_PLATDATA));
|
||||
@ -424,7 +425,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
|
||||
gd->malloc_ptr / 1024);
|
||||
#endif
|
||||
|
||||
if (IS_ENABLED(CONFIG_SPL_ATF_SUPPORT)) {
|
||||
if (CONFIG_IS_ENABLED(ATF_SUPPORT)) {
|
||||
debug("loaded - jumping to U-Boot via ATF BL31.\n");
|
||||
bl31_entry();
|
||||
}
|
||||
@ -486,7 +487,7 @@ ulong spl_relocate_stack_gd(void)
|
||||
gd_t *new_gd;
|
||||
ulong ptr = CONFIG_SPL_STACK_R_ADDR;
|
||||
|
||||
#if defined(CONFIG_SPL_SYS_MALLOC_SIMPLE) && CONFIG_SPL_SYS_MALLOC_F_LEN
|
||||
#if defined(CONFIG_SPL_SYS_MALLOC_SIMPLE) && CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
if (CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN) {
|
||||
ptr -= CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN;
|
||||
gd->malloc_base = ptr;
|
||||
|
27
common/spl/spl_bootrom.c
Normal file
27
common/spl/spl_bootrom.c
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Theobroma Systems Design und Consulting GmH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <spl.h>
|
||||
|
||||
__weak void board_return_to_bootrom(void)
|
||||
{
|
||||
}
|
||||
|
||||
static int spl_return_to_bootrom(struct spl_image_info *spl_image,
|
||||
struct spl_boot_device *bootdev)
|
||||
{
|
||||
/*
|
||||
* If the board implements a way to return to its ROM (with
|
||||
* the expectation that the next stage of will be booted by
|
||||
* the ROM), it will implement board_return_to_bootrom() and
|
||||
* should not return from it.
|
||||
*/
|
||||
board_return_to_bootrom();
|
||||
return false;
|
||||
}
|
||||
|
||||
SPL_LOAD_IMAGE_METHOD("BOOTROM", 0, BOOT_DEVICE_BOOTROM, spl_return_to_bootrom);
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
@ -19,6 +18,8 @@ CONFIG_TPL=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_EEPROM=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
@ -18,9 +17,12 @@ CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_BOARD_EARLY_INIT_F=y
|
||||
CONFIG_SPL=y
|
||||
CONFIG_TPL=y
|
||||
CONFIG_TPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
@ -17,9 +16,12 @@ CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_BOARD_EARLY_INIT_F=y
|
||||
CONFIG_SPL=y
|
||||
CONFIG_TPL=y
|
||||
CONFIG_TPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
@ -18,9 +17,12 @@ CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_BOARD_EARLY_INIT_F=y
|
||||
CONFIG_SPL=y
|
||||
CONFIG_TPL=y
|
||||
CONFIG_TPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
@ -17,10 +16,12 @@ CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_BOARD_EARLY_INIT_F=y
|
||||
CONFIG_SPL=y
|
||||
CONFIG_TPL=y
|
||||
CONFIG_TPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
# CONFIG_CMD_ERRATA is not set
|
||||
@ -20,6 +19,8 @@ CONFIG_TPL=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
# CONFIG_CMD_ERRATA is not set
|
||||
@ -19,6 +18,8 @@ CONFIG_TPL=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
# CONFIG_CMD_ERRATA is not set
|
||||
@ -19,6 +18,8 @@ CONFIG_TPL=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
# CONFIG_CMD_ERRATA is not set
|
||||
@ -20,6 +19,8 @@ CONFIG_TPL=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
# CONFIG_CMD_ERRATA is not set
|
||||
@ -19,6 +18,8 @@ CONFIG_TPL=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
CONFIG_TARGET_P1022DS=y
|
||||
@ -19,6 +18,8 @@ CONFIG_TPL=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_REGINFO=y
|
||||
CONFIG_CMD_MMC=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
CONFIG_TARGET_P1022DS=y
|
||||
@ -19,6 +18,7 @@ CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_REGINFO=y
|
||||
CONFIG_CMD_MMC=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
# CONFIG_CMD_ERRATA is not set
|
||||
@ -19,6 +18,8 @@ CONFIG_TPL=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
# CONFIG_CMD_ERRATA is not set
|
||||
@ -20,6 +19,7 @@ CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_NAND=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
# CONFIG_CMD_ERRATA is not set
|
||||
@ -21,6 +20,7 @@ CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -2,7 +2,6 @@ CONFIG_PPC=y
|
||||
CONFIG_SPL_SERIAL_SUPPORT=y
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
CONFIG_MPC85xx=y
|
||||
# CONFIG_CMD_ERRATA is not set
|
||||
@ -19,6 +18,8 @@ CONFIG_TPL=y
|
||||
CONFIG_TPL_ENV_SUPPORT=y
|
||||
CONFIG_TPL_I2C_SUPPORT=y
|
||||
CONFIG_TPL_MPC8XXX_INIT_DDR_SUPPORT=y
|
||||
CONFIG_TPL_NAND_SUPPORT=y
|
||||
CONFIG_TPL_SERIAL_SUPPORT=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
|
@ -27,7 +27,7 @@ CONFIG_SPL_NET_SUPPORT=y
|
||||
CONFIG_SPL_PCI_SUPPORT=y
|
||||
CONFIG_SPL_PCH_SUPPORT=y
|
||||
CONFIG_SPL_RTC_SUPPORT=y
|
||||
CONFIG_SPL_TIMER_SUPPORT=y
|
||||
CONFIG_SPL_TIMER=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_CPU=y
|
||||
# CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set
|
||||
|
@ -1,5 +1,6 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x1000
|
||||
CONFIG_ROCKCHIP_RK3368=y
|
||||
CONFIG_TARGET_EVB_PX5=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3368-px5-evb"
|
||||
|
@ -4,7 +4,7 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x800
|
||||
CONFIG_ROCKCHIP_RK322X=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_EVB_RK3229=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3229-evb"
|
||||
|
@ -2,7 +2,7 @@ CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3288=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_EVB_RK3288=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3288-evb"
|
||||
|
@ -2,7 +2,7 @@ CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3288=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_FENNEC_RK3288=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3288-fennec"
|
||||
|
@ -2,7 +2,7 @@ CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3288=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_FIREFLY_RK3288=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3288-firefly"
|
||||
|
@ -1,5 +1,6 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x1000
|
||||
CONFIG_ROCKCHIP_RK3368=y
|
||||
CONFIG_TARGET_GEEKBOX=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3368-geekbox"
|
||||
|
95
configs/lion-rk3368_defconfig
Normal file
95
configs/lion-rk3368_defconfig
Normal file
@ -0,0 +1,95 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3368=y
|
||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
|
||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_SPL_SPI_FLASH_SUPPORT=y
|
||||
CONFIG_SPL_SPI_SUPPORT=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x600000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3368-lion"
|
||||
CONFIG_SMBIOS_PRODUCT_NAME="sheep_rk3368"
|
||||
CONFIG_DEBUG_UART=y
|
||||
CONFIG_FIT=y
|
||||
CONFIG_FIT_VERBOSE=y
|
||||
CONFIG_SPL_LOAD_FIT=y
|
||||
CONFIG_SPL_FIT_SOURCE="board/theobroma-systems/lion_rk3368/fit_spl_atf.its"
|
||||
CONFIG_ENV_IS_IN_MMC=y
|
||||
# CONFIG_DISPLAY_CPUINFO is not set
|
||||
CONFIG_ARCH_EARLY_INIT_R=y
|
||||
CONFIG_SPL=y
|
||||
CONFIG_SPL_BOOTROM_SUPPORT=y
|
||||
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
|
||||
# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set
|
||||
CONFIG_TPL_SYS_MALLOC_SIMPLE=y
|
||||
CONFIG_SPL_STACK_R=y
|
||||
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x200
|
||||
CONFIG_SPL_ATF_SUPPORT=y
|
||||
CONFIG_SPL_ATF_TEXT_BASE=0x10000
|
||||
CONFIG_TPL=y
|
||||
CONFIG_TPL_BOOTROM_SUPPORT=y
|
||||
CONFIG_TPL_DRIVERS_MISC_SUPPORT=y
|
||||
CONFIG_FASTBOOT=y
|
||||
CONFIG_ANDROID_BOOT_IMAGE=y
|
||||
# CONFIG_CMD_IMLS is not set
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_SF=y
|
||||
CONFIG_CMD_GPIO=y
|
||||
CONFIG_CMD_REGULATOR=y
|
||||
CONFIG_CMD_MTDPARTS=y
|
||||
CONFIG_SPL_OF_CONTROL=y
|
||||
CONFIG_TPL_OF_CONTROL=y
|
||||
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names interrupt-parent"
|
||||
CONFIG_TPL_OF_PLATDATA=y
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
CONFIG_TPL_DM=y
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_SPL_REGMAP=y
|
||||
CONFIG_TPL_REGMAP=y
|
||||
CONFIG_SYSCON=y
|
||||
CONFIG_SPL_SYSCON=y
|
||||
CONFIG_TPL_SYSCON=y
|
||||
CONFIG_CLK=y
|
||||
CONFIG_SPL_CLK=y
|
||||
CONFIG_TPL_CLK=y
|
||||
CONFIG_ROCKCHIP_GPIO=y
|
||||
CONFIG_MMC_DW=y
|
||||
CONFIG_MMC_DW_ROCKCHIP=y
|
||||
CONFIG_SPI_FLASH=y
|
||||
CONFIG_SPI_FLASH_MACRONIX=y
|
||||
CONFIG_SPI_FLASH_WINBOND=y
|
||||
CONFIG_PHY_MICREL=y
|
||||
CONFIG_PHY_MICREL_KSZ9031=y
|
||||
CONFIG_DM_ETH=y
|
||||
CONFIG_ETH_DESIGNWARE=y
|
||||
CONFIG_RGMII=y
|
||||
CONFIG_GMAC_ROCKCHIP=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_SPL_PINCTRL=y
|
||||
CONFIG_PINCTRL_ROCKCHIP_RK3368=y
|
||||
CONFIG_DM_PMIC=y
|
||||
CONFIG_PMIC_RK8XX=y
|
||||
CONFIG_DM_REGULATOR_FIXED=y
|
||||
CONFIG_RAM=y
|
||||
CONFIG_SPL_RAM=y
|
||||
CONFIG_TPL_RAM=y
|
||||
CONFIG_DEBUG_UART_BASE=0xFF180000
|
||||
CONFIG_DEBUG_UART_CLOCK=24000000
|
||||
CONFIG_DEBUG_UART_SHIFT=2
|
||||
CONFIG_DEBUG_UART_ANNOUNCE=y
|
||||
CONFIG_DEBUG_UART_SKIP_INIT=y
|
||||
CONFIG_ROCKCHIP_SPI=y
|
||||
CONFIG_SYSRESET=y
|
||||
CONFIG_TIMER=y
|
||||
CONFIG_SPL_TIMER=y
|
||||
CONFIG_TPL_TIMER=y
|
||||
CONFIG_ROCKCHIP_TIMER=y
|
||||
CONFIG_USE_TINY_PRINTF=y
|
||||
CONFIG_SPL_TINY_MEMSET=y
|
||||
CONFIG_LZO=y
|
||||
CONFIG_ERRNO_STR=y
|
||||
CONFIG_SMBIOS_MANUFACTURER="rockchip"
|
@ -2,7 +2,7 @@ CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3288=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_MIQI_RK3288=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3288-miqi"
|
||||
|
@ -2,7 +2,7 @@ CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3288=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_PHYCORE_RK3288=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3288-phycore-rdk"
|
||||
|
@ -2,7 +2,7 @@ CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3288=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_POPMETAL_RK3288=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3288-popmetal"
|
||||
|
@ -26,7 +26,7 @@ CONFIG_SPL_NET_SUPPORT=y
|
||||
CONFIG_SPL_PCI_SUPPORT=y
|
||||
CONFIG_SPL_PCH_SUPPORT=y
|
||||
CONFIG_SPL_RTC_SUPPORT=y
|
||||
CONFIG_SPL_TIMER_SUPPORT=y
|
||||
CONFIG_SPL_TIMER=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_CPU=y
|
||||
# CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set
|
||||
|
@ -2,7 +2,7 @@ CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3288=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_ROCK2=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3288-rock2-square"
|
||||
|
@ -4,7 +4,8 @@ CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3188=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_ROCK=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x60080000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3188-radxarock"
|
||||
@ -49,5 +50,6 @@ CONFIG_DEBUG_UART_SHIFT=2
|
||||
CONFIG_SYS_NS16550=y
|
||||
CONFIG_SYSRESET=y
|
||||
CONFIG_SPL_TINY_MEMSET=y
|
||||
CONFIG_TPL_TINY_MEMSET=y
|
||||
CONFIG_CMD_DHRYSTONE=y
|
||||
CONFIG_ERRNO_STR=y
|
||||
|
@ -1,5 +1,6 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x1000
|
||||
CONFIG_ROCKCHIP_RK3368=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3368-sheep"
|
||||
CONFIG_DEBUG_UART=y
|
||||
|
@ -2,7 +2,7 @@ CONFIG_ARM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
||||
CONFIG_ROCKCHIP_RK3288=y
|
||||
CONFIG_ROCKCHIP_SPL_BACK_TO_BROM=y
|
||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||
CONFIG_TARGET_TINKER_RK3288=y
|
||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="rk3288-tinker"
|
||||
|
@ -130,7 +130,7 @@ load a second-level bootloader(ie. U-BOOT) as soon as it returns to bootrom.
|
||||
Therefore RK3288 has another loading sequence like RK3036. The option of
|
||||
U-Boot is controlled with this setting in U-Boot:
|
||||
|
||||
#define CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
|
||||
#define CONFIG_SPL_ROCKCHIP_BACK_TO_BROM
|
||||
|
||||
You can create the image via the following operations:
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user