Difference between revisions of "Didj"

From eLinux.org
Jump to: navigation, search
(Tutorials/How To's)
(Tutorials/How To's)
(38 intermediate revisions by the same user not shown)
Line 1: Line 1:
We are currently in the process of upgraded and organizing these pages, please forgive the mess, thank you.
+
'''This device is part of the [[LeapFrog_Pollux_Platform | LeapFrog Pollux Platform]], it's recommended to start there for general information.'''
 
[[image:didj.jpg|right|350px|thumb|The LeapFrog Didj]]
 
[[image:didj.jpg|right|350px|thumb|The LeapFrog Didj]]
  
Line 20: Line 20:
  
 
The Didj is part of 3 different devices that all share a common hardware platform, based around the [[Pollux]] SoC. The platform page contains information generic across these devices, and it is recommended that you refer to that page as it is a good starting point to understanding the Didj, and contains some basic How To's and Tutorials to get you started.
 
The Didj is part of 3 different devices that all share a common hardware platform, based around the [[Pollux]] SoC. The platform page contains information generic across these devices, and it is recommended that you refer to that page as it is a good starting point to understanding the Didj, and contains some basic How To's and Tutorials to get you started.
 +
 +
== Boot Loader ==
 +
* [[Didj_Lightning_Boot| Lightning Boot ]]
 +
* [[Didj_U-Boot| U-Boot ]]
 +
 +
== Sources and Toolchains ==
 +
* [[LeapFrog_Pollux_Platform:_Source_Code| Sources and Toolchains]]
  
 
== Tutorials/How To's ==
 
== Tutorials/How To's ==
'' clean up note: Finished ''
+
''' General '''
 
+
* [[Didj_Common_Commands|Common Commands Reference]]
'''Networking'''
+
* [[LeapFrog_Pollux_Platform:_Console_Access|Console Access]]
 +
* [[LeapFrog_Pollux_Platform:_Cartridge| Cartridges]]
 +
** [[LeapFrog_Pollux_Platform:_Cartridge_Settings| Cartridge Settings]]
 +
* [[LeapFrog_Pollux_Platform:_Extract_Archives| Extract lfp/lf2 Archives]]
 +
* [[Didj_Emerald_Boot| Compile and Install Emerald-Boot]]
 +
''' Networking '''
 
* [[Didj_Enable_Networking| Enable Networking via USB Gadget]]
 
* [[Didj_Enable_Networking| Enable Networking via USB Gadget]]
 
* [[Didj_Install_Dropbear| Install Dropbear SSH]]
 
* [[Didj_Install_Dropbear| Install Dropbear SSH]]
 
* [[Didj_MP3_Streaming| Playing MP3 network streams and files]]
 
* [[Didj_MP3_Streaming| Playing MP3 network streams and files]]
 +
* [[LeapFrog_Pollux_Platform:_Networking| Networking Setup]]
 +
* [[LeapFrog_Pollux_Platform:_Networking_Applications| Networking Applications]]
 +
* [[LeapFrog_Pollux_Platform:_Internet_Access| Internet Access from Device]]
 +
* [[LeapFrog_Pollux_Platform:_Mount_NFS_Directory| Mount NFS Directory]]
  
''' Boot Loader '''
+
''' USB Storage '''
 
+
* [[Didj_USB_Mounting|USB Mounting Under Windows, Linux, and OS X]]
* [[Didj_Lightning_Boot| Lightning Boot ]]
+
* [[Didj_SCSI_Commands|SCSI Commands]]
  
 +
''' Cartridge '''
 +
* [[Didj_Make_ATAP| Make an ATAP NAND Cartridge]]
  
* [[File_Systems#Mounting_JFFS2_image_on_PC_using_mtdram| Mount jffs2 Image on Linux PC]] - (is correct endianess)
+
''' Flash NAND '''
* [[Didj_SCSI_Commands|SCSI Commands]]
 
 
* [[Didj_U-Boot_NAND_Flashing| Flash Data to NAND]]
 
* [[Didj_U-Boot_NAND_Flashing| Flash Data to NAND]]
* [[Didj_BootLoader_Firmware_Updating|Updating Bootloader/Firmware over USB]]
+
* [[Didj_BootLoader_Firmware_Updating|Updating Bootloader/Firmware]]
 
 
'' clean up note: Not Finished ''
 
 
 
''' Getting Started '''
 
* [[Getting started hacking the didj| A guide to your first steps hacking the Didj]]
 
 
 
''' Compiling Sources '''
 
* [[Leapster_Explorer_Framebuffer_Driver|Linux Framebuffer Driver]]
 
 
 
 
 
''' Flashing the Didj'''
 
* [[Didj_Make_atap|Flash an ATAP firmware to your didj and make an atap/mfr cart]]
 
 
 
''' Hardware Adding, Hacking'''
 
* [[Didj SD MMC Expansion| SD MMC Expansion in 2.6.20 kernel]]
 
* [[Didj_and_Explorer_MMC_Patch|Mount MMC cards in 2.6.31 kernel]]
 
  
''' LFConnect Software'''
+
''' Firmware Image '''
* [[Didj_How_to_Extract_Files|How to Extract Files From the Firmware .exe]]
+
* [[File_Systems#Mounting_JFFS2_image_on_PC_using_mtdram| Mount JFFS2 Image on Linux]]
 +
** Relevant Settings
 +
** Correct endianess
  
''' Mounting Didj USB Drive '''
+
* [[LeapFrog_Pollux_Platform:_Firmware#Didj_JFFS2 | Create JFFS2 image]]
* Gain Access to the Didj as a Thumb Drive [http://wtfmoogle.com/?page_id=741 from Windows].
+
** Relevant Settings
* [[Didj_USB_Mounting|USB Mounting Under Windows, Linux, and OS X]]
+
** -e 128
 +
** -p
  
''' On Didj '''
+
''' Kernel/RootFS/Firmware'''
* [[Didj_Common_Commands|Common Commands Reference]]
+
* [[Didj_and_Explorer_libSDL|Building libSDL]]
* [[Didj Stop Start Up Junk]] How to Remove All the Kid's Game Files
 
** [[Didj_Replacement_App_Menu|Replacing the default App Menu from the default App Menu]] How to disable the default AppManager from a Brio app.
 
 
 
''' Graphics '''
 
* [[Didj_and_Explorer_libSDL|Build and install libSDL]]
 
 
* [[Didj_and_Explorer_SDL_ttf|Building SDL_ttf font library]]
 
* [[Didj_and_Explorer_SDL_ttf|Building SDL_ttf font library]]
 
* [[Didj_and_Explorer_SDL_image|Building SDL_image library with jpg and png support]]
 
* [[Didj_and_Explorer_SDL_image|Building SDL_image library with jpg and png support]]
 
* [[Didj_and_Explorer_SDL_mixer|Building SDL_mixer audio library]]
 
* [[Didj_and_Explorer_SDL_mixer|Building SDL_mixer audio library]]
* [[Leapster_Explorer:_stc|STC - Simple tetris clone using SDL]]
+
* [[Leapster_Explorer:_tslib_Touchscreen_Library|Building tslib]]
* [[Didj_and_Explorer:_rgb|creating .rgb files on the didj]]
+
* [[Leapster_Explorer:_SDL_resources|SDL Resources]]
 +
* [[Didj_2.6.31_Kernel| Didj Kernel 2.6.31 Upgrade]]
 +
* [[Didj_Explorer_Kernel|2.6.31 Kernel for Didj]]
 +
* [[Didj_Explorer_SD_Kernel| Boot Kernel and Rootfs from SD w/Framebuffer]]
 +
* [[Leapster_Explorer_Framebuffer_Driver|Linux Framebuffer Driver]]
 +
* [[Didj_and_Explorer_MMC_Patch|Enable SD Card Module]]
 +
* [[Leapster_Explorer_Root_File_System|Building The Explorer Root File System]]
 +
* [[Didj_and_Explorer:_boot_pixel_format|Changing the fb driver to display the boot logo correctly]]
 +
* [[LeapFrog_Pollux_Platform:_TV_Out | TV Out]]
 +
 
 +
''' Games and Emulators '''
 +
* [[LeapFrog_Pollux_Platform:_Emulators_And_Games| Emulators and Games]]
  
 +
''' Brio Development '''
 +
* [[Didj_Replacement_App_Menu| Replacing the default App Menu from the default App Menu]]
  
'''LeapFrog 2.6.31 Kernel Update '''
+
''' JTAG '''
 +
* [[LeapFrog_Pollux_Platform:_JTAG_Pinouts| JTAG Pinouts]]
 +
* [[Pollux:_FTDI_JTAG_How_To| Pollux FTDI JTAG How To]]
 +
* [[Pollux_JTAG_with_Wiggler| Pollux JTAG Wiggler Config]]
 +
* [[LeapFrog_Pollux_Platform:_JTAG_Kernel_Boot| JTAG Kernel Boot]]
  
* [[Didj_Explorer_SD_Kernel| Building a framebuffer kernel and rootfs to boot and run entirely from SD (uses the latest explorer kernel LF-Linux-8291-20101026-1425)]]
+
''' Compiling Source Code '''
* [[Didj_Explorer_Kernel|Build the Explorer kernel (2.6.31) for Didj ***in progress***]]
+
* [[LeapFrog_Pollux_Platform:_Build_Environment| Set up the Build Environment]]
 +
* [[LeapFrog_Pollux_Platform:_Kernel_Configuration| Kernel Configuration]]
  
 
== Development Scripts and Programs ==
 
== Development Scripts and Programs ==
Line 85: Line 102:
 
* [http://git.berlios.de/cgi-bin/gitweb.cgi?p=opendidj;a=blob_plain;f=host_tools/lf1000_bootstrap.py;h=f0d3ef0d9186edf368062608ff868914e6083ee4;hb=06890453479d271856f58d1d2cb685ee6e5afd5f LF1000 UART Bootstrap Utility] written in Python
 
* [http://git.berlios.de/cgi-bin/gitweb.cgi?p=opendidj;a=blob_plain;f=host_tools/lf1000_bootstrap.py;h=f0d3ef0d9186edf368062608ff868914e6083ee4;hb=06890453479d271856f58d1d2cb685ee6e5afd5f LF1000 UART Bootstrap Utility] written in Python
 
* [[media:lf1000-bootstrap-utilities.tar.gz |LF1000 UART Bootstrap Utilities]] based on the OMAP boot utilities from TI
 
* [[media:lf1000-bootstrap-utilities.tar.gz |LF1000 UART Bootstrap Utilities]] based on the OMAP boot utilities from TI
* [[File:OpenDidjConnect_v1.2.zip ]] lock, unlock, eject Didj USB drive from Windows Command Line.
+
 
* [[File:OpenDidjConnect_v1.0.tgz ]] lock, unlock, eject Didj USB drive from Linux Command Line.
 
 
== Technical Information ==
 
== Technical Information ==
=== Details ===
 
 
* [[Didj_Mem_Map|Initial Memory Map Dump]]
 
* [[Didj_Mem_Map|Initial Memory Map Dump]]
 
* [[Didj_GPIO_Map|Map of Didj GPIO Pins]]
 
* [[Didj_GPIO_Map|Map of Didj GPIO Pins]]
 +
* [[LeapFrog_Pollux_Platform:_Technical_Details|Device Comparison]]
  
=== File System Info ===
+
''' File System Info '''
 
* rootfs / rootfs rw  
 
* rootfs / rootfs rw  
 
* /dev/root / jffs2 ro
 
* /dev/root / jffs2 ro
Line 110: Line 126:
  
  
if at boot you see:
+
''' Active Kernel/Rootfs
 +
 
 +
Near the begging of the boot message you should see one of two root options:
 
  root=31:04  
 
  root=31:04  
you are using  mtd4: 00e00000 00020000 "Linux_RFS0"
+
You are using  mtd4: 00e00000 00020000 "Linux_RFS0" or
 
  root=31:06  
 
  root=31:06  
you are using  mtd6: 00e00000 00020000 "Linux_RFS1"
+
You are using  mtd6: 00e00000 00020000 "Linux_RFS1"
 +
 
 +
 
 +
''' Partitions '''
 +
{| cellpadding="4" border="1"
 +
|-
 +
|style="background-color:#CCCCCC"| Name
 +
|style="background-color:#CCCCCC"| Location
 +
|style="background-color:#CCCCCC"| Size
 +
|style="background-color:#CCCCCC"| Device
 +
|style="background-color:#CCCCCC"| Notes
 +
|-
 +
| LF1000_uniboot
 +
| 0x00000000
 +
| 0x00020000
 +
| /dev/mtd0
 +
| Lightning Boot
 +
|-
 +
| Atomic_Boot_Flags
 +
| 0x00020000
 +
| 0x000E0000
 +
| /dev/mtd1
 +
| On NAND
 +
|-
 +
| Manufacturing_Data
 +
| 0x00100000
 +
| 0x00100000
 +
| /dev/mtd2
 +
| On NAND
 +
|-
 +
| Kernel0
 +
| 0x00200000
 +
| 0x00200000
 +
| /dev/mtd3
 +
| On NAND
 +
|-
 +
| Linux_RFS0
 +
| 0x00400000
 +
| 0x00E00000
 +
| /dev/mtd4
 +
| On NAND
 +
|-
 +
| Kernel1
 +
| 0x01200000
 +
| 0x00200000
 +
| /dev/mtd5
 +
| On NAND
 +
|-
 +
| Linux_RFS1
 +
| 0x01400000
 +
| 0x00E00000
 +
| /dev/mtd6
 +
| On NAND
 +
|-
 +
| Brio
 +
| 0x02200000
 +
| 0x0DE00000
 +
| /dev/mtd7
 +
| On NAND
 +
|-
 +
| EXT
 +
| 0x10000000
 +
| 0x10000000
 +
| /dev/mtd8
 +
|
 +
|-
 +
| Cartridge
 +
| 0x00000000
 +
| 0x10000000
 +
|
 +
| On Cartridge NAND
 +
|}
  
  
=== Batteries and Recharging Station ===
 
 
''' Battery Compartments '''
 
''' Battery Compartments '''
  
Line 126: Line 214:
 
** Term 3 - Temp Sensor -
 
** Term 3 - Temp Sensor -
 
** Term 4 - Battery -
 
** Term 4 - Battery -
 +
  
 
''' Rechargeable Batteries '''
 
''' Rechargeable Batteries '''
Line 131: Line 220:
 
In addition to the terminals facing the Didj's contacts, there are another set of contacts facing away from the Didj.
 
In addition to the terminals facing the Didj's contacts, there are another set of contacts facing away from the Didj.
 
These contacts are duplicates used by the charging station.  The batteries themselves are NIMH cells, producing around 2.5v per pack when fully charged.
 
These contacts are duplicates used by the charging station.  The batteries themselves are NIMH cells, producing around 2.5v per pack when fully charged.
 +
  
 
''' Recharging Station '''
 
''' Recharging Station '''
Line 137: Line 227:
  
  
=== SSP / SPI Controller ===
+
''' SSP / SPI Controller '''
 
[[Didj SPI Info]]
 
[[Didj SPI Info]]
  

Revision as of 12:31, 12 October 2012

This device is part of the LeapFrog Pollux Platform, it's recommended to start there for general information.

The LeapFrog Didj

Summary

The Didj was a toy produced by Leapfrog marketed for educational games for children aged 5-10.

Didj was end-of-lifed by Leapfrog in mid-2010. It has been replaced by the Leapster Explorer.

Although Didj has a proprietary graphical front end, it runs a generic Linux distribution on an Arm based processor. Soon after the Didj's release, it was discovered that the cartridge port contained pins that allowed for serial console access with root privileges. After this discovery, work began to modify the Didj into an accessible emulation device.

Since development began, much has been accomplished, including:

  • Discovered that the Arm chip is the same as on the GP2X Wiz, only at a lower clock speed.
  • Created cartridges that support SD cards
  • Accessed the UART features in the cartridge slot


Platform

LeapFrog Pollux Platform

The Didj is part of 3 different devices that all share a common hardware platform, based around the Pollux SoC. The platform page contains information generic across these devices, and it is recommended that you refer to that page as it is a good starting point to understanding the Didj, and contains some basic How To's and Tutorials to get you started.

Boot Loader

Sources and Toolchains

Tutorials/How To's

General

Networking

USB Storage

Cartridge

Flash NAND

Firmware Image

Kernel/RootFS/Firmware

Games and Emulators

Brio Development

JTAG

Compiling Source Code

Development Scripts and Programs

Technical Information

File System Info

  • rootfs / rootfs rw
  • /dev/root / jffs2 ro
  • none /proc proc rw
  • sysfs /sys sysfs rw
  • /dev/ram0 /tmp tmpfs rw
  • /dev/mtdblock1 /flags jffs2 rw,sync,noatime
  • /dev/mtdblock2 /mfgdata jffs2 ro,sync,noatime
  • /dev/mtdblock10 /Didj vfat rw,noatime,fmask=0022,dmask=0022,codepage=cp437,iocha rset=iso8859-1
  • /dev/mtdblock11 /Cart vfat ro,noatime,fmask=0022,dmask=0022,codepage=cp437,iocha rset=iso8859-1
Filesystem                Size       Mounted on
/dev/mtdblock6           14.0M     /
/dev/mtdblock1          896.0k    /flags
/dev/mtdblock2            1.0M    /mfgdata
/dev/mtdblock9          215.8M    /Didj


Active Kernel/Rootfs

Near the begging of the boot message you should see one of two root options:

root=31:04 

You are using mtd4: 00e00000 00020000 "Linux_RFS0" or

root=31:06 

You are using mtd6: 00e00000 00020000 "Linux_RFS1"


Partitions

Name Location Size Device Notes
LF1000_uniboot 0x00000000 0x00020000 /dev/mtd0 Lightning Boot
Atomic_Boot_Flags 0x00020000 0x000E0000 /dev/mtd1 On NAND
Manufacturing_Data 0x00100000 0x00100000 /dev/mtd2 On NAND
Kernel0 0x00200000 0x00200000 /dev/mtd3 On NAND
Linux_RFS0 0x00400000 0x00E00000 /dev/mtd4 On NAND
Kernel1 0x01200000 0x00200000 /dev/mtd5 On NAND
Linux_RFS1 0x01400000 0x00E00000 /dev/mtd6 On NAND
Brio 0x02200000 0x0DE00000 /dev/mtd7 On NAND
EXT 0x10000000 0x10000000 /dev/mtd8
Cartridge 0x00000000 0x10000000 On Cartridge NAND


Battery Compartments

The Didj has two identical battery compartments, the combined collection of batteries are wired in series.

  • Battery Compartment Terminals:
    • Term 1 - Battery +
    • Term 2 - Temp Sensor + Wired to Pollux pins K20 / GPIOA 28 and K21 / GPIOA 29
    • Term 3 - Temp Sensor -
    • Term 4 - Battery -


Rechargeable Batteries

In addition to the terminals facing the Didj's contacts, there are another set of contacts facing away from the Didj. These contacts are duplicates used by the charging station. The batteries themselves are NIMH cells, producing around 2.5v per pack when fully charged.


Recharging Station

The recharger station contains a battery charge circuit with temperature monitoring. The station also has a pair of contacts that duplicate the 9V dc barrel jack.


SSP / SPI Controller Didj SPI Info

Images

External Links