Difference between revisions of "Didj"
(→Tutorials/How To's) |
(→Tutorials/How To's) |
||
(111 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
+ | '''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]] | ||
− | == | + | == Summary == |
The Didj was a toy produced by Leapfrog marketed for educational games for children aged 5-10. | The Didj was a toy produced by Leapfrog marketed for educational games for children aged 5-10. | ||
Line 14: | Line 15: | ||
* Accessed the UART features in the cartridge slot | * Accessed the UART features in the cartridge slot | ||
− | |||
− | |||
− | + | == Platform == | |
− | + | [[LeapFrog_Pollux_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 == |
+ | * [[Didj_Lightning_Boot| Lightning Boot ]] | ||
+ | * [[Didj_U-Boot| U-Boot ]] | ||
+ | * [[Didj_Emerald_Boot| Compile and Install Emerald-Boot]] | ||
− | == | + | == Sources and Toolchains == |
− | [[ | + | * [[LeapFrog_Pollux_Platform:_Source_Code| Sources and Toolchains]] |
== Tutorials/How To's == | == Tutorials/How To's == | ||
− | ''' | + | ''' General ''' |
− | * [[ | + | * [[Didj_Common_Commands|Common Commands Reference]] |
+ | * [[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]] | ||
+ | ''' Networking ''' | ||
+ | * [[Didj_Enable_Networking| Enable Networking via USB Gadget]] | ||
+ | * [[Didj_Install_Dropbear| Install Dropbear SSH]] | ||
+ | * [[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]] | ||
− | ''' | + | ''' USB Storage ''' |
− | * [[ | + | * [[Didj_USB_Mounting|USB Mounting Under Windows, Linux, and OS X]] |
− | + | * [[Didj_SCSI_Commands|SCSI Commands]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | * [[ | ||
− | |||
− | ''' | + | ''' Cartridge ''' |
− | * [[ | + | * [[Didj_Make_ATAP| Make an ATAP NAND Cartridge]] |
− | |||
− | |||
− | |||
− | ''' | + | ''' Flash NAND ''' |
− | * [[ | + | * [[Didj_U-Boot_NAND_Flashing| Flash Data to NAND]] |
− | * [[ | + | * [[Didj_BootLoader_Firmware_Updating|Updating Bootloader/Firmware]] |
− | |||
− | |||
− | |||
− | ''' | + | ''' Firmware Image ''' |
− | * [[ | + | * [[File_Systems#Mounting_JFFS2_image_on_PC_using_mtdram| Mount JFFS2 Image on Linux]] |
+ | ** Relevant Settings | ||
+ | ** Correct endianess | ||
− | + | * [[LeapFrog_Pollux_Platform:_Firmware#Didj_JFFS2 | Create JFFS2 image]] | |
− | * | + | ** Relevant Settings |
− | * | + | ** -e 128 |
+ | ** -p | ||
− | ''' | + | ''' Kernel/RootFS/Firmware''' |
− | + | * [[Didj_and_Explorer_libSDL|Building libSDL]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * [[Didj_and_Explorer_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: | + | * [[Leapster_Explorer:_tslib_Touchscreen_Library|Building tslib]] |
− | * [[Didj_and_Explorer: | + | * [[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]] | ||
+ | * [[Didj_2.6.31_Generic_Buildroot | Generic Buildroot Rootfs and Kernel build]] | ||
+ | ''' 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]] |
− | + | ''' 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]] | ||
− | + | ''' Compiling Source Code ''' | |
− | * | + | * [[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 121: | Line 103: | ||
* [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 | ||
− | |||
− | |||
== Technical Information == | == Technical Information == | ||
− | |||
− | |||
* [[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 ''' | |
− | + | * 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 ''' |
− | + | {| 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 | ||
+ | |} | ||
− | |||
− | + | ''' 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. | 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 ''' | |
− | |||
+ | 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 == |
− | == | + | <gallery perrow=5 caption="PCB Images"> |
− | + | File:Scanned-desoldered-mainboard-front-v2.jpg|Front side mainboard, with LF1000 CPU and SDRAM de-soldered. | |
− | + | File:Bga-closeup.jpg|Close up of the LF1000 CPU ball-grid. | |
− | + | File:Scanned-desoldered-mainboard-back-v2a.jpg|Back side mainboard, with cartridge socket and NAND de-soldered. | |
− | + | File:Didj Mainboard Front.jpg|Front side mainboard | |
− | + | File:Didj Mainboard Back.jpg|Back side mainboard | |
− | |||
− | |||
</gallery> | </gallery> | ||
− | == | + | == External Links == |
− | + | * [http://www.cozybit.com/stories.htm Cozybit boasts of their involvment in integrating Linux with the Didj] | |
− | + | * [http://blogs.distant-earth.com/wp/?p=64 Hacking around with the Leapfrog Didj] | |
− | + | * [http://sites.google.com/site/claudeschwarz/didjhacking2 Claude's Didj Hacking Page] | |
− | + | * Hackaday Posts | |
− | + | ** [http://hackaday.com/2010/02/01/leapfrog-didj-handheld-linux-on-the-cheap/ Didj Hacking] | |
− | + | ** [http://hackaday.com/2010/02/03/leapfrog-didj-followup/ Didj Hacking Followup] | |
− | * | ||
− | |||
− | |||
− | |||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * [http://sites.google.com/site/claudeschwarz/didjhacking2 | ||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | * [http:// | ||
− | |||
− | * [http:// | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | [[Category:Didj]] | |
+ | [[Category:LeapFrog Pollux Platform]] |
Latest revision as of 00:08, 26 February 2013
This device is part of the LeapFrog Pollux Platform, it's recommended to start there for general information.
Contents
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
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
- Enable Networking via USB Gadget
- Install Dropbear SSH
- Playing MP3 network streams and files
- Networking Setup
- Networking Applications
- Internet Access from Device
- Mount NFS Directory
USB Storage
Cartridge
Flash NAND
Firmware Image
- Mount JFFS2 Image on Linux
- Relevant Settings
- Correct endianess
- Create JFFS2 image
- Relevant Settings
- -e 128
- -p
Kernel/RootFS/Firmware
- Building libSDL
- Building SDL_ttf font library
- Building SDL_image library with jpg and png support
- Building SDL_mixer audio library
- Building tslib
- SDL Resources
- Didj Kernel 2.6.31 Upgrade
- 2.6.31 Kernel for Didj
- Boot Kernel and Rootfs from SD w/Framebuffer
- Linux Framebuffer Driver
- Enable SD Card Module
- Building The Explorer Root File System
- Changing the fb driver to display the boot logo correctly
- TV Out
- Generic Buildroot Rootfs and Kernel build
Games and Emulators
Brio Development
JTAG
Compiling Source Code
Development Scripts and Programs
- LF1000 UART Bootstrap Utility written in Python
- LF1000 UART Bootstrap Utilities based on the OMAP boot utilities from TI
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
- PCB Images
- Error creating thumbnail: File with dimensions greater than 12.5 MP
Front side mainboard, with LF1000 CPU and SDRAM de-soldered.
- Error creating thumbnail: File with dimensions greater than 12.5 MP
Back side mainboard, with cartridge socket and NAND de-soldered.