mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 06:59:41 +03:00
Compare commits
225 Commits
v2022.01-r
...
v2022.01
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d637294e26 | ||
|
|
a0f6959293 | ||
|
|
675c3ccc5c | ||
|
|
6ef836acce | ||
|
|
b05cebb5f2 | ||
|
|
1b2fb345d7 | ||
|
|
8f758683a8 | ||
|
|
7ad0cee754 | ||
|
|
6a69afe796 | ||
|
|
353aa7b06f | ||
|
|
c280ec210f | ||
|
|
6869bab6a1 | ||
|
|
11907cb5cf | ||
|
|
47de135994 | ||
|
|
c225601c60 | ||
|
|
83514ca08b | ||
|
|
7d926c9544 | ||
|
|
f17fb6cae4 | ||
|
|
86b7f2069c | ||
|
|
f08c3fee57 | ||
|
|
7cf5597b84 | ||
|
|
e9c63ab0e3 | ||
|
|
2dc3ac5772 | ||
|
|
01bc128a11 | ||
|
|
70e59a0d17 | ||
|
|
ea6ad1a42a | ||
|
|
ddc890bc7e | ||
|
|
f7f70ea216 | ||
|
|
c1ecd03d90 | ||
|
|
83ba8c539d | ||
|
|
2baacc75a5 | ||
|
|
80efad1342 | ||
|
|
a89c8f2111 | ||
|
|
a14af7216a | ||
|
|
75f080df46 | ||
|
|
392aa4ba96 | ||
|
|
b7404a9d38 | ||
|
|
87c34fe216 | ||
|
|
79ac6917d0 | ||
|
|
2bbe1ba0c7 | ||
|
|
4be9947edf | ||
|
|
f77549fe74 | ||
|
|
dae0829c6e | ||
|
|
c00c147dae | ||
|
|
9203c73895 | ||
|
|
b3f84a939f | ||
|
|
880f3ee4f5 | ||
|
|
d241d2c879 | ||
|
|
f36b3f8f17 | ||
|
|
c9964879ab | ||
|
|
578b479aff | ||
|
|
3a8b919932 | ||
|
|
88c4cbedfb | ||
|
|
2b18d95d91 | ||
|
|
cc65faf2a3 | ||
|
|
376b08d0f1 | ||
|
|
8935e5299d | ||
|
|
0faa7da54a | ||
|
|
d7a4461be0 | ||
|
|
7af3a46ce9 | ||
|
|
eaee44aaaa | ||
|
|
2206356a3e | ||
|
|
0ade02526b | ||
|
|
19a4d31c12 | ||
|
|
43419b936c | ||
|
|
780fc003ed | ||
|
|
f8b36089af | ||
|
|
ef7f43084f | ||
|
|
6b97f2d0ed | ||
|
|
daec31e5cc | ||
|
|
b774be9de5 | ||
|
|
fe3dde3e7b | ||
|
|
734ad93376 | ||
|
|
621158d106 | ||
|
|
08cf1a5e69 | ||
|
|
1cd75ceae5 | ||
|
|
ccea46c05b | ||
|
|
d3213c26b5 | ||
|
|
3cfc042d43 | ||
|
|
19b241c61f | ||
|
|
5d21dfec4a | ||
|
|
35f3ef93d6 | ||
|
|
c03942ddc9 | ||
|
|
4720b83d2c | ||
|
|
3b4ee40f20 | ||
|
|
2f27754eb7 | ||
|
|
d7b1d8259e | ||
|
|
5b20efeafe | ||
|
|
560e1e0050 | ||
|
|
572c446e98 | ||
|
|
9e578f6340 | ||
|
|
e09ca91cfa | ||
|
|
5a59f634e9 | ||
|
|
fed5beca18 | ||
|
|
a48e4287d6 | ||
|
|
e967c84a6d | ||
|
|
cfbd2bc695 | ||
|
|
5c592b636a | ||
|
|
98fe251a24 | ||
|
|
7c870f8d70 | ||
|
|
e1d7b0b9c5 | ||
|
|
44beea2845 | ||
|
|
e8e66801bd | ||
|
|
026c010c4a | ||
|
|
d5f1beb058 | ||
|
|
dcbf1145e2 | ||
|
|
61b3a0101a | ||
|
|
1eaf61c84d | ||
|
|
182754f43a | ||
|
|
a1c01b17c5 | ||
|
|
d8063dc373 | ||
|
|
42b7f4212a | ||
|
|
2abd8d1c99 | ||
|
|
f9b51dcf29 | ||
|
|
9e32bf9362 | ||
|
|
54bec17f6b | ||
|
|
446266b024 | ||
|
|
1530ad5bec | ||
|
|
fbd9207e7f | ||
|
|
e32dad292a | ||
|
|
558002a0f2 | ||
|
|
5b9ee01685 | ||
|
|
c0ffc12a70 | ||
|
|
6a863894ad | ||
|
|
ffb78a7c71 | ||
|
|
5c007d24b9 | ||
|
|
06142d6874 | ||
|
|
0dc0d1e094 | ||
|
|
0d914ad10d | ||
|
|
666da85dc9 | ||
|
|
3fbd17aadf | ||
|
|
8777033722 | ||
|
|
b3425a3f4e | ||
|
|
846d1d9c11 | ||
|
|
874e544e89 | ||
|
|
5e7e6619c8 | ||
|
|
3ede1a62a6 | ||
|
|
4a14bfffd4 | ||
|
|
ca819284d3 | ||
|
|
ce29c52891 | ||
|
|
c3de051c41 | ||
|
|
c0d9bb0b4a | ||
|
|
2957a1e224 | ||
|
|
34287efdaf | ||
|
|
3b7bf8a9e4 | ||
|
|
617270b97b | ||
|
|
9d2465347c | ||
|
|
5db5815e99 | ||
|
|
10c3befc68 | ||
|
|
ade37460a9 | ||
|
|
2f7c7aeb5c | ||
|
|
270eeb6871 | ||
|
|
7d3bebb206 | ||
|
|
4469d3b4db | ||
|
|
693650b15d | ||
|
|
2b5e710859 | ||
|
|
6e6d37f7f9 | ||
|
|
9aa1a14d13 | ||
|
|
67e9b64701 | ||
|
|
09e409810a | ||
|
|
9abd2ca96e | ||
|
|
9d1564dabc | ||
|
|
1ae35c72b8 | ||
|
|
7a001e0f3d | ||
|
|
cd9a26bfe5 | ||
|
|
3f73e79de8 | ||
|
|
2ad8d0cb95 | ||
|
|
d6b55a420c | ||
|
|
5ba0397049 | ||
|
|
dc52578d7b | ||
|
|
22ad3f5f7b | ||
|
|
43eaf5b13f | ||
|
|
5d49b32f0a | ||
|
|
3961bd9b55 | ||
|
|
e032cb2ac9 | ||
|
|
45c16fd0c2 | ||
|
|
3f80064fd5 | ||
|
|
dfec0e9d9c | ||
|
|
0c9e8bf2bb | ||
|
|
ac7606af7d | ||
|
|
7db07aa24f | ||
|
|
951a8c4871 | ||
|
|
4ad4c2daeb | ||
|
|
5a515132d9 | ||
|
|
454a97485a | ||
|
|
b5f2c68d5c | ||
|
|
28f70cfcfd | ||
|
|
bdc68df4dd | ||
|
|
886d36efdb | ||
|
|
8391a0f3d9 | ||
|
|
b1f3f982fa | ||
|
|
bd994c007a | ||
|
|
47d7d03622 | ||
|
|
50f7b2effd | ||
|
|
0171d056ec | ||
|
|
4a08dba019 | ||
|
|
fb30d99df8 | ||
|
|
fdb4a5fcd7 | ||
|
|
02f50d8ebb | ||
|
|
e845dd7c8b | ||
|
|
ebb6d74df3 | ||
|
|
3144ba23bf | ||
|
|
2ffa0e87df | ||
|
|
4b32531be2 | ||
|
|
b5f3850727 | ||
|
|
38de2bad64 | ||
|
|
4d492b0c0f | ||
|
|
5130102fc4 | ||
|
|
a5e305256b | ||
|
|
679530c3c6 | ||
|
|
9d3d981661 | ||
|
|
11c0255cd8 | ||
|
|
412ab13328 | ||
|
|
e8b43c6409 | ||
|
|
4f9d25537c | ||
|
|
60705883d2 | ||
|
|
f510927d55 | ||
|
|
53f5d1688e | ||
|
|
b05cc389ba | ||
|
|
eafdcda4a8 | ||
|
|
599becb0ae | ||
|
|
d2d14383ba | ||
|
|
181419446a | ||
|
|
398a74ae33 | ||
|
|
a3e3d4698e |
2
.mailmap
2
.mailmap
@@ -20,6 +20,8 @@ Allen Martin <amartin@nvidia.com>
|
||||
Andreas Bießmann <andreas.devel@googlemail.com>
|
||||
Andreas Bießmann <andreas@biessmann.org>
|
||||
Aneesh V <aneesh@ti.com>
|
||||
Anup Patel <anup@brainfault.org> <anup.patel@wdc.com>
|
||||
Atish Patra <atishp@atishpatra.org> <atish.patra@wdc.com>
|
||||
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
|
||||
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@free-electrons.com>
|
||||
Dirk Behme <dirk.behme@googlemail.com>
|
||||
|
||||
16
MAINTAINERS
16
MAINTAINERS
@@ -667,6 +667,7 @@ F: drivers/mtd/jedec_flash.c
|
||||
|
||||
CLOCK
|
||||
M: Lukasz Majewski <lukma@denx.de>
|
||||
M: Sean Anderson <seanga2@gmail.com>
|
||||
S: Maintained
|
||||
T: git https://source.denx.de/u-boot/custodians/u-boot-clk.git
|
||||
F: drivers/clk/
|
||||
@@ -712,8 +713,11 @@ W: https://u-boot.readthedocs.io/en/latest/develop/uefi/u-boot_on_efi.html
|
||||
F: board/efi/efi-x86_app
|
||||
F: configs/efi-x86_app*
|
||||
F: doc/develop/uefi/u-boot_on_efi.rst
|
||||
F: drivers/block/efi-media-uclass.c
|
||||
F: drivers/block/sb_efi_media.c
|
||||
F: lib/efi/efi_app.c
|
||||
F: scripts/build-efi.sh
|
||||
F: test/dm/efi_media.c
|
||||
|
||||
EFI PAYLOAD
|
||||
M: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||
@@ -760,6 +764,18 @@ F: test/env/
|
||||
F: tools/env*
|
||||
F: tools/mkenvimage.c
|
||||
|
||||
FASTBOOT
|
||||
S: Orphaned
|
||||
F: cmd/fastboot.c
|
||||
F: doc/android/fastboot*.rst
|
||||
F: include/fastboot.h
|
||||
F: include/fastboot-internal.h
|
||||
F: include/net/fastboot.h
|
||||
F: drivers/fastboot/
|
||||
F: drivers/usb/gadget/f_fastboot.c
|
||||
F: net/fastboot.c
|
||||
F: test/dm/fastboot.c
|
||||
|
||||
FPGA
|
||||
M: Michal Simek <michal.simek@xilinx.com>
|
||||
S: Maintained
|
||||
|
||||
5
Makefile
5
Makefile
@@ -3,7 +3,7 @@
|
||||
VERSION = 2022
|
||||
PATCHLEVEL = 01
|
||||
SUBLEVEL =
|
||||
EXTRAVERSION = -rc2
|
||||
EXTRAVERSION =
|
||||
NAME =
|
||||
|
||||
# *DOCUMENTATION*
|
||||
@@ -1246,7 +1246,7 @@ binary_size_check: u-boot-nodtb.bin FORCE
|
||||
echo "u-boot.map shows a binary size of $$map_size" >&2 ; \
|
||||
echo " but u-boot-nodtb.bin shows $$file_size" >&2 ; \
|
||||
exit 1; \
|
||||
fi \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
ifeq ($(CONFIG_INIT_SP_RELATIVE)$(CONFIG_OF_SEPARATE),yy)
|
||||
@@ -1315,6 +1315,7 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
|
||||
-a tpl-bss-pad=$(if $(CONFIG_TPL_SEPARATE_BSS),,1) \
|
||||
-a spl-dtb=$(CONFIG_SPL_OF_REAL) \
|
||||
-a tpl-dtb=$(CONFIG_TPL_OF_REAL) \
|
||||
$(if $(BINMAN_FAKE_EXT_BLOBS),--fake-ext-blobs) \
|
||||
$(BINMAN_$(@F))
|
||||
|
||||
OBJCOPYFLAGS_u-boot.ldr.hex := -I binary -O ihex
|
||||
|
||||
@@ -78,8 +78,9 @@ dtb-$(CONFIG_MACH_S700) += \
|
||||
dtb-$(CONFIG_ROCKCHIP_PX30) += \
|
||||
px30-evb.dtb \
|
||||
px30-firefly.dtb \
|
||||
px30-px30-core-ctouch2.dtb \
|
||||
px30-px30-core-edimm2.2.dtb \
|
||||
px30-engicam-px30-core-ctouch2.dtb \
|
||||
px30-engicam-px30-core-ctouch2-of10.dtb \
|
||||
px30-engicam-px30-core-edimm2.2.dtb \
|
||||
rk3326-odroid-go2.dtb
|
||||
|
||||
dtb-$(CONFIG_ROCKCHIP_RK3036) += \
|
||||
@@ -319,6 +320,7 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \
|
||||
avnet-ultra96-rev1.dtb \
|
||||
avnet-ultrazedev-cc-v1.0-ultrazedev-som-v1.0.dtb \
|
||||
zynqmp-a2197-revA.dtb \
|
||||
zynqmp-dlc21-revA.dtb \
|
||||
zynqmp-e-a2197-00-revA.dtb \
|
||||
zynqmp-g-a2197-00-revA.dtb \
|
||||
zynqmp-m-a2197-01-revA.dtb \
|
||||
|
||||
@@ -197,6 +197,14 @@
|
||||
compatible = "audio-graph-card";
|
||||
label = "rcar-sound";
|
||||
dais = <&rsnd_port0>, <&rsnd_port1>;
|
||||
widgets = "Microphone", "Mic Jack",
|
||||
"Line", "Line In Jack",
|
||||
"Headphone", "Headphone Jack";
|
||||
mic-det-gpio = <&gpio0 2 GPIO_ACTIVE_LOW>;
|
||||
routing = "Headphone Jack", "HPOUTL",
|
||||
"Headphone Jack", "HPOUTR",
|
||||
"IN3R", "MICBIAS",
|
||||
"Mic Jack", "IN3R";
|
||||
};
|
||||
|
||||
vccq_sdhi0: regulator-vccq-sdhi0 {
|
||||
@@ -271,12 +279,12 @@
|
||||
&ehci0 {
|
||||
dr_mode = "otg";
|
||||
status = "okay";
|
||||
clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&versaclock5 3>;
|
||||
clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&usb2_clksel>, <&versaclock5 3>;
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
|
||||
clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&usb2_clksel>, <&versaclock5 3>;
|
||||
};
|
||||
|
||||
&hdmi0 {
|
||||
@@ -615,7 +623,7 @@
|
||||
};
|
||||
|
||||
&rcar_sound {
|
||||
pinctrl-0 = <&sound_pins &sound_clk_pins>;
|
||||
pinctrl-0 = <&sound_pins>, <&sound_clk_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
/* Single DAI */
|
||||
@@ -639,7 +647,7 @@
|
||||
bitclock-master = <&rsnd_endpoint0>;
|
||||
frame-master = <&rsnd_endpoint0>;
|
||||
|
||||
playback = <&ssi1 &dvc1 &src1>;
|
||||
playback = <&ssi1>, <&dvc1>, <&src1>;
|
||||
capture = <&ssi0>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -7,19 +7,10 @@
|
||||
#include <dt-bindings/clk/versaclock.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
spi0 = &rpc;
|
||||
};
|
||||
|
||||
memory@48000000 {
|
||||
device_type = "memory";
|
||||
/* first 128MB is reserved for secure area. */
|
||||
reg = <0x0 0x48000000 0x0 0xc000000>;
|
||||
};
|
||||
|
||||
memory@57000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x57000000 0x0 0x29000000>;
|
||||
reg = <0x0 0x48000000 0x0 0x78000000>;
|
||||
};
|
||||
|
||||
osc_32k: osc_32k {
|
||||
@@ -59,12 +50,17 @@
|
||||
&avb {
|
||||
pinctrl-0 = <&avb_pins>;
|
||||
pinctrl-names = "default";
|
||||
phy-mode = "rgmii-rxid";
|
||||
phy-handle = <&phy0>;
|
||||
rx-internal-delay-ps = <1800>;
|
||||
tx-internal-delay-ps = <2000>;
|
||||
clocks = <&cpg CPG_MOD 812>, <&versaclock5 4>;
|
||||
clock-names = "fck", "refclk";
|
||||
status = "okay";
|
||||
|
||||
phy0: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-id004d.d074",
|
||||
"ethernet-phy-ieee802.3-c22";
|
||||
reg = <0>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
||||
@@ -153,7 +149,7 @@
|
||||
};
|
||||
|
||||
eeprom@50 {
|
||||
compatible = "microchip,at24c64", "atmel,24c64";
|
||||
compatible = "microchip,24c64", "atmel,24c64";
|
||||
pagesize = <32>;
|
||||
read-only; /* Manufacturing EEPROM programmed at factory */
|
||||
reg = <0x50>;
|
||||
@@ -279,25 +275,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&rpc {
|
||||
compatible = "renesas,rcar-gen3-rpc";
|
||||
num-cs = <1>;
|
||||
spi-max-frequency = <40000000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
flash0: spi-flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0>;
|
||||
compatible = "spi-flash", "jedec,spi-nor";
|
||||
spi-max-frequency = <40000000>;
|
||||
spi-tx-bus-width = <1>;
|
||||
spi-rx-bus-width = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&scif_clk {
|
||||
clock-frequency = <14745600>;
|
||||
};
|
||||
@@ -340,17 +317,17 @@
|
||||
vqmmc-supply = <®_1p8v>;
|
||||
bus-width = <8>;
|
||||
mmc-hs200-1_8v;
|
||||
no-sd;
|
||||
no-sdio;
|
||||
non-removable;
|
||||
fixed-emmc-driver-type = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2_clksel {
|
||||
status = "okay";
|
||||
clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
|
||||
<&versaclock5 3>, <&usb3s0_clk>;
|
||||
clock-names = "ehci_ohci", "hs-usb-if",
|
||||
"usb_extal", "usb_xtal";
|
||||
<&versaclock5 3>, <&usb3s0_clk>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3s0_clk {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*
|
||||
* Author: Fabio Estevam <fabio.estevam@freescale.com>
|
||||
*/
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
/ {
|
||||
aliases {
|
||||
backlight = &backlight;
|
||||
@@ -226,6 +226,7 @@
|
||||
MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
|
||||
MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
|
||||
MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
|
||||
MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
@@ -304,7 +305,7 @@
|
||||
&usdhc3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc3>;
|
||||
non-removable;
|
||||
cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
mmc0 = &usdhc2;
|
||||
};
|
||||
};
|
||||
@@ -3,74 +3,50 @@
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
#include "imx8mm-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
|
||||
wdt-reboot {
|
||||
compatible = "wdt-reboot";
|
||||
wdt = <&wdog1>;
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
firmware {
|
||||
optee {
|
||||
compatible = "linaro,optee-tz";
|
||||
method = "smc";
|
||||
};
|
||||
};
|
||||
|
||||
wdt-reboot {
|
||||
compatible = "wdt-reboot";
|
||||
u-boot,dm-spl;
|
||||
wdt = <&wdog1>;
|
||||
};
|
||||
};
|
||||
|
||||
&{/soc@0} {
|
||||
u-boot,dm-pre-reloc;
|
||||
&{/soc@0/bus@30800000/i2c@30a30000/pmic@4b} {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&clk {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
/delete-property/ assigned-clocks;
|
||||
/delete-property/ assigned-clock-parents;
|
||||
/delete-property/ assigned-clock-rates;
|
||||
};
|
||||
|
||||
&osc_24m {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&aips1 {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&aips2 {
|
||||
&{/soc@0/bus@30800000/i2c@30a30000/pmic@4b/regulators} {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&aips3 {
|
||||
u-boot,dm-spl;
|
||||
&binman_fip {
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
description = "Trusted Firmware FIP";
|
||||
load = <0x40310000>;
|
||||
type = "firmware";
|
||||
|
||||
fip_blob {
|
||||
filename = "fip.bin";
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
u-boot,dm-spl;
|
||||
&binman_configuration {
|
||||
loadables = "atf", "fip";
|
||||
};
|
||||
|
||||
&pinctrl_uart3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2_gpio {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc3 {
|
||||
u-boot,dm-spl;
|
||||
&fec1 {
|
||||
phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
@@ -93,6 +69,38 @@
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_i2c2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_pmic {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_uart3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2_gpio {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
@@ -109,147 +117,6 @@
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&{/soc@0/bus@30800000/i2c@30a30000/pmic@4b} {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&{/soc@0/bus@30800000/i2c@30a30000/pmic@4b/regulators} {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_i2c2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_pmic {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&fec1 {
|
||||
phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&wdog1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
align-size = <4>;
|
||||
align = <4>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
};
|
||||
|
||||
blob_1: blob-ext@1 {
|
||||
filename = "lpddr4_pmu_train_1d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_2: blob-ext@2 {
|
||||
filename = "lpddr4_pmu_train_1d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
|
||||
blob_3: blob-ext@3 {
|
||||
filename = "lpddr4_pmu_train_2d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_4: blob-ext@4 {
|
||||
filename = "lpddr4_pmu_train_2d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
};
|
||||
|
||||
flash {
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
itb {
|
||||
filename = "u-boot.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration to load ATF before U-Boot";
|
||||
#address-cells = <1>;
|
||||
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <CONFIG_SYS_TEXT_BASE>;
|
||||
|
||||
uboot_blob: blob-ext {
|
||||
filename = "u-boot-nodtb.bin";
|
||||
};
|
||||
};
|
||||
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x920000>;
|
||||
entry = <0x920000>;
|
||||
|
||||
atf_blob: blob-ext {
|
||||
filename = "bl2.bin";
|
||||
};
|
||||
};
|
||||
|
||||
fip {
|
||||
description = "Trusted Firmware FIP";
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x40310000>;
|
||||
|
||||
fip_blob: blob-ext{
|
||||
filename = "fip.bin";
|
||||
};
|
||||
};
|
||||
|
||||
fdt {
|
||||
description = "NAME";
|
||||
type = "flat_dt";
|
||||
compression = "none";
|
||||
|
||||
uboot_fdt_blob: blob-ext {
|
||||
filename = "u-boot.dtb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf";
|
||||
|
||||
conf {
|
||||
description = "NAME";
|
||||
firmware = "uboot";
|
||||
loadables = "atf", "fip";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -3,74 +3,33 @@
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
#include "imx8mm-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
|
||||
wdt-reboot {
|
||||
compatible = "wdt-reboot";
|
||||
wdt = <&wdog1>;
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
firmware {
|
||||
optee {
|
||||
compatible = "linaro,optee-tz";
|
||||
method = "smc";
|
||||
};
|
||||
};
|
||||
|
||||
wdt-reboot {
|
||||
compatible = "wdt-reboot";
|
||||
u-boot,dm-spl;
|
||||
wdt = <&wdog1>;
|
||||
};
|
||||
};
|
||||
|
||||
&{/soc@0} {
|
||||
u-boot,dm-pre-reloc;
|
||||
&{/soc@0/bus@30800000/i2c@30a30000/pmic@4b} {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&clk {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
/delete-property/ assigned-clocks;
|
||||
/delete-property/ assigned-clock-parents;
|
||||
/delete-property/ assigned-clock-rates;
|
||||
};
|
||||
|
||||
&osc_24m {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&aips1 {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&aips2 {
|
||||
&{/soc@0/bus@30800000/i2c@30a30000/pmic@4b/regulators} {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&aips3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_uart3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2_gpio {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc3 {
|
||||
u-boot,dm-spl;
|
||||
&fec1 {
|
||||
phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
@@ -93,6 +52,38 @@
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_i2c2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_pmic {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_uart3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2_gpio {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
@@ -109,135 +100,6 @@
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&{/soc@0/bus@30800000/i2c@30a30000/pmic@4b} {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&{/soc@0/bus@30800000/i2c@30a30000/pmic@4b/regulators} {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_i2c2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_pmic {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&fec1 {
|
||||
phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&wdog1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
align-size = <4>;
|
||||
align = <4>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
};
|
||||
|
||||
blob_1: blob-ext@1 {
|
||||
filename = "lpddr4_pmu_train_1d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_2: blob-ext@2 {
|
||||
filename = "lpddr4_pmu_train_1d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
|
||||
blob_3: blob-ext@3 {
|
||||
filename = "lpddr4_pmu_train_2d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_4: blob-ext@4 {
|
||||
filename = "lpddr4_pmu_train_2d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
};
|
||||
|
||||
flash {
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
itb {
|
||||
filename = "u-boot.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration to load ATF before U-Boot";
|
||||
#address-cells = <1>;
|
||||
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <CONFIG_SYS_TEXT_BASE>;
|
||||
|
||||
uboot_blob: blob-ext {
|
||||
filename = "u-boot-nodtb.bin";
|
||||
};
|
||||
};
|
||||
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x920000>;
|
||||
entry = <0x920000>;
|
||||
|
||||
atf_blob: blob-ext {
|
||||
filename = "bl31.bin";
|
||||
};
|
||||
};
|
||||
|
||||
fdt {
|
||||
description = "NAME";
|
||||
type = "flat_dt";
|
||||
compression = "none";
|
||||
|
||||
uboot_fdt_blob: blob-ext {
|
||||
filename = "u-boot.dtb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf";
|
||||
|
||||
conf {
|
||||
description = "NAME";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
#include "imx8mm-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
|
||||
wdt-reboot {
|
||||
compatible = "wdt-reboot";
|
||||
wdt = <&wdog1>;
|
||||
@@ -116,122 +112,3 @@
|
||||
&wdog1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
align-size = <4>;
|
||||
align = <4>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
};
|
||||
|
||||
blob_1: blob-ext@1 {
|
||||
filename = "lpddr4_pmu_train_1d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_2: blob-ext@2 {
|
||||
filename = "lpddr4_pmu_train_1d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
|
||||
blob_3: blob-ext@3 {
|
||||
filename = "lpddr4_pmu_train_2d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_4: blob-ext@4 {
|
||||
filename = "lpddr4_pmu_train_2d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
spl {
|
||||
filename = "spl.bin";
|
||||
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
itb {
|
||||
filename = "u-boot.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration to load ATF before U-Boot";
|
||||
#address-cells = <1>;
|
||||
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <CONFIG_SYS_TEXT_BASE>;
|
||||
|
||||
uboot_blob: blob-ext {
|
||||
filename = "u-boot-nodtb.bin";
|
||||
};
|
||||
};
|
||||
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x920000>;
|
||||
entry = <0x920000>;
|
||||
|
||||
atf_blob: blob-ext {
|
||||
filename = "bl31.bin";
|
||||
};
|
||||
};
|
||||
|
||||
fdt {
|
||||
description = "NAME";
|
||||
type = "flat_dt";
|
||||
compression = "none";
|
||||
|
||||
uboot_fdt_blob: blob-ext {
|
||||
filename = "u-boot.dtb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf";
|
||||
|
||||
conf {
|
||||
description = "NAME";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imx-boot {
|
||||
filename = "flash.bin";
|
||||
pad-byte = <0x00>;
|
||||
|
||||
spl: blob-ext@1 {
|
||||
offset = <0x0>;
|
||||
filename = "spl.bin";
|
||||
};
|
||||
|
||||
uboot: blob-ext@2 {
|
||||
offset = <0x57c00>;
|
||||
filename = "u-boot.itb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -11,10 +11,6 @@
|
||||
usb1 = &usbotg2;
|
||||
};
|
||||
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
|
||||
wdt-reboot {
|
||||
compatible = "wdt-reboot";
|
||||
wdt = <&wdog1>;
|
||||
@@ -130,145 +126,3 @@
|
||||
&wdog1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
align-size = <4>;
|
||||
align = <4>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
};
|
||||
|
||||
blob_1: blob-ext@1 {
|
||||
filename = "lpddr4_pmu_train_1d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_2: blob-ext@2 {
|
||||
filename = "lpddr4_pmu_train_1d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
|
||||
blob_3: blob-ext@3 {
|
||||
filename = "lpddr4_pmu_train_2d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_4: blob-ext@4 {
|
||||
filename = "lpddr4_pmu_train_2d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
};
|
||||
|
||||
spl {
|
||||
filename = "spl.bin";
|
||||
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
itb {
|
||||
filename = "u-boot.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration to load ATF before U-Boot";
|
||||
#address-cells = <1>;
|
||||
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <CONFIG_SYS_TEXT_BASE>;
|
||||
|
||||
uboot_blob: blob-ext {
|
||||
filename = "u-boot-nodtb.bin";
|
||||
};
|
||||
};
|
||||
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x920000>;
|
||||
entry = <0x920000>;
|
||||
|
||||
atf_blob: blob-ext {
|
||||
filename = "bl31.bin";
|
||||
};
|
||||
};
|
||||
|
||||
fdt {
|
||||
description = "NAME";
|
||||
type = "flat_dt";
|
||||
compression = "none";
|
||||
|
||||
uboot_fdt_blob: blob-ext {
|
||||
filename = "u-boot.dtb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf";
|
||||
|
||||
conf {
|
||||
description = "NAME";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imx-boot {
|
||||
filename = "flash.bin";
|
||||
pad-byte = <0x00>;
|
||||
|
||||
spl: blob-ext@1 {
|
||||
offset = <0x0>;
|
||||
filename = "spl.bin";
|
||||
};
|
||||
|
||||
uboot: blob-ext@2 {
|
||||
offset = <0x57c00>;
|
||||
filename = "u-boot.itb";
|
||||
};
|
||||
};
|
||||
|
||||
u-boot-update {
|
||||
filename = "firmware-update.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration for firmware update file";
|
||||
|
||||
images {
|
||||
flash-bin {
|
||||
description = "U-Boot flash image";
|
||||
type = "firmware";
|
||||
os = "u-boot";
|
||||
arch = "arm";
|
||||
compress = "none";
|
||||
load = <0>; /* unused */
|
||||
|
||||
blob {
|
||||
filename = "flash.bin";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -3,14 +3,20 @@
|
||||
* Copyright (C) 2020 Jagan Teki <jagan@amarulasolutions.com>
|
||||
*/
|
||||
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
};
|
||||
|
||||
&{/soc@0} {
|
||||
u-boot,dm-pre-reloc;
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&aips1 {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&aips2 {
|
||||
@@ -21,9 +27,146 @@
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
align = <4>;
|
||||
align-size = <4>;
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
filename = "u-boot-spl.bin";
|
||||
};
|
||||
|
||||
1d-imem {
|
||||
filename = "lpddr4_pmu_train_1d_imem.bin";
|
||||
size = <0x8000>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
|
||||
1d_dmem {
|
||||
filename = "lpddr4_pmu_train_1d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
|
||||
2d_imem {
|
||||
filename = "lpddr4_pmu_train_2d_imem.bin";
|
||||
size = <0x8000>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
|
||||
2d_dmem {
|
||||
filename = "lpddr4_pmu_train_2d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
|
||||
spl {
|
||||
filename = "spl.bin";
|
||||
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
itb {
|
||||
filename = "u-boot.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration to load ATF before U-Boot";
|
||||
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
|
||||
fit,fdt-list = "of-list";
|
||||
#address-cells = <1>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
description = "U-Boot (64-bit)";
|
||||
load = <CONFIG_SYS_TEXT_BASE>;
|
||||
type = "standalone";
|
||||
|
||||
uboot_blob {
|
||||
filename = "u-boot-nodtb.bin";
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
|
||||
atf {
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
description = "ARM Trusted Firmware";
|
||||
entry = <0x920000>;
|
||||
load = <0x920000>;
|
||||
type = "firmware";
|
||||
|
||||
atf_blob {
|
||||
filename = "bl31.bin";
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
|
||||
binman_fip: fip {
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
description = "Trusted Firmware FIP";
|
||||
load = <0x40310000>;
|
||||
type = "firmware";
|
||||
};
|
||||
|
||||
@fdt-SEQ {
|
||||
compression = "none";
|
||||
description = "NAME";
|
||||
type = "flat_dt";
|
||||
|
||||
uboot_fdt_blob {
|
||||
filename = "u-boot.dtb";
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "@config-DEFAULT-SEQ";
|
||||
|
||||
binman_configuration: @config-SEQ {
|
||||
description = "NAME";
|
||||
fdt = "fdt-SEQ";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imx-boot {
|
||||
filename = "flash.bin";
|
||||
pad-byte = <0x00>;
|
||||
|
||||
spl {
|
||||
filename = "spl.bin";
|
||||
offset = <0x0>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
|
||||
binman_uboot: uboot {
|
||||
filename = "u-boot.itb";
|
||||
offset = <0x57c00>;
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&clk {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
u-boot,dm-spl;
|
||||
/delete-property/ assigned-clocks;
|
||||
/delete-property/ assigned-clock-parents;
|
||||
/delete-property/ assigned-clock-rates;
|
||||
@@ -34,6 +177,6 @@
|
||||
};
|
||||
|
||||
&osc_24m {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
#include "imx8mm-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
|
||||
firmware {
|
||||
optee {
|
||||
compatible = "linaro,optee-tz";
|
||||
@@ -100,120 +96,6 @@
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
align-size = <4>;
|
||||
align = <4>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
};
|
||||
|
||||
blob_1: blob-ext@1 {
|
||||
filename = "lpddr4_pmu_train_1d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_2: blob-ext@2 {
|
||||
filename = "lpddr4_pmu_train_1d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
|
||||
blob_3: blob-ext@3 {
|
||||
filename = "lpddr4_pmu_train_2d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_4: blob-ext@4 {
|
||||
filename = "lpddr4_pmu_train_2d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
};
|
||||
|
||||
spl {
|
||||
filename = "spl.bin";
|
||||
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
itb {
|
||||
filename = "u-boot.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration to load ATF before U-Boot";
|
||||
#address-cells = <1>;
|
||||
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <CONFIG_SYS_TEXT_BASE>;
|
||||
|
||||
uboot_blob: blob-ext {
|
||||
filename = "u-boot-nodtb.bin";
|
||||
};
|
||||
};
|
||||
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x920000>;
|
||||
entry = <0x920000>;
|
||||
|
||||
atf_blob: blob-ext {
|
||||
filename = "bl31.bin";
|
||||
};
|
||||
};
|
||||
|
||||
fdt {
|
||||
description = "NAME";
|
||||
type = "flat_dt";
|
||||
compression = "none";
|
||||
|
||||
uboot_fdt_blob: blob-ext {
|
||||
filename = "u-boot.dtb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf";
|
||||
|
||||
conf {
|
||||
description = "NAME";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imx-boot {
|
||||
filename = "flash.bin";
|
||||
pad-byte = <0x00>;
|
||||
|
||||
spl: blob-ext@1 {
|
||||
offset = <0x0>;
|
||||
filename = "spl.bin";
|
||||
};
|
||||
|
||||
uboot: blob-ext@2 {
|
||||
offset = <0x5fc00>;
|
||||
filename = "u-boot.itb";
|
||||
};
|
||||
};
|
||||
&binman_uboot {
|
||||
offset = <0x5fc00>;
|
||||
};
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
*/
|
||||
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
|
||||
wdt-reboot {
|
||||
compatible = "wdt-reboot";
|
||||
wdt = <&wdog1>;
|
||||
@@ -40,6 +44,9 @@
|
||||
&clk {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
/delete-property/ assigned-clocks;
|
||||
/delete-property/ assigned-clock-parents;
|
||||
/delete-property/ assigned-clock-rates;
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
@@ -99,6 +106,10 @@
|
||||
u-boot,off-on-delay-us = <20000>;
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&usdhc1 {
|
||||
u-boot,dm-spl;
|
||||
sd-uhs-sdr104;
|
||||
@@ -120,3 +131,122 @@
|
||||
&wdog1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
align-size = <4>;
|
||||
align = <4>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
};
|
||||
|
||||
blob_1: blob-ext@1 {
|
||||
filename = "lpddr4_pmu_train_1d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_2: blob-ext@2 {
|
||||
filename = "lpddr4_pmu_train_1d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
|
||||
blob_3: blob-ext@3 {
|
||||
filename = "lpddr4_pmu_train_2d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_4: blob-ext@4 {
|
||||
filename = "lpddr4_pmu_train_2d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
spl {
|
||||
filename = "spl.bin";
|
||||
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x912000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
itb {
|
||||
filename = "u-boot.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration to load ATF before U-Boot";
|
||||
#address-cells = <1>;
|
||||
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <CONFIG_SYS_TEXT_BASE>;
|
||||
|
||||
uboot_blob: blob-ext {
|
||||
filename = "u-boot-nodtb.bin";
|
||||
};
|
||||
};
|
||||
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x960000>;
|
||||
entry = <0x960000>;
|
||||
|
||||
atf_blob: blob-ext {
|
||||
filename = "bl31.bin";
|
||||
};
|
||||
};
|
||||
|
||||
fdt {
|
||||
description = "NAME";
|
||||
type = "flat_dt";
|
||||
compression = "none";
|
||||
|
||||
uboot_fdt_blob: blob-ext {
|
||||
filename = "u-boot.dtb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf";
|
||||
|
||||
conf {
|
||||
description = "NAME";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imx-boot {
|
||||
filename = "flash.bin";
|
||||
pad-byte = <0x00>;
|
||||
|
||||
spl: blob-ext@1 {
|
||||
offset = <0x0>;
|
||||
filename = "spl.bin";
|
||||
};
|
||||
|
||||
uboot: blob-ext@2 {
|
||||
offset = <0x58000>;
|
||||
filename = "u-boot.itb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
|
||||
#include "imx8mq-u-boot.dtsi"
|
||||
|
||||
&usdhc1 {
|
||||
mmc-hs400-1_8v;
|
||||
};
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
|
||||
#include "imx8mq-u-boot.dtsi"
|
||||
|
||||
®_usdhc2_vmmc {
|
||||
u-boot,off-on-delay-us = <20000>;
|
||||
};
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx8mq.dtsi"
|
||||
#include "imx8mq-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TechNexion PICO-PI-8M";
|
||||
|
||||
139
arch/arm/dts/imx8mq-u-boot.dtsi
Normal file
139
arch/arm/dts/imx8mq-u-boot.dtsi
Normal file
@@ -0,0 +1,139 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright 2021 NXP
|
||||
*/
|
||||
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
align-size = <4>;
|
||||
align = <4>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
};
|
||||
|
||||
blob_1: blob-ext@1 {
|
||||
filename = "lpddr4_pmu_train_1d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_2: blob-ext@2 {
|
||||
filename = "lpddr4_pmu_train_1d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
|
||||
blob_3: blob-ext@3 {
|
||||
filename = "lpddr4_pmu_train_2d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_4: blob-ext@4 {
|
||||
filename = "lpddr4_pmu_train_2d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
};
|
||||
|
||||
signed_hdmi {
|
||||
filename = "signed_hdmi.bin";
|
||||
|
||||
blob_5: blob-ext@5 {
|
||||
filename = "signed_hdmi_imx8m.bin";
|
||||
};
|
||||
};
|
||||
|
||||
spl {
|
||||
filename = "spl.bin";
|
||||
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
itb {
|
||||
filename = "u-boot.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration to load ATF before U-Boot";
|
||||
#address-cells = <1>;
|
||||
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <CONFIG_SYS_TEXT_BASE>;
|
||||
|
||||
uboot_blob: blob-ext {
|
||||
filename = "u-boot-nodtb.bin";
|
||||
};
|
||||
};
|
||||
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x910000>;
|
||||
entry = <0x910000>;
|
||||
|
||||
atf_blob: blob-ext {
|
||||
filename = "bl31.bin";
|
||||
};
|
||||
};
|
||||
|
||||
fdt {
|
||||
description = "NAME";
|
||||
type = "flat_dt";
|
||||
compression = "none";
|
||||
|
||||
uboot_fdt_blob: blob-ext {
|
||||
filename = "u-boot.dtb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf";
|
||||
|
||||
conf {
|
||||
description = "NAME";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imx-boot {
|
||||
filename = "flash.bin";
|
||||
pad-byte = <0x00>;
|
||||
|
||||
spl: blob-ext@1 {
|
||||
offset = <0x0>;
|
||||
filename = "spl.bin";
|
||||
};
|
||||
|
||||
uboot: blob-ext@2 {
|
||||
offset = <0x57c00>;
|
||||
filename = "u-boot.itb";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -7,10 +7,6 @@
|
||||
#include "imx8mm-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
|
||||
wdt-reboot {
|
||||
compatible = "wdt-reboot";
|
||||
wdt = <&wdog1>;
|
||||
@@ -73,121 +69,3 @@
|
||||
&wdog1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&binman {
|
||||
u-boot-spl-ddr {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
pad-byte = <0xff>;
|
||||
align-size = <4>;
|
||||
align = <4>;
|
||||
|
||||
u-boot-spl {
|
||||
align-end = <4>;
|
||||
};
|
||||
|
||||
blob_1: blob-ext@1 {
|
||||
filename = "lpddr4_pmu_train_1d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_2: blob-ext@2 {
|
||||
filename = "lpddr4_pmu_train_1d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
|
||||
blob_3: blob-ext@3 {
|
||||
filename = "lpddr4_pmu_train_2d_imem.bin";
|
||||
size = <0x8000>;
|
||||
};
|
||||
|
||||
blob_4: blob-ext@4 {
|
||||
filename = "lpddr4_pmu_train_2d_dmem.bin";
|
||||
size = <0x4000>;
|
||||
};
|
||||
};
|
||||
|
||||
spl {
|
||||
filename = "spl.bin";
|
||||
|
||||
mkimage {
|
||||
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
|
||||
|
||||
blob {
|
||||
filename = "u-boot-spl-ddr.bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
itb {
|
||||
filename = "u-boot.itb";
|
||||
|
||||
fit {
|
||||
description = "Configuration to load ATF before U-Boot";
|
||||
#address-cells = <1>;
|
||||
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
|
||||
|
||||
images {
|
||||
uboot {
|
||||
description = "U-Boot (64-bit)";
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <CONFIG_SYS_TEXT_BASE>;
|
||||
|
||||
uboot_blob: blob-ext {
|
||||
filename = "u-boot-nodtb.bin";
|
||||
};
|
||||
};
|
||||
|
||||
atf {
|
||||
description = "ARM Trusted Firmware";
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
load = <0x920000>;
|
||||
entry = <0x920000>;
|
||||
|
||||
atf_blob: blob-ext {
|
||||
filename = "bl31.bin";
|
||||
};
|
||||
};
|
||||
|
||||
fdt {
|
||||
description = "NAME";
|
||||
type = "flat_dt";
|
||||
compression = "none";
|
||||
|
||||
uboot_fdt_blob: blob-ext {
|
||||
filename = "u-boot.dtb";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf";
|
||||
|
||||
conf {
|
||||
description = "NAME";
|
||||
firmware = "uboot";
|
||||
loadables = "atf";
|
||||
fdt = "fdt";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imx-boot {
|
||||
filename = "flash.bin";
|
||||
pad-byte = <0x00>;
|
||||
|
||||
spl: blob-ext@1 {
|
||||
filename = "spl.bin";
|
||||
offset = <0x0>;
|
||||
};
|
||||
|
||||
uboot: blob-ext@2 {
|
||||
filename = "u-boot.itb";
|
||||
offset = <0x57c00>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -6,6 +6,11 @@
|
||||
*/
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
mmc1 = &sdmmc;
|
||||
mmc2 = &sdio;
|
||||
};
|
||||
|
||||
vcc5v0_sys: vcc5v0-sys {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc5v0_sys"; /* +5V */
|
||||
@@ -14,6 +19,63 @@
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
};
|
||||
|
||||
sdio_pwrseq: sdio-pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
clocks = <&xin32k>;
|
||||
clock-names = "ext_clock";
|
||||
post-power-on-delay-ms = <80>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&wifi_enable_h>;
|
||||
};
|
||||
|
||||
vcc3v3_btreg: vcc3v3-btreg {
|
||||
compatible = "regulator-gpio";
|
||||
enable-active-high;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&bt_enable_h>;
|
||||
regulator-name = "btreg-gpio-supply";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
states = <3300000 0x0>;
|
||||
};
|
||||
|
||||
vcc3v3_rf_aux_mod: vcc3v3-rf-aux-mod {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3_rf_aux_mod";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc5v0_sys>;
|
||||
};
|
||||
|
||||
xin32k: xin32k {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "xin32k";
|
||||
};
|
||||
};
|
||||
|
||||
&sdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
bus-width = <4>;
|
||||
clock-frequency = <50000000>;
|
||||
cap-sdio-irq;
|
||||
cap-sd-highspeed;
|
||||
keep-power-in-suspend;
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
non-removable;
|
||||
sd-uhs-sdr104;
|
||||
status = "okay";
|
||||
|
||||
brcmf: wifi@1 {
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&gmac {
|
||||
@@ -25,6 +87,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
cap-sd-highspeed;
|
||||
card-detect-delay = <800>;
|
||||
@@ -33,7 +99,31 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&u2phy {
|
||||
status = "okay";
|
||||
|
||||
u2phy_host: host-port {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
u2phy_otg: otg-port {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
pinctrl-0 = <&uart2m1_xfer>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb20_otg {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_host0_ehci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_host0_ohci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -6,3 +6,25 @@
|
||||
*/
|
||||
|
||||
#include "px30-engicam-common.dtsi"
|
||||
|
||||
&pinctrl {
|
||||
bt {
|
||||
bt_enable_h: bt-enable-h {
|
||||
rockchip,pins = <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
sdio-pwrseq {
|
||||
wifi_enable_h: wifi-enable-h {
|
||||
rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&sdio_pwrseq {
|
||||
reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&vcc3v3_btreg {
|
||||
enable-gpio = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
@@ -5,3 +5,62 @@
|
||||
*/
|
||||
|
||||
#include "px30-engicam-common.dtsi"
|
||||
|
||||
/ {
|
||||
backlight: backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm0 0 25000 0>;
|
||||
};
|
||||
|
||||
panel {
|
||||
compatible = "yes-optoelectronics,ytc700tlag-05-201c";
|
||||
backlight = <&backlight>;
|
||||
data-mapping = "vesa-24";
|
||||
power-supply = <&vcc3v3_lcd>;
|
||||
|
||||
port {
|
||||
panel_in_lvds: endpoint {
|
||||
remote-endpoint = <&lvds_out_panel>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&display_subsystem {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dsi_dphy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* LVDS_B(secondary) */
|
||||
&lvds {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
lvds_out_panel: endpoint {
|
||||
remote-endpoint = <&panel_in_lvds>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&vopb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopb_mmu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopl {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopl_mmu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
77
arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts
Normal file
77
arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts
Normal file
@@ -0,0 +1,77 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
|
||||
* Copyright (c) 2020 Engicam srl
|
||||
* Copyright (c) 2020 Amarula Solutions(India)
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "px30.dtsi"
|
||||
#include "px30-engicam-ctouch2.dtsi"
|
||||
#include "px30-engicam-px30-core.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Engicam PX30.Core C.TOUCH 2.0 10.1\" Open Frame";
|
||||
compatible = "engicam,px30-core-ctouch2-of10", "engicam,px30-core",
|
||||
"rockchip,px30";
|
||||
|
||||
backlight: backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm0 0 25000 0>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
|
||||
panel {
|
||||
compatible = "ampire,am-1280800n3tzqw-t00h";
|
||||
backlight = <&backlight>;
|
||||
power-supply = <&vcc3v3_lcd>;
|
||||
data-mapping = "vesa-24";
|
||||
|
||||
port {
|
||||
panel_in_lvds: endpoint {
|
||||
remote-endpoint = <&lvds_out_panel>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&display_subsystem {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dsi_dphy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&lvds {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
lvds_out_panel: endpoint {
|
||||
remote-endpoint = <&panel_in_lvds>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&vopb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopb_mmu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopl {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopl_mmu {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -9,11 +9,11 @@
|
||||
/dts-v1/;
|
||||
#include "px30.dtsi"
|
||||
#include "px30-engicam-ctouch2.dtsi"
|
||||
#include "px30-px30-core.dtsi"
|
||||
#include "px30-engicam-px30-core.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Engicam PX30.Core C.TOUCH 2.0";
|
||||
compatible = "engicam,px30-core-ctouch2", "engicam,px30-px30-core",
|
||||
compatible = "engicam,px30-core-ctouch2", "engicam,px30-core",
|
||||
"rockchip,px30";
|
||||
|
||||
chosen {
|
||||
43
arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts
Normal file
43
arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts
Normal file
@@ -0,0 +1,43 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
|
||||
* Copyright (c) 2020 Engicam srl
|
||||
* Copyright (c) 2020 Amarula Solutions(India)
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "px30.dtsi"
|
||||
#include "px30-engicam-edimm2.2.dtsi"
|
||||
#include "px30-engicam-px30-core.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Engicam PX30.Core EDIMM2.2 Starter Kit";
|
||||
compatible = "engicam,px30-core-edimm2.2", "engicam,px30-core",
|
||||
"rockchip,px30";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
bt {
|
||||
bt_enable_h: bt-enable-h {
|
||||
rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
sdio-pwrseq {
|
||||
wifi_enable_h: wifi-enable-h {
|
||||
rockchip,pins = <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&sdio_pwrseq {
|
||||
reset-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&vcc3v3_btreg {
|
||||
enable-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
@@ -10,7 +10,11 @@
|
||||
#include <dt-bindings/pinctrl/rockchip.h>
|
||||
|
||||
/ {
|
||||
compatible = "engicam,px30-px30-core", "rockchip,px30";
|
||||
compatible = "engicam,px30-core", "rockchip,px30";
|
||||
|
||||
aliases {
|
||||
mmc0 = &emmc;
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
@@ -192,6 +196,11 @@
|
||||
};
|
||||
};
|
||||
|
||||
vcc3v3_lcd: SWITCH_REG1 {
|
||||
regulator-boot-on;
|
||||
regulator-name = "vcc3v3_lcd";
|
||||
};
|
||||
|
||||
vcc5v0_host: SWITCH_REG2 {
|
||||
regulator-name = "vcc5v0_host";
|
||||
regulator-always-on;
|
||||
@@ -13,8 +13,14 @@
|
||||
model = "Rockchip PX30 EVB";
|
||||
compatible = "rockchip,px30-evb", "rockchip,px30";
|
||||
|
||||
aliases {
|
||||
mmc0 = &sdmmc;
|
||||
mmc1 = &sdio;
|
||||
mmc2 = &emmc;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
stdout-path = "serial5:115200n8";
|
||||
};
|
||||
|
||||
adc-keys {
|
||||
@@ -108,6 +114,10 @@
|
||||
cpu-supply = <&vdd_arm>;
|
||||
};
|
||||
|
||||
&csi_dphy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&display_subsystem {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -126,22 +136,15 @@
|
||||
};
|
||||
|
||||
panel@0 {
|
||||
compatible = "sitronix,st7703";
|
||||
compatible = "xinpeng,xpp055c272";
|
||||
reg = <0>;
|
||||
backlight = <&backlight>;
|
||||
iovcc-supply = <&vcc_1v8>;
|
||||
vci-supply = <&vcc3v3_lcd>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
mipi_in_panel: endpoint {
|
||||
remote-endpoint = <&mipi_out_panel>;
|
||||
};
|
||||
port {
|
||||
mipi_in_panel: endpoint {
|
||||
remote-endpoint = <&mipi_out_panel>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -152,7 +155,6 @@
|
||||
};
|
||||
|
||||
&emmc {
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
mmc-hs200-1_8v;
|
||||
non-removable;
|
||||
@@ -171,6 +173,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpu {
|
||||
mali-supply = <&vdd_log>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
|
||||
@@ -388,6 +395,73 @@
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "okay";
|
||||
|
||||
sensor@d {
|
||||
compatible = "asahi-kasei,ak8963";
|
||||
reg = <0x0d>;
|
||||
gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
|
||||
vdd-supply = <&vcc3v0_pmu>;
|
||||
mount-matrix = "1", /* x0 */
|
||||
"0", /* y0 */
|
||||
"0", /* z0 */
|
||||
"0", /* x1 */
|
||||
"1", /* y1 */
|
||||
"0", /* z1 */
|
||||
"0", /* x2 */
|
||||
"0", /* y2 */
|
||||
"1"; /* z2 */
|
||||
};
|
||||
|
||||
touchscreen@14 {
|
||||
compatible = "goodix,gt1151";
|
||||
reg = <0x14>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
|
||||
irq-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
|
||||
reset-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
|
||||
VDDIO-supply = <&vcc3v3_lcd>;
|
||||
};
|
||||
|
||||
sensor@4c {
|
||||
compatible = "fsl,mma7660";
|
||||
reg = <0x4c>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <RK_PB7 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
status = "okay";
|
||||
|
||||
clock-frequency = <100000>;
|
||||
|
||||
/* These are relatively safe rise/fall times; TODO: measure */
|
||||
i2c-scl-falling-time-ns = <50>;
|
||||
i2c-scl-rising-time-ns = <300>;
|
||||
|
||||
ov5695: ov5695@36 {
|
||||
compatible = "ovti,ov5695";
|
||||
reg = <0x36>;
|
||||
avdd-supply = <&vcc2v8_dvp>;
|
||||
clocks = <&cru SCLK_CIF_OUT>;
|
||||
clock-names = "xvclk";
|
||||
dvdd-supply = <&vcc1v5_dvp>;
|
||||
dovdd-supply = <&vcc1v8_dvp>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&cif_clkout_m0>;
|
||||
reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
|
||||
|
||||
port {
|
||||
ucam_out: endpoint {
|
||||
remote-endpoint = <&mipi_in_ucam>;
|
||||
data-lanes = <1 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2s1_2ch {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -403,6 +477,24 @@
|
||||
vccio6-supply = <&vccio_flash>;
|
||||
};
|
||||
|
||||
&isp {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
port@0 {
|
||||
mipi_in_ucam: endpoint@0 {
|
||||
reg = <0>;
|
||||
data-lanes = <1 2>;
|
||||
remote-endpoint = <&ucam_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&isp_mmu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
headphone {
|
||||
hp_det: hp-det {
|
||||
@@ -464,7 +556,6 @@
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
bus-width = <4>;
|
||||
cap-mmc-highspeed;
|
||||
cap-sd-highspeed;
|
||||
card-detect-delay = <800>;
|
||||
@@ -474,10 +565,10 @@
|
||||
sd-uhs-sdr104;
|
||||
vmmc-supply = <&vcc_sd>;
|
||||
vqmmc-supply = <&vccio_sd>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdio {
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
keep-power-in-suspend;
|
||||
non-removable;
|
||||
@@ -486,13 +577,27 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_xfer &uart1_cts>;
|
||||
&tsadc {
|
||||
rockchip,hw-tshut-mode = <1>;
|
||||
rockchip,hw-tshut-polarity = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
&u2phy {
|
||||
status = "okay";
|
||||
|
||||
u2phy_host: host-port {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
u2phy_otg: otg-port {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_xfer &uart1_cts>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
|
||||
* Copyright (c) 2020 Engicam srl
|
||||
* Copyright (c) 2020 Amarula Solutions(India)
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "px30.dtsi"
|
||||
#include "px30-engicam-edimm2.2.dtsi"
|
||||
#include "px30-px30-core.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Engicam PX30.Core EDIMM2.2 Starter Kit";
|
||||
compatible = "engicam,px30-core-edimm2.2", "engicam,px30-px30-core",
|
||||
"rockchip,px30";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
};
|
||||
@@ -13,6 +13,12 @@
|
||||
u-boot,spl-boot-order = &emmc, &sdmmc;
|
||||
};
|
||||
|
||||
dmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
compatible = "rockchip,px30-dmc", "syscon";
|
||||
reg = <0x0 0xff2a0000 0x0 0x1000>;
|
||||
};
|
||||
|
||||
rng: rng@ff0b0000 {
|
||||
compatible = "rockchip,cryptov2-rng";
|
||||
reg = <0x0 0xff0b0000 0x0 0x4000>;
|
||||
@@ -20,10 +26,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&dmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
clock-frequency = <24000000>;
|
||||
u-boot,dm-pre-reloc;
|
||||
@@ -62,10 +64,14 @@
|
||||
|
||||
&cru {
|
||||
u-boot,dm-pre-reloc;
|
||||
/delete-property/ assigned-clocks;
|
||||
/delete-property/ assigned-clock-rates;
|
||||
};
|
||||
|
||||
&pmucru {
|
||||
u-boot,dm-pre-reloc;
|
||||
/delete-property/ assigned-clocks;
|
||||
/delete-property/ assigned-clock-rates;
|
||||
};
|
||||
|
||||
&saradc {
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
cpu0_opp_table: cpu0-opp-table {
|
||||
cpu0_opp_table: opp-table-0 {
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
};
|
||||
|
||||
arm-pmu {
|
||||
compatible = "arm,cortex-a53-pmu";
|
||||
compatible = "arm,cortex-a35-pmu";
|
||||
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
|
||||
@@ -151,11 +151,6 @@
|
||||
interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
|
||||
};
|
||||
|
||||
dmc: dmc {
|
||||
compatible = "rockchip,px30-dmc", "syscon";
|
||||
reg = <0x0 0xff2a0000 0x0 0x1000>;
|
||||
};
|
||||
|
||||
display_subsystem: display-subsystem {
|
||||
compatible = "rockchip,display-subsystem";
|
||||
ports = <&vopb_out>, <&vopl_out>;
|
||||
@@ -249,28 +244,31 @@
|
||||
#size-cells = <0>;
|
||||
|
||||
/* These power domains are grouped by VD_LOGIC */
|
||||
pd_usb@PX30_PD_USB {
|
||||
power-domain@PX30_PD_USB {
|
||||
reg = <PX30_PD_USB>;
|
||||
clocks = <&cru HCLK_HOST>,
|
||||
<&cru HCLK_OTG>,
|
||||
<&cru SCLK_OTG_ADP>;
|
||||
pm_qos = <&qos_usb_host>, <&qos_usb_otg>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
pd_sdcard@PX30_PD_SDCARD {
|
||||
power-domain@PX30_PD_SDCARD {
|
||||
reg = <PX30_PD_SDCARD>;
|
||||
clocks = <&cru HCLK_SDMMC>,
|
||||
<&cru SCLK_SDMMC>;
|
||||
pm_qos = <&qos_sdmmc>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
pd_gmac@PX30_PD_GMAC {
|
||||
power-domain@PX30_PD_GMAC {
|
||||
reg = <PX30_PD_GMAC>;
|
||||
clocks = <&cru ACLK_GMAC>,
|
||||
<&cru PCLK_GMAC>,
|
||||
<&cru SCLK_MAC_REF>,
|
||||
<&cru SCLK_GMAC_RX_TX>;
|
||||
pm_qos = <&qos_gmac>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
pd_mmc_nand@PX30_PD_MMC_NAND {
|
||||
power-domain@PX30_PD_MMC_NAND {
|
||||
reg = <PX30_PD_MMC_NAND>;
|
||||
clocks = <&cru HCLK_NANDC>,
|
||||
<&cru HCLK_EMMC>,
|
||||
@@ -282,15 +280,17 @@
|
||||
<&cru SCLK_SFC>;
|
||||
pm_qos = <&qos_emmc>, <&qos_nand>,
|
||||
<&qos_sdio>, <&qos_sfc>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
pd_vpu@PX30_PD_VPU {
|
||||
power-domain@PX30_PD_VPU {
|
||||
reg = <PX30_PD_VPU>;
|
||||
clocks = <&cru ACLK_VPU>,
|
||||
<&cru HCLK_VPU>,
|
||||
<&cru SCLK_CORE_VPU>;
|
||||
pm_qos = <&qos_vpu>, <&qos_vpu_r128>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
pd_vo@PX30_PD_VO {
|
||||
power-domain@PX30_PD_VO {
|
||||
reg = <PX30_PD_VO>;
|
||||
clocks = <&cru ACLK_RGA>,
|
||||
<&cru ACLK_VOPB>,
|
||||
@@ -305,8 +305,9 @@
|
||||
<&cru SCLK_VOPB_PWM>;
|
||||
pm_qos = <&qos_rga_rd>, <&qos_rga_wr>,
|
||||
<&qos_vop_m0>, <&qos_vop_m1>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
pd_vi@PX30_PD_VI {
|
||||
power-domain@PX30_PD_VI {
|
||||
reg = <PX30_PD_VI>;
|
||||
clocks = <&cru ACLK_CIF>,
|
||||
<&cru ACLK_ISP>,
|
||||
@@ -316,11 +317,13 @@
|
||||
pm_qos = <&qos_isp_128>, <&qos_isp_rd>,
|
||||
<&qos_isp_wr>, <&qos_isp_m1>,
|
||||
<&qos_vip>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
pd_gpu@PX30_PD_GPU {
|
||||
power-domain@PX30_PD_GPU {
|
||||
reg = <PX30_PD_GPU>;
|
||||
clocks = <&cru SCLK_GPU>;
|
||||
pm_qos = <&qos_gpu>;
|
||||
#power-domain-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -605,7 +608,7 @@
|
||||
};
|
||||
|
||||
wdt: watchdog@ff1e0000 {
|
||||
compatible = "snps,dw-wdt";
|
||||
compatible = "rockchip,px30-wdt", "snps,dw-wdt";
|
||||
reg = <0x0 0xff1e0000 0x0 0x100>;
|
||||
clocks = <&cru PCLK_WDT_NS>;
|
||||
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -708,21 +711,15 @@
|
||||
clock-names = "pclk", "timer";
|
||||
};
|
||||
|
||||
amba {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
dmac: dmac@ff240000 {
|
||||
compatible = "arm,pl330", "arm,primecell";
|
||||
reg = <0x0 0xff240000 0x0 0x4000>;
|
||||
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru ACLK_DMAC>;
|
||||
clock-names = "apb_pclk";
|
||||
#dma-cells = <1>;
|
||||
};
|
||||
dmac: dmac@ff240000 {
|
||||
compatible = "arm,pl330", "arm,primecell";
|
||||
reg = <0x0 0xff240000 0x0 0x4000>;
|
||||
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
arm,pl330-periph-burst;
|
||||
clocks = <&cru ACLK_DMAC>;
|
||||
clock-names = "apb_pclk";
|
||||
#dma-cells = <1>;
|
||||
};
|
||||
|
||||
tsadc: tsadc@ff280000 {
|
||||
@@ -738,9 +735,9 @@
|
||||
rockchip,grf = <&grf>;
|
||||
rockchip,hw-tshut-temp = <120000>;
|
||||
pinctrl-names = "init", "default", "sleep";
|
||||
pinctrl-0 = <&tsadc_otp_gpio>;
|
||||
pinctrl-0 = <&tsadc_otp_pin>;
|
||||
pinctrl-1 = <&tsadc_otp_out>;
|
||||
pinctrl-2 = <&tsadc_otp_gpio>;
|
||||
pinctrl-2 = <&tsadc_otp_pin>;
|
||||
#thermal-sensor-cells = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -789,6 +786,16 @@
|
||||
rockchip,grf = <&grf>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
|
||||
assigned-clocks = <&cru PLL_NPLL>,
|
||||
<&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
|
||||
<&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>,
|
||||
<&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>;
|
||||
|
||||
assigned-clock-rates = <1188000000>,
|
||||
<200000000>, <200000000>,
|
||||
<150000000>, <150000000>,
|
||||
<100000000>, <200000000>;
|
||||
};
|
||||
|
||||
pmucru: clock-controller@ff2bc000 {
|
||||
@@ -799,6 +806,13 @@
|
||||
rockchip,grf = <&grf>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
|
||||
assigned-clocks =
|
||||
<&pmucru PLL_GPLL>, <&pmucru PCLK_PMU_PRE>,
|
||||
<&pmucru SCLK_WIFI_PMU>;
|
||||
assigned-clock-rates =
|
||||
<1200000000>, <100000000>,
|
||||
<26000000>;
|
||||
};
|
||||
|
||||
usb2phy_grf: syscon@ff2c0000 {
|
||||
@@ -808,7 +822,7 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
u2phy: usb2-phy@100 {
|
||||
u2phy: usb2phy@100 {
|
||||
compatible = "rockchip,px30-usb2phy";
|
||||
reg = <0x100 0x20>;
|
||||
clocks = <&pmucru SCLK_USBPHY_REF>;
|
||||
@@ -850,6 +864,19 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
csi_dphy: phy@ff2f0000 {
|
||||
compatible = "rockchip,px30-csi-dphy";
|
||||
reg = <0x0 0xff2f0000 0x0 0x4000>;
|
||||
clocks = <&cru PCLK_MIPICSIPHY>;
|
||||
clock-names = "pclk";
|
||||
#phy-cells = <0>;
|
||||
power-domains = <&power PX30_PD_VI>;
|
||||
resets = <&cru SRST_MIPICSIPHY_P>;
|
||||
reset-names = "apb";
|
||||
rockchip,grf = <&grf>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb20_otg: usb@ff300000 {
|
||||
compatible = "rockchip,px30-usb", "rockchip,rk3066-usb",
|
||||
"snps,dwc2";
|
||||
@@ -861,7 +888,6 @@
|
||||
g-np-tx-fifo-size = <16>;
|
||||
g-rx-fifo-size = <280>;
|
||||
g-tx-fifo-size = <256 128 128 64 32 16>;
|
||||
g-use-dma;
|
||||
phys = <&u2phy_otg>;
|
||||
phy-names = "usb2-phy";
|
||||
power-domains = <&power PX30_PD_USB>;
|
||||
@@ -873,7 +899,6 @@
|
||||
reg = <0x0 0xff340000 0x0 0x10000>;
|
||||
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_HOST>;
|
||||
clock-names = "usbhost";
|
||||
phys = <&u2phy_host>;
|
||||
phy-names = "usb";
|
||||
power-domains = <&power PX30_PD_USB>;
|
||||
@@ -885,7 +910,6 @@
|
||||
reg = <0x0 0xff350000 0x0 0x10000>;
|
||||
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_HOST>;
|
||||
clock-names = "usbhost";
|
||||
phys = <&u2phy_host>;
|
||||
phy-names = "usb";
|
||||
power-domains = <&power PX30_PD_USB>;
|
||||
@@ -915,13 +939,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdmmc: dwmmc@ff370000 {
|
||||
sdmmc: mmc@ff370000 {
|
||||
compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x0 0xff370000 0x0 0x4000>;
|
||||
interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
|
||||
<&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
|
||||
clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
|
||||
clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
|
||||
bus-width = <4>;
|
||||
fifo-depth = <0x100>;
|
||||
max-frequency = <150000000>;
|
||||
pinctrl-names = "default";
|
||||
@@ -930,13 +955,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdio: dwmmc@ff380000 {
|
||||
sdio: mmc@ff380000 {
|
||||
compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x0 0xff380000 0x0 0x4000>;
|
||||
interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
|
||||
<&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
|
||||
clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
|
||||
clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
|
||||
bus-width = <4>;
|
||||
fifo-depth = <0x100>;
|
||||
max-frequency = <150000000>;
|
||||
pinctrl-names = "default";
|
||||
@@ -945,13 +971,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
emmc: dwmmc@ff390000 {
|
||||
emmc: mmc@ff390000 {
|
||||
compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x0 0xff390000 0x0 0x4000>;
|
||||
interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
|
||||
<&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
|
||||
clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
|
||||
clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
|
||||
bus-width = <8>;
|
||||
fifo-depth = <0x100>;
|
||||
max-frequency = <150000000>;
|
||||
pinctrl-names = "default";
|
||||
@@ -960,18 +987,54 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sfc: sfc@ff3a0000 {
|
||||
sfc: spi@ff3a0000 {
|
||||
compatible = "rockchip,sfc";
|
||||
reg = <0x0 0xff3a0000 0x0 0x4000>;
|
||||
interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
|
||||
clock-names = "clk_sfc", "hclk_sfc";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus4>;
|
||||
pinctrl-names = "default";
|
||||
power-domains = <&power PX30_PD_MMC_NAND>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
nfc: nand-controller@ff3b0000 {
|
||||
compatible = "rockchip,px30-nfc";
|
||||
reg = <0x0 0xff3b0000 0x0 0x4000>;
|
||||
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>;
|
||||
clock-names = "ahb", "nfc";
|
||||
assigned-clocks = <&cru SCLK_NANDC>;
|
||||
assigned-clock-rates = <150000000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_cs0
|
||||
&flash_rdn &flash_rdy &flash_wrn &flash_dqs>;
|
||||
power-domains = <&power PX30_PD_MMC_NAND>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpu_opp_table: opp-table-1 {
|
||||
compatible = "operating-points-v2";
|
||||
|
||||
opp-200000000 {
|
||||
opp-hz = /bits/ 64 <200000000>;
|
||||
opp-microvolt = <950000>;
|
||||
};
|
||||
opp-300000000 {
|
||||
opp-hz = /bits/ 64 <300000000>;
|
||||
opp-microvolt = <975000>;
|
||||
};
|
||||
opp-400000000 {
|
||||
opp-hz = /bits/ 64 <400000000>;
|
||||
opp-microvolt = <1050000>;
|
||||
};
|
||||
opp-480000000 {
|
||||
opp-hz = /bits/ 64 <480000000>;
|
||||
opp-microvolt = <1125000>;
|
||||
};
|
||||
};
|
||||
|
||||
gpu: gpu@ff400000 {
|
||||
compatible = "rockchip,px30-mali", "arm,mali-bifrost";
|
||||
reg = <0x0 0xff400000 0x0 0x4000>;
|
||||
@@ -982,9 +1045,32 @@
|
||||
clocks = <&cru SCLK_GPU>;
|
||||
#cooling-cells = <2>;
|
||||
power-domains = <&power PX30_PD_GPU>;
|
||||
operating-points-v2 = <&gpu_opp_table>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
vpu: video-codec@ff442000 {
|
||||
compatible = "rockchip,px30-vpu";
|
||||
reg = <0x0 0xff442000 0x0 0x800>;
|
||||
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "vepu", "vdpu";
|
||||
clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
|
||||
clock-names = "aclk", "hclk";
|
||||
iommus = <&vpu_mmu>;
|
||||
power-domains = <&power PX30_PD_VPU>;
|
||||
};
|
||||
|
||||
vpu_mmu: iommu@ff442800 {
|
||||
compatible = "rockchip,iommu";
|
||||
reg = <0x0 0xff442800 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
|
||||
clock-names = "aclk", "iface";
|
||||
#iommu-cells = <0>;
|
||||
power-domains = <&power PX30_PD_VPU>;
|
||||
};
|
||||
|
||||
dsi: dsi@ff450000 {
|
||||
compatible = "rockchip,px30-mipi-dsi";
|
||||
reg = <0x0 0xff450000 0x0 0x10000>;
|
||||
@@ -1034,7 +1120,6 @@
|
||||
reset-names = "axi", "ahb", "dclk";
|
||||
iommus = <&vopb_mmu>;
|
||||
power-domains = <&power PX30_PD_VO>;
|
||||
rockchip,grf = <&grf>;
|
||||
status = "disabled";
|
||||
|
||||
vopb_out: port {
|
||||
@@ -1057,7 +1142,6 @@
|
||||
compatible = "rockchip,iommu";
|
||||
reg = <0x0 0xff460f00 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "vopb_mmu";
|
||||
clocks = <&cru ACLK_VOPB>, <&cru HCLK_VOPB>;
|
||||
clock-names = "aclk", "iface";
|
||||
power-domains = <&power PX30_PD_VO>;
|
||||
@@ -1076,7 +1160,6 @@
|
||||
reset-names = "axi", "ahb", "dclk";
|
||||
iommus = <&vopl_mmu>;
|
||||
power-domains = <&power PX30_PD_VO>;
|
||||
rockchip,grf = <&grf>;
|
||||
status = "disabled";
|
||||
|
||||
vopl_out: port {
|
||||
@@ -1098,8 +1181,7 @@
|
||||
vopl_mmu: iommu@ff470f00 {
|
||||
compatible = "rockchip,iommu";
|
||||
reg = <0x0 0xff470f00 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "vopl_mmu";
|
||||
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru ACLK_VOPL>, <&cru HCLK_VOPL>;
|
||||
clock-names = "aclk", "iface";
|
||||
power-domains = <&power PX30_PD_VO>;
|
||||
@@ -1107,103 +1189,144 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
isp: isp@ff4a0000 {
|
||||
compatible = "rockchip,px30-cif-isp"; /*rk3326-rkisp1*/
|
||||
reg = <0x0 0xff4a0000 0x0 0x8000>;
|
||||
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "isp", "mi", "mipi";
|
||||
clocks = <&cru SCLK_ISP>,
|
||||
<&cru ACLK_ISP>,
|
||||
<&cru HCLK_ISP>,
|
||||
<&cru PCLK_ISP>;
|
||||
clock-names = "isp", "aclk", "hclk", "pclk";
|
||||
iommus = <&isp_mmu>;
|
||||
phys = <&csi_dphy>;
|
||||
phy-names = "dphy";
|
||||
power-domains = <&power PX30_PD_VI>;
|
||||
status = "disabled";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
isp_mmu: iommu@ff4a8000 {
|
||||
compatible = "rockchip,iommu";
|
||||
reg = <0x0 0xff4a8000 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
|
||||
clock-names = "aclk", "iface";
|
||||
power-domains = <&power PX30_PD_VI>;
|
||||
rockchip,disable-mmu-reset;
|
||||
#iommu-cells = <0>;
|
||||
};
|
||||
|
||||
qos_gmac: qos@ff518000 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff518000 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_gpu: qos@ff520000 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff520000 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_sdmmc: qos@ff52c000 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff52c000 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_emmc: qos@ff538000 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff538000 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_nand: qos@ff538080 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff538080 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_sdio: qos@ff538100 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff538100 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_sfc: qos@ff538180 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff538180 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_usb_host: qos@ff540000 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff540000 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_usb_otg: qos@ff540080 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff540080 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_isp_128: qos@ff548000 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff548000 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_isp_rd: qos@ff548080 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff548080 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_isp_wr: qos@ff548100 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff548100 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_isp_m1: qos@ff548180 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff548180 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_vip: qos@ff548200 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff548200 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_rga_rd: qos@ff550000 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff550000 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_rga_wr: qos@ff550080 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff550080 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_vop_m0: qos@ff550100 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff550100 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_vop_m1: qos@ff550180 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff550180 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_vpu: qos@ff558000 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff558000 0x0 0x20>;
|
||||
};
|
||||
|
||||
qos_vpu_r128: qos@ff558080 {
|
||||
compatible = "syscon";
|
||||
compatible = "rockchip,px30-qos", "syscon";
|
||||
reg = <0x0 0xff558080 0x0 0x20>;
|
||||
};
|
||||
|
||||
@@ -1215,7 +1338,7 @@
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
gpio0: gpio0@ff040000 {
|
||||
gpio0: gpio@ff040000 {
|
||||
compatible = "rockchip,gpio-bank";
|
||||
reg = <0x0 0xff040000 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -1227,7 +1350,7 @@
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio1: gpio1@ff250000 {
|
||||
gpio1: gpio@ff250000 {
|
||||
compatible = "rockchip,gpio-bank";
|
||||
reg = <0x0 0xff250000 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -1239,7 +1362,7 @@
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio2: gpio2@ff260000 {
|
||||
gpio2: gpio@ff260000 {
|
||||
compatible = "rockchip,gpio-bank";
|
||||
reg = <0x0 0xff260000 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -1251,7 +1374,7 @@
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio3: gpio3@ff270000 {
|
||||
gpio3: gpio@ff270000 {
|
||||
compatible = "rockchip,gpio-bank";
|
||||
reg = <0x0 0xff270000 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -1375,7 +1498,7 @@
|
||||
};
|
||||
|
||||
tsadc {
|
||||
tsadc_otp_gpio: tsadc-otp-gpio {
|
||||
tsadc_otp_pin: tsadc-otp-pin {
|
||||
rockchip,pins =
|
||||
<0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
@@ -1938,7 +2061,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
serial_flash {
|
||||
sfc {
|
||||
sfc_bus4: sfc-bus4 {
|
||||
rockchip,pins =
|
||||
<1 RK_PA0 3 &pcfg_pull_none>,
|
||||
|
||||
@@ -1,34 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright 2020 Compass Electronics Group, LLC
|
||||
* Copyright 2021 LogicPD dba Beacon EmbeddedWorks
|
||||
*/
|
||||
|
||||
/ {
|
||||
soc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
&cpg {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&extal_clk {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&prr {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&extalr_clk {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&sdhi0 {
|
||||
/delete-property/ cd-gpios;
|
||||
};
|
||||
|
||||
&sdhi2 {
|
||||
status = "disabled";
|
||||
};
|
||||
#include "rz-g2-beacon-u-boot.dtsi"
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
serial4 = &hscif2;
|
||||
serial5 = &scif5;
|
||||
ethernet0 = &avb;
|
||||
mmc0 = &sdhi3;
|
||||
mmc1 = &sdhi0;
|
||||
mmc2 = &sdhi2;
|
||||
};
|
||||
|
||||
chosen {
|
||||
|
||||
@@ -1,34 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright 2020 Compass Electronics Group, LLC
|
||||
* Copyright 2021 LogicPD dba Beacon EmbeddedWorks
|
||||
*/
|
||||
|
||||
/ {
|
||||
soc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
&cpg {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&extal_clk {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&prr {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&extalr_clk {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&sdhi0 {
|
||||
/delete-property/ cd-gpios;
|
||||
};
|
||||
|
||||
&sdhi2 {
|
||||
status = "disabled";
|
||||
};
|
||||
#include "rz-g2-beacon-u-boot.dtsi"
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
serial5 = &scif5;
|
||||
serial6 = &scif4;
|
||||
ethernet0 = &avb;
|
||||
mmc0 = &sdhi3;
|
||||
mmc1 = &sdhi0;
|
||||
mmc2 = &sdhi2;
|
||||
};
|
||||
|
||||
chosen {
|
||||
|
||||
@@ -1,44 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright 2020 Compass Electronics Group, LLC
|
||||
* Copyright 2021 LogicPD dba Beacon EmbeddedWorks
|
||||
*/
|
||||
|
||||
/ {
|
||||
soc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
&cpg {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&extal_clk {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&prr {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&extalr_clk {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&sdhi0 {
|
||||
/delete-property/ cd-gpios;
|
||||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr104;
|
||||
max-frequency = <208000000>;
|
||||
};
|
||||
|
||||
&sdhi2 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&sdhi3 {
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
mmc-hs400-1_8v;
|
||||
};
|
||||
#include "rz-g2-beacon-u-boot.dtsi"
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
serial5 = &scif5;
|
||||
serial6 = &scif4;
|
||||
ethernet0 = &avb;
|
||||
mmc0 = &sdhi3;
|
||||
mmc1 = &sdhi0;
|
||||
mmc2 = &sdhi2;
|
||||
};
|
||||
|
||||
chosen {
|
||||
|
||||
@@ -16,6 +16,18 @@
|
||||
serial2 = &uart2;
|
||||
spi0 = &sfc;
|
||||
};
|
||||
|
||||
dmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
compatible = "rockchip,px30-dmc", "syscon";
|
||||
reg = <0x0 0xff2a0000 0x0 0x1000>;
|
||||
};
|
||||
|
||||
rng: rng@ff0b0000 {
|
||||
compatible = "rockchip,cryptov2-rng";
|
||||
reg = <0x0 0xff0b0000 0x0 0x4000>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
/* U-Boot clk driver for px30 cannot set GPU_CLK */
|
||||
@@ -32,10 +44,6 @@
|
||||
<100000000>, <17000000>;
|
||||
};
|
||||
|
||||
&dmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpio0 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
@@ -80,7 +88,7 @@
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&{/sfc@ff3a0000/flash@0} {
|
||||
&{/spi@ff3a0000/flash@0} {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
|
||||
@@ -14,14 +14,12 @@
|
||||
model = "ODROID-GO Advance";
|
||||
compatible = "hardkernel,rk3326-odroid-go2", "rockchip,rk3326";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
aliases {
|
||||
mmc0 = &sdmmc;
|
||||
};
|
||||
|
||||
backlight: backlight {
|
||||
compatible = "pwm-backlight";
|
||||
power-supply = <&vcc_bl>;
|
||||
pwms = <&pwm1 0 25000 0>;
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
|
||||
adc-joystick {
|
||||
@@ -33,21 +31,27 @@
|
||||
|
||||
axis@0 {
|
||||
reg = <0>;
|
||||
abs-range = <172 772>;
|
||||
abs-fuzz = <10>;
|
||||
abs-flat = <10>;
|
||||
abs-fuzz = <10>;
|
||||
abs-range = <172 772>;
|
||||
linux,code = <ABS_X>;
|
||||
};
|
||||
|
||||
axis@1 {
|
||||
reg = <1>;
|
||||
abs-range = <278 815>;
|
||||
abs-fuzz = <10>;
|
||||
abs-flat = <10>;
|
||||
abs-fuzz = <10>;
|
||||
abs-range = <278 815>;
|
||||
linux,code = <ABS_Y>;
|
||||
};
|
||||
};
|
||||
|
||||
backlight: backlight {
|
||||
compatible = "pwm-backlight";
|
||||
power-supply = <&vcc_bl>;
|
||||
pwms = <&pwm1 0 25000 0>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
pinctrl-names = "default";
|
||||
@@ -163,26 +167,27 @@
|
||||
|
||||
rk817-sound {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,name = "Analog";
|
||||
simple-audio-card,format = "i2s";
|
||||
simple-audio-card,name = "rockchip,rk817-codec";
|
||||
simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
|
||||
simple-audio-card,mclk-fs = <256>;
|
||||
simple-audio-card,widgets =
|
||||
"Microphone", "Mic Jack",
|
||||
"Headphone", "Headphone Jack";
|
||||
"Headphone", "Headphones",
|
||||
"Speaker", "Speaker";
|
||||
simple-audio-card,routing =
|
||||
"MIC_IN", "Mic Jack",
|
||||
"Headphone Jack", "HPOL",
|
||||
"Headphone Jack", "HPOR";
|
||||
simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>;
|
||||
simple-audio-card,codec-hp-det = <1>;
|
||||
"MICL", "Mic Jack",
|
||||
"Headphones", "HPOL",
|
||||
"Headphones", "HPOR",
|
||||
"Speaker", "SPKO";
|
||||
|
||||
simple-audio-card,codec {
|
||||
sound-dai = <&rk817>;
|
||||
};
|
||||
|
||||
simple-audio-card,cpu {
|
||||
sound-dai = <&i2s1_2ch>;
|
||||
};
|
||||
|
||||
simple-audio-card,codec {
|
||||
sound-dai = <&rk817_codec>;
|
||||
};
|
||||
};
|
||||
|
||||
vccsys: vccsys {
|
||||
@@ -202,7 +207,8 @@
|
||||
gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
vin-supply = <&vccsys>;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&usb_midu>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -259,6 +265,7 @@
|
||||
backlight = <&backlight>;
|
||||
iovcc-supply = <&vcc_lcd>;
|
||||
reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
|
||||
rotation = <270>;
|
||||
vdd-supply = <&vcc_lcd>;
|
||||
|
||||
port {
|
||||
@@ -289,16 +296,14 @@
|
||||
reg = <0x20>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-names = "default", "pmic-sleep",
|
||||
"pmic-power-off", "pmic-reset";
|
||||
pinctrl-0 = <&pmic_int>;
|
||||
pinctrl-1 = <&soc_slppin_slp>, <&rk817_slppin_slp>;
|
||||
pinctrl-2 = <&soc_slppin_gpio>, <&rk817_slppin_pwrdn>;
|
||||
pinctrl-3 = <&soc_slppin_rst>, <&rk817_slppin_rst>;
|
||||
rockchip,system-power-controller;
|
||||
clock-output-names = "rk808-clkout1", "xin32k";
|
||||
clock-names = "mclk";
|
||||
clocks = <&cru SCLK_I2S1_OUT>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
|
||||
wakeup-source;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "rk808-clkout1", "xin32k";
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
vcc1-supply = <&vccsys>;
|
||||
vcc2-supply = <&vccsys>;
|
||||
@@ -307,53 +312,7 @@
|
||||
vcc5-supply = <&vccsys>;
|
||||
vcc6-supply = <&vccsys>;
|
||||
vcc7-supply = <&vccsys>;
|
||||
|
||||
pinctrl_rk8xx: pinctrl_rk8xx {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
rk817_ts_gpio1: rk817_ts_gpio1 {
|
||||
pins = "gpio_ts";
|
||||
function = "pin_fun1";
|
||||
/* output-low; */
|
||||
/* input-enable; */
|
||||
};
|
||||
|
||||
rk817_gt_gpio2: rk817_gt_gpio2 {
|
||||
pins = "gpio_gt";
|
||||
function = "pin_fun1";
|
||||
};
|
||||
|
||||
rk817_pin_ts: rk817_pin_ts {
|
||||
pins = "gpio_ts";
|
||||
function = "pin_fun0";
|
||||
};
|
||||
|
||||
rk817_pin_gt: rk817_pin_gt {
|
||||
pins = "gpio_gt";
|
||||
function = "pin_fun0";
|
||||
};
|
||||
|
||||
rk817_slppin_null: rk817_slppin_null {
|
||||
pins = "gpio_slp";
|
||||
function = "pin_fun0";
|
||||
};
|
||||
|
||||
rk817_slppin_slp: rk817_slppin_slp {
|
||||
pins = "gpio_slp";
|
||||
function = "pin_fun1";
|
||||
};
|
||||
|
||||
rk817_slppin_pwrdn: rk817_slppin_pwrdn {
|
||||
pins = "gpio_slp";
|
||||
function = "pin_fun2";
|
||||
};
|
||||
|
||||
rk817_slppin_rst: rk817_slppin_rst {
|
||||
pins = "gpio_slp";
|
||||
function = "pin_fun3";
|
||||
};
|
||||
};
|
||||
vcc8-supply = <&vccsys>;
|
||||
|
||||
regulators {
|
||||
vdd_logic: DCDC_REG1 {
|
||||
@@ -503,66 +462,18 @@
|
||||
regulator-suspend-microvolt = <3000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
battery {
|
||||
compatible = "rk817,battery";
|
||||
ocv_table = <3500 3625 3685 3697 3718 3735 3748
|
||||
3760 3774 3788 3802 3816 3834 3853
|
||||
3877 3908 3946 3975 4018 4071 4106>;
|
||||
|
||||
/* KPL605475 Battery Spec */
|
||||
/*
|
||||
Capacity : 3.7V 3000mA
|
||||
Normal Voltage = 3.7V
|
||||
Cut-Off Voltage : 3.1V
|
||||
Internal Impedance : 180 mOhm
|
||||
Charging Voltage : 4.2V
|
||||
Charging Voltage Max : 4.25V
|
||||
Sample resister : 10 mohm
|
||||
*/
|
||||
design_capacity = <3000>;
|
||||
design_qmax = <3000>;
|
||||
bat_res = <180>;
|
||||
sleep_enter_current = <300>;
|
||||
sleep_exit_current = <300>;
|
||||
sleep_filter_current = <100>;
|
||||
power_off_thresd = <3500>;
|
||||
zero_algorithm_vol = <3700>;
|
||||
max_soc_offset = <60>;
|
||||
monitor_sec = <5>;
|
||||
virtual_power = <0>;
|
||||
sample_res = <10>;
|
||||
};
|
||||
|
||||
charger {
|
||||
compatible = "rk817,charger";
|
||||
min_input_voltage = <4500>;
|
||||
max_input_current = <1500>;
|
||||
max_chrg_current = <2000>;
|
||||
max_chrg_voltage = <4200>;
|
||||
chrg_term_mode = <0>;
|
||||
chrg_finish_cur = <300>;
|
||||
virtual_power = <0>;
|
||||
sample_res = <10>;
|
||||
|
||||
/* P.C.B rev0.2 DC Detect & Charger Status LED GPIO */
|
||||
dc_det_gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
|
||||
chg_led_gpio = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
extcon = <&u2phy>;
|
||||
usb_midu: BOOST {
|
||||
regulator-name = "usb_midu";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5400000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
rk817_codec: codec {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "rockchip,rk817-codec";
|
||||
clocks = <&cru SCLK_I2S1_OUT>;
|
||||
clock-names = "mclk";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s1_2ch_mclk>;
|
||||
hp-volume = <20>;
|
||||
spk-volume = <3>;
|
||||
status = "okay";
|
||||
rockchip,mic-in-differential;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -604,7 +515,6 @@
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
card-detect-delay = <200>;
|
||||
cd-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; /*[> CD GPIO <]*/
|
||||
|
||||
@@ -88,6 +88,10 @@
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&emmc_phy {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&grf {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
mmc1 = &sdmmc0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
u-boot,spl-boot-order = &sdhci, &sdmmc0;
|
||||
};
|
||||
|
||||
dmc: dmc {
|
||||
compatible = "rockchip,rk3568-dmc";
|
||||
u-boot,dm-pre-reloc;
|
||||
@@ -35,3 +39,16 @@
|
||||
u-boot,dm-pre-reloc;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdmmc0 {
|
||||
u-boot,dm-spl;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhci {
|
||||
bus-width = <8>;
|
||||
u-boot,dm-spl;
|
||||
mmc-hs200-1_8v;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
||||
75
arch/arm/dts/rz-g2-beacon-u-boot.dtsi
Normal file
75
arch/arm/dts/rz-g2-beacon-u-boot.dtsi
Normal file
@@ -0,0 +1,75 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright 2021 LogicPD dba Beacon EmbeddedWorks
|
||||
*/
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
spi0 = &rpc;
|
||||
};
|
||||
|
||||
soc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
&cpg {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&versaclock5 3>;
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&versaclock5 3>;
|
||||
};
|
||||
|
||||
&extal_clk {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&extalr_clk {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&prr {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&rpc {
|
||||
compatible = "renesas,rcar-gen3-rpc";
|
||||
num-cs = <1>;
|
||||
spi-max-frequency = <40000000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
flash0: spi-flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0>;
|
||||
compatible = "spi-flash", "jedec,spi-nor";
|
||||
spi-max-frequency = <40000000>;
|
||||
spi-tx-bus-width = <1>;
|
||||
spi-rx-bus-width = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhi0 {
|
||||
/delete-property/ cd-gpios;
|
||||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr104;
|
||||
max-frequency = <208000000>;
|
||||
};
|
||||
|
||||
&sdhi2 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&sdhi3 {
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
mmc-hs400-1_8v;
|
||||
};
|
||||
@@ -19,6 +19,17 @@
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
ðernet0 {
|
||||
mdio0 {
|
||||
ethernet-phy@7 {
|
||||
reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <11000>;
|
||||
reset-deassert-us = <1000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&sdmmc1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/ {
|
||||
aliases {
|
||||
mmc0 = &mmc0;
|
||||
#if CONFIG_MMC_SUNXI_EXTRA_SLOT == 2
|
||||
#if CONFIG_MMC_SUNXI_SLOT_EXTRA == 2
|
||||
mmc1 = &mmc2;
|
||||
#endif
|
||||
};
|
||||
|
||||
221
arch/arm/dts/zynqmp-dlc21-revA.dts
Normal file
221
arch/arm/dts/zynqmp-dlc21-revA.dts
Normal file
@@ -0,0 +1,221 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* dts file for Xilinx ZynqMP DLC21 revA
|
||||
*
|
||||
* (C) Copyright 2019 - 2021, Xilinx, Inc.
|
||||
*
|
||||
* Michal Simek <michal.simek@xilinx.com>
|
||||
*/
|
||||
/dts-v1/;
|
||||
|
||||
#include "zynqmp.dtsi"
|
||||
#include "zynqmp-clk-ccf.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <include/dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "Smartlynq+ DLC21 RevA";
|
||||
compatible = "xlnx,zynqmp-dlc21-revA", "xlnx,zynqmp-dlc21",
|
||||
"xlnx,zynqmp";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &gem0;
|
||||
gpio0 = &gpio;
|
||||
i2c0 = &i2c0;
|
||||
mmc0 = &sdhci0;
|
||||
mmc1 = &sdhci1;
|
||||
rtc0 = &rtc;
|
||||
serial0 = &uart0;
|
||||
serial2 = &dcc;
|
||||
usb0 = &usb0;
|
||||
usb1 = &usb1;
|
||||
spi0 = &spi0;
|
||||
nvmem0 = &eeprom;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "earlycon";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0 0 0 0x80000000>, <0x8 0 0x3 0x80000000>;
|
||||
};
|
||||
|
||||
si5332_1: si5332_1 { /* clk0_sgmii - u142 */
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <125000000>;
|
||||
};
|
||||
|
||||
si5332_2: si5332_2 { /* clk1_usb - u142 */
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <26000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhci0 { /* emmc MIO 13-23 - with some settings 16GB */
|
||||
status = "okay";
|
||||
non-removable;
|
||||
disable-wp;
|
||||
bus-width = <8>;
|
||||
xlnx,mio_bank = <0>;
|
||||
};
|
||||
|
||||
&sdhci1 { /* sd1 MIO45-51 cd in place */
|
||||
status = "okay";
|
||||
no-1-8-v;
|
||||
disable-wp;
|
||||
xlnx,mio_bank = <1>;
|
||||
};
|
||||
|
||||
&psgtr {
|
||||
status = "okay";
|
||||
/* sgmii, usb3 */
|
||||
clocks = <&si5332_1>, <&si5332_2>;
|
||||
clock-names = "ref0", "ref1";
|
||||
};
|
||||
|
||||
&uart0 { /* uart0 MIO38-39 */
|
||||
status = "okay";
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gem0 {
|
||||
status = "okay";
|
||||
phy-handle = <&phy0>;
|
||||
phy-mode = "sgmii"; /* DTG generates this properly 1512 */
|
||||
is-internal-pcspma;
|
||||
/* phy-reset-gpios = <&gpio 142 GPIO_ACTIVE_LOW>; */
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
status = "okay";
|
||||
gpio-line-names = "", "", "", "", "", /* 0 - 4 */
|
||||
"", "", "", "", "", /* 5 - 9 */
|
||||
"", "", "", "EMMC_DAT0", "EMMC_DAT1", /* 10 - 14 */
|
||||
"EMMC_DAT2", "EMMC_DAT3", "EMMC_DAT4", "EMMC_DAT5", "EMMC_DAT6", /* 15 - 19 */
|
||||
"EMMC_DAT7", "EMMC_CMD", "EMMC_CLK", "EMMC_RST_B", "", /* 20 - 24 */
|
||||
"", "DISP_SCL", "DISP_DC_B", "DISP_RES_B", "DISP_CS_B", /* 25 - 29 */
|
||||
"", "DISP_SDI", "SYSTEM_RST_R_B", "", "I2C0_SCL", /* 30 - 34 */
|
||||
"I2C0_SDA", "", "", "UART0_RXD_IN", "UART0_TXD_OUT", /* 35 - 39 */
|
||||
"", "", "ETH_RESET_B", "", "", /* 40 - 44 */
|
||||
"SD1_CD_B", "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3", /* 45 - 49 */
|
||||
"SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2", /* 50 - 54 */
|
||||
"USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3", /* 55 - 59 */
|
||||
"USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK", /* 60 - 64 */
|
||||
"USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1", /* 65 - 69 */
|
||||
"USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6", /* 70 - 74 */
|
||||
"USB1_DATA7", "ETH_MDC", "ETH_MDIO", /* 75 - 77, MIO end and EMIO start */
|
||||
"", "", /* 78 - 79 */
|
||||
"", "", "", "", "", /* 80 - 84 */
|
||||
"", "", "", "", "", /* 85 -89 */
|
||||
"", "", "", "", "", /* 90 - 94 */
|
||||
"", "VCCO_500_RBIAS", "VCCO_501_RBIAS", "VCCO_502_RBIAS", "VCCO_500_RBIAS_LED", /* 95 - 99 */
|
||||
"VCCO_501_RBIAS_LED", "VCCO_502_RBIAS_LED", "SYSCTLR_VCCINT_EN", "SYSCTLR_VCC_IO_SOC_EN", "SYSCTLR_VCC_PMC_EN", /* 100 - 104 */
|
||||
"", "", "", "", "", /* 105 - 109 */
|
||||
"SYSCTLR_VCCO_500_EN", "SYSCTLR_VCCO_501_EN", "SYSCTLR_VCCO_502_EN", "SYSCTLR_VCCO_503_EN", "SYSCTLR_VCC1V8_EN", /* 110 - 114 */
|
||||
"SYSCTLR_VCC3V3_EN", "SYSCTLR_VCC1V2_DDR4_EN", "SYSCTLR_VCC1V1_LP4_EN", "SYSCTLR_VDD1_1V8_LP4_EN", "SYSCTLR_VADJ_FMC_EN", /* 115 - 119 */
|
||||
"", "", "", "SYSCTLR_UTIL_1V13_EN", "SYSCTLR_UTIL_1V8_EN", /* 120 - 124 */
|
||||
"SYSCTLR_UTIL_2V5_EN", "", "", "", "", /* 125 - 129 */
|
||||
"", "", "SYSCTLR_USBC_SBU1", "SYSCTLR_USBC_SBU2", "", /* 130 - 134 */
|
||||
"", "SYSCTLR_MIC2005_EN_B", "SYSCTLR_MIC2005_FAULT_B", "SYSCTLR_TUSB320_INT_B", "SYSCTLR_TUSB320_ID", /* 135 - 139 */
|
||||
"", "", "SYSCTLR_ETH_RESET_B", "", "", /* 140 - 144 */
|
||||
"", "", "", "", "", /* 145 - 149 */
|
||||
"", "", "", "", "", /* 150 - 154 */
|
||||
"", "", "", "", "", /* 155 - 159 */
|
||||
"", "", "", "", "", /* 160 - 164 */
|
||||
"", "", "", "", "", /* 165 - 169 */
|
||||
"", "", "", ""; /* 170 - 174 */
|
||||
};
|
||||
|
||||
&i2c0 { /* MIO34/35 */
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
jtag_vref: mcp4725@62 {
|
||||
compatible = "microchip,mcp4725";
|
||||
reg = <0x62>;
|
||||
vref-millivolt = <3300>;
|
||||
};
|
||||
|
||||
eeprom: eeprom@50 { /* u46 */
|
||||
compatible = "atmel,24c32";
|
||||
reg = <0x50>;
|
||||
};
|
||||
/* u138 - TUSB320IRWBR - for USB-C */
|
||||
};
|
||||
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
xlnx,usb-polarity = <0>;
|
||||
xlnx,usb-reset-mode = <0>;
|
||||
};
|
||||
|
||||
&dwc3_0 {
|
||||
status = "okay";
|
||||
dr_mode = "peripheral";
|
||||
snps,dis_u2_susphy_quirk;
|
||||
snps,dis_u3_susphy_quirk;
|
||||
maximum-speed = "super-speed";
|
||||
phy-names = "usb3-phy";
|
||||
phys = <&psgtr 1 PHY_TYPE_USB3 0 1>;
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
status = "disabled"; /* Any unknown issue with USB-C */
|
||||
xlnx,usb-polarity = <0>;
|
||||
xlnx,usb-reset-mode = <0>;
|
||||
};
|
||||
|
||||
&dwc3_1 {
|
||||
/delete-property/ phy-names ;
|
||||
/delete-property/ phys ;
|
||||
dr_mode = "host";
|
||||
maximum-speed = "high-speed";
|
||||
snps,dis_u2_susphy_quirk ;
|
||||
snps,dis_u3_susphy_quirk ;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&xilinx_ams {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ams_ps {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ams_pl {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
is-decoded-cs = <0>;
|
||||
num-cs = <1>;
|
||||
u-boot,dm-pre-reloc;
|
||||
displayspi@0 {
|
||||
compatible = "syncoam,seps525";
|
||||
u-boot,dm-pre-reloc;
|
||||
reg = <0>;
|
||||
status = "okay";
|
||||
spi-max-frequency = <10000000>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
rotate = <0>;
|
||||
fps = <50>;
|
||||
buswidth = <8>;
|
||||
txbuflen = <64000>;
|
||||
reset-gpios = <&gpio 0x1c GPIO_ACTIVE_LOW>;
|
||||
dc-gpios = <&gpio 0x1b GPIO_ACTIVE_HIGH>;
|
||||
debug = <0>;
|
||||
};
|
||||
};
|
||||
@@ -46,7 +46,7 @@
|
||||
si5332_1: si5332_1 { /* clk0_sgmii - u142 */
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <33333333>; /* FIXME */
|
||||
clock-frequency = <125000000>;
|
||||
};
|
||||
|
||||
si5332_2: si5332_2 { /* clk1_usb - u142 */
|
||||
|
||||
@@ -104,6 +104,10 @@ ENTRY(_main)
|
||||
bic sp, x0, #0xf /* 16-byte alignment for ABI compliance */
|
||||
ldr x18, [x18, #GD_NEW_GD] /* x18 <- gd->new_gd */
|
||||
|
||||
/* Skip relocation in case gd->gd_flags & GD_FLG_SKIP_RELOC */
|
||||
ldr x0, [x18, #GD_FLAGS] /* x0 <- gd->flags */
|
||||
tbnz x0, 11, relocation_return /* GD_FLG_SKIP_RELOC is bit 11 */
|
||||
|
||||
adr lr, relocation_return
|
||||
#if CONFIG_POSITION_INDEPENDENT
|
||||
/* Add in link-vs-runtime offset */
|
||||
|
||||
@@ -210,7 +210,7 @@ ENTRY(memcpy)
|
||||
orr r9, r9, ip, lspush #\push
|
||||
mov ip, ip, lspull #\pull
|
||||
orr ip, ip, lr, lspush #\push
|
||||
str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f
|
||||
str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, abort=19f
|
||||
bge 12b
|
||||
PLD( cmn r2, #96 )
|
||||
PLD( bge 13b )
|
||||
|
||||
@@ -36,13 +36,15 @@ config TARGET_IMX8MQ_CM
|
||||
|
||||
config TARGET_IMX8MQ_EVK
|
||||
bool "imx8mq_evk"
|
||||
select BINMAN
|
||||
select IMX8MQ
|
||||
select IMX8M_LPDDR4
|
||||
|
||||
config TARGET_IMX8MQ_PHANBELL
|
||||
bool "imx8mq_phanbell"
|
||||
select IMX8MQ
|
||||
select IMX8M_LPDDR4
|
||||
bool "imx8mq_phanbell"
|
||||
select BINMAN
|
||||
select IMX8MQ
|
||||
select IMX8M_LPDDR4
|
||||
|
||||
config TARGET_IMX8MM_EVK
|
||||
bool "imx8mm LPDDR4 EVK board"
|
||||
@@ -71,6 +73,7 @@ config TARGET_IMX8MM_ICORE_MX8MM
|
||||
|
||||
config TARGET_IMX8MM_VENICE
|
||||
bool "Support Gateworks Venice iMX8M Mini module"
|
||||
select BINMAN
|
||||
select IMX8MM
|
||||
select SUPPORT_SPL
|
||||
select IMX8M_LPDDR4
|
||||
@@ -105,6 +108,7 @@ config TARGET_IMX8MP_EVK
|
||||
|
||||
config TARGET_PICO_IMX8MQ
|
||||
bool "Support Technexion Pico iMX8MQ"
|
||||
select BINMAN
|
||||
select IMX8MQ
|
||||
select IMX8M_LPDDR4
|
||||
|
||||
@@ -117,12 +121,14 @@ config TARGET_VERDIN_IMX8MM
|
||||
|
||||
config TARGET_IMX8MM_BEACON
|
||||
bool "imx8mm Beacon Embedded devkit"
|
||||
select BINMAN
|
||||
select IMX8MM
|
||||
select SUPPORT_SPL
|
||||
select IMX8M_LPDDR4
|
||||
|
||||
config TARGET_IMX8MN_BEACON
|
||||
bool "imx8mn Beacon Embedded devkit"
|
||||
select BINMAN
|
||||
select IMX8MN
|
||||
select SUPPORT_SPL
|
||||
select IMX8M_LPDDR4
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2018 NXP
|
||||
* Copyright 2018-2021 NXP
|
||||
*/
|
||||
|
||||
#define __ASSEMBLY__
|
||||
|
||||
FIT
|
||||
BOOT_FROM sd
|
||||
SIGNED_HDMI signed_hdmi_imx8m.bin
|
||||
LOADER spl/u-boot-spl-ddr.bin 0x7E1000
|
||||
SECOND_LOADER u-boot.itb 0x40200000 0x60000
|
||||
|
||||
DDR_FW lpddr4_pmu_train_1d_imem.bin
|
||||
DDR_FW lpddr4_pmu_train_1d_dmem.bin
|
||||
DDR_FW lpddr4_pmu_train_2d_imem.bin
|
||||
DDR_FW lpddr4_pmu_train_2d_dmem.bin
|
||||
SIGNED_HDMI signed_hdmi.bin
|
||||
LOADER u-boot-spl-ddr.bin 0x7e1000
|
||||
|
||||
@@ -569,7 +569,7 @@ config TARGET_KP_IMX6Q_TPC
|
||||
imply CMD_SPL
|
||||
|
||||
config TARGET_TQMA6
|
||||
bool "TQ Systems TQMa6 board"
|
||||
bool "TQ-Systems TQMa6 board"
|
||||
select BOARD_EARLY_INIT_F
|
||||
select BOARD_LATE_INIT
|
||||
select MXC_SPI
|
||||
@@ -588,6 +588,7 @@ config TARGET_UDOO
|
||||
depends on MX6QDL
|
||||
select BOARD_LATE_INIT
|
||||
select SUPPORT_SPL
|
||||
imply CMD_DM
|
||||
|
||||
config TARGET_UDOO_NEO
|
||||
bool "UDOO Neo"
|
||||
@@ -688,7 +689,7 @@ source "board/somlabs/visionsom-6ull/Kconfig"
|
||||
source "board/technexion/pico-imx6/Kconfig"
|
||||
source "board/technexion/pico-imx6ul/Kconfig"
|
||||
source "board/tbs/tbs2910/Kconfig"
|
||||
source "board/tqc/tqma6/Kconfig"
|
||||
source "board/tq/tqma6/Kconfig"
|
||||
source "board/toradex/apalis_imx6/Kconfig"
|
||||
source "board/toradex/colibri_imx6/Kconfig"
|
||||
source "board/toradex/colibri-imx6ull/Kconfig"
|
||||
|
||||
@@ -261,6 +261,8 @@ config ROCKCHIP_RK3399
|
||||
config ROCKCHIP_RK3568
|
||||
bool "Support Rockchip RK3568"
|
||||
select ARM64
|
||||
select SUPPORT_SPL
|
||||
select SPL
|
||||
select CLK
|
||||
select PINCTRL
|
||||
select RAM
|
||||
|
||||
@@ -95,7 +95,7 @@ int setup_boot_mode(void)
|
||||
switch (boot_mode) {
|
||||
case BOOT_FASTBOOT:
|
||||
debug("%s: enter fastboot!\n", __func__);
|
||||
env_set("preboot", "setenv preboot; fastboot usb0");
|
||||
env_set("preboot", "setenv preboot; fastboot usb 0");
|
||||
break;
|
||||
case BOOT_UMS:
|
||||
debug("%s: enter UMS!\n", __func__);
|
||||
|
||||
@@ -27,6 +27,14 @@ config TARGET_PX30_CORE
|
||||
* PX30.Core needs to mount on top of CTOUCH2.0 for creating complete
|
||||
PX30.Core C.TOUCH Carrier board.
|
||||
|
||||
PX30.Core CTOUCH2-OF10:
|
||||
* PX30.Core is an EDIMM SOM based on Rockchip PX30 from Engicam.
|
||||
* CTOUCH2.0 is a general purpose Carrier board with capacitive
|
||||
touch interface support.
|
||||
* 10.1" OF is a capacitive touch 10.1" Open Frame panel solutions.
|
||||
* PX30.Core needs to mount on top of C.TOUCH 2.0 carrier with pluged
|
||||
10.1" OF for creating complete PX30.Core C.TOUCH 2.0 10.1" Open Frame.
|
||||
|
||||
config ROCKCHIP_BOOT_MODE_REG
|
||||
default 0xff010200
|
||||
|
||||
|
||||
@@ -11,9 +11,18 @@
|
||||
#include <asm/arch-rockchip/hardware.h>
|
||||
#include <dt-bindings/clock/rk3568-cru.h>
|
||||
|
||||
#define PMUGRF_BASE 0xfdc20000
|
||||
#define GRF_BASE 0xfdc60000
|
||||
|
||||
#define PMUGRF_BASE 0xfdc20000
|
||||
#define GRF_BASE 0xfdc60000
|
||||
#define GRF_GPIO1B_DS_2 0x218
|
||||
#define GRF_GPIO1B_DS_3 0x21c
|
||||
#define GRF_GPIO1C_DS_0 0x220
|
||||
#define GRF_GPIO1C_DS_1 0x224
|
||||
#define GRF_GPIO1C_DS_2 0x228
|
||||
#define GRF_GPIO1C_DS_3 0x22c
|
||||
#define SGRF_BASE 0xFDD18000
|
||||
#define SGRF_SOC_CON4 0x10
|
||||
#define EMMC_HPROT_SECURE_CTRL 0x03
|
||||
#define SDMMC0_HPROT_SECURE_CTRL 0x01
|
||||
/* PMU_GRF_GPIO0D_IOMUX_L */
|
||||
enum {
|
||||
GPIO0D1_SHIFT = 4,
|
||||
@@ -81,5 +90,17 @@ void board_debug_uart_init(void)
|
||||
|
||||
int arch_cpu_init(void)
|
||||
{
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
/* Set the emmc sdmmc0 to secure */
|
||||
rk_clrreg(SGRF_BASE + SGRF_SOC_CON4, (EMMC_HPROT_SECURE_CTRL << 11
|
||||
| SDMMC0_HPROT_SECURE_CTRL << 4));
|
||||
/* set the emmc driver strength to level 2 */
|
||||
writel(0x3f3f0707, GRF_BASE + GRF_GPIO1B_DS_2);
|
||||
writel(0x3f3f0707, GRF_BASE + GRF_GPIO1B_DS_3);
|
||||
writel(0x3f3f0707, GRF_BASE + GRF_GPIO1C_DS_0);
|
||||
writel(0x3f3f0707, GRF_BASE + GRF_GPIO1C_DS_1);
|
||||
writel(0x3f3f0707, GRF_BASE + GRF_GPIO1C_DS_2);
|
||||
writel(0x3f3f0707, GRF_BASE + GRF_GPIO1C_DS_3);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2016-2017 Intel Corporation
|
||||
* Copyright (C) 2016-2021 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _SOCFPGA_MISC_H_
|
||||
@@ -45,7 +45,12 @@ int is_fpga_config_ready(void);
|
||||
#endif
|
||||
|
||||
void do_bridge_reset(int enable, unsigned int mask);
|
||||
void force_periph_program(unsigned int status);
|
||||
bool is_regular_boot_valid(void);
|
||||
bool is_periph_program_force(void);
|
||||
void set_regular_boot(unsigned int status);
|
||||
void socfpga_pl310_clear(void);
|
||||
void socfpga_get_managers_addr(void);
|
||||
int qspi_flash_software_reset(void);
|
||||
|
||||
#endif /* _SOCFPGA_MISC_H_ */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2016-2017 Intel Corporation
|
||||
* Copyright (C) 2016-2021 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef _RESET_MANAGER_ARRIA10_H_
|
||||
@@ -22,6 +22,7 @@ int socfpga_bridges_reset(void);
|
||||
#define RSTMGR_A10_PER1MODRST 0x28
|
||||
#define RSTMGR_A10_BRGMODRST 0x2c
|
||||
#define RSTMGR_A10_SYSMODRST 0x30
|
||||
#define RSTMGR_A10_SYSWARMMASK 0x50
|
||||
|
||||
#define RSTMGR_CTRL RSTMGR_A10_CTRL
|
||||
|
||||
@@ -115,4 +116,7 @@ int socfpga_bridges_reset(void);
|
||||
#define ALT_RSTMGR_HDSKEN_FPGAHSEN_SET_MSK BIT(2)
|
||||
#define ALT_RSTMGR_HDSKEN_ETRSTALLEN_SET_MSK BIT(3)
|
||||
|
||||
#define ALT_RSTMGR_FPGAMGRWARMMASK_S2F_SET_MSK BIT(3)
|
||||
#define ALT_RSTMGR_SYSWARMMASK_S2F_SET_MSK BIT(4)
|
||||
|
||||
#endif /* _RESET_MANAGER_ARRIA10_H_ */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2016-2017 Intel Corporation <www.intel.com>
|
||||
* Copyright (C) 2016-2021 Intel Corporation <www.intel.com>
|
||||
*/
|
||||
|
||||
#ifndef _SYSTEM_MANAGER_ARRIA10_H_
|
||||
@@ -31,6 +31,11 @@
|
||||
#define SYSMGR_A10_NOC_IDLEACK 0xd0
|
||||
#define SYSMGR_A10_NOC_IDLESTATUS 0xd4
|
||||
#define SYSMGR_A10_FPGA2SOC_CTRL 0xd8
|
||||
#define SYSMGR_A10_ROMCODE_CTRL 0x204
|
||||
#define SYSMGR_A10_ROMCODE_INITSWSTATE 0x20C
|
||||
#define SYSMGR_A10_ROMCODE_QSPIRESETCOMMAND 0x208
|
||||
#define SYSMGR_A10_ISW_HANDOFF_BASE 0x230
|
||||
#define SYSMGR_A10_ISW_HANDOFF_7 0x1c
|
||||
|
||||
#define SYSMGR_SDMMC SYSMGR_A10_SDMMC
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (C) 2016-2017 Intel Corporation
|
||||
* Copyright (C) 2016-2021 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <altera.h>
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <miiphy.h>
|
||||
#include <netdev.h>
|
||||
#include <ns16550.h>
|
||||
#include <spi_flash.h>
|
||||
#include <watchdog.h>
|
||||
#include <asm/arch/misc.h>
|
||||
#include <asm/arch/pinmux.h>
|
||||
@@ -21,6 +22,7 @@
|
||||
#include <asm/arch/nic301.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/pl310.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
#define PINMUX_UART0_TX_SHARED_IO_OFFSET_Q1_3 0x08
|
||||
#define PINMUX_UART0_TX_SHARED_IO_OFFSET_Q2_11 0x58
|
||||
@@ -29,6 +31,13 @@
|
||||
#define PINMUX_UART1_TX_SHARED_IO_OFFSET_Q3_7 0x78
|
||||
#define PINMUX_UART1_TX_SHARED_IO_OFFSET_Q4_3 0x98
|
||||
|
||||
#define REGULAR_BOOT_MAGIC 0xd15ea5e
|
||||
#define PERIPH_RBF_PROG_FORCE 0x50455249
|
||||
|
||||
#define QSPI_S25FL_SOFT_RESET_COMMAND 0x00f0ff82
|
||||
#define QSPI_N25_SOFT_RESET_COMMAND 0x00000001
|
||||
#define QSPI_NO_SOFT_RESET 0x00000000
|
||||
|
||||
/*
|
||||
* FPGA programming support for SoC FPGA Arria 10
|
||||
*/
|
||||
@@ -122,3 +131,118 @@ void do_bridge_reset(int enable, unsigned int mask)
|
||||
else
|
||||
socfpga_bridges_reset();
|
||||
}
|
||||
|
||||
/*
|
||||
* This function set/unset flag with number "0x50455249" to
|
||||
* handoff register isw_handoff[7] - 0xffd0624c
|
||||
* This flag is used to force periph RBF program regardless FPGA status
|
||||
* and double periph RBF config are needed on some devices or boards to
|
||||
* stabilize the IO config system.
|
||||
*/
|
||||
void force_periph_program(unsigned int status)
|
||||
{
|
||||
if (status)
|
||||
writel(PERIPH_RBF_PROG_FORCE, socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ISW_HANDOFF_BASE + SYSMGR_A10_ISW_HANDOFF_7);
|
||||
else
|
||||
writel(0, socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ISW_HANDOFF_BASE + SYSMGR_A10_ISW_HANDOFF_7);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is used to check whether
|
||||
* handoff register isw_handoff[7] contains
|
||||
* flag for forcing the periph RBF program "0x50455249".
|
||||
*/
|
||||
bool is_periph_program_force(void)
|
||||
{
|
||||
unsigned int status;
|
||||
|
||||
status = readl(socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ISW_HANDOFF_BASE + SYSMGR_A10_ISW_HANDOFF_7);
|
||||
|
||||
if (status == PERIPH_RBF_PROG_FORCE)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function set/unset magic number "0xd15ea5e" to
|
||||
* handoff register isw_handoff[7] - 0xffd0624c
|
||||
* This magic number is part of boot progress tracking
|
||||
* and it's required for warm reset workaround on MPFE hang issue.
|
||||
*/
|
||||
void set_regular_boot(unsigned int status)
|
||||
{
|
||||
if (status)
|
||||
writel(REGULAR_BOOT_MAGIC, socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ISW_HANDOFF_BASE + SYSMGR_A10_ISW_HANDOFF_7);
|
||||
else
|
||||
writel(0, socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ISW_HANDOFF_BASE + SYSMGR_A10_ISW_HANDOFF_7);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is used to check whether
|
||||
* handoff register isw_handoff[7] contains
|
||||
* magic number "0xd15ea5e".
|
||||
*/
|
||||
bool is_regular_boot_valid(void)
|
||||
{
|
||||
unsigned int status;
|
||||
|
||||
status = readl(socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ISW_HANDOFF_BASE + SYSMGR_A10_ISW_HANDOFF_7);
|
||||
|
||||
if (status == REGULAR_BOOT_MAGIC)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_CADENCE_QSPI)
|
||||
/* This function is used to trigger software reset
|
||||
* to the QSPI flash. On some boards, the QSPI flash reset may
|
||||
* not be connected to the HPS warm reset.
|
||||
*/
|
||||
int qspi_flash_software_reset(void)
|
||||
{
|
||||
struct udevice *flash;
|
||||
int ret;
|
||||
|
||||
/* Get the flash info */
|
||||
ret = spi_flash_probe_bus_cs(CONFIG_SF_DEFAULT_BUS,
|
||||
CONFIG_SF_DEFAULT_CS,
|
||||
CONFIG_SF_DEFAULT_SPEED,
|
||||
CONFIG_SF_DEFAULT_MODE,
|
||||
&flash);
|
||||
|
||||
if (ret) {
|
||||
debug("Failed to initialize SPI flash at ");
|
||||
debug("%u:%u (error %d)\n", CONFIG_SF_DEFAULT_BUS,
|
||||
CONFIG_SF_DEFAULT_CS, ret);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (!flash)
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* QSPI flash software reset command, for the case where
|
||||
* no HPS reset connected to QSPI flash reset
|
||||
*/
|
||||
if (!memcmp(flash->name, "N25", SZ_1 + SZ_2))
|
||||
writel(QSPI_N25_SOFT_RESET_COMMAND, socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ROMCODE_QSPIRESETCOMMAND);
|
||||
else if (!memcmp(flash->name, "S25FL", SZ_1 + SZ_4))
|
||||
writel(QSPI_S25FL_SOFT_RESET_COMMAND,
|
||||
socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ROMCODE_QSPIRESETCOMMAND);
|
||||
else /* No software reset */
|
||||
writel(QSPI_NO_SOFT_RESET, socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ROMCODE_QSPIRESETCOMMAND);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2012-2019 Altera Corporation <www.altera.com>
|
||||
* Copyright (C) 2012-2021 Altera Corporation <www.altera.com>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
@@ -30,8 +30,13 @@
|
||||
#include <asm/arch/fpga_manager.h>
|
||||
#include <mmc.h>
|
||||
#include <memalign.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#define FPGA_BUFSIZ 16 * 1024
|
||||
#define FSBL_IMAGE_IS_VALID 0x49535756
|
||||
|
||||
#define FSBL_IMAGE_IS_INVALID 0x0
|
||||
#define BOOTROM_CONFIGURES_IO_PINMUX 0x3
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
@@ -106,6 +111,8 @@ u32 spl_mmc_boot_mode(const u32 boot_device)
|
||||
|
||||
void spl_board_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ALLOC_CACHE_ALIGN_BUFFER(char, buf, FPGA_BUFSIZ);
|
||||
|
||||
/* enable console uart printing */
|
||||
@@ -116,8 +123,7 @@ void spl_board_init(void)
|
||||
|
||||
/* If the full FPGA is already loaded, ie.from EPCQ, config fpga pins */
|
||||
if (is_fpgamgr_user_mode()) {
|
||||
int ret = config_pins(gd->fdt_blob, "shared");
|
||||
|
||||
ret = config_pins(gd->fdt_blob, "shared");
|
||||
if (ret)
|
||||
return;
|
||||
|
||||
@@ -127,11 +133,110 @@ void spl_board_init(void)
|
||||
} else if (!is_fpgamgr_early_user_mode()) {
|
||||
/* Program IOSSM(early IO release) or full FPGA */
|
||||
fpgamgr_program(buf, FPGA_BUFSIZ, 0);
|
||||
|
||||
/* Skipping double program for combined RBF */
|
||||
if (!is_fpgamgr_user_mode()) {
|
||||
/*
|
||||
* Expect FPGA entered early user mode, so
|
||||
* the flag is set to re-program IOSSM
|
||||
*/
|
||||
force_periph_program(true);
|
||||
|
||||
/* Re-program IOSSM to stabilize IO system */
|
||||
fpgamgr_program(buf, FPGA_BUFSIZ, 0);
|
||||
|
||||
force_periph_program(false);
|
||||
}
|
||||
}
|
||||
|
||||
/* If the IOSSM/full FPGA is already loaded, start DDR */
|
||||
if (is_fpgamgr_early_user_mode() || is_fpgamgr_user_mode())
|
||||
if (is_fpgamgr_early_user_mode() || is_fpgamgr_user_mode()) {
|
||||
if (!is_regular_boot_valid()) {
|
||||
/*
|
||||
* Ensure all signals in stable state before triggering
|
||||
* warm reset. This value is recommended from stress
|
||||
* test.
|
||||
*/
|
||||
mdelay(10);
|
||||
|
||||
#if IS_ENABLED(CONFIG_CADENCE_QSPI)
|
||||
/*
|
||||
* Trigger software reset to QSPI flash.
|
||||
* On some boards, the QSPI flash reset may not be
|
||||
* connected to the HPS warm reset.
|
||||
*/
|
||||
qspi_flash_software_reset();
|
||||
#endif
|
||||
|
||||
ret = readl(socfpga_get_rstmgr_addr() +
|
||||
RSTMGR_A10_SYSWARMMASK);
|
||||
/*
|
||||
* Masking s2f & FPGA manager module reset from warm
|
||||
* reset
|
||||
*/
|
||||
writel(ret & (~(ALT_RSTMGR_SYSWARMMASK_S2F_SET_MSK |
|
||||
ALT_RSTMGR_FPGAMGRWARMMASK_S2F_SET_MSK)),
|
||||
socfpga_get_rstmgr_addr() +
|
||||
RSTMGR_A10_SYSWARMMASK);
|
||||
|
||||
/*
|
||||
* BootROM will configure both IO and pin mux after a
|
||||
* warm reset
|
||||
*/
|
||||
ret = readl(socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ROMCODE_CTRL);
|
||||
writel(ret | BOOTROM_CONFIGURES_IO_PINMUX,
|
||||
socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ROMCODE_CTRL);
|
||||
|
||||
/*
|
||||
* Up to here, image is considered valid and should be
|
||||
* set as valid before warm reset is triggered
|
||||
*/
|
||||
writel(FSBL_IMAGE_IS_VALID, socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ROMCODE_INITSWSTATE);
|
||||
|
||||
/*
|
||||
* Set this flag to scratch register, so that a proper
|
||||
* boot progress before / after warm reset can be
|
||||
* tracked by FSBL
|
||||
*/
|
||||
set_regular_boot(true);
|
||||
|
||||
WATCHDOG_RESET();
|
||||
|
||||
reset_cpu();
|
||||
}
|
||||
|
||||
/*
|
||||
* Reset this flag to scratch register, so that a proper
|
||||
* boot progress before / after warm reset can be
|
||||
* tracked by FSBL
|
||||
*/
|
||||
set_regular_boot(false);
|
||||
|
||||
ret = readl(socfpga_get_rstmgr_addr() +
|
||||
RSTMGR_A10_SYSWARMMASK);
|
||||
|
||||
/*
|
||||
* Unmasking s2f & FPGA manager module reset from warm
|
||||
* reset
|
||||
*/
|
||||
writel(ret | ALT_RSTMGR_SYSWARMMASK_S2F_SET_MSK |
|
||||
ALT_RSTMGR_FPGAMGRWARMMASK_S2F_SET_MSK,
|
||||
socfpga_get_rstmgr_addr() + RSTMGR_A10_SYSWARMMASK);
|
||||
|
||||
/*
|
||||
* Up to here, MPFE hang workaround is considered done and
|
||||
* should be reset as invalid until FSBL successfully loading
|
||||
* SSBL, and prepare jumping to SSBL, then only setting as
|
||||
* valid
|
||||
*/
|
||||
writel(FSBL_IMAGE_IS_INVALID, socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ROMCODE_INITSWSTATE);
|
||||
|
||||
ddr_calibration_sequence();
|
||||
}
|
||||
|
||||
if (!is_fpgamgr_user_mode())
|
||||
fpgamgr_program(buf, FPGA_BUFSIZ, 0);
|
||||
@@ -169,3 +274,10 @@ void board_init_f(ulong dummy)
|
||||
config_dedicated_pins(gd->fdt_blob);
|
||||
WATCHDOG_RESET();
|
||||
}
|
||||
|
||||
/* board specific function prior loading SSBL / U-Boot proper */
|
||||
void spl_board_prepare_for_boot(void)
|
||||
{
|
||||
writel(FSBL_IMAGE_IS_VALID, socfpga_get_sysmgr_addr() +
|
||||
SYSMGR_A10_ROMCODE_INITSWSTATE);
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ config SPL_SPI
|
||||
default y if ZYNQ_QSPI
|
||||
|
||||
config SYS_BOARD
|
||||
string "Board name"
|
||||
default "zynqmp"
|
||||
|
||||
config SYS_VENDOR
|
||||
@@ -149,6 +150,14 @@ config SPL_ZYNQMP_ALT_BOOTMODE_ENABLED
|
||||
Overwrite bootmode selected via boot mode pins to tell SPL what should
|
||||
be the next boot device.
|
||||
|
||||
config SPL_ZYNQMP_RESTORE_JTAG
|
||||
bool "Restore JTAG"
|
||||
depends on SPL
|
||||
help
|
||||
Booting SPL in secure mode causes the CSU to disable the JTAG interface
|
||||
even if no eFuses were burnt. This option restores the interface if
|
||||
possible.
|
||||
|
||||
config ZYNQ_SDHCI_MAX_FREQ
|
||||
default 200000000
|
||||
|
||||
|
||||
@@ -39,20 +39,26 @@
|
||||
#define RESET_REASON_INTERNAL BIT(1)
|
||||
#define RESET_REASON_EXTERNAL BIT(0)
|
||||
|
||||
#define CRLAPB_DBG_LPD_CTRL_SETUP_CLK 0x01002002
|
||||
#define CRLAPB_RST_LPD_DBG_RESET 0
|
||||
|
||||
struct crlapb_regs {
|
||||
u32 reserved0[36];
|
||||
u32 cpu_r5_ctrl; /* 0x90 */
|
||||
u32 reserved1[37];
|
||||
u32 reserved1[7];
|
||||
u32 dbg_lpd_ctrl; /* 0xB0 */
|
||||
u32 reserved2[29];
|
||||
u32 timestamp_ref_ctrl; /* 0x128 */
|
||||
u32 reserved2[53];
|
||||
u32 reserved3[53];
|
||||
u32 boot_mode; /* 0x200 */
|
||||
u32 reserved3_0[7];
|
||||
u32 reserved4_0[7];
|
||||
u32 reset_reason; /* 0x220 */
|
||||
u32 reserved3_1[6];
|
||||
u32 reserved4_1[6];
|
||||
u32 rst_lpd_top; /* 0x23C */
|
||||
u32 reserved4[4];
|
||||
u32 rst_lpd_dbg; /* 0x240 */
|
||||
u32 reserved5[3];
|
||||
u32 boot_pin_ctrl; /* 0x250 */
|
||||
u32 reserved5[21];
|
||||
u32 reserved6[21];
|
||||
};
|
||||
|
||||
#define crlapb_base ((struct crlapb_regs *)ZYNQMP_CRL_APB_BASEADDR)
|
||||
@@ -141,12 +147,23 @@ struct apu_regs {
|
||||
#define ZYNQMP_SILICON_VER_MASK 0xF
|
||||
#define ZYNQMP_SILICON_VER_SHIFT 0
|
||||
|
||||
#define CSU_JTAG_SEC_GATE_DISABLE GENMASK(7, 0)
|
||||
#define CSU_JTAG_DAP_ENABLE_DEBUG GENMASK(7, 0)
|
||||
#define CSU_JTAG_CHAIN_WR_SETUP GENMASK(1, 0)
|
||||
#define CSU_PCAP_PROG_RELEASE_PL BIT(0)
|
||||
|
||||
struct csu_regs {
|
||||
u32 reserved0[4];
|
||||
u32 multi_boot;
|
||||
u32 reserved1[11];
|
||||
u32 reserved1[7];
|
||||
u32 jtag_chain_status_wr;
|
||||
u32 jtag_chain_status;
|
||||
u32 jtag_sec;
|
||||
u32 jtag_dap_cfg;
|
||||
u32 idcode;
|
||||
u32 version;
|
||||
u32 reserved2[3055];
|
||||
u32 pcap_prog;
|
||||
};
|
||||
|
||||
#define csu_base ((struct csu_regs *)ZYNQMP_CSU_BASEADDR)
|
||||
|
||||
@@ -40,3 +40,16 @@ config SIFIVE_FU740
|
||||
imply DM_I2C
|
||||
imply SYS_I2C_OCORES
|
||||
imply SPL_I2C
|
||||
|
||||
if ENV_IS_IN_SPI_FLASH
|
||||
|
||||
config ENV_OFFSET
|
||||
default 0x505000
|
||||
|
||||
config ENV_SIZE
|
||||
default 0x20000
|
||||
|
||||
config ENV_SECT_SIZE
|
||||
default 0x10000
|
||||
|
||||
endif # ENV_IS_IN_SPI_FLASH
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
config {
|
||||
u-boot,spl-payload-offset = <0x105000>; /* loader2 @1044KB */
|
||||
};
|
||||
|
||||
hfclk {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
@@ -30,6 +34,13 @@
|
||||
clocks = <&rtcclk>;
|
||||
};
|
||||
|
||||
&qspi0 {
|
||||
u-boot,dm-spl;
|
||||
flash@0 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
mmc@0 {
|
||||
u-boot,dm-spl;
|
||||
|
||||
@@ -1,417 +1,157 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/* Copyright (c) 2020 Microchip Technology Inc */
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (C) 2021 Microchip Technology Inc.
|
||||
* Padmarao Begari <padmarao.begari@microchip.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "dt-bindings/clock/microchip-mpfs-clock.h"
|
||||
|
||||
#include "microchip-mpfs.dtsi"
|
||||
|
||||
/* Clock frequency (in Hz) of the rtcclk */
|
||||
#define RTCCLK_FREQ 1000000
|
||||
|
||||
/ {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
model = "Microchip MPFS Icicle Kit";
|
||||
compatible = "microchip,mpfs-icicle-kit";
|
||||
model = "Microchip PolarFire-SoC Icicle Kit";
|
||||
compatible = "microchip,mpfs-icicle-kit", "microchip,mpfs";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
ethernet0 = &emac1;
|
||||
serial1 = &uart1;
|
||||
ethernet0 = &mac1;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0";
|
||||
stdout-path = "serial1";
|
||||
};
|
||||
|
||||
cpucomplex: cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cpus {
|
||||
timebase-frequency = <RTCCLK_FREQ>;
|
||||
cpu0: cpu@0 {
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
compatible = "sifive,e51", "sifive,rocket0", "riscv";
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <128>;
|
||||
i-cache-size = <16384>;
|
||||
reg = <0>;
|
||||
riscv,isa = "rv64imac";
|
||||
status = "disabled";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu0intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
cpu1: cpu@1 {
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
|
||||
d-cache-block-size = <64>;
|
||||
d-cache-sets = <64>;
|
||||
d-cache-size = <32768>;
|
||||
d-tlb-sets = <1>;
|
||||
d-tlb-size = <32>;
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <64>;
|
||||
i-cache-size = <32768>;
|
||||
i-tlb-sets = <1>;
|
||||
i-tlb-size = <32>;
|
||||
mmu-type = "riscv,sv39";
|
||||
reg = <1>;
|
||||
riscv,isa = "rv64imafdc";
|
||||
tlb-split;
|
||||
status = "okay";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu1intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
cpu2: cpu@2 {
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
|
||||
d-cache-block-size = <64>;
|
||||
d-cache-sets = <64>;
|
||||
d-cache-size = <32768>;
|
||||
d-tlb-sets = <1>;
|
||||
d-tlb-size = <32>;
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <64>;
|
||||
i-cache-size = <32768>;
|
||||
i-tlb-sets = <1>;
|
||||
i-tlb-size = <32>;
|
||||
mmu-type = "riscv,sv39";
|
||||
reg = <2>;
|
||||
riscv,isa = "rv64imafdc";
|
||||
tlb-split;
|
||||
status = "okay";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu2intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
cpu3: cpu@3 {
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
|
||||
d-cache-block-size = <64>;
|
||||
d-cache-sets = <64>;
|
||||
d-cache-size = <32768>;
|
||||
d-tlb-sets = <1>;
|
||||
d-tlb-size = <32>;
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <64>;
|
||||
i-cache-size = <32768>;
|
||||
i-tlb-sets = <1>;
|
||||
i-tlb-size = <32>;
|
||||
mmu-type = "riscv,sv39";
|
||||
reg = <3>;
|
||||
riscv,isa = "rv64imafdc";
|
||||
tlb-split;
|
||||
status = "okay";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu3intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
cpu4: cpu@4 {
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
|
||||
d-cache-block-size = <64>;
|
||||
d-cache-sets = <64>;
|
||||
d-cache-size = <32768>;
|
||||
d-tlb-sets = <1>;
|
||||
d-tlb-size = <32>;
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <64>;
|
||||
i-cache-size = <32768>;
|
||||
i-tlb-sets = <1>;
|
||||
i-tlb-size = <32>;
|
||||
mmu-type = "riscv,sv39";
|
||||
reg = <4>;
|
||||
riscv,isa = "rv64imafdc";
|
||||
tlb-split;
|
||||
status = "okay";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu4intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
};
|
||||
refclk: refclk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <600000000>;
|
||||
clock-output-names = "msspllclk";
|
||||
};
|
||||
ddr: memory@80000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x0 0x40000000>;
|
||||
clocks = <&clkcfg CLK_DDRC>;
|
||||
};
|
||||
soc: soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
compatible = "microchip,mpfs-icicle-kit", "simple-bus";
|
||||
|
||||
reserved-memory {
|
||||
ranges;
|
||||
clint0: clint@2000000 {
|
||||
compatible = "riscv,clint0";
|
||||
interrupts-extended = <&cpu0intc 3 &cpu0intc 7
|
||||
&cpu1intc 3 &cpu1intc 7
|
||||
&cpu2intc 3 &cpu2intc 7
|
||||
&cpu3intc 3 &cpu3intc 7
|
||||
&cpu4intc 3 &cpu4intc 7>;
|
||||
reg = <0x0 0x2000000 0x0 0x10000>;
|
||||
reg-names = "control";
|
||||
clock-frequency = <RTCCLK_FREQ>;
|
||||
};
|
||||
cachecontroller: cache-controller@2010000 {
|
||||
compatible = "sifive,fu540-c000-ccache", "cache";
|
||||
cache-block-size = <64>;
|
||||
cache-level = <2>;
|
||||
cache-sets = <1024>;
|
||||
cache-size = <2097152>;
|
||||
cache-unified;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <1 2 3>;
|
||||
reg = <0x0 0x2010000 0x0 0x1000>;
|
||||
};
|
||||
plic: interrupt-controller@c000000 {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "sifive,plic-1.0.0";
|
||||
reg = <0x0 0xc000000 0x0 0x4000000>;
|
||||
riscv,max-priority = <7>;
|
||||
riscv,ndev = <186>;
|
||||
interrupt-controller;
|
||||
interrupts-extended = <
|
||||
&cpu0intc 11
|
||||
&cpu1intc 11 &cpu1intc 9
|
||||
&cpu2intc 11 &cpu2intc 9
|
||||
&cpu3intc 11 &cpu3intc 9
|
||||
&cpu4intc 11 &cpu4intc 9>;
|
||||
};
|
||||
uart0: serial@20000000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0x20000000 0x0 0x400>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <90>;
|
||||
clocks = <&clkcfg CLK_MMUART0>;
|
||||
status = "okay";
|
||||
};
|
||||
clkcfg: clkcfg@20002000 {
|
||||
compatible = "microchip,mpfs-clkcfg";
|
||||
reg = <0x0 0x20002000 0x0 0x1000>;
|
||||
reg-names = "mss_sysreg";
|
||||
clocks = <&refclk>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "cpu", "axi", "ahb", "envm",
|
||||
"mac0", "mac1", "mmc", "timer",
|
||||
"mmuart0", "mmuart1", "mmuart2",
|
||||
"mmuart3", "mmuart4", "spi0", "spi1",
|
||||
"i2c0", "i2c1", "can0", "can1", "usb",
|
||||
"reserved", "rtc", "qspi", "gpio0",
|
||||
"gpio1", "gpio2", "ddrc", "fic0",
|
||||
"fic1", "fic2", "fic3", "athena",
|
||||
"cfm";
|
||||
};
|
||||
emmc: mmc@20008000 {
|
||||
compatible = "cdns,sd4hc";
|
||||
reg = <0x0 0x20008000 0x0 0x1000>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <88 89>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&clkcfg CLK_MMC>;
|
||||
bus-width = <4>;
|
||||
cap-mmc-highspeed;
|
||||
mmc-ddr-3_3v;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
no-sd;
|
||||
no-sdio;
|
||||
voltage-ranges = <3300 3300>;
|
||||
status = "okay";
|
||||
};
|
||||
sdcard: sd@20008000 {
|
||||
compatible = "cdns,sd4hc";
|
||||
reg = <0x0 0x20008000 0x0 0x1000>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <88>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&clkcfg CLK_MMC>;
|
||||
bus-width = <4>;
|
||||
disable-wp;
|
||||
cap-sd-highspeed;
|
||||
card-detect-delay = <200>;
|
||||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr50;
|
||||
sd-uhs-sdr104;
|
||||
max-frequency = <200000000>;
|
||||
status = "disabled";
|
||||
};
|
||||
uart1: serial@20100000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0x20100000 0x0 0x400>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <91>;
|
||||
clocks = <&clkcfg CLK_MMUART1>;
|
||||
status = "okay";
|
||||
};
|
||||
uart2: serial@20102000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0x20102000 0x0 0x400>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <92>;
|
||||
clocks = <&clkcfg CLK_MMUART2>;
|
||||
status = "okay";
|
||||
};
|
||||
uart3: serial@20104000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0x20104000 0x0 0x400>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <93>;
|
||||
clocks = <&clkcfg CLK_MMUART3>;
|
||||
status = "okay";
|
||||
};
|
||||
i2c0: i2c@2010a000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "microchip,mpfs-mss-i2c";
|
||||
reg = <0x0 0x2010a000 0x0 0x1000>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <58>;
|
||||
clocks = <&clkcfg CLK_I2C0>;
|
||||
status = "disabled";
|
||||
};
|
||||
i2c1: i2c@2010b000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "microchip,mpfs-mss-i2c";
|
||||
reg = <0x0 0x2010b000 0x0 0x1000>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <61>;
|
||||
clocks = <&clkcfg CLK_I2C1>;
|
||||
status = "disabled";
|
||||
pac193x@10 {
|
||||
compatible = "microchip,pac1934";
|
||||
reg = <0x10>;
|
||||
samp-rate = <64>;
|
||||
status = "disabled";
|
||||
ch1: channel0 {
|
||||
uohms-shunt-res = <10000>;
|
||||
rail-name = "VDD";
|
||||
channel_enabled;
|
||||
};
|
||||
ch2: channel1 {
|
||||
uohms-shunt-res = <10000>;
|
||||
rail-name = "VDDA25";
|
||||
channel_enabled;
|
||||
};
|
||||
ch3: channel2 {
|
||||
uohms-shunt-res = <10000>;
|
||||
rail-name = "VDD25";
|
||||
channel_enabled;
|
||||
};
|
||||
ch4: channel3 {
|
||||
uohms-shunt-res = <10000>;
|
||||
rail-name = "VDDA";
|
||||
channel_enabled;
|
||||
};
|
||||
};
|
||||
};
|
||||
emac0: ethernet@20110000 {
|
||||
compatible = "microchip,mpfs-mss-gem";
|
||||
reg = <0x0 0x20110000 0x0 0x2000>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <64 65 66 67>;
|
||||
local-mac-address = [56 34 00 FC 00 02];
|
||||
phy-mode = "sgmii";
|
||||
clocks = <&clkcfg CLK_MAC0>, <&clkcfg CLK_AXI>;
|
||||
clock-names = "pclk", "hclk";
|
||||
status = "disabled";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <2>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
phy-handle = <&phy0>;
|
||||
phy0: ethernet-phy@8 {
|
||||
reg = <8>;
|
||||
ti,fifo-depth = <0x01>;
|
||||
};
|
||||
fabricbuf0: fabricbuf@0 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x0 0xae000000 0x0 0x2000000>;
|
||||
label = "fabricbuf0-ddr-c";
|
||||
};
|
||||
emac1: ethernet@20112000 {
|
||||
compatible = "microchip,mpfs-mss-gem";
|
||||
reg = <0x0 0x20112000 0x0 0x2000>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <70 71 72 73>;
|
||||
local-mac-address = [00 00 00 00 00 00];
|
||||
phy-mode = "sgmii";
|
||||
clocks = <&clkcfg CLK_MAC1>, <&clkcfg CLK_AHB>;
|
||||
clock-names = "pclk", "hclk";
|
||||
status = "okay";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
phy-handle = <&phy1>;
|
||||
phy1: ethernet-phy@9 {
|
||||
reg = <9>;
|
||||
ti,fifo-depth = <0x01>;
|
||||
};
|
||||
fabricbuf1: fabricbuf@1 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x0 0xc0000000 0x0 0x8000000>;
|
||||
label = "fabricbuf1-ddr-nc";
|
||||
};
|
||||
gpio: gpio@20122000 {
|
||||
compatible = "microchip,mpfs-mss-gpio";
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
||||
27 28 29 30 31 32 33 34 35 36 37 38 39
|
||||
40 41 42 43 44>;
|
||||
gpio-controller;
|
||||
clocks = <&clkcfg CLK_GPIO2>;
|
||||
reg = <0x00 0x20122000 0x0 0x1000>;
|
||||
reg-names = "control";
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
|
||||
fabricbuf2: fabricbuf@2 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x0 0xd8000000 0x0 0x8000000>;
|
||||
label = "fabricbuf2-ddr-nc-wcb";
|
||||
};
|
||||
};
|
||||
|
||||
udmabuf0 {
|
||||
compatible = "ikwzm,u-dma-buf";
|
||||
device-name = "udmabuf-ddr-c0";
|
||||
minor-number = <0>;
|
||||
size = <0x0 0x2000000>;
|
||||
memory-region = <&fabricbuf0>;
|
||||
sync-mode = <3>;
|
||||
};
|
||||
|
||||
udmabuf1 {
|
||||
compatible = "ikwzm,u-dma-buf";
|
||||
device-name = "udmabuf-ddr-nc0";
|
||||
minor-number = <1>;
|
||||
size = <0x0 0x8000000>;
|
||||
memory-region = <&fabricbuf1>;
|
||||
sync-mode = <3>;
|
||||
};
|
||||
|
||||
udmabuf2 {
|
||||
compatible = "ikwzm,u-dma-buf";
|
||||
device-name = "udmabuf-ddr-nc-wcb0";
|
||||
minor-number = <2>;
|
||||
size = <0x0 0x8000000>;
|
||||
memory-region = <&fabricbuf2>;
|
||||
sync-mode = <3>;
|
||||
};
|
||||
|
||||
ddrc_cache_lo: memory@80000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x0 0x2e000000>;
|
||||
clocks = <&clkcfg CLK_DDRC>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ddrc_cache_hi: memory@1000000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x10 0x0 0x0 0x40000000>;
|
||||
clocks = <&clkcfg CLK_DDRC>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc {
|
||||
status = "okay";
|
||||
|
||||
bus-width = <4>;
|
||||
disable-wp;
|
||||
cap-mmc-highspeed;
|
||||
cap-sd-highspeed;
|
||||
card-detect-delay = <200>;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr50;
|
||||
sd-uhs-sdr104;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
|
||||
pac193x: pac193x@10 {
|
||||
compatible = "microchip,pac1934";
|
||||
reg = <0x10>;
|
||||
samp-rate = <64>;
|
||||
status = "okay";
|
||||
ch1: channel0 {
|
||||
uohms-shunt-res = <10000>;
|
||||
rail-name = "VDDREG";
|
||||
channel_enabled;
|
||||
};
|
||||
ch2: channel1 {
|
||||
uohms-shunt-res = <10000>;
|
||||
rail-name = "VDDA25";
|
||||
channel_enabled;
|
||||
};
|
||||
ch3: channel2 {
|
||||
uohms-shunt-res = <10000>;
|
||||
rail-name = "VDD25";
|
||||
channel_enabled;
|
||||
};
|
||||
ch4: channel3 {
|
||||
uohms-shunt-res = <10000>;
|
||||
rail-name = "VDDA_REG";
|
||||
channel_enabled;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mac1 {
|
||||
status = "okay";
|
||||
phy-mode = "sgmii";
|
||||
phy-handle = <&phy1>;
|
||||
phy1: ethernet-phy@9 {
|
||||
reg = <9>;
|
||||
ti,fifo-depth = <0x1>;
|
||||
};
|
||||
};
|
||||
|
||||
571
arch/riscv/dts/microchip-mpfs.dtsi
Normal file
571
arch/riscv/dts/microchip-mpfs.dtsi
Normal file
@@ -0,0 +1,571 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/* Copyright (c) 2020-2021 Microchip Technology Inc */
|
||||
|
||||
#include "dt-bindings/clock/microchip-mpfs-clock.h"
|
||||
#include "dt-bindings/interrupt-controller/microchip-mpfs-plic.h"
|
||||
#include "dt-bindings/interrupt-controller/riscv-hart.h"
|
||||
|
||||
/ {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
model = "Microchip PolarFire SoC";
|
||||
compatible = "microchip,mpfs";
|
||||
|
||||
chosen {
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu0: cpu@0 {
|
||||
compatible = "sifive,e51", "sifive,rocket0", "riscv";
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <128>;
|
||||
i-cache-size = <16384>;
|
||||
reg = <0>;
|
||||
riscv,isa = "rv64imac";
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
status = "disabled";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu0_intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
|
||||
d-cache-block-size = <64>;
|
||||
d-cache-sets = <64>;
|
||||
d-cache-size = <32768>;
|
||||
d-tlb-sets = <1>;
|
||||
d-tlb-size = <32>;
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <64>;
|
||||
i-cache-size = <32768>;
|
||||
i-tlb-sets = <1>;
|
||||
i-tlb-size = <32>;
|
||||
mmu-type = "riscv,sv39";
|
||||
reg = <1>;
|
||||
riscv,isa = "rv64imafdc";
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
tlb-split;
|
||||
status = "okay";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu1_intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
|
||||
d-cache-block-size = <64>;
|
||||
d-cache-sets = <64>;
|
||||
d-cache-size = <32768>;
|
||||
d-tlb-sets = <1>;
|
||||
d-tlb-size = <32>;
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <64>;
|
||||
i-cache-size = <32768>;
|
||||
i-tlb-sets = <1>;
|
||||
i-tlb-size = <32>;
|
||||
mmu-type = "riscv,sv39";
|
||||
reg = <2>;
|
||||
riscv,isa = "rv64imafdc";
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
tlb-split;
|
||||
status = "okay";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu2_intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
|
||||
d-cache-block-size = <64>;
|
||||
d-cache-sets = <64>;
|
||||
d-cache-size = <32768>;
|
||||
d-tlb-sets = <1>;
|
||||
d-tlb-size = <32>;
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <64>;
|
||||
i-cache-size = <32768>;
|
||||
i-tlb-sets = <1>;
|
||||
i-tlb-size = <32>;
|
||||
mmu-type = "riscv,sv39";
|
||||
reg = <3>;
|
||||
riscv,isa = "rv64imafdc";
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
tlb-split;
|
||||
status = "okay";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu3_intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
cpu4: cpu@4 {
|
||||
compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
|
||||
d-cache-block-size = <64>;
|
||||
d-cache-sets = <64>;
|
||||
d-cache-size = <32768>;
|
||||
d-tlb-sets = <1>;
|
||||
d-tlb-size = <32>;
|
||||
device_type = "cpu";
|
||||
i-cache-block-size = <64>;
|
||||
i-cache-sets = <64>;
|
||||
i-cache-size = <32768>;
|
||||
i-tlb-sets = <1>;
|
||||
i-tlb-size = <32>;
|
||||
mmu-type = "riscv,sv39";
|
||||
reg = <4>;
|
||||
riscv,isa = "rv64imafdc";
|
||||
clocks = <&clkcfg CLK_CPU>;
|
||||
tlb-split;
|
||||
status = "okay";
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
600000 1100000
|
||||
300000 950000
|
||||
150000 750000
|
||||
>;
|
||||
cpu4_intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
compatible = "microchip,mpfs-soc", "simple-bus";
|
||||
ranges;
|
||||
|
||||
clint: clint@2000000 {
|
||||
compatible = "sifive,clint0";
|
||||
reg = <0x0 0x2000000 0x0 0xC000>;
|
||||
interrupts-extended =
|
||||
<&cpu0_intc HART_INT_M_SOFT &cpu0_intc HART_INT_M_TIMER
|
||||
&cpu1_intc HART_INT_M_SOFT &cpu1_intc HART_INT_M_TIMER
|
||||
&cpu2_intc HART_INT_M_SOFT &cpu2_intc HART_INT_M_TIMER
|
||||
&cpu3_intc HART_INT_M_SOFT &cpu3_intc HART_INT_M_TIMER
|
||||
&cpu4_intc HART_INT_M_SOFT &cpu4_intc HART_INT_M_TIMER>;
|
||||
};
|
||||
|
||||
cachecontroller: cache-controller@2010000 {
|
||||
compatible = "sifive,fu540-c000-ccache", "cache";
|
||||
reg = <0x0 0x2010000 0x0 0x1000>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_L2_METADATA_CORR
|
||||
PLIC_INT_L2_METADATA_UNCORR
|
||||
PLIC_INT_L2_DATA_CORR>;
|
||||
cache-block-size = <64>;
|
||||
cache-level = <2>;
|
||||
cache-sets = <1024>;
|
||||
cache-size = <2097152>;
|
||||
cache-unified;
|
||||
};
|
||||
|
||||
pdma: pdma@3000000 {
|
||||
compatible = "microchip,mpfs-pdma-uio","sifive,fu540-c000-pdma";
|
||||
reg = <0x0 0x3000000 0x0 0x8000>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_DMA_CH0_DONE PLIC_INT_DMA_CH0_ERR
|
||||
PLIC_INT_DMA_CH1_DONE PLIC_INT_DMA_CH1_ERR
|
||||
PLIC_INT_DMA_CH2_DONE PLIC_INT_DMA_CH2_ERR
|
||||
PLIC_INT_DMA_CH3_DONE PLIC_INT_DMA_CH3_ERR>;
|
||||
#dma-cells = <1>;
|
||||
};
|
||||
|
||||
plic: interrupt-controller@c000000 {
|
||||
compatible = "sifive,plic-1.0.0";
|
||||
reg = <0x0 0xc000000 0x0 0x4000000>;
|
||||
#interrupt-cells = <1>;
|
||||
riscv,ndev = <186>;
|
||||
interrupt-controller;
|
||||
interrupts-extended = <&cpu0_intc HART_INT_M_EXT
|
||||
&cpu1_intc HART_INT_M_EXT &cpu1_intc HART_INT_S_EXT
|
||||
&cpu2_intc HART_INT_M_EXT &cpu2_intc HART_INT_S_EXT
|
||||
&cpu3_intc HART_INT_M_EXT &cpu3_intc HART_INT_S_EXT
|
||||
&cpu4_intc HART_INT_M_EXT &cpu4_intc HART_INT_S_EXT>;
|
||||
};
|
||||
|
||||
refclk: refclk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <600000000>;
|
||||
clock-output-names = "msspllclk";
|
||||
};
|
||||
|
||||
clkcfg: clkcfg@20002000 {
|
||||
compatible = "microchip,mpfs-clkcfg";
|
||||
reg = <0x0 0x20002000 0x0 0x1000>;
|
||||
reg-names = "mss_sysreg";
|
||||
clocks = <&refclk>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "cpu", "axi", "ahb", "envm", /* 0-3 */
|
||||
"mac0", "mac1", "mmc", "timer", /* 4-7 */
|
||||
"mmuart0", "mmuart1", "mmuart2", "mmuart3", /* 8-11 */
|
||||
"mmuart4", "spi0", "spi1", "i2c0", /* 12-15 */
|
||||
"i2c1", "can0", "can1", "usb", /* 16-19 */
|
||||
"rsvd", "rtc", "qspi", "gpio0", /* 20-23 */
|
||||
"gpio1", "gpio2", "ddrc", "fic0", /* 24-27 */
|
||||
"fic1", "fic2", "fic3", "athena", "cfm"; /* 28-32 */
|
||||
};
|
||||
|
||||
/* Common node entry for eMMC/SD */
|
||||
mmc: mmc@20008000 {
|
||||
compatible = "microchip,mpfs-sd4hc","cdns,sd4hc";
|
||||
reg = <0x0 0x20008000 0x0 0x1000>;
|
||||
clocks = <&clkcfg CLK_MMC>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_MMC_MAIN PLIC_INT_MMC_WAKEUP>;
|
||||
max-frequency = <200000000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart0: serial@20000000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0x20000000 0x0 0x400>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_MMUART0>;
|
||||
clocks = <&clkcfg CLK_MMUART0>;
|
||||
status = "disabled"; /* Reserved for the HSS */
|
||||
};
|
||||
|
||||
uart1: serial@20100000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0x20100000 0x0 0x400>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_MMUART1>;
|
||||
clocks = <&clkcfg CLK_MMUART1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@20102000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0x20102000 0x0 0x400>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_MMUART2>;
|
||||
clocks = <&clkcfg CLK_MMUART2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: serial@20104000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0x20104000 0x0 0x400>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_MMUART3>;
|
||||
clocks = <&clkcfg CLK_MMUART3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: serial@20106000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0x20106000 0x0 0x400>;
|
||||
reg-io-width = <4>;
|
||||
reg-shift = <2>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_MMUART4>;
|
||||
clocks = <&clkcfg CLK_MMUART4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi0: spi@20108000 {
|
||||
compatible = "microchip,mpfs-spi";
|
||||
reg = <0x0 0x20108000 0x0 0x1000>;
|
||||
clocks = <&clkcfg CLK_SPI0>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_SPI0>;
|
||||
num-cs = <8>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi1: spi@20109000 {
|
||||
compatible = "microchip,mpfs-spi";
|
||||
reg = <0x0 0x20109000 0x0 0x1000>;
|
||||
clocks = <&clkcfg CLK_SPI1>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_SPI1>;
|
||||
num-cs = <8>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@2010a000 {
|
||||
compatible = "microchip,mpfs-i2c";
|
||||
reg = <0x0 0x2010a000 0x0 0x1000>;
|
||||
clocks = <&clkcfg CLK_I2C0>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_I2C0_MAIN>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@2010b000 {
|
||||
compatible = "microchip,mpfs-i2c";
|
||||
reg = <0x0 0x2010b000 0x0 0x1000>;
|
||||
clocks = <&clkcfg CLK_I2C1>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_I2C1_MAIN>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
can0: can@2010c000 {
|
||||
compatible = "microchip,mpfs-can-uio";
|
||||
reg = <0x0 0x2010c000 0x0 0x1000>;
|
||||
clocks = <&clkcfg CLK_CAN0>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_CAN0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
can1: can@2010d000 {
|
||||
compatible = "microchip,mpfs-can-uio";
|
||||
reg = <0x0 0x2010d000 0x0 0x1000>;
|
||||
clocks = <&clkcfg CLK_CAN1>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_CAN1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mac0: ethernet@20110000 {
|
||||
compatible = "cdns,macb";
|
||||
reg = <0x0 0x20110000 0x0 0x2000>;
|
||||
clocks = <&clkcfg CLK_MAC0>, <&clkcfg CLK_AHB>;
|
||||
clock-names = "pclk", "hclk";
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_MAC0_INT
|
||||
PLIC_INT_MAC0_QUEUE1
|
||||
PLIC_INT_MAC0_QUEUE2
|
||||
PLIC_INT_MAC0_QUEUE3
|
||||
PLIC_INT_MAC0_EMAC
|
||||
PLIC_INT_MAC0_MMSL>;
|
||||
local-mac-address = [00 00 00 00 00 00];
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
mac1: ethernet@20112000 {
|
||||
compatible = "cdns,macb";
|
||||
reg = <0x0 0x20112000 0x0 0x2000>;
|
||||
clocks = <&clkcfg CLK_MAC1>, <&clkcfg CLK_AHB>;
|
||||
clock-names = "pclk", "hclk";
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_MAC1_INT
|
||||
PLIC_INT_MAC1_QUEUE1
|
||||
PLIC_INT_MAC1_QUEUE2
|
||||
PLIC_INT_MAC1_QUEUE3
|
||||
PLIC_INT_MAC1_EMAC
|
||||
PLIC_INT_MAC1_MMSL>;
|
||||
local-mac-address = [00 00 00 00 00 00];
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
gpio0: gpio@20120000 {
|
||||
compatible = "microchip,mpfs-gpio";
|
||||
reg = <0x0 0x20120000 0x0 0x1000>;
|
||||
reg-names = "control";
|
||||
clocks = <&clkcfg CLK_GPIO0>;
|
||||
interrupt-parent = <&plic>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpio1: gpio@20121000 {
|
||||
compatible = "microchip,mpfs-gpio";
|
||||
reg = <000 0x20121000 0x0 0x1000>;
|
||||
reg-names = "control";
|
||||
clocks = <&clkcfg CLK_GPIO1>;
|
||||
interrupt-parent = <&plic>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpio2: gpio@20122000 {
|
||||
compatible = "microchip,mpfs-gpio";
|
||||
reg = <0x0 0x20122000 0x0 0x1000>;
|
||||
reg-names = "control";
|
||||
clocks = <&clkcfg CLK_GPIO2>;
|
||||
interrupt-parent = <&plic>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rtc: rtc@20124000 {
|
||||
compatible = "microchip,mpfs-rtc";
|
||||
reg = <0x0 0x20124000 0x0 0x1000>;
|
||||
clocks = <&clkcfg CLK_RTC>;
|
||||
clock-names = "rtc";
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_RTC_WAKEUP PLIC_INT_RTC_MATCH>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb: usb@20201000 {
|
||||
compatible = "microchip,mpfs-usb-host";
|
||||
reg = <0x0 0x20201000 0x0 0x1000>;
|
||||
reg-names = "mc","control";
|
||||
clocks = <&clkcfg CLK_USB>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_USB_DMA PLIC_INT_USB_MC>;
|
||||
interrupt-names = "dma","mc";
|
||||
dr_mode = "host";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
qspi: qspi@21000000 {
|
||||
compatible = "microchip,mpfs-qspi";
|
||||
reg = <0x0 0x21000000 0x0 0x1000>;
|
||||
clocks = <&clkcfg CLK_QSPI>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_QSPI>;
|
||||
num-cs = <8>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mbox: mailbox@37020000 {
|
||||
compatible = "microchip,mpfs-mailbox";
|
||||
reg = <0x0 0x37020000 0x0 0x1000>, <0x0 0x2000318C 0x0 0x40>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_G5C_MESSAGE>;
|
||||
#mbox-cells = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pcie: pcie@2000000000 {
|
||||
compatible = "microchip,pcie-host-1.0";
|
||||
#address-cells = <0x3>;
|
||||
#interrupt-cells = <0x1>;
|
||||
#size-cells = <0x2>;
|
||||
device_type = "pci";
|
||||
reg = <0x20 0x0 0x0 0x8000000 0x0 0x43000000 0x0 0x10000>;
|
||||
reg-names = "cfg", "apb";
|
||||
clocks = <&clkcfg CLK_FIC0>, <&clkcfg CLK_FIC1>, <&clkcfg CLK_FIC3>;
|
||||
clock-names = "fic0", "fic1", "fic3";
|
||||
bus-range = <0x0 0x7f>;
|
||||
interrupt-parent = <&plic>;
|
||||
interrupts = <PLIC_INT_FABRIC_F2H_2>;
|
||||
interrupt-map = <0 0 0 1 &pcie_intc 0>,
|
||||
<0 0 0 2 &pcie_intc 1>,
|
||||
<0 0 0 3 &pcie_intc 2>,
|
||||
<0 0 0 4 &pcie_intc 3>;
|
||||
interrupt-map-mask = <0 0 0 7>;
|
||||
ranges = <0x3000000 0x0 0x8000000 0x20 0x8000000 0x0 0x80000000>;
|
||||
msi-parent = <&pcie>;
|
||||
msi-controller;
|
||||
mchp,axi-m-atr0 = <0x10 0x0>;
|
||||
status = "disabled";
|
||||
pcie_intc: legacy-interrupt-controller {
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
syscontroller: syscontroller {
|
||||
compatible = "microchip,mpfs-sys-controller";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
mboxes = <&mbox 0>;
|
||||
};
|
||||
|
||||
hwrandom: hwrandom {
|
||||
compatible = "microchip,mpfs-rng";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
syscontroller = <&syscontroller>;
|
||||
};
|
||||
|
||||
serialnum: serialnum {
|
||||
compatible = "microchip,mpfs-serial-number";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
syscontroller = <&syscontroller>;
|
||||
};
|
||||
|
||||
fpgadigest: fpgadigest {
|
||||
compatible = "microchip,mpfs-digest";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
syscontroller = <&syscontroller>;
|
||||
};
|
||||
|
||||
devicecert: cert {
|
||||
compatible = "microchip,mpfs-device-cert";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
syscontroller = <&syscontroller>;
|
||||
};
|
||||
|
||||
signature: signature {
|
||||
compatible = "microchip,mpfs-signature";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
syscontroller = <&syscontroller>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -434,8 +434,10 @@ void __efi_runtime EFIAPI efi_reset_system(
|
||||
efi_status_t reset_status,
|
||||
unsigned long data_size, void *reset_data)
|
||||
{
|
||||
os_fd_restore();
|
||||
os_relaunch(os_argv);
|
||||
if (reset_type == EFI_RESET_SHUTDOWN)
|
||||
sandbox_exit();
|
||||
else
|
||||
sandbox_reset();
|
||||
}
|
||||
|
||||
void sandbox_reset(void)
|
||||
|
||||
@@ -498,6 +498,10 @@
|
||||
compatible = "sandbox,clk-ccf";
|
||||
};
|
||||
|
||||
efi-media {
|
||||
compatible = "sandbox,efi-media";
|
||||
};
|
||||
|
||||
eth@10002000 {
|
||||
compatible = "sandbox,eth";
|
||||
reg = <0x10002000 0x1000>;
|
||||
|
||||
@@ -43,6 +43,23 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
#define OMNIA_I2C_EEPROM_CHIP_LEN 2
|
||||
#define OMNIA_I2C_EEPROM_MAGIC 0x0341a034
|
||||
|
||||
#define SYS_RSTOUT_MASK MVEBU_REGISTER(0x18260)
|
||||
#define SYS_RSTOUT_MASK_WD BIT(10)
|
||||
|
||||
#define A385_WDT_GLOBAL_CTRL MVEBU_REGISTER(0x20300)
|
||||
#define A385_WDT_GLOBAL_RATIO_MASK GENMASK(18, 16)
|
||||
#define A385_WDT_GLOBAL_RATIO_SHIFT 16
|
||||
#define A385_WDT_GLOBAL_25MHZ BIT(10)
|
||||
#define A385_WDT_GLOBAL_ENABLE BIT(8)
|
||||
|
||||
#define A385_WDT_GLOBAL_STATUS MVEBU_REGISTER(0x20304)
|
||||
#define A385_WDT_GLOBAL_EXPIRED BIT(31)
|
||||
|
||||
#define A385_WDT_DURATION MVEBU_REGISTER(0x20334)
|
||||
|
||||
#define A385_WD_RSTOUT_UNMASK MVEBU_REGISTER(0x20704)
|
||||
#define A385_WD_RSTOUT_UNMASK_GLOBAL BIT(8)
|
||||
|
||||
enum mcu_commands {
|
||||
CMD_GET_STATUS_WORD = 0x01,
|
||||
CMD_GET_RESET = 0x09,
|
||||
@@ -141,6 +158,47 @@ static int omnia_mcu_write(u8 cmd, const void *buf, int len)
|
||||
return dm_i2c_write(chip, cmd, buf, len);
|
||||
}
|
||||
|
||||
static void enable_a385_watchdog(unsigned int timeout_minutes)
|
||||
{
|
||||
struct sar_freq_modes sar_freq;
|
||||
u32 watchdog_freq;
|
||||
|
||||
printf("Enabling A385 watchdog with %u minutes timeout...\n",
|
||||
timeout_minutes);
|
||||
|
||||
/*
|
||||
* Use NBCLK clock (a.k.a. L2 clock) as watchdog input clock with
|
||||
* its maximal ratio 7 instead of default fixed 25 MHz clock.
|
||||
* It allows to set watchdog duration up to the 22 minutes.
|
||||
*/
|
||||
clrsetbits_32(A385_WDT_GLOBAL_CTRL,
|
||||
A385_WDT_GLOBAL_25MHZ | A385_WDT_GLOBAL_RATIO_MASK,
|
||||
7 << A385_WDT_GLOBAL_RATIO_SHIFT);
|
||||
|
||||
/*
|
||||
* Calculate watchdog clock frequency. It is defined by formula:
|
||||
* freq = NBCLK / 2 / (2 ^ ratio)
|
||||
* We set ratio to the maximal possible value 7.
|
||||
*/
|
||||
get_sar_freq(&sar_freq);
|
||||
watchdog_freq = sar_freq.nb_clk * 1000000 / 2 / (1 << 7);
|
||||
|
||||
/* Set watchdog duration */
|
||||
writel(timeout_minutes * 60 * watchdog_freq, A385_WDT_DURATION);
|
||||
|
||||
/* Clear the watchdog expiration bit */
|
||||
clrbits_32(A385_WDT_GLOBAL_STATUS, A385_WDT_GLOBAL_EXPIRED);
|
||||
|
||||
/* Enable watchdog timer */
|
||||
setbits_32(A385_WDT_GLOBAL_CTRL, A385_WDT_GLOBAL_ENABLE);
|
||||
|
||||
/* Enable reset on watchdog */
|
||||
setbits_32(A385_WD_RSTOUT_UNMASK, A385_WD_RSTOUT_UNMASK_GLOBAL);
|
||||
|
||||
/* Unmask reset for watchdog */
|
||||
clrbits_32(SYS_RSTOUT_MASK, SYS_RSTOUT_MASK_WD);
|
||||
}
|
||||
|
||||
static bool disable_mcu_watchdog(void)
|
||||
{
|
||||
int ret;
|
||||
@@ -423,10 +481,13 @@ void spl_board_init(void)
|
||||
{
|
||||
/*
|
||||
* If booting from UART, disable MCU watchdog in SPL, since uploading
|
||||
* U-Boot proper can take too much time and trigger it.
|
||||
* U-Boot proper can take too much time and trigger it. Instead enable
|
||||
* A385 watchdog with very high timeout (10 minutes) to prevent hangup.
|
||||
*/
|
||||
if (get_boot_device() == BOOT_DEVICE_UART)
|
||||
if (get_boot_device() == BOOT_DEVICE_UART) {
|
||||
enable_a385_watchdog(10);
|
||||
disable_mcu_watchdog();
|
||||
}
|
||||
}
|
||||
|
||||
int board_init(void)
|
||||
|
||||
@@ -4,3 +4,13 @@ S: Maintained
|
||||
F: board/beacon/beacon-rzg2m/
|
||||
F: include/configs/beacon-rzg2m.h
|
||||
F: configs/rzg2_beacon_defconfig
|
||||
F: arch/arm/dts/beacon-renesom-baseboard.dtsi
|
||||
F: arch/arm/dts/beacon-renesom-som.dtsi
|
||||
F: arch/arm/dts/r8a774a1-beacon-rzg2m-kit.dts
|
||||
F: arch/arm/dts/r8a774b1-beacon-rzg2n-kit.dts
|
||||
F: arch/arm/dts/r8a774e1-beacon-rzg2h-kit.dts
|
||||
F: arch/arm/dts/r8a774a1-beacon-rzg2m-kit-u-boot.dtsi
|
||||
F: arch/arm/dts/r8a774b1-beacon-rzg2n-kit-u-boot.dtsi
|
||||
F: arch/arm/dts/r8a774e1-beacon-rzg2h-kit-u-boot.dtsi
|
||||
F: arch/arm/dts/rz-g2-beacon-u-boot.dtsi
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ config SYS_CONFIG_NAME
|
||||
default "imx8mm_beacon"
|
||||
|
||||
config IMX_CONFIG
|
||||
default "arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4.cfg"
|
||||
default "board/beacon/imx8mm/imximage-8mm-lpddr4.cfg"
|
||||
|
||||
source "board/freescale/common/Kconfig"
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@ Get and Build the ARM Trusted firmware
|
||||
Note: $(srctree) is U-Boot source directory
|
||||
|
||||
$ git clone https://source.codeaurora.org/external/imx/imx-atf
|
||||
$ git checkout imx_4.19.35_1.0.0
|
||||
$ make PLAT=imx8mm bl31 ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-
|
||||
$ git checkout imx_5.4.70_2.3.0
|
||||
$ make PLAT=imx8mm bl31 CROSS_COMPILE=aarch64-linux-gnu-
|
||||
$ cp build/imx8mm/release/bl31.bin $(srctree)
|
||||
|
||||
Get the DDR firmware
|
||||
@@ -26,7 +26,7 @@ $ cp firmware-imx-8.5/firmware/ddr/synopsys/lpddr4*.bin $(srctree)
|
||||
Build U-Boot
|
||||
============
|
||||
$ make imx8mm_beacon_defconfig
|
||||
$ make flash.bin CROSS_COMPILE=aarch64-linux-gnu- ATF_LOAD_ADDR=0x920000
|
||||
$ make flash.bin CROSS_COMPILE=aarch64-linux-gnu-
|
||||
|
||||
Burn U-Boot to microSD Card
|
||||
===========================
|
||||
|
||||
9
board/beacon/imx8mm/imximage-8mm-lpddr4.cfg
Normal file
9
board/beacon/imx8mm/imximage-8mm-lpddr4.cfg
Normal file
@@ -0,0 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2021 NXP
|
||||
*/
|
||||
|
||||
#define __ASSEMBLY__
|
||||
|
||||
BOOT_FROM sd
|
||||
LOADER u-boot-spl-ddr.bin 0x7E1000
|
||||
@@ -16,7 +16,7 @@ config IMX8MN_BEACON_2GB_LPDDR
|
||||
bool "Enable 2GB LPDDR"
|
||||
|
||||
config IMX_CONFIG
|
||||
default "arch/arm/mach-imx/imx8m/imximage-8mn-lpddr4.cfg"
|
||||
default "board/beacon/imx8mn/imximage-8mn-lpddr4.cfg"
|
||||
|
||||
source "board/freescale/common/Kconfig"
|
||||
|
||||
|
||||
10
board/beacon/imx8mn/imximage-8mn-lpddr4.cfg
Normal file
10
board/beacon/imx8mn/imximage-8mn-lpddr4.cfg
Normal file
@@ -0,0 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2021 NXP
|
||||
*/
|
||||
|
||||
#define __ASSEMBLY__
|
||||
|
||||
ROM_VERSION v2
|
||||
BOOT_FROM sd
|
||||
LOADER u-boot-spl-ddr.bin 0x912000
|
||||
@@ -6,4 +6,4 @@
|
||||
#define __ASSEMBLY__
|
||||
|
||||
BOOT_FROM sd
|
||||
LOADER mkimage.flash.mkimage 0x7E1000
|
||||
LOADER u-boot-spl-ddr.bin 0x7e1000
|
||||
|
||||
@@ -212,34 +212,40 @@ static void board_get_coding_straps(void)
|
||||
ofnode node;
|
||||
int i, ret;
|
||||
|
||||
brdcode = 0;
|
||||
ddr3code = 0;
|
||||
somcode = 0;
|
||||
|
||||
node = ofnode_path("/config");
|
||||
if (!ofnode_valid(node)) {
|
||||
printf("%s: no /config node?\n", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
brdcode = 0;
|
||||
ddr3code = 0;
|
||||
somcode = 0;
|
||||
|
||||
ret = gpio_request_list_by_name_nodev(node, "dh,som-coding-gpios",
|
||||
gpio, ARRAY_SIZE(gpio),
|
||||
GPIOD_IS_IN);
|
||||
for (i = 0; i < ret; i++)
|
||||
somcode |= !!dm_gpio_get_value(&(gpio[i])) << i;
|
||||
|
||||
gpio_free_list_nodev(gpio, ret);
|
||||
|
||||
ret = gpio_request_list_by_name_nodev(node, "dh,ddr3-coding-gpios",
|
||||
gpio, ARRAY_SIZE(gpio),
|
||||
GPIOD_IS_IN);
|
||||
for (i = 0; i < ret; i++)
|
||||
ddr3code |= !!dm_gpio_get_value(&(gpio[i])) << i;
|
||||
|
||||
gpio_free_list_nodev(gpio, ret);
|
||||
|
||||
ret = gpio_request_list_by_name_nodev(node, "dh,board-coding-gpios",
|
||||
gpio, ARRAY_SIZE(gpio),
|
||||
GPIOD_IS_IN);
|
||||
for (i = 0; i < ret; i++)
|
||||
brdcode |= !!dm_gpio_get_value(&(gpio[i])) << i;
|
||||
|
||||
gpio_free_list_nodev(gpio, ret);
|
||||
|
||||
printf("Code: SoM:rev=%d,ddr3=%d Board:rev=%d\n",
|
||||
somcode, ddr3code, brdcode);
|
||||
}
|
||||
|
||||
@@ -2,4 +2,3 @@
|
||||
|
||||
obj-$(CONFIG_SYS_MTDPARTS_RUNTIME) += qemu_mtdparts.o
|
||||
obj-$(CONFIG_SET_DFU_ALT_INFO) += qemu_dfu.o
|
||||
obj-$(CONFIG_EFI_CAPSULE_FIRMWARE_MANAGEMENT) += qemu_capsule.o
|
||||
|
||||
@@ -4,6 +4,12 @@ M: Suniel Mahesh <sunil@amarulasolutions.com>
|
||||
S: Maintained
|
||||
F: configs/px30-core-ctouch2-px30_defconfig
|
||||
|
||||
PX30-Core-CTOUCH2.0-OF10
|
||||
M: Jagan Teki <jagan@amarulasolutions.com>
|
||||
M: Suniel Mahesh <sunil@amarulasolutions.com>
|
||||
S: Maintained
|
||||
F: configs/px30-core-ctouch2-of10-px30_defconfig
|
||||
|
||||
PX30-Core-EDIMM2.2
|
||||
M: Jagan Teki <jagan@amarulasolutions.com>
|
||||
M: Suniel Mahesh <sunil@amarulasolutions.com>
|
||||
|
||||
@@ -10,6 +10,5 @@ config SYS_CONFIG_NAME
|
||||
default "imx8mm_venice"
|
||||
|
||||
config IMX_CONFIG
|
||||
default "arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4.cfg"
|
||||
|
||||
default "board/gateworks/venice/imximage-8mm-lpddr4.cfg"
|
||||
endif
|
||||
|
||||
@@ -25,7 +25,7 @@ $ cp firmware-imx-8.9/firmware/ddr/synopsys/lpddr4*.bin .
|
||||
Build U-Boot
|
||||
============
|
||||
$ make imx8mm_venice_defconfig
|
||||
$ make flash.bin CROSS_COMPILE=aarch64-linux-gnu- ATF_LOAD_ADDR=0x920000
|
||||
$ make CROSS_COMPILE=aarch64-linux-gnu-
|
||||
|
||||
Update eMMC
|
||||
===========
|
||||
|
||||
9
board/gateworks/venice/imximage-8mm-lpddr4.cfg
Normal file
9
board/gateworks/venice/imximage-8mm-lpddr4.cfg
Normal file
@@ -0,0 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2021 Gateworks Corporation
|
||||
*/
|
||||
|
||||
#define __ASSEMBLY__
|
||||
|
||||
BOOT_FROM sd
|
||||
LOADER u-boot-spl-ddr.bin 0x7E1000
|
||||
@@ -45,5 +45,10 @@ config BOARD_SPECIFIC_OPTIONS # dummy
|
||||
imply MMC_WRITE
|
||||
imply MMC_SDHCI
|
||||
imply MMC_SDHCI_CADENCE
|
||||
imply MMC_SDHCI_ADMA
|
||||
imply MMC_HS200_SUPPORT
|
||||
imply CMD_I2C
|
||||
imply DM_I2C
|
||||
imply SYS_I2C_MICROCHIP
|
||||
|
||||
endif
|
||||
|
||||
@@ -119,7 +119,22 @@ int board_late_init(void)
|
||||
if (icicle_mac_addr[idx] == ':')
|
||||
icicle_mac_addr[idx] = ' ';
|
||||
}
|
||||
env_set("icicle_mac_addr", icicle_mac_addr);
|
||||
env_set("icicle_mac_addr0", icicle_mac_addr);
|
||||
|
||||
mac_addr[5] = device_serial_number[0] + 1;
|
||||
|
||||
icicle_mac_addr[0] = '[';
|
||||
|
||||
sprintf(&icicle_mac_addr[1], "%pM", mac_addr);
|
||||
|
||||
icicle_mac_addr[18] = ']';
|
||||
icicle_mac_addr[19] = '\0';
|
||||
|
||||
for (idx = 0; idx < 20; idx++) {
|
||||
if (icicle_mac_addr[idx] == ':')
|
||||
icicle_mac_addr[idx] = ' ';
|
||||
}
|
||||
env_set("icicle_mac_addr1", icicle_mac_addr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ struct msg_get_clock_rate {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md
|
||||
* https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-revision-codes
|
||||
*/
|
||||
struct rpi_model {
|
||||
const char *name;
|
||||
@@ -157,6 +157,11 @@ static const struct rpi_model rpi_models_new_scheme[] = {
|
||||
DTB_DIR "bcm2711-rpi-4-b.dtb",
|
||||
true,
|
||||
},
|
||||
[0x12] = {
|
||||
"Zero 2 W",
|
||||
DTB_DIR "bcm2837-rpi-zero-2.dtb",
|
||||
false,
|
||||
},
|
||||
[0x13] = {
|
||||
"400",
|
||||
DTB_DIR "bcm2711-rpi-400.dtb",
|
||||
|
||||
@@ -117,7 +117,7 @@ int misc_init_r(void)
|
||||
void *board_fdt_blob_setup(int *err)
|
||||
{
|
||||
*err = 0;
|
||||
if (IS_ENABLED(CONFIG_OF_SEPARATE)) {
|
||||
if (IS_ENABLED(CONFIG_OF_SEPARATE) || IS_ENABLED(CONFIG_OF_BOARD)) {
|
||||
if (gd->arch.firmware_fdt_addr)
|
||||
return (ulong *)(uintptr_t)gd->arch.firmware_fdt_addr;
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ config SPL_OPENSBI_LOAD_ADDR
|
||||
config BOARD_SPECIFIC_OPTIONS # dummy
|
||||
def_bool y
|
||||
select SIFIVE_FU740
|
||||
select ENV_IS_IN_SPI_FLASH
|
||||
select SUPPORT_SPL
|
||||
select RESET_SIFIVE
|
||||
select BINMAN
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#define GEM_PHY_RESET SIFIVE_GENERIC_GPIO_NR(0, 12)
|
||||
|
||||
#define MODE_SELECT_REG 0x1000
|
||||
#define MODE_SELECT_SPI 0x6
|
||||
#define MODE_SELECT_SD 0xb
|
||||
#define MODE_SELECT_MASK GENMASK(3, 0)
|
||||
|
||||
@@ -123,6 +124,8 @@ u32 spl_boot_device(void)
|
||||
u32 boot_device = mode_select & MODE_SELECT_MASK;
|
||||
|
||||
switch (boot_device) {
|
||||
case MODE_SELECT_SPI:
|
||||
return BOOT_DEVICE_SPI;
|
||||
case MODE_SELECT_SD:
|
||||
return BOOT_DEVICE_MMC1;
|
||||
default:
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
void *board_fdt_blob_setup(int *err)
|
||||
{
|
||||
*err = 0;
|
||||
if (IS_ENABLED(CONFIG_OF_SEPARATE)) {
|
||||
if (IS_ENABLED(CONFIG_OF_SEPARATE) || IS_ENABLED(CONFIG_OF_BOARD)) {
|
||||
if (gd->arch.firmware_fdt_addr)
|
||||
return (ulong *)(uintptr_t)gd->arch.firmware_fdt_addr;
|
||||
}
|
||||
|
||||
@@ -82,6 +82,8 @@ int board_init(void)
|
||||
{
|
||||
gd->bd->bi_boot_params = CONFIG_SYS_LOAD_ADDR + LOAD_OFFSET;
|
||||
|
||||
gd->env_addr = (ulong)&default_environment[0];
|
||||
|
||||
synquacer_setup_scbm_smmu();
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -698,13 +698,7 @@ int g_dnl_board_usb_cable_connected(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = sun4i_usb_phy_vbus_detect(&phy);
|
||||
if (ret == 1) {
|
||||
pr_err("A charger is plugged into the OTG\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
return ret;
|
||||
return sun4i_usb_phy_vbus_detect(&phy);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
LION-RK3368 (RK3368-uQ7 system-on-module)
|
||||
M: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||||
M: Quentin Schulz <quentin.schulz@theobroma-systems.com>
|
||||
M: Klaus Goger <klaus.goger@theobroma-systems.com>
|
||||
S: Maintained
|
||||
F: board/theobroma-systems/lion_rk3368
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
PUMA-RK3399
|
||||
M: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||||
M: Quentin Schulz <quentin.schulz@theobroma-systems.com>
|
||||
M: Klaus Goger <klaus.goger@theobroma-systems.com>
|
||||
S: Maintained
|
||||
F: board/theobroma-systems/puma_rk3399
|
||||
|
||||
@@ -26,25 +26,17 @@ RK3399-Q7 features:
|
||||
|
||||
Here is the step-by-step to boot to U-Boot on rk3399.
|
||||
|
||||
Get the Source and build ATF/Cortex-M0 binaries
|
||||
===============================================
|
||||
Get the Source and build ATF binary
|
||||
===================================
|
||||
|
||||
> git clone git://git.theobroma-systems.com/arm-trusted-firmware.git
|
||||
> git clone git://git.theobroma-systems.com/rk3399-cortex-m0.git
|
||||
> git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
|
||||
|
||||
Compile the ATF
|
||||
===============
|
||||
|
||||
> cd arm-trusted-firmware
|
||||
> cd trusted-firmware-a
|
||||
> make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31
|
||||
> cp build/rk3399/release/bl31.bin ../u-boot/bl31-rk3399.bin
|
||||
|
||||
Compile the M0 firmware
|
||||
=======================
|
||||
|
||||
> cd ../rk3399-cortex-m0
|
||||
> make CROSS_COMPILE=arm-cortex_m0-eabi-
|
||||
> cp rk3399m0.bin ../u-boot
|
||||
> cp build/rk3399/release/bl31/bl31.elf ../u-boot/bl31.elf
|
||||
|
||||
Compile the U-Boot
|
||||
==================
|
||||
@@ -55,23 +47,22 @@ Compile the U-Boot
|
||||
Package the image
|
||||
=================
|
||||
|
||||
Creating a SPL image for SD-Card/eMMC
|
||||
> tools/mkimage -n rk3399 -T rksd -d spl/u-boot-spl.bin spl_mmc.img
|
||||
Creating a SPL image for SPI-NOR
|
||||
> tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin spl_nor.img
|
||||
Create the FIT image containing U-Boot proper, ATF, M0 Firmware, devicetree
|
||||
> make CROSS_COMPILE=aarch64-linux-gnu-
|
||||
The SPL image for SD-Card/eMMC is readily available in idbloader.img at the
|
||||
root of U-Boot after compilation.
|
||||
|
||||
Creating an SPL image for SPI-NOR:
|
||||
> tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin idbloader-spi.img
|
||||
|
||||
Flash the image
|
||||
===============
|
||||
|
||||
Copy the SPL to offset 32k for SD/eMMC, offset 0 for NOR-Flash and the FIT
|
||||
image to offset 256k card.
|
||||
image to offset 256k.
|
||||
|
||||
SD-Card
|
||||
-------
|
||||
|
||||
> dd if=spl_mmc.img of=/dev/sdb seek=64
|
||||
> dd if=idbloader.img of=/dev/sdb seek=64
|
||||
> dd if=u-boot.itb of=/dev/sdb seek=512
|
||||
|
||||
eMMC
|
||||
@@ -84,24 +75,27 @@ help of the Rockchip loader binary.
|
||||
> cd rkdeveloptool
|
||||
> autoreconf -i && ./configure && make
|
||||
> git clone https://github.com/rockchip-linux/rkbin.git
|
||||
> ./rkdeveloptool db rkbin/rk33/rk3399_loader_v1.08.106.bin
|
||||
> ./rkdeveloptool wl 64 ../spl_mmc.img
|
||||
> cd rkbin
|
||||
> ./tools/boot_merger RKBOOT/RK3399MINIALL.ini
|
||||
> cd ..
|
||||
> ./rkdeveloptool db rkbin/rk3399_loader_v1.25.126.bin
|
||||
> ./rkdeveloptool wl 64 ../idbloader.img
|
||||
> ./rkdeveloptool wl 512 ../u-boot.itb
|
||||
|
||||
NOR-Flash
|
||||
---------
|
||||
|
||||
Writing the SPI NOR Flash requires a running U-Boot. For the sake of simplicity
|
||||
we assume you have a SD-Card with a partition containing the required files
|
||||
ready.
|
||||
rkdeveloptool allows to flash the on-board SPI via the USB OTG interface with
|
||||
help of the Rockchip loader binary.
|
||||
|
||||
> load mmc 1:1 ${kernel_addr_r} spl_nor.img
|
||||
> sf probe
|
||||
> sf erase 0 +$filesize
|
||||
> sf write $kernel_addr_r 0 ${filesize}
|
||||
> load mmc 1:1 ${kernel_addr_r} u-boot.itb
|
||||
> sf erase 0x40000 +$filesize
|
||||
> sf write $kernel_addr_r 0x40000 ${filesize}
|
||||
|
||||
|
||||
Reboot the system and you should see a U-Boot console on UART0 (115200n8).
|
||||
> git clone https://github.com/rockchip-linux/rkdeveloptool
|
||||
> cd rkdeveloptool
|
||||
> autoreconf -i && ./configure && make
|
||||
> git clone https://github.com/rockchip-linux/rkbin.git
|
||||
> cd rkbin
|
||||
> ./tools/boot_merger RKBOOT/RK3399MINIALL_SPINOR.ini
|
||||
> cd ..
|
||||
> ./rkdeveloptool db rkbin/rk3399_loader_spinor_v1.25.114.bin
|
||||
> ./rkdeveloptool ef
|
||||
> ./rkdeveloptool wl 0 ../idbloader-spi.img
|
||||
> ./rkdeveloptool wl 512 ../u-boot.itb
|
||||
|
||||
@@ -4,7 +4,7 @@ config SYS_BOARD
|
||||
default "tqma6"
|
||||
|
||||
config SYS_VENDOR
|
||||
default "tqc"
|
||||
default "tq"
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
default "tqma6"
|
||||
@@ -89,8 +89,8 @@ config SYS_TEXT_BASE
|
||||
default 0x4fc00000 if TQMA6Q || TQMA6DL
|
||||
|
||||
config IMX_CONFIG
|
||||
default "board/tqc/tqma6/tqma6q.cfg" if TQMA6Q
|
||||
default "board/tqc/tqma6/tqma6dl.cfg" if TQMA6DL
|
||||
default "board/tqc/tqma6/tqma6s.cfg" if TQMA6S
|
||||
default "board/tq/tqma6/tqma6q.cfg" if TQMA6Q
|
||||
default "board/tq/tqma6/tqma6dl.cfg" if TQMA6DL
|
||||
default "board/tq/tqma6/tqma6s.cfg" if TQMA6S
|
||||
|
||||
endif
|
||||
@@ -1,6 +1,6 @@
|
||||
TQ SYSTEMS TQMA6 BOARD
|
||||
TQ-SYSTEMS TQMA6 BOARD
|
||||
M: Markus Niebel <Markus.Niebel@tq-group.com>
|
||||
S: Maintained
|
||||
F: board/tqc/tqma6/
|
||||
F: board/tq/tqma6/
|
||||
F: include/configs/tqma6.h
|
||||
F: configs/tqma6*_defconfig
|
||||
@@ -1,7 +1,7 @@
|
||||
U-Boot for the TQ Systems TQMa6 modules
|
||||
U-Boot for the TQ-Systems TQMa6 modules
|
||||
|
||||
This file contains information for the port of
|
||||
U-Boot to the TQ Systems TQMa6 modules.
|
||||
U-Boot to the TQ-Systems TQMa6 modules.
|
||||
|
||||
1. Boot source
|
||||
--------------
|
||||
@@ -14,7 +14,7 @@ The following boot source is supported:
|
||||
2. Building
|
||||
------------
|
||||
|
||||
To build U-Boot for the TQ Systems TQMa6 modules:
|
||||
To build U-Boot for the TQ-Systems TQMa6 modules:
|
||||
|
||||
make tqma6<x>_<baseboard>_<boot>_config
|
||||
make
|
||||
@@ -3,7 +3,7 @@
|
||||
* Copyright (C) 2012 Freescale Semiconductor, Inc.
|
||||
* Author: Fabio Estevam <fabio.estevam@freescale.com>
|
||||
*
|
||||
* Copyright (C) 2013, 2014 TQ Systems (ported SabreSD to TQMa6x)
|
||||
* Copyright (C) 2013, 2014 TQ-Systems (ported SabreSD to TQMa6x)
|
||||
* Author: Markus Niebel <markus.niebel@tq-group.com>
|
||||
*/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user