Smedia Glamo 3362

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(New page: * Feature: Graphics/3D Acceleration * Homepage: http://www.smediatech.com/product3362.htm * Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/smedia-glamo.patch * Data sheet...)
 
(Timing settings: +link)
 
(24 intermediate revisions by 13 users not shown)
Line 1: Line 1:
* Feature: Graphics/3D Acceleration
+
== Summary ==
* Homepage: http://www.smediatech.com/product3362.htm
+
Glamo3362 is the graphics chip in the [[Neo FreeRunner]]. It supports 2D and 3D acceleration, and provides an extra SD interface which is used for the uSD card slot (the other one is used for the [[Wlan]] adaptor).
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/smedia-glamo.patch
+
* Data sheet: This is not available, as it is under NDA. It will likely never be available. (Source: Raster - IRC). There is hope that the glamo chip features may be usable even without a NDA, see [http://unadventure.wordpress.com/2008/06/08/accelerating-in-my-pocket/ the hack here]
+
  
==Neo FreeRunner==
+
Glamo's 2D engine is currently used to accelerate solid fills and blits in both XGlamo (Kdrive) and X.org (xf86-video-glamo).
{{Main|Neo_FreeRunner_GTA02_Hardware}}
+
 
* Connected to: [[Samsung S3C2442B B54]] Address/Data bus <br>
+
The datasheets are available at http://people.openmoko.org/sean/datasheets/glamo3362 (posted with permission from SMedia)
 +
 
 +
A different set of datasheets were [http://lists.openmoko.org/pipermail/community/2011-October/065592.html leaked] before these were released.
 +
 
 +
== MicroSD support ==
 +
* Supports SDHC (Secure Digital High Capacity) cards up to 8GB
 +
* Connected to: Glamo 3362 MMC/SD controller
 +
* [[Supported microSD cards]]
 +
* Specifications: [http://www.sdcard.org/about/memory_card/pls/ SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]
 +
 
 +
== Bus Interface ==
 +
* Glamo is connected to the [[Samsung S3C2442B B54]] address/data bus, accessed via MMIO.
 +
 
 +
== Hardware Acceleration ==
 +
This is a compilation of all the publicly available information that is known about the Glamo 3362 used in the Neo FreeRunner GTA02 and links to past and present projects utilizing the Glamo's hardware acceleration.  If anyone is working or has worked on hardware acceleration with the Glamo please add any links and any further information to this page.
 +
 
 +
===Hardware Accelerated Projects===
 +
* [http://unadventure.wordpress.com/2008/06/08/accelerating-in-my-pocket Blog post] by balrog accounting his working creating an accelerated mplayer driver using the Glamo 3362
 +
** [http://repo.or.cz/w/mplayer/glamo.git?a=tree;f=drivers/libglamo;h=c268ca2a4a98517b6e218669b0a46d2dad737abb;hb=HEAD Source for libglamo] interface used for mplayer acceleration
 +
* Xglamo
 +
** [[Media:xglamo-graphics.pdf | xglamo-graphics.pdf]]
 +
** [http://git.openmoko.org/?p=xglamo.git;a=summary Xglamo source]
 +
* [http://www.bitwiz.org.uk/freerunner-dri Tom White's DRI project]
 +
* xf86-video-glamo (driver for X.org)
 +
** [http://git.openmoko.org/?p=xf86-video-glamo.git;a=summary Git repository]
 +
 
 +
===Known Features===
 +
* 8MB internal SDRAM
 +
* 16bit local bus interface to S3C2410
 +
** The bus is limited in speed to about 7 Mb/s. This means that rendering is slow unless it can follow an accelerated path, and that texture uploads for 3D graphics would be slow.
 +
* 2D acceleration
 +
* 3D acceleration
 +
** 256x256 Max Texture Size
 +
** No Render-To-Texture Support
 +
** 511x511 Max 3D Destination Buffer Size
 +
*** Note that this is smaller than the VGA screen.
 +
** Pipeline: Transform, cull, lighting, clipping, setup, rasterizer
 +
** Standards compliance: OpenGL ES 1.0, OpenGL ES 1.1 and Mobile D3D.
 +
* [http://en.wikipedia.org/wiki/H.263 h.263] codec (encode/decode)
 +
* LCM controller
 +
* SD-Card controller
 +
* hardware JPEG encoder/decoder
 +
* Camera interface and imapge processing (unused)
 +
 
 +
 
 +
===Timing settings===
 +
 
 +
The CPU (S3C2440) memory bank timings can be adjusted in such a way that Glamo<->CPU bus performance is increased. The [[bootloader]] is the proper place to set these settings, so, to set fixed timings bootloader with different values should be flashed.
 +
 
 +
But as it is not easy to flash bootloader, and many people just do not believe it will work flawlessly and want to test new settings, one can use other tools that can set timings for the memory bank.
 +
 
 +
In depth description and discussion can ge found [http://www.mail-archive.com/community@lists.openmoko.org/msg60256.html here].
 +
 
 +
Qi with applied patch (binary only!):
 +
 
 +
* [http://www.openmobile.nl/pages/downloads.php#qiglamo Openmobile.nl website's page]
 +
* [http://www.openmobile.nl/modules/download_gallery/dlc.php?file=53 direct download link]
 +
 
 +
Runtime tweaking can be done by direct writing via [http://www.bsdmn.com/openmoko/glamo/timings/ memwrite] or [http://git.debian.org/?p=pkg-fso/omhacks.git;a=blob;f=README omhacks]:
 +
 
 +
To apply 2.4.2 timings:
 +
 
 +
./memwrite $((0x48000008)) $((0x1380))
 +
 
 +
or
 +
 
 +
om screen glamo-bus-timings 2-4-2
 +
 
 +
To see the timings that are currently in use:
 +
 
 +
./memwrite $((0x48000008))
 +
 
 +
or
 +
 
 +
om screen glamo-bus-timings
 +
 
 +
[[Category:Used chip]]
 +
[[Category:Neo FreeRunner Hardware]]
 +
[[Category:Hardware ideas]]
 +
 
 +
[[Category:Used chip]]
 +
[[Category:Neo FreeRunner Hardware]]
 +
[[Category:Hardware ideas]]

Latest revision as of 08:31, 10 February 2012

Contents

[edit] Summary

Glamo3362 is the graphics chip in the Neo FreeRunner. It supports 2D and 3D acceleration, and provides an extra SD interface which is used for the uSD card slot (the other one is used for the Wlan adaptor).

Glamo's 2D engine is currently used to accelerate solid fills and blits in both XGlamo (Kdrive) and X.org (xf86-video-glamo).

The datasheets are available at http://people.openmoko.org/sean/datasheets/glamo3362 (posted with permission from SMedia)

A different set of datasheets were leaked before these were released.

[edit] MicroSD support

[edit] Bus Interface

[edit] Hardware Acceleration

This is a compilation of all the publicly available information that is known about the Glamo 3362 used in the Neo FreeRunner GTA02 and links to past and present projects utilizing the Glamo's hardware acceleration. If anyone is working or has worked on hardware acceleration with the Glamo please add any links and any further information to this page.

[edit] Hardware Accelerated Projects

[edit] Known Features

  • 8MB internal SDRAM
  • 16bit local bus interface to S3C2410
    • The bus is limited in speed to about 7 Mb/s. This means that rendering is slow unless it can follow an accelerated path, and that texture uploads for 3D graphics would be slow.
  • 2D acceleration
  • 3D acceleration
    • 256x256 Max Texture Size
    • No Render-To-Texture Support
    • 511x511 Max 3D Destination Buffer Size
      • Note that this is smaller than the VGA screen.
    • Pipeline: Transform, cull, lighting, clipping, setup, rasterizer
    • Standards compliance: OpenGL ES 1.0, OpenGL ES 1.1 and Mobile D3D.
  • h.263 codec (encode/decode)
  • LCM controller
  • SD-Card controller
  • hardware JPEG encoder/decoder
  • Camera interface and imapge processing (unused)


[edit] Timing settings

The CPU (S3C2440) memory bank timings can be adjusted in such a way that Glamo<->CPU bus performance is increased. The bootloader is the proper place to set these settings, so, to set fixed timings bootloader with different values should be flashed.

But as it is not easy to flash bootloader, and many people just do not believe it will work flawlessly and want to test new settings, one can use other tools that can set timings for the memory bank.

In depth description and discussion can ge found here.

Qi with applied patch (binary only!):

Runtime tweaking can be done by direct writing via memwrite or omhacks:

To apply 2.4.2 timings:

./memwrite $((0x48000008)) $((0x1380))

or

om screen glamo-bus-timings 2-4-2

To see the timings that are currently in use:

./memwrite $((0x48000008)) 

or

om screen glamo-bus-timings
Personal tools

Neo FreeRunner

Main article: Neo_FreeRunner_GTA02_Hardware