JuiceWare Test Image

From eLinux.org
Jump to: navigation, search

Building a Test Image

In order to boot a Juiceware cartridge you need the first 0x220 bytes of a working cartridge. To avoid any copyright issues the necessary bytes are not posted here -- you will need to copy them from a cartridge of your own. Creating the image. This assumes a Unix environment.

  • Dump at least the first two 512 byte sectors (without oob/ecc bytes) of a working cartridge. See nand_1.tgz from JuiceBox Code Test page; you will need to modify the code to dump only 512 bytes per page/sector or strip out the extra bytes by hand.
  • Save the result as file.bin.
  • Convert to hex and save the first 0x220 bytes "/usr/bin/xxd file.bin | /usr/bin/head -n 34 > file.hex"
  • Append a branch to offset 0x1000 from 0x248 "/bin/echo '0000240: 0000 0000 0000 0000 0000 0000 6d03 00ea ................' >> file.hex"
  • Get the lcd_2 code from the JuiceBox Code Test page.
  • Change the line near the beginning of lcd_2.dld from RAM (rw) : ORIGIN = 0x0c18000, LENGTH = 0x00010000 to RAM (rw) : ORIGIN = 0x0c181000, LENGTH = 0x00010000.
  • Build the image "/usr/bin/make -f lcd_2.mak".
  • Convert lcd_2.elf to hex "/usr/bin/xxd lcd_2.elf > lcd_2.elf.hex"
  • Remove the first 0x1000 bytes "/usr/bin/tail -n +257 lcd_2.elf.hex > file2.hex"
  • Cat the two files into one "/bin/cat file.hex file2.hex > lcd_nand.hex"
  • Convert to binary "/usr/bin/xxd -r lcd_nand.hex > lcd_nand.bin"

The lcd_nand.bin image can now be written to a NAND cartridge. Back JuiceWare Xd Socket page.


WOW - VERY nice :)

I notice that on bootup with a valid MMC card the bootup ASCII claims that the serial receiver code has been disabled for the 'production version'

Given the code examples below, can someone figure out how to patch the serial receiver code in the running kernel so that it works.

By doing this we will all have shell access. We can patch together the various known working drivers, etc. And otherwise build applications with already known working code.

I wish I had enough familiarity with ARM7 to help do this The driver appears to be a more or less commonly available one, and the serial output routine IS working OK as a starting point.

Good luck to our team


Thanks adeptwiz. According to a comment in the source code the receive was disabled because the rx line was left unterminated in the final artwork. If left enabled any noise on the receiver would cause interrupts and that would degrade performance (very important when playing audio and video). I think others have pointed out that just enabling the receive won't give us shell access, there needs to be something like getty running to log you in. In the long run it's probably easier to load a full Linux image on a cartridge and go from there. Anyway this is better discussed on the message board; http://www.linux-hacker.net/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowBoard&Board=MJB

Jb Fan

"According to a comment in the source code".... You make an interesting point. Still, linking in a working serial input driver and loading busybox seems pretty simple. I wonder if this is what the developer did (you?). Gotta dust off juice box and get your impressive example running :). I suppose a simple echo test program would be a goot addition to this page. On a side note, Yahoo has removed my ability to post comments? So while I read what others write, I can't directly contribute :(. Probably because I choose to remain anonymous.

warm regards, adeptwiz

Not sure what you mean, the message board is not run by Yahoo. If you have forgotten your password the login page will mail it to you. Worst case make yourself a new username ;-) -jbfan