arm: stm32h7: Support for the STM32H747I-DISCO board
Johannes (krjdev) Krottmayer
krjdev at gmail.com
Mon Mar 7 20:14:46 CET 2022
Hi Patrice
On 07.03.22 18:38, Patrice CHOTARD wrote:
> Hi Johannes
>
> +Alexandre who is STM32 kernel maintainer.
Okay, no problem. :)
> On 3/7/22 18:24, Johannes (krjdev) Krottmayer wrote:
>> Hi Patrice
>>
>> Thanks for the answer.
>>
>> On 07.03.22 17:09, Patrice CHOTARD wrote:
>>>> But there some issues on the website:
>>>> - According the website, the board has 256Mbit external SDRAM
>>>>
>>>> That's not true. There is a 512MBit SDRAM from ISSI mounted.
>>
>> It's a 256Mbit SDRAM mounted on the board. First looked in the
>> schematics in the user manual and there are two SDRAM types
>> (256MBit and 512Bit from ISSI). But unfortunately no notice
>> which type is really mounted.
>>
>> Sorry, my mistake.
>>
>>>> Can I release a patch series here, when my work is done? I don't
>>>> know if there any interest for other users exists, to add here
>>>> the support to U-Boot.
>>>
>>> Yes please, it's still useful to get a new STM32 board supported in U-Boot ;-)
>>
>> Device-Trees:
>> I would release SoC device-trees for other types in this series too.
>> Made a base SoC (dtsi) for the STM32H745. The STM32H747 includes this
>> device-tree as base configuration, because according the TRM, the
>> STM32H747 has an additional feature, the DSI interface.
>>
>> Other SoC series:
>> - STM32H755:
>> STM32H755 source also STM32H745, because the additional features is
>> the HASH and the CRYPTO controller.
>>
>> - STM32H757:
>> STM32H757 source also STM32H747 because the SoC has also the DSI
>> interface and the HASH and the CRYPTO controller.
>>
>> So I would create following SoC device-trees:
>> stm32h745.dtsi -> This is the base device-tree
>> stm22h747.dtsi
>> stm22h755.dtsi
>> stm32h757.dtsi
>>
>> Of course also for STM32H747I-DISCO. :)
>>
>> Okay?
>
> I am okay with your approach.
>
> By default, we synchronized U-boot device tree with kernel device tree.
> First it will be preferable to do the job on kernel side.
> As soon as it will be accepted, then we will synchronize the device tree on U-Boot side.
Okay.
> Alex, are you agree with this ?
Hi Alexandre
About the device-trees. I would add all peripherals from these SoC's
in the device-tree.
Here I have a question:
The SoC's includes the Chrom-ART Accelerator (DMA2D) for hardware
accelerated 2D graphic. I have searched both in U-Boot and Linux in
the source tree, but didn't find any support.
Would create a new device-tree device (st,stm32-dma2d) for this
graphic controller. Maybe I could add driver support to both U-Boot
and Linux.
The SoC series includes a Cortex-M7 and a Cortex-M4. Currently I have
the following CPU node in the device tree:
---
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu-map {
cluster0 {
core0 {
cpu = &cpu0;
};
};
cluster1 {
core0 {
cpu = &cpu1;
};
};
};
cpu0: cpu at 0 {
device_type = "cpu";
compatible = "arm,cortex-m7";
reg = <0>;
operating-points-v2 = <&cpu0_opp_table>;
};
cpu1: cpu at 100 {
device_type = "cpu";
compatible = "arm,cortex-m4";
reg = <100>;
operating-points-v2 = <&cpu1_opp_table>;
};
/*
* Operating characteristics Cortex-M7
*
* - LDO regulator ON
* - Run mode (Data and code processing)
* - Only Cortex-M7 ON
* - All peripherals OFF
*
* Please see datasheet for details
*
*/
cpu0_opp_table: opp_table0 {
compatible = "operating-points-v2";
opp-vos3 {
opp-hz = /bits/ 64 <200000000>;
opp-microvolt = <1000000>;
opp-microamp = <34500>;
};
opp-vos2 {
opp-hz = /bits/ 64 <300000000>;
opp-microvolt = <1100000>;
opp-microamp = <55000>;
};
opp-vos1 {
opp-hz = /bits/ 64 <400000000>;
opp-microvolt = <1200000>;
opp-microamp = <80000>;
};
opp-vos0 {
opp-hz = /bits/ 64 <480000000>;
opp-microvolt = <1350000>;
opp-microamp = <110000>;
turbo-mode;
};
};
/*
* Operating characteristics Cortex-M4
*
* - LDO regulator ON
* - Run mode (Data and code processing)
* - Only Cortex-M4 ON
* - ART accelerator ON
* - All peripherals OFF
*
* Please see datasheet for details
*
*/
cpu1_opp_table: opp_table1 {
compatible = "operating-points-v2";
opp-vos3 {
opp-hz = /bits/ 64 <100000000>;
opp-microvolt = <1000000>;
opp-microamp = <35000>;
};
opp-vos2 {
opp-hz = /bits/ 64 <150000000>;
opp-microvolt = <1100000>;
opp-microamp = <56000>;
};
opp-vos1 {
opp-hz = /bits/ 64 <200000000>;
opp-microvolt = <1200000>;
opp-microamp = <79000>;
};
opp-vos0 {
opp-hz = /bits/ 64 <240000000>;
opp-microvolt = <1350000>;
opp-microamp = <121000>;
turbo-mode;
};
};
};
---
Okay?
Kind regards,
Johannes K.
More information about the U-Boot
mailing list