[okl4-developer] lcd simulation problem with okl4 sdk

Gabi Voiculescu b304_a at yahoo.com
Wed Mar 5 10:37:14 EST 2008


Hi OKL4.

I hope you can help me. My lcd simulation does not work.
My goal is to understand the way I can access a physical address register from Iguana environment. (If anyone can show me some example to do that bare metal, I would appreciate it.)

I started with a LCD driver (I can write and get feedback). 

I got my inspiration from the s3c2410_lcd.c example driver for the gta01 platform.
I see however that there is no runnable demo for the lcd in current OKL4 release.

I've started by porting the s3c2410_lcd driver to pxa, but simulation in skyeye hanged. 

So I got back to gta01 (the original platform) and saw the same problems.

I use skyeye-124 compiled with gcc-4.1.2. I have verified that it works (can simulate with or without LCD) by running the arm testsuite (including the s3c2410 binary example that had an lcd peripheral). 


I have added the following to gta01.skyeye in tools/sim_config/
lcd: state=on, type=s3c2410x, mod=gtk

However I'm unable to successfully simulate the build resulting from either one of these commands. Simulation stops right before starting OKL4. I can't trigger the KDB console, if specified from the build line.

tools/build.py machine=gta01 project=iguana example=naming
skyeye -c tools/sim_config/gta01.skyeye -e build/images/image.boot

tools/build.py machine=gta01 project=iguana wombat=yes BUILD_DIR=build2
 skyeye -c tools/sim_config/gta01.skyeye -e build2/images/image.boot

Is this platform buggy? Any way to fix it to run with Skyeye? 

Thanks and hope to hear back soon,
Gabi Voiculescu
==========================================================
A preview of the console output:
[gabi at vlad okl4_release_1.5.2]$ skyeye -c tools/sim_config/gta01.skyeye -e build2/images/image.boot
big_endian is false.
arch: arm
cpu info: armv4, arm920t, 41009200, ff00fff0, 2 
mach info: name s3c2410x, mach_init addr 0x806b160
uart_mod:0, desc_in:, desc_out:, converter:
SKYEYE: use arm920t mmu ops
exec file "build2/images/image.boot"'s format is elf32-little.
load section kernel.text: addr = 0x30000000  size = 0x00010734.
load section kernel.glue_7: addr = 0x30010734  size = 0x00000000.
load section kernel.glue_7t: addr = 0x30010734  size = 0x00000000.
load section kernel.rodata: addr = 0x30010734  size = 0x00003845.
load section kernel.kdebug: addr = 0x30013f79  size = 0x000044f7.
load section kernel.init: addr = 0x30018470  size = 0x00002028.
load section kernel.data: addr = 0x3001a800  size = 0x00001b7c.
load section kernel.got: addr = 0x3001c37c  size = 0x00000004.
load section kernel.got.plt: addr = 0x3001c380  size = 0x0000000c.
load section kernel.kdebug-data: addr = 0x3001c38c  size = 0x00000380.
not load section kernel.bss: addr = 0x3001c70c  size = 0x000024e0 .
load section kernel.kspace: addr = 0x30020000  size = 0x00004000.
load section kernel.kip: addr = 0x30024000  size = 0x00000a94.
load section kernel.traps: addr = 0x30025000  size = 0x00001000.
load section ig_server.text: addr = 0x30030000  size = 0x0000fe64.
load section ig_server.rodata: addr = 0x3003fe64  size = 0x00002077.
load section ig_server.data: addr = 0x30049edc  size = 0x00000218.
load section ig_server.got: addr = 0x3004a0f4  size = 0x00000010.
not load section ig_server.bss: addr = 0x3004b000  size = 0x00012000 .
load section ig_naming.text: addr = 0x30028000  size = 0x00007630.
load section ig_naming.rodata: addr = 0x3002f630  size = 0x00000918.
load section ig_naming.data: addr = 0x30026000  size = 0x000000d8.
load section ig_naming.got: addr = 0x300260d8  size = 0x00000010.
not load section ig_naming.bss: addr = 0x300260e8  size = 0x0000006c .
load section event.text: addr = 0x30060000  size = 0x00006ca8.
load section event.rodata: addr = 0x30066ca8  size = 0x000008cc.
load section event.data: addr = 0x3005d574  size = 0x000000d8.
load section event.got: addr = 0x3005d64c  size = 0x00000010.
not load section event.bss: addr = 0x3005d65c  size = 0x00000094 .
load section vtimer.text: addr = 0x30068000  size = 0x000084bc.
load section vtimer.rodata: addr = 0x300704bc  size = 0x00000ce4.
load section vtimer.data: addr = 0x3005e1a0  size = 0x00000114.
load section vtimer.got: addr = 0x3005e2b4  size = 0x00000010.
not load section vtimer.bss: addr = 0x3005e2c4  size = 0x00000070 .
load section vserial.text: addr = 0x30078000  size = 0x00007ea0.
load section vserial.rodata: addr = 0x3007fea0  size = 0x00000a04.
load section vserial.data: addr = 0x300728a4  size = 0x00000104.
load section vserial.got: addr = 0x300729a8  size = 0x00000010.
not load section vserial.bss: addr = 0x300729b8  size = 0x0000007c .
load section vbus.text: addr = 0x30088000  size = 0x00007a24.
load section vbus.rodata: addr = 0x3008fa24  size = 0x000009c4.
load section vbus.data: addr = 0x300733e8  size = 0x00000104.
load section vbus.got: addr = 0x300734ec  size = 0x00000010.
not load section vbus.bss: addr = 0x300734fc  size = 0x00000070 .
load section vtouch.text: addr = 0x30098000  size = 0x00007f6c.
load section vtouch.rodata: addr = 0x3009ff6c  size = 0x00000994.
load section vtouch.data: addr = 0x30074900  size = 0x00000110.
load section vtouch.got: addr = 0x30074a10  size = 0x00000010.
not load section vtouch.bss: addr = 0x30074a20  size = 0x00000080 .
load section vlcd.text: addr = 0x300a8000  size = 0x00007a44.
load section vlcd.rodata: addr = 0x300afa44  size = 0x00000988.
load section vlcd.data: addr = 0x300753cc  size = 0x00000110.
load section vlcd.got: addr = 0x300754dc  size = 0x00000010.
not load section vlcd.bss: addr = 0x300754ec  size = 0x00000074 .
load section devicecore.text: addr = 0x300b8000  size = 0x00007ca8.
load section devicecore.rodata: addr = 0x300bfca8  size = 0x00000998.
load section devicecore.data: addr = 0x30076640  size = 0x000000d8.
load section devicecore.got: addr = 0x30076718  size = 0x00000010.
not load section devicecore.bss: addr = 0x30076728  size = 0x0000008c .
load section vmlinux.text: addr = 0x30500000  size = 0x0012b000.
load section vmlinux.glue_7: addr = 0x3062b000  size = 0x00000000.
load section vmlinux.glue_7t: addr = 0x3062b000  size = 0x00000000.
load section vmlinux.exit.text: addr = 0x3062b000  size = 0x00000420.
load section vmlinux.rodata: addr = 0x3062b420  size = 0x0000fd71.
not load section vmlinux.pci_fixup: addr = 0x3063b191  size = 0x00000000 .
load section vmlinux.__ksymtab: addr = 0x3063b194  size = 0x00002e18.
load section vmlinux.__ksymtab_gpl: addr = 0x3063dfac  size = 0x000004e8.
not load section vmlinux.__kcrctab: addr = 0x3063e494  size = 0x00000000 .
not load section vmlinux.__kcrctab_gpl: addr = 0x3063e494  size = 0x00000000 .
load section vmlinux.__ksymtab_strings: addr = 0x3063e494  size = 0x00007114.
load section vmlinux.__param: addr = 0x306455a8  size = 0x00000064.
load section vmlinux.data: addr = 0x30646000  size = 0x00022000.
load section vmlinux.data.cacheline_aligned: addr = 0x30668000  size = 0x000008c0.
load section vmlinux.init.text: addr = 0x30669000  size = 0x0000cb10.
load section vmlinux.init.data: addr = 0x30675b10  size = 0x00000828.
load section vmlinux.init.setup: addr = 0x30676340  size = 0x00000150.
load section vmlinux.initcall.init: addr = 0x30676490  size = 0x000000f0.
load section vmlinux.con_initcall.init: addr = 0x30676580  size = 0x00000004.
not load section vmlinux.security_initcall.init: addr = 0x30676584  size = 0x00000000 .
load section vmlinux.init.ramfs: addr = 0x30677000  size = 0x00000085.
load section vmlinux.exitcall: addr = 0x30678000  size = 0x0000005c.
not load section vmlinux.bss: addr = 0x30678060  size = 0x000206e8 .
load section rootfs: addr = 0x30700000  size = 0x007d0000.
load section bootinfo: addr = 0x300c4000  size = 0x00007000.
call ARMul_InitSymTable,kernel filename is build2/images/image.boot. 
start addr is set to 0x30000000 by exec file.
<and then skyeye hangs>

I can't tell from readelf but I don't think I've overlapped the boot section inside the boot image.
[gabi at vlad okl4_release_1.5.2]$ readelf -l build2/images/image.boot

Elf file type is EXEC (Executable file)
Entry point 0x30000000
There are 23 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x008000 0x30000000 0x30000000 0x1c70c 0x1ebec RWE 0x8000
  LOAD           0x028000 0x30020000 0x30020000 0x06000 0x06000 RW  0x8000
  LOAD           0x030000 0x30030000 0x30030000 0x11edb 0x11edb R E 0x8000
  LOAD           0x041edc 0x30049edc 0x30049edc 0x00228 0x13124 RW  0x8000
  LOAD           0x048000 0x30028000 0x30028000 0x07f48 0x07f48 R E 0x8000
  LOAD           0x056000 0x30026000 0x30026000 0x000e8 0x00154 RW  0x8000
  LOAD           0x058000 0x30060000 0x30060000 0x07574 0x07574 R E 0x8000
  LOAD           0x065574 0x3005d574 0x3005d574 0x000e8 0x0017c RW  0x8000
  LOAD           0x068000 0x30068000 0x30068000 0x091a0 0x091a0 R E 0x8000
  LOAD           0x0761a0 0x3005e1a0 0x3005e1a0 0x00124 0x00194 RW  0x8000
  LOAD           0x078000 0x30078000 0x30078000 0x088a4 0x088a4 R E 0x8000
  LOAD           0x0828a4 0x300728a4 0x300728a4 0x00114 0x00190 RW  0x8000
  LOAD           0x088000 0x30088000 0x30088000 0x083e8 0x083e8 R E 0x8000
  LOAD           0x0933e8 0x300733e8 0x300733e8 0x00114 0x00184 RW  0x8000
  LOAD           0x098000 0x30098000 0x30098000 0x08900 0x08900 R E 0x8000
  LOAD           0x0a4900 0x30074900 0x30074900 0x00120 0x001a0 RW  0x8000
  LOAD           0x0a8000 0x300a8000 0x300a8000 0x083cc 0x083cc R E 0x8000
  LOAD           0x0b53cc 0x300753cc 0x300753cc 0x00120 0x00194 RW  0x8000
  LOAD           0x0b8000 0x300b8000 0x300b8000 0x08640 0x08640 R E 0x8000
  LOAD           0x0c6640 0x30076640 0x30076640 0x000e8 0x00174 RW  0x8000
  LOAD           0x0c8000 0x30500000 0x30500000 0x17805c 0x198748 RWE 0x8000
  LOAD           0x241000 0x30700000 0x30700000 0x7d0000 0x7d0000 RW  0x1000
  LOAD           0xa12000 0x300c4000 0x300c4000 0x07000 0x07000 RW  0x1000

 Section to Segment mapping:
  Segment Sections...
   00     kernel.text kernel.rodata kernel.kdebug kernel.init kernel.data kernel.got kernel.got.plt kernel.kdebug-data kernel.bss 
   01     kernel.kspace kernel.kip kernel.traps 
   02     ig_server.text ig_server.rodata 
   03     ig_server.data ig_server.got ig_server.bss 
   04     ig_naming.text ig_naming.rodata 
   05     ig_naming.data ig_naming.got ig_naming.bss 
   06     event.text event.rodata 
   07     event.data event.got event.bss 
   08     vtimer.text vtimer.rodata 
   09     vtimer.data vtimer.got vtimer.bss 
   10     vserial.text vserial.rodata 
   11     vserial.data vserial.got vserial.bss 
   12     vbus.text vbus.rodata 
   13     vbus.data vbus.got vbus.bss 
   14     vtouch.text vtouch.rodata 
   15     vtouch.data vtouch.got vtouch.bss 
   16     vlcd.text vlcd.rodata 
   17     vlcd.data vlcd.got vlcd.bss 
   18     devicecore.text devicecore.rodata 
   19     devicecore.data devicecore.got devicecore.bss 
   20     vmlinux.text vmlinux.exit.text vmlinux.rodata vmlinux.__ksymtab vmlinux.__ksymtab_gpl vmlinux.__ksymtab_strings vmlinux.__param vmlinux.data vmlinux.data.cacheline_aligned vmlinux.init.text vmlinux.init.data vmlinux.init.setup vmlinux.initcall.init vmlinux.con_initcall.init vmlinux.init.ramfs vmlinux.exitcall vmlinux.bss 
   21     rootfs 
   22     bootinfo 


       
---------------------------------
Be a better friend, newshound, and know-it-all with Yahoo! Mobile.  Try it now.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.okl4.org/pipermail/developer/attachments/20080304/8d56e94e/attachment-0001.htm 


More information about the Developer mailing list