No, no reason to unless you have something you don't want reverse engineered. The first stage is part of the Chinese firmware, it's just there to make it hard to understand what it's doing. It handles that decryption step.
The first thing the startup code does is initialize the hardware, copy the contents of flash memory into RAM, and start the main function. We get the identifier of the flash memory. The chip voltage rises and the clock frequency rises to 333 MHz. In this mode, we can no longer work with flash memory. Perhaps the decryption algorithm expands the flash ID as a key into block 0x100, but perhaps this is the context for the decryptor.
It's not a problem to brute force the ID. The ID is already there. Problem with decryption algorithm. Is it a standard, known algorithm or proprietary?
It's not a problem to brute force the ID. The ID is already there. Problem with decryption algorithm. Is it a standard, known algorithm or proprietary?
It looks like they’ve already incremented the second byte by one and I expect that the initial E6 will change once they’ve exhausted the second byte, so I think all 64 bits are fair game here.
Didn't look for the JEDEC standard describing these IDs (paywalled) but it's likely 32 bits serial number and everything else is manufacturer id and production date. Not very random at all.
No, no reason to unless you have something you don't want reverse engineered. The first stage is part of the Chinese firmware, it's just there to make it hard to understand what it's doing. It handles that decryption step.
There is no such thing as a Chinese firmware because the firmware wasn't developed by anyone in China.
Someone from gbatemp mistranslated a post from a foreign site that was calling the waveshare pi pico boards the "chinese boards" because the blank pcb boards are made in China.
Please stop repeating this as it is misinformation.
If someone is interested on the Pico related boards, a must have tool is the PicoTool (https://github.com/raspberrypi/picotool) but the tool needs compilation to use.
Install the version corresponding to your Operating System (64 or 32 bits).
Accept the defaults in installation program of MSYS2 once you finish the installation you will have shortcuts for MSYS2, MinGW32 and MinGW64. MSYS2 is used to compiling POSIX binaries for Linux from Windows.
MinGW32 & MinGW64 compile Native Windows binaries using a linux toolchain (gcc, bash, etc.)
Launch MSYS2 shell and execute the command: pacman -Syuu several times until you get the message: "there is nothing to do".
After you have a MSYS environment set up you need to Install Build prerequisites following these steps:
Seems what was upon a time when the libusb of Mingw had a error and you need to install an old version, that can be acomplished using:
Bash:
cd ~
wget https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-libusb-1.0.26-1-any.pkg.tar.zst
pacman -U --noconfirm https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-libusb-1.0.26-1-any.pkg.tar.zst
Then you need to setup the Pico-SDK and the Pico-Examples needed to successfull compile:
Bash:
cd ~
git clone -b master https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update --init
cd ..
git clone -b master https://github.com/raspberrypi/pico-examples.git
export PICO_SDK_PATH=~/pico-sdk
You can be sure all is setup to go running these commands: gcc
Result:
Bash:
gcc.exe: fatal error: no input files
compilation terminated.
ld
Result:
Bash:
C:\msys64\mingw64\bin\ld.exe: no input files
make
Result:
Bash:
make: *** No targets specified and no makefile found. Stop.
mingw32-make
Result:
Bash:
mingw32-make: *** No targets specified and no makefile found. Stop.
echo $PICO_SDK_PATH
Result:
Bash:
/home/<YOURUSER>/pico-sdk
and now you are ready to start the building process:
Bash:
cd ~
git clone -b master https://github.com/raspberrypi/picotool.git
cd picotool
mkdir build
cd build
cmake -G "MSYS Makefiles" -DPC_LIBUSB_INCLUDEDIR="/mingw64/include/libusb-1.0" ..
make -j
The last step is to copy the needed external libraries to the same folder of the new build executable, you need to take them with the Exe file if you like to use outside the MSYS environment.
$ ./picotool.exe info
No accessible RP2040 devices in BOOTSEL mode were found.
but:
Device at bus 2, address 1 appears to be a RP2040 device in BOOTSEL mode, but picotool was unable to connect. You may need to install a driver. See "Getting
started with Raspberry Pi Pico" for more information
It’s about that time of year again where I check in with the community to see if we can get the front page aligned with what people are interested in knowing and what...
WiiCompiled is a new project that lets PC gamers play Mario Kart Wii natively on PC without emulation. Using static recompliation to convert the code into native PC...
After being announced last year, the fan-made remake Gamma Emerald has finally gotten its first early access release. A complete rebuild of fan-favourite Pokemon...
The long awaited Grand Theft Auto VI Extended Look gameplay trailer has finally dropped on YouTube. As you all know, it had dropped 6 hours earlier on Netflix, and...
Though we knew all the way back in May that this was coming, the exact numbers remained a mystery for prospective Nintendo gamers in the UK. If you happen to have...
Thanks to the recent decomplication efforts; The Minish Cap 3DS brings the Game Boy Advance classic Zelda title to your 3DS.
The port takes full advantage of the 3DS...
In the wake of Sony's shift to a digital-only ecosystem within the next year, Xbox have today announced a surprising scheme. Aiming to offer physical buyers the same...
After being announced last week, the first of two broadcasts is set to go live later today with a stark focus on The Legend of Zelda and its 40th anniversary...
It is with a heavy heart that I announce the departure of our beloved Chary from the position of Chief Editor. Chary took over early 2021 and has done a wonderful job...
GBAtemp is and always has been an independent community. Since 2002 our staff have voluntarily kept the site running, added new forums, features, provided constant...
It’s about that time of year again where I check in with the community to see if we can get the front page aligned with what people are interested in knowing and what...
After being announced last week, the first of two broadcasts is set to go live later today with a stark focus on The Legend of Zelda and its 40th anniversary...
In the wake of Sony's shift to a digital-only ecosystem within the next year, Xbox have today announced a surprising scheme. Aiming to offer physical buyers the same...
Though we knew all the way back in May that this was coming, the exact numbers remained a mystery for prospective Nintendo gamers in the UK. If you happen to have...
The long awaited Grand Theft Auto VI Extended Look gameplay trailer has finally dropped on YouTube. As you all know, it had dropped 6 hours earlier on Netflix, and...
It is with a heavy heart that I announce the departure of our beloved Chary from the position of Chief Editor. Chary took over early 2021 and has done a wonderful job...
The second of a two-part special, a more traditional Nintendo Direct is set to air today. Unlike the Zelda Direct the contents of this one is still relatively up in...
After being announced last year, the fan-made remake Gamma Emerald has finally gotten its first early access release. A complete rebuild of fan-favourite Pokemon...
A few days ago Chary stepped down as Chief Editor after 5 wonderful years, and everyone guessed the seat wouldn't stay empty for very long. Back in 2021 I proudly...
Thanks to the recent decomplication efforts; The Minish Cap 3DS brings the Game Boy Advance classic Zelda title to your 3DS.
The port takes full advantage of the 3DS...