gemini: board: add board and device tree

Add gemini as new am64x board including, board configuration, devicetree
and configuration.
This commit is contained in:
Stefan Eichenberger 2023-02-07 09:24:16 +01:00
parent b0d717b732
commit 04eb56941b
20 changed files with 4198 additions and 0 deletions

View File

@ -1281,6 +1281,8 @@ dtb-$(CONFIG_SOC_K3_AM642) += k3-am642-evm.dtb \
k3-am642-r5-evm.dtb \ k3-am642-r5-evm.dtb \
k3-am642-sk.dtb \ k3-am642-sk.dtb \
k3-am642-r5-sk.dtb \ k3-am642-r5-sk.dtb \
k3-am642-gemini-v1.dtb \
k3-am642-r5-gemini-v1.dtb \
k3-am642-evm-nand.dtbo k3-am642-evm-nand.dtbo
dtb-$(CONFIG_SOC_K3_AM625) += k3-am625-sk.dtb \ dtb-$(CONFIG_SOC_K3_AM625) += k3-am625-sk.dtb \

View File

@ -0,0 +1,237 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
*/
#include <k3-binman.dtsi>
/ {
binman: binman {
multiple-images;
};
};
#ifdef CONFIG_TARGET_AM642_R5_GEMINI
&binman {
/* tiboot3 for Revion A */
tiboot3-am64x-gemini-a.bin {
filename = "tiboot3-am64x-gemini.bin";
ti-secure-rom {
content = <&u_boot_spl_unsigned>, <&ti_sci_gp>, <&combined_sysfw_cfg_gp>;
combined;
content-sbl = <&u_boot_spl_unsigned>;
load = <0x70000000>;
content-sysfw = <&ti_sci_gp>;
load-sysfw = <0x44000>;
content-sysfw-data = <&combined_sysfw_cfg_gp>;
load-sysfw-data = <0x7b000>;
sw-rev = <1>;
keyfile = "ti-degenerate-key.pem";
};
u_boot_spl_unsigned: u-boot-spl {
no-expanded;
};
ti_sci_gp: ti-sci-gp.bin {
filename = "ti-sysfw/ti-sci-firmware-am64x-gp.bin";
type = "blob-ext";
optional;
};
combined_sysfw_cfg_gp: combined-sysfw-cfg-gp.bin {
filename = "combined-sysfw-cfg.bin";
type = "blob-ext";
};
};
};
&binman {
/* tiboot3 for Revion A */
tiboot3-am64x-gemini-b.bin {
filename = "tiboot3-am64x-gemini-b.bin";
symlink = "tiboot3.bin";
ti-secure-rom {
content = <&u_boot_spl_fs>, <&ti_sci_enc_fs>,
<&combined_sysfw_cfg_fs>, <&sysfw_inner_cert_fs>;
combined;
sysfw-inner-cert;
keyfile = "custMpk.pem";
sw-rev = <1>;
content-sbl = <&u_boot_spl_fs>;
content-sysfw = <&ti_sci_enc_fs>;
content-sysfw-data = <&combined_sysfw_cfg_fs>;
content-sysfw-inner-cert = <&sysfw_inner_cert_fs>;
load = <0x70000000>;
load-sysfw = <0x44000>;
load-sysfw-data = <0x7b000>;
};
u_boot_spl_fs: u-boot-spl {
no-expanded;
};
ti_sci_enc_fs: ti-fs-enc.bin {
filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-fs-enc.bin";
type = "blob-ext";
optional;
};
combined_sysfw_cfg_fs: combined-sysfw-cfg.bin {
filename = "combined-sysfw-cfg.bin";
type = "blob-ext";
};
sysfw_inner_cert_fs: sysfw-inner-cert {
filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-fs-cert.bin";
type = "blob-ext";
optional;
};
};
};
#else
#define TISPL "tispl.bin"
#define UBOOT_IMG "u-boot.img"
#define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
#define SPL_AM642_GEMINI_DTB "spl/dts/k3-am642-gemini-v1.dtb"
#define UBOOT_NODTB "u-boot-nodtb.bin"
#define AM642_GEMINI_DTB "arch/arm/dts/k3-am642-gemini-v1.dtb"
&binman {
ti-spl {
filename = TISPL;
pad-byte = <0xff>;
fit {
description = "Configuration to load ATF and SPL";
#address-cells = <1>;
images {
atf {
description = "ARM Trusted Firmware";
type = "firmware";
arch = "arm64";
compression = "none";
os = "arm-trusted-firmware";
load = <CONFIG_K3_ATF_LOAD_ADDR>;
entry = <CONFIG_K3_ATF_LOAD_ADDR>;
atf-bl31 {
filename = "bl31.bin";
};
};
tee {
description = "OPTEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <0x9e800000>;
entry = <0x9e800000>;
tee-os {
filename = "tee-pager_v2.bin";
};
};
dm {
description = "DM binary";
type = "firmware";
arch = "arm32";
compression = "none";
os = "DM";
load = <0x89000000>;
entry = <0x89000000>;
blob-ext {
filename = "/dev/null";
};
};
spl {
description = "SPL (64-bit)";
type = "standalone";
os = "U-Boot";
arch = "arm64";
compression = "none";
load = <0x80080000>;
entry = <0x80080000>;
blob {
filename = SPL_NODTB;
};
};
fdt-1 {
description = "k3-am642-gemini";
type = "flat_dt";
arch = "arm";
compression = "none";
blob {
filename = SPL_AM642_GEMINI_DTB;
};
};
};
configurations {
default = "conf-1";
conf-1 {
description = "k3-am642-gemini";
firmware = "atf";
loadables = "tee", "dm", "spl";
fdt = "fdt-1";
};
};
};
};
};
&binman {
u-boot {
filename = UBOOT_IMG;
pad-byte = <0xff>;
fit {
description = "FIT image with multiple configurations";
images {
uboot {
description = "U-Boot for am64x board";
type = "firmware";
os = "u-boot";
arch = "arm";
compression = "none";
load = <CONFIG_TEXT_BASE>;
blob {
filename = UBOOT_NODTB;
};
hash {
algo = "crc32";
};
};
fdt-1 {
description = "k3-am642-gemini";
type = "flat_dt";
arch = "arm";
compression = "none";
blob {
filename = AM642_GEMINI_DTB;
};
hash {
algo = "crc32";
};
};
};
configurations {
default = "conf-1";
conf-1 {
description = "k3-am642-gemini";
firmware = "uboot";
loadables = "uboot";
fdt = "fdt-1";
};
};
};
};
};
#endif

View File

@ -0,0 +1,155 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2020 Texas Instruments Incorporated - https://www.ti.com/
*/
#include <config.h>
#include "k3-am642-gemini-binman.dtsi"
/ {
chosen {
stdout-path = "serial2:115200n8";
tick-timer = &timer1;
};
memory@80000000 {
bootph-pre-ram;
};
};
&cbass_main{
bootph-pre-ram;
timer1: timer@2400000 {
compatible = "ti,omap5430-timer";
reg = <0x0 0x2400000 0x0 0x80>;
ti,timer-alwon;
clock-frequency = <200000000>;
bootph-pre-ram;
};
};
&main_conf {
bootph-pre-ram;
chipid@14 {
bootph-pre-ram;
};
};
&main_pmx0 {
bootph-pre-ram;
};
&main_i2c0 {
bootph-pre-ram;
};
&main_uart0 {
bootph-pre-ram;
};
&usb0 {
dr_mode="peripheral";
bootph-pre-ram;
};
&usbss0 {
bootph-pre-ram;
};
&main_mmc1_pins_default {
bootph-pre-ram;
};
&main_usb0_pins_default {
bootph-pre-ram;
};
&dmss {
bootph-pre-ram;
};
&secure_proxy_main {
bootph-pre-ram;
};
&dmsc {
bootph-pre-ram;
k3_sysreset: sysreset-controller {
compatible = "ti,sci-sysreset";
bootph-pre-ram;
status = "disabled";
};
};
&k3_pds {
bootph-pre-ram;
};
&k3_clks {
bootph-pre-ram;
};
&k3_reset {
bootph-pre-ram;
};
&sdhci0 {
bootph-pre-ram;
};
&sdhci1 {
bootph-pre-ram;
};
&cpsw_port2 {
status = "disabled";
};
&main_bcdma {
bootph-pre-ram;
reg = <0x00 0x485c0100 0x00 0x100>,
<0x00 0x4c000000 0x00 0x20000>,
<0x00 0x4a820000 0x00 0x20000>,
<0x00 0x4aa40000 0x00 0x20000>,
<0x00 0x4bc00000 0x00 0x100000>,
<0x00 0x48600000 0x00 0x8000>,
<0x00 0x484a4000 0x00 0x2000>,
<0x00 0x484c2000 0x00 0x2000>;
reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
"cfg", "tchan", "rchan";
};
&main_pktdma {
bootph-pre-ram;
reg = <0x00 0x485c0000 0x00 0x100>,
<0x00 0x4a800000 0x00 0x20000>,
<0x00 0x4aa00000 0x00 0x40000>,
<0x00 0x4b800000 0x00 0x400000>,
<0x00 0x485e0000 0x00 0x20000>,
<0x00 0x484a0000 0x00 0x4000>,
<0x00 0x484c0000 0x00 0x2000>,
<0x00 0x48430000 0x00 0x4000>;
reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt", "cfg",
"tchan", "rchan", "rflow";
};
&fss {
bootph-pre-ram;
};
&gpmc0 {
bootph-pre-ram;
};
&elm0 {
bootph-pre-ram;
};
&main_gpio0 {
bootph-pre-ram;
};
&main_gpio1 {
bootph-pre-ram;
};

View File

@ -0,0 +1,592 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
*/
/dts-v1/;
#include <dt-bindings/mux/ti-serdes.h>
#include <dt-bindings/phy/phy.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/net/ti-dp83867.h>
#include "k3-am642.dtsi"
/ {
compatible = "ti,am642-gemini", "ti,am642";
model = "NetModule AM642 based Gemini";
aliases {
i2c0 = &main_i2c0;
i2c1 = &main_i2c1;
i2c2 = &main_i2c2;
};
chosen {
stdout-path = "serial2:115200n8";
bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
};
memory@80000000 {
device_type = "memory";
/* 1G RAM */
reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
secure_ddr: optee@9e800000 {
reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
alignment = <0x1000>;
no-map;
};
main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
compatible = "shared-dma-pool";
reg = <0x00 0xa0000000 0x00 0x100000>;
no-map;
};
main_r5fss0_core0_memory_region: r5f-memory@a0100000 {
compatible = "shared-dma-pool";
reg = <0x00 0xa0100000 0x00 0xf00000>;
no-map;
};
main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
compatible = "shared-dma-pool";
reg = <0x00 0xa1000000 0x00 0x100000>;
no-map;
};
main_r5fss0_core1_memory_region: r5f-memory@a1100000 {
compatible = "shared-dma-pool";
reg = <0x00 0xa1100000 0x00 0xf00000>;
no-map;
};
main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 {
compatible = "shared-dma-pool";
reg = <0x00 0xa2000000 0x00 0x100000>;
no-map;
};
main_r5fss1_core0_memory_region: r5f-memory@a2100000 {
compatible = "shared-dma-pool";
reg = <0x00 0xa2100000 0x00 0xf00000>;
no-map;
};
main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 {
compatible = "shared-dma-pool";
reg = <0x00 0xa3000000 0x00 0x100000>;
no-map;
};
main_r5fss1_core1_memory_region: r5f-memory@a3100000 {
compatible = "shared-dma-pool";
reg = <0x00 0xa3100000 0x00 0xf00000>;
no-map;
};
rtos_ipc_memory_region: ipc-memories@a5000000 {
reg = <0x00 0xa5000000 0x00 0x00800000>;
alignment = <0x1000>;
no-map;
};
};
config {
u-boot,mmc-env-offset = <0x3e0000>; /* 4MB partition, we put it into the last 128 kB */
};
gemini-sysreset {
compatible = "gemini-sysreset";
};
};
&main_pmx0 {
main_mmc1_pins_default: main-mmc1-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x0294, PIN_INPUT, 0) /* (J19) MMC1_CMD */
AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* (#N/A) MMC1_CLKLB */
AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
AM64X_IOPAD(0x0288, PIN_INPUT, 0) /* (K21) MMC1_DAT0 */
AM64X_IOPAD(0x0284, PIN_INPUT, 0) /* (L21) MMC1_DAT1 */
AM64X_IOPAD(0x0280, PIN_INPUT, 0) /* (K19) MMC1_DAT2 */
AM64X_IOPAD(0x027c, PIN_INPUT, 0) /* (K18) MMC1_DAT3 */
AM64X_IOPAD(0x0298, PIN_INPUT, 0) /* (D19) MMC1_SDCD */
>;
};
main_uart0_pins_default: main-uart0-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */
AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */
>;
};
gpio0_pins: gpio0-pins {
pinctrl-single,pins = <
AM64X_IOPAD(0x0090, PIN_OUTPUT, 7) /* (P17) GPIO0_35 */
AM64X_IOPAD(0x008C, PIN_INPUT, 7) /* (T21) GPIO0_34 */
AM64X_IOPAD(0x00A0, PIN_OUTPUT, 7) /* (N16) GPIO0_39 */
AM64X_IOPAD(0x0098, PIN_INPUT, 7) /* (W19) GPIO0_37 */
AM64X_IOPAD(0x009C, PIN_INPUT, 7) /* (Y18) GPIO0_38 */
AM64X_IOPAD(0x0094, PIN_INPUT, 7) /* (Y19) GPIO0_36 */
AM64X_IOPAD(0x00A8, PIN_INPUT, 7) /* (R19) GPIO0_41 */
AM64X_IOPAD(0x00AC, PIN_INPUT, 7) /* (R20) GPIO0_42 */
AM64X_IOPAD(0x00A4, PIN_INPUT, 7) /* (N17) GPIO0_40 */
AM64X_IOPAD(0x011c, PIN_INPUT, 7) /* (AA13) GPIO0_70 */
AM64X_IOPAD(0x0128, PIN_OUTPUT, 7) /* (U12) GPIO0_73 */
AM64X_IOPAD(0x0150, PIN_INPUT, 7) /* (Y13) GPIO0_20 */
AM64X_IOPAD(0x0154, PIN_INPUT, 7) /* (V12) GPIO0_84 */
AM64X_IOPAD(0x00d8, PIN_INPUT, 7) /* (W13) GPIO0_53 */
AM64X_IOPAD(0x00cc, PIN_INPUT, 7) /* (V13) GPIO0_50 */
AM64X_IOPAD(0x0124, PIN_OUTPUT, 7) /* (V15) GPIO0_72 */
AM64X_IOPAD(0x012c, PIN_OUTPUT, 7) /* (V14) GPIO0_74 */
AM64X_IOPAD(0x0130, PIN_INPUT, 7) /* (W14) GPIO0_75 */
AM64X_IOPAD(0x014c, PIN_OUTPUT, 7) /* (AA14) GPIO0_19 */
AM64X_IOPAD(0x00e0, PIN_OUTPUT, 7) /* (U14) GPIO0_55 */
AM64X_IOPAD(0x00dc, PIN_OUTPUT, 7) /* (U15) GPIO0_54 */
AM64X_IOPAD(0x0114, PIN_INPUT, 7) /* (Y12) GPIO0_68 */
AM64X_IOPAD(0x0118, PIN_OUTPUT, 7) /* (W12) GPIO0_69 */
AM64X_IOPAD(0x00bc, PIN_INPUT, 7) /* (U8) GPIO0_46 */
AM64X_IOPAD(0x00c0, PIN_OUTPUT, 7) /* (W8) GPIO0_47 */
AM64X_IOPAD(0x00c4, PIN_OUTPUT, 7) /* (W8) GPIO0_48 */
AM64X_IOPAD(0x00c8, PIN_OUTPUT, 7) /* (W8) GPIO0_49 */
AM64X_IOPAD(0x00fc, PIN_INPUT, 7) /* (U7) GPIO0_62 */
AM64X_IOPAD(0x002c, PIN_OUTPUT, 7) /* (L19) GPIO0_11 */
AM64X_IOPAD(0x0030, PIN_OUTPUT, 7) /* (L18) GPIO0_12 */
AM64X_IOPAD(0x0034, PIN_OUTPUT, 7) /* (K17) GPIO0_13 */
AM64X_IOPAD(0x0038, PIN_OUTPUT, 7) /* (L17) GPIO0_14 */
AM64X_IOPAD(0x0014, PIN_OUTPUT, 7) /* (M20) GPIO0_5 */
AM64X_IOPAD(0x0018, PIN_OUTPUT, 7) /* (M21) GPIO0_6 */
AM64X_IOPAD(0x001c, PIN_OUTPUT, 7) /* (P21) GPIO0_7 */
AM64X_IOPAD(0x0020, PIN_OUTPUT, 7) /* (P20) GPIO0_8 */
AM64X_IOPAD(0x0024, PIN_OUTPUT, 7) /* (N18) GPIO0_9 */
AM64X_IOPAD(0x0028, PIN_OUTPUT, 7) /* (M17) GPIO0_10 */
>;
};
gpio1_pins: gpio1-pins {
pinctrl-single,pins = <
AM64X_IOPAD(0x01a8, PIN_OUTPUT, 7) /* (V1) PRG0_PRU0_GPO18.GPIO1_18 */
AM64X_IOPAD(0x01ac, PIN_OUTPUT, 7) /* (W1) PRG0_PRU0_GPO19.GPIO1_19 */
>;
};
main_i2c2_pins_default: main-i2c2-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x00B0, PIN_INPUT, 1) /* (P19) I2C2_SCL */
AM64X_IOPAD(0x00B4, PIN_INPUT, 1) /* (R21) I2C2_SDA */
>;
};
rmii1_pins_default: rmii1-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x01cc, PIN_INPUT, 5) /* (W5) PRG0_PRU1_GPO7.RMII1_RD0 */
AM64X_IOPAD(0x01d4, PIN_INPUT, 5) /* (Y5) PRG0_PRU1_GPO9.RMII1_RD1 */
AM64X_IOPAD(0x01d8, PIN_OUTPUT, 5) /* (V6) PRG0_PRU1_GPO10.RMII1_TD0 */
AM64X_IOPAD(0x01f4, PIN_OUTPUT, 5) /* (V5) PRG0_PRU1_GPO17.RMII1_TD1 */
AM64X_IOPAD(0x01fc, PIN_INPUT, 5) /* (R2) PRG0_PRU1_GPO17.RMII1_CRS_DV*/
AM64X_IOPAD(0x01f8, PIN_INPUT, 5) /* (P5) PRG0_PRU1_GPO17.RMII1_TX_EN */
AM64X_IOPAD(0x0188, PIN_INPUT, 5) /* (AA5) PRG0_PRU0_GPO10.RMII1_REF_CLK*/
AM64X_IOPAD(0x00d4, PIN_OUTPUT, 5) /* (U13) CLKOUT0 */
>;
};
mdio0_pins_default: mdio0-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x015c, PIN_OUTPUT_PULLUP, 4) /* (Y6) PRG1_MDIO0_MDC.MDIO0_MDC */
AM64X_IOPAD(0x0158, PIN_INPUT, 4) /* (AA6) PRG1_MDIO0_MDIO.MDIO0_MDIO */
AM64X_IOPAD(0x01ac, PIN_OUTPUT_PULLUP, 7) /* (W1) GPIO1_19 */
>;
};
main_usb0_pins_default: main-usb0-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
>;
};
main_i2c1_pins_default: main-i2c1-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */
AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */
>;
};
main_i2c0_pins_default: main-i2c0-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (P19) I2C2_SCL */
AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (R21) I2C2_SDA */
>;
};
};
&usbss0 {
ti,vbus-divider;
ti,usb2-only;
};
&usb0 {
dr_mode = "otg";
maximum-speed = "high-speed";
pinctrl-names = "default";
pinctrl-0 = <&main_usb0_pins_default>;
};
&main_i2c0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c0_pins_default>;
clock-frequency = <100000>;
da9063: pmic@58 {
compatible = "dlg,da9063";
reg = <0x58>;
regulators {
vddcore_reg: bcore1 {
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <850000>;
regulator-ramp-delay = <2>;
regulator-name = "DA9063_CORE";
regulator-always-on;
};
vddar_reg: bcore2 {
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <850000>;
regulator-ramp-delay = <2>;
regulator-name = "DA9063_AR";
regulator-always-on;
};
vdd_1v8_reg: bperi {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-ramp-delay = <2>;
regulator-always-on;
};
vdd_3v3_1_reg: bio {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vdd_3v3_2_reg: bmem {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vdd_1v1_reg: bpro {
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
};
vdd_gnss_reg: ldo3 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vdd_sensors_reg: ldo5 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vdd_stby_reg: ldo6 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
regulator-boot-on;
};
vdd_vdda: ldo10 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
};
vdd_5v_can_reg: ldo11 {
/* It is actually 5V but the driver does not support it */
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
regulator-boot-on;
};
};
};
};
/* SYS_I2C */
&main_i2c1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c1_pins_default>;
clock-frequency = <400000>;
/* There is no driver available */
onewire: ds2484@18 {
status = "disabled";
reg = <0x18>;
};
eeprom: eeprom@50 {
reg = <0x50>;
compatible = "onsemi,24c64";
};
temp: temp@48 {
reg = <0x48>;
compatible = "national,lm75";
/* vs-supply = <&vs>; */ /* Not available, maybe required then use fixed-regulator */
};
};
/* USER_I2C */
&main_i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c2_pins_default>;
clock-frequency = <400000>;
exp1: gpio@71 {
status = "okay";
compatible = "nxp,pca9538";
reg = <0x71>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "GPI_CTRL_PU_EN0", "GPI_CTRL_PU_EN1",
"GPI_CTRL_PU_EN2", "GPI_CTRL_PU_EN3",
"GPI_CTRL_PU_EN4", "GPI_CTRL_PU_EN5",
"", "";
};
exp2: gpio@72 {
status = "okay";
compatible = "nxp,pca9538";
reg = <0x73>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "GPIO0", "GPIO1",
"GPIO2", "GPIO3",
"GPO0", "GPO1",
"GPO2", "GPO3";
};
};
&sdhci0 {
/* emmc */
bus-width = <8>;
non-removable;
ti,driver-strength-ohm = <50>;
disable-wp;
/delete-property/ ti,otap-del-sel-hs200;
/delete-property/ ti,otap-del-sel-hs400;
};
&sdhci1 {
status = "disabled";
};
&cpsw3g {
pinctrl-names = "default";
pinctrl-0 = <&rmii1_pins_default>;
status = "okay";
};
&cpsw_port1 {
phy-mode = "rmii";
phy-handle = <&cpsw3g_phy0>;
status = "okay";
};
&cpsw3g_mdio {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mdio0_pins_default>;
cpsw3g_phy0: ethernet-phy@1 {
reg = <0x01>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
};
};
&main_gpio0 {
status = "okay";
ti,ngpio = <87>;
pinctrl-names = "default";
pinctrl-0 = <&gpio0_pins>;
wlan_en {
gpio-hog;
gpios = <5 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "WLAN_EN";
};
canfd0_en {
gpio-hog;
gpios = <74 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "CANFD0_CTRL_EN";
};
canfd1_en {
gpio-hog;
gpios = <72 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "CANFD1_CTRL_EN";
};
canfd0_stb {
gpio-hog;
gpios = <55 GPIO_ACTIVE_HIGH>;
output-low;
/* In V1 this is high active even though it is STB~ */
line-name = "CANFD0_CTRL_STB";
};
canfd1_stb {
gpio-hog;
gpios = <54 GPIO_ACTIVE_HIGH>;
output-low;
/* In V1 this is high active even though it is STB~ */
line-name = "CANFD1_CTRL_STB";
};
xpdr_rst {
gpio-hog;
gpios = <34 GPIO_ACTIVE_LOW>;
output-low;
line-name = "XPDR_RST";
};
hub_rst {
gpio-hog;
gpios = <19 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "HUB_RST";
};
gnss_rst {
gpio-hog;
gpios = <39 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "GNSS_RST";
};
};
&main_gpio1 {
status = "okay";
ti,ngpio = <88>;
pinctrl-names = "default";
pinctrl-0 = <&gpio1_pins>;
brdr_rst {
gpio-hog;
gpios = <18 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BRDR_RST";
};
eth_rst {
gpio-hog;
gpios = <19 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "ETH_RST";
};
};
&mailbox0_cluster2 {
mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
ti,mbox-rx = <0 0 2>;
ti,mbox-tx = <1 0 2>;
};
mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
ti,mbox-rx = <2 0 2>;
ti,mbox-tx = <3 0 2>;
};
};
&mailbox0_cluster3 {
status = "disabled";
};
&mailbox0_cluster4 {
mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
ti,mbox-rx = <0 0 2>;
ti,mbox-tx = <1 0 2>;
};
mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 {
ti,mbox-rx = <2 0 2>;
ti,mbox-tx = <3 0 2>;
};
};
&mailbox0_cluster5 {
status = "disabled";
};
&mailbox0_cluster6 {
mbox_m4_0: mbox-m4-0 {
ti,mbox-rx = <0 0 2>;
ti,mbox-tx = <1 0 2>;
};
};
&mailbox0_cluster7 {
status = "disabled";
};
&main_r5fss0_core0 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
memory-region = <&main_r5fss0_core0_dma_memory_region>,
<&main_r5fss0_core0_memory_region>;
};
&main_r5fss0_core1 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
memory-region = <&main_r5fss0_core1_dma_memory_region>,
<&main_r5fss0_core1_memory_region>;
};
&main_r5fss1_core0 {
mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
memory-region = <&main_r5fss1_core0_dma_memory_region>,
<&main_r5fss1_core0_memory_region>;
};
&main_r5fss1_core1 {
mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
memory-region = <&main_r5fss1_core1_dma_memory_region>,
<&main_r5fss1_core1_memory_region>;
};
#include "k3-am642-gemini-u-boot.dtsi"

View File

@ -0,0 +1,226 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2020 Texas Instruments Incorporated - https://www.ti.com/
*/
/dts-v1/;
#include "k3-am642.dtsi"
#include "k3-am64-sk-lp4-1600MTs.dtsi"
#include "k3-am64-ddr.dtsi"
#include "k3-am642-gemini-binman.dtsi"
/ {
chosen {
stdout-path = "serial2:115200n8";
tick-timer = &timer1;
};
aliases {
remoteproc0 = &sysctrler;
remoteproc1 = &a53_0;
};
memory@80000000 {
device_type = "memory";
/* 1G RAM */
reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
u-boot,dm-spl;
};
a53_0: a53@0 {
compatible = "ti,am654-rproc";
reg = <0x00 0x00a90000 0x00 0x10>;
power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>;
resets = <&k3_reset 135 0>;
clocks = <&k3_clks 61 0>;
assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
assigned-clock-parents = <&k3_clks 61 2>;
assigned-clock-rates = <200000000>, <1000000000>;
ti,sci = <&dmsc>;
ti,sci-proc-id = <32>;
ti,sci-host-id = <10>;
u-boot,dm-spl;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
secure_ddr: optee@9e800000 {
reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
alignment = <0x1000>;
no-map;
};
};
clk_200mhz: dummy-clock-200mhz {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
u-boot,dm-spl;
};
};
&cbass_main {
sysctrler: sysctrler {
compatible = "ti,am654-system-controller";
mboxes= <&secure_proxy_main 1>, <&secure_proxy_main 0>;
mbox-names = "tx", "rx";
u-boot,dm-spl;
};
};
&cbass_main {
main_esm: esm@420000 {
compatible = "ti,j721e-esm";
reg = <0x0 0x420000 0x0 0x1000>;
ti,esm-pins = <160>, <161>;
u-boot,dm-spl;
};
};
&cbass_mcu {
u-boot,dm-spl;
mcu_esm: esm@4100000 {
compatible = "ti,j721e-esm";
reg = <0x0 0x4100000 0x0 0x1000>;
ti,esm-pins = <0>, <1>;
u-boot,dm-spl;
};
};
&main_pmx0 {
u-boot,dm-spl;
main_uart0_pins_default: main-uart0-pins-default {
u-boot,dm-spl;
pinctrl-single,pins = <
AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */
AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */
AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */
AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */
>;
};
main_mmc0_pins_default: main-mmc0-pins-default {
u-boot,dm-spl;
pinctrl-single,pins = <
AM64X_IOPAD(0x01a8, PIN_INPUT_PULLDOWN, 0) /* (B25) MMC0_CLK */
AM64X_IOPAD(0x01aC, PIN_INPUT_PULLUP, 0) /* (B27) MMC0_CMD */
AM64X_IOPAD(0x01a4, PIN_INPUT_PULLUP, 0) /* (A26) MMC0_DAT0 */
AM64X_IOPAD(0x01a0, PIN_INPUT_PULLUP, 0) /* (E25) MMC0_DAT1 */
AM64X_IOPAD(0x019c, PIN_INPUT_PULLUP, 0) /* (C26) MMC0_DAT2 */
AM64X_IOPAD(0x0198, PIN_INPUT_PULLUP, 0) /* (A25) MMC0_DAT3 */
AM64X_IOPAD(0x0194, PIN_INPUT_PULLUP, 0) /* (E24) MMC0_DAT4 */
AM64X_IOPAD(0x0190, PIN_INPUT_PULLUP, 0) /* (A24) MMC0_DAT5 */
AM64X_IOPAD(0x018c, PIN_INPUT_PULLUP, 0) /* (B26) MMC0_DAT6 */
AM64X_IOPAD(0x0188, PIN_INPUT_PULLUP, 0) /* (D25) MMC0_DAT7 */
AM64X_IOPAD(0x01b0, PIN_INPUT, 0) /* (C25) MMC0_DS */
>;
};
main_mmc1_pins_default: main-mmc1-pins-default {
u-boot,dm-spl;
pinctrl-single,pins = <
AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
AM64X_IOPAD(0x029c, PIN_INPUT_PULLUP, 0) /* (C20) MMC1_SDWP */
>;
};
main_usb0_pins_default: main-usb0-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
>;
};
ospi0_pins_default: ospi0-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (N20) OSPI0_CLK */
AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (L19) OSPI0_CSn0 */
AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* (M19) OSPI0_D0 */
AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* (M18) OSPI0_D1 */
AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* (M20) OSPI0_D2 */
AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* (M21) OSPI0_D3 */
AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* (P21) OSPI0_D4 */
AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* (P20) OSPI0_D5 */
AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* (N18) OSPI0_D6 */
AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* (M17) OSPI0_D7 */
AM64X_IOPAD(0x0008, PIN_INPUT, 0) /* (N19) OSPI0_DQS */
>;
};
};
&dmsc {
mboxes= <&secure_proxy_main 0>,
<&secure_proxy_main 1>,
<&secure_proxy_main 0>;
mbox-names = "rx", "tx", "notify";
ti,host-id = <35>;
ti,secure-host;
};
&main_uart0 {
/delete-property/ power-domains;
/delete-property/ clocks;
/delete-property/ clock-names;
pinctrl-names = "default";
pinctrl-0 = <&main_uart0_pins_default>;
status = "okay";
};
&sdhci0 {
/delete-property/ power-domains;
clocks = <&clk_200mhz>;
clock-names = "clk_xin";
ti,driver-strength-ohm = <50>;
disable-wp;
pinctrl-0 = <&main_mmc0_pins_default>;
/delete-property/ ti,otap-del-sel-hs200;
/delete-property/ ti,otap-del-sel-hs400;
};
&sdhci1 {
/delete-property/ power-domains;
clocks = <&clk_200mhz>;
clock-names = "clk_xin";
ti,driver-strength-ohm = <50>;
disable-wp;
pinctrl-0 = <&main_mmc1_pins_default>;
};
&main_gpio0 {
/delete-property/ power-domains;
};
&usbss0 {
ti,vbus-divider;
ti,usb2-only;
};
&usb0 {
dr_mode = "otg";
maximum-speed = "high-speed";
pinctrl-names = "default";
pinctrl-0 = <&main_usb0_pins_default>;
};
/* EEPROM might be read before SYSFW is available */
&main_i2c0 {
/delete-property/ power-domains;
};
&memorycontroller {
// ti,ddr-freq0 = <200000000>;
};
#include "k3-am642-gemini-u-boot.dtsi"

View File

@ -195,6 +195,7 @@ config K3_X509_SWRV
help help
SWRV for X509 certificate used for boot images SWRV for X509 certificate used for boot images
source "board/nm/am64x/Kconfig"
source "board/ti/am65x/Kconfig" source "board/ti/am65x/Kconfig"
source "board/ti/am64x/Kconfig" source "board/ti/am64x/Kconfig"
source "board/ti/am62x/Kconfig" source "board/ti/am62x/Kconfig"
@ -204,4 +205,5 @@ source "board/ti/j721e/Kconfig"
source "board/siemens/iot2050/Kconfig" source "board/siemens/iot2050/Kconfig"
source "board/ti/j721s2/Kconfig" source "board/ti/j721s2/Kconfig"
source "board/ti/j784s4/Kconfig" source "board/ti/j784s4/Kconfig"
endif endif

View File

@ -200,6 +200,11 @@ void init_env(void)
env_init(); env_init();
env_relocate(); env_relocate();
switch (spl_boot_device()) { switch (spl_boot_device()) {
case BOOT_DEVICE_MMC1:
part = env_get("bootpart");
env_set("storage_interface", "mmc");
env_set("fw_dev_part", part);
break;
case BOOT_DEVICE_MMC2: case BOOT_DEVICE_MMC2:
part = env_get("bootpart"); part = env_get("bootpart");
env_set("storage_interface", "mmc"); env_set("storage_interface", "mmc");

61
board/nm/am64x/Kconfig Normal file
View File

@ -0,0 +1,61 @@
# SPDX-License-Identifier: GPL-2.0+
#
# Copyright (C) 2020 Texas Instruments Incorporated - https://www.ti.com/
choice
prompt "NetModule boards"
optional
config TARGET_AM642_A53_GEMINI
bool "TI K3 based AM642 Gemini Board from NetModule for A53"
select ARM64
select SOC_K3_AM642
select BINMAN
imply BOARD
imply SPL_BOARD
config TARGET_AM642_R5_GEMINI
bool "TI K3 based AM642 Gemini Board from NetModule for R5"
select CPU_V7R
select SYS_THUMB_BUILD
select K3_LOAD_SYSFW
select SOC_K3_AM642
select RAM
select SPL_RAM
select K3_DDRSS
select BINMAN
imply SYS_K3_SPL_ATF
endchoice
if TARGET_AM642_A53_GEMINI
config SYS_BOARD
default "am64x"
config SYS_VENDOR
default "nm"
config SYS_CONFIG_NAME
default "am64x_gemini"
source "board/ti/common/Kconfig"
endif
if TARGET_AM642_R5_GEMINI
config SYS_BOARD
default "am64x"
config SYS_VENDOR
default "nm"
config SYS_CONFIG_NAME
default "am64x_gemini"
config SPL_LDSCRIPT
default "arch/arm/mach-omap2/u-boot-spl.lds"
source "board/ti/common/Kconfig"
endif

9
board/nm/am64x/Makefile Normal file
View File

@ -0,0 +1,9 @@
#
# Copyright (C) 2020 Texas Instruments Incorporated - https://www.ti.com/
# Keerthy <j-keerthy@ti.com>
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y += gemini.o
obj-$(CONFIG_TARGET_AM642_A53_GEMINI) += sysreset.o

View File

@ -0,0 +1,37 @@
# SPDX-License-Identifier: GPL-2.0+
# Copyright (C) 2022 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

170
board/nm/am64x/gemini.c Normal file
View File

@ -0,0 +1,170 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Board specific initialization for AM642 EVM
*
* Copyright (C) 2020-2022 Texas Instruments Incorporated - https://www.ti.com/
* Keerthy <j-keerthy@ti.com>
*
*/
#include <common.h>
#include <asm/io.h>
#include <env.h>
#include <net.h>
#include <dm/uclass.h>
#include <k3-ddrss.h>
#include <spl.h>
#include <fdt_support.h>
#include <asm/gpio.h>
#include <asm/arch/hardware.h>
#include <asm/arch/sys_proto.h>
#include <linux/delay.h>
DECLARE_GLOBAL_DATA_PTR;
int board_init(void)
{
return 0;
}
int dram_init(void)
{
s32 ret;
ret = fdtdec_setup_mem_size_base();
if (ret)
printf("Error setting up mem size and base. %d\n", ret);
return ret;
}
int dram_init_banksize(void)
{
s32 ret;
ret = fdtdec_setup_memory_banksize();
if (ret)
printf("Error setting up memory banksize. %d\n", ret);
return ret;
}
#ifdef CONFIG_SPL_LOAD_FIT
int board_fit_config_name_match(const char *name)
{
return 0;
}
#endif
#if defined(CONFIG_SPL_BUILD)
#if CONFIG_IS_ENABLED(USB_STORAGE)
static int fixup_usb_boot(const void *fdt_blob)
{
int ret = 0;
switch (spl_boot_device()) {
case BOOT_DEVICE_USB:
/*
* If the boot mode is host, fixup the dr_mode to host
* before cdns3 bind takes place
*/
ret = fdt_find_and_setprop((void *)fdt_blob,
"/bus@f4000/cdns-usb@f900000/usb@f400000",
"dr_mode", "host", 5, 0);
if (ret)
printf("%s: fdt_find_and_setprop() failed:%d\n",
__func__, ret);
fallthrough;
default:
break;
}
return ret;
}
#endif
#if defined(CONFIG_K3_AM64_DDRSS)
static void fixup_ddr_driver_for_ecc(struct spl_image_info *spl_image)
{
struct udevice *dev;
int ret;
dram_init_banksize();
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
if (ret)
panic("Cannot get RAM device for ddr size fixup: %d\n", ret);
ret = k3_ddrss_ddr_fdt_fixup(dev, spl_image->fdt_addr, gd->bd);
if (ret)
printf("Error fixing up ddr node for ECC use! %d\n", ret);
}
#else
static void fixup_memory_node(struct spl_image_info *spl_image)
{
u64 start[CONFIG_NR_DRAM_BANKS];
u64 size[CONFIG_NR_DRAM_BANKS];
int bank;
int ret;
dram_init();
dram_init_banksize();
for (bank = 0; bank < CONFIG_NR_DRAM_BANKS; bank++) {
start[bank] = gd->bd->bi_dram[bank].start;
size[bank] = gd->bd->bi_dram[bank].size;
}
/* dram_init functions use SPL fdt, and we must fixup u-boot fdt */
ret = fdt_fixup_memory_banks(spl_image->fdt_addr, start, size, CONFIG_NR_DRAM_BANKS);
if (ret)
printf("Error fixing up memory node! %d\n", ret);
}
#endif
void spl_perform_fixups(struct spl_image_info *spl_image)
{
#if defined(CONFIG_K3_AM64_DDRSS)
fixup_ddr_driver_for_ecc(spl_image);
#else
fixup_memory_node(spl_image);
#endif
#if CONFIG_IS_ENABLED(USB_STORAGE)
fixup_usb_boot(spl_image->fdt_addr);
#endif
}
#endif
int checkboard(void)
{
printf("Board: GEMINI rev 1\n");
return 0;
}
#ifdef CONFIG_BOARD_LATE_INIT
int board_late_init(void)
{
/* The Ethernet PHY needs a delay, maybe we find a better fix for this */
mdelay(10);
return 0;
}
#endif
#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

View File

@ -0,0 +1,12 @@
# SPDX-License-Identifier: GPL-2.0+
# Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
#
# Power management configuration for AM64x
#
---
pm-cfg:
rev:
boardcfg_abi_maj : 0x0
boardcfg_abi_min : 0x1

1400
board/nm/am64x/rm-cfg.yaml Normal file

File diff suppressed because it is too large Load Diff

380
board/nm/am64x/sec-cfg.yaml Normal file
View File

@ -0,0 +1,380 @@
# SPDX-License-Identifier: GPL-2.0+
# Copyright (C) 2022 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]

60
board/nm/am64x/sysreset.c Normal file
View File

@ -0,0 +1,60 @@
// SPDX-License-Identifier: GPL-2.0+
#include <common.h>
#include <dm.h>
#include <errno.h>
#include <log.h>
#include <sysreset.h>
#include <dm/device_compat.h>
#include <linux/err.h>
#include <power/pmic.h>
struct gemini_sysreset_data {
struct udevice *pmic;
};
static int gemini_sysreset_probe(struct udevice *dev)
{
struct gemini_sysreset_data *data = dev_get_priv(dev);
int ret;
debug("%s(dev=%p)\n", __func__, dev);
if (!data)
return -ENOMEM;
ret = pmic_get("pmic@58", &data->pmic);
if (ret)
return ret;
return 0;
}
static int gemini_sysreset_request(struct udevice *dev, enum sysreset_t type)
{
struct gemini_sysreset_data *data = dev_get_priv(dev);
debug("Reset PMIC DA9063 %p\n", data->pmic);
pmic_reg_write(data->pmic, 0x13, 0x7);
return 0;
}
static struct sysreset_ops gemini_sysreset_ops = {
.request = gemini_sysreset_request,
};
static const struct udevice_id gemini_sysreset_of_match[] = {
{ .compatible = "gemini-sysreset", },
{ /* sentinel */ },
};
U_BOOT_DRIVER(gemini_sysreset) = {
.name = "gemini-sysreset",
.id = UCLASS_SYSRESET,
.of_match = gemini_sysreset_of_match,
.probe = gemini_sysreset_probe,
.priv_auto = sizeof(struct gemini_sysreset_data),
.ops = &gemini_sysreset_ops,
};

436
board/nm/common/schema.yaml Normal file
View File

@ -0,0 +1,436 @@
# SPDX-License-Identifier: GPL-2.0+
# Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
#
# Config schema for TI K3 devices
#
---
definitions:
u8:
type: integer
minimum: 0
maximum: 0xff
u16:
type: integer
minimum: 0
maximum: 0xffff
u32:
type: integer
minimum: 0
maximum: 0xffffffff
type: object
properties:
pm-cfg:
type: object
properties:
rev:
type: object
properties:
boardcfg_abi_maj:
$ref: "#/definitions/u8"
boardcfg_abi_min:
$ref: "#/definitions/u8"
board-cfg:
type: object
properties:
rev:
type: object
properties:
boardcfg_abi_maj:
$ref: "#/definitions/u8"
boardcfg_abi_min:
$ref: "#/definitions/u8"
control:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
main_isolation_enable:
$ref: "#/definitions/u8"
main_isolation_hostid:
$ref: "#/definitions/u16"
secproxy:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
scaling_factor:
$ref: "#/definitions/u8"
scaling_profile:
$ref: "#/definitions/u8"
disable_main_nav_secure_proxy:
$ref: "#/definitions/u8"
msmc:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
msmc_cache_size:
$ref: "#/definitions/u8"
debug_cfg:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
trace_dst_enables:
$ref: "#/definitions/u16"
trace_src_enables:
$ref: "#/definitions/u16"
sec-cfg:
type: object
properties:
rev:
type: object
properties:
boardcfg_abi_maj:
$ref: "#/definitions/u8"
boardcfg_abi_min:
$ref: "#/definitions/u8"
processor_acl_list:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
proc_acl_entries:
type: array
minItems: 32
maxItems: 32
items:
type: object
properties:
processor_id:
$ref: "#/definitions/u8"
proc_access_master:
$ref: "#/definitions/u8"
proc_access_secondary:
type: array
minItems: 3
maxItems: 3
items:
$ref: "#/definitions/u8"
host_hierarchy:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
host_hierarchy_entries:
type: array
minItems: 32
maxItems: 32
items:
type: object
properties:
host_id:
$ref: "#/definitions/u8"
supervisor_host_id:
$ref: "#/definitions/u8"
otp_config:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
otp_entry:
type: array
minItems: 32
maxItems: 32
items:
type: object
properties:
host_id:
$ref: "#/definitions/u8"
host_perms:
$ref: "#/definitions/u8"
write_host_id:
$ref: "#/definitions/u8"
dkek_config:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
allowed_hosts:
type: array
minItems: 4
maxItems: 4
items:
$ref: "#/definitions/u8"
allow_dkek_export_tisci:
$ref: "#/definitions/u8"
rsvd:
type: array
minItems: 3
maxItems: 3
items:
$ref: "#/definitions/u8"
sa2ul_cfg:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
rsvd:
type: array
minItems: 2
maxItems: 4
items:
$ref: "#/definitions/u8"
enable_saul_psil_global_config_writes:
$ref: "#/definitions/u8"
auth_resource_owner:
$ref: "#/definitions/u8"
sec_dbg_config:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
allow_jtag_unlock:
$ref: "#/definitions/u8"
allow_wildcard_unlock:
$ref: "#/definitions/u8"
allowed_debug_level_rsvd:
$ref: "#/definitions/u8"
rsvd:
$ref: "#/definitions/u8"
min_cert_rev:
$ref: "#/definitions/u32"
jtag_unlock_hosts:
type: array
minItems: 4
maxItems: 4
items:
$ref: "#/definitions/u8"
sec_handover_cfg:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
handover_msg_sender:
$ref: "#/definitions/u8"
handover_to_host_id:
$ref: "#/definitions/u8"
rsvd:
type: array
minItems: 4
maxItems: 4
items:
$ref: "#/definitions/u8"
rm-cfg:
type: object
properties:
rm_boardcfg:
type: object
properties:
rev:
type: object
properties:
boardcfg_abi_maj:
$ref: "#/definitions/u8"
boardcfg_abi_min:
$ref: "#/definitions/u8"
host_cfg:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
host_cfg_entries:
type: array
minItems: 0
maxItems: 32
items:
type: object
properties:
host_id:
$ref: "#/definitions/u8"
allowed_atype:
$ref: "#/definitions/u8"
allowed_qos:
$ref: "#/definitions/u16"
allowed_orderid:
$ref: "#/definitions/u32"
allowed_priority:
$ref: "#/definitions/u16"
allowed_sched_priority:
$ref: "#/definitions/u8"
resasg:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
resasg_entries_size:
$ref: "#/definitions/u16"
reserved:
$ref: "#/definitions/u16"
resasg_entries:
type: array
minItems: 0
maxItems: 468
items:
type: object
properties:
start_resource:
$ref: "#/definitions/u16"
num_resource:
$ref: "#/definitions/u16"
type:
$ref: "#/definitions/u16"
host_id:
$ref: "#/definitions/u8"
reserved:
$ref: "#/definitions/u8"
tifs-rm-cfg:
type: object
properties:
rm_boardcfg:
type: object
properties:
rev:
type: object
properties:
boardcfg_abi_maj:
$ref: "#/definitions/u8"
boardcfg_abi_min:
$ref: "#/definitions/u8"
host_cfg:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
host_cfg_entries:
type: array
minItems: 0
maxItems: 32
items:
type: object
properties:
host_id:
$ref: "#/definitions/u8"
allowed_atype:
$ref: "#/definitions/u8"
allowed_qos:
$ref: "#/definitions/u16"
allowed_orderid:
$ref: "#/definitions/u32"
allowed_priority:
$ref: "#/definitions/u16"
allowed_sched_priority:
$ref: "#/definitions/u8"
resasg:
type: object
properties:
subhdr:
type: object
properties:
magic:
$ref: "#/definitions/u16"
size:
$ref: "#/definitions/u16"
resasg_entries_size:
$ref: "#/definitions/u16"
reserved:
$ref: "#/definitions/u16"
resasg_entries:
type: array
minItems: 0
maxItems: 468
items:
type: object
properties:
start_resource:
$ref: "#/definitions/u16"
num_resource:
$ref: "#/definitions/u16"
type:
$ref: "#/definitions/u16"
host_id:
$ref: "#/definitions/u8"
reserved:
$ref: "#/definitions/u8"

1
board/nm/keys Symbolic link
View File

@ -0,0 +1 @@
../ti/keys

View File

@ -0,0 +1,180 @@
CONFIG_ARM=y
CONFIG_SKIP_LOWLEVEL_INIT=y
CONFIG_ARCH_K3=y
CONFIG_SYS_MALLOC_LEN=0x2000000
CONFIG_SYS_MALLOC_F_LEN=0x8000
CONFIG_SPL_GPIO=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=2
CONFIG_SOC_K3_AM642=y
CONFIG_K3_ATF_LOAD_ADDR=0x701c0000
CONFIG_TARGET_AM642_A53_GEMINI=y
CONFIG_ENV_SIZE=0x20000
CONFIG_ENV_OFFSET=0x3e0000
CONFIG_DM_GPIO=y
CONFIG_SPL_DM_SPI=y
CONFIG_DEFAULT_DEVICE_TREE="k3-am642-gemini-v1"
CONFIG_SPL_TEXT_BASE=0x80080000
CONFIG_SPL_MMC=y
CONFIG_SPL_SERIAL=y
CONFIG_SPL_DRIVERS_MISC=y
CONFIG_SPL_STACK_R_ADDR=0x82000000
CONFIG_SPL_FS_FAT=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI=y
CONFIG_DISTRO_DEFAULTS=y
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80480000
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY=y
CONFIG_LEGACY_IMAGE_FORMAT=y
CONFIG_BOOTCOMMAND="run distro_bootcmd"
CONFIG_BOARD_LATE_INIT=y
CONFIG_SPL_MAX_SIZE=0x180000
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
CONFIG_SPL_BSS_START_ADDR=0x80a00000
CONFIG_SPL_BSS_MAX_SIZE=0x80000
CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
CONFIG_SPL_STACK_R=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x180000
CONFIG_SYS_SPL_MALLOC=y
CONFIG_SYS_SPL_MALLOC_SIZE=0x800000
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x1600
CONFIG_SPL_DMA=y
CONFIG_SPL_ENV_SUPPORT=y
CONFIG_SPL_ETH=y
CONFIG_SPL_FS_LOAD_PAYLOAD_NAME="u-boot.img"
CONFIG_SPL_I2C=y
CONFIG_SPL_DM_MAILBOX=y
CONFIG_SPL_DM_SPI_FLASH=y
CONFIG_SPL_NET=y
CONFIG_SPL_NET_VCI_STRING="AM64X U-Boot A53 SPL"
CONFIG_SPL_POWER_DOMAIN=y
CONFIG_SPL_RAM_SUPPORT=y
CONFIG_SPL_RAM_DEVICE=y
CONFIG_SPL_SPI_LOAD=y
CONFIG_SYS_SPI_U_BOOT_OFFS=0x280000
CONFIG_SPL_USB_HOST=y
CONFIG_SPL_USB_STORAGE=y
CONFIG_SPL_USB_GADGET=y
CONFIG_SPL_DFU=y
CONFIG_SPL_YMODEM_SUPPORT=y
CONFIG_SYS_MAXARGS=64
CONFIG_SYS_BOOTM_LEN=0x800000
CONFIG_CMD_ASKENV=y
CONFIG_CMD_CLK=y
CONFIG_CMD_DFU=y
CONFIG_CMD_DM=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_GPT=y
CONFIG_CMD_I2C=y
CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
CONFIG_CMD_TIME=y
CONFIG_CMD_PMIC=y
CONFIG_CMD_REGULATOR=y
CONFIG_OF_CONTROL=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_MULTI_DTB_FIT=y
CONFIG_SPL_MULTI_DTB_FIT=y
CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_SPL_ENV_IS_NOWHERE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_SPL_DM=y
CONFIG_SPL_DM_SEQ_ALIAS=y
CONFIG_REGMAP=y
CONFIG_SPL_REGMAP=y
CONFIG_SYSCON=y
CONFIG_SPL_SYSCON=y
CONFIG_SPL_OF_TRANSLATE=y
CONFIG_CLK=y
CONFIG_SPL_CLK=y
CONFIG_SPL_CLK_CCF=y
CONFIG_CLK_CCF=y
CONFIG_CLK_TI_SCI=y
CONFIG_DFU_MMC=y
CONFIG_DFU_RAM=y
CONFIG_DFU_SF=y
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x40000
CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
CONFIG_DMA_CHANNELS=y
CONFIG_TI_K3_NAVSS_UDMA=y
CONFIG_TI_SCI_PROTOCOL=y
CONFIG_GPIO_HOG=y
CONFIG_DA8XX_GPIO=y
CONFIG_DM_PCA953X=y
CONFIG_DM_I2C=y
CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
CONFIG_DM_I2C_GPIO=y
CONFIG_SYS_I2C_OMAP24XX=y
CONFIG_DM_MAILBOX=y
CONFIG_K3_SEC_PROXY=y
CONFIG_SUPPORT_EMMC_BOOT=y
CONFIG_MMC_HS400_SUPPORT=y
CONFIG_SPL_MMC_HS400_SUPPORT=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_ADMA=y
CONFIG_SPL_MMC_SDHCI_ADMA=y
CONFIG_MMC_SDHCI_AM654=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SPI_FLASH_STMICRO=y
CONFIG_MULTIPLEXER=y
CONFIG_MUX_MMIO=y
CONFIG_PHY_TI_DP83867=y
CONFIG_PHY_FIXED=y
CONFIG_TI_AM65_CPSW_NUSS=y
CONFIG_PHY=y
CONFIG_SPL_PHY=y
CONFIG_PHY_CADENCE_SIERRA=y
CONFIG_PHY_CADENCE_TORRENT=y
CONFIG_PHY_J721E_WIZ=y
CONFIG_PINCTRL=y
CONFIG_SPL_PINCTRL=y
CONFIG_PINCTRL_SINGLE=y
CONFIG_POWER_DOMAIN=y
CONFIG_TI_SCI_POWER_DOMAIN=y
CONFIG_DM_PMIC=y
CONFIG_DM_PMIC_DA9063=y
CONFIG_DM_REGULATOR=y
CONFIG_K3_SYSTEM_CONTROLLER=y
CONFIG_REMOTEPROC_TI_K3_ARM64=y
CONFIG_DM_RESET=y
CONFIG_RESET_TI_SCI=y
CONFIG_DM_SERIAL=y
CONFIG_SOC_DEVICE=y
CONFIG_SOC_DEVICE_TI_K3=y
CONFIG_SOC_TI=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_CADENCE_QSPI=y
CONFIG_SYSRESET=y
CONFIG_SPL_SYSRESET=y
CONFIG_SYSRESET_TI_SCI=y
CONFIG_DM_THERMAL=y
CONFIG_USB=y
CONFIG_DM_USB_GADGET=y
CONFIG_SPL_DM_USB_GADGET=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_CDNS3=y
CONFIG_USB_CDNS3_GADGET=y
CONFIG_USB_CDNS3_HOST=y
CONFIG_SPL_USB_CDNS3_GADGET=y
CONFIG_SPL_USB_CDNS3_HOST=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
CONFIG_USB_GADGET_VENDOR_NUM=0x0451
CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
CONFIG_USB_GADGET_DOWNLOAD=y
CONFIG_USB_FUNCTION_MASS_STORAGE=y
CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
CONFIG_LZO=y
CONFIG_HEXDUMP=y

View File

@ -0,0 +1,170 @@
CONFIG_ARM=y
CONFIG_ARCH_K3=y
CONFIG_SYS_MALLOC_LEN=0x2000000
CONFIG_SYS_MALLOC_F_LEN=0x80000
CONFIG_SPL_GPIO=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=2
CONFIG_SOC_K3_AM642=y
CONFIG_TARGET_AM642_R5_GEMINI=y
CONFIG_DM_GPIO=y
CONFIG_SPL_DM_SPI=y
CONFIG_SYS_SPI_U_BOOT_OFFS=0x100000
CONFIG_DEFAULT_DEVICE_TREE="k3-am642-r5-gemini-v1"
CONFIG_SPL_TEXT_BASE=0x70000000
CONFIG_SPL_MMC=y
CONFIG_SPL_SERIAL=y
CONFIG_SPL_DRIVERS_MISC=y
CONFIG_SPL_STACK_R_ADDR=0x82000000
CONFIG_SPL_SIZE_LIMIT=0x190000
CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK=0x4000
CONFIG_SPL_FS_FAT=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI=y
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x7019b800
CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x80080000
CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_SPL_SIZE_LIMIT_SUBTRACT_GD=y
CONFIG_SPL_SIZE_LIMIT_SUBTRACT_MALLOC=y
CONFIG_SPL_MAX_SIZE=0x180000
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
CONFIG_SPL_BSS_START_ADDR=0x7019b800
CONFIG_SPL_BSS_MAX_SIZE=0x4000
CONFIG_SPL_SYS_REPORT_STACK_F_USAGE=y
CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
CONFIG_SPL_STACK_R=y
CONFIG_SPL_SEPARATE_BSS=y
CONFIG_SYS_SPL_MALLOC=y
CONFIG_HAS_CUSTOM_SPL_MALLOC_START=y
CONFIG_CUSTOM_SYS_SPL_MALLOC_ADDR=0x84000000
CONFIG_SYS_SPL_MALLOC_SIZE=0x1000000
CONFIG_SPL_EARLY_BSS=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x600
CONFIG_SPL_DMA=y
CONFIG_SPL_I2C=y
CONFIG_SPL_DM_MAILBOX=y
CONFIG_SPL_DM_SPI_FLASH=y
CONFIG_SPL_NET=y
CONFIG_SPL_NET_VCI_STRING="AM64X U-Boot R5 SPL"
CONFIG_SPL_DM_RESET=y
CONFIG_SPL_POWER_SUPPORT=y
CONFIG_SPL_POWER_DOMAIN=y
CONFIG_SPL_RAM_SUPPORT=y
CONFIG_SPL_RAM_DEVICE=y
CONFIG_SPL_REMOTEPROC=y
CONFIG_SPL_SPI_LOAD=y
CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
CONFIG_SPL_USB_HOST=y
CONFIG_SPL_USB_STORAGE=y
CONFIG_SPL_THERMAL=y
CONFIG_SPL_USB_GADGET=y
CONFIG_SPL_DFU=y
CONFIG_SPL_YMODEM_SUPPORT=y
CONFIG_HUSH_PARSER=y
CONFIG_SYS_MAXARGS=64
CONFIG_CMD_DFU=y
CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y
CONFIG_CMD_REMOTEPROC=y
CONFIG_CMD_USB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_DHCP=y
CONFIG_CMD_TIME=y
CONFIG_CMD_FAT=y
CONFIG_OF_CONTROL=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_SPL_MULTI_DTB_FIT=y
CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
CONFIG_SPL_ENV_SUPPORT=y
CONFIG_ENV_IS_NOWHERE=y
CONFIG_SPL_DM=y
CONFIG_SPL_DM_SEQ_ALIAS=y
CONFIG_REGMAP=y
CONFIG_SPL_REGMAP=y
CONFIG_SYSCON=y
CONFIG_SPL_SYSCON=y
CONFIG_SPL_OF_TRANSLATE=y
CONFIG_CLK=y
CONFIG_SPL_CLK=y
CONFIG_SPL_CLK_CCF=y
CONFIG_CLK_CCF=y
CONFIG_CLK_TI_SCI=y
CONFIG_DFU_MMC=y
CONFIG_DFU_RAM=y
CONFIG_DFU_SF=y
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
CONFIG_DMA_CHANNELS=y
CONFIG_TI_K3_NAVSS_UDMA=y
CONFIG_TI_SCI_PROTOCOL=y
CONFIG_DA8XX_GPIO=y
CONFIG_DM_I2C=y
CONFIG_SYS_I2C_OMAP24XX=y
CONFIG_DM_MAILBOX=y
CONFIG_K3_SEC_PROXY=y
CONFIG_ESM_K3=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_ADMA=y
CONFIG_SPL_MMC_SDHCI_ADMA=y
CONFIG_MMC_SDHCI_AM654=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SPI_FLASH_STMICRO=y
CONFIG_PHY_TI_DP83867=y
CONFIG_TI_AM65_CPSW_NUSS=y
CONFIG_PHY=y
CONFIG_SPL_PHY=y
CONFIG_PHY_CADENCE_SIERRA=y
CONFIG_PHY_CADENCE_TORRENT=y
CONFIG_PHY_J721E_WIZ=y
CONFIG_PINCTRL=y
# CONFIG_PINCTRL_GENERIC is not set
CONFIG_SPL_PINCTRL=y
# CONFIG_SPL_PINCTRL_GENERIC is not set
CONFIG_PINCTRL_SINGLE=y
CONFIG_POWER_DOMAIN=y
CONFIG_TI_SCI_POWER_DOMAIN=y
CONFIG_DM_REGULATOR=y
CONFIG_SPL_DM_REGULATOR=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_SPL_DM_REGULATOR_GPIO=y
CONFIG_K3_SYSTEM_CONTROLLER=y
CONFIG_REMOTEPROC_TI_K3_ARM64=y
CONFIG_DM_RESET=y
CONFIG_RESET_TI_SCI=y
CONFIG_SPECIFY_CONSOLE_INDEX=y
CONFIG_DM_SERIAL=y
CONFIG_SOC_DEVICE=y
CONFIG_SOC_DEVICE_TI_K3=y
CONFIG_SOC_TI=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_CADENCE_QSPI=y
CONFIG_DM_THERMAL=y
CONFIG_TIMER=y
CONFIG_SPL_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_DM_USB_GADGET=y
CONFIG_SPL_DM_USB_GADGET=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_CDNS3=y
CONFIG_USB_CDNS3_GADGET=y
CONFIG_USB_CDNS3_HOST=y
CONFIG_SPL_USB_CDNS3_GADGET=y
CONFIG_SPL_USB_CDNS3_HOST=y
CONFIG_USB_STORAGE=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
CONFIG_USB_GADGET_VENDOR_NUM=0x0451
CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
CONFIG_USB_GADGET_DOWNLOAD=y
CONFIG_FS_FAT_MAX_CLUSTSIZE=16384

View File

@ -0,0 +1,63 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Configuration header file for K3 AM642 SoC family
*
* Copyright (C) 2020 Texas Instruments Incorporated - https://www.ti.com/
* Keerthy <j-keerthy@ti.com>
*/
#ifndef __CONFIG_AM642_GEMINI_H
#define __CONFIG_AM642_GEMINI_H
#include <linux/sizes.h>
#include <environment/ti/mmc.h>
#include <asm/arch/am64_hardware.h>
#include <environment/ti/k3_dfu.h>
/* DDR Configuration */
#define CONFIG_SYS_SDRAM_BASE1 0x880000000
/* Allow a simple U-Boot update */
#define UPDATE_UBOOT_CMD \
"update_uboot=setenv ipaddr 192.168.1.1 && setenv serverip 192.168.1.254 && mmc dev 0 1 && " \
"tftp $loadaddr gemini/tiboot3.bin && mmc write $loadaddr 0 0x600 && " \
"tftp $loadaddr gemini/tispl.bin && mmc write ${loadaddr} 0x600 0x800 && " \
"tftp $loadaddr gemini/u-boot.img && mmc write ${loadaddr} 0x1600 0x800;\0"
#define EXTRA_ENV_DFUARGS \
DFU_ALT_INFO_MMC \
DFU_ALT_INFO_EMMC \
DFU_ALT_INFO_RAM
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>
#undef BOOT_TARGET_DEVICES
/* Add support for distro boot */
#if defined(CONFIG_DISTRO_DEFAULTS)
#define BOOT_TARGET_DEVICES(func) \
func(MMC, mmc, CONFIG_SYS_MMC_ENV_DEV)
#include <config_distro_bootcmd.h>
#else
#define BOOTENV ""
#endif
#define GEMINI_ENV \
"ipaddr=192.168.1.1\0" \
"serverip=192.168.1.254\0" \
#undef CFG_EXTRA_ENV_SETTINGS
/* Incorporate settings into the U-Boot environment */
#define CFG_EXTRA_ENV_SETTINGS \
BOOTENV \
UPDATE_UBOOT_CMD \
DEFAULT_LINUX_BOOT_ENV \
DEFAULT_FIT_TI_ARGS \
DEFAULT_MMC_TI_ARGS \
EXTRA_ENV_DFUARGS \
GEMINI_ENV
#endif /* __CONFIG_AM642_GEMINI_H */