Using mini2440 board with 7" A70 screen under Linux

eddy33
Hi all,

I'm trying to use the 7" A70 screen with with my mini2440 board.

I've the u-boot bootloader running on my board.
I've built my root FS with busybox
I've compiled the 2.6.32.2 Linux kernel with 2 possibilities:
mini2440_defconfig and config_mini2440_a70 for the .config configuration
file.
The board boots but I've nothing on the screen :-(
The screens is white with no tux for indicating frame buffer activation.

These are the traces with the mini2440_defconfig default Linux
configuration:
Linux version 2.6.32.2 (@linux01) (gcc version 4.3.3 (Sourcery G++ Lite
2009q1-203) ) #5 Fri Jun 24 21:55:52 CEST 2011
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: FriendlyARM Mini2440 development board
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: root=/dev/mtdblock3 rootfstype=jffs2 mini2440=1tb
console=ttySAC0,115200 rootwait
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 60608KB available (3588K code, 419K data, 168K init, 0K highmem)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:85
. . .
s3c2410-rtc s3c2410-rtc: setting system clock to 2005-07-08 06:55:48 UTC
(1120805748)
mmcblk0: mmc0:1234 SA02G 1.83 GiB
mmcblk0: p1
VFS: Mounted root (jffs2 filesystem) on device 31:3.
Freeing init memory: 168K

******************************************
* Starting System Init for mini2440
* Mounting file systems...
* Mounting tmpfs ...
* Seting host name...
* Up network...
eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
* Create /mnt/usb - for USB stick
* Create /mnt/mmc - for MMC/SD card
* System Init finished
******************************************


Please press Enter to activate this console.



I've not in the traces something like:
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
MINI2440: Option string mini2440=1tb
MINI2440: LCD 0:240x320 [1:800x480] 2:1024x768
S3C2440: Initialising architecture
S3C2440: IRQ Support


My bootargs for u-boot is:
Quote:
bootargs=root=/dev/mtdblock3 rootfstype=jffs2 mini2440=1tb
console=ttySAC0,115200 rootwait


I've passed the mini2440=1tb to the kernel but it doesn't appear in the
traces... No "MINI2440: Option string mini2440=1tb" in the traces... I've
the same thing with the config_mini2440_a70 for linux configuration.
What is the problem?

Has anyone succeeded in using frame buffer with the 7" A70 screen with the
mini2440 board? What is your .config file for Linux configuration?
Is the screen feeded with 3,3V or 5V jumper J2 on the mini2440 board)?

Thank you for your help...

Cheers,

eddy33

davef
I noticed ... VFS: Mounted root (jffs2 filesystem) on device 31:3.

You have modified the kernel to support JFFS2 rather than YAFFS2?

Where did you get your rootfs from?

> Is the screen feeded with 3,3V or 5V jumper J2 on the mini2440 board)?

You had better sort this one before proceeding!  I can't tell you, try
searching <a70>, there are 6 pages of hits.

http://www.friendlyarm.net/forum/topic/2618

Possibly not helpful.

eddy33
Hi davef,

Yes I'm using JFFS2 and modified the Linux kernel configuration for that.
I've done the same from peeking the ext3 root filesystem from the SD card.
It's booting too but no framebuffer active on the A70 screen...

Thanks for: http://www.friendlyarm.net/forum/topic/2618
I've found it this night. I hope it is not the problem... The screen seems
to be not detected...

In fact, I've just had one time the tux on the screen (the screen was dark
and not white) but the image was not stable.

Any successful experience with the 7" A70 screen with the mini2440 board
and framebuffer (something written on the screen?).

eddy33

davef
To repeat ... what rootfs are you using?

You shouldn't have to do these in the FriendlyArm config files, but check
that in the kernel configuration:

Device Drivers  --->
  Character devices  --->
    [*] Virtual terminal
    [*]   Enable character translations in console
    [*]   Support for console on virtual terminal
 
  Graphics support  --->
    Console display driver support  ---> 
      <*> Framebuffer Console support
      [*]   Map the console to the primary display device
      [*] Select compiled-in fonts 
      [*]   VGA 8x8 font


Also, in /etc/inittab try:
 
console::respawn:/sbin/getty -L 9600 tty1 vt100

Make sure that:

Device drivers
   Input device support
      Touchscreens
         Samsung S3c generic touchscreen input driver

is enabled.

davef
Sorry, I should say what have you got in /etc/fstab and /etc/init.d/rc.d ?

What has Busybox populated these files with?

eddy33
Attachment: root_fs.tgz (2.39 MB)
Hi davef,

According to your advice, I've verified your points...
Please find attached my root file system based on this doc:
http://cchia-cwp.blogspot.com/2010/03/build-root-file-system.html
I've built busybox according to this doc:
http://cchia-cwp.blogspot.com/2010/03/mini2440-friendlyarm-for-embedded....
It works on the mini2440.

Have you a working root filesytem that I can use for controlling mine?

eddy33

eddy33
Attachment: config-kernel (41.45 KB)
davef,

Please find attached my .config file for Linux kernel configuration for A70
touch screen...

eddy33

davef
>> Is the screen feeded with 3,3V or 5V jumper J2 on the mini2440 board)?

> You had better sort this one before proceeding!

Have you resolved this issue?  Also, I would measure the power supply under
load (ie with the LCD showing a white screen).  The supply voltage didn't
have to drop much on my mini2440 before it stopped working (4.75Volts from
memory).  

Had a look at your kernel config file

CONFIG_FB_S3C2410_TFT800480=y

I see you have this one ticked, is it the correct unit?  The A70 has been
around for awhile, so I would expect trying to use it would be fairly
straight-forward.

Sorry, I can't look at the rootfs for the next few days and I don't think
it is a wise move to send you something that works for me.

Perhaps, post the contents of those files.  /etc/fstab and there will be a
rcS or rc.d? file somewhere that shows how the machine starts up.

eddy33
Hi davef,

In fact, by chance, I've moved a little the 2x25 connector of the screen
plugged to the mini2440 board and I've seen the tux for framebuffer
activation ;-)

But I have a big problem with flicker... I have a poor contact with this
connector.
I guess a problem with poor power supply too like here:
http://www.friendlyarm.net/forum/topic/2618
I'll try with a more powerful power supply monday.

I have these traces for framebuffer activation:
s3c2410fb: map_video_memory(fbi=c388ea50) map_size 770048
s3c2410fb: map_video_memory: clear ffc00000:000bc000
s3c2410fb: map_video_memory: dma=33a00000 cpu=ffc00000 size=000bc000
s3c2410fb: got video memory
s3c2410fb: LPCSEL    = 0x00000f82
s3c2410fb: replacing TPAL 00000000
s3c2410fb: check_var(var=c388e820, info=c388e800)
s3c2410fb: pixclk 40000, divisor is 4
s3c2410fb: s3c2410fb_activate_var: var->xres  = 800
s3c2410fb: s3c2410fb_activate_var: var->yres  = 480
s3c2410fb: s3c2410fb_activate_var: var->bpp   = 16
s3c2410fb: setting vert: up=26, low=6, sync=2
s3c2410fb: setting horz: lft=41, rt=68, sync=32
s3c2410fb: new register set:
s3c2410fb: lcdcon[1] = 0x00000178
s3c2410fb: lcdcon[2] = 0x1977c141
s3c2410fb: lcdcon[3] = 0x021b1f28
s3c2410fb: lcdcon[4] = 0x0000001f
s3c2410fb: lcdcon[5] = 0x00000b09
s3c2410fb: LCDSADDR1 = 0x19d00000
s3c2410fb: LCDSADDR2 = 0x19d5dc00
s3c2410fb: LCDSADDR3 = 0x00000320
Console: switching to colour frame buffer device 100x60
fb0: s3c2410fb frame buffer device
backlight        initialized
leds        initialized
buttons        initialized
pwm        initialized
adc        initialized
s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440

CONFIG_FB_S3C2410_TFT800480=y seems to by good. Perhaps flicker is coming
from a trouble in horz and vert synchronization?

It is OK for framebuffer with linux kernel 2.6.32 from
linux-2.6.32.2-mini2440_20110305.tgz and linux kernel 2.6.29 from
linux-2.6.29-mini2440_20090708.tgz.

This is my /etc/fstab:
# device mount-point type options dump fsck order
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
var /var tmpfs defaults 0 0

This is my /etc/inittab:
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
::restart:/sbin/init
#::respawn:/sbin/getty -L 115200 /dev/ttySAC0 vt100
console::respawn:/sbin/getty -L 9600 tty0 vt100

This is my /etc/mdev.conf:
# system all-writable devices
full  0:0 0666
null  0:0 0666
ptmx  0:0 0666
random  0:0 0666
tty  0:0 0666
zero  0:0 0666

# console devices
tty[0-9]* 0:5 0660
vc/[0-9]* 0:5 0660

# serial port devices
s3c2410_serial0 0:5 0666 =ttySAC0
s3c2410_serial1 0:5 0666 =ttySAC1
s3c2410_serial2 0:5 0666 =ttySAC2
s3c2410_serial3 0:5 0666 =ttySAC3

# loop devices
loop[0-9]* 0:0 0660 =loop/

# i2c devices
i2c-0  0:0 0666 =i2c/0
i2c-1  0:0 0666 =i2c/1

# frame buffer devices
fb[0-9]  0:0 0666

# input devices
mice  0:0 0660 =input/
mouse.*  0:0 0660 =input/
event.*  0:0 0660 =input/
ts.*  0:0 0660 =input/

# rtc devices
rtc0  0:0 0644 >rtc
rtc[1-9] 0:0 0644


This is my /etc/init.d/rcS:
#! /bin/sh

# Setup the bin file location and export to system PATH
PATH=/sbin:/bin:/usr/sbin:/usr/bin
umask 022
export PATH

# mount the filesystem directories
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts -o mode=0622

# create device nodes and directories
echo /sbin/mdev>/proc/sys/kernel/hotplug
mdev -s
mkdir /var/lock

# start logging utility services
klogd
syslogd

# set system clock from RTC
hwclock -s

# set host and config loopback interface
ifconfig lo 127.0.0.1
ifconfig eth0 192.168.0.100

eddy33

davef
You'd probably really need an oscilloscope to see if there is unacceptable
ripple on the power supply.  A Digital voltmeter reads how many volts?  I
have seen my screen dip out at low battery voltage, say about
4.5-4.75Volts.

Flicker on some touchscreens has been topic quite awhile ago. 

The files seem to look OK.

The touchscreen connector is quite delicate.  Do you know how to remove the
flexible strip from the connector? Does it look like it is plugged in
correctly?

eddy33
Hi davef,

I've used this afternoon another more powerful power supply than this
shipped with the board and it solved my problem: no more flicker and stable
image ;-) 

I have always a little problem with connector (too fragile) but it's okay
at this end after moving it a little...

Cheers.

eddy33