Merge tag 'rockchip-for-v2019.07' of https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip
- rk3399 lpddr4 support - rk3399-rock960 board support improvement - Eliminate pyelftools dependency by make_fit_atf.py - clean up rockchip dts to use -u-boot.dtsi - use ARM arch/generic timer instead of rk_timer - clean up Kconfig options for board support
This commit is contained in:
commit
79ea03b38a
46
arch/arm/dts/rk3288-evb-u-boot.dtsi
Normal file
46
arch/arm/dts/rk3288-evb-u-boot.dtsi
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Rockchip Electronics Co., Ltd
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rk3288-u-boot.dtsi"
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart2 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&emmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio8 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_bus4 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_clk {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_cmd {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_pwr {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
@ -26,31 +26,6 @@
|
|||||||
rockchip,sdram-params = <0x20d266a4 0x5b6 2 533000000 6 9 0>;
|
rockchip,sdram-params = <0x20d266a4 0x5b6 2 533000000 6 9 0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&pinctrl {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&pwm1 {
|
&pwm1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart2 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
reg-shift = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&sdmmc {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&emmc {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio3 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio8 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
54
arch/arm/dts/rk3288-fennec-u-boot.dtsi
Normal file
54
arch/arm/dts/rk3288-fennec-u-boot.dtsi
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Rockchip Electronics Co., Ltd
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rk3288-u-boot.dtsi"
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart2 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&emmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio8 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&pcfg_pull_none_drv_8ma {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&pcfg_pull_up_drv_8ma {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_bus4 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_clk {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_cmd {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_pwr {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
@ -26,31 +26,6 @@
|
|||||||
rockchip,sdram-params = <0x20d266a4 0x5b6 2 533000000 6 9 0>;
|
rockchip,sdram-params = <0x20d266a4 0x5b6 2 533000000 6 9 0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&pinctrl {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&pwm1 {
|
&pwm1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart2 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
reg-shift = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&sdmmc {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&emmc {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio3 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio8 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
50
arch/arm/dts/rk3288-firefly-u-boot.dtsi
Normal file
50
arch/arm/dts/rk3288-firefly-u-boot.dtsi
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Rockchip Electronics Co., Ltd
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rk3288-u-boot.dtsi"
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart2 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&emmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio8 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&pcfg_pull_up_drv_12ma {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_bus4 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_clk {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_cmd {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_pwr {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
@ -37,7 +37,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pinctrl {
|
&pinctrl {
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
act8846 {
|
act8846 {
|
||||||
pmic_vsel: pmic-vsel {
|
pmic_vsel: pmic-vsel {
|
||||||
rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_output_low>;
|
rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_output_low>;
|
||||||
@ -59,25 +58,3 @@
|
|||||||
&pwm1 {
|
&pwm1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart2 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
reg-shift = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb_host1 {
|
|
||||||
vbus-supply = <&vcc_host_5v>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&sdmmc {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio3 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio8 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
@ -320,6 +320,11 @@
|
|||||||
output-low;
|
output-low;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
|
||||||
|
bias-pull-up;
|
||||||
|
drive-strength = <12>;
|
||||||
|
};
|
||||||
|
|
||||||
act8846 {
|
act8846 {
|
||||||
pwr_hold: pwr-hold {
|
pwr_hold: pwr-hold {
|
||||||
rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_output_high>;
|
rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_output_high>;
|
||||||
@ -363,8 +368,27 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
sdmmc {
|
sdmmc {
|
||||||
|
/*
|
||||||
|
* Default drive strength isn't enough to achieve even
|
||||||
|
* high-speed mode on firefly board so bump up to 12ma.
|
||||||
|
*/
|
||||||
|
sdmmc_bus4: sdmmc-bus4 {
|
||||||
|
rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>,
|
||||||
|
<6 RK_PC1 1 &pcfg_pull_up_drv_12ma>,
|
||||||
|
<6 RK_PC2 1 &pcfg_pull_up_drv_12ma>,
|
||||||
|
<6 RK_PC3 1 &pcfg_pull_up_drv_12ma>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc_clk: sdmmc-clk {
|
||||||
|
rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc_cmd: sdmmc-cmd {
|
||||||
|
rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>;
|
||||||
|
};
|
||||||
|
|
||||||
sdmmc_pwr: sdmmc-pwr {
|
sdmmc_pwr: sdmmc-pwr {
|
||||||
rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
|
rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
38
arch/arm/dts/rk3288-miqi-u-boot.dtsi
Normal file
38
arch/arm/dts/rk3288-miqi-u-boot.dtsi
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Rockchip Electronics Co., Ltd
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rk3288-u-boot.dtsi"
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart2 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&emmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_bus4 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_clk {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_cmd {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_pwr {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
@ -25,21 +25,3 @@
|
|||||||
0xa60 0x40 0x10 0x0>;
|
0xa60 0x40 0x10 0x0>;
|
||||||
rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 9 1>;
|
rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 9 1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
&pinctrl {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart2 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
reg-shift = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&sdmmc {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&emmc {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
46
arch/arm/dts/rk3288-popmetal-u-boot.dtsi
Normal file
46
arch/arm/dts/rk3288-popmetal-u-boot.dtsi
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Rockchip Electronics Co., Ltd
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rk3288-u-boot.dtsi"
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart2 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&emmc {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio8 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_bus4 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_clk {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_cmd {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc_pwr {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
@ -26,32 +26,6 @@
|
|||||||
rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 9 1>;
|
rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 9 1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
&pinctrl {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&pwm1 {
|
&pwm1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart2 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
reg-shift = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&sdmmc {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&emmc {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio3 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio8 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
@ -3,6 +3,13 @@
|
|||||||
* Copyright (C) 2019 Rockchip Electronics Co., Ltd
|
* Copyright (C) 2019 Rockchip Electronics Co., Ltd
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
chosen {
|
||||||
|
u-boot,spl-boot-order = \
|
||||||
|
"same-as-spl", &emmc, &sdmmc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&dmc {
|
&dmc {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
chosen {
|
chosen {
|
||||||
stdout-path = "serial0:115200n8";
|
stdout-path = "serial0:115200n8";
|
||||||
u-boot,spl-boot-order = &emmc, &sdmmc;
|
u-boot,spl-boot-order = &emmc, &sdmmc;
|
||||||
tick-timer = "/timer@ff810000";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
/ {
|
/ {
|
||||||
chosen {
|
chosen {
|
||||||
u-boot,spl-boot-order = &emmc;
|
u-boot,spl-boot-order = &emmc;
|
||||||
tick-timer = "/timer@ff810000";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,6 +23,52 @@
|
|||||||
clock-output-names = "clkin_gmac";
|
clock-output-names = "clkin_gmac";
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&user_led1>, <&user_led2>, <&user_led3>,
|
||||||
|
<&user_led4>, <&wlan_led>, <&bt_led>;
|
||||||
|
|
||||||
|
user_led1 {
|
||||||
|
label = "red:user1";
|
||||||
|
gpios = <&gpio4 25 0>;
|
||||||
|
linux,default-trigger = "heartbeat";
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led2 {
|
||||||
|
label = "red:user2";
|
||||||
|
gpios = <&gpio4 26 0>;
|
||||||
|
linux,default-trigger = "mmc0";
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led3 {
|
||||||
|
label = "red:user3";
|
||||||
|
gpios = <&gpio4 30 0>;
|
||||||
|
linux,default-trigger = "mmc1";
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led4 {
|
||||||
|
label = "red:user4";
|
||||||
|
gpios = <&gpio1 0 0>;
|
||||||
|
panic-indicator;
|
||||||
|
linux,default-trigger = "none";
|
||||||
|
};
|
||||||
|
|
||||||
|
wlan_active_led {
|
||||||
|
label = "red:wlan";
|
||||||
|
gpios = <&gpio1 1 0>;
|
||||||
|
linux,default-trigger = "phy0tx";
|
||||||
|
default-state = "off";
|
||||||
|
};
|
||||||
|
|
||||||
|
bt_active_led {
|
||||||
|
label = "red:bt";
|
||||||
|
gpios = <&gpio1 4 0>;
|
||||||
|
linux,default-trigger = "hci0-power";
|
||||||
|
default-state = "off";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
@ -49,23 +95,63 @@
|
|||||||
gmac {
|
gmac {
|
||||||
rgmii_sleep_pins: rgmii-sleep-pins {
|
rgmii_sleep_pins: rgmii-sleep-pins {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<3 15 RK_FUNC_GPIO &pcfg_output_low>;
|
<3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
pcie {
|
pcie {
|
||||||
pcie_drv: pcie-drv {
|
pcie_drv: pcie-drv {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<1 24 RK_FUNC_GPIO &pcfg_pull_none>;
|
<1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
usb2 {
|
usb2 {
|
||||||
host_vbus_drv: host-vbus-drv {
|
host_vbus_drv: host-vbus-drv {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<4 27 RK_FUNC_GPIO &pcfg_pull_none>;
|
<4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
user_led1: user_led1 {
|
||||||
|
rockchip,pins =
|
||||||
|
<4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led2: user_led2 {
|
||||||
|
rockchip,pins =
|
||||||
|
<4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led3: user_led3 {
|
||||||
|
rockchip,pins =
|
||||||
|
<4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led4: user_led4 {
|
||||||
|
rockchip,pins =
|
||||||
|
<1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wlan_led: wlan_led {
|
||||||
|
rockchip,pins =
|
||||||
|
<1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
bt_led: bt_led {
|
||||||
|
rockchip,pins =
|
||||||
|
<1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbdrd_dwc3_0 {
|
||||||
|
dr_mode = "host";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbdrd_dwc3_1 {
|
||||||
|
dr_mode = "host";
|
||||||
};
|
};
|
||||||
|
|
||||||
&vcc3v3_pcie {
|
&vcc3v3_pcie {
|
||||||
|
@ -4,3 +4,4 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "rk3399-nanopi4-u-boot.dtsi"
|
#include "rk3399-nanopi4-u-boot.dtsi"
|
||||||
|
#include "rk3399-sdram-ddr3-1866.dtsi"
|
||||||
|
@ -4,3 +4,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "rk3399-u-boot.dtsi"
|
#include "rk3399-u-boot.dtsi"
|
||||||
|
#include "rk3399-sdram-lpddr4-100.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
chosen {
|
||||||
|
u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
* Copyright (c) 2018 Linaro Ltd.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
@ -13,6 +13,53 @@
|
|||||||
chosen {
|
chosen {
|
||||||
stdout-path = "serial2:1500000n8";
|
stdout-path = "serial2:1500000n8";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&user_led1>, <&user_led2>, <&user_led3>,
|
||||||
|
<&user_led4>, <&wlan_led>, <&bt_led>;
|
||||||
|
|
||||||
|
user_led1 {
|
||||||
|
label = "green:user1";
|
||||||
|
gpios = <&gpio4 RK_PC2 0>;
|
||||||
|
linux,default-trigger = "heartbeat";
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led2 {
|
||||||
|
label = "green:user2";
|
||||||
|
gpios = <&gpio4 RK_PC6 0>;
|
||||||
|
linux,default-trigger = "mmc0";
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led3 {
|
||||||
|
label = "green:user3";
|
||||||
|
gpios = <&gpio4 RK_PD0 0>;
|
||||||
|
linux,default-trigger = "mmc1";
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led4 {
|
||||||
|
label = "green:user4";
|
||||||
|
gpios = <&gpio4 RK_PD4 0>;
|
||||||
|
panic-indicator;
|
||||||
|
linux,default-trigger = "none";
|
||||||
|
};
|
||||||
|
|
||||||
|
wlan_active_led {
|
||||||
|
label = "yellow:wlan";
|
||||||
|
gpios = <&gpio4 RK_PD5 0>;
|
||||||
|
linux,default-trigger = "phy0tx";
|
||||||
|
default-state = "off";
|
||||||
|
};
|
||||||
|
|
||||||
|
bt_active_led {
|
||||||
|
label = "blue:bt";
|
||||||
|
gpios = <&gpio4 RK_PD6 0>;
|
||||||
|
linux,default-trigger = "hci0-power";
|
||||||
|
default-state = "off";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&pcie0 {
|
&pcie0 {
|
||||||
@ -20,6 +67,38 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pinctrl {
|
&pinctrl {
|
||||||
|
leds {
|
||||||
|
user_led1: user_led1 {
|
||||||
|
rockchip,pins =
|
||||||
|
<4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led2: user_led2 {
|
||||||
|
rockchip,pins =
|
||||||
|
<4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led3: user_led3 {
|
||||||
|
rockchip,pins =
|
||||||
|
<4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
user_led4: user_led4 {
|
||||||
|
rockchip,pins =
|
||||||
|
<4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wlan_led: wlan_led {
|
||||||
|
rockchip,pins =
|
||||||
|
<4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
bt_led: bt_led {
|
||||||
|
rockchip,pins =
|
||||||
|
<4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
pcie {
|
pcie {
|
||||||
pcie_drv: pcie-drv {
|
pcie_drv: pcie-drv {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
@ -35,6 +114,14 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&usbdrd_dwc3_0 {
|
||||||
|
dr_mode = "otg";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbdrd_dwc3_1 {
|
||||||
|
dr_mode = "host";
|
||||||
|
};
|
||||||
|
|
||||||
&vcc3v3_pcie {
|
&vcc3v3_pcie {
|
||||||
gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>;
|
gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
@ -1,13 +1,32 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||||
/*
|
/*
|
||||||
|
* Copyright (c) 2018 Collabora Ltd.
|
||||||
|
* Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd.
|
||||||
* Copyright (c) 2018 Linaro Ltd.
|
* Copyright (c) 2018 Linaro Ltd.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <dt-bindings/pwm/pwm.h>
|
|
||||||
#include <dt-bindings/pinctrl/rockchip.h>
|
|
||||||
#include "rk3399.dtsi"
|
#include "rk3399.dtsi"
|
||||||
|
#include "rk3399-opp.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
sdio_pwrseq: sdio-pwrseq {
|
||||||
|
compatible = "mmc-pwrseq-simple";
|
||||||
|
clocks = <&rk808 1>;
|
||||||
|
clock-names = "ext_clock";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&wifi_enable_h>;
|
||||||
|
reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vcc12v_dcin: vcc12v-dcin {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vcc12v_dcin";
|
||||||
|
regulator-min-microvolt = <12000000>;
|
||||||
|
regulator-max-microvolt = <12000000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
|
||||||
vcc1v8_s0: vcc1v8-s0 {
|
vcc1v8_s0: vcc1v8-s0 {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
regulator-name = "vcc1v8_s0";
|
regulator-name = "vcc1v8_s0";
|
||||||
@ -16,12 +35,13 @@
|
|||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
};
|
};
|
||||||
|
|
||||||
vcc_sys: vcc-sys {
|
vcc5v0_sys: vcc5v0-sys {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
regulator-name = "vcc_sys";
|
regulator-name = "vcc5v0_sys";
|
||||||
regulator-min-microvolt = <5000000>;
|
regulator-min-microvolt = <5000000>;
|
||||||
regulator-max-microvolt = <5000000>;
|
regulator-max-microvolt = <5000000>;
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
|
vin-supply = <&vcc12v_dcin>;
|
||||||
};
|
};
|
||||||
|
|
||||||
vcc3v3_sys: vcc3v3-sys {
|
vcc3v3_sys: vcc3v3-sys {
|
||||||
@ -30,7 +50,7 @@
|
|||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
vin-supply = <&vcc_sys>;
|
vin-supply = <&vcc5v0_sys>;
|
||||||
};
|
};
|
||||||
|
|
||||||
vcc3v3_pcie: vcc3v3-pcie-regulator {
|
vcc3v3_pcie: vcc3v3-pcie-regulator {
|
||||||
@ -54,20 +74,8 @@
|
|||||||
regulator-min-microvolt = <5000000>;
|
regulator-min-microvolt = <5000000>;
|
||||||
regulator-max-microvolt = <5000000>;
|
regulator-max-microvolt = <5000000>;
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
vin-supply = <&vcc_sys>;
|
vin-supply = <&vcc5v0_sys>;
|
||||||
};
|
};
|
||||||
|
|
||||||
vdd_log: vdd-log {
|
|
||||||
compatible = "pwm-regulator";
|
|
||||||
pwms = <&pwm2 0 25000 0>;
|
|
||||||
regulator-name = "vdd_log";
|
|
||||||
regulator-min-microvolt = <800000>;
|
|
||||||
regulator-max-microvolt = <1400000>;
|
|
||||||
regulator-always-on;
|
|
||||||
regulator-boot-on;
|
|
||||||
vin-supply = <&vcc_sys>;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&cpu_l0 {
|
&cpu_l0 {
|
||||||
@ -98,7 +106,19 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gpu {
|
||||||
|
mali-supply = <&vdd_gpu>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&hdmi {
|
&hdmi {
|
||||||
|
ddc-i2c-bus = <&i2c3>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&hdmi_cec>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi_sound {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -118,7 +138,7 @@
|
|||||||
regulator-ramp-delay = <1000>;
|
regulator-ramp-delay = <1000>;
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
regulator-boot-on;
|
regulator-boot-on;
|
||||||
vin-supply = <&vcc_sys>;
|
vin-supply = <&vcc5v0_sys>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
regulator-state-mem {
|
regulator-state-mem {
|
||||||
@ -136,7 +156,7 @@
|
|||||||
regulator-ramp-delay = <1000>;
|
regulator-ramp-delay = <1000>;
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
regulator-boot-on;
|
regulator-boot-on;
|
||||||
vin-supply = <&vcc_sys>;
|
vin-supply = <&vcc5v0_sys>;
|
||||||
regulator-state-mem {
|
regulator-state-mem {
|
||||||
regulator-off-in-suspend;
|
regulator-off-in-suspend;
|
||||||
};
|
};
|
||||||
@ -154,16 +174,16 @@
|
|||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
clock-output-names = "xin32k", "rk808-clkout2";
|
clock-output-names = "xin32k", "rk808-clkout2";
|
||||||
|
|
||||||
vcc1-supply = <&vcc_sys>;
|
vcc1-supply = <&vcc5v0_sys>;
|
||||||
vcc2-supply = <&vcc_sys>;
|
vcc2-supply = <&vcc5v0_sys>;
|
||||||
vcc3-supply = <&vcc_sys>;
|
vcc3-supply = <&vcc5v0_sys>;
|
||||||
vcc4-supply = <&vcc_sys>;
|
vcc4-supply = <&vcc5v0_sys>;
|
||||||
vcc6-supply = <&vcc_sys>;
|
vcc6-supply = <&vcc5v0_sys>;
|
||||||
vcc7-supply = <&vcc_sys>;
|
vcc7-supply = <&vcc5v0_sys>;
|
||||||
vcc8-supply = <&vcc3v3_sys>;
|
vcc8-supply = <&vcc3v3_sys>;
|
||||||
vcc9-supply = <&vcc_sys>;
|
vcc9-supply = <&vcc5v0_sys>;
|
||||||
vcc10-supply = <&vcc_sys>;
|
vcc10-supply = <&vcc5v0_sys>;
|
||||||
vcc11-supply = <&vcc_sys>;
|
vcc11-supply = <&vcc5v0_sys>;
|
||||||
vcc12-supply = <&vcc3v3_sys>;
|
vcc12-supply = <&vcc3v3_sys>;
|
||||||
vddio-supply = <&vcc_1v8>;
|
vddio-supply = <&vcc_1v8>;
|
||||||
|
|
||||||
@ -344,6 +364,10 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&i2s2 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&io_domains {
|
&io_domains {
|
||||||
bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */
|
bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */
|
||||||
audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */
|
audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */
|
||||||
@ -370,45 +394,92 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pinctrl {
|
&pinctrl {
|
||||||
|
bt {
|
||||||
|
bt_enable_h: bt-enable-h {
|
||||||
|
rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
bt_host_wake_l: bt-host-wake-l {
|
||||||
|
rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
|
||||||
|
bt_wake_l: bt-wake-l {
|
||||||
|
rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
sdmmc {
|
sdmmc {
|
||||||
sdmmc_bus1: sdmmc-bus1 {
|
sdmmc_bus1: sdmmc-bus1 {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<4 8 RK_FUNC_1 &pcfg_pull_up_8ma>;
|
<4 RK_PB0 1 &pcfg_pull_up_8ma>;
|
||||||
};
|
};
|
||||||
|
|
||||||
sdmmc_bus4: sdmmc-bus4 {
|
sdmmc_bus4: sdmmc-bus4 {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<4 8 RK_FUNC_1 &pcfg_pull_up_8ma>,
|
<4 RK_PB0 1 &pcfg_pull_up_8ma>,
|
||||||
<4 9 RK_FUNC_1 &pcfg_pull_up_8ma>,
|
<4 RK_PB1 1 &pcfg_pull_up_8ma>,
|
||||||
<4 10 RK_FUNC_1 &pcfg_pull_up_8ma>,
|
<4 RK_PB2 1 &pcfg_pull_up_8ma>,
|
||||||
<4 11 RK_FUNC_1 &pcfg_pull_up_8ma>;
|
<4 RK_PB3 1 &pcfg_pull_up_8ma>;
|
||||||
};
|
};
|
||||||
|
|
||||||
sdmmc_clk: sdmmc-clk {
|
sdmmc_clk: sdmmc-clk {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<4 12 RK_FUNC_1 &pcfg_pull_none_18ma>;
|
<4 RK_PB4 1 &pcfg_pull_none_18ma>;
|
||||||
};
|
};
|
||||||
|
|
||||||
sdmmc_cmd: sdmmc-cmd {
|
sdmmc_cmd: sdmmc-cmd {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<4 13 RK_FUNC_1 &pcfg_pull_up_8ma>;
|
<4 RK_PB5 1 &pcfg_pull_up_8ma>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdio0 {
|
||||||
|
sdio0_bus4: sdio0-bus4 {
|
||||||
|
rockchip,pins =
|
||||||
|
<2 RK_PC4 1 &pcfg_pull_up_20ma>,
|
||||||
|
<2 RK_PC5 1 &pcfg_pull_up_20ma>,
|
||||||
|
<2 RK_PC6 1 &pcfg_pull_up_20ma>,
|
||||||
|
<2 RK_PC7 1 &pcfg_pull_up_20ma>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sdio0_cmd: sdio0-cmd {
|
||||||
|
rockchip,pins =
|
||||||
|
<2 RK_PD0 1 &pcfg_pull_up_20ma>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sdio0_clk: sdio0-clk {
|
||||||
|
rockchip,pins =
|
||||||
|
<2 RK_PD1 1 &pcfg_pull_none_20ma>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
pmic {
|
pmic {
|
||||||
pmic_int_l: pmic-int-l {
|
pmic_int_l: pmic-int-l {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<1 21 RK_FUNC_GPIO &pcfg_pull_up>;
|
<1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||||
};
|
};
|
||||||
|
|
||||||
vsel1_gpio: vsel1-gpio {
|
vsel1_gpio: vsel1-gpio {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<1 17 RK_FUNC_GPIO &pcfg_pull_down>;
|
<1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
|
||||||
};
|
};
|
||||||
|
|
||||||
vsel2_gpio: vsel2-gpio {
|
vsel2_gpio: vsel2-gpio {
|
||||||
rockchip,pins =
|
rockchip,pins =
|
||||||
<1 14 RK_FUNC_GPIO &pcfg_pull_down>;
|
<1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdio-pwrseq {
|
||||||
|
wifi_enable_h: wifi-enable-h {
|
||||||
|
rockchip,pins =
|
||||||
|
<0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
wifi {
|
||||||
|
wifi_host_wake_l: wifi-host-wake-l {
|
||||||
|
rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -421,6 +492,32 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&sdio0 {
|
||||||
|
bus-width = <4>;
|
||||||
|
clock-frequency = <50000000>;
|
||||||
|
cap-sdio-irq;
|
||||||
|
cap-sd-highspeed;
|
||||||
|
keep-power-in-suspend;
|
||||||
|
mmc-pwrseq = <&sdio_pwrseq>;
|
||||||
|
non-removable;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
|
||||||
|
sd-uhs-sdr104;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
brcmf: wifi@1 {
|
||||||
|
compatible = "brcm,bcm4329-fmac";
|
||||||
|
reg = <1>;
|
||||||
|
interrupt-parent = <&gpio0>;
|
||||||
|
interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
|
||||||
|
interrupt-names = "host-wake";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&wifi_host_wake_l>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&sdhci {
|
&sdhci {
|
||||||
bus-width = <8>;
|
bus-width = <8>;
|
||||||
mmc-hs400-1_8v;
|
mmc-hs400-1_8v;
|
||||||
@ -445,16 +542,42 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&tsadc {
|
||||||
pinctrl-names = "default";
|
rockchip,hw-tshut-mode = <1>;
|
||||||
pinctrl-0 = <&uart0_xfer &uart0_cts>;
|
rockchip,hw-tshut-polarity = <1>;
|
||||||
|
rockchip,hw-tshut-temp = <110000>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
bluetooth {
|
||||||
|
compatible = "brcm,bcm43438-bt";
|
||||||
|
clocks = <&rk808 1>;
|
||||||
|
clock-names = "ext_clock";
|
||||||
|
device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
|
||||||
|
host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
|
||||||
|
shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&uart2 {
|
&uart2 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&tcphy0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&tcphy1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&u2phy0 {
|
&u2phy0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -497,10 +620,34 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&usbdrd3_0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbdrd_dwc3_0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbdrd3_1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbdrd_dwc3_1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&vopb {
|
&vopb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&vopb_mmu {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&vopl {
|
&vopl {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&vopl_mmu {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "rk3399-u-boot.dtsi"
|
#include "rk3399-u-boot.dtsi"
|
||||||
|
#include "rk3399-sdram-lpddr4-100.dtsi"
|
||||||
|
|
||||||
&vdd_log {
|
&vdd_log {
|
||||||
regulator-init-microvolt = <950000>;
|
regulator-init-microvolt = <950000>;
|
||||||
|
1537
arch/arm/dts/rk3399-sdram-lpddr4-100.dtsi
Normal file
1537
arch/arm/dts/rk3399-sdram-lpddr4-100.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,10 @@
|
|||||||
* Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com>
|
* Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
&pmu {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
&sdmmc {
|
&sdmmc {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
|
72
arch/arm/include/asm/arch-rockchip/pmu_rk3399.h
Normal file
72
arch/arm/include/asm/arch-rockchip/pmu_rk3399.h
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2018 Rockchip Electronics Co., Ltd.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __SOC_ROCKCHIP_RK3399_PMU_H__
|
||||||
|
#define __SOC_ROCKCHIP_RK3399_PMU_H__
|
||||||
|
|
||||||
|
struct rk3399_pmu_regs {
|
||||||
|
u32 pmu_wakeup_cfg[5];
|
||||||
|
u32 pmu_pwrdn_con;
|
||||||
|
u32 pmu_pwrdn_st;
|
||||||
|
u32 pmu_pll_con;
|
||||||
|
u32 pmu_pwrmode_con;
|
||||||
|
u32 pmu_sft_con;
|
||||||
|
u32 pmu_int_con;
|
||||||
|
u32 pmu_int_st;
|
||||||
|
u32 pmu_gpio0_pos_int_con;
|
||||||
|
u32 pmu_gpio0_net_int_con;
|
||||||
|
u32 pmu_gpio1_pos_int_con;
|
||||||
|
u32 pmu_gpio1_net_int_con;
|
||||||
|
u32 pmu_gpio0_pos_int_st;
|
||||||
|
u32 pmu_gpio0_net_int_st;
|
||||||
|
u32 pmu_gpio1_pos_int_st;
|
||||||
|
u32 pmu_gpio1_net_int_st;
|
||||||
|
u32 pmu_pwrdn_inten;
|
||||||
|
u32 pmu_pwrdn_status;
|
||||||
|
u32 pmu_wakeup_status;
|
||||||
|
u32 pmu_bus_clr;
|
||||||
|
u32 pmu_bus_idle_req;
|
||||||
|
u32 pmu_bus_idle_st;
|
||||||
|
u32 pmu_bus_idle_ack;
|
||||||
|
u32 pmu_cci500_con;
|
||||||
|
u32 pmu_adb400_con;
|
||||||
|
u32 pmu_adb400_st;
|
||||||
|
u32 pmu_power_st;
|
||||||
|
u32 pmu_core_pwr_st;
|
||||||
|
u32 pmu_osc_cnt;
|
||||||
|
u32 pmu_plllock_cnt;
|
||||||
|
u32 pmu_pllrst_cnt;
|
||||||
|
u32 pmu_stable_cnt;
|
||||||
|
u32 pmu_ddrio_pwron_cnt;
|
||||||
|
u32 pmu_wakeup_rst_clr_cnt;
|
||||||
|
u32 pmu_ddr_sref_st;
|
||||||
|
u32 pmu_scu_l_pwrdn_cnt;
|
||||||
|
u32 pmu_scu_l_pwrup_cnt;
|
||||||
|
u32 pmu_scu_b_pwrdn_cnt;
|
||||||
|
u32 pmu_scu_b_pwrup_cnt;
|
||||||
|
u32 pmu_gpu_pwrdn_cnt;
|
||||||
|
u32 pmu_gpu_pwrup_cnt;
|
||||||
|
u32 pmu_center_pwrdn_cnt;
|
||||||
|
u32 pmu_center_pwrup_cnt;
|
||||||
|
u32 pmu_timeout_cnt;
|
||||||
|
u32 pmu_cpu0apm_con;
|
||||||
|
u32 pmu_cpu1apm_con;
|
||||||
|
u32 pmu_cpu2apm_con;
|
||||||
|
u32 pmu_cpu3apm_con;
|
||||||
|
u32 pmu_cpu0bpm_con;
|
||||||
|
u32 pmu_cpu1bpm_con;
|
||||||
|
u32 pmu_noc_auto_ena;
|
||||||
|
u32 pmu_pwrdn_con1;
|
||||||
|
u32 reserved0[0x4];
|
||||||
|
u32 pmu_sys_reg_reg0;
|
||||||
|
u32 pmu_sys_reg_reg1;
|
||||||
|
u32 pmu_sys_reg_reg2;
|
||||||
|
u32 pmu_sys_reg_reg3;
|
||||||
|
};
|
||||||
|
|
||||||
|
check_member(rk3399_pmu_regs, pmu_sys_reg_reg3, 0xfc);
|
||||||
|
|
||||||
|
#endif /* __SOC_ROCKCHIP_RK3399_PMU_H__ */
|
@ -8,12 +8,6 @@
|
|||||||
#ifndef _ASM_ARCH_RK3288_SDRAM_H__
|
#ifndef _ASM_ARCH_RK3288_SDRAM_H__
|
||||||
#define _ASM_ARCH_RK3288_SDRAM_H__
|
#define _ASM_ARCH_RK3288_SDRAM_H__
|
||||||
|
|
||||||
enum {
|
|
||||||
DDR3 = 3,
|
|
||||||
LPDDR3 = 6,
|
|
||||||
UNUSED = 0xFF,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct rk3288_sdram_channel {
|
struct rk3288_sdram_channel {
|
||||||
/*
|
/*
|
||||||
* bit width in address, eg:
|
* bit width in address, eg:
|
||||||
|
@ -5,6 +5,44 @@
|
|||||||
|
|
||||||
#ifndef _ASM_ARCH_SDRAM_COMMON_H
|
#ifndef _ASM_ARCH_SDRAM_COMMON_H
|
||||||
#define _ASM_ARCH_SDRAM_COMMON_H
|
#define _ASM_ARCH_SDRAM_COMMON_H
|
||||||
|
|
||||||
|
enum {
|
||||||
|
DDR4 = 0,
|
||||||
|
DDR3 = 0x3,
|
||||||
|
LPDDR2 = 0x5,
|
||||||
|
LPDDR3 = 0x6,
|
||||||
|
LPDDR4 = 0x7,
|
||||||
|
UNUSED = 0xFF
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sdram_cap_info {
|
||||||
|
unsigned int rank;
|
||||||
|
/* dram column number, 0 means this channel is invalid */
|
||||||
|
unsigned int col;
|
||||||
|
/* dram bank number, 3:8bank, 2:4bank */
|
||||||
|
unsigned int bk;
|
||||||
|
/* channel buswidth, 2:32bit, 1:16bit, 0:8bit */
|
||||||
|
unsigned int bw;
|
||||||
|
/* die buswidth, 2:32bit, 1:16bit, 0:8bit */
|
||||||
|
unsigned int dbw;
|
||||||
|
/*
|
||||||
|
* row_3_4 = 1: 6Gb or 12Gb die
|
||||||
|
* row_3_4 = 0: normal die, power of 2
|
||||||
|
*/
|
||||||
|
unsigned int row_3_4;
|
||||||
|
unsigned int cs0_row;
|
||||||
|
unsigned int cs1_row;
|
||||||
|
unsigned int ddrconfig;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sdram_base_params {
|
||||||
|
unsigned int ddr_freq;
|
||||||
|
unsigned int dramtype;
|
||||||
|
unsigned int num_channels;
|
||||||
|
unsigned int stride;
|
||||||
|
unsigned int odt;
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* sys_reg bitfield struct
|
* sys_reg bitfield struct
|
||||||
* [31] row_3_4_ch1
|
* [31] row_3_4_ch1
|
||||||
@ -28,30 +66,82 @@
|
|||||||
* [1:0] dbw_ch0
|
* [1:0] dbw_ch0
|
||||||
*/
|
*/
|
||||||
#define SYS_REG_DDRTYPE_SHIFT 13
|
#define SYS_REG_DDRTYPE_SHIFT 13
|
||||||
|
#define DDR_SYS_REG_VERSION 2
|
||||||
#define SYS_REG_DDRTYPE_MASK 7
|
#define SYS_REG_DDRTYPE_MASK 7
|
||||||
#define SYS_REG_NUM_CH_SHIFT 12
|
#define SYS_REG_NUM_CH_SHIFT 12
|
||||||
#define SYS_REG_NUM_CH_MASK 1
|
#define SYS_REG_NUM_CH_MASK 1
|
||||||
#define SYS_REG_ROW_3_4_SHIFT(ch) (30 + (ch))
|
#define SYS_REG_ROW_3_4_SHIFT(ch) (30 + (ch))
|
||||||
#define SYS_REG_ROW_3_4_MASK 1
|
#define SYS_REG_ROW_3_4_MASK 1
|
||||||
|
#define SYS_REG_ENC_ROW_3_4(n, ch) ((n) << (30 + (ch)))
|
||||||
#define SYS_REG_CHINFO_SHIFT(ch) (28 + (ch))
|
#define SYS_REG_CHINFO_SHIFT(ch) (28 + (ch))
|
||||||
|
#define SYS_REG_ENC_CHINFO(ch) (1 << SYS_REG_CHINFO_SHIFT(ch))
|
||||||
|
#define SYS_REG_ENC_DDRTYPE(n) ((n) << SYS_REG_DDRTYPE_SHIFT)
|
||||||
|
#define SYS_REG_ENC_NUM_CH(n) (((n) - SYS_REG_NUM_CH_MASK) << \
|
||||||
|
SYS_REG_NUM_CH_SHIFT)
|
||||||
#define SYS_REG_RANK_SHIFT(ch) (11 + (ch) * 16)
|
#define SYS_REG_RANK_SHIFT(ch) (11 + (ch) * 16)
|
||||||
#define SYS_REG_RANK_MASK 1
|
#define SYS_REG_RANK_MASK 1
|
||||||
|
#define SYS_REG_ENC_RANK(n, ch) (((n) - SYS_REG_RANK_MASK) << \
|
||||||
|
SYS_REG_RANK_SHIFT(ch))
|
||||||
#define SYS_REG_COL_SHIFT(ch) (9 + (ch) * 16)
|
#define SYS_REG_COL_SHIFT(ch) (9 + (ch) * 16)
|
||||||
#define SYS_REG_COL_MASK 3
|
#define SYS_REG_COL_MASK 3
|
||||||
|
#define SYS_REG_ENC_COL(n, ch) (((n) - 9) << SYS_REG_COL_SHIFT(ch))
|
||||||
#define SYS_REG_BK_SHIFT(ch) (8 + (ch) * 16)
|
#define SYS_REG_BK_SHIFT(ch) (8 + (ch) * 16)
|
||||||
#define SYS_REG_BK_MASK 1
|
#define SYS_REG_BK_MASK 1
|
||||||
|
#define SYS_REG_ENC_BK(n, ch) (((n) == 3 ? 0 : 1) << \
|
||||||
|
SYS_REG_BK_SHIFT(ch))
|
||||||
#define SYS_REG_CS0_ROW_SHIFT(ch) (6 + (ch) * 16)
|
#define SYS_REG_CS0_ROW_SHIFT(ch) (6 + (ch) * 16)
|
||||||
#define SYS_REG_CS0_ROW_MASK 3
|
#define SYS_REG_CS0_ROW_MASK 3
|
||||||
#define SYS_REG_CS1_ROW_SHIFT(ch) (4 + (ch) * 16)
|
#define SYS_REG_CS1_ROW_SHIFT(ch) (4 + (ch) * 16)
|
||||||
#define SYS_REG_CS1_ROW_MASK 3
|
#define SYS_REG_CS1_ROW_MASK 3
|
||||||
#define SYS_REG_BW_SHIFT(ch) (2 + (ch) * 16)
|
#define SYS_REG_BW_SHIFT(ch) (2 + (ch) * 16)
|
||||||
#define SYS_REG_BW_MASK 3
|
#define SYS_REG_BW_MASK 3
|
||||||
|
#define SYS_REG_ENC_BW(n, ch) ((2 >> (n)) << SYS_REG_BW_SHIFT(ch))
|
||||||
#define SYS_REG_DBW_SHIFT(ch) ((ch) * 16)
|
#define SYS_REG_DBW_SHIFT(ch) ((ch) * 16)
|
||||||
#define SYS_REG_DBW_MASK 3
|
#define SYS_REG_DBW_MASK 3
|
||||||
|
#define SYS_REG_ENC_DBW(n, ch) ((2 >> (n)) << SYS_REG_DBW_SHIFT(ch))
|
||||||
|
|
||||||
|
#define SYS_REG_ENC_VERSION(n) ((n) << 28)
|
||||||
|
#define SYS_REG_ENC_CS0_ROW(n, os_reg2, os_reg3, ch) do { \
|
||||||
|
(os_reg2) |= (((n) - 13) & 0x3) << (6 + 16 * (ch)); \
|
||||||
|
(os_reg3) |= ((((n) - 13) & 0x4) >> 2) << \
|
||||||
|
(5 + 2 * (ch)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define SYS_REG_ENC_CS1_ROW(n, os_reg2, os_reg3, ch) do { \
|
||||||
|
(os_reg2) &= (~(0x3 << (4 + 16 * (ch)))); \
|
||||||
|
(os_reg3) &= (~(0x1 << (4 + 2 * (ch)))); \
|
||||||
|
(os_reg2) |= (((n) - 13) & 0x3) << (4 + 16 * (ch)); \
|
||||||
|
(os_reg3) |= ((((n) - 13) & 0x4) >> 2) << \
|
||||||
|
(4 + 2 * (ch)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define SYS_REG_CS1_COL_SHIFT(ch) (0 + 2 * (ch))
|
||||||
|
#define SYS_REG_ENC_CS1_COL(n, ch) (((n) - 9) << SYS_REG_CS1_COL_SHIFT(ch))
|
||||||
|
|
||||||
/* Get sdram size decode from reg */
|
/* Get sdram size decode from reg */
|
||||||
size_t rockchip_sdram_size(phys_addr_t reg);
|
size_t rockchip_sdram_size(phys_addr_t reg);
|
||||||
|
|
||||||
/* Called by U-Boot board_init_r for Rockchip SoCs */
|
/* Called by U-Boot board_init_r for Rockchip SoCs */
|
||||||
int dram_init(void);
|
int dram_init(void);
|
||||||
|
|
||||||
|
#if !defined(CONFIG_RAM_ROCKCHIP_DEBUG)
|
||||||
|
inline void sdram_print_dram_type(unsigned char dramtype)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void sdram_print_ddr_info(struct sdram_cap_info *cap_info,
|
||||||
|
struct sdram_base_params *base)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void sdram_print_stride(unsigned int stride)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
void sdram_print_dram_type(unsigned char dramtype);
|
||||||
|
void sdram_print_ddr_info(struct sdram_cap_info *cap_info,
|
||||||
|
struct sdram_base_params *base);
|
||||||
|
void sdram_print_stride(unsigned int stride);
|
||||||
|
#endif /* CONFIG_RAM_ROCKCHIP_DEBUG */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,13 +7,6 @@
|
|||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
|
|
||||||
enum {
|
|
||||||
DDR3 = 3,
|
|
||||||
LPDDR2 = 5,
|
|
||||||
LPDDR3 = 6,
|
|
||||||
UNUSED = 0xFF,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct rk322x_sdram_channel {
|
struct rk322x_sdram_channel {
|
||||||
/*
|
/*
|
||||||
* bit width in address, eg:
|
* bit width in address, eg:
|
||||||
|
@ -6,14 +6,6 @@
|
|||||||
#ifndef _ASM_ARCH_SDRAM_RK3399_H
|
#ifndef _ASM_ARCH_SDRAM_RK3399_H
|
||||||
#define _ASM_ARCH_SDRAM_RK3399_H
|
#define _ASM_ARCH_SDRAM_RK3399_H
|
||||||
|
|
||||||
enum {
|
|
||||||
DDR3 = 0x3,
|
|
||||||
LPDDR2 = 0x5,
|
|
||||||
LPDDR3 = 0x6,
|
|
||||||
LPDDR4 = 0x7,
|
|
||||||
UNUSED = 0xFF
|
|
||||||
};
|
|
||||||
|
|
||||||
struct rk3399_ddr_pctl_regs {
|
struct rk3399_ddr_pctl_regs {
|
||||||
u32 denali_ctl[332];
|
u32 denali_ctl[332];
|
||||||
};
|
};
|
||||||
@ -26,6 +18,31 @@ struct rk3399_ddr_pi_regs {
|
|||||||
u32 denali_pi[200];
|
u32 denali_pi[200];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
union noc_ddrtimingc0 {
|
||||||
|
u32 d32;
|
||||||
|
struct {
|
||||||
|
unsigned burstpenalty : 4;
|
||||||
|
unsigned reserved0 : 4;
|
||||||
|
unsigned wrtomwr : 6;
|
||||||
|
unsigned reserved1 : 18;
|
||||||
|
} b;
|
||||||
|
};
|
||||||
|
|
||||||
|
union noc_ddrmode {
|
||||||
|
u32 d32;
|
||||||
|
struct {
|
||||||
|
unsigned autoprecharge : 1;
|
||||||
|
unsigned bypassfiltering : 1;
|
||||||
|
unsigned fawbank : 1;
|
||||||
|
unsigned burstsize : 2;
|
||||||
|
unsigned mwrsize : 2;
|
||||||
|
unsigned reserved2 : 1;
|
||||||
|
unsigned forceorder : 8;
|
||||||
|
unsigned forceorderstate : 8;
|
||||||
|
unsigned reserved3 : 8;
|
||||||
|
} b;
|
||||||
|
};
|
||||||
|
|
||||||
struct rk3399_msch_regs {
|
struct rk3399_msch_regs {
|
||||||
u32 coreid;
|
u32 coreid;
|
||||||
u32 revisionid;
|
u32 revisionid;
|
||||||
@ -44,9 +61,9 @@ struct rk3399_msch_regs {
|
|||||||
struct rk3399_msch_timings {
|
struct rk3399_msch_timings {
|
||||||
u32 ddrtiminga0;
|
u32 ddrtiminga0;
|
||||||
u32 ddrtimingb0;
|
u32 ddrtimingb0;
|
||||||
u32 ddrtimingc0;
|
union noc_ddrtimingc0 ddrtimingc0;
|
||||||
u32 devtodev0;
|
u32 devtodev0;
|
||||||
u32 ddrmode;
|
union noc_ddrmode ddrmode;
|
||||||
u32 agingx0;
|
u32 agingx0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -72,37 +89,13 @@ struct rk3399_ddr_cic_regs {
|
|||||||
#define MEM_RST_VALID 1
|
#define MEM_RST_VALID 1
|
||||||
|
|
||||||
struct rk3399_sdram_channel {
|
struct rk3399_sdram_channel {
|
||||||
unsigned int rank;
|
struct sdram_cap_info cap_info;
|
||||||
/* dram column number, 0 means this channel is invalid */
|
|
||||||
unsigned int col;
|
|
||||||
/* dram bank number, 3:8bank, 2:4bank */
|
|
||||||
unsigned int bk;
|
|
||||||
/* channel buswidth, 2:32bit, 1:16bit, 0:8bit */
|
|
||||||
unsigned int bw;
|
|
||||||
/* die buswidth, 2:32bit, 1:16bit, 0:8bit */
|
|
||||||
unsigned int dbw;
|
|
||||||
/*
|
|
||||||
* row_3_4 = 1: 6Gb or 12Gb die
|
|
||||||
* row_3_4 = 0: normal die, power of 2
|
|
||||||
*/
|
|
||||||
unsigned int row_3_4;
|
|
||||||
unsigned int cs0_row;
|
|
||||||
unsigned int cs1_row;
|
|
||||||
unsigned int ddrconfig;
|
|
||||||
struct rk3399_msch_timings noc_timings;
|
struct rk3399_msch_timings noc_timings;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rk3399_base_params {
|
|
||||||
unsigned int ddr_freq;
|
|
||||||
unsigned int dramtype;
|
|
||||||
unsigned int num_channels;
|
|
||||||
unsigned int stride;
|
|
||||||
unsigned int odt;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct rk3399_sdram_params {
|
struct rk3399_sdram_params {
|
||||||
struct rk3399_sdram_channel ch[2];
|
struct rk3399_sdram_channel ch[2];
|
||||||
struct rk3399_base_params base;
|
struct sdram_base_params base;
|
||||||
struct rk3399_ddr_pctl_regs pctl_regs;
|
struct rk3399_ddr_pctl_regs pctl_regs;
|
||||||
struct rk3399_ddr_pi_regs pi_regs;
|
struct rk3399_ddr_pi_regs pi_regs;
|
||||||
struct rk3399_ddr_publ_regs phy_regs;
|
struct rk3399_ddr_publ_regs phy_regs;
|
||||||
|
@ -6,28 +6,6 @@
|
|||||||
#ifndef _ASM_ARCH_SYS_PROTO_H
|
#ifndef _ASM_ARCH_SYS_PROTO_H
|
||||||
#define _ASM_ARCH_SYS_PROTO_H
|
#define _ASM_ARCH_SYS_PROTO_H
|
||||||
|
|
||||||
#ifdef CONFIG_ROCKCHIP_RK3288
|
|
||||||
#include <asm/armv7.h>
|
|
||||||
|
|
||||||
static void configure_l2ctlr(void)
|
|
||||||
{
|
|
||||||
uint32_t l2ctlr;
|
|
||||||
|
|
||||||
l2ctlr = read_l2ctlr();
|
|
||||||
l2ctlr &= 0xfffc0000; /* clear bit0~bit17 */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Data RAM write latency: 2 cycles
|
|
||||||
* Data RAM read latency: 2 cycles
|
|
||||||
* Data RAM setup latency: 1 cycle
|
|
||||||
* Tag RAM write latency: 1 cycle
|
|
||||||
* Tag RAM read latency: 1 cycle
|
|
||||||
* Tag RAM setup latency: 1 cycle
|
|
||||||
*/
|
|
||||||
l2ctlr |= (1 << 3 | 1 << 0);
|
|
||||||
write_l2ctlr(l2ctlr);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_ROCKCHIP_RK3288 */
|
|
||||||
|
|
||||||
/* provided to defeat compiler optimisation in board_init_f() */
|
/* provided to defeat compiler optimisation in board_init_f() */
|
||||||
void gru_dummy_function(int i);
|
void gru_dummy_function(int i);
|
||||||
|
@ -15,7 +15,4 @@ struct rk_timer {
|
|||||||
u32 timer_int_status;
|
u32 timer_int_status;
|
||||||
};
|
};
|
||||||
|
|
||||||
void rockchip_timer_init(void);
|
|
||||||
void rockchip_udelay(unsigned int usec);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -59,6 +59,8 @@ config ROCKCHIP_RK322X
|
|||||||
select SPL_DRIVERS_MISC_SUPPORT
|
select SPL_DRIVERS_MISC_SUPPORT
|
||||||
imply SPL_SERIAL_SUPPORT
|
imply SPL_SERIAL_SUPPORT
|
||||||
imply TPL_SERIAL_SUPPORT
|
imply TPL_SERIAL_SUPPORT
|
||||||
|
imply TPL_BOOTROM_SUPPORT
|
||||||
|
imply TPL_ROCKCHIP_COMMON_BOARD
|
||||||
select ROCKCHIP_BROM_HELPER
|
select ROCKCHIP_BROM_HELPER
|
||||||
select TPL_LIBCOMMON_SUPPORT
|
select TPL_LIBCOMMON_SUPPORT
|
||||||
select TPL_LIBGENERIC_SUPPORT
|
select TPL_LIBGENERIC_SUPPORT
|
||||||
@ -68,19 +70,6 @@ config ROCKCHIP_RK322X
|
|||||||
and video codec support. Peripherals include Gigabit Ethernet,
|
and video codec support. Peripherals include Gigabit Ethernet,
|
||||||
USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
|
USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
|
||||||
|
|
||||||
if ROCKCHIP_RK322X
|
|
||||||
|
|
||||||
config TPL_TEXT_BASE
|
|
||||||
default 0x10081000
|
|
||||||
|
|
||||||
config TPL_MAX_SIZE
|
|
||||||
default 28672
|
|
||||||
|
|
||||||
config TPL_STACK
|
|
||||||
default 0x10088000
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config ROCKCHIP_RK3288
|
config ROCKCHIP_RK3288
|
||||||
bool "Support Rockchip RK3288"
|
bool "Support Rockchip RK3288"
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
@ -100,6 +89,7 @@ config ROCKCHIP_RK3288
|
|||||||
imply TPL_OF_PLATDATA
|
imply TPL_OF_PLATDATA
|
||||||
imply TPL_RAM
|
imply TPL_RAM
|
||||||
imply TPL_REGMAP
|
imply TPL_REGMAP
|
||||||
|
imply TPL_ROCKCHIP_COMMON_BOARD
|
||||||
imply TPL_SERIAL_SUPPORT
|
imply TPL_SERIAL_SUPPORT
|
||||||
imply TPL_SYSCON
|
imply TPL_SYSCON
|
||||||
imply USB_FUNCTION_ROCKUSB
|
imply USB_FUNCTION_ROCKUSB
|
||||||
@ -111,19 +101,6 @@ config ROCKCHIP_RK3288
|
|||||||
and video codec support. Peripherals include Gigabit Ethernet,
|
and video codec support. Peripherals include Gigabit Ethernet,
|
||||||
USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
|
USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
|
||||||
|
|
||||||
if ROCKCHIP_RK3288
|
|
||||||
|
|
||||||
config TPL_TEXT_BASE
|
|
||||||
default 0xff704000
|
|
||||||
|
|
||||||
config TPL_MAX_SIZE
|
|
||||||
default 32768
|
|
||||||
|
|
||||||
config TPL_STACK
|
|
||||||
default 0xff718000
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config ROCKCHIP_RK3328
|
config ROCKCHIP_RK3328
|
||||||
bool "Support Rockchip RK3328"
|
bool "Support Rockchip RK3328"
|
||||||
select ARM64
|
select ARM64
|
||||||
@ -151,6 +128,7 @@ config ROCKCHIP_RK3368
|
|||||||
imply SPL_SEPARATE_BSS
|
imply SPL_SEPARATE_BSS
|
||||||
imply SPL_SERIAL_SUPPORT
|
imply SPL_SERIAL_SUPPORT
|
||||||
imply TPL_SERIAL_SUPPORT
|
imply TPL_SERIAL_SUPPORT
|
||||||
|
imply TPL_ROCKCHIP_COMMON_BOARD
|
||||||
help
|
help
|
||||||
The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
|
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
|
into a big and little cluster with 4 cores each) Cortex-A53 including
|
||||||
@ -162,19 +140,6 @@ config ROCKCHIP_RK3368
|
|||||||
On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
|
On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
|
||||||
I2S, UARTs, SPI, I2C and PWMs.
|
I2S, UARTs, SPI, I2C and PWMs.
|
||||||
|
|
||||||
if ROCKCHIP_RK3368
|
|
||||||
|
|
||||||
config TPL_TEXT_BASE
|
|
||||||
default 0xff8c1000
|
|
||||||
|
|
||||||
config TPL_MAX_SIZE
|
|
||||||
default 28672
|
|
||||||
|
|
||||||
config TPL_STACK
|
|
||||||
default 0xff8cffff
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config ROCKCHIP_RK3399
|
config ROCKCHIP_RK3399
|
||||||
bool "Support Rockchip RK3399"
|
bool "Support Rockchip RK3399"
|
||||||
select ARM64
|
select ARM64
|
||||||
@ -209,7 +174,6 @@ config ROCKCHIP_RK3399
|
|||||||
imply TPL_LIBCOMMON_SUPPORT
|
imply TPL_LIBCOMMON_SUPPORT
|
||||||
imply TPL_LIBGENERIC_SUPPORT
|
imply TPL_LIBGENERIC_SUPPORT
|
||||||
imply TPL_SYS_MALLOC_SIMPLE
|
imply TPL_SYS_MALLOC_SIMPLE
|
||||||
imply TPL_BOARD_INIT
|
|
||||||
imply TPL_BOOTROM_SUPPORT
|
imply TPL_BOOTROM_SUPPORT
|
||||||
imply TPL_DRIVERS_MISC_SUPPORT
|
imply TPL_DRIVERS_MISC_SUPPORT
|
||||||
imply TPL_OF_CONTROL
|
imply TPL_OF_CONTROL
|
||||||
@ -219,6 +183,7 @@ config ROCKCHIP_RK3399
|
|||||||
imply TPL_RAM
|
imply TPL_RAM
|
||||||
imply TPL_CLK
|
imply TPL_CLK
|
||||||
imply TPL_TINY_MEMSET
|
imply TPL_TINY_MEMSET
|
||||||
|
imply TPL_ROCKCHIP_COMMON_BOARD
|
||||||
help
|
help
|
||||||
The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
|
The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
|
||||||
and quad-core Cortex-A53.
|
and quad-core Cortex-A53.
|
||||||
@ -227,22 +192,6 @@ config ROCKCHIP_RK3399
|
|||||||
and video codec support. Peripherals include Gigabit Ethernet,
|
and video codec support. Peripherals include Gigabit Ethernet,
|
||||||
USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
|
USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
|
||||||
|
|
||||||
if ROCKCHIP_RK3399
|
|
||||||
|
|
||||||
config TPL_LDSCRIPT
|
|
||||||
default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
|
|
||||||
|
|
||||||
config TPL_TEXT_BASE
|
|
||||||
default 0xff8c2000
|
|
||||||
|
|
||||||
config TPL_MAX_SIZE
|
|
||||||
default 188416
|
|
||||||
|
|
||||||
config TPL_STACK
|
|
||||||
default 0xff8effff
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config ROCKCHIP_RV1108
|
config ROCKCHIP_RV1108
|
||||||
bool "Support Rockchip RV1108"
|
bool "Support Rockchip RV1108"
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
@ -278,16 +227,17 @@ config TPL_ROCKCHIP_BACK_TO_BROM
|
|||||||
SPL will return to the boot rom, which will then load the U-Boot
|
SPL will return to the boot rom, which will then load the U-Boot
|
||||||
binary to keep going on.
|
binary to keep going on.
|
||||||
|
|
||||||
|
config TPL_ROCKCHIP_COMMON_BOARD
|
||||||
|
bool ""
|
||||||
|
depends on TPL
|
||||||
|
help
|
||||||
|
Rockchip SoCs have similar boot process, prefer to use TPL for DRAM
|
||||||
|
init and back to bootrom, and SPL as Trust ATF/U-Boot loader. TPL
|
||||||
|
common board is a basic TPL board init which can be shared for most
|
||||||
|
of SoCs to avoid copy-pase for different SoCs.
|
||||||
|
|
||||||
config ROCKCHIP_BOOT_MODE_REG
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
hex "Rockchip boot mode flag register address"
|
hex "Rockchip boot mode flag register address"
|
||||||
default 0x200081c8 if ROCKCHIP_RK3036
|
|
||||||
default 0x20004040 if ROCKCHIP_RK3188
|
|
||||||
default 0x110005c8 if ROCKCHIP_RK322X
|
|
||||||
default 0xff730094 if ROCKCHIP_RK3288
|
|
||||||
default 0xff738200 if ROCKCHIP_RK3368
|
|
||||||
default 0xff320300 if ROCKCHIP_RK3399
|
|
||||||
default 0x10300580 if ROCKCHIP_RV1108
|
|
||||||
default 0
|
|
||||||
help
|
help
|
||||||
The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
|
The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
|
||||||
according to the value from this register.
|
according to the value from this register.
|
||||||
|
@ -8,16 +8,12 @@
|
|||||||
# the stack-pointer is valid before switching to the U-Boot stack).
|
# the stack-pointer is valid before switching to the U-Boot stack).
|
||||||
obj-spl-$(CONFIG_ROCKCHIP_BROM_HELPER) += bootrom.o
|
obj-spl-$(CONFIG_ROCKCHIP_BROM_HELPER) += bootrom.o
|
||||||
obj-tpl-$(CONFIG_ROCKCHIP_BROM_HELPER) += bootrom.o
|
obj-tpl-$(CONFIG_ROCKCHIP_BROM_HELPER) += bootrom.o
|
||||||
|
obj-tpl-$(CONFIG_TPL_ROCKCHIP_COMMON_BOARD) += tpl.o
|
||||||
obj-tpl-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board-tpl.o
|
|
||||||
obj-tpl-$(CONFIG_ROCKCHIP_RK3368) += rk3368-board-tpl.o
|
|
||||||
obj-tpl-$(CONFIG_ROCKCHIP_RK322X) += rk322x-board-tpl.o
|
|
||||||
obj-tpl-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board-tpl.o
|
|
||||||
|
|
||||||
obj-spl-$(CONFIG_ROCKCHIP_RK3036) += rk3036-board-spl.o
|
obj-spl-$(CONFIG_ROCKCHIP_RK3036) += rk3036-board-spl.o
|
||||||
obj-spl-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board-spl.o
|
obj-spl-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board-spl.o
|
||||||
obj-spl-$(CONFIG_ROCKCHIP_RK322X) += rk322x-board-spl.o spl-boot-order.o
|
obj-spl-$(CONFIG_ROCKCHIP_RK322X) += rk322x-board-spl.o spl-boot-order.o
|
||||||
obj-spl-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board-spl.o
|
obj-spl-$(CONFIG_ROCKCHIP_RK3288) += rk3288-board-spl.o spl-boot-order.o
|
||||||
obj-spl-$(CONFIG_ROCKCHIP_RK3328) += rk3328-board-spl.o
|
obj-spl-$(CONFIG_ROCKCHIP_RK3328) += rk3328-board-spl.o
|
||||||
obj-spl-$(CONFIG_ROCKCHIP_RK3368) += rk3368-board-spl.o spl-boot-order.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
|
obj-spl-$(CONFIG_ROCKCHIP_RK3399) += rk3399-board-spl.o spl-boot-order.o
|
||||||
@ -41,12 +37,6 @@ endif
|
|||||||
|
|
||||||
obj-$(CONFIG_$(SPL_TPL_)RAM) += sdram_common.o
|
obj-$(CONFIG_$(SPL_TPL_)RAM) += sdram_common.o
|
||||||
|
|
||||||
ifndef CONFIG_ARM64
|
|
||||||
ifndef CONFIG_ROCKCHIP_RK3188
|
|
||||||
obj-y += rk_timer.o
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036/
|
obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036/
|
||||||
obj-$(CONFIG_ROCKCHIP_RK3128) += rk3128/
|
obj-$(CONFIG_ROCKCHIP_RK3128) += rk3128/
|
||||||
ifndef CONFIG_TPL_BUILD
|
ifndef CONFIG_TPL_BUILD
|
||||||
|
@ -13,16 +13,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import getopt
|
import getopt
|
||||||
import logging
|
import logging
|
||||||
|
import struct
|
||||||
# pip install pyelftools
|
|
||||||
from elftools.elf.elffile import ELFFile
|
|
||||||
|
|
||||||
ELF_SEG_P_TYPE = 'p_type'
|
|
||||||
ELF_SEG_P_PADDR = 'p_paddr'
|
|
||||||
ELF_SEG_P_VADDR = 'p_vaddr'
|
|
||||||
ELF_SEG_P_OFFSET = 'p_offset'
|
|
||||||
ELF_SEG_P_FILESZ = 'p_filesz'
|
|
||||||
ELF_SEG_P_MEMSZ = 'p_memsz'
|
|
||||||
|
|
||||||
DT_HEADER = """
|
DT_HEADER = """
|
||||||
/*
|
/*
|
||||||
@ -118,33 +109,19 @@ def append_conf_node(file, dtbs, segments):
|
|||||||
file.write('\n')
|
file.write('\n')
|
||||||
|
|
||||||
def generate_atf_fit_dts_uboot(fit_file, uboot_file_name):
|
def generate_atf_fit_dts_uboot(fit_file, uboot_file_name):
|
||||||
num_load_seg = 0
|
segments = unpack_elf(uboot_file_name)
|
||||||
p_paddr = 0xFFFFFFFF
|
if len(segments) != 1:
|
||||||
with open(uboot_file_name, 'rb') as uboot_file:
|
raise ValueError("Invalid u-boot ELF image '%s'" % uboot_file_name)
|
||||||
uboot = ELFFile(uboot_file)
|
index, entry, p_paddr, data = segments[0]
|
||||||
for i in range(uboot.num_segments()):
|
|
||||||
seg = uboot.get_segment(i)
|
|
||||||
if seg.__getitem__(ELF_SEG_P_TYPE) == 'PT_LOAD':
|
|
||||||
p_paddr = seg.__getitem__(ELF_SEG_P_PADDR)
|
|
||||||
num_load_seg = num_load_seg + 1
|
|
||||||
|
|
||||||
assert (p_paddr != 0xFFFFFFFF and num_load_seg == 1)
|
|
||||||
|
|
||||||
fit_file.write(DT_UBOOT % p_paddr)
|
fit_file.write(DT_UBOOT % p_paddr)
|
||||||
|
|
||||||
def generate_atf_fit_dts_bl31(fit_file, bl31_file_name, dtbs_file_name):
|
def generate_atf_fit_dts_bl31(fit_file, bl31_file_name, dtbs_file_name):
|
||||||
with open(bl31_file_name, 'rb') as bl31_file:
|
segments = unpack_elf(bl31_file_name)
|
||||||
bl31 = ELFFile(bl31_file)
|
for index, entry, paddr, data in segments:
|
||||||
elf_entry = bl31.header['e_entry']
|
append_bl31_node(fit_file, index + 1, paddr, entry)
|
||||||
segments = bl31.num_segments()
|
|
||||||
for i in range(segments):
|
|
||||||
seg = bl31.get_segment(i)
|
|
||||||
if seg.__getitem__(ELF_SEG_P_TYPE) == 'PT_LOAD':
|
|
||||||
paddr = seg.__getitem__(ELF_SEG_P_PADDR)
|
|
||||||
append_bl31_node(fit_file, i + 1, paddr, elf_entry)
|
|
||||||
append_fdt_node(fit_file, dtbs_file_name)
|
append_fdt_node(fit_file, dtbs_file_name)
|
||||||
fit_file.write(DT_IMAGES_NODE_END)
|
fit_file.write(DT_IMAGES_NODE_END)
|
||||||
append_conf_node(fit_file, dtbs_file_name, segments)
|
append_conf_node(fit_file, dtbs_file_name, len(segments))
|
||||||
|
|
||||||
def generate_atf_fit_dts(fit_file_name, bl31_file_name, uboot_file_name, dtbs_file_name):
|
def generate_atf_fit_dts(fit_file_name, bl31_file_name, uboot_file_name, dtbs_file_name):
|
||||||
# Generate FIT script for ATF image.
|
# Generate FIT script for ATF image.
|
||||||
@ -162,17 +139,29 @@ def generate_atf_fit_dts(fit_file_name, bl31_file_name, uboot_file_name, dtbs_fi
|
|||||||
fit_file.close()
|
fit_file.close()
|
||||||
|
|
||||||
def generate_atf_binary(bl31_file_name):
|
def generate_atf_binary(bl31_file_name):
|
||||||
with open(bl31_file_name, 'rb') as bl31_file:
|
for index, entry, paddr, data in unpack_elf(bl31_file_name):
|
||||||
bl31 = ELFFile(bl31_file)
|
file_name = 'bl31_0x%08x.bin' % paddr
|
||||||
|
with open(file_name, "wb") as atf:
|
||||||
|
atf.write(data)
|
||||||
|
|
||||||
num = bl31.num_segments()
|
def unpack_elf(filename):
|
||||||
for i in range(num):
|
with open(filename, 'rb') as file:
|
||||||
seg = bl31.get_segment(i)
|
elf = file.read()
|
||||||
if seg.__getitem__(ELF_SEG_P_TYPE) == 'PT_LOAD':
|
if elf[0:7] != b'\x7fELF\x02\x01\x01' or elf[18:20] != b'\xb7\x00':
|
||||||
paddr = seg.__getitem__(ELF_SEG_P_PADDR)
|
raise ValueError("Invalid arm64 ELF file '%s'" % filename)
|
||||||
file_name = 'bl31_0x%08x.bin' % paddr
|
|
||||||
with open(file_name, "wb") as atf:
|
e_entry, e_phoff = struct.unpack_from('<2Q', elf, 0x18)
|
||||||
atf.write(seg.data())
|
e_phentsize, e_phnum = struct.unpack_from('<2H', elf, 0x36)
|
||||||
|
segments = []
|
||||||
|
|
||||||
|
for index in range(e_phnum):
|
||||||
|
offset = e_phoff + e_phentsize * index
|
||||||
|
p_type, p_flags, p_offset = struct.unpack_from('<LLQ', elf, offset)
|
||||||
|
if p_type == 1: # PT_LOAD
|
||||||
|
p_paddr, p_filesz = struct.unpack_from('<2Q', elf, offset + 0x18)
|
||||||
|
p_data = elf[p_offset:p_offset + p_filesz]
|
||||||
|
segments.append((index, e_entry, p_paddr, p_data))
|
||||||
|
return segments
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
uboot_elf = "./u-boot"
|
uboot_elf = "./u-boot"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
/*
|
/*
|
||||||
* (C) Copyright 2015 Rockchip Electronics Co., Ltd
|
* (C) Copyright 2015-2019 Rockchip Electronics Co., Ltd
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
@ -8,14 +8,37 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch-rockchip/bootrom.h>
|
#include <asm/arch-rockchip/bootrom.h>
|
||||||
#include <asm/arch-rockchip/sdram_rk3036.h>
|
#include <asm/arch-rockchip/sdram_rk3036.h>
|
||||||
#include <asm/arch-rockchip/timer.h>
|
|
||||||
|
#define TIMER_LOAD_COUNT_L 0x00
|
||||||
|
#define TIMER_LOAD_COUNT_H 0x04
|
||||||
|
#define TIMER_CONTROL_REG 0x10
|
||||||
|
#define TIMER_EN 0x1
|
||||||
|
#define TIMER_FMODE (0 << 1)
|
||||||
|
#define TIMER_RMODE (1 << 1)
|
||||||
|
|
||||||
|
void rockchip_stimer_init(void)
|
||||||
|
{
|
||||||
|
asm volatile("mcr p15, 0, %0, c14, c0, 0"
|
||||||
|
: : "r"(COUNTER_FREQUENCY));
|
||||||
|
|
||||||
|
writel(0, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + 4);
|
||||||
|
writel(TIMER_EN | TIMER_FMODE, CONFIG_ROCKCHIP_STIMER_BASE +
|
||||||
|
TIMER_CONTROL_REG);
|
||||||
|
}
|
||||||
|
|
||||||
void board_init_f(ulong dummy)
|
void board_init_f(ulong dummy)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_DEBUG_UART
|
#ifdef CONFIG_DEBUG_UART
|
||||||
debug_uart_init();
|
debug_uart_init();
|
||||||
#endif
|
#endif
|
||||||
rockchip_timer_init();
|
|
||||||
|
/* Init secure timer */
|
||||||
|
rockchip_stimer_init();
|
||||||
|
/* Init ARM arch timer in arch/arm/cpu/armv7/arch_timer.c */
|
||||||
|
timer_init();
|
||||||
|
|
||||||
sdram_init();
|
sdram_init();
|
||||||
|
|
||||||
/* return to maskrom */
|
/* return to maskrom */
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
#include <asm/arch-rockchip/grf_rk3036.h>
|
#include <asm/arch-rockchip/grf_rk3036.h>
|
||||||
#include <asm/arch-rockchip/boot_mode.h>
|
#include <asm/arch-rockchip/boot_mode.h>
|
||||||
#include <asm/arch-rockchip/sdram_rk3036.h>
|
#include <asm/arch-rockchip/sdram_rk3036.h>
|
||||||
#include <dm/pinctrl.h>
|
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
if ROCKCHIP_RK3036
|
if ROCKCHIP_RK3036
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "RK3036 board select"
|
||||||
|
|
||||||
config TARGET_EVB_RK3036
|
config TARGET_EVB_RK3036
|
||||||
bool "EVB_RK3036"
|
bool "EVB_RK3036"
|
||||||
select BOARD_LATE_INIT
|
select BOARD_LATE_INIT
|
||||||
@ -8,6 +11,11 @@ config TARGET_KYLIN_RK3036
|
|||||||
bool "KYLIN_RK3036"
|
bool "KYLIN_RK3036"
|
||||||
select BOARD_LATE_INIT
|
select BOARD_LATE_INIT
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
|
default 0x200081c8
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rk3036"
|
default "rk3036"
|
||||||
|
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
#include <asm/arch-rockchip/grf_rk3036.h>
|
#include <asm/arch-rockchip/grf_rk3036.h>
|
||||||
#include <asm/arch-rockchip/hardware.h>
|
#include <asm/arch-rockchip/hardware.h>
|
||||||
#include <asm/arch-rockchip/sdram_rk3036.h>
|
#include <asm/arch-rockchip/sdram_rk3036.h>
|
||||||
#include <asm/arch-rockchip/timer.h>
|
|
||||||
#include <asm/arch-rockchip/uart.h>
|
#include <asm/arch-rockchip/uart.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -345,7 +344,7 @@ static void rkdclk_init(struct rk3036_sdram_priv *priv)
|
|||||||
|
|
||||||
/* waiting for pll lock */
|
/* waiting for pll lock */
|
||||||
while (readl(&pll->con1) & (1 << PLL_LOCK_STATUS_SHIFT))
|
while (readl(&pll->con1) & (1 << PLL_LOCK_STATUS_SHIFT))
|
||||||
rockchip_udelay(1);
|
udelay(1);
|
||||||
|
|
||||||
/* PLL enter normal-mode */
|
/* PLL enter normal-mode */
|
||||||
rk_clrsetreg(&priv->cru->cru_mode_con, DPLL_MODE_MASK,
|
rk_clrsetreg(&priv->cru->cru_mode_con, DPLL_MODE_MASK,
|
||||||
@ -373,25 +372,25 @@ void phy_pctrl_reset(struct rk3036_sdram_priv *priv)
|
|||||||
1 << DDRCTRL_PSRST_SHIFT | 1 << DDRCTRL_SRST_SHIFT |
|
1 << DDRCTRL_PSRST_SHIFT | 1 << DDRCTRL_SRST_SHIFT |
|
||||||
1 << DDRPHY_PSRST_SHIFT | 1 << DDRPHY_SRST_SHIFT);
|
1 << DDRPHY_PSRST_SHIFT | 1 << DDRPHY_SRST_SHIFT);
|
||||||
|
|
||||||
rockchip_udelay(10);
|
udelay(10);
|
||||||
|
|
||||||
rk_clrreg(&priv->cru->cru_softrst_con[5], 1 << DDRPHY_PSRST_SHIFT |
|
rk_clrreg(&priv->cru->cru_softrst_con[5], 1 << DDRPHY_PSRST_SHIFT |
|
||||||
1 << DDRPHY_SRST_SHIFT);
|
1 << DDRPHY_SRST_SHIFT);
|
||||||
rockchip_udelay(10);
|
udelay(10);
|
||||||
|
|
||||||
rk_clrreg(&priv->cru->cru_softrst_con[5], 1 << DDRCTRL_PSRST_SHIFT |
|
rk_clrreg(&priv->cru->cru_softrst_con[5], 1 << DDRCTRL_PSRST_SHIFT |
|
||||||
1 << DDRCTRL_SRST_SHIFT);
|
1 << DDRCTRL_SRST_SHIFT);
|
||||||
rockchip_udelay(10);
|
udelay(10);
|
||||||
|
|
||||||
clrsetbits_le32(&ddr_phy->ddrphy_reg1,
|
clrsetbits_le32(&ddr_phy->ddrphy_reg1,
|
||||||
SOFT_RESET_MASK << SOFT_RESET_SHIFT,
|
SOFT_RESET_MASK << SOFT_RESET_SHIFT,
|
||||||
0 << SOFT_RESET_SHIFT);
|
0 << SOFT_RESET_SHIFT);
|
||||||
rockchip_udelay(10);
|
udelay(10);
|
||||||
clrsetbits_le32(&ddr_phy->ddrphy_reg1,
|
clrsetbits_le32(&ddr_phy->ddrphy_reg1,
|
||||||
SOFT_RESET_MASK << SOFT_RESET_SHIFT,
|
SOFT_RESET_MASK << SOFT_RESET_SHIFT,
|
||||||
3 << SOFT_RESET_SHIFT);
|
3 << SOFT_RESET_SHIFT);
|
||||||
|
|
||||||
rockchip_udelay(1);
|
udelay(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void phy_dll_bypass_set(struct rk3036_sdram_priv *priv, unsigned int freq)
|
void phy_dll_bypass_set(struct rk3036_sdram_priv *priv, unsigned int freq)
|
||||||
@ -444,7 +443,7 @@ static void send_command(struct rk3036_ddr_pctl *pctl,
|
|||||||
u32 rank, u32 cmd, u32 arg)
|
u32 rank, u32 cmd, u32 arg)
|
||||||
{
|
{
|
||||||
writel((START_CMD | (rank << 20) | arg | cmd), &pctl->mcmd);
|
writel((START_CMD | (rank << 20) | arg | cmd), &pctl->mcmd);
|
||||||
rockchip_udelay(1);
|
udelay(1);
|
||||||
while (readl(&pctl->mcmd) & START_CMD)
|
while (readl(&pctl->mcmd) & START_CMD)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
@ -454,7 +453,7 @@ static void memory_init(struct rk3036_sdram_priv *priv)
|
|||||||
struct rk3036_ddr_pctl *pctl = priv->pctl;
|
struct rk3036_ddr_pctl *pctl = priv->pctl;
|
||||||
|
|
||||||
send_command(pctl, 3, DESELECT_CMD, 0);
|
send_command(pctl, 3, DESELECT_CMD, 0);
|
||||||
rockchip_udelay(1);
|
udelay(1);
|
||||||
send_command(pctl, 3, PREA_CMD, 0);
|
send_command(pctl, 3, PREA_CMD, 0);
|
||||||
send_command(pctl, 3, MRS_CMD,
|
send_command(pctl, 3, MRS_CMD,
|
||||||
(0x02 & BANK_ADDR_MASK) << BANK_ADDR_SHIFT |
|
(0x02 & BANK_ADDR_MASK) << BANK_ADDR_SHIFT |
|
||||||
@ -492,7 +491,7 @@ static void data_training(struct rk3036_sdram_priv *priv)
|
|||||||
clrsetbits_le32(&ddr_phy->ddrphy_reg2, 0x03,
|
clrsetbits_le32(&ddr_phy->ddrphy_reg2, 0x03,
|
||||||
DQS_SQU_CAL_NORMAL_MODE | DQS_SQU_CAL_START);
|
DQS_SQU_CAL_NORMAL_MODE | DQS_SQU_CAL_START);
|
||||||
|
|
||||||
rockchip_udelay(1);
|
udelay(1);
|
||||||
while ((readl(&ddr_phy->ddrphy_reg62) & CAL_DONE_MASK) !=
|
while ((readl(&ddr_phy->ddrphy_reg62) & CAL_DONE_MASK) !=
|
||||||
(HIGH_8BIT_CAL_DONE | LOW_8BIT_CAL_DONE)) {
|
(HIGH_8BIT_CAL_DONE | LOW_8BIT_CAL_DONE)) {
|
||||||
;
|
;
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
#include <asm/arch-rockchip/periph.h>
|
#include <asm/arch-rockchip/periph.h>
|
||||||
#include <asm/arch-rockchip/grf_rk3128.h>
|
#include <asm/arch-rockchip/grf_rk3128.h>
|
||||||
#include <asm/arch-rockchip/boot_mode.h>
|
#include <asm/arch-rockchip/boot_mode.h>
|
||||||
#include <asm/arch-rockchip/timer.h>
|
|
||||||
#include <power/regulator.h>
|
#include <power/regulator.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
@ -33,8 +32,6 @@ int board_init(void)
|
|||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
rockchip_timer_init();
|
|
||||||
|
|
||||||
ret = regulators_enable_boot_on(false);
|
ret = regulators_enable_boot_on(false);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
debug("%s: Cannot enable boot on regulator\n", __func__);
|
debug("%s: Cannot enable boot on regulator\n", __func__);
|
||||||
|
@ -13,6 +13,9 @@ config TARGET_EVB_RK3128
|
|||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
|
default 0x100a0038
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rk3128"
|
default "rk3128"
|
||||||
|
|
||||||
|
@ -22,8 +22,6 @@
|
|||||||
#include <asm/arch-rockchip/periph.h>
|
#include <asm/arch-rockchip/periph.h>
|
||||||
#include <asm/arch-rockchip/pmu_rk3188.h>
|
#include <asm/arch-rockchip/pmu_rk3188.h>
|
||||||
#include <asm/arch-rockchip/sdram.h>
|
#include <asm/arch-rockchip/sdram.h>
|
||||||
#include <asm/arch-rockchip/timer.h>
|
|
||||||
#include <dm/pinctrl.h>
|
|
||||||
#include <dm/root.h>
|
#include <dm/root.h>
|
||||||
#include <dm/test.h>
|
#include <dm/test.h>
|
||||||
#include <dm/util.h>
|
#include <dm/util.h>
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
#include <asm/arch-rockchip/periph.h>
|
#include <asm/arch-rockchip/periph.h>
|
||||||
#include <asm/arch-rockchip/pmu_rk3288.h>
|
#include <asm/arch-rockchip/pmu_rk3288.h>
|
||||||
#include <asm/arch-rockchip/boot_mode.h>
|
#include <asm/arch-rockchip/boot_mode.h>
|
||||||
#include <dm/pinctrl.h>
|
|
||||||
|
|
||||||
__weak int rk_board_late_init(void)
|
__weak int rk_board_late_init(void)
|
||||||
{
|
{
|
||||||
@ -42,37 +41,7 @@ int board_late_init(void)
|
|||||||
|
|
||||||
int board_init(void)
|
int board_init(void)
|
||||||
{
|
{
|
||||||
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
|
|
||||||
struct udevice *pinctrl;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We need to implement sdcard iomux here for the further
|
|
||||||
* initialization, otherwise, it'll hit sdcard command sending
|
|
||||||
* timeout exception.
|
|
||||||
*/
|
|
||||||
ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
|
|
||||||
if (ret) {
|
|
||||||
debug("%s: Cannot find pinctrl device\n", __func__);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_SDCARD);
|
|
||||||
if (ret) {
|
|
||||||
debug("%s: Failed to set up SD card\n", __func__);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
err:
|
|
||||||
printf("board_init: Error %d\n", ret);
|
|
||||||
|
|
||||||
/* No way to report error here */
|
|
||||||
hang();
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
|
#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
|
||||||
|
@ -9,6 +9,9 @@ config TARGET_ROCK
|
|||||||
Expansion connectors provide access to display pins, I2C, SPI,
|
Expansion connectors provide access to display pins, I2C, SPI,
|
||||||
UART and GPIOs.
|
UART and GPIOs.
|
||||||
|
|
||||||
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
|
default 0x20004040
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rk3188"
|
default "rk3188"
|
||||||
|
|
||||||
|
@ -19,6 +19,31 @@ u32 spl_boot_mode(const u32 boot_device)
|
|||||||
return MMCSD_MODE_RAW;
|
return MMCSD_MODE_RAW;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define TIMER_LOAD_COUNT_L 0x00
|
||||||
|
#define TIMER_LOAD_COUNT_H 0x04
|
||||||
|
#define TIMER_CONTROL_REG 0x10
|
||||||
|
#define TIMER_EN 0x1
|
||||||
|
#define TIMER_FMODE BIT(0)
|
||||||
|
#define TIMER_RMODE BIT(1)
|
||||||
|
|
||||||
|
void rockchip_stimer_init(void)
|
||||||
|
{
|
||||||
|
/* If Timer already enabled, don't re-init it */
|
||||||
|
u32 reg = readl(CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
|
||||||
|
if (reg & TIMER_EN)
|
||||||
|
return;
|
||||||
|
|
||||||
|
asm volatile("mcr p15, 0, %0, c14, c0, 0"
|
||||||
|
: : "r"(COUNTER_FREQUENCY));
|
||||||
|
|
||||||
|
writel(0, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + 4);
|
||||||
|
writel(TIMER_EN | TIMER_FMODE, CONFIG_ROCKCHIP_STIMER_BASE +
|
||||||
|
TIMER_CONTROL_REG);
|
||||||
|
}
|
||||||
|
|
||||||
#define SGRF_DDR_CON0 0x10150000
|
#define SGRF_DDR_CON0 0x10150000
|
||||||
void board_init_f(ulong dummy)
|
void board_init_f(ulong dummy)
|
||||||
{
|
{
|
||||||
@ -31,6 +56,11 @@ void board_init_f(ulong dummy)
|
|||||||
}
|
}
|
||||||
preloader_console_init();
|
preloader_console_init();
|
||||||
|
|
||||||
|
/* Init secure timer */
|
||||||
|
rockchip_stimer_init();
|
||||||
|
/* Init ARM arch timer in arch/arm/cpu/armv7/arch_timer.c */
|
||||||
|
timer_init();
|
||||||
|
|
||||||
/* Disable the ddr secure region setting to make it non-secure */
|
/* Disable the ddr secure region setting to make it non-secure */
|
||||||
rk_clrreg(SGRF_DDR_CON0, 0x4000);
|
rk_clrreg(SGRF_DDR_CON0, 0x4000);
|
||||||
}
|
}
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
|
||||||
/*
|
|
||||||
* (C) Copyright 2019 Rockchip Electronics Co., Ltd
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <debug_uart.h>
|
|
||||||
#include <dm.h>
|
|
||||||
#include <ram.h>
|
|
||||||
#include <spl.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/arch-rockchip/bootrom.h>
|
|
||||||
#include <asm/arch-rockchip/timer.h>
|
|
||||||
|
|
||||||
u32 spl_boot_device(void)
|
|
||||||
{
|
|
||||||
return BOOT_DEVICE_MMC1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void board_init_f(ulong dummy)
|
|
||||||
{
|
|
||||||
struct udevice *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Debug UART can be used from here if required:
|
|
||||||
*
|
|
||||||
* debug_uart_init();
|
|
||||||
* printch('a');
|
|
||||||
* printhex8(0x1234);
|
|
||||||
* printascii("string");
|
|
||||||
*/
|
|
||||||
debug_uart_init();
|
|
||||||
printascii("TPL Init");
|
|
||||||
|
|
||||||
ret = spl_early_init();
|
|
||||||
if (ret) {
|
|
||||||
debug("spl_early_init() failed: %d\n", ret);
|
|
||||||
hang();
|
|
||||||
}
|
|
||||||
|
|
||||||
rockchip_timer_init();
|
|
||||||
printf("timer init done\n");
|
|
||||||
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
|
||||||
if (ret) {
|
|
||||||
printf("DRAM init failed: %d\n", ret);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(CONFIG_TPL_ROCKCHIP_BACK_TO_BROM) && !defined(CONFIG_TPL_BOARD_INIT)
|
|
||||||
back_to_bootrom(BROM_BOOT_NEXTSTAGE);
|
|
||||||
#endif
|
|
||||||
}
|
|
@ -1,18 +1,37 @@
|
|||||||
if ROCKCHIP_RK322X
|
if ROCKCHIP_RK322X
|
||||||
|
|
||||||
|
|
||||||
config TARGET_EVB_RK3229
|
config TARGET_EVB_RK3229
|
||||||
bool "EVB_RK3229"
|
bool "EVB_RK3229"
|
||||||
select BOARD_LATE_INIT
|
select BOARD_LATE_INIT
|
||||||
|
|
||||||
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
|
default 0x110005c8
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rk322x"
|
default "rk322x"
|
||||||
|
|
||||||
config SYS_MALLOC_F_LEN
|
config SYS_MALLOC_F_LEN
|
||||||
default 0x400
|
default 0x800
|
||||||
|
|
||||||
|
config SPL_LIBCOMMON_SUPPORT
|
||||||
|
default y
|
||||||
|
|
||||||
|
config SPL_LIBGENERIC_SUPPORT
|
||||||
|
default y
|
||||||
|
|
||||||
config SPL_SERIAL_SUPPORT
|
config SPL_SERIAL_SUPPORT
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config TPL_MAX_SIZE
|
||||||
|
default 28672
|
||||||
|
|
||||||
|
config TPL_STACK
|
||||||
|
default 0x10088000
|
||||||
|
|
||||||
|
config TPL_TEXT_BASE
|
||||||
|
default 0x10081000
|
||||||
|
|
||||||
source "board/rockchip/evb_rk3229/Kconfig"
|
source "board/rockchip/evb_rk3229/Kconfig"
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@ -22,8 +22,6 @@
|
|||||||
#include <asm/arch-rockchip/sdram.h>
|
#include <asm/arch-rockchip/sdram.h>
|
||||||
#include <asm/arch-rockchip/sdram_common.h>
|
#include <asm/arch-rockchip/sdram_common.h>
|
||||||
#include <asm/arch-rockchip/sys_proto.h>
|
#include <asm/arch-rockchip/sys_proto.h>
|
||||||
#include <asm/arch-rockchip/timer.h>
|
|
||||||
#include <dm/pinctrl.h>
|
|
||||||
#include <dm/root.h>
|
#include <dm/root.h>
|
||||||
#include <dm/test.h>
|
#include <dm/test.h>
|
||||||
#include <dm/util.h>
|
#include <dm/util.h>
|
||||||
@ -104,6 +102,36 @@ static int phycore_init(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
__weak int arch_cpu_init(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define TIMER_LOAD_COUNT_L 0x00
|
||||||
|
#define TIMER_LOAD_COUNT_H 0x04
|
||||||
|
#define TIMER_CONTROL_REG 0x10
|
||||||
|
#define TIMER_EN 0x1
|
||||||
|
#define TIMER_FMODE BIT(0)
|
||||||
|
#define TIMER_RMODE BIT(1)
|
||||||
|
|
||||||
|
void rockchip_stimer_init(void)
|
||||||
|
{
|
||||||
|
/* If Timer already enabled, don't re-init it */
|
||||||
|
u32 reg = readl(CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
|
||||||
|
if (reg & TIMER_EN)
|
||||||
|
return;
|
||||||
|
|
||||||
|
asm volatile("mcr p15, 0, %0, c14, c0, 0"
|
||||||
|
: : "r"(COUNTER_FREQUENCY));
|
||||||
|
|
||||||
|
writel(0, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + 4);
|
||||||
|
writel(TIMER_EN | TIMER_FMODE, CONFIG_ROCKCHIP_STIMER_BASE +
|
||||||
|
TIMER_CONTROL_REG);
|
||||||
|
}
|
||||||
|
|
||||||
void board_init_f(ulong dummy)
|
void board_init_f(ulong dummy)
|
||||||
{
|
{
|
||||||
struct udevice *dev;
|
struct udevice *dev;
|
||||||
@ -127,8 +155,12 @@ void board_init_f(ulong dummy)
|
|||||||
hang();
|
hang();
|
||||||
}
|
}
|
||||||
|
|
||||||
rockchip_timer_init();
|
/* Init secure timer */
|
||||||
configure_l2ctlr();
|
rockchip_stimer_init();
|
||||||
|
/* Init ARM arch timer in arch/arm/cpu/armv7/arch_timer.c */
|
||||||
|
timer_init();
|
||||||
|
|
||||||
|
arch_cpu_init();
|
||||||
|
|
||||||
ret = rockchip_get_clk(&dev);
|
ret = rockchip_get_clk(&dev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2017 Amarula Solutions
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <debug_uart.h>
|
|
||||||
#include <dm.h>
|
|
||||||
#include <ram.h>
|
|
||||||
#include <spl.h>
|
|
||||||
#include <version.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/arch-rockchip/bootrom.h>
|
|
||||||
#include <asm/arch-rockchip/clock.h>
|
|
||||||
#include <asm/arch-rockchip/sys_proto.h>
|
|
||||||
#include <asm/arch-rockchip/timer.h>
|
|
||||||
|
|
||||||
void board_init_f(ulong dummy)
|
|
||||||
{
|
|
||||||
struct udevice *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_UART
|
|
||||||
/*
|
|
||||||
* Debug UART can be used from here if required:
|
|
||||||
*
|
|
||||||
* debug_uart_init();
|
|
||||||
* printch('a');
|
|
||||||
* printhex8(0x1234);
|
|
||||||
* printascii("string");
|
|
||||||
*/
|
|
||||||
debug_uart_init();
|
|
||||||
#endif
|
|
||||||
ret = spl_early_init();
|
|
||||||
if (ret) {
|
|
||||||
debug("spl_early_init() failed: %d\n", ret);
|
|
||||||
hang();
|
|
||||||
}
|
|
||||||
|
|
||||||
rockchip_timer_init();
|
|
||||||
configure_l2ctlr();
|
|
||||||
|
|
||||||
ret = rockchip_get_clk(&dev);
|
|
||||||
if (ret) {
|
|
||||||
debug("CLK init failed: %d\n", ret);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
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(BROM_BOOT_NEXTSTAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 spl_boot_device(void)
|
|
||||||
{
|
|
||||||
return BOOT_DEVICE_BOOTROM;
|
|
||||||
}
|
|
||||||
|
|
||||||
void spl_board_init(void)
|
|
||||||
{
|
|
||||||
puts("\nU-Boot TPL " PLAIN_VERSION " (" U_BOOT_DATE " - " \
|
|
||||||
U_BOOT_TIME ")\n");
|
|
||||||
}
|
|
@ -16,7 +16,6 @@
|
|||||||
#include <asm/arch-rockchip/qos_rk3288.h>
|
#include <asm/arch-rockchip/qos_rk3288.h>
|
||||||
#include <asm/arch-rockchip/boot_mode.h>
|
#include <asm/arch-rockchip/boot_mode.h>
|
||||||
#include <asm/gpio.h>
|
#include <asm/gpio.h>
|
||||||
#include <dm/pinctrl.h>
|
|
||||||
#include <dt-bindings/clock/rk3288-cru.h>
|
#include <dt-bindings/clock/rk3288-cru.h>
|
||||||
#include <power/regulator.h>
|
#include <power/regulator.h>
|
||||||
|
|
||||||
@ -145,33 +144,7 @@ static int veyron_init(void)
|
|||||||
int board_init(void)
|
int board_init(void)
|
||||||
{
|
{
|
||||||
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
|
#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
|
||||||
struct udevice *pinctrl;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We need to implement sdcard iomux here for the further
|
|
||||||
* initlization, otherwise, it'll hit sdcard command sending
|
|
||||||
* timeout exception.
|
|
||||||
*/
|
|
||||||
ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
|
|
||||||
if (ret) {
|
|
||||||
debug("%s: Cannot find pinctrl device\n", __func__);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_SDCARD);
|
|
||||||
if (ret) {
|
|
||||||
debug("%s: Failed to set up SD card\n", __func__);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
err:
|
|
||||||
printf("board_init: Error %d\n", ret);
|
|
||||||
|
|
||||||
/* No way to report error here */
|
|
||||||
hang();
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
#else
|
#else
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
if ROCKCHIP_RK3288
|
if ROCKCHIP_RK3288
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "RK3288 board select"
|
||||||
|
|
||||||
config TARGET_CHROMEBOOK_JERRY
|
config TARGET_CHROMEBOOK_JERRY
|
||||||
bool "Google/Rockchip Veyron-Jerry Chromebook"
|
bool "Google/Rockchip Veyron-Jerry Chromebook"
|
||||||
select BOARD_LATE_INIT
|
select BOARD_LATE_INIT
|
||||||
@ -44,6 +47,7 @@ config TARGET_CHROMEBOOK_SPEEDY
|
|||||||
config TARGET_EVB_RK3288
|
config TARGET_EVB_RK3288
|
||||||
bool "Evb-RK3288"
|
bool "Evb-RK3288"
|
||||||
select BOARD_LATE_INIT
|
select BOARD_LATE_INIT
|
||||||
|
select TPL
|
||||||
help
|
help
|
||||||
EVB-RK3288 is a RK3288-based development board with 2 USB ports,
|
EVB-RK3288 is a RK3288-based development board with 2 USB ports,
|
||||||
HDMI, VGA, micro-SD card, audio, WiFi and Gigabit Ethernet, It
|
HDMI, VGA, micro-SD card, audio, WiFi and Gigabit Ethernet, It
|
||||||
@ -125,6 +129,8 @@ config TARGET_TINKER_RK3288
|
|||||||
8GB eMMC and 2GB of SDRAM. Expansion connectors provide access to
|
8GB eMMC and 2GB of SDRAM. Expansion connectors provide access to
|
||||||
I2C, SPI, UART, GPIOs.
|
I2C, SPI, UART, GPIOs.
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
config ROCKCHIP_FAST_SPL
|
config ROCKCHIP_FAST_SPL
|
||||||
bool "Change the CPU to full speed in SPL"
|
bool "Change the CPU to full speed in SPL"
|
||||||
depends on TARGET_CHROMEBOOK_JERRY
|
depends on TARGET_CHROMEBOOK_JERRY
|
||||||
@ -134,11 +140,14 @@ config ROCKCHIP_FAST_SPL
|
|||||||
voltage. This option is only available on boards which support it
|
voltage. This option is only available on boards which support it
|
||||||
and have the required PMIC code.
|
and have the required PMIC code.
|
||||||
|
|
||||||
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
|
default 0xff730094
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rk3288"
|
default "rk3288"
|
||||||
|
|
||||||
config SYS_MALLOC_F_LEN
|
config SYS_MALLOC_F_LEN
|
||||||
default 0x0800
|
default 0x2000
|
||||||
|
|
||||||
config SPL_DRIVERS_MISC_SUPPORT
|
config SPL_DRIVERS_MISC_SUPPORT
|
||||||
default y
|
default y
|
||||||
@ -152,6 +161,18 @@ config SPL_LIBGENERIC_SUPPORT
|
|||||||
config SPL_SERIAL_SUPPORT
|
config SPL_SERIAL_SUPPORT
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config TPL_LDSCRIPT
|
||||||
|
default "arch/arm/mach-rockchip/u-boot-tpl.lds"
|
||||||
|
|
||||||
|
config TPL_MAX_SIZE
|
||||||
|
default 32768
|
||||||
|
|
||||||
|
config TPL_STACK
|
||||||
|
default 0xff718000
|
||||||
|
|
||||||
|
config TPL_TEXT_BASE
|
||||||
|
default 0xff704000
|
||||||
|
|
||||||
source "board/amarula/vyasa-rk3288/Kconfig"
|
source "board/amarula/vyasa-rk3288/Kconfig"
|
||||||
|
|
||||||
source "board/chipspark/popmetal_rk3288/Kconfig"
|
source "board/chipspark/popmetal_rk3288/Kconfig"
|
||||||
|
@ -2,19 +2,45 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016 Rockchip Electronics Co., Ltd
|
* Copyright (c) 2016 Rockchip Electronics Co., Ltd
|
||||||
*/
|
*/
|
||||||
|
#include <asm/armv7.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch-rockchip/hardware.h>
|
#include <asm/arch-rockchip/hardware.h>
|
||||||
#include <asm/arch-rockchip/grf_rk3288.h>
|
#include <asm/arch-rockchip/grf_rk3288.h>
|
||||||
|
|
||||||
#define GRF_BASE 0xff770000
|
#define GRF_BASE 0xff770000
|
||||||
|
|
||||||
|
#ifdef CONFIG_SPL_BUILD
|
||||||
|
static void configure_l2ctlr(void)
|
||||||
|
{
|
||||||
|
u32 l2ctlr;
|
||||||
|
|
||||||
|
l2ctlr = read_l2ctlr();
|
||||||
|
l2ctlr &= 0xfffc0000; /* clear bit0~bit17 */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Data RAM write latency: 2 cycles
|
||||||
|
* Data RAM read latency: 2 cycles
|
||||||
|
* Data RAM setup latency: 1 cycle
|
||||||
|
* Tag RAM write latency: 1 cycle
|
||||||
|
* Tag RAM read latency: 1 cycle
|
||||||
|
* Tag RAM setup latency: 1 cycle
|
||||||
|
*/
|
||||||
|
l2ctlr |= (1 << 3 | 1 << 0);
|
||||||
|
write_l2ctlr(l2ctlr);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int arch_cpu_init(void)
|
int arch_cpu_init(void)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_SPL_BUILD
|
||||||
|
configure_l2ctlr();
|
||||||
|
#else
|
||||||
/* We do some SoC one time setting here. */
|
/* We do some SoC one time setting here. */
|
||||||
struct rk3288_grf * const grf = (void *)GRF_BASE;
|
struct rk3288_grf * const grf = (void *)GRF_BASE;
|
||||||
|
|
||||||
/* Use rkpwm by default */
|
/* Use rkpwm by default */
|
||||||
rk_setreg(&grf->soc_con2, 1 << 0);
|
rk_setreg(&grf->soc_con2, 1 << 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <debug_uart.h>
|
#include <debug_uart.h>
|
||||||
#include <dm.h>
|
#include <dm.h>
|
||||||
#include <dm/pinctrl.h>
|
|
||||||
#include <ram.h>
|
#include <ram.h>
|
||||||
#include <spl.h>
|
#include <spl.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
@ -12,11 +12,20 @@ config TARGET_EVB_RK3328
|
|||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
|
default 0xff1005c8
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rk3328"
|
default "rk3328"
|
||||||
|
|
||||||
config SYS_MALLOC_F_LEN
|
config SYS_MALLOC_F_LEN
|
||||||
default 0x0800
|
default 0x2000
|
||||||
|
|
||||||
|
config SPL_LIBCOMMON_SUPPORT
|
||||||
|
default y
|
||||||
|
|
||||||
|
config SPL_LIBGENERIC_SUPPORT
|
||||||
|
default y
|
||||||
|
|
||||||
source "board/rockchip/evb_rk3328/Kconfig"
|
source "board/rockchip/evb_rk3328/Kconfig"
|
||||||
|
|
||||||
|
@ -11,6 +11,33 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch-rockchip/periph.h>
|
#include <asm/arch-rockchip/periph.h>
|
||||||
|
|
||||||
|
__weak int arch_cpu_init(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define TIMER_LOAD_COUNT_L 0x00
|
||||||
|
#define TIMER_LOAD_COUNT_H 0x04
|
||||||
|
#define TIMER_CONTROL_REG 0x10
|
||||||
|
#define TIMER_EN 0x1
|
||||||
|
#define TIMER_FMODE BIT(0)
|
||||||
|
#define TIMER_RMODE BIT(1)
|
||||||
|
|
||||||
|
void rockchip_stimer_init(void)
|
||||||
|
{
|
||||||
|
/* If Timer already enabled, don't re-init it */
|
||||||
|
u32 reg = readl(CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
|
||||||
|
if (reg & TIMER_EN)
|
||||||
|
return;
|
||||||
|
|
||||||
|
writel(0, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + 4);
|
||||||
|
writel(TIMER_EN | TIMER_FMODE, CONFIG_ROCKCHIP_STIMER_BASE +
|
||||||
|
TIMER_CONTROL_REG);
|
||||||
|
}
|
||||||
|
|
||||||
void board_init_f(ulong dummy)
|
void board_init_f(ulong dummy)
|
||||||
{
|
{
|
||||||
struct udevice *dev;
|
struct udevice *dev;
|
||||||
@ -22,6 +49,12 @@ void board_init_f(ulong dummy)
|
|||||||
hang();
|
hang();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Init secure timer */
|
||||||
|
rockchip_stimer_init();
|
||||||
|
/* Init ARM arch timer in arch/arm/cpu/armv7/arch_timer.c */
|
||||||
|
timer_init();
|
||||||
|
|
||||||
|
arch_cpu_init();
|
||||||
preloader_console_init();
|
preloader_console_init();
|
||||||
|
|
||||||
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
||||||
|
@ -1,123 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
|
||||||
/*
|
|
||||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <debug_uart.h>
|
|
||||||
#include <dm.h>
|
|
||||||
#include <ram.h>
|
|
||||||
#include <spl.h>
|
|
||||||
#include <syscon.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/arch-rockchip/bootrom.h>
|
|
||||||
#include <asm/arch-rockchip/clock.h>
|
|
||||||
#include <asm/arch-rockchip/cru_rk3368.h>
|
|
||||||
#include <asm/arch-rockchip/hardware.h>
|
|
||||||
#include <asm/arch-rockchip/timer.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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_init_f(ulong dummy)
|
|
||||||
{
|
|
||||||
struct udevice *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_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(BROM_BOOT_NEXTSTAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 spl_boot_device(void)
|
|
||||||
{
|
|
||||||
return BOOT_DEVICE_BOOTROM;
|
|
||||||
}
|
|
@ -42,9 +42,21 @@ config TARGET_EVB_PX5
|
|||||||
sensor STK3410.
|
sensor STK3410.
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
|
default 0xff738200
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rk3368"
|
default "rk3368"
|
||||||
|
|
||||||
|
config SYS_MALLOC_F_LEN
|
||||||
|
default 0x2000
|
||||||
|
|
||||||
|
config SPL_LIBCOMMON_SUPPORT
|
||||||
|
default y
|
||||||
|
|
||||||
|
config SPL_LIBGENERIC_SUPPORT
|
||||||
|
default y
|
||||||
|
|
||||||
source "board/theobroma-systems/lion_rk3368/Kconfig"
|
source "board/theobroma-systems/lion_rk3368/Kconfig"
|
||||||
source "board/rockchip/sheep_rk3368/Kconfig"
|
source "board/rockchip/sheep_rk3368/Kconfig"
|
||||||
source "board/geekbuying/geekbox/Kconfig"
|
source "board/geekbuying/geekbox/Kconfig"
|
||||||
@ -53,4 +65,13 @@ source "board/rockchip/evb_px5/Kconfig"
|
|||||||
config SPL_LDSCRIPT
|
config SPL_LDSCRIPT
|
||||||
default "arch/arm/cpu/armv8/u-boot-spl.lds"
|
default "arch/arm/cpu/armv8/u-boot-spl.lds"
|
||||||
|
|
||||||
|
config TPL_MAX_SIZE
|
||||||
|
default 28672
|
||||||
|
|
||||||
|
config TPL_STACK
|
||||||
|
default 0xff8cffff
|
||||||
|
|
||||||
|
config TPL_TEXT_BASE
|
||||||
|
default 0xff8c1000
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@ -5,12 +5,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
|
#include <syscon.h>
|
||||||
#include <asm/armv8/mmu.h>
|
#include <asm/armv8/mmu.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch-rockchip/clock.h>
|
#include <asm/arch-rockchip/clock.h>
|
||||||
#include <asm/arch-rockchip/cru_rk3368.h>
|
#include <asm/arch-rockchip/cru_rk3368.h>
|
||||||
#include <asm/arch-rockchip/grf_rk3368.h>
|
#include <asm/arch-rockchip/grf_rk3368.h>
|
||||||
#include <syscon.h>
|
#include <asm/arch-rockchip/hardware.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
@ -97,6 +98,78 @@ int arch_early_init_r(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_SPL_BUILD
|
||||||
|
/*
|
||||||
|
* 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 int 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 int 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
int arch_cpu_init(void)
|
||||||
|
{
|
||||||
|
/* Reset security, so we can use DMA in the MMC drivers */
|
||||||
|
sgrf_init();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_UART_BOARD_INIT
|
#ifdef CONFIG_DEBUG_UART_BOARD_INIT
|
||||||
void board_debug_uart_init(void)
|
void board_debug_uart_init(void)
|
||||||
{
|
{
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
#include <asm/arch-rockchip/periph.h>
|
#include <asm/arch-rockchip/periph.h>
|
||||||
#include <asm/arch-rockchip/sys_proto.h>
|
#include <asm/arch-rockchip/sys_proto.h>
|
||||||
#include <power/regulator.h>
|
#include <power/regulator.h>
|
||||||
#include <dm/pinctrl.h>
|
|
||||||
|
|
||||||
void board_return_to_bootrom(void)
|
void board_return_to_bootrom(void)
|
||||||
{
|
{
|
||||||
@ -110,30 +109,12 @@ void spl_perform_fixups(struct spl_image_info *spl_image)
|
|||||||
"u-boot,spl-boot-device", boot_ofpath);
|
"u-boot,spl-boot-device", boot_ofpath);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TIMER_CHN10_BASE 0xff8680a0
|
__weak void rockchip_stimer_init(void)
|
||||||
#define TIMER_END_COUNT_L 0x00
|
|
||||||
#define TIMER_END_COUNT_H 0x04
|
|
||||||
#define TIMER_INIT_COUNT_L 0x10
|
|
||||||
#define TIMER_INIT_COUNT_H 0x14
|
|
||||||
#define TIMER_CONTROL_REG 0x1c
|
|
||||||
|
|
||||||
#define TIMER_EN 0x1
|
|
||||||
#define TIMER_FMODE (0 << 1)
|
|
||||||
#define TIMER_RMODE (1 << 1)
|
|
||||||
|
|
||||||
void secure_timer_init(void)
|
|
||||||
{
|
{
|
||||||
writel(0xffffffff, TIMER_CHN10_BASE + TIMER_END_COUNT_L);
|
|
||||||
writel(0xffffffff, TIMER_CHN10_BASE + TIMER_END_COUNT_H);
|
|
||||||
writel(0, TIMER_CHN10_BASE + TIMER_INIT_COUNT_L);
|
|
||||||
writel(0, TIMER_CHN10_BASE + TIMER_INIT_COUNT_H);
|
|
||||||
writel(TIMER_EN | TIMER_FMODE, TIMER_CHN10_BASE + TIMER_CONTROL_REG);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void board_init_f(ulong dummy)
|
void board_init_f(ulong dummy)
|
||||||
{
|
{
|
||||||
struct udevice *pinctrl;
|
|
||||||
struct udevice *dev;
|
struct udevice *dev;
|
||||||
struct rk3399_pmusgrf_regs *sgrf;
|
struct rk3399_pmusgrf_regs *sgrf;
|
||||||
struct rk3399_grf_regs *grf;
|
struct rk3399_grf_regs *grf;
|
||||||
@ -190,13 +171,7 @@ void board_init_f(ulong dummy)
|
|||||||
grf = syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
|
grf = syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
|
||||||
rk_clrreg(&grf->emmccore_con[11], 0x0ff);
|
rk_clrreg(&grf->emmccore_con[11], 0x0ff);
|
||||||
|
|
||||||
secure_timer_init();
|
rockchip_stimer_init();
|
||||||
|
|
||||||
ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
|
|
||||||
if (ret) {
|
|
||||||
pr_err("Pinctrl init failed: %d\n", ret);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -1,91 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
|
||||||
/*
|
|
||||||
* (C) Copyright 2019 Rockchip Electronics Co., Ltd
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <debug_uart.h>
|
|
||||||
#include <dm.h>
|
|
||||||
#include <ram.h>
|
|
||||||
#include <spl.h>
|
|
||||||
#include <version.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/arch-rockchip/bootrom.h>
|
|
||||||
|
|
||||||
#define TIMER_CHN10_BASE 0xff8680a0
|
|
||||||
#define TIMER_END_COUNT_L 0x00
|
|
||||||
#define TIMER_END_COUNT_H 0x04
|
|
||||||
#define TIMER_INIT_COUNT_L 0x10
|
|
||||||
#define TIMER_INIT_COUNT_H 0x14
|
|
||||||
#define TIMER_CONTROL_REG 0x1c
|
|
||||||
|
|
||||||
#define TIMER_EN 0x1
|
|
||||||
#define TIMER_FMODE (0 << 1)
|
|
||||||
#define TIMER_RMODE (1 << 1)
|
|
||||||
|
|
||||||
void secure_timer_init(void)
|
|
||||||
{
|
|
||||||
writel(0xffffffff, TIMER_CHN10_BASE + TIMER_END_COUNT_L);
|
|
||||||
writel(0xffffffff, TIMER_CHN10_BASE + TIMER_END_COUNT_H);
|
|
||||||
writel(0, TIMER_CHN10_BASE + TIMER_INIT_COUNT_L);
|
|
||||||
writel(0, TIMER_CHN10_BASE + TIMER_INIT_COUNT_H);
|
|
||||||
writel(TIMER_EN | TIMER_FMODE, TIMER_CHN10_BASE + TIMER_CONTROL_REG);
|
|
||||||
}
|
|
||||||
|
|
||||||
void board_init_f(ulong dummy)
|
|
||||||
{
|
|
||||||
struct udevice *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_UART
|
|
||||||
debug_uart_init();
|
|
||||||
/*
|
|
||||||
* Debug UART can be used from here if required:
|
|
||||||
*
|
|
||||||
* debug_uart_init();
|
|
||||||
* printch('a');
|
|
||||||
* printhex8(0x1234);
|
|
||||||
* printascii("string");
|
|
||||||
*/
|
|
||||||
debug("U-Boot TPL board init\n");
|
|
||||||
#endif
|
|
||||||
ret = spl_early_init();
|
|
||||||
if (ret) {
|
|
||||||
debug("spl_early_init() failed: %d\n", ret);
|
|
||||||
hang();
|
|
||||||
}
|
|
||||||
|
|
||||||
secure_timer_init();
|
|
||||||
|
|
||||||
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
|
||||||
if (ret) {
|
|
||||||
pr_err("DRAM init failed: %d\n", ret);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void board_return_to_bootrom(void)
|
|
||||||
{
|
|
||||||
back_to_bootrom(BROM_BOOT_NEXTSTAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 spl_boot_device(void)
|
|
||||||
{
|
|
||||||
return BOOT_DEVICE_BOOTROM;
|
|
||||||
}
|
|
||||||
|
|
||||||
void spl_board_init(void)
|
|
||||||
{
|
|
||||||
puts("\nU-Boot TPL " PLAIN_VERSION " (" U_BOOT_DATE " - "
|
|
||||||
U_BOOT_TIME " " U_BOOT_TZ ")\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
#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
|
|
@ -64,11 +64,32 @@ config TARGET_CHROMEBOOK_BOB
|
|||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
|
default 0xff320300
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rk3399"
|
default "rk3399"
|
||||||
|
|
||||||
config SYS_MALLOC_F_LEN
|
config SYS_MALLOC_F_LEN
|
||||||
default 0x0800
|
default 0x4000
|
||||||
|
|
||||||
|
config SPL_LIBCOMMON_SUPPORT
|
||||||
|
default y
|
||||||
|
|
||||||
|
config SPL_LIBGENERIC_SUPPORT
|
||||||
|
default y
|
||||||
|
|
||||||
|
config TPL_LDSCRIPT
|
||||||
|
default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
|
||||||
|
|
||||||
|
config TPL_MAX_SIZE
|
||||||
|
default 188416
|
||||||
|
|
||||||
|
config TPL_STACK
|
||||||
|
default 0xff8effff
|
||||||
|
|
||||||
|
config TPL_TEXT_BASE
|
||||||
|
default 0xff8c2000
|
||||||
|
|
||||||
source "board/rockchip/evb_rk3399/Kconfig"
|
source "board/rockchip/evb_rk3399/Kconfig"
|
||||||
source "board/theobroma-systems/puma_rk3399/Kconfig"
|
source "board/theobroma-systems/puma_rk3399/Kconfig"
|
||||||
|
@ -38,6 +38,35 @@ static struct mm_region rk3399_mem_map[] = {
|
|||||||
|
|
||||||
struct mm_region *mem_map = rk3399_mem_map;
|
struct mm_region *mem_map = rk3399_mem_map;
|
||||||
|
|
||||||
|
#ifdef CONFIG_SPL_BUILD
|
||||||
|
|
||||||
|
#define TIMER_END_COUNT_L 0x00
|
||||||
|
#define TIMER_END_COUNT_H 0x04
|
||||||
|
#define TIMER_INIT_COUNT_L 0x10
|
||||||
|
#define TIMER_INIT_COUNT_H 0x14
|
||||||
|
#define TIMER_CONTROL_REG 0x1c
|
||||||
|
|
||||||
|
#define TIMER_EN 0x1
|
||||||
|
#define TIMER_FMODE BIT(0)
|
||||||
|
#define TIMER_RMODE BIT(1)
|
||||||
|
|
||||||
|
void rockchip_stimer_init(void)
|
||||||
|
{
|
||||||
|
/* If Timer already enabled, don't re-init it */
|
||||||
|
u32 reg = readl(CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
|
||||||
|
if (reg & TIMER_EN)
|
||||||
|
return;
|
||||||
|
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_END_COUNT_L);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_END_COUNT_H);
|
||||||
|
writel(0, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_INIT_COUNT_L);
|
||||||
|
writel(0, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_INIT_COUNT_H);
|
||||||
|
writel(TIMER_EN | TIMER_FMODE, CONFIG_ROCKCHIP_STIMER_BASE + \
|
||||||
|
TIMER_CONTROL_REG);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int dram_init_banksize(void)
|
int dram_init_banksize(void)
|
||||||
{
|
{
|
||||||
size_t max_size = min((unsigned long)gd->ram_size, gd->ram_top);
|
size_t max_size = min((unsigned long)gd->ram_size, gd->ram_top);
|
||||||
|
@ -13,6 +13,7 @@ static const struct udevice_id rk3399_syscon_ids[] = {
|
|||||||
{ .compatible = "rockchip,rk3399-pmugrf", .data = ROCKCHIP_SYSCON_PMUGRF },
|
{ .compatible = "rockchip,rk3399-pmugrf", .data = ROCKCHIP_SYSCON_PMUGRF },
|
||||||
{ .compatible = "rockchip,rk3399-pmusgrf", .data = ROCKCHIP_SYSCON_PMUSGRF },
|
{ .compatible = "rockchip,rk3399-pmusgrf", .data = ROCKCHIP_SYSCON_PMUSGRF },
|
||||||
{ .compatible = "rockchip,rk3399-cic", .data = ROCKCHIP_SYSCON_CIC },
|
{ .compatible = "rockchip,rk3399-cic", .data = ROCKCHIP_SYSCON_CIC },
|
||||||
|
{ .compatible = "rockchip,rk3399-pmu", .data = ROCKCHIP_SYSCON_PMU },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -58,4 +59,11 @@ U_BOOT_DRIVER(rockchip_rk3399_cic) = {
|
|||||||
.of_match = rk3399_syscon_ids + 3,
|
.of_match = rk3399_syscon_ids + 3,
|
||||||
.bind = rk3399_syscon_bind_of_platdata,
|
.bind = rk3399_syscon_bind_of_platdata,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
U_BOOT_DRIVER(rockchip_rk3399_pmu) = {
|
||||||
|
.name = "rockchip_rk3399_pmu",
|
||||||
|
.id = UCLASS_SYSCON,
|
||||||
|
.of_match = rk3399_syscon_ids + 4,
|
||||||
|
.bind = rk3399_syscon_bind_of_platdata,
|
||||||
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
|
||||||
/*
|
|
||||||
* (C) Copyright 2015 Rockchip Electronics Co., Ltd
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <asm/arch-rockchip/timer.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <linux/types.h>
|
|
||||||
|
|
||||||
struct rk_timer * const timer_ptr = (void *)CONFIG_SYS_TIMER_BASE;
|
|
||||||
|
|
||||||
static uint64_t rockchip_get_ticks(void)
|
|
||||||
{
|
|
||||||
uint64_t timebase_h, timebase_l;
|
|
||||||
|
|
||||||
timebase_l = readl(&timer_ptr->timer_curr_value0);
|
|
||||||
timebase_h = readl(&timer_ptr->timer_curr_value1);
|
|
||||||
|
|
||||||
return timebase_h << 32 | timebase_l;
|
|
||||||
}
|
|
||||||
|
|
||||||
void rockchip_udelay(unsigned int usec)
|
|
||||||
{
|
|
||||||
uint64_t tmp;
|
|
||||||
|
|
||||||
/* get timestamp */
|
|
||||||
tmp = rockchip_get_ticks() + usec_to_tick(usec);
|
|
||||||
|
|
||||||
/* loop till event */
|
|
||||||
while (rockchip_get_ticks() < tmp+1)
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
void rockchip_timer_init(void)
|
|
||||||
{
|
|
||||||
writel(0xffffffff, &timer_ptr->timer_load_count0);
|
|
||||||
writel(0xffffffff, &timer_ptr->timer_load_count1);
|
|
||||||
writel(1, &timer_ptr->timer_ctrl_reg);
|
|
||||||
}
|
|
@ -1,5 +1,8 @@
|
|||||||
if ROCKCHIP_RV1108
|
if ROCKCHIP_RV1108
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "RV1108 board select"
|
||||||
|
|
||||||
config TARGET_EVB_RV1108
|
config TARGET_EVB_RV1108
|
||||||
bool "EVB_RV1108"
|
bool "EVB_RV1108"
|
||||||
help
|
help
|
||||||
@ -22,6 +25,11 @@ config TARGET_ELGIN_RV1108
|
|||||||
help
|
help
|
||||||
RV1108 ELGIN is a board based on the Rockchip RV1108.
|
RV1108 ELGIN is a board based on the Rockchip RV1108.
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config ROCKCHIP_BOOT_MODE_REG
|
||||||
|
default 0x10300580
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rv1108"
|
default "rv1108"
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include <mmc.h>
|
#include <mmc.h>
|
||||||
#include <spl.h>
|
#include <spl.h>
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(OF_CONTROL)
|
#if CONFIG_IS_ENABLED(OF_LIBFDT)
|
||||||
/**
|
/**
|
||||||
* spl_node_to_boot_device() - maps from a DT-node to a SPL boot device
|
* spl_node_to_boot_device() - maps from a DT-node to a SPL boot device
|
||||||
* @node: of_offset of the node
|
* @node: of_offset of the node
|
||||||
|
86
arch/arm/mach-rockchip/tpl.c
Normal file
86
arch/arm/mach-rockchip/tpl.c
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2019 Rockchip Electronics Co., Ltd
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <debug_uart.h>
|
||||||
|
#include <dm.h>
|
||||||
|
#include <ram.h>
|
||||||
|
#include <spl.h>
|
||||||
|
#include <version.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include <asm/arch-rockchip/bootrom.h>
|
||||||
|
|
||||||
|
#define TIMER_LOAD_COUNT_L 0x00
|
||||||
|
#define TIMER_LOAD_COUNT_H 0x04
|
||||||
|
#define TIMER_CONTROL_REG 0x10
|
||||||
|
#define TIMER_EN 0x1
|
||||||
|
#define TIMER_FMODE BIT(0)
|
||||||
|
#define TIMER_RMODE BIT(1)
|
||||||
|
|
||||||
|
__weak void rockchip_stimer_init(void)
|
||||||
|
{
|
||||||
|
/* If Timer already enabled, don't re-init it */
|
||||||
|
u32 reg = readl(CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
|
||||||
|
if (reg & TIMER_EN)
|
||||||
|
return;
|
||||||
|
|
||||||
|
#ifndef CONFIG_ARM64
|
||||||
|
asm volatile("mcr p15, 0, %0, c14, c0, 0"
|
||||||
|
: : "r"(COUNTER_FREQUENCY));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
writel(0, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE);
|
||||||
|
writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + 4);
|
||||||
|
writel(TIMER_EN | TIMER_FMODE, CONFIG_ROCKCHIP_STIMER_BASE +
|
||||||
|
TIMER_CONTROL_REG);
|
||||||
|
}
|
||||||
|
|
||||||
|
void board_init_f(ulong dummy)
|
||||||
|
{
|
||||||
|
struct udevice *dev;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
#ifdef CONFIG_DEBUG_UART
|
||||||
|
/*
|
||||||
|
* Debug UART can be used from here if required:
|
||||||
|
*
|
||||||
|
* debug_uart_init();
|
||||||
|
* printch('a');
|
||||||
|
* printhex8(0x1234);
|
||||||
|
* printascii("string");
|
||||||
|
*/
|
||||||
|
debug_uart_init();
|
||||||
|
printascii("\nU-Boot TPL " PLAIN_VERSION " (" U_BOOT_DATE " - " \
|
||||||
|
U_BOOT_TIME ")\n");
|
||||||
|
#endif
|
||||||
|
ret = spl_early_init();
|
||||||
|
if (ret) {
|
||||||
|
debug("spl_early_init() failed: %d\n", ret);
|
||||||
|
hang();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Init secure timer */
|
||||||
|
rockchip_stimer_init();
|
||||||
|
/* Init ARM arch timer in arch/arm/cpu/ */
|
||||||
|
timer_init();
|
||||||
|
|
||||||
|
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
||||||
|
if (ret) {
|
||||||
|
printf("DRAM init failed: %d\n", ret);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void board_return_to_bootrom(void)
|
||||||
|
{
|
||||||
|
back_to_bootrom(BROM_BOOT_NEXTSTAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 spl_boot_device(void)
|
||||||
|
{
|
||||||
|
return BOOT_DEVICE_BOOTROM;
|
||||||
|
}
|
@ -6,14 +6,6 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
|
|
||||||
#ifndef CONFIG_TPL_BUILD
|
#ifndef CONFIG_TPL_BUILD
|
||||||
#include <spl.h>
|
|
||||||
|
|
||||||
void board_boot_order(u32 *spl_boot_list)
|
|
||||||
{
|
|
||||||
/* eMMC prior to sdcard. */
|
|
||||||
spl_boot_list[0] = BOOT_DEVICE_MMC2;
|
|
||||||
spl_boot_list[1] = BOOT_DEVICE_MMC1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int spl_start_uboot(void)
|
int spl_start_uboot(void)
|
||||||
{
|
{
|
||||||
|
@ -4,16 +4,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <spl.h>
|
|
||||||
#include <asm/gpio.h>
|
#include <asm/gpio.h>
|
||||||
|
|
||||||
void board_boot_order(u32 *spl_boot_list)
|
|
||||||
{
|
|
||||||
/* eMMC prior to sdcard */
|
|
||||||
spl_boot_list[0] = BOOT_DEVICE_MMC2;
|
|
||||||
spl_boot_list[1] = BOOT_DEVICE_MMC1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define GPIO7A3_HUB_RST 227
|
#define GPIO7A3_HUB_RST 227
|
||||||
|
|
||||||
int rk_board_late_init(void)
|
int rk_board_late_init(void)
|
||||||
|
@ -3,12 +3,3 @@
|
|||||||
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <spl.h>
|
|
||||||
|
|
||||||
void board_boot_order(u32 *spl_boot_list)
|
|
||||||
{
|
|
||||||
/* eMMC prior to sdcard. */
|
|
||||||
spl_boot_list[0] = BOOT_DEVICE_MMC2;
|
|
||||||
spl_boot_list[1] = BOOT_DEVICE_MMC1;
|
|
||||||
}
|
|
||||||
|
@ -3,12 +3,3 @@
|
|||||||
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <spl.h>
|
|
||||||
|
|
||||||
void board_boot_order(u32 *spl_boot_list)
|
|
||||||
{
|
|
||||||
/* eMMC prior to sdcard. */
|
|
||||||
spl_boot_list[0] = BOOT_DEVICE_MMC2;
|
|
||||||
spl_boot_list[1] = BOOT_DEVICE_MMC1;
|
|
||||||
}
|
|
||||||
|
@ -35,12 +35,6 @@ Get the Source and prebuild binary
|
|||||||
> git clone https://github.com/rockchip-linux/rkbin.git
|
> git clone https://github.com/rockchip-linux/rkbin.git
|
||||||
> git clone https://github.com/rockchip-linux/rkdeveloptool.git
|
> git clone https://github.com/rockchip-linux/rkdeveloptool.git
|
||||||
|
|
||||||
Get some prerequisites
|
|
||||||
======================
|
|
||||||
|
|
||||||
You need the Python elftools.elf.elffile library for make_fit_atf.py to work:
|
|
||||||
|
|
||||||
> sudo apt-get install python-pyelftools
|
|
||||||
|
|
||||||
Compile ATF
|
Compile ATF
|
||||||
===========
|
===========
|
||||||
|
@ -3,12 +3,3 @@
|
|||||||
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <spl.h>
|
|
||||||
|
|
||||||
void board_boot_order(u32 *spl_boot_list)
|
|
||||||
{
|
|
||||||
/* eMMC prior to sdcard */
|
|
||||||
spl_boot_list[0] = BOOT_DEVICE_MMC2;
|
|
||||||
spl_boot_list[1] = BOOT_DEVICE_MMC1;
|
|
||||||
}
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
ROCK960-RK3399
|
ROCK960-RK3399
|
||||||
M: Manivannan Sadhasivam manivannan.sadhasivam@linaro.org
|
M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: board/rockchip/rock960_rk3399
|
F: board/rockchip/rock960_rk3399
|
||||||
F: include/configs/rock960_rk3399.h
|
F: include/configs/rock960_rk3399.h
|
||||||
F: configs/rock960-rk3399_defconfig
|
F: configs/rock960-rk3399_defconfig
|
||||||
|
|
||||||
FICUS EE
|
FICUS EE
|
||||||
M: Manivannan Sadhasivam manivannan.sadhasivam@linaro.org
|
M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: configs/ficus-rk3399_defconfig
|
F: configs/ficus-rk3399_defconfig
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00100000
|
CONFIG_SYS_TEXT_BASE=0x00100000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
# CONFIG_SPL_MMC_SUPPORT is not set
|
# CONFIG_SPL_MMC_SUPPORT is not set
|
||||||
CONFIG_TARGET_CHROMEBIT_MICKEY=y
|
CONFIG_TARGET_CHROMEBIT_MICKEY=y
|
||||||
|
@ -2,9 +2,6 @@ CONFIG_ARM=y
|
|||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_GPIO_SUPPORT=y
|
CONFIG_SPL_GPIO_SUPPORT=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_BOOT_MODE_REG=0
|
CONFIG_ROCKCHIP_BOOT_MODE_REG=0
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00100000
|
CONFIG_SYS_TEXT_BASE=0x00100000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
# CONFIG_SPL_MMC_SUPPORT is not set
|
# CONFIG_SPL_MMC_SUPPORT is not set
|
||||||
CONFIG_TARGET_CHROMEBOOK_JERRY=y
|
CONFIG_TARGET_CHROMEBOOK_JERRY=y
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00100000
|
CONFIG_SYS_TEXT_BASE=0x00100000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
# CONFIG_SPL_MMC_SUPPORT is not set
|
# CONFIG_SPL_MMC_SUPPORT is not set
|
||||||
CONFIG_TARGET_CHROMEBOOK_MINNIE=y
|
CONFIG_TARGET_CHROMEBOOK_MINNIE=y
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00100000
|
CONFIG_SYS_TEXT_BASE=0x00100000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
# CONFIG_SPL_MMC_SUPPORT is not set
|
# CONFIG_SPL_MMC_SUPPORT is not set
|
||||||
CONFIG_TARGET_CHROMEBOOK_SPEEDY=y
|
CONFIG_TARGET_CHROMEBOOK_SPEEDY=y
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3368=y
|
CONFIG_ROCKCHIP_RK3368=y
|
||||||
CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
|
CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x40000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x40000
|
||||||
@ -70,10 +67,6 @@ CONFIG_DM_RESET=y
|
|||||||
CONFIG_DEBUG_UART_SHIFT=2
|
CONFIG_DEBUG_UART_SHIFT=2
|
||||||
CONFIG_DEBUG_UART_SKIP_INIT=y
|
CONFIG_DEBUG_UART_SKIP_INIT=y
|
||||||
CONFIG_SYSRESET=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_USE_TINY_PRINTF=y
|
||||||
CONFIG_PANIC_HANG=y
|
CONFIG_PANIC_HANG=y
|
||||||
CONFIG_SPL_TINY_MEMSET=y
|
CONFIG_SPL_TINY_MEMSET=y
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x61000000
|
CONFIG_SYS_TEXT_BASE=0x61000000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x800
|
|
||||||
CONFIG_ROCKCHIP_RK322X=y
|
CONFIG_ROCKCHIP_RK322X=y
|
||||||
CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl.lds"
|
CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl.lds"
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00000000
|
CONFIG_SYS_TEXT_BASE=0x01000000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
|
||||||
CONFIG_TARGET_EVB_RK3288=y
|
CONFIG_TARGET_EVB_RK3288=y
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
CONFIG_SPL_STACK_R_ADDR=0x80000
|
CONFIG_SPL_SIZE_LIMIT=307200
|
||||||
CONFIG_DEBUG_UART_BASE=0xff690000
|
CONFIG_DEBUG_UART_BASE=0xff690000
|
||||||
CONFIG_DEBUG_UART_CLOCK=24000000
|
CONFIG_DEBUG_UART_CLOCK=24000000
|
||||||
CONFIG_DEBUG_UART=y
|
CONFIG_DEBUG_UART=y
|
||||||
@ -15,9 +13,7 @@ CONFIG_SILENT_CONSOLE=y
|
|||||||
CONFIG_DEFAULT_FDT_FILE="rk3288-evb-rk808.dtb"
|
CONFIG_DEFAULT_FDT_FILE="rk3288-evb-rk808.dtb"
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
||||||
CONFIG_SPL_TEXT_BASE=0xff704000
|
CONFIG_SPL_TEXT_BASE=0
|
||||||
CONFIG_SPL_STACK_R=y
|
|
||||||
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2000
|
|
||||||
CONFIG_CMD_GPIO=y
|
CONFIG_CMD_GPIO=y
|
||||||
CONFIG_CMD_GPT=y
|
CONFIG_CMD_GPT=y
|
||||||
CONFIG_CMD_I2C=y
|
CONFIG_CMD_I2C=y
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_ROCKCHIP_RK3328=y
|
CONFIG_ROCKCHIP_RK3328=y
|
||||||
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
|
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00000000
|
CONFIG_SYS_TEXT_BASE=0x00000000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||||
CONFIG_TARGET_FENNEC_RK3288=y
|
CONFIG_TARGET_FENNEC_RK3288=y
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
|
||||||
CONFIG_TARGET_ROCK960_RK3399=y
|
CONFIG_TARGET_ROCK960_RK3399=y
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00000000
|
CONFIG_SYS_TEXT_BASE=0x00000000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||||
CONFIG_TARGET_FIREFLY_RK3288=y
|
CONFIG_TARGET_FIREFLY_RK3288=y
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3368=y
|
CONFIG_ROCKCHIP_RK3368=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
|
||||||
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||||
@ -91,10 +88,6 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
|
|||||||
CONFIG_DEBUG_UART_SKIP_INIT=y
|
CONFIG_DEBUG_UART_SKIP_INIT=y
|
||||||
CONFIG_ROCKCHIP_SPI=y
|
CONFIG_ROCKCHIP_SPI=y
|
||||||
CONFIG_SYSRESET=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_USE_TINY_PRINTF=y
|
||||||
CONFIG_SPL_TINY_MEMSET=y
|
CONFIG_SPL_TINY_MEMSET=y
|
||||||
CONFIG_LZO=y
|
CONFIG_LZO=y
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00000000
|
CONFIG_SYS_TEXT_BASE=0x00000000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||||
CONFIG_TARGET_MIQI_RK3288=y
|
CONFIG_TARGET_MIQI_RK3288=y
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00000000
|
CONFIG_SYS_TEXT_BASE=0x00000000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||||
CONFIG_TARGET_PHYCORE_RK3288=y
|
CONFIG_TARGET_PHYCORE_RK3288=y
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00000000
|
CONFIG_SYS_TEXT_BASE=0x00000000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
|
||||||
CONFIG_TARGET_POPMETAL_RK3288=y
|
CONFIG_TARGET_POPMETAL_RK3288=y
|
||||||
|
@ -2,9 +2,6 @@ CONFIG_ARM=y
|
|||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_GPIO_SUPPORT=y
|
CONFIG_SPL_GPIO_SUPPORT=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_BOOT_MODE_REG=0x0
|
CONFIG_ROCKCHIP_BOOT_MODE_REG=0x0
|
||||||
CONFIG_TARGET_PUMA_RK3399=y
|
CONFIG_TARGET_PUMA_RK3399=y
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
@ -28,6 +25,7 @@ CONFIG_SPL_OF_CONTROL=y
|
|||||||
CONFIG_DEFAULT_DEVICE_TREE="rk3399-rock-pi-4"
|
CONFIG_DEFAULT_DEVICE_TREE="rk3399-rock-pi-4"
|
||||||
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
|
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
|
||||||
CONFIG_ENV_IS_IN_MMC=y
|
CONFIG_ENV_IS_IN_MMC=y
|
||||||
|
CONFIG_RAM_RK3399_LPDDR4=y
|
||||||
CONFIG_ROCKCHIP_GPIO=y
|
CONFIG_ROCKCHIP_GPIO=y
|
||||||
CONFIG_SYS_I2C_ROCKCHIP=y
|
CONFIG_SYS_I2C_ROCKCHIP=y
|
||||||
CONFIG_MMC_DW=y
|
CONFIG_MMC_DW=y
|
||||||
|
@ -2,9 +2,6 @@ CONFIG_SMBIOS_MANUFACTURER="pine64"
|
|||||||
CONFIG_SMBIOS_PRODUCT_NAME="rock64_rk3328"
|
CONFIG_SMBIOS_PRODUCT_NAME="rock64_rk3328"
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_ROCKCHIP_RK3328=y
|
CONFIG_ROCKCHIP_RK3328=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x40000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x40000
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
|
||||||
CONFIG_TARGET_ROCK960_RK3399=y
|
CONFIG_TARGET_ROCK960_RK3399=y
|
||||||
@ -21,7 +18,8 @@ CONFIG_SYS_PROMPT="rock960 => "
|
|||||||
CONFIG_CMD_BOOTZ=y
|
CONFIG_CMD_BOOTZ=y
|
||||||
CONFIG_CMD_GPT=y
|
CONFIG_CMD_GPT=y
|
||||||
CONFIG_CMD_MMC=y
|
CONFIG_CMD_MMC=y
|
||||||
CONFIG_CMD_SF=y
|
CONFIG_CMD_PMIC=y
|
||||||
|
CONFIG_CMD_REGULATOR=y
|
||||||
CONFIG_CMD_USB=y
|
CONFIG_CMD_USB=y
|
||||||
# CONFIG_CMD_SETEXPR is not set
|
# CONFIG_CMD_SETEXPR is not set
|
||||||
CONFIG_CMD_TIME=y
|
CONFIG_CMD_TIME=y
|
||||||
@ -34,8 +32,8 @@ CONFIG_SYS_I2C_ROCKCHIP=y
|
|||||||
CONFIG_MMC_DW=y
|
CONFIG_MMC_DW=y
|
||||||
CONFIG_MMC_DW_ROCKCHIP=y
|
CONFIG_MMC_DW_ROCKCHIP=y
|
||||||
CONFIG_MMC_SDHCI=y
|
CONFIG_MMC_SDHCI=y
|
||||||
|
CONFIG_MMC_SDHCI_SDMA=y
|
||||||
CONFIG_MMC_SDHCI_ROCKCHIP=y
|
CONFIG_MMC_SDHCI_ROCKCHIP=y
|
||||||
CONFIG_SF_DEFAULT_SPEED=20000000
|
|
||||||
CONFIG_PMIC_RK8XX=y
|
CONFIG_PMIC_RK8XX=y
|
||||||
CONFIG_REGULATOR_PWM=y
|
CONFIG_REGULATOR_PWM=y
|
||||||
CONFIG_REGULATOR_RK8XX=y
|
CONFIG_REGULATOR_RK8XX=y
|
||||||
@ -47,5 +45,15 @@ CONFIG_USB=y
|
|||||||
CONFIG_USB_EHCI_HCD=y
|
CONFIG_USB_EHCI_HCD=y
|
||||||
CONFIG_USB_EHCI_GENERIC=y
|
CONFIG_USB_EHCI_GENERIC=y
|
||||||
CONFIG_ROCKCHIP_USB2_PHY=y
|
CONFIG_ROCKCHIP_USB2_PHY=y
|
||||||
|
CONFIG_DM_ETH=y
|
||||||
|
CONFIG_USB_HOST_ETHER=y
|
||||||
|
CONFIG_USB_ETHER_ASIX88179=y
|
||||||
|
CONFIG_USB_ETHER_ASIX=y
|
||||||
|
CONFIG_USB_ETHER_MCS7830=y
|
||||||
|
CONFIG_USB_ETHER_RTL8152=y
|
||||||
|
CONFIG_USB_ETHER_SMSC95XX=y
|
||||||
|
CONFIG_USB_XHCI_HCD=y
|
||||||
|
CONFIG_USB_XHCI_DWC3=y
|
||||||
|
# CONFIG_USB_XHCI_ROCKCHIP is not set
|
||||||
CONFIG_USE_TINY_PRINTF=y
|
CONFIG_USE_TINY_PRINTF=y
|
||||||
CONFIG_ERRNO_STR=y
|
CONFIG_ERRNO_STR=y
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
CONFIG_ROCKCHIP_RK3399=y
|
CONFIG_ROCKCHIP_RK3399=y
|
||||||
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x50000
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
@ -28,6 +25,7 @@ CONFIG_SPL_OF_CONTROL=y
|
|||||||
CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64"
|
CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64"
|
||||||
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
|
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
|
||||||
CONFIG_ENV_IS_IN_MMC=y
|
CONFIG_ENV_IS_IN_MMC=y
|
||||||
|
CONFIG_RAM_RK3399_LPDDR4=y
|
||||||
CONFIG_ROCKCHIP_GPIO=y
|
CONFIG_ROCKCHIP_GPIO=y
|
||||||
CONFIG_SYS_I2C_ROCKCHIP=y
|
CONFIG_SYS_I2C_ROCKCHIP=y
|
||||||
CONFIG_MMC_DW=y
|
CONFIG_MMC_DW=y
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x00200000
|
CONFIG_SYS_TEXT_BASE=0x00200000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x1000
|
|
||||||
CONFIG_ROCKCHIP_RK3368=y
|
CONFIG_ROCKCHIP_RK3368=y
|
||||||
CONFIG_TARGET_SHEEP=y
|
CONFIG_TARGET_SHEEP=y
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x01000000
|
CONFIG_SYS_TEXT_BASE=0x01000000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_ROCKCHIP_RK3288=y
|
CONFIG_ROCKCHIP_RK3288=y
|
||||||
CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl.lds"
|
|
||||||
CONFIG_TARGET_TINKER_RK3288=y
|
CONFIG_TARGET_TINKER_RK3288=y
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
CONFIG_SPL_SIZE_LIMIT=307200
|
CONFIG_SPL_SIZE_LIMIT=307200
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user