Commit graph

875 commits

Author SHA1 Message Date
Amaury Pouly
81dfed27cf utils/hwstub: make stmp stub able to load in a MMU'ed environement
In might be useful to load hwstub in an environment with the MMU active,
in which case care must be taken on the order in which things are done.
Mostly, one should not disable the MMU before moving stuff around. The code
assumes the linking address (0 currently) is identity mapped.

Change-Id: I8d54ce9e8cadcde2e08990353ca7a46803731ca7
2014-02-10 23:14:25 +01:00
Amaury Pouly
c17d30f204 utils/hwstub: completely rework the protocol, drop unused features
The protocol has evolved a lot during the 2.x.y lifetime, bringing more
features which later got unused. This commit removes all the unused stuff
and simplifies everything:
- drop the feature mask: everything is mandatory or stalled on error
- remove the info request and put all static information in standard USB
  descriptors which are part of the configuration descriptor (and can be
  retrieved using the standard GetDescriptor request).
- remove the USB interface, we had only one anyway
- remove all endpoint descriptors
- remove the exit/atexit stuff, it never worked as intended anyway
- update the hwstub library and make it able to handle any device
- update the tools (mostly renaming and removing of code)

Change-Id: I1872bba7f4177fc3891180e8f944aab88f5bde31
2014-02-10 23:14:24 +01:00
Marcin Bukat
7552542288 atj213x: Simple test exploring irq handling
This test software setups timer T0 periodic interrupt.
In ISR it changes backlight level. The interrupt handler
does not support nesting and the whole ISR is run in interrupt
context. Exceptions are not handled yet.

Change-Id: Idc5d622991c7257b4577448d8be08ddd1c24c745
2014-02-09 22:29:30 +01:00
Lorenzo Miori
e876f4df6d Samsung YP-R1 target port
This is the basic port to the new target Samsung
YP-R1, which runs on a similar platform as YP-R0.
Port is usable, although there are still
some optimizations that have to be done.

Change-Id: If83a8e386369e413581753780c159026d9e41f04
2014-02-05 09:56:21 +01:00
Thomas Martitz
b828b9d99b samsung ypr0: Include getty service in the patched firmware for usb serial shell access.
The getty service mointors /dev/ttyGS0 (also created by the patched firmware).
When the g_serial.ko module is loaded this automatically enables shell access
via usb. It exposes a cdc-acm device to the host which is compatible to linux
(usb_serial.ko) and windows.

The g_serial.ko is not included module can be build from the YP-R0 open source
package provided by samsung. It can be loaded via rc.user on the internal memory.

Change-Id: I4903a635fd2e2f0ce6f5e91589a31d72bba2776b
2014-02-04 22:26:06 +01:00
Amaury Pouly
7272a95b9c rk27utils: improve command line parsing, allow arbitrary USB ids in rkusbtool
Change-Id: I884fe29c10dede7823721c2cac5dc627d6ab25c6
Reviewed-on: http://gerrit.rockbox.org/731
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2014-01-30 21:20:06 +01:00
Marcin Bukat
51d8a45057 adfuload: add atj213x timer0 test program
This simple program shows how to setup timer for periodic
operation. Interrupts are not used yet and simply pending
irq bit is polled and cleared when set. This program
supports my understanding of disassm of ADEC_N63.BIN that
P_CLK is configured for 7.5MHz and timer clock source is P_CLK
directly.

Change-Id: Idd6461bf847c763b78b8c324012ec2515f65dd41
2014-01-08 08:56:09 +01:00
Thomas Martitz
98d2121eaa bloat-o-meter.py: Now compatible to python 3.
Change-Id: Id617aa6304a5a9263ef6ceed7d9c3010b47e73a8
2014-01-07 10:35:59 +01:00
Marcin Bukat
062801e3ed atj213x: obtain PC value in more elegant way
Change-Id: I2e6ffb3b58ddda0ea62ce5d4cd71ac5475b34495
2014-01-03 09:00:11 +01:00
Amaury Pouly
8566cd7ebf regtools/qeditor: always open a register tab at init
Change-Id: I47a1413ca648c7166571e6b0ba88c7ebb5ce86a8
2013-12-24 15:25:42 +01:00
Amaury Pouly
a0fd5e8547 hwstub: update zenxfistyle code
Change-Id: I7e85101eca7dfc0f68c215936be4aa19749923ad
2013-12-24 15:25:32 +01:00
Amaury Pouly
16de558b36 hwstub: use delay in zenxfistyle code
Change-Id: Ia9576162b3b28d3778fe479cc321c879d73247c6
2013-12-24 15:25:09 +01:00
Amaury Pouly
01475e724b hwstub: fix lcdif pin setup for 18-bit bus
Change-Id: I30a2cedb1170abbee5a80c33206c147eb4207ca5
2013-12-24 15:24:50 +01:00
Amaury Pouly
5b865de73a hwstub: add delay function
Change-Id: Iab208ed59a9a2540a64b190357411d3de28f288e
2013-12-24 15:24:40 +01:00
Amaury Pouly
1dc91b4560 hwstub: add ZEN X-Fi Style code (preliminary)
Change-Id: I535d54bc3fb2263c174b7ae983ea4f5ed68e6390
2013-12-24 12:39:58 +01:00
Amaury Pouly
84f1a0af3b imxtools/scsitools: tool can now write a firmware using SCSI
Change-Id: Iac803d4b2d48319a1a32d1101f5041d20174c7a1
2013-12-24 12:39:58 +01:00
Amaury Pouly
e0636afed2 hwstub: fix lcdif code for 18-bit word length
Change-Id: I38cf0b5808443d5c19ebddb329c2a1636bcc4b28
2013-12-24 12:39:58 +01:00
Marcin Bukat
87c6df98a3 adfuload: add test program
This test program. I add it mainly to document somehow my work:
1) atj213x.h    lists registers addresses
2) crt0.S       exploits self relocation of the binary
3) test_bl.c    documents how to control backlight on e150

Change-Id: I055e0fe065d926a5c3805b73cea3f537cb64bf52
2013-12-13 22:43:52 +01:00
Amaury Pouly
8666871cb3 hwstub/stmp: disable watchdog
Some targets like Sony NWZ use a watchdog, so we must disable it to prevent
spurious reboot when we take over

Change-Id: I138a8d7f9a1b089acb2d08d7f6c4a58e8b088b3a
2013-12-13 00:20:18 +01:00
Amaury Pouly
3bbe52bb85 hwstub/stmp: cleanup
Conditional no longer needed since ctr0.S is private to target, also setup
stack just before jumping to C code only

Change-Id: I74116239be9e87bbe53e8fa814c45f04f242f1c1
2013-12-13 00:20:18 +01:00
Marcin Bukat
b5ca0cffac adfuload: utility to upload and exec binary using brom adfu mode of atj213x SoC
Change-Id: If52aa34124be2801c2ac316641ff9aa0bbd837c6
2013-12-11 15:42:25 +01:00
Amaury Pouly
99835fa38b imxtools/sbtools/sb1: fix parsing/debug bug about jump/call arguments
Change-Id: Ib406cfc03ced6c8689ed467c154d6a7447a34e5c
2013-12-06 15:22:38 +01:00
Amaury Pouly
6eefc418dc imxtools/sbtools/elf: fix debug code
Change-Id: If043eb214417a41f71e6c05fc6a725eb8f983373
2013-12-06 15:22:38 +01:00
Marcin Bukat
3440f3518e hwstub: Prepare for multi arch support
Change-Id: Id38411ff95660e60ee23f99350b275b92b3e4578
Reviewed-on: http://gerrit.rockbox.org/690
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-12-06 11:46:01 +01:00
Amaury Pouly
c5b209f2d8 elftosb: fix crash on invalid command file
Change-Id: Ifef61b7ca6a391960d1d696ba455e0d14462c967
2013-12-06 11:37:49 +01:00
Amaury Pouly
f365a5123f hwstub: forgot the db command file for stmp
Change-Id: I08ca6be221d3633c5b6e5e4b023afca33713e428
2013-12-06 11:37:10 +01:00
Amaury Pouly
e43bfdd5e8 regtools: update STMP3600 descriptio (fix EMI block)
Change-Id: I654e3210c1050e3bd559c9e9b29707a6341b111b
2013-12-06 02:00:40 +01:00
Amaury Pouly
58bb4b9b4c hwstub: implement i2c and i2c eeprom dump
Change-Id: Iff1b4f40affb88c104e7322e25cdbe34f8886476
2013-12-06 01:56:04 +01:00
Amaury Pouly
a15a15ba61 hstub: add Sansa Express lcd code
Change-Id: I61fc58e3c97a3666eac98d21226865181b85eef1
2013-12-03 01:35:34 +01:00
Amaury Pouly
15155ed100 regtools: update xml format documentation
Change-Id: I7e293532983f350a6f7cd9c7bc2bc6633c8fd3f2
Reviewed-on: http://gerrit.rockbox.org/671
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-12-02 20:21:58 +01:00
Amaury Pouly
f04d3c518a regtools: add shortcut notation for simple register in the desc files
Change-Id: I2745287844ad0a47dd41ba4dae5e1f7218ae5814
Reviewed-on: http://gerrit.rockbox.org/679
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-11-26 00:29:48 +01:00
Amaury Pouly
ef2b6db066 regtools/qeditor: fix url
Change-Id: I9783ff809c69bb5617b2048d1e11374cd8f680ab
2013-11-25 22:52:21 +00:00
Amaury Pouly
85578cdc4d utils/regtools/qeditor: fix compilation by avoiding g++ specific syntax
Change-Id: Ie3d36c6c235a5fd70ffc51552fae3392a015beb0
2013-11-25 12:50:33 +00:00
Marcin Bukat
8e63338591 hwstub rk27xx port
Change-Id: I85ac57117911544b65ccd56eb16303e30be67cab
2013-11-24 00:10:36 +01:00
Amaury Pouly
fb8faa16ea hwstub: only load stmp files on stmp targets
Change-Id: I9266ec6db457b1d649cbdcb6c9bd1d0f3223b867
2013-11-20 16:39:20 +00:00
Amaury Pouly
287be81c16 hwstub: use a more reasonable hclk frequency
The old code would set CPU to 64MHz and HCLK to 9MHz but that's too low for
many things like usb and gpmi. So change HCLK to ~32MHZ.

Change-Id: I6459f25900e42603333cebccb7b0ed26c59640ad
2013-11-18 21:44:06 +00:00
Amaury Pouly
27111d83be hwstub: fix stmp3600
The microseconds register has a different address

Change-Id: I29d2e7feea9eb34b0d539ee217babd092542b612
2013-10-26 17:34:58 +02:00
Amaury Pouly
1085d15a3e hwstub: produce sb1 image too (for STMP3600)
Change-Id: Ib7f38fba1e524ed7438cdc395441d801c5eabcaa
2013-10-26 17:34:35 +02:00
Amaury Pouly
eefab13469 utils/regtools: add a bunch of regdumps for various sources
Change-Id: I67bbd2d1b02ca4541f70d2e9c8c0e6000300dcac
2013-10-22 00:52:43 +02:00
Amaury Pouly
cec5ac7bf7 utils/hwstub: fix zen target id
Change-Id: I9199f573a050223a811a8e82e403f113fb876cca
2013-10-22 00:35:32 +02:00
Amaury Pouly
9ed9807854 hwstub: rework i2c completely
Change-Id: I1e5f87f15f0ca9586d8185316ffcaeef6d9d4d38
2013-10-22 00:34:44 +02:00
Amaury Pouly
bfb67f41a9 hwstub: don't touch mmu registers on non-STMP targets, they might not exist
Change-Id: Ib18475fd90e0d29ab6d7214116f7a0041584d621
2013-10-22 00:34:44 +02:00
Amaury Pouly
f5807141b6 imxtools/scsitools: document some of the SCSI vendor commands
Change-Id: I534fc467aad960c61b54d202096823d5c2c9a5e9
2013-10-10 00:11:47 +02:00
Amaury Pouly
468aa959c7 imxtools/sbloader: rewrite hid code
Rewrite code with proper documentation: it uses a UMS like CBW/CSW to wrap
commands and status.

Change-Id: I10476c87aaea96d4b9e54f8c1c266835c8e89721
2013-10-09 13:06:41 +02:00
Amaury Pouly
1c63993e05 imxtools/sbtools: always probe report size for HID recovery mode
Some older versions of the ROM (TA3 for example), use a 64 byte report size
instead of 1024, so hardcoding 1024 is just a bad idea.

Change-Id: I720c4465cfe2f519bffa307175614bba58766dce
2013-10-09 13:05:43 +02:00
Amaury Pouly
835d740fca hwstub: fix lcd drivers for sony NWZ
Change-Id: I8d581ec906ec2bab0d983aacfb0e8479b77d0c57
2013-09-26 16:41:30 +02:00
Amaury Pouly
46248b3df9 hwstub: add some code for the NWZ-E360/E370
Change-Id: I9fe5da773705ec4c3d014b8ac7f78ad614e20a30
2013-09-25 14:31:39 +02:00
Amaury Pouly
f46ff0f076 hwstub: add stmp i2c code
Change-Id: I6787e682a9e22cb34e6d94d25bf68d7575d784c4
2013-09-25 14:31:39 +02:00
Amaury Pouly
b8c98a86fb regtools/qeditor: improve pinctrl analyser display
Change-Id: I45850f4f0213aac5f0538c865cfa84137fcb83e3
2013-09-18 13:37:25 +02:00
Amaury Pouly
963dfc529c regtools/qeditor: enhance pinctrl analyser
Change-Id: I82c5a86ade4c804872ac7665bce583499467cae9
2013-09-18 13:18:12 +02:00
Amaury Pouly
30b20bf2e7 retools/qeditor: add pin decoder (very basic add the moment)
Change-Id: I5309794efda67fd3bf5c265b35ea7da5faf662f6
2013-09-18 13:18:00 +02:00
Amaury Pouly
8f122e0091 imxtools: add pin map and decoding tool
Also add the tool which was used to generate the map on wiki.

Change-Id: I54f3474028b5fa75348564437ec1b46ba20f071b
2013-09-18 13:17:54 +02:00
Amaury Pouly
27433076e9 tcctool: fix Makefile
The version.sh tool tries to locate the repository root if no argument is
given but it doesn't really work. Instead explicitely give it the path to
the root.

Change-Id: Ie3a35cb3d41bbd8819823358763f714ad045527e
2013-09-18 13:14:20 +02:00
Amaury Pouly
afd85634a0 tcctool: add YP-T10
The SDCFG value is the default one but it seems to work

Change-Id: Iaf990aa2e8e738f0929e49322c0a28ce461d49a7
2013-09-18 13:13:32 +02:00
Lorenzo Miori
66aa00d3e0 Samsung YP-R0/YP-R1 Safe Mode improvement
This is an improvement for the special
mode present in the samsung ypr0 target.
Apart adding new useful functionalities, it
fixes a random disconnection bug, solved by debouncing
and fully support to YP-R1 target.
This opens also the possibility to interface
this operating mode to rockbox USB functionality.

Change-Id: Id70541541fcfaa1234328485fab0696a3bd491c9
2013-09-16 12:55:48 +02:00
Lorenzo Miori
5ef1e2dcfa ypr0-ypr1 firmware tools fix
fixed a bug concerning bytes padding, since it wasn't correctly
implemented regarding original firmware structure.
This fixes ROM generation especially for ypr1.

Change-Id: I1a40fb4bb8f9d6b005d694246123e314c4d19b49
Reviewed-on: http://gerrit.rockbox.org/616
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2013-09-11 23:08:37 +02:00
Amaury Pouly
743a6d0a57 hwstub: add pix clock setup
Change-Id: I94f764c0fcfb47bd9ccafe23f6d6079b42f23826
2013-09-10 23:19:34 +02:00
Amaury Pouly
0ee25f62eb hwstub: various fix
Change-Id: I4dee8e115e282d1d6540013c9b9f1263e30690de
2013-09-10 23:19:34 +02:00
Amaury Pouly
8785a499f4 imxtools/efltosb: fix extern() in db files
Change-Id: I5f1acd619b2f280e709d2bd06a28a3e88cc05e27
2013-09-10 23:19:34 +02:00
Amaury Pouly
3b6d2ac28a hwstub: add delay functions, and plain binary/sb file generation
Change-Id: Idbedb9277b355edcd93975ec5a268428c7b89633
2013-09-10 23:19:34 +02:00
Lorenzo Miori
da8a6a90c3 Firmware tools for Samsung YP-R0/YP-R1 (and possibly others)
They have been rewritten for being completely free and
as fast as possible.
Successfully extracted, patched, repacked and flashed
original firmware (tested on device and it worked)

Change-Id: I74d47d13f2dc3a2832a0d6821d3c2182dfd4b33b
Reviewed-on: http://gerrit.rockbox.org/506
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2013-09-07 15:56:07 +02:00
Amaury Pouly
f40b15d0cb hwstub: improve lcdif, digtctl, add sony nwz-e370
Change-Id: I5316cc9fd9addfca8a674628695fed1c1bf9269f
2013-09-05 23:16:27 +02:00
Amaury Pouly
3713bc4b7c imxtools/scsitools: add option to extract firmware from the device
Change-Id: Ib8cbf2f864a9375575cea0edbba48f740bf8f12e
2013-09-05 23:16:06 +02:00
Marcin Bukat
f182a11f33 rk27utils: Add nandextract utility
This quick and dirty utility allows to extract nand bootloader
from raw 1st nand block dump. I post it mainly to somewhat
document how BCH error correction engine of the rk27xx works.

Change-Id: I37ca91add7d372e3576d2722afc946d0f08971a9
2013-09-02 12:35:47 +02:00
Amaury Pouly
67a16f9ae1 regtools: various fix
Change-Id: I3a37221d1688c2f1cbc649bbd2fd27dc78d286a6
2013-08-22 23:45:14 +02:00
Amaury Pouly
142ce48771 regtools: fix several bugs in qeditor
Change-Id: I1bef76d30eb47c4ebc8a2baca356d9c135b234ae
2013-08-22 17:50:59 +02:00
Amaury Pouly
acaedfdb89 sbtools: fix elf section naming
Change-Id: I4500bf70028af26cc4b8136f111f527e1396d16e
2013-08-22 15:05:13 +02:00
Amaury Pouly
260399ee8c sbtools: more work on sbtoelf and elftosb, support more attributes
Now handle timestamp, sb minor version, component/product versions,
section flags.

Change-Id: I35313efe60c28f04ea3732b36e5e01be3213cf9e
2013-08-22 14:39:46 +02:00
Amaury Pouly
a122b52d66 sbtools: factor code in command parser
Change-Id: I790c373b8a0319cdb00650d3c59919bd4b0b96f6
2013-08-22 01:15:00 +02:00
Amaury Pouly
81f97f67e2 sbtools: now generate a db file along with with elf/rsrc files
Now always generate a "make.db" file which aims at being the exact
representation of the file, ie running sbtoelf and elftosb using
the generated command file should produce the exact same file
(except for the random paddings). We still miss the support
for some option parsing to achieve that though.

Change-Id: Ib7d6b241f7855fd35225df8ab8e0711f69d9ee5a
2013-08-22 00:58:19 +02:00
Amaury Pouly
e64008bf9a sbtools: fix buffer overflow
Change-Id: I7b1c963e58eec88da215722ec219569a0a5a9cea
2013-08-22 00:49:34 +02:00
Amaury Pouly
8dc7970bb5 sbtools: fix red
Change-Id: I28b7d4d59d8f14abbba2a70e2bdea6987b6a3a98
2013-08-21 23:02:49 +02:00
Amaury Pouly
99f3ca174e sbtools: more code refactoring
Factor all printf method with a unique one defined in misc.h

Change-Id: I58fbf8916b76e873a2e6678506d2c8aece7834ec
2013-08-21 22:20:53 +02:00
Amaury Pouly
1357e0a4f1 regtools: add a register dump of the Fuze+ OF
This dump has been obtained with hwpatcher + hwstub, the fuze+
was running OF 2.36.8 in normal mode while playing some mp3.

Change-Id: Ieecaa760fe8ccade0858db929b9d7c175a3eaddf
2013-08-21 20:29:23 +02:00
Amaury Pouly
c323381f0b regtools: add graphical register explorer + analyser
This tool allows one to explore any register map. Register dumps
(like produced by hwstub tools) can be loaded and decoded by the
tool. Finally some analysers are provided for specific soc analysis
like clock tree and emi on imx233 for example.

Change-Id: Iaf81bd52d15f3e44ab4fe9bc039153fcf60cf92a
2013-08-21 20:18:37 +02:00
Amaury Pouly
1b1692ff06 hwstub: add stmp clkctrl code and generic register dumper
Change-Id: I432853fb4171f07ed23b73dc0499814fe8ce8748
2013-08-11 19:18:58 +02:00
Amaury Pouly
d759bd3710 hwstub: add atexit and exit stub function to DEV
Change-Id: I17cfe52de3f6f546a46ace3252113024625f15d1
2013-08-11 19:18:16 +02:00
Amaury Pouly
4aae8274b3 hwstub: fix power off and reboot code on stmp
Change-Id: Ia717c5e6f78a2cecc6a0628e4c667ea39f32c44c
2013-08-11 19:17:57 +02:00
Amaury Pouly
0ec1536d64 hwstub: allow the stub to relocate itself
Change-Id: Iab60c6ec0e8eda19c76c84241f8367d53cb4f87b
2013-08-11 19:17:36 +02:00
Amaury Pouly
cb8274373b sbtools: more printf fixing
Change-Id: Id617297c196b381fd1c381da3eff4345e3157529
2013-08-10 21:37:27 +02:00
Amaury Pouly
c0aba07f1a sbtools: fix output printing
The code used printf instead of the provided printf functions,
resulting in strange output.

Change-Id: I2c7c2531d8d54ecdea97e8c189d18d351320ca7d
2013-08-06 21:24:38 +02:00
Amaury Pouly
97459def3c sbtools: fix handling of NOP instructions
Change-Id: I05ab8176f368a6e2d075dfb2059692871e0c00b3
2013-08-06 21:24:38 +02:00
Amaury Pouly
8b13d2f5f1 elf: fix handling of virtual/physical addresses
Remove the hackish elf_translate_addresses which should not have
existed in the first place, on write always compute the physical
address of a section using elf_translate_virtual_address which
makes it possible to specify any virtual to physical mapping and
fail nicely if there is none.

Change-Id: I4f436945e90280a6fd9430de6c642dbeb8e23d40
2013-08-06 21:24:38 +02:00
Amaury Pouly
8e69c37b5a sbtools: various fixes
Change-Id: I82c4642aea325cf22d66e9b49fc2d47319cd70eb
2013-08-06 21:24:38 +02:00
Amaury Pouly
e69293ecdb sbtools: standard sb print function is now standard
Change-Id: I2746bfff9a360ef4fc823853859609ffed5d2b67
2013-08-06 21:24:38 +02:00
Amaury Pouly
f72617c002 sbtools: elf library can now load global symbols
Change-Id: I4d9f38ce31e65542d6ab192158bff52b6fad8f09
2013-08-06 21:24:38 +02:00
Amaury Pouly
e4c9eaa7e8 sbtools: add helper to determine if a file is a valid ELF image
Change-Id: Ie0e9c05569ca9b02fd36f31fd7323f02b14e1b60
2013-08-06 21:24:38 +02:00
Amaury Pouly
76446dda45 sbtools: make code aware of elf section names
Change-Id: I7ab657959e38d2fcb2c7e6d9858facfb83101423
2013-08-06 21:24:38 +02:00
Amaury Pouly
1c8c24183e sbtools: refactor and cleanup
Factor common elf/sb read/write/printf routines. Factor sb zero
key, move sb version guess.

Change-Id: I5ae1885587456736e782e623610281bbee545039
2013-07-18 00:27:12 +02:00
Amaury Pouly
3c5ee9ac57 hwstub: forgot file
Change-Id: Ib79f4ef89c734d7ba2fcbf648aadc346576e1c17
2013-07-16 22:23:14 +02:00
Amaury Pouly
e5de5e09c1 hwstub: enhance exit protocol and implement on stmp
Rename STOP command to EXIT, introduce ATEXIT, this gives better
control over the exit of the stub. Add stmp implementation.

Change-Id: I45442c8b88b9330d12ef439417ca5ffa1520477a
2013-07-16 19:29:42 +02:00
Amaury Pouly
7827b7ccdb hwstub: allow to escape shell with a function call
Change-Id: I65b7b230d3b89a5014db134d3159861474fd889f
2013-07-13 17:47:01 +02:00
Amaury Pouly
f617da0552 hwstub: enhance protocol with more functions
Change-Id: I7944249c2f7ea3e180e7b79ee8ae402d1d0742d3
2013-07-13 17:47:01 +02:00
Amaury Pouly
140783ef66 hwstub: split target specific code from the common part
Completely rewrite the Mafile, properly put the usb driver in its
own file and the target specific files in a subdirectory.

Change-Id: Iaeee0128e021d5dad76b4d6035a63e33e2d946c1
2013-07-13 17:47:01 +02:00
Amaury Pouly
08e466ff92 imxtools: add device info and serial number requests to scsitool
Change-Id: I17b679062fa53c20034e7db6f4080f8762a7818c
2013-07-07 17:36:21 +02:00
Amaury Pouly
00faabef5e imx233: document some more stmp vendor scsi command
Change-Id: Ie03c0c8288b4bd9c0b4beedae363cff6caf3c5cd
2013-07-03 01:05:00 +02:00
Amaury Pouly
87b84c07d7 sbtools: fix sbloader (allow transfer size override)
Change-Id: Id6d3188b7f837726c29845f01b0b1588acf40407
2013-06-18 14:59:13 +02:00
Amaury Pouly
505f37e1b8 sbtools: various little fixes, mostly cosmetics
Change-Id: Ic53ef0283bdaee8d3272f648b71eff567b25059b
2013-06-17 13:58:59 +02:00
Amaury Pouly
c1eafa1b65 sbtools: add Sansa Express bootloader key
Change-Id: I167a6410e40478173e5ce496ace4f705c3e26a1b
2013-06-17 13:38:31 +02:00
Amaury Pouly
7c7fa36918 sbtools,mkximboot: fix whitespace
Change-Id: I8d8adb783707172d1aaef302366c240310350ed8
2013-06-15 22:27:34 +02:00
Amaury Pouly
5aab4431fb Cosmetics
Change-Id: Id7974f1a79b5d803155ccfc417277a73ffd9046a
2013-06-15 22:27:34 +02:00
Amaury Pouly
97b9ade639 regtools: improve header generator
The generator now has more options to generate or not selectors.
It can also generate a macro header containing lots of using
macros for register operations.

Change-Id: I9dd6b4bdc7daeabd1a2c9365ce082358475721b5
2013-06-15 22:27:33 +02:00
Amaury Pouly
9ad50ade17 imxtools: add Zen, Zen Mozaic and Zen X-Fi bootloader keys
Change-Id: I856e5b91c8e9a1c02b367960052c36f9b527046b
2013-06-13 02:31:19 +02:00
Amaury Pouly
07e82c163e imxtools: rewrite sbloader to handle both versions + user friendly
The tool can now load sb1 and sb files to devices. Detection has
been improved and the tool can infer the packet size for the HID
description as well. The command line interface has been vastly
improved too, this breaks the old one.

Change-Id: I01a0ff8f8a007514aa81c56f114c0f0a86e3303c
2013-06-13 02:29:36 +02:00
Amaury Pouly
1dae3a82e2 sbtools: fix encryption and cosmetics
Change-Id: Id302f236ad3ec13a5166de4e22a3fc85b2a6c64f
2013-06-13 02:27:30 +02:00
Amaury Pouly
f9cb5de580 hwstub: introduce lua code for the STMP and Creative ZEN V/Mozaic
Change-Id: Ice5f509a2e0d2114436d4760f338b9203ef96691
2013-06-13 02:25:15 +02:00
Amaury Pouly
c5357940ab hwstub: major improvement in the stub and the tools
Fix the stub in many way to correctly detect the STMP family and
act upon that. Drop some unused commands and bump version.
Rewrite the tool to allows scripting in lua and load the register
description from an XML file using the regtools. Introduce a new
tool to load and run code using the hwstub (either binary format
or Rockbox additive scramble format). Also switch to an optimise
version of the memcpy/move/set functions to correctly handle
alignement issue (like writing a full word/half-word when
possible for registers which is crucial)

Change-Id: Id1d5cfe0b1b47e8b43900d32c5cd6eafae6414f6
2013-06-13 02:25:15 +02:00
Amaury Pouly
934e1e15af regtools: add the STMP3600 register map
Change-Id: Ief34c219bbe05c9aeed665235942bb158bb0f4d4
2013-06-13 02:25:14 +02:00
Amaury Pouly
73db73dbd3 regtools: modify description format and refactor tools
Change the XML description to unify multi dev/reg in a clean
fashion. Move the description parser to its own library. Fix
the tester and headergen tools to work with the new format and
library. Move the STMP3700/3780 descriptions to the new format
(and fixes many errors as well). Drop the hwemulgen tool
in favor on the upcoming hwstub tools revamp.

Change-Id: I7119a187aab5c8b083cc5228cb1b248ee29f184d
2013-06-13 02:25:08 +02:00
Amaury Pouly
7143ea681c imxtools: move regtools to its own directory
The register tools are in no way stmp specific. The XML
description of the registers is powerful enough to describe
the STMP register which should be more than enough to describe
virtually all other SoCs. The generators follow the STMP coding
convention but others could be used as well.

Change-Id: If1a9f56e4a3594161688de34adbea698e5aaecd8
2013-06-12 19:49:26 +02:00
Amaury Pouly
11da9d23fe imxtools: move hwemul to its own directory
The hwemul is only partly imx specific: the stub is stmp specific
but could be ported to other targets, the computer side and the
protocol are mostly stmp independent (or should be).

Change-Id: If88febffe591b0de86ea11cb740455ba20ddc401
2013-06-12 19:46:04 +02:00
Dominik Riebeling
9574b30066 time-sync: allow passing an arbitrary time.
During testing it can be useful to set an arbitrary (non-current) time on the
device. Extend time-sync to accept an additional (optional) parameter with the
time to set. Only changes date / time, no timezone.

Change-Id: Ib320777cb245cff19ca00b20540db3a43a4e488f
2013-06-09 19:51:08 +02:00
Dominik Riebeling
6b3c4beba4 Rework langstat.
- Generally improve code and make it compliant to PEP8.
- Make it work with Python3 as well.

Change-Id: I9e99999c59dc501664c36dd38fcb85fb60d6d9e6
2013-06-09 16:54:59 +02:00
Marcin Bukat
b2dd1f8d46 rk27load: Fix stage1 (dram init routine)
Change-Id: I9f7bbb7e938bd5886c11533b1aa939bd27cab555
2013-04-15 21:04:21 +02:00
Amaury Pouly
d504a6b220 rknanoutils: fix boot tool
Correctly descramble the first stages (0 to 2) in continuous mode.
Also fix a disassembled (but unused) crc routine used in dfu mode.

Change-Id: I20016d1c696a9bcb6584377ee9b55493783c7159
2013-03-21 19:02:03 +01:00
Amaury Pouly
6ea48cf92b rknanoutils: add dfu tool
This tool can upload a firmware to the device in DFU mode. The
protocol is the same as the rk27xx devices except that it can
load a bigger (unlimited ?) firmware.

Change-Id: Ic9d4c5087629a9156f9d5d5cdc80767e6359c431
2013-03-21 19:02:02 +01:00
Amaury Pouly
d220940443 rknanoutils: fix stupid mistake
Change-Id: I5267533226d833b20abb3cfd27cc390aef1181e4
2013-03-16 01:24:31 +01:00
Frank Gevaerts
3e4be68f8b Make the tarball generation tool handle spaces in filenames
<insert opinion on such filenames here>

Change-Id: Ie1b5fac97eea93c9ac934ffb8bf6c0d9a0559339
2013-03-05 22:37:27 +01:00
Amaury Pouly
bc05242517 imxtools/sbtools: silence warning
Change-Id: I423e760bbc8e418bcce3afe01c5831b5a3e655f3
2013-02-18 13:43:55 +01:00
Amaury Pouly
4362a7ba33 imxtools/sbtools: add -jump command, fix help
Change-Id: I0d5d61c1dc137333bda5e403d06a43d16f2750bf
2013-02-18 13:40:25 +01:00
Amaury Pouly
ac9304299d sbtools/elftosb1: implement key file loading
Change-Id: I2273b8d6314250620611ec50d159237edc6d76c2
2013-02-18 13:40:25 +01:00
Amaury Pouly
b05b762ed4 sbtools: add brute force option for sb1 in sbtoelf
After some reverse engineering, it appears that the keys of the
sb1 format are very weak: the 128 bytes are generated from the
laserfuse words 4,5 and 6 but in a weird manner: 4 and 5 are
simply ORed and 6 is only half used (somehow), making it "only" a
48 bit word to find.

Change-Id: I40702e19d0924ef51c01894efce3cb65bd664456
2013-02-16 20:49:07 +01:00
Amaury Pouly
4db4985f21 sbtools: increase performance by compiling with O3, add zenv key
Change-Id: I2301f695e49d306d21bb9efa9c44acf1d3296a08
2013-02-16 20:49:07 +01:00
Amaury Pouly
a085c10674 imxtools/hwemul: fix Makefile linking order
Change-Id: Ie9ad10c627a86b1e6e689052fd436529d3ba6591
2013-01-30 00:02:56 +00:00
Amaury Pouly
9d2631854c imxtools/hwemul: add readline support
Change-Id: If2e86bf8b520a8d4c38a56ac969918fdeb2c6f91
2013-01-29 23:58:45 +00:00
Amaury Pouly
6d5b1b2448 imxtools/sbtoelf: add more robust version guess
Change-Id: I41ce1005d997cf35153e085b19294bb7d418e968
2013-01-29 20:46:28 +00:00
Amaury Pouly
5b00e59614 imxtools/sbtools: fix file type detection
Change-Id: I872e98f5810df3ecc975e025385f9c5ca7b47a44
2013-01-26 18:24:50 +00:00
Amaury Pouly
75df5c2684 imxtools/hwemul: allow for toolchain prefix override
Change-Id: I4f790441edac01ab2e8cb286c766ea0b272b4780
2013-01-26 18:24:50 +00:00
Amaury Pouly
8ed0d198c5 imxtools/scsitools: add support for more commands
Change-Id: Iddff64502ba357dcd36903d31015b9ae2d00ae62
2013-01-15 19:42:20 +00:00
Amaury Pouly
b9923df170 imxtools/nwztools: fix compilation for windows
There is a windows port of the sg_utils library for scsi pass-
through. This little changes make it compile under mingw. A better
fix would be to implement direct ioctl on both windows and linux
but that's already better than nothing

Change-Id: I0d77cd1bad69806a66f0590362f165f24fa240e9
2013-01-10 00:51:35 +00:00
Amaury Pouly
423755d1bd imxtools/sbtools: improve sb1 key handling
Change-Id: Ib014a102fe44a67dd256e45e804bca9b5812eb61
2012-12-26 01:17:28 +01:00
Amaury Pouly
c3a7190d78 imxtools/sbtools: add crypto code for documentation purpose
Change-Id: I4f3c659d65c1453b192cbce4bf6c85d882761929
2012-12-26 01:17:27 +01:00
Amaury Pouly
54a414b69e elftosb1: fix usage()
Change-Id: I9ce73b907fa6276b9cd1f285156623bdafa6d548
2012-12-26 01:17:27 +01:00
Amaury Pouly
b748243d4f imxtools/sbtools: implement rom/product/component version switch
Change-Id: If3ebae2e60f324c93f85a4f1a6f30257cccb735d
2012-12-16 23:35:23 +01:00
Amaury Pouly
fa1af088e9 imxtools/sbtools: fix sb1 product/component version writing
Change-Id: I0153192f41ccc5fb98e7e9f6f110d97bd76dbc47
2012-12-16 23:35:03 +01:00
Amaury Pouly
47f6d77690 imxtools/sbtools: "fix" address handling in ELF
This is a common problem that proprietary tools don't handle ELF
files correctly. ELF sections use a virtual address and the
virtual -> physical translation is done though segments. This
allows to have a load (physical) address different from the
virtual one. Here is the trick: proprietary tools usually don't
take the pain to do the translation and just grab the virtual
address. This commit implements proper translation in elftosb1
knowing that this introduce a deviation from the behaviour of the
proprietary tool.

Change-Id: I91721a3a8dead382a0603f84ae3b35c5eb9704eb
2012-12-16 21:28:41 +01:00
Amaury Pouly
1e2e79d668 imxtools/sbtools: introduce elftosb1 for stmp36xx
The tool still lacks some feature of the proprietary one but
can create files with all the basic features.

Change-Id: Ib0c91210940ca829291ce70945f88dc510a49974
2012-12-16 21:28:41 +01:00
Amaury Pouly
212cfdf771 imxtools/sbtools: fix some instruction handling & crypto
Change-Id: I6530bdf27896d8325dec4e2ba31c7e6a0131a286
2012-12-16 21:28:41 +01:00
Amaury Pouly
f4f600fc52 imxtools/sbtools: add elf function (sort by address)
Change-Id: Ib68746e11b43eadbbe0443626d4dc65d998348fa
2012-12-16 21:28:41 +01:00
Amaury Pouly
be9787f2e6 imxtools/sbtools: update misc with MIN
Change-Id: I17daaff068fcd3a8c70c52db5fa209082461173f
2012-12-16 21:28:41 +01:00
Amaury Pouly
6f47b29915 imxtools/sbtoelf: use new method to get default xor key
Change-Id: Ie00306a3c78e7490afe9964bd55ce53019e603ed
2012-12-16 01:53:20 +01:00
Amaury Pouly
4fc3397c5b imxtools/sbtools: implement sb1 write
Change-Id: Ic36d3a8fcf09350dff5988eb860d76eb11608cc2
2012-12-16 01:52:19 +01:00
Amaury Pouly
51604e8445 imxtools/elftosb: remove duplicate include
Change-Id: I34776ba3608bb5d25ce0d0fb3c6f228a4c9effc0
2012-12-16 01:51:49 +01:00
Amaury Pouly
cdaef6f382 imxtools/hwemul: remove useless code (pwm)
The PWM code was for testing only the Zen X-Fi and should be
present in general because it could touch pins by error and
without producing any result.

Change-Id: Id20e2940cd7a057941d241254d0a867f5451e2db
2012-12-14 12:06:11 +01:00
Amaury Pouly
788bf2e3b2 imxtools/sbloader: implement stmp36xx recovery support
Change-Id: I6cfb432cd474ca00d7dff77577c0aa499b78fe2d
2012-12-13 16:02:58 +01:00
Amaury Pouly
153bc0d7ec sbtools/sbload: prepare support for the stmp36xx
Change-Id: I13147009f2573d80c2c3dca2852a6d7b45174e9d
2012-12-13 00:24:19 +01:00
Amaury Pouly
2a52b937e4 imxtools/scsitool: retrieve the minimum amount of inquiry data
Some device only report the minimum (36 bytes) amount of inquiry
data so don't ask for more

Change-Id: Ie74d659f6e27b077acba160aeb87d1e7edf82e66
2012-12-13 00:23:33 +01:00
Amaury Pouly
c644f6b7f1 sbootls/rsrc: fix warnings
Change-Id: Id756cab14c9151ea74d628d002e1a203c5fbf01a
2012-12-13 00:23:07 +01:00
Amaury Pouly
b86b0a1b44 imxtools: introduce the new scsitool
It appears that all devices based on the Sigmaltel SDK support a
common vendor specific SCSI interface when in UMS mode. This
applies to the STMP36xx and the STMP37xx. This interface supports
many operations:
- get device info
- get device paritionning
- get janus/drm info
- read/write/allocate/erase any partition
- reset (chip or to updater and/or recovery)
This includes the ability to do a firmware upgrade by rewriting
the firmware partition. The tool currently does mostly nothing
but will be enhanced depending on the reverse engineering efforts
and the use of it. It has been tested on the Fuze+ and the Zen
X-Fi2/3.

Change-Id: Ibd4b2ad364c03ada4f9001573ef4cc87cfb041d1
2012-12-11 20:20:49 +01:00
Amaury Pouly
fb05b3e698 newtools/scsitool: fix typo
Change-Id: I882956c0022db846882c68f8aac7f9d8fe49dfa8
2012-12-11 20:20:49 +01:00