2022-07-26

[개발노트] stm32mp1 kirk 4.0 stm32mp153에서 cpufreq-dt 오류.

커널소스에 두줄 추가.
    { .compatible = "st,stih418", },
    { .compatible = "st,stm32mp151", }, //추가.
    { .compatible = "st,stm32mp153", }, //추가.
    { .compatible = "st,stm32mp157", },
   
    { .compatible = "ti,am33xx", },

[개발노트] sc16is720 켜기

Device Drivers  ---> 
Character devices  ---> 
Serial drivers  ---> 
<*> SC16IS7xx serial support
 [*]   SC16IS7xx for spi interface

2022-07-25

[개발노트] stm32mp1 PWM 켜기

Multifunction device drivers  --->
{*} Support for STM32 Timers

[*] Pulse-Width Modulation (PWM) Support  --->
 <*>   STMicroelectronics STM32 PWM

[개발노트] DSA켜기 커널옵션

순서대로....
[*] Networking support  --->
Networking options  --->
<*>   The IPv6 protocol  --->
 <*> 802.1d Ethernet Bridging
<*> High-availability Seamless Redundancy (HSR & PRP)
<*> Distributed Switch Architecture  ---> 
-*-   Tag driver for SMSC/Microchip LAN9303 family of switches
 
Device Drivers  --->
[*] Network device support  --->
 Distributed Switch Architecture drivers  --->
<*> SMSC/Microchip LAN9303 3-ports 10/100 ethernet switch in MDIO managed mode

2022-07-19

[개발노트] 루트파일시스템만 빌드할때 이렇게.

bitbake -C rootfs st-image-core (대문자주의)

[개발노트]u-boot env를 linux에서 접근하기.

1. build/conf/local.conf 에 라이브러리 추가한다.
IMAGE_INSTALL_append = " u-boot-fw-utils"

2. 루트파일시스템의 etc에 설정파일 추가.
/etc/fw_env.config
# Device name Device offset Env. size Flash sector size
    1. /dev/mmcblk1p1 -0x2000 0x2000
    2. /dev/mmcblk1p1 -0x4000 0x2000

  1. 3. fw_printenv aaa 333 이렇게 쓴다.

[개발노트] 이렇게 정말해야되냐.

커널을 손본후에 이미지빌드를 하면, 원복된다. 왜그럴까.
아래대로 하면 한번은 유지된다.

bitbake -c menuconfig virtual/kernel
bitbake -c savedefconfig virtual/kernel
cp /home/happycpu/work/Distribution-Package/openstlinux-5.10-dunfell-mp1-21-11-17/build-openstlinuxweston-stm32mp153d-ssonic/tmp-glibc/work/stm32mp153d_ssonic-ostl-linux-gnueabi/linux-stm32mp/5.10.61-stm32mp-r2-r0/build/defconfig ./workspace/sources/linux-stm32mp/arch/arm/configs/multi_v7_defconfig
bitbake st-image-core

[개발노트] stm32mp1 u-boot 74hc595 살리기 config, dts.

devtool modify u-boot-stm32mp 를 통해 workspace에 생성된?(이동된)  u-boot소스의
device tree는 심볼릭 링크이다. layers.......mx/stm32mp15x{보드명}/u-boot 에 실제파일있음.

1. u-boot 의 configs/stm32mp15_trusted_defconfig 파일 에 spi-gpio를 추가해준다.
(Distribution-package에서는 menuconfig 실행이 지원안되어 직접 config파일 편집함)
CONFIG_DM_74X164=y
CONFIG_SOFT_SPI=y

2. device tree 수정.

루트 맨 밑에 (오버레이항목말고) 그냥 추가
soft_spi: soft-spi {
        compatible = "spi-gpio";
        pinctrl-names = "default";
        //pinctrl-0 = <&pinctrl_spi4>;
        //pinctrl-assert-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
        status = "okay";
        gpio-sck = <&gpioe 12 0>;
        gpio-mosi = <&gpioe 14 0>;
        cs-gpios = <&gpioe 11 0>;
        num-chipselects = <1>;
        #address-cells = <1>;
        #size-cells = <0>;
        spi-delay-us = <1>;

        gpio_spi: gpio_spi {
            compatible = "fairchild,74hc595";
            reg = <0>;
            gpio-controller;
            #gpio-cells = <2>;
            registers-number = <4>;
            spi-max-frequency = <100000>;
            output-latch-gpio = <&gpioe 11 0>;
            registers-default = /bits/ 8 <0xFF 0xFF 0x00 0x00>;
        };
    };

u-boot빌드는 이전에 올린 글 참조.

2022-07-18

[개발노트] 74hc595의 초기값 제어 안되는 문제해결


u-boot 의 595는 초기 register-default 값이 적용되는데.
kernel의 595는 초기 값이 제어되지 않는현상.

원인.
u-boot에는 register-default 를 읽어서 적용해주는부분이 있고 커널에는 없고.

대책
제어해주면 되지.

방법.(커널소스 디바이스드라이버 수정)
driver->gpio->gpio-74x164.c 아래 중간부분 추가.
    chip->gpio_chip.ngpio = GEN_74X164_NUMBER_GPIOS * chip->registers;

    of_property_read_u8_array(spi->dev.of_node, "registers-default",
                  chip->buffer, chip->registers);

    chip->gpio_chip.can_sleep = true;


[개발노트] Distribution-package의 u-boot 수정 및 컴파및 수정 [ums 이용]

1. devtool modify u-boot-stm32mp
(뭔가 잘못됬을시에는 devtool reset u-boot-stm32mp )

2. 소스수정. 위치는 workspace/source........

3. devtool build u-boot-stm32mp

4. bitbake u-boot-stm32mp -c deploy

5. bitbake tf-a-stm32mp -c deploy -f

최종폴더 fip에 결합된 fipXXX.bin파일이 있음.

u-boot> ums 0 mmc 1
PC$> ls -l /dev/disk/by-partlabel/
lrwxrwxrwx 1 root root 10  7월 18 14:47  boot -> ../../sdd2
lrwxrwxrwx 1 root root 10  7월 18 14:47  fip -> ../../sdd1
lrwxrwxrwx 1 root root 10  7월 18 14:47  rootfs -> ../../sdd4
lrwxrwxrwx 1 root root 10  7월 18 14:47  vendorfs -> ../../sdd3

sudo dd if=tmp-glibc/deploy/images/stm32mp153d-ssonic/fip/fip-stm32mp153d-ssonic-trusted.bin of=/dev/sdd1 bs=1M conv=fdatasync
[sudo] happycpu 암호:
0+1 레코드 들어옴
0+1 레코드 나감
1042421 bytes (1.0 MB, 1018 KiB) copied, 0.0663301 s, 15.7 MB/s

u-boot> reset


2022-07-15

[개발노트]kirkstone build

$ mkdir kirk

$ cd kirk

$ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15

Fetching: 100% (8/8), done in 5m51.931s
Garbage collecting: 100% (8/8), done in 0.029s
Checking out: 100% (8/8), done in 0.699s
repo sync has finished successfully

$ ls
layers

mx폴더 구성

kirk/layers/meta-st/meta-st-stm32mp-addons/mx/stm32mp153d-ssonic$ ls
kernel  optee-os  tf-a  u-boot

// conf 복사.

kirk/layers/meta-st/meta-st-stm32mp-addons/conf/machine$ ls
examples  stm32mp13-mx.conf  stm32mp15-mx.conf  stm32mp153d-ssonic.conf

// eula 구성

kirk/layers/meta-st/meta-st-stm32mp-addons/conf/eula$ ls
LICENCE.broadcom_bcm43xx  Vivante_GPU_drivers-End_User_Software_License_Terms.txt  stm32mp15-mx
LICENCE.cypress           en.SLA0048.txt                                           stm32mp153d-ssonic
ST_EULA_ALPHA             en.sla0078.txt
ST_EULA_SLA               stm32mp13-mx

 

kirk/layers/meta-st$ MACHINE=stm32mp153d-ssonic DISTRO=openstlinux-weston source layers/meta-st/script/envsetup.sh

 

*주의할점.

MACHINE이름은 꼭. stm32mp15까지는 붙여준다. 이름을 해석해서 해더파일이 합쳐지는 동작이있다.


암호화 + base64 하고 쉘스크립트.

 #!/bin/bash # IV와 UserKey를 설정합니다 (아스키 문자열을 그대로 사용). IV="0123456789abcdef"  UserKey="0123456789abcdef" # IV와 UserKey를 16...