저는 지금...삼성 s3c2410 개발 보드인 smdk2410 보드로 이전에 ezboard-m01
에 사용되었던 LG 6.4인치 LCD를 8bpp 모드로 동작시키려고 하고 있습니다.
ezboard-m01을 사용하다가 스트롱암이 단종된다기에...삼성암을 들여다 보니
가격이 저렴해서 이용하게 되었습니다.

ezboard-m01에서도 16bpp 모드는 잘 동작했고...
현재, smdk2410 보드에서도 drivers/video/s3c2410fb.c 소스에 640x480 16bpp
에 해당하는 새로운 struct s3c2410fb_mach_info 구조체를 만들어서 동작시키
니...잘 동작됩니다.

그런데, 8비트 모드로 동작시키려면 어케 해야 하나요?

현재...16비트 모드와 동일한 형식의 구조체를 만들어서 동작시켜 보니..
화면이 주파수가 맞지 않을 때 겹치는 현상이 발생합니다.
그래서...PCLK, VSYNC, HSYNC, DATA 신호를 스코프로 찍어보니...
16비트 모드에서와 동일한 스펙으로 나오는 것으로 봐서는 h/w적인 것에는 이
상이 없는듯합니다.
그렇다면 소프트웨어의 어디에선가 잘못되었다는 것인데...

s3c2410 에서는 8비트로 사용할 때도 신호는 16비트 모드에서와 동일하게 16
비트 데이터가 나옵니다. 즉, 선연결은 16비트 모드에서와 동일합니다.
256개의 팔레트 레지스터가 있어서...이것을 적당히 설정하고, 프레임 버퍼
에 8비트의 인덱스 값을 설정하면, 실제로 나오는 것은 16비트 데이터가 출력
됩니다.

삼성에서 제공한 테스트 프로그램으로 8비트 팔레트 모드를 테스트 했는데,
제대로 출력되더군요.
팔레트를 변경시킬 때도 정상적으로 화면이 변경되더군요...

문제는 리눅스의 프레임 버퍼 동작이 8비트 팔레트 모드일 경우에는 대체 어
떻게 동작하는지...소스를 훑어봐도 제대로 이해가 되지 않는군요...

참...그리고...struct s3c2410fb_mach_info 구조체에서...
pixclock, hsync_len, vsync_len, left_margin, right_margin,
upper_margin, lower_margin, sync, ...
위의 값들은 대체 어떻게 작용하는 것들인지...
어차피...h/w적인 타이밍은 LCD 관련 레지스터를 설정해야 하는 것인데...
이것들의 값을 여러 경우로 변경해서 테스트 해봤는데...
별 영향도 없는것 같더군요...

8비트 모드가 16비트 모드보다 빠를까요?
프레임 버퍼는 1/2로 줄어드므로...프레임 버퍼에 액세스 해야 하는 용량이
1/2 이니까...당연히 빠르겠죠?

ezboard-m01에 LCD를 8비트 팔레트 모드로 동작시켜 보셨나요?
동작하나요???