Re: [PATCH v2] board: armltd: Add support for Total Compute platform

2020-08-12 Thread Usama Arif




On 12/08/2020 15:53, Tom Rini wrote:

On Wed, Aug 12, 2020 at 03:08:14PM +0100, Usama Arif wrote:

Total Compute is based on ARM architecture and has
the following features enabled in u-boot:
- PL011 UART
- PL180 MMC
- NOR Flash
- FIT image with Signature
- AVB

Signed-off-by: Usama Arif 
---
Changes for v2:
  - Added arch/arm/dts/total_compute.dts to 
board/armltd/total_compute/MAINTAINERS
  - Added bootm_size of 512 MB for total compute board.

[snip]

+#define CONFIG_EXTRA_ENV_SETTINGS  \
+   "bootm_size=0x2000\0" \
+   "load_addr=0xa000\0"  \
+   "kernel_addr_r=0x8008\0"  \
+   "initrd_addr_r=0x8800\0"  \
+   "fdt_addr_r=0x8300\0" \
+   "fdt_high=0x\0"   \
+   "initrd_high=0x\0"


You need to drop fdt_high/initrd_high too as that's disabling relocation
and that is almost never the right choice.  Thanks!



Removed fdt_high and initrd_high in v3 to allow relocation. Thanks again 
for the review.


Usama


Re: [PATCH v2] board: armltd: Add support for Total Compute platform

2020-08-12 Thread Tom Rini
On Wed, Aug 12, 2020 at 03:08:14PM +0100, Usama Arif wrote:
> Total Compute is based on ARM architecture and has
> the following features enabled in u-boot:
> - PL011 UART
> - PL180 MMC
> - NOR Flash
> - FIT image with Signature
> - AVB
> 
> Signed-off-by: Usama Arif 
> ---
> Changes for v2:
>  - Added arch/arm/dts/total_compute.dts to 
> board/armltd/total_compute/MAINTAINERS
>  - Added bootm_size of 512 MB for total compute board.
[snip]
> +#define CONFIG_EXTRA_ENV_SETTINGS\
> + "bootm_size=0x2000\0"   \
> + "load_addr=0xa000\0"\
> + "kernel_addr_r=0x8008\0"\
> + "initrd_addr_r=0x8800\0"\
> + "fdt_addr_r=0x8300\0"   \
> + "fdt_high=0x\0" \
> + "initrd_high=0x\0"

You need to drop fdt_high/initrd_high too as that's disabling relocation
and that is almost never the right choice.  Thanks!

-- 
Tom


signature.asc
Description: PGP signature


[PATCH v2] board: armltd: Add support for Total Compute platform

2020-08-12 Thread Usama Arif
Total Compute is based on ARM architecture and has
the following features enabled in u-boot:
- PL011 UART
- PL180 MMC
- NOR Flash
- FIT image with Signature
- AVB

Signed-off-by: Usama Arif 
---
Changes for v2:
 - Added arch/arm/dts/total_compute.dts to 
board/armltd/total_compute/MAINTAINERS
 - Added bootm_size of 512 MB for total compute board.

 arch/arm/Kconfig   | 11 +++
 arch/arm/dts/Makefile  |  2 +
 arch/arm/dts/total_compute.dts | 48 +++
 arch/arm/include/asm/gpio.h|  2 +-
 board/armltd/total_compute/Kconfig | 12 +++
 board/armltd/total_compute/MAINTAINERS |  7 ++
 board/armltd/total_compute/Makefile|  6 ++
 board/armltd/total_compute/total_compute.c | 67 
 configs/total_compute_defconfig| 53 +
 include/configs/total_compute.h| 92 ++
 10 files changed, 299 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/total_compute.dts
 create mode 100644 board/armltd/total_compute/Kconfig
 create mode 100644 board/armltd/total_compute/MAINTAINERS
 create mode 100644 board/armltd/total_compute/Makefile
 create mode 100644 board/armltd/total_compute/total_compute.c
 create mode 100644 configs/total_compute_defconfig
 create mode 100644 include/configs/total_compute.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 6b8a32c38d..20ae4af9c2 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1195,6 +1195,15 @@ config TARGET_VEXPRESS64_JUNO
select USB
select DM_USB
 
+config TARGET_TOTAL_COMPUTE
+   bool "Support Total Compute Platform"
+   select ARM64
+   select PL01X_SERIAL
+   select DM
+   select DM_SERIAL
+   select DM_MMC
+   select DM_GPIO
+
 config TARGET_LS2080A_EMU
bool "Support ls2080a_emu"
select ARCH_LS2080A
@@ -1893,6 +1902,8 @@ source "arch/arm/mach-imx/Kconfig"
 
 source "arch/arm/mach-nexell/Kconfig"
 
+source "board/armltd/total_compute/Kconfig"
+
 source "board/bosch/shc/Kconfig"
 source "board/bosch/guardian/Kconfig"
 source "board/CarMediaLab/flea3/Kconfig"
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 8ecf63e988..5fc0840c5a 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -978,6 +978,8 @@ dtb-$(CONFIG_TARGET_VEXPRESS_CA5X2) += vexpress-v2p-ca5s.dtb
 dtb-$(CONFIG_TARGET_VEXPRESS_CA9X4) += vexpress-v2p-ca9.dtb
 dtb-$(CONFIG_TARGET_VEXPRESS_CA15_TC2) += vexpress-v2p-ca15_a7.dtb
 
+dtb-$(CONFIG_TARGET_TOTAL_COMPUTE) += total_compute.dtb
+
 dtb-$(CONFIG_TARGET_DURIAN) += phytium-durian.dtb
 
 dtb-$(CONFIG_TARGET_PRESIDIO_ASIC) += ca-presidio-engboard.dtb
diff --git a/arch/arm/dts/total_compute.dts b/arch/arm/dts/total_compute.dts
new file mode 100644
index 00..4399269a44
--- /dev/null
+++ b/arch/arm/dts/total_compute.dts
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2020 Arm Limited
+ */
+
+/dts-v1/;
+
+/ {
+   model = "total_compute";
+   compatible = "arm,total_compute";
+   #address-cells = <2>;
+   #size-cells = <2>;
+
+   sysreg: sysreg@1c01 {
+   compatible = "arm,vexpress-sysreg";
+   reg = <0x0 0x001c01 0x0 0x1000>;
+   gpio-controller;
+   #gpio-cells = <2>;
+   };
+
+   fixed_3v3: v2m-3v3 {
+   compatible = "regulator-fixed";
+   regulator-name = "3V3";
+   regulator-min-microvolt = <330>;
+   regulator-max-microvolt = <330>;
+   regulator-always-on;
+   };
+
+   mmci@1c05 {
+   compatible = "arm,pl180", "arm,primecell";
+   reg = <0x0 0x001c05 0x0 0x1000>;
+   cd-gpios = <&sysreg 0 0>;
+   arm,primecell-periphid = <0x00880180>;
+   wp-gpios = <&sysreg 1 0>;
+   bus-width = <8>;
+   max-frequency = <1200>;
+   vmmc-supply = <&fixed_3v3>;
+   clocks = <&clock24mhz>, <&clock24mhz>;
+   clock-names = "mclk", "apb_pclk";
+   };
+
+   clock24mhz: clock24mhz {
+   compatible = "fixed-clock";
+   #clock-cells = <0>;
+   clock-frequency = <2400>;
+   clock-output-names = "bp:clock24mhz";
+   };
+};
diff --git a/arch/arm/include/asm/gpio.h b/arch/arm/include/asm/gpio.h
index 7dc87afb83..6ecb876eda 100644
--- a/arch/arm/include/asm/gpio.h
+++ b/arch/arm/include/asm/gpio.h
@@ -3,7 +3,7 @@
!defined(CONFIG_ARCH_BCM6858) && !defined(CONFIG_ARCH_BCM63158) && \
!defined(CONFIG_ARCH_ROCKCHIP) && !defined(CONFIG_ARCH_ASPEED) && \
!defined(CONFIG_ARCH_U8500) && !defined(CONFIG_CORTINA_PLATFORM) && \
-   !defined(CONFIG_TARGET_BCMNS3)
+   !defined(CONFIG_TARGET_BCMNS3) && !defined(CONFIG_TARGET_TOTAL_COMPUTE)
 #include 
 #endif
 #include 
diff --git a/board/armltd/total_compute/Kconfig 
b/board/armltd/