summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
Diffstat (limited to 'board')
-rw-r--r--board/CZ.NIC/turris_atsha_otp.c27
-rw-r--r--board/CZ.NIC/turris_common.c42
-rw-r--r--board/CZ.NIC/turris_common.h10
-rw-r--r--board/CZ.NIC/turris_mox/turris_mox.c5
-rw-r--r--board/CZ.NIC/turris_omnia/Makefile2
-rw-r--r--board/CZ.NIC/turris_omnia/turris_omnia.c310
-rw-r--r--board/Marvell/octeon_ebb7304/Kconfig1
-rw-r--r--board/Marvell/octeon_nic23/Kconfig1
-rw-r--r--board/advantech/imx8qm_dmsse20_a1/imx8qm_dmsse20_a1.c11
-rw-r--r--board/advantech/imx8qm_rom7720_a1/imx8qm_rom7720_a1.c8
-rw-r--r--board/amlogic/jethub-j100/MAINTAINERS2
-rw-r--r--board/anbernic/rgxx3_rk3566/Kconfig3
-rw-r--r--board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c72
-rw-r--r--board/atmel/sama7g54_curiosity/Kconfig15
-rw-r--r--board/atmel/sama7g54_curiosity/MAINTAINERS9
-rw-r--r--board/atmel/sama7g54_curiosity/Makefile7
-rw-r--r--board/atmel/sama7g54_curiosity/sama7g54_curiosity.c36
-rw-r--r--board/beagle/beagleplay/beagleplay.c61
-rw-r--r--board/beagle/beagleplay/beagleplay.env2
-rw-r--r--board/cadence/xtfpga/Kconfig1
-rw-r--r--board/cavium/thunderx/Kconfig1
-rw-r--r--board/chipspark/popmetal_rk3288/Kconfig3
-rw-r--r--board/congatec/cgtqmx8/cgtqmx8.c7
-rw-r--r--board/coreboot/coreboot/Kconfig7
-rw-r--r--board/coreboot/coreboot/MAINTAINERS1
-rw-r--r--board/dhelectronics/common/dh_common.c16
-rw-r--r--board/dhelectronics/common/dh_common.h8
-rw-r--r--board/dhelectronics/dh_imx6/dh_imx6.c3
-rw-r--r--board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c6
-rw-r--r--board/dhelectronics/dh_stm32mp1/board.c6
-rw-r--r--board/edgeble/neural-compute-module-6/Kconfig3
-rw-r--r--board/efi/efi-x86_app/Kconfig3
-rw-r--r--board/efi/efi-x86_app/MAINTAINERS2
-rw-r--r--board/efi/efi-x86_payload/Kconfig3
-rw-r--r--board/efi/efi-x86_payload/MAINTAINERS1
-rw-r--r--board/elgin/elgin_rv1108/Kconfig3
-rw-r--r--board/elgin/elgin_rv1108/elgin_rv1108.c1
-rw-r--r--board/emulation/qemu-arm/qemu-arm.c12
-rw-r--r--board/emulation/qemu-riscv/qemu-riscv.c12
-rw-r--r--board/emulation/qemu-x86/Kconfig6
-rw-r--r--board/emulation/qemu-x86/MAINTAINERS2
-rw-r--r--board/firefly/firefly-rk3288/Kconfig3
-rw-r--r--board/firefly/firefly-rk3308/Kconfig3
-rw-r--r--board/firefly/firefly-rk3308/roc_cc_rk3308.c1
-rw-r--r--board/firefly/roc-pc-rk3399/Kconfig3
-rw-r--r--board/firefly/roc-pc-rk3399/MAINTAINERS1
-rw-r--r--board/firefly/roc-pc-rk3399/roc-pc-rk3399.c22
-rw-r--r--board/freescale/imx8mq_evk/imx8mq_evk.c30
-rw-r--r--board/freescale/imx8qm_mek/imx8qm_mek.c8
-rw-r--r--board/freescale/imx8qxp_mek/imx8qxp_mek.c8
-rw-r--r--board/freescale/imx93_evk/spl.c2
-rw-r--r--board/freescale/imxrt1020-evk/Kconfig1
-rw-r--r--board/freescale/imxrt1050-evk/Kconfig1
-rw-r--r--board/freescale/imxrt1170-evk/Kconfig1
-rw-r--r--board/friendlyelec/nanopc-t6-rk3588/Kconfig3
-rw-r--r--board/gateworks/venice/venice.c7
-rw-r--r--board/geekbuying/geekbox/Kconfig3
-rw-r--r--board/google/gru/Kconfig6
-rw-r--r--board/google/gru/gru.c52
-rw-r--r--board/google/veyron/Kconfig12
-rw-r--r--board/hardkernel/odroid_go2/Kconfig3
-rw-r--r--board/hardkernel/odroid_m1/Kconfig3
-rw-r--r--board/intel/agilex5-socdk/MAINTAINERS8
-rw-r--r--board/intel/bayleybay/Kconfig3
-rw-r--r--board/intel/bayleybay/MAINTAINERS1
-rw-r--r--board/intel/cherryhill/Kconfig3
-rw-r--r--board/intel/cherryhill/MAINTAINERS1
-rw-r--r--board/intel/cougarcanyon2/Kconfig3
-rw-r--r--board/intel/cougarcanyon2/MAINTAINERS1
-rw-r--r--board/intel/crownbay/Kconfig3
-rw-r--r--board/intel/crownbay/MAINTAINERS1
-rw-r--r--board/intel/edison/Kconfig3
-rw-r--r--board/intel/edison/MAINTAINERS1
-rw-r--r--board/intel/galileo/Kconfig3
-rw-r--r--board/intel/galileo/MAINTAINERS1
-rw-r--r--board/intel/minnowmax/Kconfig3
-rw-r--r--board/intel/minnowmax/MAINTAINERS1
-rw-r--r--board/intel/slimbootloader/Kconfig3
-rw-r--r--board/intel/slimbootloader/MAINTAINERS1
-rw-r--r--board/kontron/sl-mx6ul/Kconfig1
-rw-r--r--board/kontron/sl-mx8mm/Kconfig1
-rw-r--r--board/liebherr/xea/spl_xea.c21
-rw-r--r--board/liebherr/xea/xea.c49
-rw-r--r--board/mqmaker/miqi_rk3288/Kconfig3
-rw-r--r--board/phytec/phycore_am62x/phycore-am62x.c64
-rw-r--r--board/phytec/phycore_am64x/Kconfig33
-rw-r--r--board/phytec/phycore_am64x/MAINTAINERS15
-rw-r--r--board/phytec/phycore_am64x/Makefile9
-rw-r--r--board/phytec/phycore_am64x/board-cfg.yaml36
-rw-r--r--board/phytec/phycore_am64x/phycore-am64x.c50
-rw-r--r--board/phytec/phycore_am64x/phycore_am64x.env23
-rw-r--r--board/phytec/phycore_am64x/pm-cfg.yaml12
-rw-r--r--board/phytec/phycore_am64x/rm-cfg.yaml1215
-rw-r--r--board/phytec/phycore_am64x/sec-cfg.yaml379
-rw-r--r--board/phytec/phycore_imx8mp/phycore_imx8mp.env62
-rw-r--r--board/phytec/phycore_imx93/spl.c2
-rw-r--r--board/phytec/phycore_rk3288/Kconfig3
-rw-r--r--board/pine64/pinebook-pro-rk3399/Kconfig3
-rw-r--r--board/pine64/pinebook-pro-rk3399/MAINTAINERS6
-rw-r--r--board/pine64/pinebook-pro-rk3399/Makefile1
-rw-r--r--board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c76
-rw-r--r--board/pine64/pinephone-pro-rk3399/Kconfig3
-rw-r--r--board/pine64/pinephone-pro-rk3399/MAINTAINERS5
-rw-r--r--board/pine64/pinephone-pro-rk3399/Makefile1
-rw-r--r--board/pine64/pinephone-pro-rk3399/pinephone-pro-rk3399.c78
-rw-r--r--board/pine64/quartz64_rk3566/Kconfig3
-rw-r--r--board/pine64/quartz64_rk3566/MAINTAINERS11
-rw-r--r--board/pine64/quartzpro64-rk3588/Kconfig3
-rw-r--r--board/pine64/rockpro64_rk3399/Kconfig3
-rw-r--r--board/pine64/rockpro64_rk3399/MAINTAINERS3
-rw-r--r--board/pine64/rockpro64_rk3399/Makefile7
-rw-r--r--board/pine64/rockpro64_rk3399/rockpro64-rk3399.c56
-rw-r--r--board/purism/librem5/spl.c6
-rw-r--r--board/qualcomm/dragonboard410c/Kconfig15
-rw-r--r--board/qualcomm/dragonboard410c/Makefile2
-rw-r--r--board/qualcomm/dragonboard410c/configs/chainloaded.config7
-rw-r--r--board/qualcomm/dragonboard410c/dragonboard410c.c126
-rw-r--r--board/qualcomm/dragonboard820c/Kconfig15
-rw-r--r--board/qualcomm/dragonboard820c/Makefile1
-rw-r--r--board/qualcomm/dragonboard820c/dragonboard820c.c39
-rw-r--r--board/qualcomm/dragonboard820c/head.S33
-rw-r--r--board/qualcomm/dragonboard820c/u-boot.lds111
-rw-r--r--board/qualcomm/dragonboard845c/Kconfig12
-rw-r--r--board/qualcomm/qcs404-evb/Kconfig15
-rw-r--r--board/qualcomm/qcs404-evb/Makefile6
-rw-r--r--board/qualcomm/qcs404-evb/qcs404-evb.c62
-rw-r--r--board/radxa/rock/Kconfig3
-rw-r--r--board/radxa/rock2/Kconfig3
-rw-r--r--board/radxa/rock5a-rk3588s/Kconfig3
-rw-r--r--board/radxa/rock5b-rk3588/Kconfig3
-rw-r--r--board/radxa/rockpi4-rk3399/Kconfig15
-rw-r--r--board/radxa/rockpi4-rk3399/MAINTAINERS22
-rw-r--r--board/radxa/rockpi4-rk3399/Makefile (renamed from board/rockchip/evb_rk3399/Makefile)2
-rw-r--r--board/radxa/rockpi4-rk3399/rockpi4-rk3399.c (renamed from board/rockchip/evb_rk3399/evb-rk3399.c)33
-rw-r--r--board/rikomagic/mk808/Kconfig3
-rw-r--r--board/rockchip/evb_px30/Kconfig3
-rw-r--r--board/rockchip/evb_px5/Kconfig3
-rw-r--r--board/rockchip/evb_rk3036/Kconfig3
-rw-r--r--board/rockchip/evb_rk3128/Kconfig3
-rw-r--r--board/rockchip/evb_rk3229/Kconfig3
-rw-r--r--board/rockchip/evb_rk3288/Kconfig3
-rw-r--r--board/rockchip/evb_rk3308/Kconfig3
-rw-r--r--board/rockchip/evb_rk3328/Kconfig3
-rw-r--r--board/rockchip/evb_rk3328/MAINTAINERS11
-rw-r--r--board/rockchip/evb_rk3328/README70
-rw-r--r--board/rockchip/evb_rk3399/Kconfig3
-rw-r--r--board/rockchip/evb_rk3399/MAINTAINERS48
-rw-r--r--board/rockchip/evb_rk3568/Kconfig3
-rw-r--r--board/rockchip/evb_rk3588/Kconfig3
-rw-r--r--board/rockchip/evb_rk3588/MAINTAINERS22
-rw-r--r--board/rockchip/evb_rv1108/Kconfig3
-rw-r--r--board/rockchip/evb_rv1108/evb_rv1108.c1
-rw-r--r--board/rockchip/kylin_rk3036/Kconfig3
-rw-r--r--board/rockchip/sheep_rk3368/Kconfig3
-rw-r--r--board/rockchip/tinker_rk3288/Kconfig3
-rw-r--r--board/rockchip/tinker_rk3288/tinker-rk3288.c12
-rw-r--r--board/rockchip/toybrick_rk3588/Kconfig12
-rw-r--r--board/rockchip/toybrick_rk3588/MAINTAINERS8
-rw-r--r--board/rockchip/toybrick_rk3588/Makefile6
-rw-r--r--board/rockchip/toybrick_rk3588/toybrick-rk3588.c39
-rw-r--r--board/samsung/common/exynos5-dt.c6
-rw-r--r--board/samsung/starqltechn/Kconfig8
-rw-r--r--board/sielaff/imx6dl-sielaff/Kconfig1
-rw-r--r--board/skyworth/hc2910-2aghd05/Kconfig3
-rw-r--r--board/skyworth/hc2910-2aghd05/MAINTAINERS1
-rw-r--r--board/socionext/developerbox/MAINTAINERS2
-rw-r--r--board/socionext/developerbox/developerbox.c60
-rw-r--r--board/socionext/developerbox/fwu_plat.c31
-rw-r--r--board/solidrun/mx6cuboxi/mx6cuboxi.c53
-rw-r--r--board/sophgo/milkv_duo/Kconfig4
-rw-r--r--board/st/stih410-b2260/Kconfig1
-rw-r--r--board/st/stih410-b2260/board.c6
-rw-r--r--board/st/stm32f429-discovery/Kconfig1
-rw-r--r--board/st/stm32f429-evaluation/Kconfig1
-rw-r--r--board/st/stm32f469-discovery/Kconfig1
-rw-r--r--board/st/stm32f746-disco/Kconfig1
-rw-r--r--board/st/stm32h743-disco/Kconfig1
-rw-r--r--board/st/stm32h743-eval/Kconfig1
-rw-r--r--board/st/stm32h750-art-pi/Kconfig1
-rw-r--r--board/st/stv0991/Kconfig15
-rw-r--r--board/st/stv0991/MAINTAINERS6
-rw-r--r--board/st/stv0991/Makefile6
-rw-r--r--board/st/stv0991/stv0991.c119
-rw-r--r--board/starfive/visionfive2/spl.c100
-rw-r--r--board/starfive/visionfive2/starfive_visionfive2.c48
-rw-r--r--board/starfive/visionfive2/visionfive2-i2c-eeprom.c9
-rw-r--r--board/sysam/amcore/Kconfig1
-rw-r--r--board/theobroma-systems/common/common.c30
-rw-r--r--board/theobroma-systems/jaguar_rk3588/Kconfig16
-rw-r--r--board/theobroma-systems/jaguar_rk3588/MAINTAINERS13
-rw-r--r--board/theobroma-systems/jaguar_rk3588/Makefile10
-rw-r--r--board/theobroma-systems/jaguar_rk3588/jaguar_rk3588.c53
-rw-r--r--board/theobroma-systems/lion_rk3368/Kconfig3
-rw-r--r--board/theobroma-systems/puma_rk3399/MAINTAINERS3
-rw-r--r--board/theobroma-systems/puma_rk3399/README90
-rw-r--r--board/theobroma-systems/puma_rk3399/puma-rk3399.c42
-rw-r--r--board/theobroma-systems/ringneck_px30/MAINTAINERS3
-rw-r--r--board/theobroma-systems/ringneck_px30/README70
-rw-r--r--board/theobroma-systems/ringneck_px30/ringneck-px30.c20
-rw-r--r--board/ti/am43xx/board.c11
-rw-r--r--board/ti/am62ax/rm-cfg.yaml8
-rw-r--r--board/ti/am62px/Kconfig26
-rw-r--r--board/ti/am62px/MAINTAINERS9
-rw-r--r--board/ti/am62px/Makefile7
-rw-r--r--board/ti/am62px/am62px.env15
-rw-r--r--board/ti/am62px/board-cfg.yaml37
-rw-r--r--board/ti/am62px/evm.c29
-rw-r--r--board/ti/am62px/pm-cfg.yaml12
-rw-r--r--board/ti/am62px/rm-cfg.yaml987
-rw-r--r--board/ti/am62px/sec-cfg.yaml378
-rw-r--r--board/ti/am62px/tifs-rm-cfg.yaml879
-rw-r--r--board/ti/am62x/rm-cfg.yaml8
-rw-r--r--board/ti/j784s4/Kconfig37
-rw-r--r--board/ti/j784s4/MAINTAINERS21
-rw-r--r--board/ti/j784s4/Makefile7
-rw-r--r--board/ti/j784s4/board-cfg.yaml37
-rw-r--r--board/ti/j784s4/evm.c41
-rw-r--r--board/ti/j784s4/j784s4.env17
-rw-r--r--board/ti/j784s4/pm-cfg.yaml13
-rw-r--r--board/ti/j784s4/rm-cfg.yaml3058
-rw-r--r--board/ti/j784s4/sec-cfg.yaml380
-rw-r--r--board/ti/j784s4/tifs-rm-cfg.yaml2656
-rw-r--r--board/toradex/apalis-imx8/apalis-imx8.c8
-rw-r--r--board/toradex/colibri-imx8x/colibri-imx8x.c19
-rw-r--r--board/toradex/verdin-am62/MAINTAINERS4
-rw-r--r--board/toradex/verdin-imx8mm/MAINTAINERS4
-rw-r--r--board/toradex/verdin-imx8mp/MAINTAINERS4
-rw-r--r--board/turing/turing-rk1-rk3588/Kconfig3
-rw-r--r--board/vamrs/rock960_rk3399/Kconfig3
-rw-r--r--board/vamrs/rock960_rk3399/MAINTAINERS2
-rw-r--r--board/vamrs/rock960_rk3399/Makefile6
-rw-r--r--board/vamrs/rock960_rk3399/rock960-rk3399.c28
-rw-r--r--board/variscite/imx93_var_som/spl.c2
-rw-r--r--board/vscom/baltos/u-boot.lds128
-rw-r--r--board/xen/xenguest_arm64/xenguest_arm64.c17
-rw-r--r--board/xilinx/Kconfig1
-rw-r--r--board/xilinx/common/board.c31
-rw-r--r--board/xilinx/mbv/Kconfig17
-rw-r--r--board/xilinx/mbv/MAINTAINERS1
-rw-r--r--board/xilinx/mbv/board.c10
-rw-r--r--board/xilinx/microblaze-generic/Kconfig8
-rw-r--r--board/xilinx/versal-net/board.c32
-rw-r--r--board/xilinx/versal/board.c2
-rw-r--r--board/xilinx/zynqmp/zynqmp.c62
-rw-r--r--board/xilinx/zynqmp/zynqmp_kria.env4
245 files changed, 11843 insertions, 2058 deletions
diff --git a/board/CZ.NIC/turris_atsha_otp.c b/board/CZ.NIC/turris_atsha_otp.c
index a29fe362317..85eebcdf18e 100644
--- a/board/CZ.NIC/turris_atsha_otp.c
+++ b/board/CZ.NIC/turris_atsha_otp.c
@@ -11,6 +11,7 @@
#include <atsha204a-i2c.h>
#include "turris_atsha_otp.h"
+#include "turris_common.h"
#define TURRIS_ATSHA_OTP_VERSION 0
#define TURRIS_ATSHA_OTP_SERIAL 1
@@ -32,26 +33,6 @@ static struct udevice *get_atsha204a_dev(void)
return dev;
}
-static void increment_mac(u8 *mac)
-{
- int i;
-
- for (i = 5; i >= 3; i--) {
- mac[i] += 1;
- if (mac[i])
- break;
- }
-}
-
-static void set_mac_if_invalid(int i, u8 *mac)
-{
- u8 oldmac[6];
-
- if (is_valid_ethaddr(mac) &&
- !eth_env_get_enetaddr_by_index("eth", i, oldmac))
- eth_env_set_enetaddr_by_index("eth", i, mac);
-}
-
int turris_atsha_otp_init_mac_addresses(int first_idx)
{
struct udevice *dev = get_atsha204a_dev();
@@ -84,11 +65,7 @@ int turris_atsha_otp_init_mac_addresses(int first_idx)
mac[4] = mac1[2];
mac[5] = mac1[3];
- set_mac_if_invalid((first_idx + 0) % 3, mac);
- increment_mac(mac);
- set_mac_if_invalid((first_idx + 1) % 3, mac);
- increment_mac(mac);
- set_mac_if_invalid((first_idx + 2) % 3, mac);
+ turris_init_mac_addresses(first_idx, mac);
return 0;
}
diff --git a/board/CZ.NIC/turris_common.c b/board/CZ.NIC/turris_common.c
new file mode 100644
index 00000000000..1717dda82eb
--- /dev/null
+++ b/board/CZ.NIC/turris_common.c
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2017 Marek Behún <kabel@kernel.org>
+ */
+
+#include <env.h>
+#include <net.h>
+
+#include "turris_common.h"
+
+static void increment_mac(u8 *mac)
+{
+ int i;
+
+ for (i = 5; i >= 3; i--) {
+ mac[i] += 1;
+ if (mac[i])
+ break;
+ }
+}
+
+static void set_mac_if_invalid(int i, u8 *mac)
+{
+ u8 oldmac[6];
+
+ if (is_valid_ethaddr(mac) &&
+ !eth_env_get_enetaddr_by_index("eth", i, oldmac))
+ eth_env_set_enetaddr_by_index("eth", i, mac);
+}
+
+void turris_init_mac_addresses(int first_idx, const u8 *first_mac)
+{
+ u8 mac[6];
+
+ memcpy(mac, first_mac, sizeof(mac));
+
+ set_mac_if_invalid((first_idx + 0) % 3, mac);
+ increment_mac(mac);
+ set_mac_if_invalid((first_idx + 1) % 3, mac);
+ increment_mac(mac);
+ set_mac_if_invalid((first_idx + 2) % 3, mac);
+}
diff --git a/board/CZ.NIC/turris_common.h b/board/CZ.NIC/turris_common.h
new file mode 100644
index 00000000000..5565ea9fd2a
--- /dev/null
+++ b/board/CZ.NIC/turris_common.h
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+#ifndef TURRIS_COMMON_H
+#define TURRIS_COMMON_H
+
+#include <asm/types.h>
+
+void turris_init_mac_addresses(int first_idx, const u8 *first_mac);
+
+#endif
diff --git a/board/CZ.NIC/turris_mox/turris_mox.c b/board/CZ.NIC/turris_mox/turris_mox.c
index 3489bdd74bd..1a2f60e3d19 100644
--- a/board/CZ.NIC/turris_mox/turris_mox.c
+++ b/board/CZ.NIC/turris_mox/turris_mox.c
@@ -565,13 +565,10 @@ static void handle_reset_button(void)
int checkboard(void)
{
int i, ret, board_version, ram_size, is_sd;
- const char *pub_key, *model;
+ const char *pub_key;
const u8 *topology;
u64 serial_number;
- model = fdt_getprop(gd->fdt_blob, 0, "model", NULL);
- printf("Model: %s\n", model);
-
ret = mbox_sp_get_board_info(&serial_number, NULL, NULL, &board_version,
&ram_size, NULL);
if (ret < 0) {
diff --git a/board/CZ.NIC/turris_omnia/Makefile b/board/CZ.NIC/turris_omnia/Makefile
index dc39b44ae19..341378b4e54 100644
--- a/board/CZ.NIC/turris_omnia/Makefile
+++ b/board/CZ.NIC/turris_omnia/Makefile
@@ -2,4 +2,4 @@
#
# Copyright (C) 2017 Marek Behún <kabel@kernel.org>
-obj-y := turris_omnia.o ../turris_atsha_otp.o
+obj-y := turris_omnia.o ../turris_atsha_otp.o ../turris_common.o
diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
index adeb69a205b..3b7a71bdad2 100644
--- a/board/CZ.NIC/turris_omnia/turris_omnia.c
+++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
@@ -18,18 +18,22 @@
#include <asm/io.h>
#include <asm/arch/cpu.h>
#include <asm/arch/soc.h>
+#include <asm/unaligned.h>
#include <dm/uclass.h>
#include <dt-bindings/gpio/gpio.h>
#include <fdt_support.h>
#include <hexdump.h>
#include <time.h>
+#include <turris-omnia-mcu-interface.h>
#include <linux/bitops.h>
+#include <linux/bitrev.h>
#include <linux/delay.h>
#include <u-boot/crc.h>
#include "../drivers/ddr/marvell/a38x/ddr3_init.h"
#include <../serdes/a38x/high_speed_env_spec.h>
#include "../turris_atsha_otp.h"
+#include "../turris_common.h"
DECLARE_GLOBAL_DATA_PTR;
@@ -59,46 +63,6 @@ DECLARE_GLOBAL_DATA_PTR;
#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,
- CMD_GET_FW_VERSION_APP = 0x0a,
- CMD_WATCHDOG_STATE = 0x0b,
- CMD_GET_FW_VERSION_BOOT = 0x0e,
-
- /* available if STS_FEATURES_SUPPORTED bit set in status word */
- CMD_GET_FEATURES = 0x10,
-
- /* available if EXT_CMD bit set in features */
- CMD_EXT_CONTROL = 0x12,
-};
-
-enum status_word_bits {
- STS_MCU_TYPE_MASK = GENMASK(1, 0),
- STS_MCU_TYPE_STM32 = 0,
- STS_MCU_TYPE_GD32 = 1,
- STS_MCU_TYPE_MKL = 2,
- STS_MCU_TYPE_UNKN = 3,
- STS_FEATURES_SUPPORTED = BIT(2),
- CARD_DET_STSBIT = 0x0010,
- MSATA_IND_STSBIT = 0x0020,
-};
-
-/* CMD_GET_FEATURES */
-enum features_e {
- FEAT_PERIPH_MCU = BIT(0),
- FEAT_EXT_CMDS = BIT(1),
-};
-
-/* CMD_EXT_CONTROL */
-enum ext_ctl_e {
- EXT_CTL_nRES_LAN = BIT(1),
- EXT_CTL_nRES_PHY = BIT(2),
- EXT_CTL_nPERST0 = BIT(3),
- EXT_CTL_nPERST1 = BIT(4),
- EXT_CTL_nPERST2 = BIT(5),
-};
-
/*
* Those values and defines are taken from the Marvell U-Boot version
* "u-boot-2013.01-2014_T3.0"
@@ -172,6 +136,141 @@ static int omnia_mcu_write(u8 cmd, const void *buf, int len)
return dm_i2c_write(chip, cmd, buf, len);
}
+static int omnia_mcu_get_sts_and_features(u16 *psts, u32 *pfeatures)
+{
+ u16 sts, feat16;
+ int ret;
+
+ ret = omnia_mcu_read(CMD_GET_STATUS_WORD, &sts, sizeof(sts));
+ if (ret)
+ return ret;
+
+ if (psts)
+ *psts = sts;
+
+ if (!pfeatures)
+ return 0;
+
+ if (sts & STS_FEATURES_SUPPORTED) {
+ /* try read 32-bit features */
+ ret = omnia_mcu_read(CMD_GET_FEATURES, pfeatures,
+ sizeof(*pfeatures));
+ if (ret) {
+ /* try read 16-bit features */
+ ret = omnia_mcu_read(CMD_GET_FEATURES, &feat16,
+ sizeof(&feat16));
+ if (ret)
+ return ret;
+
+ *pfeatures = feat16;
+ } else {
+ if (*pfeatures & FEAT_FROM_BIT_16_INVALID)
+ *pfeatures &= GENMASK(15, 0);
+ }
+ } else {
+ *pfeatures = 0;
+ }
+
+ return 0;
+}
+
+static int omnia_mcu_get_sts(u16 *sts)
+{
+ return omnia_mcu_get_sts_and_features(sts, NULL);
+}
+
+static bool omnia_mcu_has_feature(u32 feature)
+{
+ u32 features;
+
+ if (omnia_mcu_get_sts_and_features(NULL, &features))
+ return false;
+
+ return feature & features;
+}
+
+static u32 omnia_mcu_crc32(const void *p, size_t len)
+{
+ u32 val, crc = 0;
+
+ compiletime_assert(!(len % 4), "length has to be a multiple of 4");
+
+ while (len) {
+ val = bitrev32(get_unaligned_le32(p));
+ crc = crc32(crc, (void *)&val, 4);
+ p += 4;
+ len -= 4;
+ }
+
+ return ~bitrev32(crc);
+}
+
+/* Can only be called after relocation, since it needs cleared BSS */
+static int omnia_mcu_board_info(char *serial, u8 *mac, char *version)
+{
+ static u8 reply[17];
+ static bool cached;
+
+ if (!cached) {
+ u8 csum;
+ int ret;
+
+ ret = omnia_mcu_read(CMD_BOARD_INFO_GET, reply, sizeof(reply));
+ if (ret)
+ return ret;
+
+ if (reply[0] != 16)
+ return -EBADMSG;
+
+ csum = reply[16];
+ reply[16] = 0;
+
+ if ((omnia_mcu_crc32(&reply[1], 16) & 0xff) != csum)
+ return -EBADMSG;
+
+ cached = true;
+ }
+
+ if (serial) {
+ const char *serial_env;
+
+ serial_env = env_get("serial#");
+ if (serial_env && strlen(serial_env) == 16) {
+ strcpy(serial, serial_env);
+ } else {
+ sprintf(serial, "%016llX",
+ get_unaligned_le64(&reply[1]));
+ env_set("serial#", serial);
+ }
+ }
+
+ if (mac)
+ memcpy(mac, &reply[9], ETH_ALEN);
+
+ if (version)
+ sprintf(version, "%u", reply[15]);
+
+ return 0;
+}
+
+static int omnia_mcu_get_board_public_key(char pub_key[static 67])
+{
+ u8 reply[34];
+ int ret;
+
+ ret = omnia_mcu_read(CMD_CRYPTO_GET_PUBLIC_KEY, reply, sizeof(reply));
+ if (ret)
+ return ret;
+
+ if (reply[0] != 33)
+ return -EBADMSG;
+
+ bin2hex(pub_key, &reply[1], 33);
+ pub_key[66] = '\0';
+
+ return 0;
+}
+
static void enable_a385_watchdog(unsigned int timeout_minutes)
{
struct sar_freq_modes sar_freq;
@@ -219,7 +318,7 @@ static bool disable_mcu_watchdog(void)
puts("Disabling MCU watchdog... ");
- ret = omnia_mcu_write(CMD_WATCHDOG_STATE, "\x00", 1);
+ ret = omnia_mcu_write(CMD_SET_WATCHDOG_STATE, "\x00", 1);
if (ret) {
printf("omnia_mcu_write failed: %i\n", ret);
return false;
@@ -233,7 +332,7 @@ static bool disable_mcu_watchdog(void)
static bool omnia_detect_sata(const char *msata_slot)
{
int ret;
- u16 stsword;
+ u16 sts;
puts("MiniPCIe/mSATA card detection... ");
@@ -249,24 +348,24 @@ static bool omnia_detect_sata(const char *msata_slot)
}
}
- ret = omnia_mcu_read(CMD_GET_STATUS_WORD, &stsword, sizeof(stsword));
+ ret = omnia_mcu_get_sts(&sts);
if (ret) {
printf("omnia_mcu_read failed: %i, defaulting to MiniPCIe card\n",
ret);
return false;
}
- if (!(stsword & CARD_DET_STSBIT)) {
+ if (!(sts & STS_CARD_DET)) {
puts("none\n");
return false;
}
- if (stsword & MSATA_IND_STSBIT)
+ if (sts & STS_MSATA_IND)
puts("mSATA\n");
else
puts("MiniPCIe\n");
- return stsword & MSATA_IND_STSBIT ? true : false;
+ return sts & STS_MSATA_IND;
}
static bool omnia_detect_wwan_usb3(const char *wwan_slot)
@@ -393,32 +492,33 @@ static int omnia_get_ram_size_gb(void)
static const char * const omnia_get_mcu_type(void)
{
- static const char * const mcu_types[] = {
- [STS_MCU_TYPE_STM32] = "STM32",
- [STS_MCU_TYPE_GD32] = "GD32",
- [STS_MCU_TYPE_MKL] = "MKL",
- [STS_MCU_TYPE_UNKN] = "unknown",
- };
- static const char * const mcu_types_with_perip_resets[] = {
- [STS_MCU_TYPE_STM32] = "STM32 (with peripheral resets)",
- [STS_MCU_TYPE_GD32] = "GD32 (with peripheral resets)",
- [STS_MCU_TYPE_MKL] = "MKL (with peripheral resets)",
- [STS_MCU_TYPE_UNKN] = "unknown (with peripheral resets)",
- };
- u16 stsword, features;
+ static char result[] = "xxxxxxx (with peripheral resets)";
+ u16 sts;
int ret;
- ret = omnia_mcu_read(CMD_GET_STATUS_WORD, &stsword, sizeof(stsword));
+ ret = omnia_mcu_get_sts(&sts);
if (ret)
return "unknown";
- if (stsword & STS_FEATURES_SUPPORTED) {
- ret = omnia_mcu_read(CMD_GET_FEATURES, &features, sizeof(features));
- if (ret == 0 && (features & FEAT_PERIPH_MCU))
- return mcu_types_with_perip_resets[stsword & STS_MCU_TYPE_MASK];
+ switch (sts & STS_MCU_TYPE_MASK) {
+ case STS_MCU_TYPE_STM32:
+ strcpy(result, "STM32");
+ break;
+ case STS_MCU_TYPE_GD32:
+ strcpy(result, "GD32");
+ break;
+ case STS_MCU_TYPE_MKL:
+ strcpy(result, "MKL");
+ break;
+ default:
+ strcpy(result, "unknown");
+ break;
}
- return mcu_types[stsword & STS_MCU_TYPE_MASK];
+ if (omnia_mcu_has_feature(FEAT_PERIPH_MCU))
+ strcat(result, " (with peripheral resets)");
+
+ return result;
}
static const char * const omnia_get_mcu_version(void)
@@ -695,9 +795,6 @@ int board_early_init_f(void)
void spl_board_init(void)
{
- u16 val;
- int ret;
-
/*
* If booting from UART, disable MCU watchdog in SPL, since uploading
* U-Boot proper can take too much time and trigger it. Instead enable
@@ -714,12 +811,8 @@ void spl_board_init(void)
* resets then LAN eth switch is initialized automatically by bootstrap
* pins when A385 is released from the reset.
*/
- ret = omnia_mcu_read(CMD_GET_STATUS_WORD, &val, sizeof(val));
- if (ret == 0 && (val & STS_FEATURES_SUPPORTED)) {
- ret = omnia_mcu_read(CMD_GET_FEATURES, &val, sizeof(val));
- if (ret == 0 && (val & FEAT_PERIPH_MCU))
- initialize_switch();
- }
+ if (omnia_mcu_has_feature(FEAT_PERIPH_MCU))
+ initialize_switch();
}
#if IS_ENABLED(CONFIG_OF_BOARD_FIXUP) || IS_ENABLED(CONFIG_OF_BOARD_SETUP)
@@ -914,26 +1007,40 @@ static int fixup_mcu_gpio_in_eth_wan_node(void *blob)
return 0;
}
+static void fixup_atsha_node(void *blob)
+{
+ int node;
+
+ if (!omnia_mcu_has_feature(FEAT_CRYPTO))
+ return;
+
+ node = fdt_node_offset_by_compatible(blob, -1, "atmel,atsha204a");
+ if (node < 0) {
+ printf("Cannot find ATSHA204A node!\n");
+ return;
+ }
+
+ if (fdt_status_disabled(blob, node) < 0)
+ printf("Cannot disable ATSHA204A node!\n");
+ else
+ debug("Disabled ATSHA204A node\n");
+}
+
#endif
#if IS_ENABLED(CONFIG_OF_BOARD_FIXUP)
int board_fix_fdt(void *blob)
{
- u16 val;
- int ret;
-
- ret = omnia_mcu_read(CMD_GET_STATUS_WORD, &val, sizeof(val));
- if (ret == 0 && (val & STS_FEATURES_SUPPORTED)) {
- ret = omnia_mcu_read(CMD_GET_FEATURES, &val, sizeof(val));
- if (ret == 0 && (val & FEAT_PERIPH_MCU)) {
- fixup_mcu_gpio_in_pcie_nodes(blob);
- fixup_mcu_gpio_in_eth_wan_node(blob);
- }
+ if (omnia_mcu_has_feature(FEAT_PERIPH_MCU)) {
+ fixup_mcu_gpio_in_pcie_nodes(blob);
+ fixup_mcu_gpio_in_eth_wan_node(blob);
}
fixup_msata_port_nodes(blob);
fixup_wwan_port_nodes(blob);
+ fixup_atsha_node(blob);
+
return 0;
}
#endif
@@ -964,23 +1071,46 @@ int board_late_init(void)
int checkboard(void)
{
- char serial[17];
+ char serial[17], version[4], pub_key[67];
+ bool has_version;
int err;
- err = turris_atsha_otp_get_serial_number(serial);
- printf("Model: Turris Omnia\n");
printf(" MCU type: %s\n", omnia_get_mcu_type());
printf(" MCU version: %s\n", omnia_get_mcu_version());
printf(" RAM size: %i MiB\n", omnia_get_ram_size_gb() * 1024);
+
+ if (omnia_mcu_has_feature(FEAT_BOARD_INFO)) {
+ err = omnia_mcu_board_info(serial, NULL, version);
+ has_version = !err;
+ } else {
+ err = turris_atsha_otp_get_serial_number(serial);
+ has_version = false;
+ }
+
+ printf(" Board version: %s\n", has_version ? version : "unknown");
printf(" Serial Number: %s\n", !err ? serial : "unknown");
+ if (omnia_mcu_has_feature(FEAT_CRYPTO)) {
+ err = omnia_mcu_get_board_public_key(pub_key);
+ printf(" ECDSA Public Key: %s\n", !err ? pub_key : "unknown");
+ }
+
return 0;
}
int misc_init_r(void)
{
- turris_atsha_otp_init_mac_addresses(1);
- turris_atsha_otp_init_serial_number();
+ if (omnia_mcu_has_feature(FEAT_BOARD_INFO)) {
+ char serial[17];
+ u8 first_mac[6];
+
+ if (!omnia_mcu_board_info(serial, first_mac, NULL))
+ turris_init_mac_addresses(1, first_mac);
+ } else {
+ turris_atsha_otp_init_mac_addresses(1);
+ turris_atsha_otp_init_serial_number();
+ }
+
return 0;
}
@@ -1102,6 +1232,8 @@ int ft_board_setup(void *blob, struct bd_info *bd)
fixup_msata_port_nodes(blob);
fixup_wwan_port_nodes(blob);
+ fixup_atsha_node(blob);
+
return 0;
}
#endif
diff --git a/board/Marvell/octeon_ebb7304/Kconfig b/board/Marvell/octeon_ebb7304/Kconfig
index ab54e6dbbc3..b3244f751b1 100644
--- a/board/Marvell/octeon_ebb7304/Kconfig
+++ b/board/Marvell/octeon_ebb7304/Kconfig
@@ -9,7 +9,6 @@ config SYS_VENDOR
default "Marvell"
config SYS_CONFIG_NAME
- string
default "octeon_ebb7304"
config DEFAULT_DEVICE_TREE
diff --git a/board/Marvell/octeon_nic23/Kconfig b/board/Marvell/octeon_nic23/Kconfig
index 3c42e8acdad..468bbb756e6 100644
--- a/board/Marvell/octeon_nic23/Kconfig
+++ b/board/Marvell/octeon_nic23/Kconfig
@@ -9,7 +9,6 @@ config SYS_VENDOR
default "Marvell"
config SYS_CONFIG_NAME
- string
default "octeon_nic23"
config DEFAULT_DEVICE_TREE
diff --git a/board/advantech/imx8qm_dmsse20_a1/imx8qm_dmsse20_a1.c b/board/advantech/imx8qm_dmsse20_a1/imx8qm_dmsse20_a1.c
index 8b4d73052eb..56b7bdb57c9 100644
--- a/board/advantech/imx8qm_dmsse20_a1/imx8qm_dmsse20_a1.c
+++ b/board/advantech/imx8qm_dmsse20_a1/imx8qm_dmsse20_a1.c
@@ -136,17 +136,6 @@ void detail_board_ddr_info(void)
puts("\nDDR ");
}
-/*
- * Board specific reset that is system reset.
- */
-void reset_cpu(void)
-{
- puts("SCI reboot request");
-
- while (1)
- putc('.');
-}
-
#ifdef CONFIG_OF_BOARD_SETUP
int ft_board_setup(void *blob, struct bd_info *bd)
{
diff --git a/board/advantech/imx8qm_rom7720_a1/imx8qm_rom7720_a1.c b/board/advantech/imx8qm_rom7720_a1/imx8qm_rom7720_a1.c
index 206ce7d5c13..7f766a688bb 100644
--- a/board/advantech/imx8qm_rom7720_a1/imx8qm_rom7720_a1.c
+++ b/board/advantech/imx8qm_rom7720_a1/imx8qm_rom7720_a1.c
@@ -112,14 +112,6 @@ int board_init(void)
return 0;
}
-/*
- * Board specific reset that is system reset.
- */
-void reset_cpu(void)
-{
- /* TODO */
-}
-
int board_mmc_get_env_dev(int devno)
{
return devno;
diff --git a/board/amlogic/jethub-j100/MAINTAINERS b/board/amlogic/jethub-j100/MAINTAINERS
index 43f6a5fc86b..3edc5d8865c 100644
--- a/board/amlogic/jethub-j100/MAINTAINERS
+++ b/board/amlogic/jethub-j100/MAINTAINERS
@@ -1,5 +1,5 @@
JetHome JetHub
-M: Vyacheslav Bocharov <adeep@lexina.in>
+M: Viacheslav Bocharov <adeep@lexina.in>
S: Maintained
L: u-boot-amlogic@groups.io
F: board/amlogic/jethub-j100/
diff --git a/board/anbernic/rgxx3_rk3566/Kconfig b/board/anbernic/rgxx3_rk3566/Kconfig
index 6743a28a2f5..b5ee67c16b7 100644
--- a/board/anbernic/rgxx3_rk3566/Kconfig
+++ b/board/anbernic/rgxx3_rk3566/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "anbernic-rgxx3-rk3566"
-config BOARD_SPECIFIC_OPTIONS
- def_bool y
-
endif
diff --git a/board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c b/board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c
index d05502f67af..099eea60c39 100644
--- a/board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c
+++ b/board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c
@@ -6,12 +6,14 @@
#include <abuf.h>
#include <adc.h>
#include <asm/io.h>
+#include <command.h>
#include <display.h>
#include <dm.h>
#include <dm/lists.h>
#include <env.h>
#include <fdt_support.h>
#include <linux/delay.h>
+#include <linux/iopoll.h>
#include <mipi_dsi.h>
#include <mmc.h>
#include <panel.h>
@@ -19,6 +21,8 @@
#include <stdlib.h>
#include <video_bridge.h>
+#define BOOT_BROM_DOWNLOAD 0xef08a53c
+
#define GPIO0_BASE 0xfdd60000
#define GPIO4_BASE 0xfe770000
#define GPIO_SWPORT_DR_L 0x0000
@@ -32,6 +36,14 @@
#define GPIO_WRITEMASK(bits) ((bits) << 16)
+#define SARADC_BASE 0xfe720000
+#define SARADC_DATA 0x0000
+#define SARADC_STAS 0x0004
+#define SARADC_ADC_STATUS BIT(0)
+#define SARADC_CTRL 0x0008
+#define SARADC_INPUT_SRC_MSK 0x7
+#define SARADC_POWER_CTRL BIT(3)
+
#define DTB_DIR "rockchip/"
struct rg3xx_model {
@@ -50,6 +62,7 @@ enum rgxx3_device_id {
RGB30,
RK2023,
RGARCD,
+ RGB10MAX3,
/* Devices with duplicate ADC value */
RG353PS,
RG353VS,
@@ -107,6 +120,13 @@ static const struct rg3xx_model rg3xx_model_details[] = {
.fdtfile = DTB_DIR "rk3566-anbernic-rg-arc-d.dtb",
.detect_panel = 0,
},
+ [RGB10MAX3] = {
+ .adc_value = 765, /* Observed average from device */
+ .board = "rk3566-powkiddy-rgb10max3",
+ .board_name = "Powkiddy RGB10MAX3",
+ .fdtfile = DTB_DIR "rk3566-powkiddy-rgb10max3.dtb",
+ .detect_panel = 0,
+ },
/* Devices with duplicate ADC value */
[RG353PS] = {
.adc_value = 860, /* Observed average from device */
@@ -150,11 +170,63 @@ static const struct rg353_panel rg353_panel_details[] = {
};
/*
+ * The device has internal eMMC, and while some devices have an exposed
+ * clk pin you can ground to force a bypass not all devices do. As a
+ * result it may be possible for some devices to become a perma-brick
+ * if a corrupted TPL or SPL stage with a valid header is flashed to
+ * the internal eMMC. Add functionality to read ADC channel 0 (the func
+ * button) as early as possible in the boot process to provide some
+ * protection against this. If we ever get an open TPL stage, we should
+ * consider moving this function there.
+ */
+void read_func_button(void)
+{
+ int ret;
+ u32 reg;
+
+ /* Turn off SARADC to reset it. */
+ writel(0, (SARADC_BASE + SARADC_CTRL));
+
+ /* Enable channel 0 and power on SARADC. */
+ writel(((0 & SARADC_INPUT_SRC_MSK) | SARADC_POWER_CTRL),
+ (SARADC_BASE + SARADC_CTRL));
+
+ /*
+ * Wait for data to be ready. Use timeout of 20000us from
+ * rockchip_saradc driver.
+ */
+ ret = readl_poll_timeout((SARADC_BASE + SARADC_STAS), reg,
+ !(reg & SARADC_ADC_STATUS), 20000);
+ if (ret) {
+ printf("ADC Timeout");
+ return;
+ }
+
+ /* Read the data from the SARADC. */
+ reg = readl((SARADC_BASE + SARADC_DATA));
+
+ /* Turn the SARADC back off so it's ready to be used again. */
+ writel(0, (SARADC_BASE + SARADC_CTRL));
+
+ /*
+ * If the value is less than 30 the button is being pressed.
+ * Reset the device back into Rockchip download mode.
+ */
+ if (reg <= 30) {
+ printf("download key pressed, entering download mode...");
+ writel(BOOT_BROM_DOWNLOAD, CONFIG_ROCKCHIP_BOOT_MODE_REG);
+ do_reset(NULL, 0, 0, NULL);
+ }
+};
+
+/*
* Start LED very early so user knows device is on. Set color
* to red.
*/
void spl_board_init(void)
{
+ read_func_button();
+
/* Set GPIO0_C5, GPIO0_C6, and GPIO0_C7 to output. */
writel(GPIO_WRITEMASK(GPIO_C7 | GPIO_C6 | GPIO_C5) | \
(GPIO_C7 | GPIO_C6 | GPIO_C5),
diff --git a/board/atmel/sama7g54_curiosity/Kconfig b/board/atmel/sama7g54_curiosity/Kconfig
new file mode 100644
index 00000000000..3e60d96712f
--- /dev/null
+++ b/board/atmel/sama7g54_curiosity/Kconfig
@@ -0,0 +1,15 @@
+if TARGET_SAMA7G54_CURIOSITY
+
+config SYS_BOARD
+ default "sama7g54_curiosity"
+
+config SYS_VENDOR
+ default "atmel"
+
+config SYS_SOC
+ default "at91"
+
+config SYS_CONFIG_NAME
+ default "sama7g54_curiosity"
+
+endif
diff --git a/board/atmel/sama7g54_curiosity/MAINTAINERS b/board/atmel/sama7g54_curiosity/MAINTAINERS
new file mode 100644
index 00000000000..b9f1a271c09
--- /dev/null
+++ b/board/atmel/sama7g54_curiosity/MAINTAINERS
@@ -0,0 +1,9 @@
+SAMA7G54 CURIOSITY BOARD
+M: Mihai Sain <mihai.sain@microchip.com>
+S: Maintained
+F: board/atmel/sama7g54_curiosity.c
+F: include/configs/sama7g54_curiosity.h
+F: configs/sama7g54_curiosity_mmc_defconfig
+F: configs/sama7g54_curiosity_nandflash_defconfig
+F: configs/sama7g54_curiosity_qspiflash_defconfig
+F: arch/arm/dts/at91-sama7g54_curiosity*
diff --git a/board/atmel/sama7g54_curiosity/Makefile b/board/atmel/sama7g54_curiosity/Makefile
new file mode 100644
index 00000000000..bc77655f354
--- /dev/null
+++ b/board/atmel/sama7g54_curiosity/Makefile
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2024 Microchip Technology Inc. and its subsidiaries
+#
+# Author: Mihai Sain <mihai.sain@microchip.com>
+
+obj-y += sama7g54_curiosity.o
diff --git a/board/atmel/sama7g54_curiosity/sama7g54_curiosity.c b/board/atmel/sama7g54_curiosity/sama7g54_curiosity.c
new file mode 100644
index 00000000000..33cd0903d25
--- /dev/null
+++ b/board/atmel/sama7g54_curiosity/sama7g54_curiosity.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2024 Microchip Technology Inc. and its subsidiaries
+ *
+ * Author: Mihai Sain <mihai.sain@microchip.com>
+ *
+ */
+
+#include <common.h>
+#include <init.h>
+#include <asm/global_data.h>
+#include <asm/io.h>
+#include <asm/arch/at91_common.h>
+#include <asm/arch/atmel_pio4.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/sama7g5.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_init(void)
+{
+ // Address of boot parameters
+ gd->bd->bi_boot_params = gd->bd->bi_dram[0].start + 0x100;
+
+ return 0;
+}
+
+int dram_init_banksize(void)
+{
+ return fdtdec_setup_memory_banksize();
+}
+
+int dram_init(void)
+{
+ return fdtdec_setup_mem_size_base();
+}
diff --git a/board/beagle/beagleplay/beagleplay.c b/board/beagle/beagleplay/beagleplay.c
index 20819ecf45b..af36439e2e2 100644
--- a/board/beagle/beagleplay/beagleplay.c
+++ b/board/beagle/beagleplay/beagleplay.c
@@ -11,6 +11,8 @@
#include <fdt_support.h>
#include <spl.h>
+#include <asm/arch/hardware.h>
+
DECLARE_GLOBAL_DATA_PTR;
int board_init(void)
@@ -41,3 +43,62 @@ int board_late_init(void)
return 0;
}
#endif
+
+#ifdef CONFIG_SPL_BOARD_INIT
+
+/*
+ * Enable the 32k Crystal: needed for accurate 32k clock
+ * and external clock sources such as wlan 32k input clock
+ * supplied from the SoC to the wlan chip.
+ *
+ * The trim setup can be very highly board type specific choice of the crystal
+ * So this is done in the board file, though, in this case, no specific trim
+ * is necessary.
+ */
+static void crystal_32k_enable(void)
+{
+ /* Only mess with 32k at the start of boot from R5 */
+ if (IS_ENABLED(CONFIG_CPU_V7R)) {
+ /*
+ * We have external 32k crystal, so lets enable it (0x0)
+ * and disable bypass (0x0)
+ */
+ writel(0x0, MCU_CTRL_LFXOSC_CTRL);
+
+ /* Add any crystal specific TRIM needed here.. */
+
+ /* Make sure to mux the SoC 32k from the crystal */
+ writel(MCU_CTRL_DEVICE_CLKOUT_LFOSC_SELECT_VAL,
+ MCU_CTRL_DEVICE_CLKOUT_32K_CTRL);
+ }
+}
+
+static void debounce_configure(void)
+{
+ /* Configure debounce one time from R5 */
+ if (IS_ENABLED(CONFIG_CPU_V7R)) {
+ /*
+ * Setup debounce time registers.
+ * arbitrary values. Times are approx
+ */
+ /* 1.9ms debounce @ 32k */
+ writel(0x1, CTRLMMR_DBOUNCE_CFG(1));
+ /* 5ms debounce @ 32k */
+ writel(0x5, CTRLMMR_DBOUNCE_CFG(2));
+ /* 20ms debounce @ 32k */
+ writel(0x14, CTRLMMR_DBOUNCE_CFG(3));
+ /* 46ms debounce @ 32k */
+ writel(0x18, CTRLMMR_DBOUNCE_CFG(4));
+ /* 100ms debounce @ 32k */
+ writel(0x1c, CTRLMMR_DBOUNCE_CFG(5));
+ /* 156ms debounce @ 32k */
+ writel(0x1f, CTRLMMR_DBOUNCE_CFG(6));
+ }
+}
+
+void spl_board_init(void)
+{
+ crystal_32k_enable();
+ debounce_configure();
+}
+#endif
diff --git a/board/beagle/beagleplay/beagleplay.env b/board/beagle/beagleplay/beagleplay.env
index 647b25d14c8..bbf6b925d02 100644
--- a/board/beagle/beagleplay/beagleplay.env
+++ b/board/beagle/beagleplay/beagleplay.env
@@ -13,6 +13,6 @@ boot=mmc
mmcdev=1
bootpart=1:1
bootdir=/boot
-boot_targets=mmc1 mmc0 usb pxe
+boot_targets=mmc1 mmc0
bootmeths=script extlinux efi pxe
rd_spec=-
diff --git a/board/cadence/xtfpga/Kconfig b/board/cadence/xtfpga/Kconfig
index 69296be49c7..a64961e6d6a 100644
--- a/board/cadence/xtfpga/Kconfig
+++ b/board/cadence/xtfpga/Kconfig
@@ -25,7 +25,6 @@ config SYS_VENDOR
default "cadence"
config SYS_CONFIG_NAME
- string
default "xtfpga"
config BOARD_SDRAM_SIZE
diff --git a/board/cavium/thunderx/Kconfig b/board/cavium/thunderx/Kconfig
index 927d8765d67..3d4b260ea29 100644
--- a/board/cavium/thunderx/Kconfig
+++ b/board/cavium/thunderx/Kconfig
@@ -13,7 +13,6 @@ config SYS_VENDOR
default "cavium"
config SYS_CONFIG_NAME
- string
default "thunderx_88xx"
config CMD_ATF
diff --git a/board/chipspark/popmetal_rk3288/Kconfig b/board/chipspark/popmetal_rk3288/Kconfig
index a5f404306a8..22228aecdea 100644
--- a/board/chipspark/popmetal_rk3288/Kconfig
+++ b/board/chipspark/popmetal_rk3288/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "popmetal_rk3288"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/congatec/cgtqmx8/cgtqmx8.c b/board/congatec/cgtqmx8/cgtqmx8.c
index 26189ff66f5..3b01354bb6b 100644
--- a/board/congatec/cgtqmx8/cgtqmx8.c
+++ b/board/congatec/cgtqmx8/cgtqmx8.c
@@ -371,13 +371,6 @@ void detail_board_ddr_info(void)
puts("\nDDR ");
}
-/*
- * Board specific reset that is system reset.
- */
-void reset_cpu(void)
-{
- /* TODO */
-}
#ifdef CONFIG_OF_BOARD_SETUP
int ft_board_setup(void *blob, struct bd_info *bd)
diff --git a/board/coreboot/coreboot/Kconfig b/board/coreboot/coreboot/Kconfig
index 4f41ce1abf1..abbf08ac695 100644
--- a/board/coreboot/coreboot/Kconfig
+++ b/board/coreboot/coreboot/Kconfig
@@ -29,10 +29,3 @@ config SYS_CAR_SIZE
This option specifies the board specific Cache-As-RAM (CAR) size.
endif # CONFIG_VENDOR_COREBOOT
-
-if TARGET_COREBOOT
-
-config SYS_CONFIG_NAME
- default "coreboot"
-
-endif
diff --git a/board/coreboot/coreboot/MAINTAINERS b/board/coreboot/coreboot/MAINTAINERS
index f7773658000..d97383c030c 100644
--- a/board/coreboot/coreboot/MAINTAINERS
+++ b/board/coreboot/coreboot/MAINTAINERS
@@ -2,7 +2,6 @@ COREBOOT BOARD
M: Simon Glass <sjg@chromium.org>
S: Maintained
F: board/coreboot/
-F: include/configs/coreboot.h
F: configs/coreboot_defconfig
COREBOOT64 BOARD
diff --git a/board/dhelectronics/common/dh_common.c b/board/dhelectronics/common/dh_common.c
index 67e3d59b1f3..34094a020b0 100644
--- a/board/dhelectronics/common/dh_common.c
+++ b/board/dhelectronics/common/dh_common.c
@@ -18,6 +18,19 @@ bool dh_mac_is_in_env(const char *env)
return eth_env_get_enetaddr(env, enetaddr);
}
+int dh_get_mac_is_enabled(const char *alias)
+{
+ ofnode node = ofnode_path(alias);
+
+ if (!ofnode_valid(node))
+ return -EINVAL;
+
+ if (!ofnode_is_enabled(node))
+ return -ENODEV;
+
+ return 0;
+}
+
int dh_get_mac_from_eeprom(unsigned char *enetaddr, const char *alias)
{
struct udevice *dev;
@@ -57,6 +70,9 @@ __weak int dh_setup_mac_address(void)
if (dh_mac_is_in_env("ethaddr"))
return 0;
+ if (dh_get_mac_is_enabled("ethernet0"))
+ return 0;
+
if (!dh_get_mac_from_eeprom(enetaddr, "eeprom0"))
return eth_env_set_enetaddr("ethaddr", enetaddr);
diff --git a/board/dhelectronics/common/dh_common.h b/board/dhelectronics/common/dh_common.h
index 2b24637d96d..a2de5b1553e 100644
--- a/board/dhelectronics/common/dh_common.h
+++ b/board/dhelectronics/common/dh_common.h
@@ -12,6 +12,14 @@
bool dh_mac_is_in_env(const char *env);
/*
+ * dh_get_mac_is_enabled - Test if ethernet MAC is enabled in DT
+ *
+ * @alias: alias for ethernet MAC device tree node
+ * Return: 0 if OK, other value on error
+ */
+int dh_get_mac_is_enabled(const char *alias);
+
+/*
* dh_get_mac_from_eeprom - Get MAC address from eeprom and write it to enetaddr
*
* @enetaddr: buffer where address is to be stored
diff --git a/board/dhelectronics/dh_imx6/dh_imx6.c b/board/dhelectronics/dh_imx6/dh_imx6.c
index 07fc9b1fe6d..0676587c38a 100644
--- a/board/dhelectronics/dh_imx6/dh_imx6.c
+++ b/board/dhelectronics/dh_imx6/dh_imx6.c
@@ -92,6 +92,9 @@ int dh_setup_mac_address(void)
if (dh_mac_is_in_env("ethaddr"))
return 0;
+ if (dh_get_mac_is_enabled("ethernet0"))
+ return 0;
+
if (!dh_imx_get_mac_from_fuse(enetaddr))
goto out;
diff --git a/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c b/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c
index 5f12d787d38..ff2c0e87215 100644
--- a/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c
+++ b/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c
@@ -47,6 +47,9 @@ static int dh_imx8_setup_ethaddr(void)
if (dh_mac_is_in_env("ethaddr"))
return 0;
+ if (dh_get_mac_is_enabled("ethernet0"))
+ return 0;
+
if (!dh_imx_get_mac_from_fuse(enetaddr))
goto out;
@@ -66,6 +69,9 @@ static int dh_imx8_setup_eth1addr(void)
if (dh_mac_is_in_env("eth1addr"))
return 0;
+ if (dh_get_mac_is_enabled("ethernet1"))
+ return 0;
+
if (!dh_imx_get_mac_from_fuse(enetaddr))
goto increment_out;
diff --git a/board/dhelectronics/dh_stm32mp1/board.c b/board/dhelectronics/dh_stm32mp1/board.c
index d1f662d9701..079dfff0389 100644
--- a/board/dhelectronics/dh_stm32mp1/board.c
+++ b/board/dhelectronics/dh_stm32mp1/board.c
@@ -128,6 +128,9 @@ static int dh_stm32_setup_ethaddr(void)
if (dh_mac_is_in_env("ethaddr"))
return 0;
+ if (dh_get_mac_is_enabled("ethernet0"))
+ return 0;
+
if (!dh_get_mac_from_eeprom(enetaddr, "eeprom0"))
return eth_env_set_enetaddr("ethaddr", enetaddr);
@@ -141,6 +144,9 @@ static int dh_stm32_setup_eth1addr(void)
if (dh_mac_is_in_env("eth1addr"))
return 0;
+ if (dh_get_mac_is_enabled("ethernet1"))
+ return 0;
+
if (dh_stm32_mac_is_in_ks8851())
return 0;
diff --git a/board/edgeble/neural-compute-module-6/Kconfig b/board/edgeble/neural-compute-module-6/Kconfig
index c445454dded..05de14f93c8 100644
--- a/board/edgeble/neural-compute-module-6/Kconfig
+++ b/board/edgeble/neural-compute-module-6/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "neural-compute-module-6"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/efi/efi-x86_app/Kconfig b/board/efi/efi-x86_app/Kconfig
index ecd08d73146..f9cbef0a864 100644
--- a/board/efi/efi-x86_app/Kconfig
+++ b/board/efi/efi-x86_app/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "efi"
-config SYS_CONFIG_NAME
- default "efi-x86_app"
-
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
imply VIDEO_EFI
diff --git a/board/efi/efi-x86_app/MAINTAINERS b/board/efi/efi-x86_app/MAINTAINERS
index 584619c51df..693f367311b 100644
--- a/board/efi/efi-x86_app/MAINTAINERS
+++ b/board/efi/efi-x86_app/MAINTAINERS
@@ -3,7 +3,6 @@ M: Simon Glass <sjg@chromium.org>
S: Maintained
F: board/efi/Kconfig
F: board/efi/efi-x86_app/
-F: include/configs/efi-x86_app.h
F: configs/efi-x86_app32_defconfig
EFI-X86_APP64 BOARD
@@ -11,5 +10,4 @@ M: Simon Glass <sjg@chromium.org>
S: Maintained
F: board/efi/Kconfig
F: board/efi/efi-x86_app/
-F: include/configs/efi-x86_app.h
F: configs/efi-x86_app64_defconfig
diff --git a/board/efi/efi-x86_payload/Kconfig b/board/efi/efi-x86_payload/Kconfig
index 6d062499346..c500ca02ebf 100644
--- a/board/efi/efi-x86_payload/Kconfig
+++ b/board/efi/efi-x86_payload/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "efi"
-config SYS_CONFIG_NAME
- default "efi-x86_payload"
-
config TEXT_BASE
default 0x00200000
diff --git a/board/efi/efi-x86_payload/MAINTAINERS b/board/efi/efi-x86_payload/MAINTAINERS
index d795d60e09e..3c5d48aa84c 100644
--- a/board/efi/efi-x86_payload/MAINTAINERS
+++ b/board/efi/efi-x86_payload/MAINTAINERS
@@ -3,6 +3,5 @@ M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/efi/Kconfig
F: board/efi/efi-x86_payload/
-F: include/configs/efi-x86_payload.h
F: configs/efi-x86_payload32_defconfig
F: configs/efi-x86_payload64_defconfig
diff --git a/board/elgin/elgin_rv1108/Kconfig b/board/elgin/elgin_rv1108/Kconfig
index be9243164aa..e942e133aa0 100644
--- a/board/elgin/elgin_rv1108/Kconfig
+++ b/board/elgin/elgin_rv1108/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "elgin_rv1108"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/elgin/elgin_rv1108/elgin_rv1108.c b/board/elgin/elgin_rv1108/elgin_rv1108.c
index eb7a322d847..10398e7f712 100644
--- a/board/elgin/elgin_rv1108/elgin_rv1108.c
+++ b/board/elgin/elgin_rv1108/elgin_rv1108.c
@@ -8,7 +8,6 @@
#include <init.h>
#include <syscon.h>
#include <asm/global_data.h>
-#include <asm/io.h>
#include <asm/arch-rockchip/clock.h>
#include <asm/arch-rockchip/grf_rv1108.h>
#include <asm/arch-rockchip/hardware.h>
diff --git a/board/emulation/qemu-arm/qemu-arm.c b/board/emulation/qemu-arm/qemu-arm.c
index 942f1fff571..ecfd19f1a7e 100644
--- a/board/emulation/qemu-arm/qemu-arm.c
+++ b/board/emulation/qemu-arm/qemu-arm.c
@@ -127,6 +127,18 @@ int dram_init(void)
if (fdtdec_setup_mem_size_base() != 0)
return -EINVAL;
+ /*
+ * When LPAE is enabled (ARMv7),
+ * 1:1 mapping is created using 2 MB blocks.
+ *
+ * In case amount of memory provided to QEMU
+ * is not multiple of 2 MB, round down the amount
+ * of available memory to avoid hang during MMU
+ * initialization.
+ */
+ if (CONFIG_IS_ENABLED(ARMV7_LPAE))
+ gd->ram_size -= (gd->ram_size % 0x200000);
+
return 0;
}
diff --git a/board/emulation/qemu-riscv/qemu-riscv.c b/board/emulation/qemu-riscv/qemu-riscv.c
index 181abbbf97d..173245b40e3 100644
--- a/board/emulation/qemu-riscv/qemu-riscv.c
+++ b/board/emulation/qemu-riscv/qemu-riscv.c
@@ -31,12 +31,6 @@ int is_flash_available(void)
int board_init(void)
{
- /*
- * Make sure virtio bus is enumerated so that peripherals
- * on the virtio bus can be discovered by their drivers
- */
- virtio_init();
-
return 0;
}
@@ -46,6 +40,12 @@ int board_late_init(void)
if (CONFIG_IS_ENABLED(USB_KEYBOARD))
usb_init();
+ /*
+ * Make sure virtio bus is enumerated so that peripherals
+ * on the virtio bus can be discovered by their drivers
+ */
+ virtio_init();
+
return 0;
}
diff --git a/board/emulation/qemu-x86/Kconfig b/board/emulation/qemu-x86/Kconfig
index 01dc1d497ae..b2a4e0891a4 100644
--- a/board/emulation/qemu-x86/Kconfig
+++ b/board/emulation/qemu-x86/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "qemu"
-config SYS_CONFIG_NAME
- default "qemu-x86"
-
config TEXT_BASE
default 0xfff00000 if !SUPPORT_SPL
default 0x01110000 if SUPPORT_SPL
@@ -21,7 +18,8 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select X86_RESET_VECTOR
select QEMU
select QFW_PIO if CMD_QFW
- select BOARD_ROMSIZE_KB_1024
+ select BOARD_ROMSIZE_KB_1024 if TARGET_QEMU_X86
+ select BOARD_ROMSIZE_KB_2048 if TARGET_QEMU_X86_64
imply VIRTIO_PCI
imply VIRTIO_NET
imply VIRTIO_BLK
diff --git a/board/emulation/qemu-x86/MAINTAINERS b/board/emulation/qemu-x86/MAINTAINERS
index e62585a65d7..efb8b46daaf 100644
--- a/board/emulation/qemu-x86/MAINTAINERS
+++ b/board/emulation/qemu-x86/MAINTAINERS
@@ -3,7 +3,6 @@ M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/emulation/qemu-x86/
F: board/emulation/common/
-F: include/configs/qemu-x86.h
F: configs/qemu-x86_defconfig
QEMU X86 64-bit BOARD
@@ -11,5 +10,4 @@ M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/emulation/qemu-x86/
F: board/emulation/common/
-F: include/configs/qemu-x86.h
F: configs/qemu-x86_64_defconfig
diff --git a/board/firefly/firefly-rk3288/Kconfig b/board/firefly/firefly-rk3288/Kconfig
index 1c2bca86824..ed1c9fcb643 100644
--- a/board/firefly/firefly-rk3288/Kconfig
+++ b/board/firefly/firefly-rk3288/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "firefly-rk3288"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/firefly/firefly-rk3308/Kconfig b/board/firefly/firefly-rk3308/Kconfig
index 80b1ad85a2e..fd6b981c4f7 100644
--- a/board/firefly/firefly-rk3308/Kconfig
+++ b/board/firefly/firefly-rk3308/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "firefly_rk3308"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/firefly/firefly-rk3308/roc_cc_rk3308.c b/board/firefly/firefly-rk3308/roc_cc_rk3308.c
index bdf3cc03dc5..99a52a77116 100644
--- a/board/firefly/firefly-rk3308/roc_cc_rk3308.c
+++ b/board/firefly/firefly-rk3308/roc_cc_rk3308.c
@@ -5,7 +5,6 @@
#include <common.h>
#include <adc.h>
-#include <asm/io.h>
#include <asm/arch/grf_rk3308.h>
#include <asm/arch-rockchip/hardware.h>
#include <linux/bitops.h>
diff --git a/board/firefly/roc-pc-rk3399/Kconfig b/board/firefly/roc-pc-rk3399/Kconfig
index 720fbbb5fa3..c211e9d3c79 100644
--- a/board/firefly/roc-pc-rk3399/Kconfig
+++ b/board/firefly/roc-pc-rk3399/Kconfig
@@ -9,8 +9,5 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "roc-pc-rk3399"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/firefly/roc-pc-rk3399/MAINTAINERS b/board/firefly/roc-pc-rk3399/MAINTAINERS
index 68a5b757d1d..2c0de4432fa 100644
--- a/board/firefly/roc-pc-rk3399/MAINTAINERS
+++ b/board/firefly/roc-pc-rk3399/MAINTAINERS
@@ -6,3 +6,4 @@ F: board/firefly/roc-pc-rk3399
F: include/configs/roc-pc-rk3399.h
F: configs/roc-pc-rk3399_defconfig
F: configs/roc-pc-mezzanine-rk3399_defconfig
+F: arch/arm/dts/rk3399-roc-pc*
diff --git a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c
index 93e7d776fb2..590519b32af 100644
--- a/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c
+++ b/board/firefly/roc-pc-rk3399/roc-pc-rk3399.c
@@ -9,32 +9,12 @@
#include <log.h>
#include <spl_gpio.h>
#include <asm/io.h>
-#include <power/regulator.h>
#include <asm/arch-rockchip/cru.h>
#include <asm/arch-rockchip/gpio.h>
#include <asm/arch-rockchip/grf_rk3399.h>
-#ifndef CONFIG_SPL_BUILD
-int board_early_init_f(void)
-{
- struct udevice *regulator;
- int ret;
-
- ret = regulator_get_by_platname("vcc5v0_host", &regulator);
- if (ret) {
- debug("%s vcc5v0_host init fail! ret %d\n", __func__, ret);
- goto out;
- }
-
- ret = regulator_set_enable(regulator, true);
- if (ret)
- debug("%s vcc5v0-host-en set fail! ret %d\n", __func__, ret);
-out:
- return 0;
-}
-
-#else
+#ifdef CONFIG_SPL_BUILD
#define PMUGRF_BASE 0xff320000
#define GPIO0_BASE 0xff720000
diff --git a/board/freescale/imx8mq_evk/imx8mq_evk.c b/board/freescale/imx8mq_evk/imx8mq_evk.c
index e3948058560..e577e4d9cca 100644
--- a/board/freescale/imx8mq_evk/imx8mq_evk.c
+++ b/board/freescale/imx8mq_evk/imx8mq_evk.c
@@ -54,38 +54,8 @@ int board_early_init_f(void)
return 0;
}
-#ifdef CONFIG_FEC_MXC
-static int setup_fec(void)
-{
- struct iomuxc_gpr_base_regs *gpr =
- (struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
-
- /* Use 125M anatop REF_CLK1 for ENET1, not from external */
- clrsetbits_le32(&gpr->gpr[1], BIT(13) | BIT(17), 0);
- return set_clk_enet(ENET_125MHZ);
-}
-
-int board_phy_config(struct phy_device *phydev)
-{
- /* enable rgmii rxc skew and phy mode select to RGMII copper */
- phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
- phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
-
- phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
- phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
-
- if (phydev->drv->config)
- phydev->drv->config(phydev);
- return 0;
-}
-#endif
-
int board_init(void)
{
-#ifdef CONFIG_FEC_MXC
- setup_fec();
-#endif
-
#if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_DWC3)
init_usb_clk();
#endif
diff --git a/board/freescale/imx8qm_mek/imx8qm_mek.c b/board/freescale/imx8qm_mek/imx8qm_mek.c
index d96d1d07bb1..2b209c8886f 100644
--- a/board/freescale/imx8qm_mek/imx8qm_mek.c
+++ b/board/freescale/imx8qm_mek/imx8qm_mek.c
@@ -102,14 +102,6 @@ int board_init(void)
return 0;
}
-/*
- * Board specific reset that is system reset.
- */
-void reset_cpu(void)
-{
- /* TODO */
-}
-
#ifdef CONFIG_OF_BOARD_SETUP
int ft_board_setup(void *blob, struct bd_info *bd)
{
diff --git a/board/freescale/imx8qxp_mek/imx8qxp_mek.c b/board/freescale/imx8qxp_mek/imx8qxp_mek.c
index 516cefd2f24..833bee55462 100644
--- a/board/freescale/imx8qxp_mek/imx8qxp_mek.c
+++ b/board/freescale/imx8qxp_mek/imx8qxp_mek.c
@@ -126,14 +126,6 @@ int board_init(void)
return 0;
}
-/*
- * Board specific reset that is system reset.
- */
-void reset_cpu(void)
-{
- /* TODO */
-}
-
#ifdef CONFIG_OF_BOARD_SETUP
int ft_board_setup(void *blob, struct bd_info *bd)
{
diff --git a/board/freescale/imx93_evk/spl.c b/board/freescale/imx93_evk/spl.c
index 2fd5559195e..7331a20f94c 100644
--- a/board/freescale/imx93_evk/spl.c
+++ b/board/freescale/imx93_evk/spl.c
@@ -116,7 +116,7 @@ void board_init_f(ulong dummy)
preloader_console_init();
- ret = imx9_probe_mu(NULL, NULL);
+ ret = imx9_probe_mu();
if (ret) {
printf("Fail to init Sentinel API\n");
} else {
diff --git a/board/freescale/imxrt1020-evk/Kconfig b/board/freescale/imxrt1020-evk/Kconfig
index d00cbff094b..3cb8fb1e6e9 100644
--- a/board/freescale/imxrt1020-evk/Kconfig
+++ b/board/freescale/imxrt1020-evk/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "imxrt1020"
config SYS_CONFIG_NAME
- string
default "imxrt1020-evk"
config IMX_CONFIG
diff --git a/board/freescale/imxrt1050-evk/Kconfig b/board/freescale/imxrt1050-evk/Kconfig
index 79e6e4524ad..068130beca9 100644
--- a/board/freescale/imxrt1050-evk/Kconfig
+++ b/board/freescale/imxrt1050-evk/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "imxrt1050"
config SYS_CONFIG_NAME
- string
default "imxrt1050-evk"
config IMX_CONFIG
diff --git a/board/freescale/imxrt1170-evk/Kconfig b/board/freescale/imxrt1170-evk/Kconfig
index c61fc579713..b433d6e5df0 100644
--- a/board/freescale/imxrt1170-evk/Kconfig
+++ b/board/freescale/imxrt1170-evk/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "imxrt1170"
config SYS_CONFIG_NAME
- string
default "imxrt1170-evk"
config IMX_CONFIG
diff --git a/board/friendlyelec/nanopc-t6-rk3588/Kconfig b/board/friendlyelec/nanopc-t6-rk3588/Kconfig
index 032ef486108..e86a94c5909 100644
--- a/board/friendlyelec/nanopc-t6-rk3588/Kconfig
+++ b/board/friendlyelec/nanopc-t6-rk3588/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "nanopc-t6-rk3588"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/gateworks/venice/venice.c b/board/gateworks/venice/venice.c
index 0902a1da3e2..f54f1186b68 100644
--- a/board/gateworks/venice/venice.c
+++ b/board/gateworks/venice/venice.c
@@ -25,12 +25,13 @@ int board_phys_sdram_size(phys_size_t *size)
return 0;
}
-int board_fit_config_name_match(const char *name)
+int board_fit_config_name_match(const char *path)
{
- int i = 0;
- const char *dtb;
+ const char *name = path + strlen("freescale/");
static char init;
+ const char *dtb;
char buf[32];
+ int i = 0;
do {
dtb = eeprom_get_dtb_name(i++, buf, sizeof(buf));
diff --git a/board/geekbuying/geekbox/Kconfig b/board/geekbuying/geekbox/Kconfig
index 41aa8fbe03d..ac5aedf46ad 100644
--- a/board/geekbuying/geekbox/Kconfig
+++ b/board/geekbuying/geekbox/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "geekbox"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/google/gru/Kconfig b/board/google/gru/Kconfig
index 1455e1481dc..c84ebaf3cc1 100644
--- a/board/google/gru/Kconfig
+++ b/board/google/gru/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "gru"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
if TARGET_CHROMEBOOK_KEVIN
@@ -25,7 +22,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "gru"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/google/gru/gru.c b/board/google/gru/gru.c
index fbcf845e87d..e08cb42c27e 100644
--- a/board/google/gru/gru.c
+++ b/board/google/gru/gru.c
@@ -3,20 +3,9 @@
* Copyright 2018 Google
*/
-#include <common.h>
#include <dm.h>
#include <init.h>
-#include <syscon.h>
-#include <asm/io.h>
#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/grf_rk3399.h>
-#include <asm/arch-rockchip/hardware.h>
-#include <asm/arch-rockchip/misc.h>
-
-#define GRF_IO_VSEL_BT656_SHIFT 0
-#define GRF_IO_VSEL_AUDIO_SHIFT 1
-#define PMUGRF_CON0_VSEL_SHIFT 8
-#define PMUGRF_CON0_VOL_SHIFT 9
#ifdef CONFIG_SPL_BUILD
/* provided to defeat compiler optimisation in board_init_f() */
@@ -65,44 +54,3 @@ int board_early_init_r(void)
return 0;
}
#endif
-
-static void setup_iodomain(void)
-{
- struct rk3399_grf_regs *grf =
- syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
- struct rk3399_pmugrf_regs *pmugrf =
- syscon_get_first_range(ROCKCHIP_SYSCON_PMUGRF);
-
- /* BT656 and audio is in 1.8v domain */
- rk_setreg(&grf->io_vsel, (1 << GRF_IO_VSEL_BT656_SHIFT |
- 1 << GRF_IO_VSEL_AUDIO_SHIFT));
-
- /*
- * Set GPIO1 1.8v/3.0v source select to PMU1830_VOL
- * and explicitly configure that PMU1830_VOL to be 1.8V
- */
- rk_setreg(&pmugrf->soc_con0, (1 << PMUGRF_CON0_VSEL_SHIFT |
- 1 << PMUGRF_CON0_VOL_SHIFT));
-}
-
-int misc_init_r(void)
-{
- const u32 cpuid_offset = 0x7;
- const u32 cpuid_length = 0x10;
- u8 cpuid[cpuid_length];
- int ret;
-
- setup_iodomain();
-
- ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid);
- if (ret)
- return ret;
-
- ret = rockchip_cpuid_set(cpuid, cpuid_length);
- if (ret)
- return ret;
-
- ret = rockchip_setup_macaddr();
-
- return ret;
-}
diff --git a/board/google/veyron/Kconfig b/board/google/veyron/Kconfig
index 7f55d78dacb..e24a2aeee04 100644
--- a/board/google/veyron/Kconfig
+++ b/board/google/veyron/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "veyron"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
if TARGET_CHROMEBIT_MICKEY
@@ -25,9 +22,6 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "veyron"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
if TARGET_CHROMEBOOK_MINNIE
@@ -41,9 +35,6 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "veyron"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
if TARGET_CHROMEBOOK_SPEEDY
@@ -57,7 +48,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "veyron"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/hardkernel/odroid_go2/Kconfig b/board/hardkernel/odroid_go2/Kconfig
index cf3f7c91d92..82988dffb3c 100644
--- a/board/hardkernel/odroid_go2/Kconfig
+++ b/board/hardkernel/odroid_go2/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "odroid_go2"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/hardkernel/odroid_m1/Kconfig b/board/hardkernel/odroid_m1/Kconfig
index 999c4944a83..0217c91d7b7 100644
--- a/board/hardkernel/odroid_m1/Kconfig
+++ b/board/hardkernel/odroid_m1/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "odroid_m1"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/intel/agilex5-socdk/MAINTAINERS b/board/intel/agilex5-socdk/MAINTAINERS
new file mode 100644
index 00000000000..b696f788c81
--- /dev/null
+++ b/board/intel/agilex5-socdk/MAINTAINERS
@@ -0,0 +1,8 @@
+SOCFPGA BOARD
+M: Tien Fong Chee <tien.fong.chee@intel.com>
+M: Teik Heng Chong <teik.heng.chong@intel.com>
+M: Jit Loon Lim <jit.loon.lim@intel.com>
+S: Maintained
+F: board/intel/agilex5-socdk/
+F: include/configs/socfpga_agilex5_socdk.h
+F: configs/socfpga_agilex5_defconfig
diff --git a/board/intel/bayleybay/Kconfig b/board/intel/bayleybay/Kconfig
index 97228d63087..af08566014d 100644
--- a/board/intel/bayleybay/Kconfig
+++ b/board/intel/bayleybay/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "baytrail"
-config SYS_CONFIG_NAME
- default "bayleybay"
-
config TEXT_BASE
default 0xfff00000
diff --git a/board/intel/bayleybay/MAINTAINERS b/board/intel/bayleybay/MAINTAINERS
index 85fa51626af..5ab5d73f59e 100644
--- a/board/intel/bayleybay/MAINTAINERS
+++ b/board/intel/bayleybay/MAINTAINERS
@@ -2,5 +2,4 @@ Intel Bayley Bay
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/intel/bayleybay
-F: include/configs/bayleybay.h
F: configs/bayleybay_defconfig
diff --git a/board/intel/cherryhill/Kconfig b/board/intel/cherryhill/Kconfig
index 009cd93b6d4..28e4735e4d6 100644
--- a/board/intel/cherryhill/Kconfig
+++ b/board/intel/cherryhill/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "braswell"
-config SYS_CONFIG_NAME
- default "cherryhill"
-
config TEXT_BASE
default 0xffe00000
diff --git a/board/intel/cherryhill/MAINTAINERS b/board/intel/cherryhill/MAINTAINERS
index 6e90f642125..7c1b311990c 100644
--- a/board/intel/cherryhill/MAINTAINERS
+++ b/board/intel/cherryhill/MAINTAINERS
@@ -2,5 +2,4 @@ INTEL CHERRYHILL BOARD
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/intel/cherryhill/
-F: include/configs/cherryhill.h
F: configs/cherryhill_defconfig
diff --git a/board/intel/cougarcanyon2/Kconfig b/board/intel/cougarcanyon2/Kconfig
index 32407025bc1..841e041167e 100644
--- a/board/intel/cougarcanyon2/Kconfig
+++ b/board/intel/cougarcanyon2/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "ivybridge"
-config SYS_CONFIG_NAME
- default "cougarcanyon2"
-
config TEXT_BASE
default 0xffe00000
diff --git a/board/intel/cougarcanyon2/MAINTAINERS b/board/intel/cougarcanyon2/MAINTAINERS
index a486739b5ee..a4f465cf5df 100644
--- a/board/intel/cougarcanyon2/MAINTAINERS
+++ b/board/intel/cougarcanyon2/MAINTAINERS
@@ -2,5 +2,4 @@ INTEL COUGAR CANYON 2 BOARD
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/intel/cougarcanyon2/
-F: include/configs/cougarcanyon2.h
F: configs/cougarcanyon2_defconfig
diff --git a/board/intel/crownbay/Kconfig b/board/intel/crownbay/Kconfig
index eb2290cfafb..09614ab8d15 100644
--- a/board/intel/crownbay/Kconfig
+++ b/board/intel/crownbay/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "queensbay"
-config SYS_CONFIG_NAME
- default "crownbay"
-
config TEXT_BASE
default 0xfff00000
diff --git a/board/intel/crownbay/MAINTAINERS b/board/intel/crownbay/MAINTAINERS
index 1eb68693df3..e2d8e6bc1d0 100644
--- a/board/intel/crownbay/MAINTAINERS
+++ b/board/intel/crownbay/MAINTAINERS
@@ -2,5 +2,4 @@ INTEL CROWNBAY BOARD
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/intel/crownbay/
-F: include/configs/crownbay.h
F: configs/crownbay_defconfig
diff --git a/board/intel/edison/Kconfig b/board/intel/edison/Kconfig
index 5efda4b3a55..daa8d2035cd 100644
--- a/board/intel/edison/Kconfig
+++ b/board/intel/edison/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "tangier"
-config SYS_CONFIG_NAME
- default "edison"
-
config SYS_MALLOC_LEN
default 0x08000000
diff --git a/board/intel/edison/MAINTAINERS b/board/intel/edison/MAINTAINERS
index 4bc4a00c8ad..26b27c5dfe1 100644
--- a/board/intel/edison/MAINTAINERS
+++ b/board/intel/edison/MAINTAINERS
@@ -2,5 +2,4 @@ Intel Edison Board
M: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
S: Maintained
F: board/intel/edison
-F: include/configs/edison.h
F: configs/edison_defconfig
diff --git a/board/intel/galileo/Kconfig b/board/intel/galileo/Kconfig
index 4c0451da48d..15c8d125408 100644
--- a/board/intel/galileo/Kconfig
+++ b/board/intel/galileo/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "quark"
-config SYS_CONFIG_NAME
- default "galileo"
-
config TEXT_BASE
default 0xfff10000
diff --git a/board/intel/galileo/MAINTAINERS b/board/intel/galileo/MAINTAINERS
index dbbc82e8a1d..a5dcde7ad09 100644
--- a/board/intel/galileo/MAINTAINERS
+++ b/board/intel/galileo/MAINTAINERS
@@ -2,5 +2,4 @@ INTEL GALILEO BOARD
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
F: board/intel/galileo/
-F: include/configs/galileo.h
F: configs/galileo_defconfig
diff --git a/board/intel/minnowmax/Kconfig b/board/intel/minnowmax/Kconfig
index a03ef867801..abb1d45ff61 100644
--- a/board/intel/minnowmax/Kconfig
+++ b/board/intel/minnowmax/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_SOC
default "baytrail"
-config SYS_CONFIG_NAME
- default "minnowmax"
-
config TEXT_BASE
default 0xfff00000
diff --git a/board/intel/minnowmax/MAINTAINERS b/board/intel/minnowmax/MAINTAINERS
index d655761d578..5cb94b0f36c 100644
--- a/board/intel/minnowmax/MAINTAINERS
+++ b/board/intel/minnowmax/MAINTAINERS
@@ -2,5 +2,4 @@ CircuitCo Minnowboard Max
M: Simon Glass <sjg@chromium.org>
S: Maintained
F: board/intel/minnowmax
-F: include/configs/minnowmax.h
F: configs/minnowmax_defconfig
diff --git a/board/intel/slimbootloader/Kconfig b/board/intel/slimbootloader/Kconfig
index 015ed51dc89..11e6cb37bd8 100644
--- a/board/intel/slimbootloader/Kconfig
+++ b/board/intel/slimbootloader/Kconfig
@@ -13,9 +13,6 @@ config SYS_VENDOR
config SYS_SOC
default "slimbootloader"
-config SYS_CONFIG_NAME
- default "slimbootloader"
-
config TEXT_BASE
default 0x00100000
diff --git a/board/intel/slimbootloader/MAINTAINERS b/board/intel/slimbootloader/MAINTAINERS
index e6935517e01..0208a382ac6 100644
--- a/board/intel/slimbootloader/MAINTAINERS
+++ b/board/intel/slimbootloader/MAINTAINERS
@@ -2,5 +2,4 @@ Intel Slim Bootloader Payload
M: Aiden Park <aiden.park@intel.com>
S: Maintained
F: board/intel/slimbootloader
-F: include/configs/slimbootloader.h
F: configs/slimbootloader_defconfig
diff --git a/board/kontron/sl-mx6ul/Kconfig b/board/kontron/sl-mx6ul/Kconfig
index 4e58de20947..782e099cec2 100644
--- a/board/kontron/sl-mx6ul/Kconfig
+++ b/board/kontron/sl-mx6ul/Kconfig
@@ -9,7 +9,6 @@ config SYS_VENDOR
default "kontron"
config SYS_CONFIG_NAME
- string
default "kontron-sl-mx6ul"
endif
diff --git a/board/kontron/sl-mx8mm/Kconfig b/board/kontron/sl-mx8mm/Kconfig
index 9dcf407c867..1cfe9ee64bd 100644
--- a/board/kontron/sl-mx8mm/Kconfig
+++ b/board/kontron/sl-mx8mm/Kconfig
@@ -9,7 +9,6 @@ config SYS_VENDOR
default "kontron"
config SYS_CONFIG_NAME
- string
default "kontron-sl-mx8mm"
endif
diff --git a/board/liebherr/xea/spl_xea.c b/board/liebherr/xea/spl_xea.c
index df354cac641..6cf8f8390e8 100644
--- a/board/liebherr/xea/spl_xea.c
+++ b/board/liebherr/xea/spl_xea.c
@@ -112,13 +112,6 @@ const iomux_cfg_t iomux_setup[] = {
MX28_PAD_I2C0_SCL__I2C0_SCL,
MX28_PAD_I2C0_SDA__I2C0_SDA,
- /* I2S Codec */
- MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK,
- MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK,
- MX28_PAD_SAIF0_MCLK__SAIF0_MCLK,
- MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0,
- MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0,
-
/* PWR-Hold */
MX28_PAD_SPDIF__GPIO_3_27,
@@ -232,11 +225,23 @@ const iomux_cfg_t iomux_setup[] = {
MX28_PAD_ENET0_TXD0__ENET0_TXD0 | MUX_CONFIG_ENET,
MX28_PAD_ENET0_TXD1__ENET0_TXD1 | MUX_CONFIG_ENET,
MX28_PAD_ENET0_TXD3__ENET1_TXD1 | MUX_CONFIG_ENET,
- MX28_PAD_SSP1_CMD__GPIO_2_13, /* PHY reset */
+ MX28_PAD_SSP1_CMD__GPIO_2_13, /* PHY reset HW Rev. 1*/
+ MX28_PAD_SAIF0_LRCLK__GPIO_3_21, /* PHY reset HW Rev. 2*/
/* TIVA boot control */
MX28_PAD_GPMI_RDY3__GPIO_0_23 | MUX_CONFIG_BOOT, /* TIVA0 */
MX28_PAD_GPMI_WRN__GPIO_0_25 | MUX_CONFIG_BOOT, /* TIVA1 */
+
+ /* HW revision ID Base Board */
+ MX28_PAD_LCD_D12__GPIO_1_12,
+ MX28_PAD_LCD_D13__GPIO_1_13,
+ MX28_PAD_LCD_D14__GPIO_1_14,
+
+ /* HW revision ID (SoM) */
+ MX28_PAD_LCD_D15__GPIO_1_15,
+ MX28_PAD_LCD_D16__GPIO_1_16,
+ MX28_PAD_LCD_D17__GPIO_1_17,
+ MX28_PAD_LCD_D18__GPIO_1_18,
};
u32 mxs_dram_vals[] = {
diff --git a/board/liebherr/xea/xea.c b/board/liebherr/xea/xea.c
index c8ac526cb47..0a6fd7f1437 100644
--- a/board/liebherr/xea/xea.c
+++ b/board/liebherr/xea/xea.c
@@ -216,6 +216,34 @@ int spl_start_uboot(void)
return !boot_tiva0 || !boot_tiva1;
}
#else
+/*
+ * Reading the HW ID number for XEA SoM module
+ *
+ * GPIOs from Port 1 (GPIO1_15, GPIO1_16, GPIO1_17 and GPIO1_18)
+ * are used to store HW revision information.
+ * Reading of GPIOs values is performed before the Device Model is
+ * bring up as the proper DTB needs to be chosen first.
+ *
+ * Moreover, this approach is required as "single binary" configuration
+ * of U-Boot (imx28_xea_sb_defconfig) is NOT using SPL framework, so
+ * only minimal subset of functionality is provided when ID is read.
+ *
+ * Hence, the direct registers' access.
+ */
+#define XEA_SOM_HW_ID_GPIO_PORT (MXS_PINCTRL_BASE + (0x0900 + ((1) * 0x10)))
+#define XEA_SOM_REV_MASK GENMASK(18, 15)
+#define XEA_SOM_REV_SHIFT 15
+
+static u8 get_som_rev(void)
+{
+ struct mxs_register_32 *reg =
+ (struct mxs_register_32 *)XEA_SOM_HW_ID_GPIO_PORT;
+
+ u32 tmp = ~readl(&reg->reg);
+ u8 id = (tmp & XEA_SOM_REV_MASK) >> XEA_SOM_REV_SHIFT;
+
+ return id;
+}
int board_early_init_f(void)
{
@@ -253,6 +281,27 @@ int board_init(void)
return 0;
}
+#if defined(CONFIG_BOARD_LATE_INIT)
+int board_late_init(void)
+{
+ int ret = env_set_ulong("board_som_rev", get_som_rev());
+
+ if (ret)
+ printf("Cannot set XEA's SoM revision env variable!\n");
+
+ return 0;
+}
+#endif
+
+#if defined(CONFIG_DISPLAY_BOARDINFO)
+int checkboard(void)
+{
+ printf("Board: LWE XEA SoM HW rev %d\n", get_som_rev());
+
+ return 0;
+}
+#endif
+
int dram_init(void)
{
return mxs_dram_init();
diff --git a/board/mqmaker/miqi_rk3288/Kconfig b/board/mqmaker/miqi_rk3288/Kconfig
index 232a1120907..bb687c973fb 100644
--- a/board/mqmaker/miqi_rk3288/Kconfig
+++ b/board/mqmaker/miqi_rk3288/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "miqi_rk3288"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/phytec/phycore_am62x/phycore-am62x.c b/board/phytec/phycore_am62x/phycore-am62x.c
index 91a24018c40..618b4c370d1 100644
--- a/board/phytec/phycore_am62x/phycore-am62x.c
+++ b/board/phytec/phycore_am62x/phycore-am62x.c
@@ -57,3 +57,67 @@ void spl_board_init(void)
MCU_CTRL_DEVICE_CLKOUT_32K_CTRL);
}
#endif
+
+#if IS_ENABLED(CONFIG_ENV_IS_IN_FAT) || IS_ENABLED(CONFIG_ENV_IS_IN_MMC)
+int mmc_get_env_dev(void)
+{
+ u32 boot_device = get_boot_device();
+
+ switch (boot_device) {
+ case BOOT_DEVICE_MMC1:
+ return 0;
+ case BOOT_DEVICE_MMC2:
+ return 1;
+ };
+
+ return CONFIG_SYS_MMC_ENV_DEV;
+}
+#endif
+
+enum env_location env_get_location(enum env_operation op, int prio)
+{
+ u32 boot_device = get_boot_device();
+
+ if (prio)
+ return ENVL_UNKNOWN;
+
+ switch (boot_device) {
+ case BOOT_DEVICE_MMC1:
+ case BOOT_DEVICE_MMC2:
+ if (CONFIG_IS_ENABLED(ENV_IS_IN_FAT))
+ return ENVL_FAT;
+ if (CONFIG_IS_ENABLED(ENV_IS_IN_MMC))
+ return ENVL_MMC;
+ case BOOT_DEVICE_SPI:
+ if (CONFIG_IS_ENABLED(ENV_IS_IN_SPI_FLASH))
+ return ENVL_SPI_FLASH;
+ default:
+ return ENVL_NOWHERE;
+ };
+}
+
+#if IS_ENABLED(CONFIG_BOARD_LATE_INIT)
+int board_late_init(void)
+{
+ u32 boot_device = get_boot_device();
+
+ switch (boot_device) {
+ case BOOT_DEVICE_MMC1:
+ env_set_ulong("mmcdev", 0);
+ env_set("boot", "mmc");
+ break;
+ case BOOT_DEVICE_MMC2:
+ env_set_ulong("mmcdev", 1);
+ env_set("boot", "mmc");
+ break;
+ case BOOT_DEVICE_SPI:
+ env_set("boot", "spi");
+ break;
+ case BOOT_DEVICE_ETHERNET:
+ env_set("boot", "net");
+ break;
+ };
+
+ return 0;
+}
+#endif
diff --git a/board/phytec/phycore_am64x/Kconfig b/board/phytec/phycore_am64x/Kconfig
new file mode 100644
index 00000000000..427adb6fedd
--- /dev/null
+++ b/board/phytec/phycore_am64x/Kconfig
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2021 PHYTEC America, LLC - https://www.phytec.com
+# Author: Matt McKee <mmckee@phytec.com>
+#
+# Copyright (C) 2022 - 2024 PHYTEC Messtechnik GmbH
+# Author: Wadim Egorov <w.egorov@phytec.de>
+
+if TARGET_PHYCORE_AM64X_A53
+
+config SYS_BOARD
+ default "phycore_am64x"
+
+config SYS_VENDOR
+ default "phytec"
+
+config SYS_CONFIG_NAME
+ default "phycore_am64x"
+
+endif
+
+if TARGET_PHYCORE_AM64X_R5
+
+config SYS_BOARD
+ default "phycore_am64x"
+
+config SYS_VENDOR
+ default "phytec"
+
+config SYS_CONFIG_NAME
+ default "phycore_am64x"
+
+endif
diff --git a/board/phytec/phycore_am64x/MAINTAINERS b/board/phytec/phycore_am64x/MAINTAINERS
new file mode 100644
index 00000000000..caa9bbc97c4
--- /dev/null
+++ b/board/phytec/phycore_am64x/MAINTAINERS
@@ -0,0 +1,15 @@
+phyCORE-AM64x
+M: Wadim Egorov <w.egorov@phytec.de>
+W: https://www.phytec.com/product/phycore-am64x
+S: Maintained
+F: arch/arm/dts/k3-am64-phycore-som-ddr4-2gb.dtsi
+F: arch/arm/dts/k3-am64-phycore-som.dtsi
+F: arch/arm/dts/k3-am642-phyboard-electra-rdk-u-boot.dtsi
+F: arch/arm/dts/k3-am642-phyboard-electra-rdk.dts
+F: arch/arm/dts/k3-am642-phycore-som-binman.dtsi
+F: arch/arm/dts/k3-am642-r5-phycore-som-2gb.dts
+F: board/phytec/phycore_am64x
+F: configs/phycore_am64x_a53_defconfig
+F: configs/phycore_am64x_r5_defconfig
+F: doc/board/phytec/phycore-am64x.rst
+F: include/configs/phycore_am64x.h
diff --git a/board/phytec/phycore_am64x/Makefile b/board/phytec/phycore_am64x/Makefile
new file mode 100644
index 00000000000..78b8f1b1b81
--- /dev/null
+++ b/board/phytec/phycore_am64x/Makefile
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2021 PHYTEC America, LLC - https://www.phytec.com
+# Author: Matt McKee <mmckee@phytec.com>
+#
+# Copyright (C) 2022 - 2024 PHYTEC Messtechnik GmbH
+# Author: Wadim Egorov <w.egorov@phytec.de>
+
+obj-y += phycore-am64x.o
diff --git a/board/phytec/phycore_am64x/board-cfg.yaml b/board/phytec/phycore_am64x/board-cfg.yaml
new file mode 100644
index 00000000000..8981b75caa2
--- /dev/null
+++ b/board/phytec/phycore_am64x/board-cfg.yaml
@@ -0,0 +1,36 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Board configuration for AM64x
+#
+
+---
+
+board-cfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ control:
+ subhdr:
+ magic: 0xC1D3
+ size: 7
+ main_isolation_enable: 0x5A
+ main_isolation_hostid: 0x2
+ secproxy:
+ subhdr:
+ magic: 0x1207
+ size: 7
+ scaling_factor: 0x1
+ scaling_profile: 0x1
+ disable_main_nav_secure_proxy: 0
+ msmc:
+ subhdr:
+ magic: 0xA5C3
+ size: 5
+ msmc_cache_size: 0x0
+ debug_cfg:
+ subhdr:
+ magic: 0x020C
+ size: 8
+ trace_dst_enables: 0x00
+ trace_src_enables: 0x00
diff --git a/board/phytec/phycore_am64x/phycore-am64x.c b/board/phytec/phycore_am64x/phycore-am64x.c
new file mode 100644
index 00000000000..8f3b22657c7
--- /dev/null
+++ b/board/phytec/phycore_am64x/phycore-am64x.c
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2021 PHYTEC America, LLC - https://www.phytec.com
+ * Author: Matt McKee <mmckee@phytec.com>
+ *
+ * Copyright (C) 2022 - 2024 PHYTEC Messtechnik GmbH
+ * Author: Wadim Egorov <w.egorov@phytec.de>
+ */
+
+#include <asm/io.h>
+#include <env.h>
+#include <env_internal.h>
+#include <spl.h>
+#include <fdt_support.h>
+#include <asm/arch/hardware.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_init(void)
+{
+ return 0;
+}
+
+int dram_init(void)
+{
+ return fdtdec_setup_mem_size_base();
+}
+
+int dram_init_banksize(void)
+{
+ return fdtdec_setup_memory_banksize();
+}
+
+#define CTRLMMR_USB0_PHY_CTRL 0x43004008
+#define CORE_VOLTAGE 0x80000000
+
+#ifdef CONFIG_SPL_BOARD_INIT
+void spl_board_init(void)
+{
+ u32 val;
+
+ /* Set USB PHY core voltage to 0.85V */
+ val = readl(CTRLMMR_USB0_PHY_CTRL);
+ val &= ~(CORE_VOLTAGE);
+ writel(val, CTRLMMR_USB0_PHY_CTRL);
+
+ /* Init DRAM size for R5/A53 SPL */
+ dram_init_banksize();
+}
+#endif
diff --git a/board/phytec/phycore_am64x/phycore_am64x.env b/board/phytec/phycore_am64x/phycore_am64x.env
new file mode 100644
index 00000000000..ada3a9233be
--- /dev/null
+++ b/board/phytec/phycore_am64x/phycore_am64x.env
@@ -0,0 +1,23 @@
+fdtaddr=0x88000000
+loadaddr=0x82000000
+scriptaddr=0x80000000
+fdt_addr_r=0x88000000
+kernel_addr_r=0x82000000
+ramdisk_addr_r=0x88080000
+fdtoverlay_addr_r=0x89000000
+
+fdtfile=CONFIG_DEFAULT_FDT_FILE
+mmcdev=1
+mmcroot=2
+mmcpart=1
+console=ttyS2,115200n8
+mmcargs=setenv bootargs console=${console} earlycon=ns16550a,mmio32,0x02800000
+ root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw
+loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} Image
+loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${fdtfile}
+mmcboot=run mmcargs;
+ mmc dev ${mmcdev};
+ mmc rescan;
+ run loadimage;
+ run loadfdt;
+ booti ${loadaddr} - ${fdtaddr}
diff --git a/board/phytec/phycore_am64x/pm-cfg.yaml b/board/phytec/phycore_am64x/pm-cfg.yaml
new file mode 100644
index 00000000000..7afb2962108
--- /dev/null
+++ b/board/phytec/phycore_am64x/pm-cfg.yaml
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Power management configuration for AM64x
+#
+
+---
+
+pm-cfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
diff --git a/board/phytec/phycore_am64x/rm-cfg.yaml b/board/phytec/phycore_am64x/rm-cfg.yaml
new file mode 100644
index 00000000000..88b37b5972c
--- /dev/null
+++ b/board/phytec/phycore_am64x/rm-cfg.yaml
@@ -0,0 +1,1215 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Resource management configuration for AM64x
+#
+
+---
+
+rm-cfg:
+ rm_boardcfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ host_cfg:
+ subhdr:
+ magic: 0x4C41
+ size: 356
+ host_cfg_entries:
+ - # 1
+ host_id: 12
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 2
+ host_id: 30
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 3
+ host_id: 36
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 4
+ host_id: 38
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 5
+ host_id: 41
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 6
+ host_id: 43
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 7
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 8
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 9
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 10
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 11
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 12
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 13
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 14
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 15
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 16
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 17
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 18
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 19
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 20
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 21
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 22
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 23
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 24
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 25
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 26
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 27
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 28
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 29
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 30
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 31
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 32
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ resasg:
+ subhdr:
+ magic: 0x7B25
+ size: 8
+ resasg_entries_size: 1288
+ reserved: 0
+ resasg_entries:
+ -
+ start_resource: 0
+ num_resource: 16
+ type: 64
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 4
+ type: 64
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 4
+ type: 64
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 4
+ type: 64
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 4
+ type: 64
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 28
+ num_resource: 4
+ type: 64
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 8
+ type: 64
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 12
+ type: 192
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 2
+ type: 192
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 2
+ type: 192
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 4
+ type: 320
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 4
+ type: 320
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 41
+ type: 384
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 50176
+ num_resource: 136
+ type: 1666
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 1667
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 12
+ type: 1677
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 6
+ type: 1677
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 6
+ type: 1677
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 2
+ type: 1677
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 4
+ type: 1677
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 2
+ type: 1677
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 1
+ type: 1677
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 1
+ type: 1677
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 6
+ type: 1678
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 54
+ num_resource: 6
+ type: 1678
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 54
+ num_resource: 6
+ type: 1678
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 60
+ num_resource: 2
+ type: 1678
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 62
+ num_resource: 4
+ type: 1678
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 66
+ num_resource: 2
+ type: 1678
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 28
+ num_resource: 6
+ type: 1679
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 34
+ num_resource: 6
+ type: 1679
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 34
+ num_resource: 6
+ type: 1679
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 2
+ type: 1679
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 42
+ num_resource: 4
+ type: 1679
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 46
+ num_resource: 2
+ type: 1679
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 12
+ type: 1696
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 6
+ type: 1696
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 6
+ type: 1696
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 2
+ type: 1696
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 4
+ type: 1696
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 2
+ type: 1696
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 1
+ type: 1696
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 1
+ type: 1696
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 6
+ type: 1697
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 6
+ type: 1697
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 6
+ type: 1697
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 2
+ type: 1697
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 4
+ type: 1697
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 2
+ type: 1697
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 6
+ type: 1698
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 6
+ type: 1698
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 6
+ type: 1698
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 2
+ type: 1698
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 4
+ type: 1698
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 2
+ type: 1698
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 35
+ type: 1802
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 14
+ type: 1802
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 14
+ type: 1802
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 58
+ num_resource: 14
+ type: 1802
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 92
+ num_resource: 14
+ type: 1802
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 106
+ num_resource: 14
+ type: 1802
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 168
+ num_resource: 16
+ type: 1802
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 512
+ type: 1805
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 528
+ num_resource: 256
+ type: 1805
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 528
+ num_resource: 256
+ type: 1805
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 784
+ num_resource: 192
+ type: 1805
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 976
+ num_resource: 256
+ type: 1805
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 1232
+ num_resource: 192
+ type: 1805
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 1424
+ num_resource: 96
+ type: 1805
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 1520
+ num_resource: 16
+ type: 1805
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1024
+ type: 1807
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4096
+ num_resource: 42
+ type: 1808
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4608
+ num_resource: 112
+ type: 1809
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 5120
+ num_resource: 29
+ type: 1810
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 5632
+ num_resource: 176
+ type: 1811
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 6144
+ num_resource: 176
+ type: 1812
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 6656
+ num_resource: 176
+ type: 1813
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 8192
+ num_resource: 28
+ type: 1814
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 8704
+ num_resource: 28
+ type: 1815
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 9216
+ num_resource: 28
+ type: 1816
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 9728
+ num_resource: 20
+ type: 1817
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 10240
+ num_resource: 20
+ type: 1818
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 10752
+ num_resource: 20
+ type: 1819
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 11264
+ num_resource: 20
+ type: 1820
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 11776
+ num_resource: 20
+ type: 1821
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 12288
+ num_resource: 20
+ type: 1822
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 1923
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 4
+ type: 1936
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 3
+ type: 1936
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 3
+ type: 1936
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 2
+ type: 1936
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 4
+ type: 1936
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 2
+ type: 1936
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 1
+ type: 1936
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 64
+ type: 1937
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 64
+ type: 1937
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 88
+ num_resource: 8
+ type: 1939
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 96
+ num_resource: 8
+ type: 1940
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 104
+ num_resource: 8
+ type: 1941
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 112
+ num_resource: 4
+ type: 1942
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 116
+ num_resource: 3
+ type: 1942
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 116
+ num_resource: 3
+ type: 1942
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 119
+ num_resource: 2
+ type: 1942
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 121
+ num_resource: 4
+ type: 1942
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 125
+ num_resource: 2
+ type: 1942
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 127
+ num_resource: 1
+ type: 1942
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 128
+ num_resource: 16
+ type: 1943
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 128
+ num_resource: 16
+ type: 1943
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 144
+ num_resource: 8
+ type: 1945
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 152
+ num_resource: 8
+ type: 1946
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 152
+ num_resource: 8
+ type: 1947
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 160
+ num_resource: 64
+ type: 1948
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 224
+ num_resource: 64
+ type: 1949
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 4
+ type: 1955
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 3
+ type: 1955
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 3
+ type: 1955
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 2
+ type: 1955
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 4
+ type: 1955
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 2
+ type: 1955
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 1
+ type: 1955
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 8
+ type: 1956
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 8
+ type: 1956
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 1
+ type: 1958
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 8
+ type: 1959
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 34
+ num_resource: 8
+ type: 1960
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 4
+ type: 1961
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 3
+ type: 1961
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 3
+ type: 1961
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 2
+ type: 1961
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 4
+ type: 1961
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 2
+ type: 1961
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 1
+ type: 1961
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 4
+ type: 1962
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 3
+ type: 1962
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 3
+ type: 1962
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 2
+ type: 1962
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 4
+ type: 1962
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 2
+ type: 1962
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 1
+ type: 1962
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 1
+ type: 1963
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 1
+ type: 1963
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 16
+ type: 1964
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 16
+ type: 1964
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 8
+ type: 1966
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 8
+ type: 1968
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 1969
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 8
+ type: 1970
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 1
+ type: 1971
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 8
+ type: 1972
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 21
+ num_resource: 4
+ type: 1973
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 64
+ type: 1974
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 4
+ type: 1975
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 112
+ num_resource: 64
+ type: 1976
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 2112
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 2
+ type: 2122
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 2
+ type: 2124
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 2
+ type: 2124
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 2
+ type: 2124
+ host_id: 38
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 2
+ type: 2124
+ host_id: 41
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 2
+ type: 2124
+ host_id: 43
+ reserved: 0
+ -
+ start_resource: 28
+ num_resource: 4
+ type: 2124
+ host_id: 128
+ reserved: 0
diff --git a/board/phytec/phycore_am64x/sec-cfg.yaml b/board/phytec/phycore_am64x/sec-cfg.yaml
new file mode 100644
index 00000000000..b61551c3208
--- /dev/null
+++ b/board/phytec/phycore_am64x/sec-cfg.yaml
@@ -0,0 +1,379 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Security configuration for AM64x
+#
+
+---
+
+sec-cfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ processor_acl_list:
+ subhdr:
+ magic: 0xF1EA
+ size: 164
+ proc_acl_entries:
+ - # 1
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 2
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 3
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 4
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 5
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 6
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 7
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 8
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 9
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 10
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 11
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 12
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 13
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 14
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 15
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 16
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 17
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 18
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 19
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 20
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 21
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 22
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 23
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 24
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 25
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 26
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 27
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 28
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 29
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 30
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 31
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 32
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ host_hierarchy:
+ subhdr:
+ magic: 0x8D27
+ size: 68
+ host_hierarchy_entries:
+ - # 1
+ host_id: 0
+ supervisor_host_id: 0
+ - # 2
+ host_id: 0
+ supervisor_host_id: 0
+ - # 3
+ host_id: 0
+ supervisor_host_id: 0
+ - # 4
+ host_id: 0
+ supervisor_host_id: 0
+ - # 5
+ host_id: 0
+ supervisor_host_id: 0
+ - # 6
+ host_id: 0
+ supervisor_host_id: 0
+ - # 7
+ host_id: 0
+ supervisor_host_id: 0
+ - # 8
+ host_id: 0
+ supervisor_host_id: 0
+ - # 9
+ host_id: 0
+ supervisor_host_id: 0
+ - # 10
+ host_id: 0
+ supervisor_host_id: 0
+ - # 11
+ host_id: 0
+ supervisor_host_id: 0
+ - # 12
+ host_id: 0
+ supervisor_host_id: 0
+ - # 13
+ host_id: 0
+ supervisor_host_id: 0
+ - # 14
+ host_id: 0
+ supervisor_host_id: 0
+ - # 15
+ host_id: 0
+ supervisor_host_id: 0
+ - # 16
+ host_id: 0
+ supervisor_host_id: 0
+ - # 17
+ host_id: 0
+ supervisor_host_id: 0
+ - # 18
+ host_id: 0
+ supervisor_host_id: 0
+ - # 19
+ host_id: 0
+ supervisor_host_id: 0
+ - # 20
+ host_id: 0
+ supervisor_host_id: 0
+ - # 21
+ host_id: 0
+ supervisor_host_id: 0
+ - # 22
+ host_id: 0
+ supervisor_host_id: 0
+ - # 23
+ host_id: 0
+ supervisor_host_id: 0
+ - # 24
+ host_id: 0
+ supervisor_host_id: 0
+ - # 25
+ host_id: 0
+ supervisor_host_id: 0
+ - # 26
+ host_id: 0
+ supervisor_host_id: 0
+ - # 27
+ host_id: 0
+ supervisor_host_id: 0
+ - # 28
+ host_id: 0
+ supervisor_host_id: 0
+ - # 29
+ host_id: 0
+ supervisor_host_id: 0
+ - # 30
+ host_id: 0
+ supervisor_host_id: 0
+ - # 31
+ host_id: 0
+ supervisor_host_id: 0
+ - # 32
+ host_id: 0
+ supervisor_host_id: 0
+ otp_config:
+ subhdr:
+ magic: 0x4081
+ size: 69
+ write_host_id: 0
+ otp_entry:
+ - # 1
+ host_id: 0
+ host_perms: 0
+ - # 2
+ host_id: 0
+ host_perms: 0
+ - # 3
+ host_id: 0
+ host_perms: 0
+ - # 4
+ host_id: 0
+ host_perms: 0
+ - # 5
+ host_id: 0
+ host_perms: 0
+ - # 6
+ host_id: 0
+ host_perms: 0
+ - # 7
+ host_id: 0
+ host_perms: 0
+ - # 8
+ host_id: 0
+ host_perms: 0
+ - # 9
+ host_id: 0
+ host_perms: 0
+ - # 10
+ host_id: 0
+ host_perms: 0
+ - # 11
+ host_id: 0
+ host_perms: 0
+ - # 12
+ host_id: 0
+ host_perms: 0
+ - # 13
+ host_id: 0
+ host_perms: 0
+ - # 14
+ host_id: 0
+ host_perms: 0
+ - # 15
+ host_id: 0
+ host_perms: 0
+ - # 16
+ host_id: 0
+ host_perms: 0
+ - # 17
+ host_id: 0
+ host_perms: 0
+ - # 18
+ host_id: 0
+ host_perms: 0
+ - # 19
+ host_id: 0
+ host_perms: 0
+ - # 20
+ host_id: 0
+ host_perms: 0
+ - # 21
+ host_id: 0
+ host_perms: 0
+ - # 22
+ host_id: 0
+ host_perms: 0
+ - # 23
+ host_id: 0
+ host_perms: 0
+ - # 24
+ host_id: 0
+ host_perms: 0
+ - # 25
+ host_id: 0
+ host_perms: 0
+ - # 26
+ host_id: 0
+ host_perms: 0
+ - # 27
+ host_id: 0
+ host_perms: 0
+ - # 28
+ host_id: 0
+ host_perms: 0
+ - # 29
+ host_id: 0
+ host_perms: 0
+ - # 30
+ host_id: 0
+ host_perms: 0
+ - # 31
+ host_id: 0
+ host_perms: 0
+ - # 32
+ host_id: 0
+ host_perms: 0
+ dkek_config:
+ subhdr:
+ magic: 0x5170
+ size: 12
+ allowed_hosts: [128, 0, 0, 0]
+ allow_dkek_export_tisci: 0x5A
+ rsvd: [0, 0, 0]
+ sa2ul_cfg:
+ subhdr:
+ magic: 0x23BE
+ size: 0
+ auth_resource_owner: 0
+ enable_saul_psil_global_config_writes: 0
+ rsvd: [0, 0]
+ sec_dbg_config:
+ subhdr:
+ magic: 0x42AF
+ size: 16
+ allow_jtag_unlock: 0x5A
+ allow_wildcard_unlock: 0x5A
+ allowed_debug_level_rsvd: 0
+ rsvd: 0
+ min_cert_rev: 0x0
+ jtag_unlock_hosts: [0, 0, 0, 0]
+ sec_handover_cfg:
+ subhdr:
+ magic: 0x608F
+ size: 10
+ handover_msg_sender: 0
+ handover_to_host_id: 0
+ rsvd: [0, 0, 0, 0]
diff --git a/board/phytec/phycore_imx8mp/phycore_imx8mp.env b/board/phytec/phycore_imx8mp/phycore_imx8mp.env
new file mode 100644
index 00000000000..7f6c5fd2c76
--- /dev/null
+++ b/board/phytec/phycore_imx8mp/phycore_imx8mp.env
@@ -0,0 +1,62 @@
+#include <env/phytec/rauc.env>
+
+bootcmd=
+ if test ${dofastboot} = 1; then
+ fastboot 0;
+ fi;
+ mmc dev ${mmcdev};
+ if mmc rescan; then
+ if test ${doraucboot} = 1; then
+ run raucinit;
+ fi;
+ if run loadimage; then
+ run mmcboot;
+ else
+ run netboot;
+ fi;
+ fi;
+console=ttymxc0,115200
+dofastboot=0
+emmc_dev=2
+fastboot_raw_partition_all=0 4194304
+fastboot_raw_partition_bootloader=64 8128
+fdt_addr=0x48000000
+fdt_file=CONFIG_DEFAULT_FDT_FILE
+image=Image
+ip_dyn=yes
+loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
+loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
+mmcargs=
+ setenv bootargs console=${console}
+ root=/dev/mmcblk${mmcdev}p${mmcroot} ${raucargs} rootwait rw
+mmcautodetect=yes
+mmcboot=
+ echo Booting from mmc ...;
+ run mmcargs;
+ if run loadfdt; then
+ booti ${loadaddr} - ${fdt_addr};
+ else
+ echo WARN: Cannot load the DT;
+ fi;
+mmcdev=CONFIG_SYS_MMC_ENV_DEV
+mmcpart=1
+mmcroot=2
+netargs=
+ setenv bootargs console=${console} root=/dev/nfs ip=dhcp
+ nfsroot=${serverip}:${nfsroot},v3,tcp
+netboot=
+ echo Booting from net ...;
+ if test ${ip_dyn} = yes; then
+ setenv get_cmd dhcp;
+ else
+ setenv get_cmd tftp;
+ fi;
+ ${get_cmd} ${loadaddr} ${image};
+ run netargs;
+ if ${get_cmd} ${fdt_addr} ${fdt_file}; then
+ booti ${loadaddr} - ${fdt_addr};
+ else
+ echo WARN: Cannot load the DT;
+ fi;
+nfsroot=/srv/nfs
+sd_dev=1
diff --git a/board/phytec/phycore_imx93/spl.c b/board/phytec/phycore_imx93/spl.c
index 16303fc187a..f03bfee9ffa 100644
--- a/board/phytec/phycore_imx93/spl.c
+++ b/board/phytec/phycore_imx93/spl.c
@@ -122,7 +122,7 @@ void board_init_f(ulong dummy)
preloader_console_init();
- ret = imx9_probe_mu(NULL, NULL);
+ ret = imx9_probe_mu();
if (ret) {
printf("Fail to init ELE API\n");
} else {
diff --git a/board/phytec/phycore_rk3288/Kconfig b/board/phytec/phycore_rk3288/Kconfig
index 57cd8e26ed7..09753ef238f 100644
--- a/board/phytec/phycore_rk3288/Kconfig
+++ b/board/phytec/phycore_rk3288/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "phycore_rk3288"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/pine64/pinebook-pro-rk3399/Kconfig b/board/pine64/pinebook-pro-rk3399/Kconfig
index 3bb7ca448e4..3eedbcdd49d 100644
--- a/board/pine64/pinebook-pro-rk3399/Kconfig
+++ b/board/pine64/pinebook-pro-rk3399/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "pinebook-pro-rk3399"
-config BOARD_SPECIFIC_OPTIONS
- def_bool y
-
endif
diff --git a/board/pine64/pinebook-pro-rk3399/MAINTAINERS b/board/pine64/pinebook-pro-rk3399/MAINTAINERS
index 7300ca1b1b8..2cafd1a41e5 100644
--- a/board/pine64/pinebook-pro-rk3399/MAINTAINERS
+++ b/board/pine64/pinebook-pro-rk3399/MAINTAINERS
@@ -1,8 +1,8 @@
PINEBOOK_PRO
M: Peter Robinson <pbrobinson@gmail.com>
+R: Jonas Karlman <jonas@kwiboo.se>
S: Maintained
F: board/pine64/pinebook-pro-rk3399/
-F: include/configs/rk3399-pinebook-pro.h
-F: arch/arm/dts/rk3399-pinebook-pro.dts
-F: arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
+F: include/configs/pinebook-pro-rk3399.h
+F: arch/arm/dts/rk3399-pinebook-pro*
F: configs/pinebook-pro-rk3399_defconfig
diff --git a/board/pine64/pinebook-pro-rk3399/Makefile b/board/pine64/pinebook-pro-rk3399/Makefile
deleted file mode 100644
index 2f692a12a67..00000000000
--- a/board/pine64/pinebook-pro-rk3399/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-y += pinebook-pro-rk3399.o
diff --git a/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c b/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c
deleted file mode 100644
index 4ad780767ea..00000000000
--- a/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c
+++ /dev/null
@@ -1,76 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2016 Rockchip Electronics Co., Ltd
- * (C) Copyright 2020 Peter Robinson <pbrobinson at gmail.com>
- */
-
-#include <common.h>
-#include <dm.h>
-#include <syscon.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/grf_rk3399.h>
-#include <asm/arch-rockchip/hardware.h>
-#include <asm/arch-rockchip/misc.h>
-#include <linux/printk.h>
-#include <power/regulator.h>
-
-#define GRF_IO_VSEL_BT565_SHIFT 0
-#define PMUGRF_CON0_VSEL_SHIFT 8
-
-#ifndef CONFIG_SPL_BUILD
-int board_early_init_f(void)
-{
- struct udevice *regulator;
- int ret;
-
- ret = regulator_get_by_platname("vcc5v0_usb", &regulator);
- if (ret) {
- pr_debug("%s vcc5v0_usb init fail! ret %d\n", __func__, ret);
- goto out;
- }
-
- ret = regulator_set_enable(regulator, true);
- if (ret)
- pr_debug("%s vcc5v0-host-en-gpio set fail! ret %d\n", __func__, ret);
-
-out:
- return 0;
-}
-#endif
-
-#ifdef CONFIG_MISC_INIT_R
-static void setup_iodomain(void)
-{
- struct rk3399_grf_regs *grf =
- syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
- struct rk3399_pmugrf_regs *pmugrf =
- syscon_get_first_range(ROCKCHIP_SYSCON_PMUGRF);
-
- /* BT565 is in 1.8v domain */
- rk_setreg(&grf->io_vsel, 1 << GRF_IO_VSEL_BT565_SHIFT);
-
- /* Set GPIO1 1.8v/3.0v source select to PMU1830_VOL */
- rk_setreg(&pmugrf->soc_con0, 1 << PMUGRF_CON0_VSEL_SHIFT);
-}
-
-int misc_init_r(void)
-{
- const u32 cpuid_offset = 0x7;
- const u32 cpuid_length = 0x10;
- u8 cpuid[cpuid_length];
- int ret;
-
- setup_iodomain();
-
- ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid);
- if (ret)
- return ret;
-
- ret = rockchip_cpuid_set(cpuid, cpuid_length);
- if (ret)
- return ret;
-
- return ret;
-}
-#endif
diff --git a/board/pine64/pinephone-pro-rk3399/Kconfig b/board/pine64/pinephone-pro-rk3399/Kconfig
index 13d6465ae6e..5f207df6dea 100644
--- a/board/pine64/pinephone-pro-rk3399/Kconfig
+++ b/board/pine64/pinephone-pro-rk3399/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "pinephone-pro-rk3399"
-config BOARD_SPECIFIC_OPTIONS
- def_bool y
-
endif
diff --git a/board/pine64/pinephone-pro-rk3399/MAINTAINERS b/board/pine64/pinephone-pro-rk3399/MAINTAINERS
index bc2dcdd8d42..959566a877e 100644
--- a/board/pine64/pinephone-pro-rk3399/MAINTAINERS
+++ b/board/pine64/pinephone-pro-rk3399/MAINTAINERS
@@ -2,7 +2,6 @@ PINEPHONE_PRO
M: Peter Robinson <pbrobinson@gmail.com>
S: Maintained
F: board/pine64/pinephone-pro-rk3399/
-F: include/configs/rk3399-pinephone-pro.h
-F: arch/arm/dts/rk3399-pinephone-pro.dts
-F: arch/arm/dts/rk3399-pinephone-pro-u-boot.dtsi
+F: include/configs/pinephone-pro-rk3399.h
+F: arch/arm/dts/rk3399-pinephone-pro*
F: configs/pinephone-pro-rk3399_defconfig
diff --git a/board/pine64/pinephone-pro-rk3399/Makefile b/board/pine64/pinephone-pro-rk3399/Makefile
deleted file mode 100644
index 8d9203053e5..00000000000
--- a/board/pine64/pinephone-pro-rk3399/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-y += pinephone-pro-rk3399.o
diff --git a/board/pine64/pinephone-pro-rk3399/pinephone-pro-rk3399.c b/board/pine64/pinephone-pro-rk3399/pinephone-pro-rk3399.c
deleted file mode 100644
index b6ccbb9c1c4..00000000000
--- a/board/pine64/pinephone-pro-rk3399/pinephone-pro-rk3399.c
+++ /dev/null
@@ -1,78 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2016 Rockchip Electronics Co., Ltd
- * (C) Copyright 2022 Peter Robinson <pbrobinson at gmail.com>
- */
-
-#include <common.h>
-#include <dm.h>
-#include <init.h>
-#include <syscon.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/grf_rk3399.h>
-#include <asm/arch-rockchip/hardware.h>
-#include <asm/arch-rockchip/misc.h>
-#include <power/regulator.h>
-
-#define GRF_IO_VSEL_BT565_GPIO2AB 1
-#define GRF_IO_VSEL_AUDIO_GPIO3D4A 2
-#define PMUGRF_CON0_VSEL_SHIFT 8
-
-#ifndef CONFIG_SPL_BUILD
-int board_early_init_f(void)
-{
- struct udevice *regulator;
- int ret;
-
- ret = regulator_get_by_platname("vcc5v0_usb", &regulator);
- if (ret) {
- pr_debug("%s vcc5v0_usb init fail! ret %d\n", __func__, ret);
- goto out;
- }
-
- ret = regulator_set_enable(regulator, true);
- if (ret)
- pr_debug("%s vcc5v0-host-en-gpio set fail! ret %d\n", __func__, ret);
-
-out:
- return 0;
-}
-#endif
-
-#ifdef CONFIG_MISC_INIT_R
-static void setup_iodomain(void)
-{
- struct rk3399_grf_regs *grf =
- syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
- struct rk3399_pmugrf_regs *pmugrf =
- syscon_get_first_range(ROCKCHIP_SYSCON_PMUGRF);
-
- /* BT565 is in 1.8v domain */
- rk_setreg(&grf->io_vsel,
- GRF_IO_VSEL_BT565_GPIO2AB | GRF_IO_VSEL_AUDIO_GPIO3D4A);
-
- /* Set GPIO1 1.8v/3.0v source select to PMU1830_VOL */
- rk_setreg(&pmugrf->soc_con0, 1 << PMUGRF_CON0_VSEL_SHIFT);
-}
-
-int misc_init_r(void)
-{
- const u32 cpuid_offset = 0x7;
- const u32 cpuid_length = 0x10;
- u8 cpuid[cpuid_length];
- int ret;
-
- setup_iodomain();
-
- ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid);
- if (ret)
- return ret;
-
- ret = rockchip_cpuid_set(cpuid, cpuid_length);
- if (ret)
- return ret;
-
- return ret;
-}
-#endif
diff --git a/board/pine64/quartz64_rk3566/Kconfig b/board/pine64/quartz64_rk3566/Kconfig
index 3de1d8f7a99..104b7a1598e 100644
--- a/board/pine64/quartz64_rk3566/Kconfig
+++ b/board/pine64/quartz64_rk3566/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "quartz64_rk3566"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/pine64/quartz64_rk3566/MAINTAINERS b/board/pine64/quartz64_rk3566/MAINTAINERS
index 6b75b35a124..37b8c1eb78b 100644
--- a/board/pine64/quartz64_rk3566/MAINTAINERS
+++ b/board/pine64/quartz64_rk3566/MAINTAINERS
@@ -21,3 +21,14 @@ F: arch/arm/dts/rk3566-soquartz-cm4.dts
F: arch/arm/dts/rk3566-soquartz-cm4-u-boot.dtsi
F: arch/arm/dts/rk3566-soquartz-model-a.dts
F: arch/arm/dts/rk3566-soquartz-model-a-u-boot.dtsi
+
+PINETAB2-RK3566
+M: Jonas Karlman <jonas@kwiboo.se>
+S: Maintained
+F: configs/pinetab2-rk3566_defconfig
+F: arch/arm/dts/rk3566-pinetab2.dtsi
+F: arch/arm/dts/rk3566-pinetab2-u-boot.dtsi
+F: arch/arm/dts/rk3566-pinetab2-v0.1.dts
+F: arch/arm/dts/rk3566-pinetab2-v0.1-u-boot.dtsi
+F: arch/arm/dts/rk3566-pinetab2-v2.0.dts
+F: arch/arm/dts/rk3566-pinetab2-v2.0-u-boot.dtsi
diff --git a/board/pine64/quartzpro64-rk3588/Kconfig b/board/pine64/quartzpro64-rk3588/Kconfig
index 96aa7921d32..4147240e4e4 100644
--- a/board/pine64/quartzpro64-rk3588/Kconfig
+++ b/board/pine64/quartzpro64-rk3588/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "quartzpro64-rk3588"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/pine64/rockpro64_rk3399/Kconfig b/board/pine64/rockpro64_rk3399/Kconfig
index 3353f1fd095..93aab57de68 100644
--- a/board/pine64/rockpro64_rk3399/Kconfig
+++ b/board/pine64/rockpro64_rk3399/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "rockpro64_rk3399"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/pine64/rockpro64_rk3399/MAINTAINERS b/board/pine64/rockpro64_rk3399/MAINTAINERS
index 220ee21f230..42084aef0eb 100644
--- a/board/pine64/rockpro64_rk3399/MAINTAINERS
+++ b/board/pine64/rockpro64_rk3399/MAINTAINERS
@@ -1,7 +1,8 @@
ROCKPRO64
M: Jagan Teki <jagan@amarulasolutions.com>
+R: Jonas Karlman <jonas@kwiboo.se>
S: Maintained
F: board/pine64/rockpro64_rk3399
F: include/configs/rockpro64_rk3399.h
-F: arch/arm/dts/rk3399-rockpro64-u-boot.dtsi
+F: arch/arm/dts/rk3399-rockpro64*
F: configs/rockpro64-rk3399_defconfig
diff --git a/board/pine64/rockpro64_rk3399/Makefile b/board/pine64/rockpro64_rk3399/Makefile
deleted file mode 100644
index b015c47e6fa..00000000000
--- a/board/pine64/rockpro64_rk3399/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# (C) Copyright 2019 Vasily Khoruzhick
-#
-# SPDX-License-Identifier: GPL-2.0+
-#
-
-obj-y += rockpro64-rk3399.o
diff --git a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c
deleted file mode 100644
index d79084614f1..00000000000
--- a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c
+++ /dev/null
@@ -1,56 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2019 Vasily Khoruzhick <anarsoul@gmail.com>
- */
-
-#include <common.h>
-#include <dm.h>
-#include <init.h>
-#include <syscon.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/grf_rk3399.h>
-#include <asm/arch-rockchip/hardware.h>
-#include <asm/arch-rockchip/misc.h>
-
-#define GRF_IO_VSEL_BT565_SHIFT 0
-#define PMUGRF_CON0_VSEL_SHIFT 8
-
-#ifdef CONFIG_MISC_INIT_R
-static void setup_iodomain(void)
-{
- struct rk3399_grf_regs *grf =
- syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
- struct rk3399_pmugrf_regs *pmugrf =
- syscon_get_first_range(ROCKCHIP_SYSCON_PMUGRF);
-
- /* BT565 is in 1.8v domain */
- rk_setreg(&grf->io_vsel, 1 << GRF_IO_VSEL_BT565_SHIFT);
-
- /* Set GPIO1 1.8v/3.0v source select to PMU1830_VOL */
- rk_setreg(&pmugrf->soc_con0, 1 << PMUGRF_CON0_VSEL_SHIFT);
-}
-
-int misc_init_r(void)
-{
- const u32 cpuid_offset = 0x7;
- const u32 cpuid_length = 0x10;
- u8 cpuid[cpuid_length];
- int ret;
-
- setup_iodomain();
-
- ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid);
- if (ret)
- return ret;
-
- ret = rockchip_cpuid_set(cpuid, cpuid_length);
- if (ret)
- return ret;
-
- ret = rockchip_setup_macaddr();
-
- return ret;
-}
-
-#endif
diff --git a/board/purism/librem5/spl.c b/board/purism/librem5/spl.c
index 581f0929662..9aadc553302 100644
--- a/board/purism/librem5/spl.c
+++ b/board/purism/librem5/spl.c
@@ -418,12 +418,6 @@ out:
return rv;
}
-int dm_usb_gadget_handle_interrupts(struct udevice *dev)
-{
- dwc3_uboot_handle_interrupt(dev);
- return 0;
-}
-
static void dwc3_nxp_usb_phy_init(struct dwc3_device *dwc3)
{
u32 RegData;
diff --git a/board/qualcomm/dragonboard410c/Kconfig b/board/qualcomm/dragonboard410c/Kconfig
deleted file mode 100644
index 03bd7ae309c..00000000000
--- a/board/qualcomm/dragonboard410c/Kconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-if TARGET_DRAGONBOARD410C
-
-config SYS_BOARD
- default "dragonboard410c"
-
-config SYS_VENDOR
- default "qualcomm"
-
-config SYS_SOC
- default "apq8016"
-
-config SYS_CONFIG_NAME
- default "dragonboard410c"
-
-endif
diff --git a/board/qualcomm/dragonboard410c/Makefile b/board/qualcomm/dragonboard410c/Makefile
index 1b99c8b0efe..189f8381332 100644
--- a/board/qualcomm/dragonboard410c/Makefile
+++ b/board/qualcomm/dragonboard410c/Makefile
@@ -2,4 +2,4 @@
#
# (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
-obj-y := dragonboard410c.o
+obj-y := dragonboard410c.o
diff --git a/board/qualcomm/dragonboard410c/configs/chainloaded.config b/board/qualcomm/dragonboard410c/configs/chainloaded.config
new file mode 100644
index 00000000000..3fd064924a1
--- /dev/null
+++ b/board/qualcomm/dragonboard410c/configs/chainloaded.config
@@ -0,0 +1,7 @@
+# CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set
+CONFIG_TEXT_BASE=0x0
+# CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR is not set
+# CONFIG_REMAKE_ELF is not set
+CONFIG_POSITION_INDEPENDENT=y
+CONFIG_INIT_SP_RELATIVE=y
+CONFIG_SYS_INIT_SP_BSS_OFFSET=524288
diff --git a/board/qualcomm/dragonboard410c/dragonboard410c.c b/board/qualcomm/dragonboard410c/dragonboard410c.c
index 350e0e9e20a..fbbfc0e65e2 100644
--- a/board/qualcomm/dragonboard410c/dragonboard410c.c
+++ b/board/qualcomm/dragonboard410c/dragonboard410c.c
@@ -9,101 +9,61 @@
#include <common.h>
#include <cpu_func.h>
#include <dm.h>
+#include <dm/pinctrl.h>
#include <env.h>
#include <init.h>
+#include <mmc.h>
#include <net.h>
#include <usb.h>
#include <asm/cache.h>
#include <asm/global_data.h>
#include <asm/gpio.h>
#include <fdt_support.h>
-#include <asm/arch/dram.h>
-#include <asm/arch/misc.h>
#include <linux/delay.h>
DECLARE_GLOBAL_DATA_PTR;
-int dram_init(void)
+/* UNSTUFF_BITS macro taken from Linux Kernel: drivers/mmc/core/sd.c */
+#define UNSTUFF_BITS(resp, start, size) \
+ ({ \
+ const int __size = size; \
+ const u32 __mask = (__size < 32 ? 1 << __size : 0) - 1; \
+ const int __off = 3 - ((start) / 32); \
+ const int __shft = (start) & 31; \
+ u32 __res; \
+ \
+ __res = resp[__off] >> __shft; \
+ if (__size + __shft > 32) \
+ __res |= resp[__off - 1] << ((32 - __shft) % 32); \
+ __res & __mask; \
+ })
+
+static u32 msm_board_serial(void)
{
- gd->ram_size = PHYS_SDRAM_1_SIZE;
+ struct mmc *mmc_dev;
- return 0;
-}
+ mmc_dev = find_mmc_device(0);
+ if (!mmc_dev)
+ return 0;
-int dram_init_banksize(void)
-{
- gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
- gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
+ if (mmc_init(mmc_dev))
+ return 0;
- return 0;
+ return UNSTUFF_BITS(mmc_dev->cid, 16, 32);
}
-int board_usb_init(int index, enum usb_init_type init)
+static void msm_generate_mac_addr(u8 *mac)
{
- static struct udevice *pmic_gpio;
- static struct gpio_desc hub_reset, usb_sel;
- int ret = 0, node;
-
- if (!pmic_gpio) {
- ret = uclass_get_device_by_name(UCLASS_GPIO,
- "pm8916_gpios@c000",
- &pmic_gpio);
- if (ret < 0) {
- printf("Failed to find pm8916_gpios@c000 node.\n");
- return ret;
- }
- }
-
- /* Try to request gpios needed to start usb host on dragonboard */
- if (!dm_gpio_is_valid(&hub_reset)) {
- node = fdt_subnode_offset(gd->fdt_blob,
- dev_of_offset(pmic_gpio),
- "usb_hub_reset_pm");
- if (node < 0) {
- printf("Failed to find usb_hub_reset_pm dt node.\n");
- return node;
- }
- ret = gpio_request_by_name_nodev(offset_to_ofnode(node),
- "gpios", 0, &hub_reset, 0);
- if (ret < 0) {
- printf("Failed to request usb_hub_reset_pm gpio.\n");
- return ret;
- }
- }
-
- if (!dm_gpio_is_valid(&usb_sel)) {
- node = fdt_subnode_offset(gd->fdt_blob,
- dev_of_offset(pmic_gpio),
- "usb_sw_sel_pm");
- if (node < 0) {
- printf("Failed to find usb_sw_sel_pm dt node.\n");
- return 0;
- }
- ret = gpio_request_by_name_nodev(offset_to_ofnode(node),
- "gpios", 0, &usb_sel, 0);
- if (ret < 0) {
- printf("Failed to request usb_sw_sel_pm gpio.\n");
- return ret;
- }
- }
-
- if (init == USB_INIT_HOST) {
- /* Start USB Hub */
- dm_gpio_set_dir_flags(&hub_reset,
- GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
- mdelay(100);
- /* Switch usb to host connectors */
- dm_gpio_set_dir_flags(&usb_sel,
- GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
- mdelay(100);
- } else { /* Device */
- /* Disable hub */
- dm_gpio_set_dir_flags(&hub_reset, GPIOD_IS_OUT);
- /* Switch back to device connector */
- dm_gpio_set_dir_flags(&usb_sel, GPIOD_IS_OUT);
- }
-
- return 0;
+ /* use locally adminstrated pool */
+ mac[0] = 0x02;
+ mac[1] = 0x00;
+
+ /*
+ * Put the 32-bit serial number in the last 32-bit of the MAC address.
+ * Use big endian order so it is consistent with the serial number
+ * written as a hexadecimal string, e.g. 0x1234abcd -> 02:00:12:34:ab:cd
+ */
+ put_unaligned_be32(msm_board_serial(), &mac[2]);
}
/* Check for vol- button - if pressed - stop autoboot */
@@ -128,12 +88,7 @@ int misc_init_r(void)
return 0;
}
-int board_init(void)
-{
- return 0;
-}
-
-int board_late_init(void)
+int qcom_late_init(void)
{
char serial[16];
@@ -154,8 +109,6 @@ int ft_board_setup(void *blob, struct bd_info *bd)
{
u8 mac[ARP_HLEN];
- msm_fixup_memory(blob);
-
if (!eth_env_get_enetaddr("wlanaddr", mac)) {
msm_generate_mac_addr(mac);
};
@@ -177,8 +130,3 @@ int ft_board_setup(void *blob, struct bd_info *bd)
"local-bd-address", mac, ARP_HLEN, 1);
return 0;
}
-
-void reset_cpu(void)
-{
- psci_system_reset();
-}
diff --git a/board/qualcomm/dragonboard820c/Kconfig b/board/qualcomm/dragonboard820c/Kconfig
deleted file mode 100644
index aff9af52712..00000000000
--- a/board/qualcomm/dragonboard820c/Kconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-if TARGET_DRAGONBOARD820C
-
-config SYS_BOARD
- default "dragonboard820c"
-
-config SYS_VENDOR
- default "qualcomm"
-
-config SYS_SOC
- default "apq8096"
-
-config SYS_CONFIG_NAME
- default "dragonboard820c"
-
-endif
diff --git a/board/qualcomm/dragonboard820c/Makefile b/board/qualcomm/dragonboard820c/Makefile
index 643311f5b3b..2ae6d16364a 100644
--- a/board/qualcomm/dragonboard820c/Makefile
+++ b/board/qualcomm/dragonboard820c/Makefile
@@ -3,4 +3,3 @@
# (C) Copyright 2017 Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@gmail.com>
obj-y := dragonboard820c.o
-extra-y += head.o
diff --git a/board/qualcomm/dragonboard820c/dragonboard820c.c b/board/qualcomm/dragonboard820c/dragonboard820c.c
index 2f0db628368..ac7de711c58 100644
--- a/board/qualcomm/dragonboard820c/dragonboard820c.c
+++ b/board/qualcomm/dragonboard820c/dragonboard820c.c
@@ -27,24 +27,6 @@
DECLARE_GLOBAL_DATA_PTR;
-int dram_init(void)
-{
- gd->ram_size = PHYS_SDRAM_SIZE;
-
- return 0;
-}
-
-int dram_init_banksize(void)
-{
- gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
- gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
-
- gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
- gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
-
- return 0;
-}
-
static void sdhci_power_init(void)
{
const u32 TLMM_PULL_MASK = 0x3;
@@ -113,28 +95,9 @@ static void sdhci_power_init(void)
rclk[i].val << rclk[i].bit);
}
-static void show_psci_version(void)
-{
- struct arm_smccc_res res;
-
- arm_smccc_smc(ARM_PSCI_0_2_FN_PSCI_VERSION, 0, 0, 0, 0, 0, 0, 0, &res);
-
- printf("PSCI: v%ld.%ld\n",
- PSCI_VERSION_MAJOR(res.a0),
- PSCI_VERSION_MINOR(res.a0));
-}
-
-int board_init(void)
+void qcom_board_init(void)
{
sdhci_power_init();
- show_psci_version();
-
- return 0;
-}
-
-void reset_cpu(void)
-{
- psci_system_reset();
}
/* Check for vol- button - if pressed - stop autoboot */
diff --git a/board/qualcomm/dragonboard820c/head.S b/board/qualcomm/dragonboard820c/head.S
deleted file mode 100644
index b052a858fd3..00000000000
--- a/board/qualcomm/dragonboard820c/head.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * ARM64 header for proper chain-loading with Little Kernel.
- *
- * Little Kernel shipped with Dragonboard820C boots standard Linux images for
- * ARM64. This file adds header that is required to boot U-Boot properly.
- *
- * For details see:
- * https://www.kernel.org/doc/Documentation/arm64/booting.txt
- *
- * (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
- */
-
-#include <config.h>
-
-/*
- * per document in linux/Doc/arm64/booting.text
- */
-.global _arm64_header
-_arm64_header:
- b _start
- .word 0
- .quad CONFIG_TEXT_BASE-PHYS_SDRAM_1 /* Image load offset, LE */
- .quad 0 /* Effective size of kernel image, little-endian */
- .quad 0 /* kernel flags, little-endian */
- .quad 0 /* reserved */
- .quad 0 /* reserved */
- .quad 0 /* reserved */
- .byte 0x41 /* Magic number, "ARM\x64" */
- .byte 0x52
- .byte 0x4d
- .byte 0x64
- .word 0 /* reserved (used for PE COFF offset) */
diff --git a/board/qualcomm/dragonboard820c/u-boot.lds b/board/qualcomm/dragonboard820c/u-boot.lds
deleted file mode 100644
index 5251b59fbe7..00000000000
--- a/board/qualcomm/dragonboard820c/u-boot.lds
+++ /dev/null
@@ -1,111 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Override linker script for fastboot-readable images
- *
- * (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
- *
- * Based on arch/arm/cpu/armv8/u-boot.lds (Just add header)
- */
-
-OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
-OUTPUT_ARCH(aarch64)
-ENTRY(_arm64_header)
-SECTIONS
-{
- . = 0x00000000;
-
- . = ALIGN(8);
- .text :
- {
- *(.__image_copy_start)
- board/qualcomm/dragonboard820c/head.o (.text*)
- CPUDIR/start.o (.text*)
- }
-
- /* This needs to come before *(.text*) */
- .efi_runtime : {
- __efi_runtime_start = .;
- *(.text.efi_runtime*)
- *(.rodata.efi_runtime*)
- *(.data.efi_runtime*)
- __efi_runtime_stop = .;
- }
-
- .text_rest :
- {
- *(.text*)
- }
-
- . = ALIGN(8);
- .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
-
- . = ALIGN(8);
- .data : {
- *(.data*)
- }
-
- . = ALIGN(8);
-
- . = .;
-
- . = ALIGN(8);
- __u_boot_list : {
- KEEP(*(SORT(__u_boot_list*)));
- }
-
- . = ALIGN(8);
-
- .efi_runtime_rel : {
- __efi_runtime_rel_start = .;
- *(.rel*.efi_runtime)
- *(.rel*.efi_runtime.*)
- __efi_runtime_rel_stop = .;
- }
-
- . = ALIGN(8);
-
- .image_copy_end :
- {
- *(.__image_copy_end)
- }
-
- . = ALIGN(8);
-
- .rel_dyn_start :
- {
- *(.__rel_dyn_start)
- }
-
- .rela.dyn : {
- *(.rela*)
- }
-
- .rel_dyn_end :
- {
- *(.__rel_dyn_end)
- }
-
- _end = .;
-
- . = ALIGN(8);
-
- .bss_start : {
- KEEP(*(.__bss_start));
- }
-
- .bss : {
- *(.bss*)
- . = ALIGN(8);
- }
-
- .bss_end : {
- KEEP(*(.__bss_end));
- }
-
- /DISCARD/ : { *(.dynsym) }
- /DISCARD/ : { *(.dynstr*) }
- /DISCARD/ : { *(.dynamic*) }
- /DISCARD/ : { *(.plt*) }
- /DISCARD/ : { *(.interp*) }
- /DISCARD/ : { *(.gnu*) }
-}
diff --git a/board/qualcomm/dragonboard845c/Kconfig b/board/qualcomm/dragonboard845c/Kconfig
deleted file mode 100644
index 52fdff288d5..00000000000
--- a/board/qualcomm/dragonboard845c/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-if TARGET_DRAGONBOARD845C
-
-config SYS_BOARD
- default "dragonboard845c"
-
-config SYS_CONFIG_NAME
- default "dragonboard845c"
-
-config SYS_VENDOR
- default "qualcomm"
-
-endif
diff --git a/board/qualcomm/qcs404-evb/Kconfig b/board/qualcomm/qcs404-evb/Kconfig
deleted file mode 100644
index 32657c7d5e3..00000000000
--- a/board/qualcomm/qcs404-evb/Kconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-if TARGET_QCS404EVB
-
-config SYS_BOARD
- default "qcs404-evb"
-
-config SYS_VENDOR
- default "qualcomm"
-
-config SYS_SOC
- default "qcs404"
-
-config SYS_CONFIG_NAME
- default "qcs404-evb"
-
-endif
diff --git a/board/qualcomm/qcs404-evb/Makefile b/board/qualcomm/qcs404-evb/Makefile
deleted file mode 100644
index 4665827e085..00000000000
--- a/board/qualcomm/qcs404-evb/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0+
-#
-# (C) Copyright 2022 Sumit Garg <sumit.garg@linaro.org>
-#
-
-obj-y += qcs404-evb.o
diff --git a/board/qualcomm/qcs404-evb/qcs404-evb.c b/board/qualcomm/qcs404-evb/qcs404-evb.c
deleted file mode 100644
index 249dca7e72f..00000000000
--- a/board/qualcomm/qcs404-evb/qcs404-evb.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Board init file for QCS404-EVB
- *
- * (C) Copyright 2022 Sumit Garg <sumit.garg@linaro.org>
- */
-
-#include <common.h>
-#include <cpu_func.h>
-#include <dm.h>
-#include <env.h>
-#include <init.h>
-#include <asm/cache.h>
-#include <asm/gpio.h>
-#include <asm/global_data.h>
-#include <fdt_support.h>
-#include <asm/arch/dram.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-int dram_init(void)
-{
- return fdtdec_setup_mem_size_base();
-}
-
-int board_init(void)
-{
- struct udevice *pmic_gpio;
- struct gpio_desc usb_vbus_boost_pin;
- int ret, node;
-
- ret = uclass_get_device_by_name(UCLASS_GPIO,
- "pms405_gpios@c000",
- &pmic_gpio);
- if (ret < 0) {
- printf("Failed to find pms405_gpios@c000 node.\n");
- return ret;
- }
-
- node = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(pmic_gpio),
- "usb_vbus_boost_pin");
- if (node < 0) {
- printf("Failed to find usb_hub_reset_pm dt node.\n");
- return node;
- }
- ret = gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0,
- &usb_vbus_boost_pin, 0);
- if (ret < 0) {
- printf("Failed to request usb_hub_reset_pm gpio.\n");
- return ret;
- }
-
- dm_gpio_set_dir_flags(&usb_vbus_boost_pin,
- GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
-
- return 0;
-}
-
-void reset_cpu(void)
-{
- psci_system_reset();
-}
diff --git a/board/radxa/rock/Kconfig b/board/radxa/rock/Kconfig
index 855b9b6954a..c9c4576f264 100644
--- a/board/radxa/rock/Kconfig
+++ b/board/radxa/rock/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "rock"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/radxa/rock2/Kconfig b/board/radxa/rock2/Kconfig
index c2ff9e99632..82ecabac5a1 100644
--- a/board/radxa/rock2/Kconfig
+++ b/board/radxa/rock2/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "rock2"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/radxa/rock5a-rk3588s/Kconfig b/board/radxa/rock5a-rk3588s/Kconfig
index 2d7fc85df4f..82013adf013 100644
--- a/board/radxa/rock5a-rk3588s/Kconfig
+++ b/board/radxa/rock5a-rk3588s/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "rock5a-rk3588s"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/radxa/rock5b-rk3588/Kconfig b/board/radxa/rock5b-rk3588/Kconfig
index 8f1444649af..41dfe2402b1 100644
--- a/board/radxa/rock5b-rk3588/Kconfig
+++ b/board/radxa/rock5b-rk3588/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "rock5b-rk3588"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/radxa/rockpi4-rk3399/Kconfig b/board/radxa/rockpi4-rk3399/Kconfig
new file mode 100644
index 00000000000..d82663506b1
--- /dev/null
+++ b/board/radxa/rockpi4-rk3399/Kconfig
@@ -0,0 +1,15 @@
+if TARGET_ROCKPI4_RK3399
+
+config SYS_BOARD
+ default "rockpi4-rk3399"
+
+config SYS_VENDOR
+ default "radxa"
+
+config SYS_CONFIG_NAME
+ default "rockpi4-rk3399"
+
+config BOARD_SPECIFIC_OPTIONS # dummy
+ def_bool y
+
+endif
diff --git a/board/radxa/rockpi4-rk3399/MAINTAINERS b/board/radxa/rockpi4-rk3399/MAINTAINERS
new file mode 100644
index 00000000000..da5273fb9a3
--- /dev/null
+++ b/board/radxa/rockpi4-rk3399/MAINTAINERS
@@ -0,0 +1,22 @@
+ROCK-PI-4
+M: Jagan Teki <jagan@amarulasolutions.com>
+R: Jonas Karlman <jonas@kwiboo.se>
+S: Maintained
+F: board/radxa/rockpi4-rk3399/
+F: configs/rock-pi-4-rk3399_defconfig
+F: configs/rock-pi-4c-rk3399_defconfig
+F: arch/arm/dts/rk3399-rock-pi-4*
+
+ROCK-4C+
+M: FUKAUMI Naoki <naoki@radxa.com>
+R: Jonas Karlman <jonas@kwiboo.se>
+S: Maintained
+F: configs/rock-4c-plus-rk3399_defconfig
+F: arch/arm/dts/rk3399-rock-4c-plus*
+
+ROCK-4SE
+M: Christopher Obbard <chris.obbard@collabora.com>
+R: Jonas Karlman <jonas@kwiboo.se>
+S: Maintained
+F: configs/rock-4se-rk3399_defconfig
+F: arch/arm/dts/rk3399-rock-4se*
diff --git a/board/rockchip/evb_rk3399/Makefile b/board/radxa/rockpi4-rk3399/Makefile
index aaa51c212e5..3d022533227 100644
--- a/board/rockchip/evb_rk3399/Makefile
+++ b/board/radxa/rockpi4-rk3399/Makefile
@@ -4,4 +4,4 @@
# SPDX-License-Identifier: GPL-2.0+
#
-obj-y += evb-rk3399.o
+obj-y += rockpi4-rk3399.o
diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/radxa/rockpi4-rk3399/rockpi4-rk3399.c
index 3c773d0930c..a533128b92f 100644
--- a/board/rockchip/evb_rk3399/evb-rk3399.c
+++ b/board/radxa/rockpi4-rk3399/rockpi4-rk3399.c
@@ -3,14 +3,8 @@
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
*/
-#include <common.h>
#include <dm.h>
#include <efi_loader.h>
-#include <init.h>
-#include <log.h>
-#include <asm/arch-rockchip/periph.h>
-#include <linux/kernel.h>
-#include <power/regulator.h>
#define ROCKPI4_UPDATABLE_IMAGES 2
@@ -25,36 +19,15 @@ struct efi_capsule_update_info update_info = {
#endif
#ifndef CONFIG_SPL_BUILD
-int board_early_init_f(void)
-{
- struct udevice *regulator;
- int ret;
-
- ret = regulator_get_by_platname("vcc5v0_host", &regulator);
- if (ret) {
- debug("%s vcc5v0_host init fail! ret %d\n", __func__, ret);
- goto out;
- }
-
- ret = regulator_set_enable(regulator, true);
- if (ret)
- debug("%s vcc5v0-host-en set fail! ret %d\n", __func__, ret);
-
-out:
- return 0;
-}
-
-#if defined(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) && defined(CONFIG_EFI_PARTITION)
+#if IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) && IS_ENABLED(CONFIG_EFI_PARTITION)
static bool board_is_rockpi_4b(void)
{
- return CONFIG_IS_ENABLED(TARGET_EVB_RK3399) &&
- of_machine_is_compatible("radxa,rockpi4b");
+ return of_machine_is_compatible("radxa,rockpi4b");
}
static bool board_is_rockpi_4c(void)
{
- return CONFIG_IS_ENABLED(TARGET_EVB_RK3399) &&
- of_machine_is_compatible("radxa,rockpi4c");
+ return of_machine_is_compatible("radxa,rockpi4c");
}
void rockchip_capsule_update_board_setup(void)
diff --git a/board/rikomagic/mk808/Kconfig b/board/rikomagic/mk808/Kconfig
index 4abad7e7500..61c27d2b4d8 100644
--- a/board/rikomagic/mk808/Kconfig
+++ b/board/rikomagic/mk808/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "mk808"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_px30/Kconfig b/board/rockchip/evb_px30/Kconfig
index 0042c8e4db1..03ed8088ca6 100644
--- a/board/rockchip/evb_px30/Kconfig
+++ b/board/rockchip/evb_px30/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_px30"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_px5/Kconfig b/board/rockchip/evb_px5/Kconfig
index 9a04ee7e616..7a42b4a21b1 100644
--- a/board/rockchip/evb_px5/Kconfig
+++ b/board/rockchip/evb_px5/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_px5"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3036/Kconfig b/board/rockchip/evb_rk3036/Kconfig
index ef45f629252..4abe8cff33a 100644
--- a/board/rockchip/evb_rk3036/Kconfig
+++ b/board/rockchip/evb_rk3036/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rk3036"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3128/Kconfig b/board/rockchip/evb_rk3128/Kconfig
index 5b3095ade99..c36691cc8c5 100644
--- a/board/rockchip/evb_rk3128/Kconfig
+++ b/board/rockchip/evb_rk3128/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rk3128"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3229/Kconfig b/board/rockchip/evb_rk3229/Kconfig
index 361dcb18603..f5862d5678c 100644
--- a/board/rockchip/evb_rk3229/Kconfig
+++ b/board/rockchip/evb_rk3229/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rk3229"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3288/Kconfig b/board/rockchip/evb_rk3288/Kconfig
index 8ab07f41fa6..0707486d2a8 100644
--- a/board/rockchip/evb_rk3288/Kconfig
+++ b/board/rockchip/evb_rk3288/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rk3288"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3308/Kconfig b/board/rockchip/evb_rk3308/Kconfig
index 0074429cb6d..b12d7f8d73a 100644
--- a/board/rockchip/evb_rk3308/Kconfig
+++ b/board/rockchip/evb_rk3308/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rk3308"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3328/Kconfig b/board/rockchip/evb_rk3328/Kconfig
index ef446b49dda..1e084bdcd39 100644
--- a/board/rockchip/evb_rk3328/Kconfig
+++ b/board/rockchip/evb_rk3328/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rk3328"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3328/MAINTAINERS b/board/rockchip/evb_rk3328/MAINTAINERS
index 5fc114a63f6..675b72dd060 100644
--- a/board/rockchip/evb_rk3328/MAINTAINERS
+++ b/board/rockchip/evb_rk3328/MAINTAINERS
@@ -4,17 +4,21 @@ S: Maintained
F: board/rockchip/evb_rk3328
F: include/configs/evb_rk3328.h
F: configs/evb-rk3328_defconfig
+F: arch/arm/dts/rk3328-evb.dts
+F: arch/arm/dts/rk3328-evb-u-boot.dtsi
NANOPI-R2C-RK3328
M: Tianling Shen <cnsztl@gmail.com>
S: Maintained
F: configs/nanopi-r2c-rk3328_defconfig
+F: arch/arm/dts/rk3328-nanopi-r2c.dts
F: arch/arm/dts/rk3328-nanopi-r2c-u-boot.dtsi
NANOPI-R2C-PLUS-RK3328
M: Tianling Shen <cnsztl@gmail.com>
S: Maintained
F: configs/nanopi-r2c-plus-rk3328_defconfig
+F: arch/arm/dts/rk3328-nanopi-r2c-plus.dts
F: arch/arm/dts/rk3328-nanopi-r2c-plus-u-boot.dtsi
NANOPI-R2S-RK3328
@@ -28,29 +32,36 @@ ORANGEPI-R1-PLUS-RK3328
M: Tianling Shen <cnsztl@gmail.com>
S: Maintained
F: configs/orangepi-r1-plus-rk3328_defconfig
+F: arch/arm/dts/rk3328-orangepi-r1-plus.dts
F: arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi
ORANGEPI-R1-PLUS-LTS-RK3328
M: Tianling Shen <cnsztl@gmail.com>
S: Maintained
F: configs/orangepi-r1-plus-lts-rk3328_defconfig
+F: arch/arm/dts/rk3328-orangepi-r1-plus-lts.dts
F: arch/arm/dts/rk3328-orangepi-r1-plus-lts-u-boot.dtsi
ROC-RK3328-CC
M: Loic Devulder <ldevulder@suse.com>
M: Chen-Yu Tsai <wens@csie.org>
+R: Jonas Karlman <jonas@kwiboo.se>
S: Maintained
F: configs/roc-cc-rk3328_defconfig
+F: arch/arm/dts/rk3328-roc-cc.dts
F: arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
ROCK64-RK3328
M: Matwey V. Kornilov <matwey.kornilov@gmail.com>
+R: Jonas Karlman <jonas@kwiboo.se>
S: Maintained
F: configs/rock64-rk3328_defconfig
+F: arch/arm/dts/rk3328-rock64.dts
F: arch/arm/dts/rk3328-rock64-u-boot.dtsi
ROCKPIE-RK3328
M: Banglang Huang <banglang.huang@foxmail.com>
+R: Jonas Karlman <jonas@kwiboo.se>
S: Maintained
F: configs/rock-pi-e-rk3328_defconfig
F: arch/arm/dts/rk3328-rock-pi-e.dts
diff --git a/board/rockchip/evb_rk3328/README b/board/rockchip/evb_rk3328/README
deleted file mode 100644
index 6cbb66a4cf8..00000000000
--- a/board/rockchip/evb_rk3328/README
+++ /dev/null
@@ -1,70 +0,0 @@
-Introduction
-============
-
-RK3328 key features we might use in U-Boot:
-* CPU: ARMv8 64bit quad-core Cortex-A53
-* IRAM: 36KB
-* DRAM: 4GB-16MB dual-channel
-* eMMC: support eMMC 5.0/5.1, suport HS400, HS200, DDR50
-* SD/MMC: support SD 3.0, MMC 4.51
-* USB: USB2.0 EHCI host port *2
-* Display: RGB/HDMI/DP/MIPI/EDP
-
-evb key features:
-* regulator: pwm regulator for CPU B/L
-* PMIC: rk808
-* debug console: UART2
-
-In order to support Arm Trust Firmware(ATF), we need to use the
-miniloader from rockchip which:
-* do DRAM init
-* load and verify ATF image
-* load and verify U-Boot image
-
-Here is the step-by-step to boot to U-Boot on rk3328.
-
-Get the Source and prebuild binary
-==================================
-
- > mkdir ~/evb_rk3328
- > cd ~/evb_rk3328
- > git clone https://github.com/ARM-software/arm-trusted-firmware.git
- > git clone https://github.com/rockchip-linux/rkbin
- > git clone https://github.com/rockchip-linux/rkflashtool
-
-Compile ATF
-===============
-
- > cd arm-trusted-firmware
- > make realclean
- > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3328 bl31
-
-Compile U-Boot
-==================
-
- > cd ../u-boot
- > make CROSS_COMPILE=aarch64-linux-gnu- evb-rk3328_defconfig all
-
-Compile rkflashtool
-=======================
-
- > cd ../rkflashtool
- > make
-
-Package image for miniloader
-================================
- > cd ..
- > cp arm-trusted-firmware/build/rk3328/release/bl31.bin rkbin/rk33
- > ./rkbin/tools/trust_merger rkbin/tools/RK3328TRUST.ini
- > ./rkbin/tools/loaderimage --pack --uboot u-boot/u-boot-dtb.bin uboot.img
- > mkdir image
- > mv trust.img ./image/
- > mv uboot.img ./image/rk3328evb-uboot.bin
-
-Flash image
-===============
-Power on(or reset with RESET KEY) with MASKROM KEY preesed, and then:
-
- > ./rkflashtool/rkflashloader rk3328evb
-
-You should be able to get U-Boot log message in console/UART2 now.
diff --git a/board/rockchip/evb_rk3399/Kconfig b/board/rockchip/evb_rk3399/Kconfig
index 412b81cbee9..597b0a68b5b 100644
--- a/board/rockchip/evb_rk3399/Kconfig
+++ b/board/rockchip/evb_rk3399/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rk3399"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3399/MAINTAINERS b/board/rockchip/evb_rk3399/MAINTAINERS
index acdb840f209..8dab3fa70f5 100644
--- a/board/rockchip/evb_rk3399/MAINTAINERS
+++ b/board/rockchip/evb_rk3399/MAINTAINERS
@@ -4,48 +4,53 @@ S: Maintained
F: board/rockchip/evb_rk3399
F: include/configs/evb_rk3399.h
F: configs/evb-rk3399_defconfig
+F: arch/arm/dts/rk3399-evb*
F: configs/firefly-rk3399_defconfig
+F: arch/arm/dts/rk3399-firefly*
EAIDK-610
M: Andy Yan <andy.yan@rock-chips.com>
S: Maintained
F: configs/eaidk-610-rk3399_defconfig
-F: arch/arm/dts/rk3399-eaidk-610-u-boot.dtsi
+F: arch/arm/dts/rk3399-eaidk-610*
KHADAS-EDGE
M: Nick Xie <nick@khadas.com>
S: Maintained
F: configs/khadas-edge-rk3399_defconfig
+F: arch/arm/dts/rk3399-khadas-edge.dts
+F: arch/arm/dts/rk3399-khadas-edge.dtsi
F: arch/arm/dts/rk3399-khadas-edge-u-boot.dtsi
KHADAS-EDGE-CAPTAIN
M: Nick Xie <nick@khadas.com>
S: Maintained
F: configs/khadas-edge-captain-rk3399_defconfig
-F: arch/arm/dts/rk3399-khadas-edge-captain-u-boot.dtsi
+F: arch/arm/dts/rk3399-khadas-edge-captain*
KHADAS-EDGE-V
M: Nick Xie <nick@khadas.com>
S: Maintained
F: configs/khadas-edge-v-rk3399_defconfig
-F: arch/arm/dts/rk3399-khadas-edge-v-u-boot.dtsi
+F: arch/arm/dts/rk3399-khadas-edge-v*
LEEZ-P710
M: Andy Yan <andy.yan@rock-chips.com>
S: Maintained
-F: arch/arm/dts/rk3399-leez-p710-u-boot.dtsi
+F: arch/arm/dts/rk3399-leez-p710*
F: configs/leez-rk3399_defconfig
NANOPC-T4
M: Jagan Teki <jagan@amarulasolutions.com>
S: Maintained
F: configs/nanopc-t4-rk3399_defconfig
-F: arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi
+F: arch/arm/dts/rk3399-nanopc-t4*
NANOPI-M4
M: Jagan Teki <jagan@amarulasolutions.com>
S: Maintained
F: configs/nanopi-m4-rk3399_defconfig
+F: arch/arm/dts/rk3399-nanopi-m4.dts
F: arch/arm/dts/rk3399-nanopi-m4-u-boot.dtsi
NANOPI-M4-2GB
@@ -53,55 +58,34 @@ M: Jagan Teki <jagan@amarulasolutions.com>
M: Deepak Das <deepakdas.linux@gmail.com>
S: Maintained
F: configs/nanopi-m4-2gb-rk3399_defconfig
-F: arch/arm/dts/rk3399-nanopi-m4-2gb-u-boot.dtsi
+F: arch/arm/dts/rk3399-nanopi-m4-2gb*
NANOPI-M4B
M: Alexandre Vicenzi <linux@alxd.me>
S: Maintained
F: configs/nanopi-m4b-rk3399_defconfig
-F: arch/arm/dts/rk3399-nanopi-m4b-u-boot.dtsi
+F: arch/arm/dts/rk3399-nanopi-m4b*
NANOPI-NEO4
M: Jagan Teki <jagan@amarulasolutions.com>
S: Maintained
F: configs/nanopi-neo4-rk3399_defconfig
-F: arch/arm/dts/rk3399-nanopi-neo4-u-boot.dtsi
+F: arch/arm/dts/rk3399-nanopi-neo4*
NANOPI-R4S
M: Xiaobo Tian <peterwillcn@gmail.com>
S: Maintained
F: configs/nanopi-r4s-rk3399_defconfig
-F: arch/arm/dts/rk3399-nanopi-r4s-u-boot.dtsi
+F: arch/arm/dts/rk3399-nanopi-r4s*
ORANGEPI-RK3399
M: Jagan Teki <jagan@amarulasolutions.com>
S: Maintained
F: configs/orangepi-rk3399_defconfig
-F: arch/arm/dts/rk3399-u-boot.dtsi
-F: arch/arm/dts/rk3399-orangepi-u-boot.dtsi
-
-ROCK-4C+
-M: FUKAUMI Naoki <naoki@radxa.com>
-S: Maintained
-F: configs/rock-4c-plus-rk3399_defconfig
-F: arch/arm/dts/rk3399-rock-4c-plus.dts
-
-ROCK-4SE
-M: Christopher Obbard <chris.obbard@collabora.com>
-S: Maintained
-F: configs/rock-4se-rk3399_defconfig
-F: arch/arm/dts/rk3399-rock-4se-u-boot.dtsi
-
-ROCK-PI-4
-M: Jagan Teki <jagan@amarulasolutions.com>
-S: Maintained
-F: configs/rock-pi-4-rk3399_defconfig
-F: arch/arm/dts/rk3399-rock-pi-4-u-boot.dtsi
-F: configs/rock-pi-4c-rk3399_defconfig
-F: arch/arm/dts/rk3399-rock-pi-4c-u-boot.dtsi
+F: arch/arm/dts/rk3399-orangepi*
ROCK-PI-N10
M: Jagan Teki <jagan@amarulasolutions.com>
S: Maintained
F: configs/rock-pi-n10-rk3399pro_defconfig
-F: arch/arm/dts/rk3399pro-rock-pi-n10-u-boot.dtsi
+F: arch/arm/dts/rk3399pro-rock-pi-n10*
diff --git a/board/rockchip/evb_rk3568/Kconfig b/board/rockchip/evb_rk3568/Kconfig
index f3d3a7e1112..ab710c58d3b 100644
--- a/board/rockchip/evb_rk3568/Kconfig
+++ b/board/rockchip/evb_rk3568/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rk3568"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3588/Kconfig b/board/rockchip/evb_rk3588/Kconfig
index d38efe61d83..5e15d2e9cce 100644
--- a/board/rockchip/evb_rk3588/Kconfig
+++ b/board/rockchip/evb_rk3588/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rk3588"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rk3588/MAINTAINERS b/board/rockchip/evb_rk3588/MAINTAINERS
index 2bd44bc5872..a858ab163f3 100644
--- a/board/rockchip/evb_rk3588/MAINTAINERS
+++ b/board/rockchip/evb_rk3588/MAINTAINERS
@@ -1,3 +1,18 @@
+COOLPI-4B-RK3588S
+M: Andy Yan <andyshrk@163.com>
+S: Maintained
+F: configs/coolpi-4b-rk3588s_defconfig
+F: arch/arm/dts/rk3588s-coolpi-4b.dts
+F: arch/arm/dts/rk3588s-coolpi-u-boot.dtsi
+
+COOLPI-CM5-EVB-RK3588
+M: Andy Yan <andyshrk@163.com>
+S: Maintained
+F: configs/coolpi-cm5-evb-rk3588_defconfig
+F: arch/arm/dts/rk3588-coolpi-cm5.dtsi
+F: arch/arm/dts/rk3588-coolpi-cm5-evb.dts
+F: arch/arm/dts/rk3588-coolpi-cm5-evb-u-boot.dtsi
+
EVB-RK3588
M: Kever Yang <kever.yang@rock-chips.com>
S: Maintained
@@ -7,6 +22,13 @@ F: configs/evb-rk3588_defconfig
F: arch/arm/dts/rk3588-evb1-v10.dts
F: arch/arm/dts/rk3588-evb1-v10-u-boot.dtsi
+GENERIC-RK3588
+M: Jonas Karlman <jonas@kwiboo.se>
+S: Maintained
+F: configs/generic-rk3588_defconfig
+F: arch/arm/dts/rk3588-generic.dts
+F: arch/arm/dts/rk3588-generic-u-boot.dtsi
+
ORANGEPI-5-RK3588
M: Jonas Karlman <jonas@kwiboo.se>
S: Maintained
diff --git a/board/rockchip/evb_rv1108/Kconfig b/board/rockchip/evb_rv1108/Kconfig
index 4a76e0b9fa9..91afefd8b79 100644
--- a/board/rockchip/evb_rv1108/Kconfig
+++ b/board/rockchip/evb_rv1108/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "evb_rv1108"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/evb_rv1108/evb_rv1108.c b/board/rockchip/evb_rv1108/evb_rv1108.c
index e6ac598648d..0d7a486bed7 100644
--- a/board/rockchip/evb_rv1108/evb_rv1108.c
+++ b/board/rockchip/evb_rv1108/evb_rv1108.c
@@ -8,7 +8,6 @@
#include <init.h>
#include <syscon.h>
#include <asm/global_data.h>
-#include <asm/io.h>
#include <asm/arch-rockchip/clock.h>
#include <asm/arch-rockchip/grf_rv1108.h>
#include <asm/arch-rockchip/hardware.h>
diff --git a/board/rockchip/kylin_rk3036/Kconfig b/board/rockchip/kylin_rk3036/Kconfig
index 8d35b4e62bd..debffe15c78 100644
--- a/board/rockchip/kylin_rk3036/Kconfig
+++ b/board/rockchip/kylin_rk3036/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "kylin_rk3036"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/sheep_rk3368/Kconfig b/board/rockchip/sheep_rk3368/Kconfig
index d39b5e8b1aa..321bf814859 100644
--- a/board/rockchip/sheep_rk3368/Kconfig
+++ b/board/rockchip/sheep_rk3368/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "sheep_rk3368"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/tinker_rk3288/Kconfig b/board/rockchip/tinker_rk3288/Kconfig
index bca6c37bc94..04a9f1405a4 100644
--- a/board/rockchip/tinker_rk3288/Kconfig
+++ b/board/rockchip/tinker_rk3288/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "tinker_rk3288"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/rockchip/tinker_rk3288/tinker-rk3288.c b/board/rockchip/tinker_rk3288/tinker-rk3288.c
index f85209c6498..eff3a00c30a 100644
--- a/board/rockchip/tinker_rk3288/tinker-rk3288.c
+++ b/board/rockchip/tinker_rk3288/tinker-rk3288.c
@@ -11,8 +11,6 @@
#include <init.h>
#include <net.h>
#include <netdev.h>
-#include <asm/arch-rockchip/bootrom.h>
-#include <asm/io.h>
static int get_ethaddr_from_eeprom(u8 *addr)
{
@@ -38,13 +36,3 @@ int rk3288_board_late_init(void)
return 0;
}
-
-int mmc_get_env_dev(void)
-{
- u32 bootdevice_brom_id = readl(BROM_BOOTSOURCE_ID_ADDR);
-
- if (bootdevice_brom_id == BROM_BOOTSOURCE_EMMC)
- return 0;
-
- return 1;
-}
diff --git a/board/rockchip/toybrick_rk3588/Kconfig b/board/rockchip/toybrick_rk3588/Kconfig
new file mode 100644
index 00000000000..8e781a18d9d
--- /dev/null
+++ b/board/rockchip/toybrick_rk3588/Kconfig
@@ -0,0 +1,12 @@
+if TARGET_TOYBRICK_RK3588
+
+config SYS_BOARD
+ default "toybrick_rk3588"
+
+config SYS_VENDOR
+ default "rockchip"
+
+config SYS_CONFIG_NAME
+ default "toybrick_rk3588"
+
+endif
diff --git a/board/rockchip/toybrick_rk3588/MAINTAINERS b/board/rockchip/toybrick_rk3588/MAINTAINERS
new file mode 100644
index 00000000000..cd4401c24f3
--- /dev/null
+++ b/board/rockchip/toybrick_rk3588/MAINTAINERS
@@ -0,0 +1,8 @@
+TOYBRICK-RK3588
+M: Elon Zhang <zhangzj@rock-chips.com>
+S: Maintained
+F: board/rockchip/toybrick_rk3588
+F: include/configs/toybrick_rk3588.h
+F: configs/toybrick-rk3588_defconfig
+F: arch/arm/dts/rk3588-toybrick-x0.dts
+F: arch/arm/dts/rk3588-toybrick-x0-u-boot.dtsi
diff --git a/board/rockchip/toybrick_rk3588/Makefile b/board/rockchip/toybrick_rk3588/Makefile
new file mode 100644
index 00000000000..75d4d9438f7
--- /dev/null
+++ b/board/rockchip/toybrick_rk3588/Makefile
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (c) 2024 Rockchip Electronics Co,. Ltd.
+#
+
+obj-y += toybrick-rk3588.o
diff --git a/board/rockchip/toybrick_rk3588/toybrick-rk3588.c b/board/rockchip/toybrick_rk3588/toybrick-rk3588.c
new file mode 100644
index 00000000000..e3217f70b50
--- /dev/null
+++ b/board/rockchip/toybrick_rk3588/toybrick-rk3588.c
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2024 Rockchip Electronics Co,. Ltd.
+ */
+
+#include <fdtdec.h>
+#include <fdt_support.h>
+
+#ifdef CONFIG_OF_BOARD_SETUP
+static int rk3588_add_reserved_memory_fdt_nodes(void *new_blob)
+{
+ struct fdt_memory gap1 = {
+ .start = 0x3fc000000,
+ .end = 0x3fc4fffff,
+ };
+ struct fdt_memory gap2 = {
+ .start = 0x3fff00000,
+ .end = 0x3ffffffff,
+ };
+ unsigned long flags = FDTDEC_RESERVED_MEMORY_NO_MAP;
+ int ret;
+
+ /*
+ * Inject the reserved-memory nodes into the DTS
+ */
+ ret = fdtdec_add_reserved_memory(new_blob, "gap1", &gap1, NULL, 0,
+ NULL, flags);
+ if (ret)
+ return ret;
+
+ return fdtdec_add_reserved_memory(new_blob, "gap2", &gap2, NULL, 0,
+ NULL, flags);
+}
+
+int ft_board_setup(void *blob, struct bd_info *bd)
+{
+ return rk3588_add_reserved_memory_fdt_nodes(blob);
+}
+#endif
diff --git a/board/samsung/common/exynos5-dt.c b/board/samsung/common/exynos5-dt.c
index 95cf6d2acc2..b3e87c93751 100644
--- a/board/samsung/common/exynos5-dt.c
+++ b/board/samsung/common/exynos5-dt.c
@@ -122,12 +122,6 @@ static struct dwc3_device dwc3_device_data = {
.index = 0,
};
-int dm_usb_gadget_handle_interrupts(struct udevice *dev)
-{
- dwc3_uboot_handle_interrupt(dev);
- return 0;
-}
-
int board_usb_init(int index, enum usb_init_type init)
{
struct exynos_usb3_phy *phy = (struct exynos_usb3_phy *)
diff --git a/board/samsung/starqltechn/Kconfig b/board/samsung/starqltechn/Kconfig
index 0eea666d035..e928cb0ea89 100644
--- a/board/samsung/starqltechn/Kconfig
+++ b/board/samsung/starqltechn/Kconfig
@@ -6,17 +6,9 @@ config SYS_BOARD
starqltechn is a production board for S9 and S9+ phones(SM-G96x0) phones based on SDM845 SoC.
config SYS_CONFIG_NAME
- string "Board configuration name"
default "sdm845"
- help
- This option contains information about board configuration name.
- Based on this option include/configs/<CONFIG_SYS_CONFIG_NAME>.h header
- will be used for board configuration.
config SYS_VENDOR
default "samsung"
-config SYS_CONFIG_NAME
- default "starqltechn"
-
endif
diff --git a/board/sielaff/imx6dl-sielaff/Kconfig b/board/sielaff/imx6dl-sielaff/Kconfig
index 1b74a7d90ee..7876ab14c07 100644
--- a/board/sielaff/imx6dl-sielaff/Kconfig
+++ b/board/sielaff/imx6dl-sielaff/Kconfig
@@ -9,7 +9,6 @@ config SYS_VENDOR
default "sielaff"
config SYS_CONFIG_NAME
- string
default "imx6dl-sielaff"
endif
diff --git a/board/skyworth/hc2910-2aghd05/Kconfig b/board/skyworth/hc2910-2aghd05/Kconfig
index f85f1f2631d..620a3177f48 100644
--- a/board/skyworth/hc2910-2aghd05/Kconfig
+++ b/board/skyworth/hc2910-2aghd05/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_SOC
default "hi3798mv200"
-config SYS_CONFIG_NAME
- default "hc2910-2aghd05"
-
endif
diff --git a/board/skyworth/hc2910-2aghd05/MAINTAINERS b/board/skyworth/hc2910-2aghd05/MAINTAINERS
index 2c1e750018e..13915556bc5 100644
--- a/board/skyworth/hc2910-2aghd05/MAINTAINERS
+++ b/board/skyworth/hc2910-2aghd05/MAINTAINERS
@@ -2,5 +2,4 @@ HC2910 2AGHD05 BOARD
M: Yang Xiwen <firbidden405@outlook.com>
S: Maintained
F: board/skyworth/hc2910-2aghd05
-F: include/configs/hc2910-2aghd05.h
F: configs/hc2910_2aghd05_defconfig
diff --git a/board/socionext/developerbox/MAINTAINERS b/board/socionext/developerbox/MAINTAINERS
index c6d4f2749d6..ca606c83d3f 100644
--- a/board/socionext/developerbox/MAINTAINERS
+++ b/board/socionext/developerbox/MAINTAINERS
@@ -1,5 +1,5 @@
DEVELOPER BOX
-M: Jassi Brar <jaswinder.singh@linaro.org>
+M: Masahisa Kojima <kojima.masahisa@socionext.com>
S: Maintained
F: arch/arm/dts/synquacer-*
F: board/socionext/developerbox/*
diff --git a/board/socionext/developerbox/developerbox.c b/board/socionext/developerbox/developerbox.c
index ac4415ff3bb..062e4a7b79f 100644
--- a/board/socionext/developerbox/developerbox.c
+++ b/board/socionext/developerbox/developerbox.c
@@ -125,10 +125,29 @@ int dram_init(void)
struct draminfo *synquacer_draminfo = (void *)SQ_DRAMINFO_BASE;
struct draminfo_entry *ent = synquacer_draminfo->entry;
unsigned long size = 0;
- int i;
+ struct mm_region *mr;
+ int i, ri;
+
+ if (synquacer_draminfo->nr_regions < 1) {
+ log_err("Failed to get correct DRAM information\n");
+ return -EINVAL;
+ }
- for (i = 0; i < synquacer_draminfo->nr_regions; i++)
+ for (i = 0; i < synquacer_draminfo->nr_regions; i++) {
+ if (i >= MAX_DDR_REGIONS)
+ break;
+
+ ri = DDR_REGION_INDEX(i);
+ mem_map[ri].phys = ent[i].base;
+ mem_map[ri].size = ent[i].size;
+ mem_map[ri].virt = mem_map[ri].phys;
size += ent[i].size;
+ if (i == 0)
+ continue;
+
+ mr = &mem_map[DDR_REGION_INDEX(0)];
+ mem_map[ri].attrs = mr->attrs;
+ }
gd->ram_size = size;
gd->ram_base = ent[0].base;
@@ -162,43 +181,6 @@ int dram_init_banksize(void)
return 0;
}
-void build_mem_map(void)
-{
- struct draminfo *synquacer_draminfo = (void *)SQ_DRAMINFO_BASE;
- struct draminfo_entry *ent = synquacer_draminfo->entry;
- struct mm_region *mr;
- int i, ri;
-
- if (synquacer_draminfo->nr_regions < 1) {
- log_err("Failed to get correct DRAM information\n");
- return;
- }
-
- /* Update memory region maps */
- for (i = 0; i < synquacer_draminfo->nr_regions; i++) {
- if (i >= MAX_DDR_REGIONS)
- break;
-
- ri = DDR_REGION_INDEX(i);
- mem_map[ri].phys = ent[i].base;
- mem_map[ri].size = ent[i].size;
- mem_map[ri].virt = mem_map[ri].phys;
- if (i == 0)
- continue;
-
- mr = &mem_map[DDR_REGION_INDEX(0)];
- mem_map[ri].attrs = mr->attrs;
- }
-}
-
-void enable_caches(void)
-{
- build_mem_map();
-
- icache_enable();
- dcache_enable();
-}
-
int print_cpuinfo(void)
{
printf("CPU: SC2A11:Cortex-A53 MPCore 24cores\n");
diff --git a/board/socionext/developerbox/fwu_plat.c b/board/socionext/developerbox/fwu_plat.c
index e724e702bdc..26031795b09 100644
--- a/board/socionext/developerbox/fwu_plat.c
+++ b/board/socionext/developerbox/fwu_plat.c
@@ -35,3 +35,34 @@ void set_dfu_alt_info(char *interface, char *devstr)
env_set("dfu_alt_info", buf);
}
+
+/**
+ * fwu_plat_get_bootidx() - Get the value of the boot index
+ * @boot_idx: Boot index value
+ *
+ * Get the value of the bank(partition) from which the platform
+ * has booted. This value is passed to U-Boot from the earlier
+ * stage bootloader which loads and boots all the relevant
+ * firmware images
+ */
+void fwu_plat_get_bootidx(uint *boot_idx)
+{
+ int ret;
+ u32 buf;
+ size_t readlen;
+ struct mtd_info *mtd;
+
+ *boot_idx = 0;
+
+ mtd_probe_devices();
+ mtd = get_mtd_device_nm("nor1");
+ if (IS_ERR_OR_NULL(mtd))
+ return;
+
+ ret = mtd_read(mtd, SCB_PLAT_METADATA_OFFSET, sizeof(buf),
+ &readlen, (u_char *)&buf);
+ if (ret < 0)
+ return;
+
+ *boot_idx = buf;
+}
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c
index 8edabf4404c..7f4811d8879 100644
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
@@ -336,20 +336,17 @@ static enum board_type board_type(void)
* HB 1 1 x
*/
- gpio_direction_input(IMX_GPIO_NR(2, 8));
- val3 = gpio_get_value(IMX_GPIO_NR(2, 8));
+ val3 = !!dm_gpio_get_value(&board_detect_desc[0]);
if (val3 == 0)
return HUMMINGBOARD2;
- gpio_direction_input(IMX_GPIO_NR(3, 4));
- val2 = gpio_get_value(IMX_GPIO_NR(3, 4));
+ val2 = !!dm_gpio_get_value(&board_detect_desc[1]);
if (val2 == 0)
return HUMMINGBOARD;
- gpio_direction_input(IMX_GPIO_NR(4, 9));
- val1 = gpio_get_value(IMX_GPIO_NR(4, 9));
+ val1 = !!dm_gpio_get_value(&board_detect_desc[2]);
if (val1 == 0) {
return CUBOXI;
@@ -363,8 +360,8 @@ static bool is_rev_15_som(void)
int val1, val2;
SETUP_IOMUX_PADS(som_rev_detect);
- val1 = gpio_get_value(IMX_GPIO_NR(6, 0));
- val2 = gpio_get_value(IMX_GPIO_NR(6, 4));
+ val1 = !!dm_gpio_get_value(&board_detect_desc[3]);
+ val2 = !!dm_gpio_get_value(&board_detect_desc[4]);
if (val1 == 1 && val2 == 0)
return true;
@@ -381,37 +378,6 @@ static bool has_emmc(void)
return (mmc_get_op_cond(mmc, true) < 0) ? 0 : 1;
}
-/* Override the default implementation, DT model is not accurate */
-int checkboard(void)
-{
- request_detect_gpios();
-
- switch (board_type()) {
- case CUBOXI:
- puts("Board: MX6 Cubox-i");
- break;
- case HUMMINGBOARD:
- puts("Board: MX6 HummingBoard");
- break;
- case HUMMINGBOARD2:
- puts("Board: MX6 HummingBoard2");
- break;
- case UNKNOWN:
- default:
- puts("Board: Unknown\n");
- goto out;
- }
-
- if (is_rev_15_som())
- puts(" (som rev 1.5)\n");
- else
- puts("\n");
-
- free_detect_gpios();
-out:
- return 0;
-}
-
static int find_ethernet_phy(void)
{
struct mii_dev *bus = NULL;
@@ -505,12 +471,15 @@ int board_late_init(void)
switch (board_type()) {
case CUBOXI:
env_set("board_name", "CUBOXI");
+ puts("Board: MX6 Cubox-i");
break;
case HUMMINGBOARD:
env_set("board_name", "HUMMINGBOARD");
+ puts("Board: MX6 HummingBoard");
break;
case HUMMINGBOARD2:
env_set("board_name", "HUMMINGBOARD2");
+ puts("Board: MX6 HummingBoard2");
break;
case UNKNOWN:
default:
@@ -522,8 +491,12 @@ int board_late_init(void)
else
env_set("board_rev", "MX6DL");
- if (is_rev_15_som())
+ if (is_rev_15_som()) {
env_set("som_rev", "V15");
+ puts(" (som rev 1.5)\n");
+ } else {
+ puts("\n");
+ }
if (has_emmc())
env_set("has_emmc", "yes");
diff --git a/board/sophgo/milkv_duo/Kconfig b/board/sophgo/milkv_duo/Kconfig
index 2a458f291cc..040a7487f1b 100644
--- a/board/sophgo/milkv_duo/Kconfig
+++ b/board/sophgo/milkv_duo/Kconfig
@@ -7,7 +7,7 @@ config SYS_VENDOR
default "sophgo"
config SYS_CPU
- default "generic"
+ default "cv1800b"
config SYS_CONFIG_NAME
default "milkv_duo"
@@ -23,6 +23,6 @@ config ENV_SECT_SIZE
config BOARD_SPECIFIC_OPTIONS
def_bool y
- select GENERIC_RISCV
+ select SOPHGO_CV1800B
endif
diff --git a/board/st/stih410-b2260/Kconfig b/board/st/stih410-b2260/Kconfig
index 590add05fea..441a83cbaea 100644
--- a/board/st/stih410-b2260/Kconfig
+++ b/board/st/stih410-b2260/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "stih410"
config SYS_CONFIG_NAME
- string
default "stih410-b2260"
endif
diff --git a/board/st/stih410-b2260/board.c b/board/st/stih410-b2260/board.c
index e21cbc270e9..82817571ae3 100644
--- a/board/st/stih410-b2260/board.c
+++ b/board/st/stih410-b2260/board.c
@@ -50,12 +50,6 @@ static struct dwc3_device dwc3_device_data = {
.index = 0,
};
-int dm_usb_gadget_handle_interrupts(struct udevice *dev)
-{
- dwc3_uboot_handle_interrupt(dev);
- return 0;
-}
-
int board_usb_init(int index, enum usb_init_type init)
{
int node;
diff --git a/board/st/stm32f429-discovery/Kconfig b/board/st/stm32f429-discovery/Kconfig
index e73d11bada4..3c93df20afa 100644
--- a/board/st/stm32f429-discovery/Kconfig
+++ b/board/st/stm32f429-discovery/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "stm32f4"
config SYS_CONFIG_NAME
- string
default "stm32f429-discovery"
endif
diff --git a/board/st/stm32f429-evaluation/Kconfig b/board/st/stm32f429-evaluation/Kconfig
index ca4bb3d9c95..eaa40db8a74 100644
--- a/board/st/stm32f429-evaluation/Kconfig
+++ b/board/st/stm32f429-evaluation/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "stm32f4"
config SYS_CONFIG_NAME
- string
default "stm32f429-evaluation"
endif
diff --git a/board/st/stm32f469-discovery/Kconfig b/board/st/stm32f469-discovery/Kconfig
index de61b6f2f6d..622a8d82d81 100644
--- a/board/st/stm32f469-discovery/Kconfig
+++ b/board/st/stm32f469-discovery/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "stm32f4"
config SYS_CONFIG_NAME
- string
default "stm32f469-discovery"
endif
diff --git a/board/st/stm32f746-disco/Kconfig b/board/st/stm32f746-disco/Kconfig
index 09289d23238..86ace17377c 100644
--- a/board/st/stm32f746-disco/Kconfig
+++ b/board/st/stm32f746-disco/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "stm32f7"
config SYS_CONFIG_NAME
- string
default "stm32f746-disco"
endif
diff --git a/board/st/stm32h743-disco/Kconfig b/board/st/stm32h743-disco/Kconfig
index 7d6ec1d9586..bc116bcf32f 100644
--- a/board/st/stm32h743-disco/Kconfig
+++ b/board/st/stm32h743-disco/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "stm32h7"
config SYS_CONFIG_NAME
- string
default "stm32h743-disco"
endif
diff --git a/board/st/stm32h743-eval/Kconfig b/board/st/stm32h743-eval/Kconfig
index ea879b13c8b..ff86de25f7d 100644
--- a/board/st/stm32h743-eval/Kconfig
+++ b/board/st/stm32h743-eval/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "stm32h7"
config SYS_CONFIG_NAME
- string
default "stm32h743-eval"
endif
diff --git a/board/st/stm32h750-art-pi/Kconfig b/board/st/stm32h750-art-pi/Kconfig
index c31b9849fde..ab2d0f227d7 100644
--- a/board/st/stm32h750-art-pi/Kconfig
+++ b/board/st/stm32h750-art-pi/Kconfig
@@ -13,7 +13,6 @@ config SYS_SOC
default "stm32h7"
config SYS_CONFIG_NAME
- string
default "stm32h750-art-pi"
endif
diff --git a/board/st/stv0991/Kconfig b/board/st/stv0991/Kconfig
deleted file mode 100644
index 007712f9c61..00000000000
--- a/board/st/stv0991/Kconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-if TARGET_STV0991
-
-config SYS_BOARD
- default "stv0991"
-
-config SYS_VENDOR
- default "st"
-
-config SYS_SOC
- default "stv0991"
-
-config SYS_CONFIG_NAME
- default "stv0991"
-
-endif
diff --git a/board/st/stv0991/MAINTAINERS b/board/st/stv0991/MAINTAINERS
deleted file mode 100644
index e7a2ccaa1f2..00000000000
--- a/board/st/stv0991/MAINTAINERS
+++ /dev/null
@@ -1,6 +0,0 @@
-STV0991 APPLICATION BOARD
-M: Vikas Manocha <vikas.manocha@st.com>
-S: Maintained
-F: board/st/stv0991/
-F: include/configs/stv0991.h
-F: configs/stv0991_defconfig
diff --git a/board/st/stv0991/Makefile b/board/st/stv0991/Makefile
deleted file mode 100644
index 7f6d719c322..00000000000
--- a/board/st/stv0991/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0+
-#
-# Copyright (C) 2014, STMicroelectronics - All Rights Reserved
-# Author(s): Vikas Manocha, <vikas.manocha@st.com> for STMicroelectronics.
-
-obj-y := stv0991.o
diff --git a/board/st/stv0991/stv0991.c b/board/st/stv0991/stv0991.c
deleted file mode 100644
index 57ca9f659c1..00000000000
--- a/board/st/stv0991/stv0991.c
+++ /dev/null
@@ -1,119 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2014, STMicroelectronics - All Rights Reserved
- * Author(s): Vikas Manocha, <vikas.manocha@st.com> for STMicroelectronics.
- */
-
-#include <common.h>
-#include <bootstage.h>
-#include <dm.h>
-#include <init.h>
-#include <miiphy.h>
-#include <net.h>
-#include <asm/arch/stv0991_periph.h>
-#include <asm/arch/stv0991_defs.h>
-#include <asm/arch/hardware.h>
-#include <asm/arch/gpio.h>
-#include <netdev.h>
-#include <asm/global_data.h>
-#include <asm/io.h>
-#include <dm/platform_data/serial_pl01x.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-struct gpio_regs *const gpioa_regs =
- (struct gpio_regs *) GPIOA_BASE_ADDR;
-
-#ifndef CONFIG_OF_CONTROL
-static const struct pl01x_serial_plat serial_plat = {
- .base = 0x80406000,
- .type = TYPE_PL011,
- .clock = 2700 * 1000,
-};
-
-U_BOOT_DRVINFO(stv09911_serials) = {
- .name = "serial_pl01x",
- .plat = &serial_plat,
-};
-#endif
-
-#if CONFIG_IS_ENABLED(BOOTSTAGE)
-void show_boot_progress(int progress)
-{
- printf("%i\n", progress);
-}
-#endif
-
-void enable_eth_phy(void)
-{
- /* Set GPIOA_06 pad HIGH (Appli board)*/
- writel(readl(&gpioa_regs->dir) | 0x40, &gpioa_regs->dir);
- writel(readl(&gpioa_regs->data) | 0x40, &gpioa_regs->data);
-}
-int board_eth_enable(void)
-{
- stv0991_pinmux_config(ETH_GPIOB_10_31_C_0_4);
- clock_setup(ETH_CLOCK_CFG);
- enable_eth_phy();
- return 0;
-}
-
-int board_qspi_enable(void)
-{
- stv0991_pinmux_config(QSPI_CS_CLK_PAD);
- clock_setup(QSPI_CLOCK_CFG);
- return 0;
-}
-
-/*
- * Miscellaneous platform dependent initialisations
- */
-int board_init(void)
-{
- board_eth_enable();
- board_qspi_enable();
- return 0;
-}
-
-int board_uart_init(void)
-{
- stv0991_pinmux_config(UART_GPIOC_30_31);
- clock_setup(UART_CLOCK_CFG);
- return 0;
-}
-
-#ifdef CONFIG_BOARD_EARLY_INIT_F
-int board_early_init_f(void)
-{
- board_uart_init();
- return 0;
-}
-#endif
-
-int dram_init(void)
-{
- gd->ram_size = PHYS_SDRAM_1_SIZE;
- return 0;
-}
-
-int dram_init_banksize(void)
-{
- gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
- gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
-
- return 0;
-}
-
-#ifdef CONFIG_CMD_NET
-int board_eth_init(struct bd_info *bis)
-{
- int ret = 0;
-
-#if defined(CONFIG_ETH_DESIGNWARE)
- u32 interface = PHY_INTERFACE_MODE_MII;
- if (designware_initialize(GMAC_BASE_ADDR, interface) >= 0)
- ret++;
-#endif
- return ret;
-}
-#endif
diff --git a/board/starfive/visionfive2/spl.c b/board/starfive/visionfive2/spl.c
index 1b49945d11b..45848db6d8b 100644
--- a/board/starfive/visionfive2/spl.c
+++ b/board/starfive/visionfive2/spl.c
@@ -4,7 +4,6 @@
* Author: Yanhong Wang<yanhong.wang@starfivetech.com>
*/
-#include <common.h>
#include <asm/arch/eeprom.h>
#include <asm/arch/gpio.h>
#include <asm/arch/regs.h>
@@ -27,6 +26,26 @@ struct starfive_vf2_pro {
const char *value;
};
+static const struct starfive_vf2_pro milk_v_mars[] = {
+ {"/soc/ethernet@16030000", "starfive,tx-use-rgmii-clk", NULL},
+ {"/soc/ethernet@16040000", "starfive,tx-use-rgmii-clk", NULL},
+
+ {"/soc/ethernet@16030000/mdio/ethernet-phy@0",
+ "motorcomm,tx-clk-adj-enabled", NULL},
+ {"/soc/ethernet@16030000/mdio/ethernet-phy@0",
+ "motorcomm,tx-clk-100-inverted", NULL},
+ {"/soc/ethernet@16030000/mdio/ethernet-phy@0",
+ "motorcomm,tx-clk-1000-inverted", NULL},
+ {"/soc/ethernet@16030000/mdio/ethernet-phy@0",
+ "motorcomm,rx-clk-drv-microamp", "3970"},
+ {"/soc/ethernet@16030000/mdio/ethernet-phy@0",
+ "motorcomm,rx-data-drv-microamp", "2910"},
+ {"/soc/ethernet@16030000/mdio/ethernet-phy@0",
+ "rx-internal-delay-ps", "1900"},
+ {"/soc/ethernet@16030000/mdio/ethernet-phy@0",
+ "tx-internal-delay-ps", "1500"},
+};
+
static const struct starfive_vf2_pro starfive_vera[] = {
{"/soc/ethernet@16030000/mdio/ethernet-phy@0", "rx-internal-delay-ps",
"1900"},
@@ -67,6 +86,49 @@ static const struct starfive_vf2_pro starfive_verb[] = {
"tx-internal-delay-ps", "0"},
};
+void spl_fdt_fixup_mars(void *fdt)
+{
+ static const char compat[] = "milkv,mars\0starfive,jh7110";
+ u32 phandle;
+ u8 i;
+ int offset;
+ int ret;
+
+ fdt_setprop(fdt, fdt_path_offset(fdt, "/"), "compatible", compat, sizeof(compat));
+ fdt_setprop_string(fdt, fdt_path_offset(fdt, "/"), "model",
+ "Milk-V Mars");
+
+ /* gmac0 */
+ offset = fdt_path_offset(fdt, "/soc/clock-controller@17000000");
+ phandle = fdt_get_phandle(fdt, offset);
+ offset = fdt_path_offset(fdt, "/soc/ethernet@16030000");
+
+ fdt_setprop_u32(fdt, offset, "assigned-clocks", phandle);
+ fdt_appendprop_u32(fdt, offset, "assigned-clocks", JH7110_AONCLK_GMAC0_TX);
+ fdt_setprop_u32(fdt, offset, "assigned-clock-parents", phandle);
+ fdt_appendprop_u32(fdt, offset, "assigned-clock-parents",
+ JH7110_AONCLK_GMAC0_RMII_RTX);
+
+ /* gmac1 */
+ fdt_setprop_string(fdt, fdt_path_offset(fdt, "/soc/ethernet@16040000"),
+ "status", "disabled");
+
+ for (i = 0; i < ARRAY_SIZE(milk_v_mars); i++) {
+ offset = fdt_path_offset(fdt, milk_v_mars[i].path);
+
+ if (milk_v_mars[i].value)
+ ret = fdt_setprop_u32(fdt, offset, milk_v_mars[i].name,
+ dectoul(milk_v_mars[i].value, NULL));
+ else
+ ret = fdt_setprop_empty(fdt, offset, milk_v_mars[i].name);
+
+ if (ret) {
+ pr_err("%s set prop %s fail.\n", __func__, milk_v_mars[i].name);
+ break;
+ }
+ }
+}
+
void spl_fdt_fixup_version_a(void *fdt)
{
static const char compat[] = "starfive,visionfive-2-v1.2a\0starfive,jh7110";
@@ -167,22 +229,34 @@ void spl_fdt_fixup_version_b(void *fdt)
void spl_perform_fixups(struct spl_image_info *spl_image)
{
u8 version;
+ const char *product_id;
- version = get_pcb_revision_from_eeprom();
- switch (version) {
- case 'a':
- case 'A':
- spl_fdt_fixup_version_a(spl_image->fdt_addr);
- break;
-
- case 'b':
- case 'B':
- default:
- spl_fdt_fixup_version_b(spl_image->fdt_addr);
+ product_id = get_product_id_from_eeprom();
+ if (!product_id) {
+ pr_err("Can't read EEPROM\n");
+ return;
+ }
+ if (!strncmp(product_id, "MARS", 4)) {
+ spl_fdt_fixup_mars(spl_image->fdt_addr);
+ } else if (!strncmp(product_id, "VF7110", 6)) {
+ version = get_pcb_revision_from_eeprom();
+ switch (version) {
+ case 'a':
+ case 'A':
+ spl_fdt_fixup_version_a(spl_image->fdt_addr);
+ break;
+
+ case 'b':
+ case 'B':
+ default:
+ spl_fdt_fixup_version_b(spl_image->fdt_addr);
break;
+ };
+ } else {
+ pr_err("Unknown product %s\n", product_id);
};
- /* Update the memory size which read form eeprom or DT */
+ /* Update the memory size which read from eeprom or DT */
fdt_fixup_memory(spl_image->fdt_addr, 0x40000000, gd->ram_size);
}
diff --git a/board/starfive/visionfive2/starfive_visionfive2.c b/board/starfive/visionfive2/starfive_visionfive2.c
index 78e118d5a05..a86bca533b2 100644
--- a/board/starfive/visionfive2/starfive_visionfive2.c
+++ b/board/starfive/visionfive2/starfive_visionfive2.c
@@ -4,11 +4,11 @@
* Author: Yanhong Wang<yanhong.wang@starfivetech.com>
*/
-#include <common.h>
#include <cpu_func.h>
#include <dm.h>
#include <fdt_support.h>
#include <env.h>
+#include <log.h>
#include <asm/arch/eeprom.h>
#include <asm/io.h>
#include <asm/sections.h>
@@ -17,6 +17,8 @@
DECLARE_GLOBAL_DATA_PTR;
#define JH7110_L2_PREFETCHER_BASE_ADDR 0x2030000
#define JH7110_L2_PREFETCHER_HART_OFFSET 0x2000
+#define FDTFILE_MILK_V_MARS \
+ "starfive/jh7110-milkv-mars.dtb"
#define FDTFILE_VISIONFIVE2_1_2A \
"starfive/jh7110-starfive-visionfive-2-v1.2a.dtb"
#define FDTFILE_VISIONFIVE2_1_3B \
@@ -48,20 +50,38 @@ static void set_fdtfile(void)
{
u8 version;
const char *fdtfile;
+ const char *product_id;
- version = get_pcb_revision_from_eeprom();
- switch (version) {
- case 'a':
- case 'A':
- fdtfile = FDTFILE_VISIONFIVE2_1_2A;
- break;
-
- case 'b':
- case 'B':
- default:
- fdtfile = FDTFILE_VISIONFIVE2_1_3B;
- break;
- };
+ fdtfile = env_get("fdtfile");
+ if (fdtfile)
+ return;
+
+ product_id = get_product_id_from_eeprom();
+ if (!product_id) {
+ log_err("Can't read EEPROM\n");
+ return;
+ }
+ if (!strncmp(product_id, "MARS", 4)) {
+ fdtfile = FDTFILE_MILK_V_MARS;
+ } else if (!strncmp(product_id, "VF7110", 6)) {
+ version = get_pcb_revision_from_eeprom();
+
+ switch (version) {
+ case 'a':
+ case 'A':
+ fdtfile = FDTFILE_VISIONFIVE2_1_2A;
+ break;
+
+ case 'b':
+ case 'B':
+ default:
+ fdtfile = FDTFILE_VISIONFIVE2_1_3B;
+ break;
+ }
+ } else {
+ log_err("Unknown product\n");
+ return;
+ }
env_set("fdtfile", fdtfile);
}
diff --git a/board/starfive/visionfive2/visionfive2-i2c-eeprom.c b/board/starfive/visionfive2/visionfive2-i2c-eeprom.c
index c36de1a5125..ddef7d61235 100644
--- a/board/starfive/visionfive2/visionfive2-i2c-eeprom.c
+++ b/board/starfive/visionfive2/visionfive2-i2c-eeprom.c
@@ -4,7 +4,6 @@
* Author: Yanhong Wang<yanhong.wang@starfivetech.com>
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <i2c.h>
@@ -405,6 +404,14 @@ static void set_product_id(char *string)
update_crc();
}
+const char *get_product_id_from_eeprom(void)
+{
+ if (read_eeprom())
+ return NULL;
+
+ return pbuf.eeprom.atom1.data.pstr;
+}
+
int do_mac(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
char *cmd;
diff --git a/board/sysam/amcore/Kconfig b/board/sysam/amcore/Kconfig
index dd9816ec243..e13ee8f6e90 100644
--- a/board/sysam/amcore/Kconfig
+++ b/board/sysam/amcore/Kconfig
@@ -13,7 +13,6 @@ config SYS_VENDOR
default "sysam"
config SYS_CONFIG_NAME
- string
default "amcore"
endif
diff --git a/board/theobroma-systems/common/common.c b/board/theobroma-systems/common/common.c
index 864bcdd46f8..585da438845 100644
--- a/board/theobroma-systems/common/common.c
+++ b/board/theobroma-systems/common/common.c
@@ -89,36 +89,6 @@ int setup_boottargets(void)
return 0;
}
-int mmc_get_env_dev(void)
-{
- const char *boot_device =
- ofnode_read_chosen_string("u-boot,spl-boot-device");
- struct udevice *devp;
-
- if (!boot_device) {
- debug("%s: /chosen/u-boot,spl-boot-device not set\n",
- __func__);
-#ifdef CONFIG_SYS_MMC_ENV_DEV
- return CONFIG_SYS_MMC_ENV_DEV;
-#else
- return 0;
-#endif
- }
-
- debug("%s: booted from %s\n", __func__, boot_device);
-
- if (uclass_find_device_by_ofnode(UCLASS_MMC, ofnode_path(boot_device), &devp))
-#ifdef CONFIG_SYS_MMC_ENV_DEV
- return CONFIG_SYS_MMC_ENV_DEV;
-#else
- return 0;
-#endif
-
- debug("%s: get MMC ENV from mmc%d\n", __func__, devp->seq_);
-
- return devp->seq_;
-}
-
enum env_location arch_env_get_location(enum env_operation op, int prio)
{
const char *boot_device =
diff --git a/board/theobroma-systems/jaguar_rk3588/Kconfig b/board/theobroma-systems/jaguar_rk3588/Kconfig
new file mode 100644
index 00000000000..0ff417af4dd
--- /dev/null
+++ b/board/theobroma-systems/jaguar_rk3588/Kconfig
@@ -0,0 +1,16 @@
+if TARGET_JAGUAR_RK3588
+
+config SYS_BOARD
+ default "jaguar_rk3588"
+
+config SYS_VENDOR
+ default "theobroma-systems"
+
+config SYS_CONFIG_NAME
+ default "jaguar_rk3588"
+
+config BOARD_SPECIFIC_OPTIONS # dummy
+ def_bool y
+ select ENV_IS_NOWHERE
+
+endif
diff --git a/board/theobroma-systems/jaguar_rk3588/MAINTAINERS b/board/theobroma-systems/jaguar_rk3588/MAINTAINERS
new file mode 100644
index 00000000000..28fae4b479f
--- /dev/null
+++ b/board/theobroma-systems/jaguar_rk3588/MAINTAINERS
@@ -0,0 +1,13 @@
+JAGUAR-RK3588 (SBC-RK3588-AMR Single Board Computer)
+M: Klaus Goger <klaus.goger@theobroma-systems.com>
+M: Quentin Schulz <quentin.schulz@theobroma-systems.com>
+M: Heiko Stuebner <heiko.stuebner@cherry.de>
+S: Maintained
+F: board/theobroma-systems/jaguar_rk3588
+F: board/theobroma-systems/common
+F: doc/board/theobroma-systems/
+F: include/configs/jaguar_rk3588.h
+F: arch/arm/dts/rk3588-jaguar*
+F: configs/jaguar-rk3588_defconfig
+W: https://theobroma-systems.com/product/jaguar-sbc-rk3588/
+T: git git://git.theobroma-systems.com/jaguar-u-boot.git
diff --git a/board/theobroma-systems/jaguar_rk3588/Makefile b/board/theobroma-systems/jaguar_rk3588/Makefile
new file mode 100644
index 00000000000..532aab01532
--- /dev/null
+++ b/board/theobroma-systems/jaguar_rk3588/Makefile
@@ -0,0 +1,10 @@
+#
+# Copyright (c) 2023 Theobroma Systems Design und Consulting GmbH
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += jaguar_rk3588.o
+ifneq ($(CONFIG_SPL_BUILD),y)
+obj-y += ../common/common.o
+endif
diff --git a/board/theobroma-systems/jaguar_rk3588/jaguar_rk3588.c b/board/theobroma-systems/jaguar_rk3588/jaguar_rk3588.c
new file mode 100644
index 00000000000..a6d44f10db3
--- /dev/null
+++ b/board/theobroma-systems/jaguar_rk3588/jaguar_rk3588.c
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2023 Theobroma Systems Design und Consulting GmbH
+ */
+
+#include <phy.h>
+#include <eth_phy.h>
+
+#include <asm/types.h>
+#include <asm/arch-rockchip/cru_rk3588.h>
+#include <asm/arch-rockchip/hardware.h>
+#include <asm/arch-rockchip/ioc_rk3588.h>
+#include <asm-generic/u-boot.h>
+#include <dm/device.h>
+#include <dm/uclass-id.h>
+#include <linux/bitfield.h>
+
+#include "../common/common.h"
+
+#define GPIO2C3_SEL_MASK GENMASK(15, 12)
+#define GPIO2C3_ETH0_REFCLKO_25M FIELD_PREP(GPIO2C3_SEL_MASK, 1)
+
+#define REFCLKO25M_ETH0_OUT_SEL_MASK BIT(15)
+#define REFCLKO25M_ETH0_OUT_SEL_CPLL FIELD_PREP(REFCLKO25M_ETH0_OUT_SEL_MASK, 1)
+#define REFCLKO25M_ETH0_OUT_DIV_MASK GENMASK(14, 8)
+#define REFCLKO25M_ETH0_OUT_DIV(x) FIELD_PREP(REFCLKO25M_ETH0_OUT_DIV_MASK, (x) - 1)
+
+#define REFCLKO25M_ETH0_OUT_EN BIT(4)
+
+void setup_eth0refclko(void)
+{
+ /* Configure and enable ETH0_REFCLKO_25MHz */
+ static struct rk3588_bus_ioc * const bus_ioc = (void *)BUS_IOC_BASE;
+ static struct rk3588_cru * const cru = (void *)CRU_BASE;
+
+ /* 1. Pinmux */
+ rk_clrsetreg(&bus_ioc->gpio2c_iomux_sel_l, GPIO2C3_SEL_MASK, GPIO2C3_ETH0_REFCLKO_25M);
+ /* 2. Parent clock selection + divider => CPLL (1.5GHz) / 60 => 25MHz */
+ rk_clrsetreg(&cru->clksel_con[15],
+ REFCLKO25M_ETH0_OUT_SEL_MASK | REFCLKO25M_ETH0_OUT_DIV_MASK,
+ REFCLKO25M_ETH0_OUT_SEL_CPLL | REFCLKO25M_ETH0_OUT_DIV(60));
+ /* 3. Enable clock */
+ rk_clrreg(&cru->clkgate_con[5], REFCLKO25M_ETH0_OUT_EN);
+}
+
+int rockchip_early_misc_init_r(void)
+{
+ setup_boottargets();
+
+ setup_eth0refclko();
+
+ return 0;
+}
diff --git a/board/theobroma-systems/lion_rk3368/Kconfig b/board/theobroma-systems/lion_rk3368/Kconfig
index fddbf826df1..537a2e7d9af 100644
--- a/board/theobroma-systems/lion_rk3368/Kconfig
+++ b/board/theobroma-systems/lion_rk3368/Kconfig
@@ -9,9 +9,6 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "lion_rk3368"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
config ENV_SIZE
default 0x2000
diff --git a/board/theobroma-systems/puma_rk3399/MAINTAINERS b/board/theobroma-systems/puma_rk3399/MAINTAINERS
index 93f570fc4f9..7e84a5be262 100644
--- a/board/theobroma-systems/puma_rk3399/MAINTAINERS
+++ b/board/theobroma-systems/puma_rk3399/MAINTAINERS
@@ -4,8 +4,9 @@ M: Klaus Goger <klaus.goger@theobroma-systems.com>
S: Maintained
F: board/theobroma-systems/puma_rk3399
F: board/theobroma-systems/common
+F: doc/board/theobroma-systems
F: include/configs/puma_rk3399.h
-F: arch/arm/dts/rk3399-puma.dts
+F: arch/arm/dts/rk3399-puma*
F: configs/puma-rk3399_defconfig
W: https://www.theobroma-systems.com/rk3399-q7/tech-specs
T: git git://git.theobroma-systems.com/puma-u-boot.git
diff --git a/board/theobroma-systems/puma_rk3399/README b/board/theobroma-systems/puma_rk3399/README
index 649aa3c543d..39c9d618866 100644
--- a/board/theobroma-systems/puma_rk3399/README
+++ b/board/theobroma-systems/puma_rk3399/README
@@ -1,89 +1 @@
-Introduction
-============
-
-The RK3399-Q7 (Puma) is a system-on-module featuring the Rockchip
-RK3399 in a Qseven-compatible form-factor.
-
-RK3399-Q7 features:
- * CPU: ARMv8 64bit Big-Little architecture,
- * Big: dual-core Cortex-A72
- * Little: quad-core Cortex-A53
- * IRAM: 200KB
- * DRAM: 4GB-128MB dual-channel
- * eMMC: onboard eMMC
- * SD/MMC
- * GbE (onboard Micrel KSZ9031) Gigabit ethernet PHY
- * USB:
- * USB3.0 dual role port
- * 2x USB3.0 host, 1x USB2.0 host via onboard USB3.0 hub
- * Display: HDMI/eDP/MIPI
- * Camera: 2x CSI (one on the edge connector, one on the Q7 specified CSI ZIF)
- * NOR Flash: onboard SPI NOR
- * Companion Controller: onboard additional Cortex-M0 microcontroller
- * RTC
- * fan controller
- * CAN
-
-Here is the step-by-step to boot to U-Boot on rk3399.
-
-Get the Source and build ATF binary
-===================================
-
- > git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
-
-Compile the ATF
-===============
-
- > cd trusted-firmware-a
- > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31
- > cp build/rk3399/release/bl31/bl31.elf ../u-boot/bl31.elf
-
-Compile the U-Boot
-==================
-
- > cd ../u-boot
- > make CROSS_COMPILE=aarch64-linux-gnu- puma-rk3399_defconfig all
-
-Flash the image
-===============
-
-Copy u-boot-rockchip.bin to offset 32k for SD/eMMC.
-Copy u-boot-rockchip-spi.bin to offset 0 for NOR-flash.
-
-SD-Card
--------
-
- > dd if=u-boot-rockchip.bin of=/dev/sdb seek=64
-
-eMMC
-----
-
-rkdeveloptool allows to flash the on-board eMMC via the USB OTG interface with
-help of the Rockchip loader binary.
-
- > 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.ini
- > cd ..
- > ./rkdeveloptool db rkbin/rk3399_loader_v1.25.126.bin
- > ./rkdeveloptool wl 64 ../u-boot-rockchip.bin
-
-NOR-Flash
----------
-
-rkdeveloptool allows to flash the on-board SPI via the USB OTG interface with
-help of the Rockchip loader binary.
-
- > 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 ../u-boot-rockchip-spi.bin
+See doc/board/theobroma-systems/puma_rk3399.rst.
diff --git a/board/theobroma-systems/puma_rk3399/puma-rk3399.c b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
index a82f97b2d54..eeb8a99231e 100644
--- a/board/theobroma-systems/puma_rk3399/puma-rk3399.c
+++ b/board/theobroma-systems/puma_rk3399/puma-rk3399.c
@@ -3,50 +3,10 @@
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
*/
-#include <dm.h>
-#include <syscon.h>
-#include <dm/pinctrl.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/hardware.h>
-#include <asm/arch-rockchip/grf_rk3399.h>
-#include <asm/arch-rockchip/misc.h>
#include "../common/common.h"
-static void setup_iodomain(void)
+int rockchip_early_misc_init_r(void)
{
- const u32 GRF_IO_VSEL_GPIO4CD_SHIFT = 3;
- struct rk3399_grf_regs *grf =
- syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
-
- /*
- * Set bit 3 in GRF_IO_VSEL so PCIE_RST# works (pin GPIO4_C6).
- * Linux assumes that PCIE_RST# works out of the box as it probes
- * PCIe before loading the iodomain driver.
- */
- rk_setreg(&grf->io_vsel, 1 << GRF_IO_VSEL_GPIO4CD_SHIFT);
-}
-
-int misc_init_r(void)
-{
- const u32 cpuid_offset = 0x7;
- const u32 cpuid_length = 0x10;
- u8 cpuid[cpuid_length];
- int ret;
-
- ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid);
- if (ret)
- return ret;
-
- ret = rockchip_cpuid_set(cpuid, cpuid_length);
- if (ret)
- return ret;
-
- ret = rockchip_setup_macaddr();
- if (ret)
- return ret;
-
- setup_iodomain();
setup_boottargets();
return 0;
diff --git a/board/theobroma-systems/ringneck_px30/MAINTAINERS b/board/theobroma-systems/ringneck_px30/MAINTAINERS
index 06e1beaab14..97baf334d02 100644
--- a/board/theobroma-systems/ringneck_px30/MAINTAINERS
+++ b/board/theobroma-systems/ringneck_px30/MAINTAINERS
@@ -4,7 +4,8 @@ M: Klaus Goger <klaus.goger@theobroma-systems.com>
S: Maintained
F: board/theobroma-systems/ringneck_px30
F: board/theobroma-systems/common
+F: doc/board/theobroma-systems/
F: include/configs/ringneck_px30.h
F: arch/arm/dts/px30-ringneck*
F: configs/ringneck-px30_defconfig
-W: https://www.theobroma-systems.com/px30-uq7#tech-spec
+W: https://theobroma-systems.com/product/ringneck-som-px30-uq7/
diff --git a/board/theobroma-systems/ringneck_px30/README b/board/theobroma-systems/ringneck_px30/README
index e756b3a8ffc..915baf4a9a0 100644
--- a/board/theobroma-systems/ringneck_px30/README
+++ b/board/theobroma-systems/ringneck_px30/README
@@ -1,69 +1 @@
-Introduction
-============
-
-The PX30-uQ7 (Ringneck) SoM is a µQseven-compatible (40mmx70mm, MXM-230
-connector) system-on-module from Theobroma Systems[1], featuring the
-Rockchip PX30.
-
-It provides the following feature set:
- * up to 4GB DDR4
- * up to 128GB on-module eMMC (with 8-bit 1.8V interface)
- * SD card (on a baseboard) via edge connector
- * Fast Ethernet with on-module TI DP83825I PHY
- * MIPI-DSI/LVDS
- * MIPI-CSI
- * USB
- - 1x USB 2.0 dual-role
- - 3x USB 2.0 host
- * on-module companion controller (STM32 Cortex-M0 or ATtiny), implementing:
- - low-power RTC functionality (ISL1208 emulation)
- - fan controller (AMC6821 emulation)
- - USB<->CAN bridge controller (STM32 only)
- * on-module Espressif ESP32 for Bluetooth + 2.4GHz WiFi
- * on-module NXP SE05x Secure Element
-
-Here is the step-by-step to boot to U-Boot on px30.
-
-Get the Source and build ATF binary
-===================================
-
- > git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
-
-Compile the ATF
-===============
-
- > cd trusted-firmware-a
- > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=px30 bl31
- > cp build/px30/release/bl31/bl31.elf ../u-boot/bl31.elf
-
-Compile the U-Boot
-==================
-
- > cd ../u-boot
- > make CROSS_COMPILE=aarch64-linux-gnu- ringneck-px30_defconfig all
-
-Flash the image
-===============
-
-Copy u-boot-rockchip.bin to offset 32k for SD/eMMC.
-
-SD-Card
--------
-
- > dd if=u-boot-rockchip.bin of=/dev/sdb seek=64
-
-eMMC
-----
-
-rkdeveloptool allows to flash the on-board eMMC via the USB OTG interface with
-help of the Rockchip loader binary.
-
- > 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/PX30MINIALL.ini
- > cd ..
- > ./rkdeveloptool db rkbin/px30_loader_v1.16.131.bin
- > ./rkdeveloptool wl 64 ../u-boot-rockchip.bin
+See doc/board/theobroma-systems/ringneck_px30.rst.
diff --git a/board/theobroma-systems/ringneck_px30/ringneck-px30.c b/board/theobroma-systems/ringneck_px30/ringneck-px30.c
index ff7e414303d..bfebfe5136d 100644
--- a/board/theobroma-systems/ringneck_px30/ringneck-px30.c
+++ b/board/theobroma-systems/ringneck_px30/ringneck-px30.c
@@ -4,29 +4,11 @@
*/
#include <asm/gpio.h>
-#include <asm/arch-rockchip/misc.h>
#include <linux/delay.h>
#include "../common/common.h"
-int misc_init_r(void)
+int rockchip_early_misc_init_r(void)
{
- const u32 cpuid_offset = 0x7;
- const u32 cpuid_length = 0x10;
- u8 cpuid[cpuid_length];
- int ret;
-
- ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid);
- if (ret)
- return ret;
-
- ret = rockchip_cpuid_set(cpuid, cpuid_length);
- if (ret)
- return ret;
-
- ret = rockchip_setup_macaddr();
- if (ret)
- return ret;
-
setup_boottargets();
return 0;
diff --git a/board/ti/am43xx/board.c b/board/ti/am43xx/board.c
index ea0d0b92088..a4679a2e294 100644
--- a/board/ti/am43xx/board.c
+++ b/board/ti/am43xx/board.c
@@ -759,17 +759,6 @@ static struct ti_usb_phy_device usb_phy2_device = {
.usb2_phy_power = (void *)USB2_PHY2_POWER,
.index = 1,
};
-
-int dm_usb_gadget_handle_interrupts(struct udevice *dev)
-{
- u32 status;
-
- status = dwc3_omap_uboot_interrupt_status(dev);
- if (status)
- dwc3_uboot_handle_interrupt(dev);
-
- return 0;
-}
#endif /* CONFIG_USB_DWC3 */
#if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP)
diff --git a/board/ti/am62ax/rm-cfg.yaml b/board/ti/am62ax/rm-cfg.yaml
index 73e8e15f66a..cbd087de797 100644
--- a/board/ti/am62ax/rm-cfg.yaml
+++ b/board/ti/am62ax/rm-cfg.yaml
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0+
-# Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+# Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/
#
# Resource management configuration for AM62A
#
@@ -519,13 +519,13 @@ rm-cfg:
reserved: 0
-
start_resource: 44
- num_resource: 36
+ num_resource: 35
type: 1802
host_id: 35
reserved: 0
-
start_resource: 44
- num_resource: 36
+ num_resource: 35
type: 1802
host_id: 36
reserved: 0
@@ -567,7 +567,7 @@ rm-cfg:
reserved: 0
-
start_resource: 1038
- num_resource: 498
+ num_resource: 497
type: 1805
host_id: 128
reserved: 0
diff --git a/board/ti/am62px/Kconfig b/board/ti/am62px/Kconfig
new file mode 100644
index 00000000000..9d95ffd9b29
--- /dev/null
+++ b/board/ti/am62px/Kconfig
@@ -0,0 +1,26 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+
+if TARGET_AM62P5_R5_EVM || TARGET_AM62P5_A53_EVM
+
+config SYS_BOARD
+ default "am62px"
+
+config SYS_VENDOR
+ default "ti"
+
+config SYS_CONFIG_NAME
+ default "am62px_evm"
+
+source "board/ti/common/Kconfig"
+
+endif
+
+if TARGET_AM62P5_R5_EVM
+
+config SPL_LDSCRIPT
+ default "arch/arm/mach-omap2/u-boot-spl.lds"
+
+endif
diff --git a/board/ti/am62px/MAINTAINERS b/board/ti/am62px/MAINTAINERS
new file mode 100644
index 00000000000..57c86ddbc4a
--- /dev/null
+++ b/board/ti/am62px/MAINTAINERS
@@ -0,0 +1,9 @@
+AM62Px BOARD
+M: Vignesh Raghavendra <vigneshr@ti.com>
+M: Bryan Brattlof <bb@ti.com>
+M: Tom Rini <trini@konsulko.com>
+S: Maintained
+F: board/ti/am62px/
+F: include/configs/am62p5_evm.h
+F: configs/am62px_evm_r5_defconfig
+F: configs/am62px_evm_a53_defconfig
diff --git a/board/ti/am62px/Makefile b/board/ti/am62px/Makefile
new file mode 100644
index 00000000000..921afdff27a
--- /dev/null
+++ b/board/ti/am62px/Makefile
@@ -0,0 +1,7 @@
+#
+# Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += evm.o
diff --git a/board/ti/am62px/am62px.env b/board/ti/am62px/am62px.env
new file mode 100644
index 00000000000..f8b6aff2c2f
--- /dev/null
+++ b/board/ti/am62px/am62px.env
@@ -0,0 +1,15 @@
+#include <env/ti/ti_common.env>
+#include <env/ti/mmc.env>
+
+name_kern=Image
+console=ttyS2,115200n8
+args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02800000
+ ${mtdparts}
+run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}
+
+boot_targets=mmc1 mmc0 pxe dhcp
+boot=mmc
+mmcdev=1
+bootpart=1:2
+bootdir=/boot
+rd_spec=-
diff --git a/board/ti/am62px/board-cfg.yaml b/board/ti/am62px/board-cfg.yaml
new file mode 100644
index 00000000000..d539011aff9
--- /dev/null
+++ b/board/ti/am62px/board-cfg.yaml
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Board configuration for AM62Px SoCs
+#
+
+---
+
+board-cfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ control:
+ subhdr:
+ magic: 0xC1D3
+ size: 7
+ main_isolation_enable: 0x5A
+ main_isolation_hostid: 0x2
+ secproxy:
+ subhdr:
+ magic: 0x1207
+ size: 7
+ scaling_factor: 0x1
+ scaling_profile: 0x1
+ disable_main_nav_secure_proxy: 0
+ msmc:
+ subhdr:
+ magic: 0xA5C3
+ size: 5
+ msmc_cache_size: 0x10
+ debug_cfg:
+ subhdr:
+ magic: 0x020C
+ size: 8
+ trace_dst_enables: 0x00
+ trace_src_enables: 0x00
diff --git a/board/ti/am62px/evm.c b/board/ti/am62px/evm.c
new file mode 100644
index 00000000000..97a95ce8cc2
--- /dev/null
+++ b/board/ti/am62px/evm.c
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Board specific initialization for AM62Px platforms
+ *
+ * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+ *
+ */
+
+#include <asm/arch/hardware.h>
+#include <asm/io.h>
+#include <dm/uclass.h>
+#include <env.h>
+#include <fdt_support.h>
+#include <spl.h>
+
+int board_init(void)
+{
+ return 0;
+}
+
+int dram_init(void)
+{
+ return fdtdec_setup_mem_size_base();
+}
+
+int dram_init_banksize(void)
+{
+ return fdtdec_setup_memory_banksize();
+}
diff --git a/board/ti/am62px/pm-cfg.yaml b/board/ti/am62px/pm-cfg.yaml
new file mode 100644
index 00000000000..3ff27ce702c
--- /dev/null
+++ b/board/ti/am62px/pm-cfg.yaml
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Power management configuration for AM62Px
+#
+#
+---
+pm-cfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
diff --git a/board/ti/am62px/rm-cfg.yaml b/board/ti/am62px/rm-cfg.yaml
new file mode 100644
index 00000000000..caa2f7a5a83
--- /dev/null
+++ b/board/ti/am62px/rm-cfg.yaml
@@ -0,0 +1,987 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Resource management configuration for AM62P
+#
+
+---
+
+rm-cfg:
+ rm_boardcfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ host_cfg:
+ subhdr:
+ magic: 0x4C41
+ size: 356
+ host_cfg_entries:
+ - # 1
+ host_id: 12
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 2
+ host_id: 30
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 3
+ host_id: 36
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 4
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 5
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 6
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 7
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 8
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 9
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 10
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 11
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 12
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 13
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 14
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 15
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 16
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 17
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 18
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 19
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 20
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 21
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 22
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 23
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 24
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 25
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 26
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 27
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 28
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 29
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 30
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 31
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 32
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ resasg:
+ subhdr:
+ magic: 0x7B25
+ size: 8
+ resasg_entries_size: 984
+ reserved: 0
+ resasg_entries:
+ -
+ start_resource: 0
+ num_resource: 16
+ type: 192
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 34
+ num_resource: 2
+ type: 192
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 2
+ type: 320
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 2
+ type: 320
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 2
+ type: 320
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 4
+ type: 320
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 26
+ type: 384
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 50176
+ num_resource: 164
+ type: 1666
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 1667
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 18
+ type: 1677
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 6
+ type: 1677
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 6
+ type: 1677
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 2
+ type: 1677
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 6
+ type: 1677
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 18
+ type: 1678
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 75
+ num_resource: 5
+ type: 1678
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 75
+ num_resource: 5
+ type: 1678
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 80
+ num_resource: 2
+ type: 1678
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 12
+ type: 1679
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 6
+ type: 1679
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 6
+ type: 1679
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 50
+ num_resource: 2
+ type: 1679
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 5
+ type: 1679
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 18
+ type: 1696
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 6
+ type: 1696
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 6
+ type: 1696
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 2
+ type: 1696
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 6
+ type: 1696
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 18
+ type: 1697
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 5
+ type: 1697
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 5
+ type: 1697
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 23
+ num_resource: 2
+ type: 1697
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 12
+ type: 1698
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 6
+ type: 1698
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 6
+ type: 1698
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 2
+ type: 1698
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 5
+ type: 1698
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 35
+ type: 1802
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 45
+ num_resource: 35
+ type: 1802
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 45
+ num_resource: 35
+ type: 1802
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 168
+ num_resource: 8
+ type: 1802
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 512
+ type: 1805
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 526
+ num_resource: 256
+ type: 1805
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 526
+ num_resource: 256
+ type: 1805
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 782
+ num_resource: 128
+ type: 1805
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 910
+ num_resource: 626
+ type: 1805
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4096
+ num_resource: 29
+ type: 1807
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4608
+ num_resource: 99
+ type: 1808
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 5120
+ num_resource: 24
+ type: 1809
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 5632
+ num_resource: 51
+ type: 1810
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 6144
+ num_resource: 51
+ type: 1811
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 8192
+ num_resource: 32
+ type: 1812
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 8704
+ num_resource: 32
+ type: 1813
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 9216
+ num_resource: 32
+ type: 1814
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 9728
+ num_resource: 25
+ type: 1815
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 10240
+ num_resource: 25
+ type: 1816
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 10752
+ num_resource: 25
+ type: 1817
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 11264
+ num_resource: 25
+ type: 1818
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 11776
+ num_resource: 25
+ type: 1819
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 12288
+ num_resource: 25
+ type: 1820
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 1923
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 10
+ type: 1936
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1936
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1936
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 1936
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 3
+ type: 1936
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 64
+ type: 1937
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 64
+ type: 1937
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 83
+ num_resource: 8
+ type: 1938
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 91
+ num_resource: 8
+ type: 1939
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 99
+ num_resource: 10
+ type: 1942
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 109
+ num_resource: 3
+ type: 1942
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 109
+ num_resource: 3
+ type: 1942
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 112
+ num_resource: 3
+ type: 1942
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 3
+ type: 1942
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 118
+ num_resource: 16
+ type: 1943
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 118
+ num_resource: 16
+ type: 1943
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 134
+ num_resource: 8
+ type: 1944
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 134
+ num_resource: 8
+ type: 1945
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 142
+ num_resource: 8
+ type: 1946
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 142
+ num_resource: 8
+ type: 1947
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 10
+ type: 1955
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1955
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1955
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 1955
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 3
+ type: 1955
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 8
+ type: 1956
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 8
+ type: 1956
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 1
+ type: 1957
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 28
+ num_resource: 1
+ type: 1958
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 10
+ type: 1961
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1961
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1961
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 1961
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 3
+ type: 1961
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 10
+ type: 1962
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1962
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1962
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 1962
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 3
+ type: 1962
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 1963
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 1963
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 16
+ type: 1964
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 16
+ type: 1964
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 1
+ type: 1965
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 8
+ type: 1966
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 21
+ num_resource: 1
+ type: 1967
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 8
+ type: 1968
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 1
+ type: 1969
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 8
+ type: 1970
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 23
+ num_resource: 1
+ type: 1971
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 8
+ type: 1972
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 2112
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 2
+ type: 2122
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 51200
+ num_resource: 12
+ type: 12738
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 12739
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 6
+ type: 12750
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 6
+ type: 12769
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 8
+ type: 12810
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 12288
+ num_resource: 128
+ type: 12813
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3072
+ num_resource: 6
+ type: 12826
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 3584
+ num_resource: 6
+ type: 12827
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4096
+ num_resource: 6
+ type: 12828
+ host_id: 128
+ reserved: 0
diff --git a/board/ti/am62px/sec-cfg.yaml b/board/ti/am62px/sec-cfg.yaml
new file mode 100644
index 00000000000..46be354972a
--- /dev/null
+++ b/board/ti/am62px/sec-cfg.yaml
@@ -0,0 +1,378 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Security configuration for AM62Px
+#
+---
+sec-cfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ processor_acl_list:
+ subhdr:
+ magic: 0xF1EA
+ size: 164
+ proc_acl_entries:
+ - # 1
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 2
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 3
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 4
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 5
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 6
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 7
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 8
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 9
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 10
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 11
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 12
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 13
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 14
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 15
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 16
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 17
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 18
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 19
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 20
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 21
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 22
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 23
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 24
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 25
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 26
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 27
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 28
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 29
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 30
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 31
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 32
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ host_hierarchy:
+ subhdr:
+ magic: 0x8D27
+ size: 68
+ host_hierarchy_entries:
+ - # 1
+ host_id: 0
+ supervisor_host_id: 0
+ - # 2
+ host_id: 0
+ supervisor_host_id: 0
+ - # 3
+ host_id: 0
+ supervisor_host_id: 0
+ - # 4
+ host_id: 0
+ supervisor_host_id: 0
+ - # 5
+ host_id: 0
+ supervisor_host_id: 0
+ - # 6
+ host_id: 0
+ supervisor_host_id: 0
+ - # 7
+ host_id: 0
+ supervisor_host_id: 0
+ - # 8
+ host_id: 0
+ supervisor_host_id: 0
+ - # 9
+ host_id: 0
+ supervisor_host_id: 0
+ - # 10
+ host_id: 0
+ supervisor_host_id: 0
+ - # 11
+ host_id: 0
+ supervisor_host_id: 0
+ - # 12
+ host_id: 0
+ supervisor_host_id: 0
+ - # 13
+ host_id: 0
+ supervisor_host_id: 0
+ - # 14
+ host_id: 0
+ supervisor_host_id: 0
+ - # 15
+ host_id: 0
+ supervisor_host_id: 0
+ - # 16
+ host_id: 0
+ supervisor_host_id: 0
+ - # 17
+ host_id: 0
+ supervisor_host_id: 0
+ - # 18
+ host_id: 0
+ supervisor_host_id: 0
+ - # 19
+ host_id: 0
+ supervisor_host_id: 0
+ - # 20
+ host_id: 0
+ supervisor_host_id: 0
+ - # 21
+ host_id: 0
+ supervisor_host_id: 0
+ - # 22
+ host_id: 0
+ supervisor_host_id: 0
+ - # 23
+ host_id: 0
+ supervisor_host_id: 0
+ - # 24
+ host_id: 0
+ supervisor_host_id: 0
+ - # 25
+ host_id: 0
+ supervisor_host_id: 0
+ - # 26
+ host_id: 0
+ supervisor_host_id: 0
+ - # 27
+ host_id: 0
+ supervisor_host_id: 0
+ - # 28
+ host_id: 0
+ supervisor_host_id: 0
+ - # 29
+ host_id: 0
+ supervisor_host_id: 0
+ - # 30
+ host_id: 0
+ supervisor_host_id: 0
+ - # 31
+ host_id: 0
+ supervisor_host_id: 0
+ - # 32
+ host_id: 0
+ supervisor_host_id: 0
+ otp_config:
+ subhdr:
+ magic: 0x4081
+ size: 69
+ write_host_id: 0
+ otp_entry:
+ - # 1
+ host_id: 0
+ host_perms: 0
+ - # 2
+ host_id: 0
+ host_perms: 0
+ - # 3
+ host_id: 0
+ host_perms: 0
+ - # 4
+ host_id: 0
+ host_perms: 0
+ - # 5
+ host_id: 0
+ host_perms: 0
+ - # 6
+ host_id: 0
+ host_perms: 0
+ - # 7
+ host_id: 0
+ host_perms: 0
+ - # 8
+ host_id: 0
+ host_perms: 0
+ - # 9
+ host_id: 0
+ host_perms: 0
+ - # 10
+ host_id: 0
+ host_perms: 0
+ - # 11
+ host_id: 0
+ host_perms: 0
+ - # 12
+ host_id: 0
+ host_perms: 0
+ - # 13
+ host_id: 0
+ host_perms: 0
+ - # 14
+ host_id: 0
+ host_perms: 0
+ - # 15
+ host_id: 0
+ host_perms: 0
+ - # 16
+ host_id: 0
+ host_perms: 0
+ - # 17
+ host_id: 0
+ host_perms: 0
+ - # 18
+ host_id: 0
+ host_perms: 0
+ - # 19
+ host_id: 0
+ host_perms: 0
+ - # 20
+ host_id: 0
+ host_perms: 0
+ - # 21
+ host_id: 0
+ host_perms: 0
+ - # 22
+ host_id: 0
+ host_perms: 0
+ - # 23
+ host_id: 0
+ host_perms: 0
+ - # 24
+ host_id: 0
+ host_perms: 0
+ - # 25
+ host_id: 0
+ host_perms: 0
+ - # 26
+ host_id: 0
+ host_perms: 0
+ - # 27
+ host_id: 0
+ host_perms: 0
+ - # 28
+ host_id: 0
+ host_perms: 0
+ - # 29
+ host_id: 0
+ host_perms: 0
+ - # 30
+ host_id: 0
+ host_perms: 0
+ - # 31
+ host_id: 0
+ host_perms: 0
+ - # 32
+ host_id: 0
+ host_perms: 0
+ dkek_config:
+ subhdr:
+ magic: 0x5170
+ size: 12
+ allowed_hosts: [128, 0, 0, 0]
+ allow_dkek_export_tisci: 0x5A
+ rsvd: [0, 0, 0]
+ sa2ul_cfg:
+ subhdr:
+ magic: 0x23BE
+ size: 0
+ auth_resource_owner: 0
+ enable_saul_psil_global_config_writes: 0x5A
+ rsvd: [0, 0]
+ sec_dbg_config:
+ subhdr:
+ magic: 0x42AF
+ size: 16
+ allow_jtag_unlock: 0x5A
+ allow_wildcard_unlock: 0x5A
+ allowed_debug_level_rsvd: 0
+ rsvd: 0
+ min_cert_rev: 0x0
+ jtag_unlock_hosts: [0, 0, 0, 0]
+ sec_handover_cfg:
+ subhdr:
+ magic: 0x608F
+ size: 10
+ handover_msg_sender: 0
+ handover_to_host_id: 0
+ rsvd: [0, 0, 0, 0]
diff --git a/board/ti/am62px/tifs-rm-cfg.yaml b/board/ti/am62px/tifs-rm-cfg.yaml
new file mode 100644
index 00000000000..a80a2750467
--- /dev/null
+++ b/board/ti/am62px/tifs-rm-cfg.yaml
@@ -0,0 +1,879 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Resource management configuration for AM62P
+#
+
+---
+
+tifs-rm-cfg:
+ rm_boardcfg:
+ rev:
+ boardcfg_abi_maj : 0x0
+ boardcfg_abi_min : 0x1
+ host_cfg:
+ subhdr:
+ magic: 0x4C41
+ size : 356
+ host_cfg_entries:
+ - #1
+ host_id: 12
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - #2
+ host_id: 30
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - #3
+ host_id: 36
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - #4
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #5
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #6
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #7
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #8
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #9
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #10
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #11
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #12
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #13
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #14
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #15
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #16
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #17
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #18
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #19
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #20
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #21
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #22
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #23
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #24
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #25
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #26
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #27
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #28
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #29
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #30
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #31
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - #32
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ resasg:
+ subhdr:
+ magic: 0x7B25
+ size: 8
+ resasg_entries_size: 840
+ reserved: 0
+ resasg_entries:
+ -
+ start_resource: 0
+ num_resource: 18
+ type: 1677
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 6
+ type: 1677
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 6
+ type: 1677
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 2
+ type: 1677
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 6
+ type: 1677
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 18
+ type: 1678
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 75
+ num_resource: 5
+ type: 1678
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 75
+ num_resource: 5
+ type: 1678
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 80
+ num_resource: 2
+ type: 1678
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 12
+ type: 1679
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 6
+ type: 1679
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 6
+ type: 1679
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 50
+ num_resource: 2
+ type: 1679
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 5
+ type: 1679
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 18
+ type: 1696
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 6
+ type: 1696
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 6
+ type: 1696
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 2
+ type: 1696
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 6
+ type: 1696
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 18
+ type: 1697
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 5
+ type: 1697
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 5
+ type: 1697
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 23
+ num_resource: 2
+ type: 1697
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 12
+ type: 1698
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 6
+ type: 1698
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 6
+ type: 1698
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 2
+ type: 1698
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 5
+ type: 1698
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 35
+ type: 1802
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 36
+ type: 1802
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 36
+ type: 1802
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 168
+ num_resource: 8
+ type: 1802
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 4096
+ num_resource: 29
+ type: 1807
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4608
+ num_resource: 99
+ type: 1808
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 5120
+ num_resource: 24
+ type: 1809
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 5632
+ num_resource: 51
+ type: 1810
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 6144
+ num_resource: 51
+ type: 1811
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 8192
+ num_resource: 32
+ type: 1812
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 8704
+ num_resource: 32
+ type: 1813
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 9216
+ num_resource: 32
+ type: 1814
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 9728
+ num_resource: 25
+ type: 1815
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 10240
+ num_resource: 25
+ type: 1816
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 10752
+ num_resource: 25
+ type: 1817
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 11264
+ num_resource: 25
+ type: 1818
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 11776
+ num_resource: 25
+ type: 1819
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 12288
+ num_resource: 25
+ type: 1820
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 10
+ type: 1936
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1936
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1936
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 1936
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 3
+ type: 1936
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 64
+ type: 1937
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 64
+ type: 1937
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 83
+ num_resource: 8
+ type: 1938
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 91
+ num_resource: 8
+ type: 1939
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 99
+ num_resource: 10
+ type: 1942
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 109
+ num_resource: 3
+ type: 1942
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 109
+ num_resource: 3
+ type: 1942
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 112
+ num_resource: 3
+ type: 1942
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 3
+ type: 1942
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 118
+ num_resource: 16
+ type: 1943
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 118
+ num_resource: 16
+ type: 1943
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 134
+ num_resource: 8
+ type: 1944
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 134
+ num_resource: 8
+ type: 1945
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 142
+ num_resource: 8
+ type: 1946
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 142
+ num_resource: 8
+ type: 1947
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 10
+ type: 1955
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1955
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1955
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 1955
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 3
+ type: 1955
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 8
+ type: 1956
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 8
+ type: 1956
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 1
+ type: 1957
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 28
+ num_resource: 1
+ type: 1958
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 10
+ type: 1961
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1961
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1961
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 1961
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 3
+ type: 1961
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 10
+ type: 1962
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1962
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 3
+ type: 1962
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 1962
+ host_id: 30
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 3
+ type: 1962
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 1963
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 1963
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 16
+ type: 1964
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 16
+ type: 1964
+ host_id: 36
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 1
+ type: 1965
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 8
+ type: 1966
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 21
+ num_resource: 1
+ type: 1967
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 8
+ type: 1968
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 1
+ type: 1969
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 8
+ type: 1970
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 23
+ num_resource: 1
+ type: 1971
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 8
+ type: 1972
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 2112
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 2
+ type: 2122
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 6
+ type: 12750
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 6
+ type: 12769
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 8
+ type: 12810
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3072
+ num_resource: 6
+ type: 12826
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 3584
+ num_resource: 6
+ type: 12827
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4096
+ num_resource: 6
+ type: 12828
+ host_id: 128
+ reserved: 0
diff --git a/board/ti/am62x/rm-cfg.yaml b/board/ti/am62x/rm-cfg.yaml
index 725f7c83f0d..26d99b03b80 100644
--- a/board/ti/am62x/rm-cfg.yaml
+++ b/board/ti/am62x/rm-cfg.yaml
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0+
-# Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+# Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/
#
# Resource management configuration for AM62X
#
@@ -513,13 +513,13 @@ rm-cfg:
reserved: 0
-
start_resource: 44
- num_resource: 36
+ num_resource: 35
type: 1802
host_id: 35
reserved: 0
-
start_resource: 44
- num_resource: 36
+ num_resource: 35
type: 1802
host_id: 36
reserved: 0
@@ -555,7 +555,7 @@ rm-cfg:
reserved: 0
-
start_resource: 909
- num_resource: 627
+ num_resource: 626
type: 1805
host_id: 128
reserved: 0
diff --git a/board/ti/j784s4/Kconfig b/board/ti/j784s4/Kconfig
new file mode 100644
index 00000000000..490c7be66b3
--- /dev/null
+++ b/board/ti/j784s4/Kconfig
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+# Hari Nagalla <hnagalla@ti.com>
+
+if TARGET_J784S4_A72_EVM
+
+config SYS_BOARD
+ default "j784s4"
+
+config SYS_VENDOR
+ default "ti"
+
+config SYS_CONFIG_NAME
+ default "j784s4_evm"
+
+source "board/ti/common/Kconfig"
+
+endif
+
+if TARGET_J784S4_R5_EVM
+
+config SYS_BOARD
+ default "j784s4"
+
+config SYS_VENDOR
+ default "ti"
+
+config SYS_CONFIG_NAME
+ default "j784s4_evm"
+
+config SPL_LDSCRIPT
+ default "arch/arm/mach-omap2/u-boot-spl.lds"
+
+source "board/ti/common/Kconfig"
+
+endif
diff --git a/board/ti/j784s4/MAINTAINERS b/board/ti/j784s4/MAINTAINERS
new file mode 100644
index 00000000000..b7605ff335b
--- /dev/null
+++ b/board/ti/j784s4/MAINTAINERS
@@ -0,0 +1,21 @@
+J784S4 EVM BOARD
+M: Apurva Nandan <a-nandan@ti.com>
+S: Maintained
+F: board/ti/j784s4
+F: arch/arm/mach-k3/j784s4
+F: include/configs/j784s4_evm.h
+F: configs/j784s4_evm_r5_defconfig
+F: configs/j784s4_evm_a72_defconfig
+F: arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
+F: arch/arm/dts/k3-j784s4-r5-evm.dts
+F: arch/arm/dts/k3-j784s4-ddr.dtsi
+F: arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi
+F: doc/board/ti/j784s4_evm.rst
+
+AM69 SK BOARD
+M: Apurva Nandan <a-nandan@ti.com>
+S: Maintained
+F: arch/arm/dts/k3-am69-sk-u-boot.dtsi
+F: arch/arm/dts/k3-am69-r5-sk.dts
+F: configs/am69_sk_r5_defconfig
+F: configs/am69_sk_a72_defconfig
diff --git a/board/ti/j784s4/Makefile b/board/ti/j784s4/Makefile
new file mode 100644
index 00000000000..60161a8b5c6
--- /dev/null
+++ b/board/ti/j784s4/Makefile
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+# Hari Nagalla <hnagalla@ti.com>
+#
+
+obj-y += evm.o
diff --git a/board/ti/j784s4/board-cfg.yaml b/board/ti/j784s4/board-cfg.yaml
new file mode 100644
index 00000000000..38958767f4c
--- /dev/null
+++ b/board/ti/j784s4/board-cfg.yaml
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Board configuration for J784S4
+#
+
+---
+
+board-cfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ control:
+ subhdr:
+ magic: 0xC1D3
+ size: 7
+ main_isolation_enable: 0x5A
+ main_isolation_hostid: 0x2
+ secproxy:
+ subhdr:
+ magic: 0x1207
+ size: 7
+ scaling_factor: 0x1
+ scaling_profile: 0x1
+ disable_main_nav_secure_proxy: 0
+ msmc:
+ subhdr:
+ magic: 0xA5C3
+ size: 5
+ msmc_cache_size: 0x8
+ debug_cfg:
+ subhdr:
+ magic: 0x020C
+ size: 8
+ trace_dst_enables: 0x00
+ trace_src_enables: 0x00
diff --git a/board/ti/j784s4/evm.c b/board/ti/j784s4/evm.c
new file mode 100644
index 00000000000..aed0ea5b949
--- /dev/null
+++ b/board/ti/j784s4/evm.c
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Board specific initialization for J784S4 EVM
+ *
+ * Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+ * Hari Nagalla <hnagalla@ti.com>
+ *
+ */
+
+#include <init.h>
+#include <spl.h>
+#include "../common/fdt_ops.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_init(void)
+{
+ return 0;
+}
+
+int dram_init(void)
+{
+ return fdtdec_setup_mem_size_base();
+}
+
+int dram_init_banksize(void)
+{
+ return fdtdec_setup_memory_banksize();
+}
+
+#ifdef CONFIG_BOARD_LATE_INIT
+int board_late_init(void)
+{
+ ti_set_fdt_env(NULL, NULL);
+ return 0;
+}
+#endif
+
+void spl_board_init(void)
+{
+}
diff --git a/board/ti/j784s4/j784s4.env b/board/ti/j784s4/j784s4.env
new file mode 100644
index 00000000000..7e54ca042ef
--- /dev/null
+++ b/board/ti/j784s4/j784s4.env
@@ -0,0 +1,17 @@
+#include <env/ti/ti_common.env>
+#include <env/ti/mmc.env>
+#include <env/ti/ufs.env>
+#include <env/ti/k3_dfu.env>
+
+name_kern=Image
+console=ttyS2,115200n8
+args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02880000
+ ${mtdparts}
+run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}
+
+boot_targets=mmc1 mmc0 usb pxe dhcp
+boot=mmc
+mmcdev=1
+bootpart=1:2
+bootdir=/boot
+rd_spec=-
diff --git a/board/ti/j784s4/pm-cfg.yaml b/board/ti/j784s4/pm-cfg.yaml
new file mode 100644
index 00000000000..a36b8609899
--- /dev/null
+++ b/board/ti/j784s4/pm-cfg.yaml
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Power management configuration for J784S4
+#
+
+---
+
+pm-cfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
diff --git a/board/ti/j784s4/rm-cfg.yaml b/board/ti/j784s4/rm-cfg.yaml
new file mode 100644
index 00000000000..a448bd2e1e0
--- /dev/null
+++ b/board/ti/j784s4/rm-cfg.yaml
@@ -0,0 +1,3058 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Resource management configuration for J784S4
+#
+
+---
+
+rm-cfg:
+ rm_boardcfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ host_cfg:
+ subhdr:
+ magic: 0x4C41
+ size: 356
+ host_cfg_entries:
+ - # 1
+ host_id: 3
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 2
+ host_id: 5
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 3
+ host_id: 12
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 4
+ host_id: 13
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 5
+ host_id: 21
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 6
+ host_id: 23
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 7
+ host_id: 25
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 8
+ host_id: 27
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 9
+ host_id: 35
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 10
+ host_id: 37
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 11
+ host_id: 40
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 12
+ host_id: 42
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 13
+ host_id: 45
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 14
+ host_id: 47
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 15
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 16
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 17
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 18
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 19
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 20
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 21
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 22
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 23
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 24
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 25
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 26
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 27
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 28
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 29
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 30
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 31
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 32
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ resasg:
+ subhdr:
+ magic: 0x7B25
+ size: 8
+ resasg_entries_size: 3744
+ reserved: 0
+ resasg_entries:
+ -
+ start_resource: 0
+ num_resource: 4
+ type: 640
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 4
+ type: 640
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 4
+ type: 640
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 4
+ type: 640
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 4
+ type: 640
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 4
+ type: 640
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 4
+ type: 640
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 28
+ num_resource: 4
+ type: 640
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 12
+ type: 640
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 12
+ type: 640
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 16
+ type: 704
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 32
+ type: 11072
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 24
+ type: 11072
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 8
+ type: 11072
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 24
+ type: 11136
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 16
+ type: 11136
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 8
+ type: 11136
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 48
+ type: 11264
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 8
+ type: 11328
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 8
+ type: 11328
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 6
+ type: 11328
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 6
+ type: 11328
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 28
+ num_resource: 2
+ type: 11328
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 30
+ num_resource: 2
+ type: 11328
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 50176
+ num_resource: 96
+ type: 17986
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 17987
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 16
+ type: 17998
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 16
+ type: 17998
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 8
+ type: 17999
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 8
+ type: 17999
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 16
+ type: 18017
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 16
+ type: 18017
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 8
+ type: 18018
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 8
+ type: 18018
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 80
+ type: 18112
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 96
+ num_resource: 14
+ type: 18112
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 110
+ num_resource: 21
+ type: 18112
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 131
+ num_resource: 21
+ type: 18112
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 152
+ num_resource: 12
+ type: 18112
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 164
+ num_resource: 12
+ type: 18112
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 196
+ num_resource: 28
+ type: 18112
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 228
+ num_resource: 28
+ type: 18112
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 260
+ num_resource: 28
+ type: 18112
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 292
+ num_resource: 28
+ type: 18112
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 324
+ num_resource: 28
+ type: 18112
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 356
+ num_resource: 28
+ type: 18112
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 400
+ num_resource: 4
+ type: 18112
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 404
+ num_resource: 4
+ type: 18112
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 64
+ type: 19850
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 20480
+ num_resource: 1024
+ type: 19853
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 64
+ type: 19914
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 22528
+ num_resource: 1024
+ type: 19917
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 4
+ type: 19968
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 4
+ type: 19968
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 4
+ type: 19968
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 4
+ type: 19968
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 4
+ type: 19968
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 4
+ type: 19968
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 12
+ type: 19968
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 36
+ num_resource: 4
+ type: 19968
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 4
+ type: 19968
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 4
+ type: 19968
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 4
+ type: 19968
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 4
+ type: 19968
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 4
+ type: 19968
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 60
+ num_resource: 4
+ type: 19968
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20160
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 423
+ num_resource: 10
+ type: 20161
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 433
+ num_resource: 20
+ type: 20161
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 453
+ num_resource: 16
+ type: 20161
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 469
+ num_resource: 13
+ type: 20161
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 482
+ num_resource: 128
+ type: 20161
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 610
+ num_resource: 46
+ type: 20161
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 656
+ num_resource: 10
+ type: 20161
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 666
+ num_resource: 20
+ type: 20161
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 686
+ num_resource: 64
+ type: 20161
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 750
+ num_resource: 10
+ type: 20161
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 760
+ num_resource: 4
+ type: 20161
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 764
+ num_resource: 4
+ type: 20161
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 878
+ num_resource: 128
+ type: 20161
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 1006
+ num_resource: 10
+ type: 20161
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 345
+ num_resource: 6
+ type: 20162
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 351
+ num_resource: 0
+ type: 20162
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 351
+ num_resource: 1
+ type: 20162
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 352
+ num_resource: 1
+ type: 20162
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 353
+ num_resource: 1
+ type: 20162
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 354
+ num_resource: 1
+ type: 20162
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 355
+ num_resource: 4
+ type: 20162
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 359
+ num_resource: 1
+ type: 20162
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 360
+ num_resource: 1
+ type: 20162
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 361
+ num_resource: 1
+ type: 20162
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 362
+ num_resource: 3
+ type: 20162
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 365
+ num_resource: 1
+ type: 20162
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 366
+ num_resource: 1
+ type: 20162
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 367
+ num_resource: 1
+ type: 20162
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 368
+ num_resource: 25
+ type: 20162
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 393
+ num_resource: 1
+ type: 20162
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 394
+ num_resource: 2
+ type: 20162
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 396
+ num_resource: 2
+ type: 20162
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 398
+ num_resource: 2
+ type: 20162
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 400
+ num_resource: 2
+ type: 20162
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 402
+ num_resource: 12
+ type: 20162
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 414
+ num_resource: 1
+ type: 20162
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 415
+ num_resource: 2
+ type: 20162
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 417
+ num_resource: 2
+ type: 20162
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 419
+ num_resource: 2
+ type: 20162
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 421
+ num_resource: 2
+ type: 20162
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 6
+ type: 20163
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 0
+ type: 20163
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 20163
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20163
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20163
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 20163
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 4
+ type: 20163
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 1
+ type: 20163
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 20163
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 1
+ type: 20163
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 21
+ num_resource: 3
+ type: 20163
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 1
+ type: 20163
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 1
+ type: 20163
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 1
+ type: 20163
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 25
+ type: 20163
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 1
+ type: 20163
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 2
+ type: 20163
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 55
+ num_resource: 2
+ type: 20163
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 2
+ type: 20163
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 59
+ num_resource: 2
+ type: 20163
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 61
+ num_resource: 12
+ type: 20163
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 73
+ num_resource: 4
+ type: 20163
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 77
+ num_resource: 2
+ type: 20163
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 79
+ num_resource: 2
+ type: 20163
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 81
+ num_resource: 2
+ type: 20163
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 83
+ num_resource: 2
+ type: 20163
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 85
+ num_resource: 8
+ type: 20164
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 93
+ num_resource: 8
+ type: 20164
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 101
+ num_resource: 6
+ type: 20164
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 107
+ num_resource: 4
+ type: 20164
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 111
+ num_resource: 2
+ type: 20164
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 113
+ num_resource: 2
+ type: 20164
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 0
+ type: 20164
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 2
+ type: 20164
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 117
+ num_resource: 96
+ type: 20164
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 213
+ num_resource: 96
+ type: 20164
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 309
+ num_resource: 32
+ type: 20164
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 343
+ num_resource: 1
+ type: 20165
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 344
+ num_resource: 1
+ type: 20165
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 341
+ num_resource: 1
+ type: 20166
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 342
+ num_resource: 1
+ type: 20166
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 1
+ type: 20167
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 1
+ type: 20167
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20168
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 1
+ num_resource: 1
+ type: 20168
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 5
+ type: 20170
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 20170
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 3
+ type: 20171
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 2
+ type: 20171
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 3
+ type: 20171
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 3
+ type: 20171
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20171
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20171
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 6
+ type: 20171
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 3
+ type: 20171
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 3
+ type: 20171
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 3
+ type: 20171
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 28
+ num_resource: 1
+ type: 20171
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 1
+ type: 20171
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 30
+ num_resource: 1
+ type: 20171
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 31
+ num_resource: 1
+ type: 20171
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 82
+ num_resource: 16
+ type: 20416
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 98
+ num_resource: 16
+ type: 20416
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 114
+ num_resource: 110
+ type: 20416
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20417
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 49152
+ num_resource: 1024
+ type: 20418
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20419
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 6
+ type: 20426
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 0
+ type: 20426
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 20426
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20426
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20426
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 20426
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 4
+ type: 20426
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 1
+ type: 20426
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 20426
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 1
+ type: 20426
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 21
+ num_resource: 3
+ type: 20426
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 1
+ type: 20426
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 1
+ type: 20426
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 1
+ type: 20426
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 25
+ type: 20426
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 1
+ type: 20426
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 2
+ type: 20426
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 55
+ num_resource: 2
+ type: 20426
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 2
+ type: 20426
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 59
+ num_resource: 2
+ type: 20426
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 61
+ num_resource: 12
+ type: 20426
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 73
+ num_resource: 1
+ type: 20426
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 74
+ num_resource: 2
+ type: 20426
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 76
+ num_resource: 2
+ type: 20426
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 78
+ num_resource: 2
+ type: 20426
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 80
+ num_resource: 2
+ type: 20426
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 1
+ type: 20427
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 1
+ type: 20427
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20428
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 1
+ num_resource: 1
+ type: 20428
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 6
+ type: 20429
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 0
+ type: 20429
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 20429
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20429
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20429
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 20429
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 4
+ type: 20429
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 1
+ type: 20429
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 20429
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 1
+ type: 20429
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 21
+ num_resource: 3
+ type: 20429
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 1
+ type: 20429
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 1
+ type: 20429
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 1
+ type: 20429
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 25
+ type: 20429
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 1
+ type: 20429
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 2
+ type: 20429
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 55
+ num_resource: 2
+ type: 20429
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 2
+ type: 20429
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 59
+ num_resource: 2
+ type: 20429
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 61
+ num_resource: 12
+ type: 20429
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 73
+ num_resource: 4
+ type: 20429
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 77
+ num_resource: 2
+ type: 20429
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 79
+ num_resource: 2
+ type: 20429
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 81
+ num_resource: 2
+ type: 20429
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 83
+ num_resource: 2
+ type: 20429
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 85
+ num_resource: 8
+ type: 20430
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 93
+ num_resource: 8
+ type: 20430
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 101
+ num_resource: 6
+ type: 20430
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 107
+ num_resource: 4
+ type: 20430
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 111
+ num_resource: 2
+ type: 20430
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 113
+ num_resource: 2
+ type: 20430
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 0
+ type: 20430
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 2
+ type: 20430
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 117
+ num_resource: 96
+ type: 20430
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 213
+ num_resource: 96
+ type: 20430
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 309
+ num_resource: 32
+ type: 20430
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 1
+ type: 20431
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 1
+ type: 20431
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20432
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 1
+ num_resource: 1
+ type: 20432
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 56
+ type: 20554
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 112
+ num_resource: 24
+ type: 20554
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 136
+ num_resource: 12
+ type: 20554
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 148
+ num_resource: 12
+ type: 20554
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 160
+ num_resource: 10
+ type: 20554
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 170
+ num_resource: 10
+ type: 20554
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 180
+ num_resource: 28
+ type: 20554
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 208
+ num_resource: 8
+ type: 20554
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 216
+ num_resource: 12
+ type: 20554
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 228
+ num_resource: 8
+ type: 20554
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 236
+ num_resource: 10
+ type: 20554
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 246
+ num_resource: 10
+ type: 20554
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 1024
+ type: 20557
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 1080
+ num_resource: 512
+ type: 20557
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 1592
+ num_resource: 256
+ type: 20557
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 1848
+ num_resource: 256
+ type: 20557
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 2104
+ num_resource: 256
+ type: 20557
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 2360
+ num_resource: 256
+ type: 20557
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 2616
+ num_resource: 512
+ type: 20557
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 3128
+ num_resource: 256
+ type: 20557
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 3384
+ num_resource: 256
+ type: 20557
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 3640
+ num_resource: 256
+ type: 20557
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 3896
+ num_resource: 256
+ type: 20557
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 4152
+ num_resource: 256
+ type: 20557
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 4408
+ num_resource: 32
+ type: 20557
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 4440
+ num_resource: 32
+ type: 20557
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 4472
+ num_resource: 136
+ type: 20557
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 1536
+ num_resource: 16
+ type: 20559
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 2048
+ num_resource: 16
+ type: 20560
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 2560
+ num_resource: 16
+ type: 20561
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 3072
+ num_resource: 32
+ type: 20562
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 3584
+ num_resource: 32
+ type: 20563
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4096
+ num_resource: 32
+ type: 20564
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 12
+ type: 20736
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 36
+ num_resource: 20
+ type: 20736
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 1
+ num_resource: 2
+ type: 20928
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 4
+ type: 20928
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 4
+ type: 20928
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 4
+ type: 20928
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 4
+ type: 20928
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 4
+ type: 20928
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 23
+ num_resource: 16
+ type: 20928
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 39
+ num_resource: 4
+ type: 20928
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 4
+ type: 20928
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 47
+ num_resource: 4
+ type: 20928
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 51
+ num_resource: 3
+ type: 20928
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 54
+ num_resource: 2
+ type: 20928
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 4
+ type: 20928
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 60
+ num_resource: 4
+ type: 20928
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20992
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 96
+ num_resource: 20
+ type: 20993
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 116
+ num_resource: 8
+ type: 20993
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 124
+ num_resource: 8
+ type: 20993
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 132
+ num_resource: 8
+ type: 20993
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 140
+ num_resource: 8
+ type: 20993
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 148
+ num_resource: 8
+ type: 20993
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 156
+ num_resource: 16
+ type: 20993
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 172
+ num_resource: 8
+ type: 20993
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 180
+ num_resource: 8
+ type: 20993
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 188
+ num_resource: 8
+ type: 20993
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 196
+ num_resource: 8
+ type: 20993
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 204
+ num_resource: 4
+ type: 20993
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 208
+ num_resource: 32
+ type: 20993
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 240
+ num_resource: 12
+ type: 20993
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 50
+ num_resource: 3
+ type: 20994
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 0
+ type: 20994
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 1
+ type: 20994
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 54
+ num_resource: 1
+ type: 20994
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 55
+ num_resource: 1
+ type: 20994
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 1
+ type: 20994
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 1
+ type: 20994
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 58
+ num_resource: 1
+ type: 20994
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 59
+ num_resource: 1
+ type: 20994
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 60
+ num_resource: 1
+ type: 20994
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 61
+ num_resource: 1
+ type: 20994
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 62
+ num_resource: 1
+ type: 20994
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 63
+ num_resource: 2
+ type: 20994
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 65
+ num_resource: 0
+ type: 20994
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 65
+ num_resource: 8
+ type: 20994
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 73
+ num_resource: 4
+ type: 20994
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 77
+ num_resource: 1
+ type: 20994
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 78
+ num_resource: 1
+ type: 20994
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 79
+ num_resource: 1
+ type: 20994
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 80
+ num_resource: 1
+ type: 20994
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 81
+ num_resource: 2
+ type: 20994
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 83
+ num_resource: 1
+ type: 20994
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 84
+ num_resource: 1
+ type: 20994
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 85
+ num_resource: 1
+ type: 20994
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 86
+ num_resource: 1
+ type: 20994
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 87
+ num_resource: 1
+ type: 20994
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 88
+ num_resource: 3
+ type: 20994
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 91
+ num_resource: 2
+ type: 20994
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 3
+ type: 20995
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 0
+ type: 20995
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 20995
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 1
+ type: 20995
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 1
+ type: 20995
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 1
+ type: 20995
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 1
+ type: 20995
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 20995
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20995
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20995
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 20995
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 1
+ type: 20995
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 2
+ type: 20995
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 0
+ type: 20995
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 8
+ type: 20995
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 4
+ type: 20995
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 1
+ type: 20995
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 30
+ num_resource: 1
+ type: 20995
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 31
+ num_resource: 1
+ type: 20995
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 1
+ type: 20995
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 33
+ num_resource: 2
+ type: 20995
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 1
+ type: 20995
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 36
+ num_resource: 1
+ type: 20995
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 37
+ num_resource: 1
+ type: 20995
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 38
+ num_resource: 1
+ type: 20995
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 39
+ num_resource: 1
+ type: 20995
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 3
+ type: 20995
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 2
+ type: 20995
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 45
+ num_resource: 1
+ type: 20995
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 0
+ type: 20997
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 2
+ type: 20997
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 0
+ type: 20999
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 2
+ type: 20999
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 5
+ type: 21002
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 21002
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 3
+ type: 21003
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 2
+ type: 21003
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 2
+ type: 21003
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 2
+ type: 21003
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 2
+ type: 21003
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 2
+ type: 21003
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 21003
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 2
+ type: 21003
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 2
+ type: 21003
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 2
+ type: 21003
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 2
+ type: 21003
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 2
+ type: 21003
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 3
+ type: 21003
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 3
+ type: 21003
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 8
+ type: 21056
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 4
+ type: 21056
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 60
+ num_resource: 8
+ type: 21056
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 68
+ num_resource: 4
+ type: 21056
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 72
+ num_resource: 4
+ type: 21056
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 76
+ num_resource: 4
+ type: 21056
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 80
+ num_resource: 2
+ type: 21056
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 82
+ num_resource: 2
+ type: 21056
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 84
+ num_resource: 8
+ type: 21056
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 92
+ num_resource: 4
+ type: 21056
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 21057
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 56320
+ num_resource: 256
+ type: 21058
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 21059
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 3
+ type: 21066
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 0
+ type: 21066
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 21066
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 1
+ type: 21066
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 1
+ type: 21066
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 1
+ type: 21066
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 1
+ type: 21066
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 21066
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 21066
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 21066
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 21066
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 1
+ type: 21066
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 2
+ type: 21066
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 0
+ type: 21066
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 8
+ type: 21066
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 4
+ type: 21066
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 1
+ type: 21066
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 30
+ num_resource: 1
+ type: 21066
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 31
+ num_resource: 1
+ type: 21066
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 1
+ type: 21066
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 33
+ num_resource: 2
+ type: 21066
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 1
+ type: 21066
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 36
+ num_resource: 1
+ type: 21066
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 37
+ num_resource: 1
+ type: 21066
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 38
+ num_resource: 1
+ type: 21066
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 39
+ num_resource: 1
+ type: 21066
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 3
+ type: 21066
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 2
+ type: 21066
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 0
+ type: 21067
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 2
+ type: 21067
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 3
+ type: 21069
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 0
+ type: 21069
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 21069
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 1
+ type: 21069
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 1
+ type: 21069
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 1
+ type: 21069
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 1
+ type: 21069
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 21069
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 21069
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 21069
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 21069
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 1
+ type: 21069
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 2
+ type: 21069
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 0
+ type: 21069
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 8
+ type: 21069
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 4
+ type: 21069
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 1
+ type: 21069
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 30
+ num_resource: 1
+ type: 21069
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 31
+ num_resource: 1
+ type: 21069
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 1
+ type: 21069
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 33
+ num_resource: 2
+ type: 21069
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 1
+ type: 21069
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 36
+ num_resource: 1
+ type: 21069
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 37
+ num_resource: 1
+ type: 21069
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 38
+ num_resource: 1
+ type: 21069
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 39
+ num_resource: 1
+ type: 21069
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 3
+ type: 21069
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 2
+ type: 21069
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 45
+ num_resource: 1
+ type: 21069
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 0
+ type: 21071
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 2
+ type: 21071
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 32
+ type: 21194
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 54
+ num_resource: 64
+ type: 21194
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 118
+ num_resource: 4
+ type: 21194
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 122
+ num_resource: 134
+ type: 21194
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 16406
+ num_resource: 128
+ type: 21197
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 16534
+ num_resource: 256
+ type: 21197
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 16790
+ num_resource: 64
+ type: 21197
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 16854
+ num_resource: 1066
+ type: 21197
+ host_id: 128
+ reserved: 0
diff --git a/board/ti/j784s4/sec-cfg.yaml b/board/ti/j784s4/sec-cfg.yaml
new file mode 100644
index 00000000000..9a1c1ef2201
--- /dev/null
+++ b/board/ti/j784s4/sec-cfg.yaml
@@ -0,0 +1,380 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Security management configuration for J784S4
+#
+
+---
+
+sec-cfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ processor_acl_list:
+ subhdr:
+ magic: 0xF1EA
+ size: 164
+ proc_acl_entries:
+ - # 1
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 2
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 3
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 4
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 5
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 6
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 7
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 8
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 9
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 10
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 11
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 12
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 13
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 14
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 15
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 16
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 17
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 18
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 19
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 20
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 21
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 22
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 23
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 24
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 25
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 26
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 27
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 28
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 29
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 30
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 31
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ - # 32
+ processor_id: 0
+ proc_access_master: 0
+ proc_access_secondary: [0, 0, 0]
+ host_hierarchy:
+ subhdr:
+ magic: 0x8D27
+ size: 68
+ host_hierarchy_entries:
+ - # 1
+ host_id: 0
+ supervisor_host_id: 0
+ - # 2
+ host_id: 0
+ supervisor_host_id: 0
+ - # 3
+ host_id: 0
+ supervisor_host_id: 0
+ - # 4
+ host_id: 0
+ supervisor_host_id: 0
+ - # 5
+ host_id: 0
+ supervisor_host_id: 0
+ - # 6
+ host_id: 0
+ supervisor_host_id: 0
+ - # 7
+ host_id: 0
+ supervisor_host_id: 0
+ - # 8
+ host_id: 0
+ supervisor_host_id: 0
+ - # 9
+ host_id: 0
+ supervisor_host_id: 0
+ - # 10
+ host_id: 0
+ supervisor_host_id: 0
+ - # 11
+ host_id: 0
+ supervisor_host_id: 0
+ - # 12
+ host_id: 0
+ supervisor_host_id: 0
+ - # 13
+ host_id: 0
+ supervisor_host_id: 0
+ - # 14
+ host_id: 0
+ supervisor_host_id: 0
+ - # 15
+ host_id: 0
+ supervisor_host_id: 0
+ - # 16
+ host_id: 0
+ supervisor_host_id: 0
+ - # 17
+ host_id: 0
+ supervisor_host_id: 0
+ - # 18
+ host_id: 0
+ supervisor_host_id: 0
+ - # 19
+ host_id: 0
+ supervisor_host_id: 0
+ - # 20
+ host_id: 0
+ supervisor_host_id: 0
+ - # 21
+ host_id: 0
+ supervisor_host_id: 0
+ - # 22
+ host_id: 0
+ supervisor_host_id: 0
+ - # 23
+ host_id: 0
+ supervisor_host_id: 0
+ - # 24
+ host_id: 0
+ supervisor_host_id: 0
+ - # 25
+ host_id: 0
+ supervisor_host_id: 0
+ - # 26
+ host_id: 0
+ supervisor_host_id: 0
+ - # 27
+ host_id: 0
+ supervisor_host_id: 0
+ - # 28
+ host_id: 0
+ supervisor_host_id: 0
+ - # 29
+ host_id: 0
+ supervisor_host_id: 0
+ - # 30
+ host_id: 0
+ supervisor_host_id: 0
+ - # 31
+ host_id: 0
+ supervisor_host_id: 0
+ - # 32
+ host_id: 0
+ supervisor_host_id: 0
+ otp_config:
+ subhdr:
+ magic: 0x4081
+ size: 69
+ write_host_id: 0
+ otp_entry:
+ - # 1
+ host_id: 0
+ host_perms: 0
+ - # 2
+ host_id: 0
+ host_perms: 0
+ - # 3
+ host_id: 0
+ host_perms: 0
+ - # 4
+ host_id: 0
+ host_perms: 0
+ - # 5
+ host_id: 0
+ host_perms: 0
+ - # 6
+ host_id: 0
+ host_perms: 0
+ - # 7
+ host_id: 0
+ host_perms: 0
+ - # 8
+ host_id: 0
+ host_perms: 0
+ - # 9
+ host_id: 0
+ host_perms: 0
+ - # 10
+ host_id: 0
+ host_perms: 0
+ - # 11
+ host_id: 0
+ host_perms: 0
+ - # 12
+ host_id: 0
+ host_perms: 0
+ - # 13
+ host_id: 0
+ host_perms: 0
+ - # 14
+ host_id: 0
+ host_perms: 0
+ - # 15
+ host_id: 0
+ host_perms: 0
+ - # 16
+ host_id: 0
+ host_perms: 0
+ - # 17
+ host_id: 0
+ host_perms: 0
+ - # 18
+ host_id: 0
+ host_perms: 0
+ - # 19
+ host_id: 0
+ host_perms: 0
+ - # 20
+ host_id: 0
+ host_perms: 0
+ - # 21
+ host_id: 0
+ host_perms: 0
+ - # 22
+ host_id: 0
+ host_perms: 0
+ - # 23
+ host_id: 0
+ host_perms: 0
+ - # 24
+ host_id: 0
+ host_perms: 0
+ - # 25
+ host_id: 0
+ host_perms: 0
+ - # 26
+ host_id: 0
+ host_perms: 0
+ - # 27
+ host_id: 0
+ host_perms: 0
+ - # 28
+ host_id: 0
+ host_perms: 0
+ - # 29
+ host_id: 0
+ host_perms: 0
+ - # 30
+ host_id: 0
+ host_perms: 0
+ - # 31
+ host_id: 0
+ host_perms: 0
+ - # 32
+ host_id: 0
+ host_perms: 0
+ dkek_config:
+ subhdr:
+ magic: 0x5170
+ size: 12
+ allowed_hosts: [128, 0, 0, 0]
+ allow_dkek_export_tisci: 0x5A
+ rsvd: [0, 0, 0]
+ sa2ul_cfg:
+ subhdr:
+ magic: 0x23BE
+ size: 0
+ auth_resource_owner: 0
+ enable_saul_psil_global_config_writes: 0
+ rsvd: [0, 0]
+ sec_dbg_config:
+ subhdr:
+ magic: 0x42AF
+ size: 16
+ allow_jtag_unlock: 0x0
+ allow_wildcard_unlock: 0x0
+ allowed_debug_level_rsvd: 0
+ rsvd: 0
+ min_cert_rev: 0x0
+ jtag_unlock_hosts: [0, 0, 0, 0]
+ sec_handover_cfg:
+ subhdr:
+ magic: 0x608F
+ size: 10
+ handover_msg_sender: 0
+ handover_to_host_id: 0
+ rsvd: [0, 0, 0, 0]
diff --git a/board/ti/j784s4/tifs-rm-cfg.yaml b/board/ti/j784s4/tifs-rm-cfg.yaml
new file mode 100644
index 00000000000..1c5faffb8e9
--- /dev/null
+++ b/board/ti/j784s4/tifs-rm-cfg.yaml
@@ -0,0 +1,2656 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+#
+# Resource management configuration for J784S4
+#
+
+---
+
+tifs-rm-cfg:
+ rm_boardcfg:
+ rev:
+ boardcfg_abi_maj: 0x0
+ boardcfg_abi_min: 0x1
+ host_cfg:
+ subhdr:
+ magic: 0x4C41
+ size: 356
+ host_cfg_entries:
+ - # 1
+ host_id: 3
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 2
+ host_id: 5
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 3
+ host_id: 12
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 4
+ host_id: 13
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 5
+ host_id: 21
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 6
+ host_id: 23
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 7
+ host_id: 25
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 8
+ host_id: 27
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 9
+ host_id: 35
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 10
+ host_id: 37
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 11
+ host_id: 40
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 12
+ host_id: 42
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 13
+ host_id: 45
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 14
+ host_id: 47
+ allowed_atype: 0x2A
+ allowed_qos: 0xAAAA
+ allowed_orderid: 0xAAAAAAAA
+ allowed_priority: 0xAAAA
+ allowed_sched_priority: 0xAA
+ - # 15
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 16
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 17
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 18
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 19
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 20
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 21
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 22
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 23
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 24
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 25
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 26
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 27
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 28
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 29
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 30
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 31
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ - # 32
+ host_id: 0
+ allowed_atype: 0
+ allowed_qos: 0
+ allowed_orderid: 0
+ allowed_priority: 0
+ allowed_sched_priority: 0
+ resasg:
+ subhdr:
+ magic: 0x7B25
+ size: 8
+ resasg_entries_size: 3208
+ reserved: 0
+ resasg_entries:
+ -
+ start_resource: 16
+ num_resource: 16
+ type: 17998
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 16
+ type: 17998
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 8
+ type: 17999
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 8
+ type: 17999
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 16
+ type: 18017
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 16
+ type: 18017
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 8
+ type: 18018
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 8
+ type: 18018
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 64
+ type: 19850
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 64
+ type: 19914
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 4
+ type: 19968
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 4
+ type: 19968
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 4
+ type: 19968
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 4
+ type: 19968
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 4
+ type: 19968
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 4
+ type: 19968
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 12
+ type: 19968
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 36
+ num_resource: 4
+ type: 19968
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 4
+ type: 19968
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 44
+ num_resource: 4
+ type: 19968
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 4
+ type: 19968
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 4
+ type: 19968
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 4
+ type: 19968
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 60
+ num_resource: 4
+ type: 19968
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20160
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 423
+ num_resource: 10
+ type: 20161
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 433
+ num_resource: 20
+ type: 20161
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 453
+ num_resource: 16
+ type: 20161
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 469
+ num_resource: 13
+ type: 20161
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 482
+ num_resource: 128
+ type: 20161
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 610
+ num_resource: 46
+ type: 20161
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 656
+ num_resource: 10
+ type: 20161
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 666
+ num_resource: 20
+ type: 20161
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 686
+ num_resource: 64
+ type: 20161
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 750
+ num_resource: 10
+ type: 20161
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 760
+ num_resource: 4
+ type: 20161
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 764
+ num_resource: 4
+ type: 20161
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 878
+ num_resource: 128
+ type: 20161
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 1006
+ num_resource: 10
+ type: 20161
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 345
+ num_resource: 6
+ type: 20162
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 351
+ num_resource: 0
+ type: 20162
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 351
+ num_resource: 1
+ type: 20162
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 352
+ num_resource: 1
+ type: 20162
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 353
+ num_resource: 1
+ type: 20162
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 354
+ num_resource: 1
+ type: 20162
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 355
+ num_resource: 4
+ type: 20162
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 359
+ num_resource: 1
+ type: 20162
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 360
+ num_resource: 1
+ type: 20162
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 361
+ num_resource: 1
+ type: 20162
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 362
+ num_resource: 3
+ type: 20162
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 365
+ num_resource: 1
+ type: 20162
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 366
+ num_resource: 1
+ type: 20162
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 367
+ num_resource: 1
+ type: 20162
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 368
+ num_resource: 25
+ type: 20162
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 393
+ num_resource: 1
+ type: 20162
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 394
+ num_resource: 2
+ type: 20162
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 396
+ num_resource: 2
+ type: 20162
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 398
+ num_resource: 2
+ type: 20162
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 400
+ num_resource: 2
+ type: 20162
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 402
+ num_resource: 12
+ type: 20162
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 414
+ num_resource: 1
+ type: 20162
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 415
+ num_resource: 2
+ type: 20162
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 417
+ num_resource: 2
+ type: 20162
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 419
+ num_resource: 2
+ type: 20162
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 421
+ num_resource: 2
+ type: 20162
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 6
+ type: 20163
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 0
+ type: 20163
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 20163
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20163
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20163
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 20163
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 4
+ type: 20163
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 1
+ type: 20163
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 20163
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 1
+ type: 20163
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 21
+ num_resource: 3
+ type: 20163
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 1
+ type: 20163
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 1
+ type: 20163
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 1
+ type: 20163
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 25
+ type: 20163
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 1
+ type: 20163
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 2
+ type: 20163
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 55
+ num_resource: 2
+ type: 20163
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 2
+ type: 20163
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 59
+ num_resource: 2
+ type: 20163
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 61
+ num_resource: 12
+ type: 20163
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 73
+ num_resource: 4
+ type: 20163
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 77
+ num_resource: 2
+ type: 20163
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 79
+ num_resource: 2
+ type: 20163
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 81
+ num_resource: 2
+ type: 20163
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 83
+ num_resource: 2
+ type: 20163
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 85
+ num_resource: 8
+ type: 20164
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 93
+ num_resource: 8
+ type: 20164
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 101
+ num_resource: 6
+ type: 20164
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 107
+ num_resource: 4
+ type: 20164
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 111
+ num_resource: 2
+ type: 20164
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 113
+ num_resource: 2
+ type: 20164
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 0
+ type: 20164
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 2
+ type: 20164
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 117
+ num_resource: 96
+ type: 20164
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 213
+ num_resource: 96
+ type: 20164
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 309
+ num_resource: 32
+ type: 20164
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 343
+ num_resource: 1
+ type: 20165
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 344
+ num_resource: 1
+ type: 20165
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 341
+ num_resource: 1
+ type: 20166
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 342
+ num_resource: 1
+ type: 20166
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 1
+ type: 20167
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 1
+ type: 20167
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20168
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 1
+ num_resource: 1
+ type: 20168
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 5
+ type: 20170
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 20170
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 3
+ type: 20171
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 2
+ type: 20171
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 3
+ type: 20171
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 3
+ type: 20171
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20171
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20171
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 6
+ type: 20171
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 3
+ type: 20171
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 3
+ type: 20171
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 3
+ type: 20171
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 28
+ num_resource: 1
+ type: 20171
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 1
+ type: 20171
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 30
+ num_resource: 1
+ type: 20171
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 31
+ num_resource: 1
+ type: 20171
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 82
+ num_resource: 16
+ type: 20416
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 98
+ num_resource: 16
+ type: 20416
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 114
+ num_resource: 110
+ type: 20416
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20417
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 6
+ type: 20426
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 0
+ type: 20426
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 20426
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20426
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20426
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 20426
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 4
+ type: 20426
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 1
+ type: 20426
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 20426
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 1
+ type: 20426
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 21
+ num_resource: 3
+ type: 20426
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 1
+ type: 20426
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 1
+ type: 20426
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 1
+ type: 20426
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 25
+ type: 20426
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 1
+ type: 20426
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 2
+ type: 20426
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 55
+ num_resource: 2
+ type: 20426
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 2
+ type: 20426
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 59
+ num_resource: 2
+ type: 20426
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 61
+ num_resource: 12
+ type: 20426
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 73
+ num_resource: 1
+ type: 20426
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 74
+ num_resource: 2
+ type: 20426
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 76
+ num_resource: 2
+ type: 20426
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 78
+ num_resource: 2
+ type: 20426
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 80
+ num_resource: 2
+ type: 20426
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 1
+ type: 20427
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 1
+ type: 20427
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20428
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 1
+ num_resource: 1
+ type: 20428
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 4
+ num_resource: 6
+ type: 20429
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 0
+ type: 20429
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 20429
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20429
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20429
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 20429
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 4
+ type: 20429
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 1
+ type: 20429
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 1
+ type: 20429
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 1
+ type: 20429
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 21
+ num_resource: 3
+ type: 20429
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 1
+ type: 20429
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 1
+ type: 20429
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 1
+ type: 20429
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 27
+ num_resource: 25
+ type: 20429
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 52
+ num_resource: 1
+ type: 20429
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 2
+ type: 20429
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 55
+ num_resource: 2
+ type: 20429
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 2
+ type: 20429
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 59
+ num_resource: 2
+ type: 20429
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 61
+ num_resource: 12
+ type: 20429
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 73
+ num_resource: 4
+ type: 20429
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 77
+ num_resource: 2
+ type: 20429
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 79
+ num_resource: 2
+ type: 20429
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 81
+ num_resource: 2
+ type: 20429
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 83
+ num_resource: 2
+ type: 20429
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 85
+ num_resource: 8
+ type: 20430
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 93
+ num_resource: 8
+ type: 20430
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 101
+ num_resource: 6
+ type: 20430
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 107
+ num_resource: 4
+ type: 20430
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 111
+ num_resource: 2
+ type: 20430
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 113
+ num_resource: 2
+ type: 20430
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 0
+ type: 20430
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 115
+ num_resource: 2
+ type: 20430
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 117
+ num_resource: 96
+ type: 20430
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 213
+ num_resource: 96
+ type: 20430
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 309
+ num_resource: 32
+ type: 20430
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 1
+ type: 20431
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 1
+ type: 20431
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20432
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 1
+ num_resource: 1
+ type: 20432
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 56
+ type: 20554
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 112
+ num_resource: 24
+ type: 20554
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 136
+ num_resource: 12
+ type: 20554
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 148
+ num_resource: 12
+ type: 20554
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 160
+ num_resource: 10
+ type: 20554
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 170
+ num_resource: 10
+ type: 20554
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 180
+ num_resource: 28
+ type: 20554
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 208
+ num_resource: 8
+ type: 20554
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 216
+ num_resource: 12
+ type: 20554
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 228
+ num_resource: 8
+ type: 20554
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 236
+ num_resource: 10
+ type: 20554
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 246
+ num_resource: 10
+ type: 20554
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 1536
+ num_resource: 16
+ type: 20559
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 2048
+ num_resource: 16
+ type: 20560
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 2560
+ num_resource: 16
+ type: 20561
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 3072
+ num_resource: 32
+ type: 20562
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 3584
+ num_resource: 32
+ type: 20563
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 4096
+ num_resource: 32
+ type: 20564
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 1
+ num_resource: 2
+ type: 20928
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 4
+ type: 20928
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 4
+ type: 20928
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 4
+ type: 20928
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 4
+ type: 20928
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 19
+ num_resource: 4
+ type: 20928
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 23
+ num_resource: 16
+ type: 20928
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 39
+ num_resource: 4
+ type: 20928
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 4
+ type: 20928
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 47
+ num_resource: 4
+ type: 20928
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 51
+ num_resource: 3
+ type: 20928
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 54
+ num_resource: 2
+ type: 20928
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 4
+ type: 20928
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 60
+ num_resource: 4
+ type: 20928
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 20992
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 96
+ num_resource: 20
+ type: 20993
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 116
+ num_resource: 8
+ type: 20993
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 124
+ num_resource: 8
+ type: 20993
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 132
+ num_resource: 8
+ type: 20993
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 140
+ num_resource: 8
+ type: 20993
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 148
+ num_resource: 8
+ type: 20993
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 156
+ num_resource: 16
+ type: 20993
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 172
+ num_resource: 8
+ type: 20993
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 180
+ num_resource: 8
+ type: 20993
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 188
+ num_resource: 8
+ type: 20993
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 196
+ num_resource: 8
+ type: 20993
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 204
+ num_resource: 4
+ type: 20993
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 208
+ num_resource: 32
+ type: 20993
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 240
+ num_resource: 12
+ type: 20993
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 50
+ num_resource: 3
+ type: 20994
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 0
+ type: 20994
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 53
+ num_resource: 1
+ type: 20994
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 54
+ num_resource: 1
+ type: 20994
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 55
+ num_resource: 1
+ type: 20994
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 1
+ type: 20994
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 57
+ num_resource: 1
+ type: 20994
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 58
+ num_resource: 1
+ type: 20994
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 59
+ num_resource: 1
+ type: 20994
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 60
+ num_resource: 1
+ type: 20994
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 61
+ num_resource: 1
+ type: 20994
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 62
+ num_resource: 1
+ type: 20994
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 63
+ num_resource: 2
+ type: 20994
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 65
+ num_resource: 0
+ type: 20994
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 65
+ num_resource: 8
+ type: 20994
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 73
+ num_resource: 4
+ type: 20994
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 77
+ num_resource: 1
+ type: 20994
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 78
+ num_resource: 1
+ type: 20994
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 79
+ num_resource: 1
+ type: 20994
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 80
+ num_resource: 1
+ type: 20994
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 81
+ num_resource: 2
+ type: 20994
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 83
+ num_resource: 1
+ type: 20994
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 84
+ num_resource: 1
+ type: 20994
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 85
+ num_resource: 1
+ type: 20994
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 86
+ num_resource: 1
+ type: 20994
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 87
+ num_resource: 1
+ type: 20994
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 88
+ num_resource: 3
+ type: 20994
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 91
+ num_resource: 2
+ type: 20994
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 3
+ type: 20995
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 0
+ type: 20995
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 20995
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 1
+ type: 20995
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 1
+ type: 20995
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 1
+ type: 20995
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 1
+ type: 20995
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 20995
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 20995
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 20995
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 20995
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 1
+ type: 20995
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 2
+ type: 20995
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 0
+ type: 20995
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 8
+ type: 20995
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 4
+ type: 20995
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 1
+ type: 20995
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 30
+ num_resource: 1
+ type: 20995
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 31
+ num_resource: 1
+ type: 20995
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 1
+ type: 20995
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 33
+ num_resource: 2
+ type: 20995
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 1
+ type: 20995
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 36
+ num_resource: 1
+ type: 20995
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 37
+ num_resource: 1
+ type: 20995
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 38
+ num_resource: 1
+ type: 20995
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 39
+ num_resource: 1
+ type: 20995
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 3
+ type: 20995
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 2
+ type: 20995
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 45
+ num_resource: 1
+ type: 20995
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 0
+ type: 20997
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 2
+ type: 20997
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 0
+ type: 20999
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 2
+ type: 20999
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 5
+ type: 21002
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 21002
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 3
+ type: 21003
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 3
+ num_resource: 2
+ type: 21003
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 2
+ type: 21003
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 2
+ type: 21003
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 2
+ type: 21003
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 2
+ type: 21003
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 3
+ type: 21003
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 16
+ num_resource: 2
+ type: 21003
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 18
+ num_resource: 2
+ type: 21003
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 20
+ num_resource: 2
+ type: 21003
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 2
+ type: 21003
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 24
+ num_resource: 2
+ type: 21003
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 26
+ num_resource: 3
+ type: 21003
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 3
+ type: 21003
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 48
+ num_resource: 8
+ type: 21056
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 56
+ num_resource: 4
+ type: 21056
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 60
+ num_resource: 8
+ type: 21056
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 68
+ num_resource: 4
+ type: 21056
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 72
+ num_resource: 4
+ type: 21056
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 76
+ num_resource: 4
+ type: 21056
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 80
+ num_resource: 2
+ type: 21056
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 82
+ num_resource: 2
+ type: 21056
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 84
+ num_resource: 8
+ type: 21056
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 92
+ num_resource: 4
+ type: 21056
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 1
+ type: 21057
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 3
+ type: 21066
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 0
+ type: 21066
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 21066
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 1
+ type: 21066
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 1
+ type: 21066
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 1
+ type: 21066
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 1
+ type: 21066
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 21066
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 21066
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 21066
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 21066
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 1
+ type: 21066
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 2
+ type: 21066
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 0
+ type: 21066
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 8
+ type: 21066
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 4
+ type: 21066
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 1
+ type: 21066
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 30
+ num_resource: 1
+ type: 21066
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 31
+ num_resource: 1
+ type: 21066
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 1
+ type: 21066
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 33
+ num_resource: 2
+ type: 21066
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 1
+ type: 21066
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 36
+ num_resource: 1
+ type: 21066
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 37
+ num_resource: 1
+ type: 21066
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 38
+ num_resource: 1
+ type: 21066
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 39
+ num_resource: 1
+ type: 21066
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 3
+ type: 21066
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 2
+ type: 21066
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 0
+ type: 21067
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 2
+ type: 21067
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 2
+ num_resource: 3
+ type: 21069
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 0
+ type: 21069
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 5
+ num_resource: 1
+ type: 21069
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 6
+ num_resource: 1
+ type: 21069
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 7
+ num_resource: 1
+ type: 21069
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 8
+ num_resource: 1
+ type: 21069
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 9
+ num_resource: 1
+ type: 21069
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 10
+ num_resource: 1
+ type: 21069
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 11
+ num_resource: 1
+ type: 21069
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 12
+ num_resource: 1
+ type: 21069
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 13
+ num_resource: 1
+ type: 21069
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 14
+ num_resource: 1
+ type: 21069
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 15
+ num_resource: 2
+ type: 21069
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 0
+ type: 21069
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 17
+ num_resource: 8
+ type: 21069
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 25
+ num_resource: 4
+ type: 21069
+ host_id: 13
+ reserved: 0
+ -
+ start_resource: 29
+ num_resource: 1
+ type: 21069
+ host_id: 21
+ reserved: 0
+ -
+ start_resource: 30
+ num_resource: 1
+ type: 21069
+ host_id: 23
+ reserved: 0
+ -
+ start_resource: 31
+ num_resource: 1
+ type: 21069
+ host_id: 25
+ reserved: 0
+ -
+ start_resource: 32
+ num_resource: 1
+ type: 21069
+ host_id: 27
+ reserved: 0
+ -
+ start_resource: 33
+ num_resource: 2
+ type: 21069
+ host_id: 35
+ reserved: 0
+ -
+ start_resource: 35
+ num_resource: 1
+ type: 21069
+ host_id: 37
+ reserved: 0
+ -
+ start_resource: 36
+ num_resource: 1
+ type: 21069
+ host_id: 40
+ reserved: 0
+ -
+ start_resource: 37
+ num_resource: 1
+ type: 21069
+ host_id: 42
+ reserved: 0
+ -
+ start_resource: 38
+ num_resource: 1
+ type: 21069
+ host_id: 45
+ reserved: 0
+ -
+ start_resource: 39
+ num_resource: 1
+ type: 21069
+ host_id: 47
+ reserved: 0
+ -
+ start_resource: 40
+ num_resource: 3
+ type: 21069
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 43
+ num_resource: 2
+ type: 21069
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 45
+ num_resource: 1
+ type: 21069
+ host_id: 128
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 0
+ type: 21071
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 0
+ num_resource: 2
+ type: 21071
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 22
+ num_resource: 32
+ type: 21194
+ host_id: 12
+ reserved: 0
+ -
+ start_resource: 54
+ num_resource: 64
+ type: 21194
+ host_id: 3
+ reserved: 0
+ -
+ start_resource: 118
+ num_resource: 4
+ type: 21194
+ host_id: 5
+ reserved: 0
+ -
+ start_resource: 122
+ num_resource: 134
+ type: 21194
+ host_id: 128
+ reserved: 0
diff --git a/board/toradex/apalis-imx8/apalis-imx8.c b/board/toradex/apalis-imx8/apalis-imx8.c
index 49719f2f553..0f993e644d7 100644
--- a/board/toradex/apalis-imx8/apalis-imx8.c
+++ b/board/toradex/apalis-imx8/apalis-imx8.c
@@ -291,14 +291,6 @@ int board_init(void)
return 0;
}
-/*
- * Board specific reset that is system reset.
- */
-void reset_cpu(void)
-{
- /* TODO */
-}
-
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{
diff --git a/board/toradex/colibri-imx8x/colibri-imx8x.c b/board/toradex/colibri-imx8x/colibri-imx8x.c
index 6fc8076163c..35657852595 100644
--- a/board/toradex/colibri-imx8x/colibri-imx8x.c
+++ b/board/toradex/colibri-imx8x/colibri-imx8x.c
@@ -93,15 +93,6 @@ int board_early_init_f(void)
return 0;
}
-#if IS_ENABLED(CONFIG_DM_GPIO)
-static void board_gpio_init(void)
-{
- /* TODO */
-}
-#else
-static inline void board_gpio_init(void) {}
-#endif
-
#if IS_ENABLED(CONFIG_FEC_MXC)
#include <miiphy.h>
@@ -128,8 +119,6 @@ static void select_dt_from_module_version(void)
int board_init(void)
{
- board_gpio_init();
-
if (IS_ENABLED(CONFIG_IMX_SNVS_SEC_SC_AUTO)) {
int ret = snvs_security_sc_init();
@@ -140,14 +129,6 @@ int board_init(void)
return 0;
}
-/*
- * Board specific reset that is system reset.
- */
-void reset_cpu(void)
-{
- /* TODO */
-}
-
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{
diff --git a/board/toradex/verdin-am62/MAINTAINERS b/board/toradex/verdin-am62/MAINTAINERS
index 4e75980dbd7..3e30d1d5112 100644
--- a/board/toradex/verdin-am62/MAINTAINERS
+++ b/board/toradex/verdin-am62/MAINTAINERS
@@ -1,12 +1,8 @@
Verdin AM62
F: arch/arm/dts/k3-am625-verdin-lpddr4-1600MTs.dtsi
F: arch/arm/dts/k3-am625-verdin-r5.dts
-F: arch/arm/dts/k3-am625-verdin-wifi-dev.dts
F: arch/arm/dts/k3-am625-verdin-wifi-dev-binman.dtsi
F: arch/arm/dts/k3-am625-verdin-wifi-dev-u-boot.dtsi
-F: arch/arm/dts/k3-am62-verdin-dev.dtsi
-F: arch/arm/dts/k3-am62-verdin.dtsi
-F: arch/arm/dts/k3-am62-verdin-wifi.dtsi
F: board/toradex/verdin-am62/
F: configs/verdin-am62_a53_defconfig
F: configs/verdin-am62_r5_defconfig
diff --git a/board/toradex/verdin-imx8mm/MAINTAINERS b/board/toradex/verdin-imx8mm/MAINTAINERS
index 8217bbcdc0c..d567f0e1097 100644
--- a/board/toradex/verdin-imx8mm/MAINTAINERS
+++ b/board/toradex/verdin-imx8mm/MAINTAINERS
@@ -2,10 +2,6 @@ Verdin iMX8M Mini
M: Marcel Ziswiler <marcel.ziswiler@toradex.com>
W: https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-mini
S: Maintained
-F: arch/arm/dts/imx8mm-verdin.dtsi
-F: arch/arm/dts/imx8mm-verdin-dev.dtsi
-F: arch/arm/dts/imx8mm-verdin-wifi.dtsi
-F: arch/arm/dts/imx8mm-verdin-wifi-dev.dts
F: arch/arm/dts/imx8mm-verdin-wifi-dev-u-boot.dtsi
F: board/toradex/verdin-imx8mm/
F: board/toradex/common/
diff --git a/board/toradex/verdin-imx8mp/MAINTAINERS b/board/toradex/verdin-imx8mp/MAINTAINERS
index 85d6be88163..9fe76d8e42f 100644
--- a/board/toradex/verdin-imx8mp/MAINTAINERS
+++ b/board/toradex/verdin-imx8mp/MAINTAINERS
@@ -1,8 +1,4 @@
Verdin iMX8M Plus
-F: arch/arm/dts/imx8mp-verdin.dtsi
-F: arch/arm/dts/imx8mp-verdin-dev.dtsi
-F: arch/arm/dts/imx8mp-verdin-wifi.dtsi
-F: arch/arm/dts/imx8mp-verdin-wifi-dev.dts
F: arch/arm/dts/imx8mp-verdin-wifi-dev-u-boot.dtsi
F: board/toradex/verdin-imx8mp/
F: board/toradex/common/
diff --git a/board/turing/turing-rk1-rk3588/Kconfig b/board/turing/turing-rk1-rk3588/Kconfig
index 4c6cd6af343..0def6e0d7cd 100644
--- a/board/turing/turing-rk1-rk3588/Kconfig
+++ b/board/turing/turing-rk1-rk3588/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "turing-rk1-rk3588"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/vamrs/rock960_rk3399/Kconfig b/board/vamrs/rock960_rk3399/Kconfig
index cacc53f3780..0c052c6fec4 100644
--- a/board/vamrs/rock960_rk3399/Kconfig
+++ b/board/vamrs/rock960_rk3399/Kconfig
@@ -9,7 +9,4 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "rock960_rk3399"
-config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
-
endif
diff --git a/board/vamrs/rock960_rk3399/MAINTAINERS b/board/vamrs/rock960_rk3399/MAINTAINERS
index 8821672a3ab..f2121b19145 100644
--- a/board/vamrs/rock960_rk3399/MAINTAINERS
+++ b/board/vamrs/rock960_rk3399/MAINTAINERS
@@ -4,8 +4,10 @@ S: Maintained
F: board/vamrs/rock960_rk3399/
F: include/configs/rock960_rk3399.h
F: configs/rock960-rk3399_defconfig
+F: arch/arm/dts/rk3399-rock960*
FICUS EE
M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
S: Maintained
F: configs/ficus-rk3399_defconfig
+F: arch/arm/dts/rk3399-ficus*
diff --git a/board/vamrs/rock960_rk3399/Makefile b/board/vamrs/rock960_rk3399/Makefile
deleted file mode 100644
index 6c3e475b3a8..00000000000
--- a/board/vamrs/rock960_rk3399/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0+
-#
-# Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-#
-
-obj-y += rock960-rk3399.o
diff --git a/board/vamrs/rock960_rk3399/rock960-rk3399.c b/board/vamrs/rock960_rk3399/rock960-rk3399.c
deleted file mode 100644
index a7fc38d42f8..00000000000
--- a/board/vamrs/rock960_rk3399/rock960-rk3399.c
+++ /dev/null
@@ -1,28 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
- */
-
-#include <common.h>
-#include <syscon.h>
-#include <asm/io.h>
-#include <asm/arch-rockchip/clock.h>
-#include <asm/arch-rockchip/grf_rk3399.h>
-#include <asm/arch-rockchip/hardware.h>
-#include <linux/bitops.h>
-
-#ifdef CONFIG_MISC_INIT_R
-int misc_init_r(void)
-{
- struct rk3399_grf_regs *grf =
- syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
-
- /**
- * Some SSD's to work on rock960 would require explicit
- * domain voltage change, so BT565 is in 1.8v domain
- */
- rk_setreg(&grf->io_vsel, BIT(0));
-
- return 0;
-}
-#endif
diff --git a/board/variscite/imx93_var_som/spl.c b/board/variscite/imx93_var_som/spl.c
index 36e17219d63..71f346cf77b 100644
--- a/board/variscite/imx93_var_som/spl.c
+++ b/board/variscite/imx93_var_som/spl.c
@@ -121,7 +121,7 @@ void board_init_f(ulong dummy)
preloader_console_init();
- ret = imx9_probe_mu(NULL, NULL);
+ ret = imx9_probe_mu();
if (ret) {
printf("Fail to init ELE API\n");
} else {
diff --git a/board/vscom/baltos/u-boot.lds b/board/vscom/baltos/u-boot.lds
deleted file mode 100644
index cb2ee676975..00000000000
--- a/board/vscom/baltos/u-boot.lds
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2004-2008 Texas Instruments
- *
- * (C) Copyright 2002
- * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-SECTIONS
-{
- . = 0x00000000;
-
- . = ALIGN(4);
- .text :
- {
- *(.__image_copy_start)
- *(.vectors)
- CPUDIR/start.o (.text*)
- board/vscom/baltos/built-in.o (.text*)
- *(.text*)
- }
-
- . = ALIGN(4);
- .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
-
- . = ALIGN(4);
- .data : {
- *(.data*)
- }
-
- . = ALIGN(4);
-
- . = .;
-
- . = ALIGN(4);
- __u_boot_list : {
- KEEP(*(SORT(__u_boot_list*)));
- }
-
- . = ALIGN(4);
-
- .image_copy_end :
- {
- *(.__image_copy_end)
- }
-
- .rel_dyn_start :
- {
- *(.__rel_dyn_start)
- }
-
- .rel.dyn : {
- *(.rel*)
- }
-
- .rel_dyn_end :
- {
- *(.__rel_dyn_end)
- }
-
- .hash : { *(.hash*) }
-
- .end :
- {
- *(.__end)
- }
-
- _image_binary_end = .;
-
- /*
- * Deprecated: this MMU section is used by pxa at present but
- * should not be used by new boards/CPUs.
- */
- . = ALIGN(4096);
- .mmutable : {
- *(.mmutable)
- }
-
-/*
- * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
- * __bss_base and __bss_limit are for linker only (overlay ordering)
- */
-
- .bss_start __rel_dyn_start (OVERLAY) : {
- KEEP(*(.__bss_start));
- __bss_base = .;
- }
-
- .bss __bss_base (OVERLAY) : {
- *(.bss*)
- . = ALIGN(4);
- __bss_limit = .;
- }
-
- .bss_end __bss_limit (OVERLAY) : {
- KEEP(*(.__bss_end));
- }
-
- .dynsym _image_binary_end : { *(.dynsym) }
- .dynbss : { *(.dynbss) }
- .dynstr : { *(.dynstr*) }
- .dynamic : { *(.dynamic*) }
- .gnu.hash : { *(.gnu.hash) }
- .plt : { *(.plt*) }
- .interp : { *(.interp*) }
- .gnu : { *(.gnu*) }
- .ARM.exidx : { *(.ARM.exidx*) }
-}
diff --git a/board/xen/xenguest_arm64/xenguest_arm64.c b/board/xen/xenguest_arm64/xenguest_arm64.c
index 244070a242d..1d2946f4fde 100644
--- a/board/xen/xenguest_arm64/xenguest_arm64.c
+++ b/board/xen/xenguest_arm64/xenguest_arm64.c
@@ -31,6 +31,9 @@
DECLARE_GLOBAL_DATA_PTR;
+#define GUEST_VIRTIO_MMIO_BASE 0x2000000
+#define GUEST_VIRTIO_MMIO_SIZE 0x100000
+
int board_init(void)
{
return 0;
@@ -212,6 +215,15 @@ static int setup_mem_map(void)
PTE_BLOCK_INNER_SHARE);
i++;
+ if (CONFIG_IS_ENABLED(VIRTIO_MMIO)) {
+ xen_mem_map[i].virt = GUEST_VIRTIO_MMIO_BASE;
+ xen_mem_map[i].phys = GUEST_VIRTIO_MMIO_BASE;
+ xen_mem_map[i].size = GUEST_VIRTIO_MMIO_SIZE;
+ xen_mem_map[i].attrs = (PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
+ PTE_BLOCK_NON_SHARE);
+ i++;
+ }
+
mem = get_next_memory_node(blob, -1);
if (mem < 0) {
printf("%s: Missing /memory node\n", __func__);
@@ -219,6 +231,11 @@ static int setup_mem_map(void)
}
for (; i < MAX_MEM_MAP_REGIONS; i++) {
+ if (CONFIG_IS_ENABLED(VIRTIO_MMIO)) {
+ ret = fdt_node_check_compatible(blob, mem, "virtio,mmio");
+ if (!ret)
+ continue;
+ }
ret = fdt_get_resource(blob, mem, "reg", reg++, &res);
if (ret == -FDT_ERR_NOTFOUND) {
reg = 0;
diff --git a/board/xilinx/Kconfig b/board/xilinx/Kconfig
index 843198fa0da..5c4ad8f1df9 100644
--- a/board/xilinx/Kconfig
+++ b/board/xilinx/Kconfig
@@ -45,6 +45,7 @@ config XILINX_OF_BOARD_DTB_ADDR
default 0x1000 if ARCH_VERSAL || ARCH_VERSAL_NET
default 0x8000 if MICROBLAZE
default 0x100000 if ARCH_ZYNQ || ARCH_ZYNQMP
+ default 0x23000000 if TARGET_XILINX_MBV
depends on OF_BOARD || OF_SEPARATE
help
Offset in the memory where the board configuration DTB is placed.
diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c
index 9641ed307b7..b47d2d23f91 100644
--- a/board/xilinx/common/board.c
+++ b/board/xilinx/common/board.c
@@ -12,6 +12,7 @@
#include <env.h>
#include <image.h>
#include <init.h>
+#include <jffs2/load_kernel.h>
#include <lmb.h>
#include <log.h>
#include <asm/global_data.h>
@@ -20,6 +21,7 @@
#include <i2c.h>
#include <linux/sizes.h>
#include <malloc.h>
+#include <mtd_node.h>
#include "board.h"
#include <dm.h>
#include <i2c_eeprom.h>
@@ -43,7 +45,7 @@ struct efi_fw_image fw_images[] = {
.image_index = 1,
},
#endif
-#if defined(XILINX_UBOOT_IMAGE_GUID)
+#if defined(XILINX_UBOOT_IMAGE_GUID) && defined(CONFIG_SPL_FS_LOAD_PAYLOAD_NAME)
{
.image_type_id = XILINX_UBOOT_IMAGE_GUID,
.fw_name = u"XILINX-UBOOT",
@@ -103,10 +105,14 @@ static void xilinx_eeprom_legacy_cleanup(char *eeprom, int size)
for (i = 0; i < size; i++) {
byte = eeprom[i];
- /* Remove all non printable chars but ignore MAC address */
- if ((i < offsetof(struct xilinx_legacy_format, eth_mac) ||
- i >= offsetof(struct xilinx_legacy_format, unused1)) &&
- (byte < '!' || byte > '~')) {
+ /* Ignore MAC address */
+ if (i >= offsetof(struct xilinx_legacy_format, eth_mac) &&
+ i < offsetof(struct xilinx_legacy_format, unused1)) {
+ continue;
+ }
+
+ /* Remove all non printable chars */
+ if (byte < '!' || byte > '~') {
eeprom[i] = 0;
continue;
}
@@ -358,6 +364,14 @@ void *board_fdt_blob_setup(int *err)
void *fdt_blob;
*err = 0;
+
+ if (IS_ENABLED(CONFIG_TARGET_XILINX_MBV)) {
+ fdt_blob = (void *)CONFIG_XILINX_OF_BOARD_DTB_ADDR;
+
+ if (fdt_magic(fdt_blob) == FDT_MAGIC)
+ return fdt_blob;
+ }
+
if (!IS_ENABLED(CONFIG_SPL_BUILD) &&
!IS_ENABLED(CONFIG_VERSAL_NO_DDR) &&
!IS_ENABLED(CONFIG_ZYNQMP_NO_DDR)) {
@@ -693,6 +707,13 @@ int ft_board_setup(void *blob, struct bd_info *bd)
u8 buf[MAX_RAND_SIZE];
int nodeoffset, ret;
+ static const struct node_info nodes[] = {
+ { "arm,pl353-nand-r2p1", MTD_DEV_TYPE_NAND, },
+ };
+
+ if (IS_ENABLED(CONFIG_FDT_FIXUP_PARTITIONS) && IS_ENABLED(CONFIG_NAND_ZYNQ))
+ fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes));
+
if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) {
debug("No RNG device\n");
return 0;
diff --git a/board/xilinx/mbv/Kconfig b/board/xilinx/mbv/Kconfig
index 4bc9f72c541..a3a6f212577 100644
--- a/board/xilinx/mbv/Kconfig
+++ b/board/xilinx/mbv/Kconfig
@@ -9,19 +9,26 @@ config SYS_VENDOR
config SYS_CPU
default "generic"
-config SYS_CONFIG_NAME
- default "xilinx_mbv"
-
config TEXT_BASE
- default 0x80000000 if !RISCV_SMODE
- default 0x80400000 if RISCV_SMODE && ARCH_RV32I
+ default 0x21200000
+
+config SPL_TEXT_BASE
+ default 0x20000000
+
+config SPL_OPENSBI_LOAD_ADDR
+ hex
+ default 0x20200000
config BOARD_SPECIFIC_OPTIONS
def_bool y
select GENERIC_RISCV
+ select SUPPORT_SPL
imply BOARD_LATE_INIT
+ imply SPL_RAM_SUPPORT
+ imply SPL_RAM_DEVICE
imply CMD_SBI
imply CMD_PING
+ imply OF_HAS_PRIOR_STAGE
source "board/xilinx/Kconfig"
diff --git a/board/xilinx/mbv/MAINTAINERS b/board/xilinx/mbv/MAINTAINERS
index 445654fe740..db9f03388df 100644
--- a/board/xilinx/mbv/MAINTAINERS
+++ b/board/xilinx/mbv/MAINTAINERS
@@ -4,4 +4,3 @@ S: Maintained
F: arch/riscv/dts/xilinx-mbv*
F: board/xilinx/mbv/
F: configs/xilinx_mbv*
-F: include/configs/xilinx_mbv.h
diff --git a/board/xilinx/mbv/board.c b/board/xilinx/mbv/board.c
index ccf4395d6ac..c478f7e04a0 100644
--- a/board/xilinx/mbv/board.c
+++ b/board/xilinx/mbv/board.c
@@ -5,7 +5,17 @@
* Michal Simek <michal.simek@amd.com>
*/
+#include <spl.h>
+
int board_init(void)
{
return 0;
}
+
+#ifdef CONFIG_SPL
+u32 spl_boot_device(void)
+{
+ /* RISC-V QEMU only supports RAM as SPL boot device */
+ return BOOT_DEVICE_RAM;
+}
+#endif
diff --git a/board/xilinx/microblaze-generic/Kconfig b/board/xilinx/microblaze-generic/Kconfig
index dd5eacef52a..038ff0b6130 100644
--- a/board/xilinx/microblaze-generic/Kconfig
+++ b/board/xilinx/microblaze-generic/Kconfig
@@ -6,14 +6,6 @@ config SYS_BOARD
config SYS_VENDOR
default "xilinx"
-config SYS_CONFIG_NAME
- string "Board configuration name"
- default "microblaze-generic"
- help
- This option contains information about board configuration name.
- Based on this option include/configs/<CONFIG_SYS_CONFIG_NAME>.h header
- will be used for board configuration.
-
config XILINX_MICROBLAZE0_USE_MSR_INSTR
int "USE_MSR_INSTR range (0:1)"
default 0
diff --git a/board/xilinx/versal-net/board.c b/board/xilinx/versal-net/board.c
index 990ca1650aa..da03024e162 100644
--- a/board/xilinx/versal-net/board.c
+++ b/board/xilinx/versal-net/board.c
@@ -371,3 +371,35 @@ int dram_init(void)
void reset_cpu(void)
{
}
+
+#if defined(CONFIG_ENV_IS_NOWHERE)
+enum env_location env_get_location(enum env_operation op, int prio)
+{
+ u8 bootmode = versal_net_get_bootmode();
+
+ if (prio)
+ return ENVL_UNKNOWN;
+
+ switch (bootmode) {
+ case EMMC_MODE:
+ case SD_MODE:
+ case SD1_LSHFT_MODE:
+ case SD_MODE1:
+ if (IS_ENABLED(CONFIG_ENV_IS_IN_FAT))
+ return ENVL_FAT;
+ if (IS_ENABLED(CONFIG_ENV_IS_IN_EXT4))
+ return ENVL_EXT4;
+ return ENVL_NOWHERE;
+ case OSPI_MODE:
+ case QSPI_MODE_24BIT:
+ case QSPI_MODE_32BIT:
+ if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH))
+ return ENVL_SPI_FLASH;
+ return ENVL_NOWHERE;
+ case JTAG_MODE:
+ case SELECTMAP_MODE:
+ default:
+ return ENVL_NOWHERE;
+ }
+}
+#endif
diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
index 8c2e614ad8a..4f6d56119db 100644
--- a/board/xilinx/versal/board.c
+++ b/board/xilinx/versal/board.c
@@ -291,6 +291,7 @@ void reset_cpu(void)
{
}
+#if defined(CONFIG_ENV_IS_NOWHERE)
enum env_location env_get_location(enum env_operation op, int prio)
{
u32 bootmode = versal_get_bootmode();
@@ -320,3 +321,4 @@ enum env_location env_get_location(enum env_operation op, int prio)
return ENVL_NOWHERE;
}
}
+#endif
diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index ba49eb7be22..f370fb7347a 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -588,6 +588,7 @@ int mmc_get_env_dev(void)
return bootseq;
}
+#if defined(CONFIG_ENV_IS_NOWHERE)
enum env_location env_get_location(enum env_operation op, int prio)
{
u32 bootmode = zynqmp_get_bootmode();
@@ -621,11 +622,37 @@ enum env_location env_get_location(enum env_operation op, int prio)
return ENVL_NOWHERE;
}
}
+#endif
#if defined(CONFIG_SET_DFU_ALT_INFO)
#define DFU_ALT_BUF_LEN SZ_1K
+static void mtd_found_part(u32 *base, u32 *size)
+{
+ struct mtd_info *part, *mtd;
+
+ mtd_probe_devices();
+
+ mtd = get_mtd_device_nm("nor0");
+ if (!IS_ERR_OR_NULL(mtd)) {
+ list_for_each_entry(part, &mtd->partitions, node) {
+ debug("0x%012llx-0x%012llx : \"%s\"\n",
+ part->offset, part->offset + part->size,
+ part->name);
+
+ if (*base >= part->offset &&
+ *base < part->offset + part->size) {
+ debug("Found my partition: %d/%s\n",
+ part->index, part->name);
+ *base = part->offset;
+ *size = part->size;
+ break;
+ }
+ }
+ }
+}
+
void set_dfu_alt_info(char *interface, char *devstr)
{
int multiboot, bootseq = 0, len = 0;
@@ -661,21 +688,38 @@ void set_dfu_alt_info(char *interface, char *devstr)
len += snprintf(buf + len, DFU_ALT_BUF_LEN, ".bin fat %d 1",
bootseq);
#if defined(CONFIG_SPL_FS_LOAD_PAYLOAD_NAME)
- len += snprintf(buf + len, DFU_ALT_BUF_LEN, ";%s fat %d 1",
- CONFIG_SPL_FS_LOAD_PAYLOAD_NAME, bootseq);
+ if (strlen(CONFIG_SPL_FS_LOAD_PAYLOAD_NAME))
+ len += snprintf(buf + len, DFU_ALT_BUF_LEN,
+ ";%s fat %d 1",
+ CONFIG_SPL_FS_LOAD_PAYLOAD_NAME,
+ bootseq);
#endif
break;
case QSPI_MODE_24BIT:
case QSPI_MODE_32BIT:
- len += snprintf(buf + len, DFU_ALT_BUF_LEN,
- "sf 0:0=boot.bin raw %x 0x1500000",
- multiboot * SZ_32K);
+ {
+ u32 base = multiboot * SZ_32K;
+ u32 size = 0x1500000;
+ u32 limit = size;
+
+ mtd_found_part(&base, &limit);
+
+#if defined(CONFIG_SYS_SPI_U_BOOT_OFFS)
+ size = limit;
+ limit = CONFIG_SYS_SPI_U_BOOT_OFFS;
+#endif
+
+ len += snprintf(buf + len, DFU_ALT_BUF_LEN,
+ "sf 0:0=boot.bin raw 0x%x 0x%x",
+ base, limit);
#if defined(CONFIG_SPL_FS_LOAD_PAYLOAD_NAME) && defined(CONFIG_SYS_SPI_U_BOOT_OFFS)
- len += snprintf(buf + len, DFU_ALT_BUF_LEN,
- ";%s raw 0x%x 0x500000",
- CONFIG_SPL_FS_LOAD_PAYLOAD_NAME,
- multiboot * SZ_32K + CONFIG_SYS_SPI_U_BOOT_OFFS);
+ if (strlen(CONFIG_SPL_FS_LOAD_PAYLOAD_NAME))
+ len += snprintf(buf + len, DFU_ALT_BUF_LEN,
+ ";%s raw 0x%x 0x%x",
+ CONFIG_SPL_FS_LOAD_PAYLOAD_NAME,
+ base + limit, size - limit);
#endif
+ }
break;
default:
return;
diff --git a/board/xilinx/zynqmp/zynqmp_kria.env b/board/xilinx/zynqmp/zynqmp_kria.env
index 0f940bd68f8..846eceb0118 100644
--- a/board/xilinx/zynqmp/zynqmp_kria.env
+++ b/board/xilinx/zynqmp/zynqmp_kria.env
@@ -17,6 +17,7 @@ bootcmd_usb0=devnum=0; run usb_boot
bootcmd_usb1=devnum=1; run usb_boot
bootcmd_usb2=devnum=2; run usb_boot
bootcmd_usb3=devnum=3; run usb_boot
+bootcmd_usb4=devnum=4; run usb_boot
bootdelay=2
bootfstype=fat
bootm_low=0
@@ -44,7 +45,8 @@ usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boo
preboot=setenv boot_targets; setenv modeboot; run board_setup
# SOM specific boot methods
-som_cc_boot=if test ${card1_name} = SCK-KV-G; then setenv boot_targets mmc1 usb0 usb1 usb2 usb3 pxe dhcp && run distro_bootcmd; elif test ${card1_name} = SCK-KR-G; then setenv boot_targets usb0 usb1 usb2 usb3 pxe dhcp && run distro_bootcmd; else test ${card1_name} = SCK-KD-G; setenv boot_targets usb0 usb1 usb2 usb3 pxe dhcp && run distro_bootcmd; fi;"
+usb_boot_devices='usb0 usb1 usb2 usb3 usb4'
+som_cc_boot=if test ${card1_name} = SCK-KV-G; then setenv boot_targets mmc1 ${usb_boot_devices} pxe dhcp jtag && run distro_bootcmd; elif test ${card1_name} = SCK-KR-G; then setenv boot_targets ${usb_boot_devices} pxe dhcp jtag && run distro_bootcmd; else test ${card1_name} = SCK-KD-G; setenv boot_targets ${usb_boot_devices} pxe dhcp jtag && run distro_bootcmd; fi;"
som_mmc_boot=setenv boot_targets mmc0 && run distro_bootcmd
k26_starter=SMK-K26-XCL2G