AM437x-EVM을 빌려서 , 집에서 가지고 놀게 되었지만, TI에서 제공되는 자료가 거의 오픈이 되어서 너무 좋고, 설정하기도 편하다.
역시 BeagleBone Board에 보다 성능이 좋다.
- AM437x EVM
1.1 AM437x-EVM 의 HDMI 설정 및 분석
AM437x인 경우 기본적으로 HDMI Host controller 가 존재하지 않아 Silicon Image사의Chip 인 Sil9022A을 이용하여
HDMI를 전송을 하고 있으며, 이를 설정하기 위해서는 Device Tree 설정파일인 DTB만 변경하면된다.
- DSS( Display Subsystem)의 역할
기존에 사용하던 모든이 Hsync와 Vsync, Pixel Clock 및 Data0~23, En 로 기본구성이 되어있다.
많이 사용되어지고 있는 MIPI DSI는 구현이 되어있지 않다고 되어있다.
ERRATA에 보면 DSS에 많은 제약이 있음을 알게된다. (해상도 및 memory bandwidth )
관련자료
http://www.ti.com/lit/ug/spruhl7f/spruhl7f.pdf
1.2 AM437x EVM HDMI HW 관련 정보
VIDEO 같은 경우는 LCD모드와 크게 별반 차이가 없다고 생각하면 되겠다.
- DSS, 영상 Data(AM437X_LCD_DATA0~15) -> Buffer Chip(SN74LVC32244ZKE,SN74LVC244A ) 전압 3.3V변화 및 Buffer
- 변경된 DATA -> Sil9022A 연결
- McASP -> Buffer Chip 전압 변경
- 변경된 DATA -> Sil9022A 연결
http://processors.wiki.ti.com/images/9/95/Am437x_gp_evm_3k0006_schematic_rev1_4a.pdf
http://processors.wiki.ti.com/index.php/AM437X_EVM_Boards
BSP를 Download 가능하며, Image를 가지고 쉽게 Write를 하여 SD Boot로 TEST 가능.
관련자료
http://www.ti.com/tool/tmdsevm437x#descriptionArea
처음 회로도를 보고, LCD와 HDMI 동시 출력이 가능할 것이라고 생각을 했지만,
지원이 되지 않는다고 TI에서 명시를 해주고 있다. 이부분은 시간이 나면 다시 확인해봐야겠지만,
현재 시간이 없어 추후 회로도에서 TI Buffer chip 3개 부분을 다시 잘 보면 되겠다.
Memory bandwidth 제한으로 인하여 HD급 영상만 720p@60 재생이 되며,
AM437x 현재 Sigle output으로 LCD or HDMI 를 동시에 출력이 불가능하다고 한다.
- 일반적인 HDMI 설정변경
Device Tree인 *.dtb를 이용하여 변경을 하면된다고 한다.
관련자료
http://processors.wiki.ti.com/index.php/Linux_Core_DSS_User%27s_Guide#AM4_Boards
1.3 AM437x EVM GP HDMI 설정
위에서 설명했듯이 기본으로 제공해주는 Device Tree 인 파일인 DTB 파일을 찾아 변경을 해주면된다.
- prebuilt-Image 의 Device Tree 설정확인
$ ./board-support/prebuilt-images $ ls MLO-am437x-evm am437x-gp-evm.dtb am43x-epos-evm-hdmi.dtb u-boot-am437x-evm.img uEnv.txt am437x-gp-evm-hdmi.dtb am437x-sk-evm.dtb am43x-epos-evm.dtb u-boot-spl.bin-am437x-evm zImage-am437x-evm.bin
- Kernel Device Tree 설정 확인
$ cd ./board-support/linux* $ vi arch/arm/boot/dts/am437x-gp-evm-hdmi.dts // device tree 설정확인 ....
- AM437x Device Tree 관련내용
Uboot Script 과 Kernel Device Tree
http://ahyuo79.blogspot.kr/2015/08/am437x-kernel-device-tree.html
2. UBOOT 설정 변경
현재 AM437x는 bootz라는 command를 이용하여 zImage와 *.dtb 을 booting한다.
uboot에서 findfdt 에서 fdtfile을 직접 변경하거나, board_name을 변경한다면
dtb 설정이 변경이 된다.
이 부분은 상위 device tree 부분을 참조
3. Sys File 변경 및 Uboot 설정변경
http://e2e.ti.com/support/arm/sitara_arm/f/791/p/551865/2017650
http://processors.wiki.ti.com/index.php/Matrix_Users_Guide#I_don.27t_want_Matrix_to_run_on_boot_up
https://e2e.ti.com/support/arm/sitara_arm/f/791/p/358458/1258352#1258352
http://processors.wiki.ti.com/index.php/DSS2_SYSFS_Examples#SYSFS_Entries_for_FB
4. AM437x EVM Devic 확인사항
2. UBOOT 설정 변경
현재 AM437x는 bootz라는 command를 이용하여 zImage와 *.dtb 을 booting한다.
uboot에서 findfdt 에서 fdtfile을 직접 변경하거나, board_name을 변경한다면
dtb 설정이 변경이 된다.
이 부분은 상위 device tree 부분을 참조
3. Sys File 변경 및 Uboot 설정변경
$ fbset // display 해상도 확인 $ fbset -i // display 해상도 확인
http://e2e.ti.com/support/arm/sitara_arm/f/791/p/551865/2017650
http://processors.wiki.ti.com/index.php/Matrix_Users_Guide#I_don.27t_want_Matrix_to_run_on_boot_up
https://e2e.ti.com/support/arm/sitara_arm/f/791/p/358458/1258352#1258352
http://processors.wiki.ti.com/index.php/DSS2_SYSFS_Examples#SYSFS_Entries_for_FB
4. AM437x EVM Devic 확인사항
.... omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz // 아래 driver 는 I2C로 설정 sii9022 1-003b: sil9022 HDMI Chip version = b0 ....