Skip to content

Commit

Permalink
Updated Readme for PL3 intergration.
Browse files Browse the repository at this point in the history
  • Loading branch information
phire committed Oct 17, 2010
1 parent cd452ad commit ddab8c4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 81 deletions.
25 changes: 1 addition & 24 deletions Makefile
Expand Up @@ -61,29 +61,6 @@

FIRMWARE_VERSION = 3_41

# MCU name
#MCU = at90usb1287


# Target board (see library "Board Types" documentation, NONE for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory.
#BOARD = USBKEY


# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_CLOCK below, as it is sourced by
# F_CLOCK after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
#F_CPU = 8000000

## *** Select your board *** ##

## Teensy 1.0
Expand Down Expand Up @@ -735,7 +712,7 @@ $(OBJDIR)/%.o : %.S


# Target: clean project.
clean: begin clean_list clean_pl3 end
clean: begin clean_list end

clean_list :
@echo $(MSG_CLEANING)
Expand Down
71 changes: 14 additions & 57 deletions README.md
Expand Up @@ -4,13 +4,14 @@ PSGroove
This is the PSGroove, an open-source reimplementation of the psjailbreak exploit for
AT90USB and related microcontrollers.

It should work on:
It is known to work on:

- AT90USB162
- AT90USB646
- AT90USB647
- AT90USB1286
- AT90USB1287
- ATMEGA32U2
- ATMEGA32U4

... and maybe more.
Expand All @@ -30,47 +31,25 @@ The repository uses the LUFA library as a submodule. To clone, use something li
git submodule init
git submodule update

If you don't have PPU-GCC installed, make might get confused and refuse to build. To fix this do something like:

Configuring
-----------
Chip and board selection can usually be handled in the Makefile.
In particular, update the MCU, BOARD, and F_CPU lines. Suggested values:

Teensy 1.0:

MCU = at90usb162
BOARD = TEENSY
F_CLOCK = 16000000

Teensy++ 1.0:

MCU = at90usb646
BOARD = TEENSY
F_CLOCK = 16000000

Teensy 2.0:
cd PL3
make clean
git checkout .
cd ..

MCU = atmega32u4
BOARD = TEENSY
F_CLOCK = 16000000
Make should now work as expected and use the precompiled PL3 payloads.

Teensy++ 2.0:

MCU = at90usb1286
BOARD = TEENSY
F_CLOCK = 16000000
Configuring
-----------

AT90USBKEY / AT90USBKEY2:
This version of PSGroove has been modified to directly use PL3 payloads instead of a single hardcoded Payload for much greater flexablity.

MCU = at90usb1287
BOARD = USBKEY
F_CLOCK = 8000000
Edit Makefile to reflect your firmware version (3_41, 3_01, 3_10 and 3_15 are currently supported) and board.

Minimus AVR USB:
Alternately, you can just use the build_hex.sh to automatically build hex files for all supported boards and firmware versions.

MCU = at90usb162
BOARD = USBKEY
F_CLOCK = 16000000
By default PSGroove is configured to use the dev PL3 payload which matches the peek/poke payload that PSGroove used to have. You can select another PL3 payload by changing the PAYLOAD define in descriptor.h

Board-specific notes
--------------------
Expand Down Expand Up @@ -121,25 +100,3 @@ Notes
A programmed dongle won't enumerate properly on a PC, so don't worry
about that.

This branch has a modified payload that adds peek and poke syscalls
to the lv2 kernel. A userspace application can use these syscalls to
dump out the entire memory space of the kernel, or patch the kernel
as it is running.

Unfortunately, because the free toolchain/sdk is not ready, we can't
distribute an application to do the dumping, so you will have to make
your own.

The lv2 kernel starts at 0x8000000000000000

Peek
----
* Syscall 6.
* r3 is a 64 bit address to read
* A 64 bit value will be returned in r3

Poke
----
* Syscall 7.
* r4 is a 64 bit value
* r3 is the address to write that value to

0 comments on commit ddab8c4

Please sign in to comment.