arm: stm32h7: Support for the STM32H747I-DISCO board
Alexandre TORGUE
alexandre.torgue at foss.st.com
Tue Mar 15 09:06:04 CET 2022
Hi Johannes
On 3/7/22 20:14, Johannes (krjdev) Krottmayer wrote:
> 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. :)
If you only introduce stm32h747 disco board I think it is better to stop
at STM32H747. If there are no boards including STM32H755 / H757 no need
to add them.
>>>
>>> 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.
Have a look on my pull request for v5.18. DMA2D support has been added
in stm32f469 disco board.
>
> The SoC series includes a Cortex-M7 and a Cortex-M4. Currently I have
> the following CPU node in the device tree:
You declare M4 + M7 as a cluster ? Linux runs on both ? I thought that
M4 was more a coprocessor in this case.
>
> ---
> 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