My board is EB-SAM9G45
I trying port Android 2.1 to SAM9G45.
When my board running android,
LCD can't show anything.How can I do?
The two method can't solve this problem.
1. change android
should change
hardware/libhardware/modules/gralloc/framebuffer.cpp to use
FBIOPAN_DISPLAY instead of FBIOPUT_VSCREENINFO or change atmelfb.c
kernel driver so it won't reset display at each FBIOPUT_VSCREENINFO
ioctl. Without this changes on G45/M10 you'll just have a nice white
flickering screen. 2. change Linux kernel driver
driver/video/atmel_lcdfb.c
Code:
[color=#FF0000]+#define ATMEL_LCDC_FIFO_SIZE 512
#define ATMEL_LCDC_CVAL_DEFAULT 0xc8
-#define ATMEL_LCDC_DMA_BURST_LEN 8 /* words */
-#define ATMEL_LCDC_FIFO_SIZE 512 /* words */
+#define ATMEL_LCDC_DMA_BURST_LEN 8
+static unsigned int frame_update_done;
+static spinlock_t lock;
+static wait_queue_head_t wait;
+ dma_addr = fix->smem_start + var->xres * 2 * var->yoffset;
- dma_addr = (fix->smem_start + var->yoffset * fix->line_length
- dma_addr &= ~3UL;
- smem_len = (var->xres_virtual * var->yres_virtual
- * ((var->bits_per_pixel + 7) / 8));
+ smem_len = (var->xres * var->yres*2*2
+ * ((var->bits_per_pixel + 7) / 8));
info->fix.smem_len = max(smem_len, sinfo->smem_len);
- info->screen_base = dma_alloc_writecombine(info->device, info->fix.smem_len,
+ info->screen_base = dma_alloc_coherent(info->device, info->fix.smem_len,
(dma_addr_t *)&info->fix.smem_start, GFP_KERNEL); [/color]
I need help.
This is my log
Code:
Uncompressing Linux............................................................................................................................................ done, booting the kernel.
Linux version 2.6.30 (aaa@aaa-desktop) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 2007q1-10)) #5 PREEMPT Mon Aug 30 23:32:02 CST 2010
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91SAM9G45-EKES
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 400 MHz, master 133 MHz, main 12.000 MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: mem=128M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2 init=/init
NR_IRQS:192
AT91: 160 gpio irqs in 5 banks
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
console [ttyS0] enabled
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 124884KB available (3916K code, 701K data, 148K init, 0K highmem)
Calibrating delay loop... 198.14 BogoMIPS (lpj=99072)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 296 bytes
NET: Registered protocol family 16
AT91: Power Management
AT91: Starting after software reset
atmel_tcb: probe of atmel_tcb.0 failed with error -22
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
ashmem: initialized
JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
yaffs Aug 30 2010 23:21:27 Installing.
msgmni has been set to 244
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
atmel_lcdfb atmel_lcdfb.0: 255KiB frame buffer at 77940000 (mapped at ffa00000)
Console: switching to colour frame buffer device 60x34
atmel_lcdfb atmel_lcdfb.0: fb0: Atmel LCDC at 0x00500000 (mapped at c8866000), irq 23
atmel_usart.0: ttyS0 at MMIO 0xfeffee00 (irq = 1) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xfff90000 (irq = 8) is a ATMEL_SERIAL
brd: module loaded
loop: module loaded
Driver 'sd' needs updating - please use bus_type methods
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfffbc000 irq 25 (3a:1f:34:08:54:54)
eth0: attached PHY driver [Davicom DM9161A] (mii_bus:phy_addr=ffffffff:00, irq=-1)
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
AT91 NAND: 8-bit, Software ECC
Scanning device for bad blocks
Bad eraseblock 153 at 0x000001320000
Bad eraseblock 1015 at 0x000007ee0000
Bad eraseblock 1068 at 0x000008580000
Bad eraseblock 1270 at 0x000009ec0000
Creating 5 MTD partitions on "atmel_nand":
0x000000000000-0x000000500000 : "Bootstrap"
0x000000500000-0x000006400000 : "ramdisk"
0x000006400000-0x00000a400000 : "userdata"
0x00000a400000-0x00000e000000 : "cache"
0x00000e000000-0x000010000000 : "test"
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffa4000 (irq 14)
usbmon: debugfs is not available
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 22, io mem 0x00700000
at91_ohci at91_ohci: init err (00000000 0000)
ohci_hcd: can't start at91
at91_ohci at91_ohci: startup error -75
at91_ohci at91_ohci: USB bus 1 deregistered
at91_ohci: probe of at91_ohci failed with error -75
atmel_usba_udc atmel_usba_udc: MMIO registers at 0xfff78000 mapped at c886a000
atmel_usba_udc atmel_usba_udc: FIFO at 0x00600000 mapped at c8900000
android init
android_bind
mass_storage_function_add
usb_ep_autoconfig for fsg bulk_in got ep1
usb_ep_autoconfig for fsg bulk_out got ep2
android_usb gadget: Number of LUNs=1
adb_function_add
usb_ep_autoconfig for adb ep_in got ep3
usb_ep_autoconfig for adb ep_out got ep4
android_usb gadget: android_usb ready
mice: PS/2 mouse device common for all mice
input: gpio-keys as /devices/platform/gpio-keys/input/input0
atmel_tsadcc atmel_tsadcc: Master clock is set at: 133333333 Hz
atmel_tsadcc atmel_tsadcc: Prescaler is set at: 221
input: atmel touch screen controller as /devices/platform/atmel_tsadcc/input/input1
rtc-at91sam9 at91_rtt.0: rtc core: registered at91_rtt as rtc0
IRQ 1/rtc0: IRQF_DISABLED is not guaranteed on shared IRQs
rtc-at91sam9 at91_rtt.0: rtc0: SET TIME!
i2c-gpio i2c-gpio.0: using pins 52 (SDA) and 53 (SCL)
Linux video capture interface: v2.00
cx231xx v4l2 driver loaded.
usbcore: registered new interface driver cx231xx
cx231xx: Cx231xx Audio Extension initialized
usbcore: registered new interface driver hdpvr
ac ===0
battery===0
Registered led device: d7
Registered led device: d8
Registered led device: d6
at_hdmac at_hdmac: Atmel AHB DMA Controller ( cpy slave ), 8 channels
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
logger: created 64K log 'log_main'
logger: created 256K log 'log_events'
logger: created 64K log 'log_radio'
Advanced Linux Sound Architecture Driver Version 1.0.20.
android_usb gadget: high speed config #1: android
android_usb gadget: config #1
ALSA sound/pci/ac97/ac97_codec.c:2064: AC'97 0 does not respond - RESET
ALSA sound/pci/ac97/ac97_codec.c:2073: AC'97 0 access is not valid [0xffffffff], removing mixer.
atmel_ac97c: probe of atmel_ac97c.0 failed with error -5
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
rtc-at91sam9 at91_rtt.0: hctosys: unable to read the hardware clock
atmel_mci atmel_mci.0: Using dma0chan0 for DMA transfers
atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff80000 irq 11, 1 slots
atmel_mci atmel_mci.1: Using dma0chan1 for DMA transfers
atmel_mci atmel_mci.1: Atmel MCI controller at 0xfffd0000 irq 29, 1 slots
Empty flash at 0x02317278 ends at 0x02317800
VFS: Mounted root (jffs2 filesystem) on device 31:1.
Freeing init memory: 148K
Warning: unable to open an initial console.
init: cannot open '/initlogo.rle'
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs: restored from checkpoint
yaffs_read_super: isCheckpointed 1
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
yaffs: restored from checkpoint
yaffs_read_super: isCheckpointed 1
init: cannot find '/system/bin/playmp3', disabling 'bootsound'
init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
sh: can't access tty; job control turned off
# enabling adb
adb_open
warning: `rild' uses 32-bit capabilities (legacy support in use)
cat /proc/cpuinfo
Processor : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 198.14
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 5
Hardware : Atmel AT91SAM9G45-EKES
Revision : 0000
Serial : 0000000000000000
# ls
d
dev
etc
sys
data
init
proc
sbin
init.atmel.rc
default.prop
cache
init.rc
init.goldfish.rc
config
sdcard
sqlite_stmt_journals
system
[/code]