2004 to 2020 Mazda 3 Forum and Mazdaspeed 3 Forums banner

Black Screen MZD

192K views 318 replies 112 participants last post by  ragnar_Xrz  
#1 ·
Hello,

today i wanted to install the v70. I pressed the Start-Stopp Button one time and successfully installed the failsafe package. After that i wanted to install the reinstall package but an error came up "Failed to validate package certificate". So i pressed the Start-Stopp Button another time so the ignition goes on and turned off the car. After that i tried to another time so pressed the Start-Stopp Button and the MZD comes up. Everything fine. I wanted to check the USB stick on computer if there is anything wrong. After that i tried another time. So i pressed the Start-Stopp Button one time and the Screen remains black.

Radio is still working and chaning the Volume works.

I've tried to reset the whole system over the settings menu. Nothing happens.
Also the soft reset (BACK + MUTE + NAV) changes nothing.

I've searched the forum for an solution and found out that there is way over SSH.
But without an tutorial.

Is there a way to safe my system or should the dealer do this thing?

Thanks for helping
 
#3 ·
In this case you should post your question on a different thread instead of starting a new one since the most knowledgeable may not see to respond...specifically "Mazda Connect All firmware Version (Only for downloads)". It's usually on the first page of all the threads since it gets so many hits. That is where all of these questions get answered. Hopefully ASH8 will see your post and give you the verdict....warning, he is sort of a Soup Nazi kind of guy, but don't take it personally.
 
#4 ·
Hello,

today i wanted to install the v70. I pressed the Start-Stopp Button one time and successfully installed the failsafe package. After that i wanted to install the reinstall package but an error came up "Failed to validate package certificate". So i pressed the Start-Stopp Button another time so the ignition goes on and turned off the car. After that i tried to another time so pressed the Start-Stopp Button and the MZD comes up. Everything fine. I wanted to check the USB stick on computer if there is anything wrong. After that i tried another time. So i pressed the Start-Stopp Button one time and the Screen remains black.
Radio is still working and chaning the Volume works.
I've tried to reset the whole system over the settings menu. Nothing happens.
Also the soft reset (BACK + MUTE + NAV) changes nothing.
I've searched the forum for an solution and found out that there is way over SSH.
But without an tutorial.
Is there a way to safe my system or should the dealer do this thing?
Thanks for helping
Sory to hear about that! But with your decrible, i think your CMU totally bricked... and it's very hard to recover...
So you did brick your CMU you cannot turn the vehicle off during the update for any circumstances or you end up with a nice brick. The only way to recover will be with a serial connection and you will have to corrupt the fail safe so that it starts the update process over again from the beginning but you need a pretty much expert knowledge of what you are doing to pull that off because this guy only tells you why it happened but not too many details about how to fix it: JCI: "fail-safe" code that isn't
You might as well take it to the dealer because they already know that can happen.
 
#7 · (Edited)
CMU bricked repair

Hi,

Actually, your CMU is bricked. I did the exact same thing as you where my car was turned off just after installing the failsafe package. Luckily there is a way to recover, which is not so easy to do, bit it's quiet doable if you are not afraid to unmount the CMU, open it and plug some wires.

Full explanation:
Thanks to this website: http://www.2x4logic.com it saves me a lot of time to dig on how the system works. The CMU update process is indeed very badly designed, as it has plenty of failure points where it ends with a bricked device that will not boot anymore. The easiest way to do that is by shutting the CMU off after the failsafe package installation. Basically what happens is that a small flash chip that contains the boot program has a flag on it that decides on which system it has to boot. It can either be the normal Mazda system, or the «failsafe» software. When you install the failsafe update package without the 2nd reinstall package, the flash chip boot select mode is set to boot on the ibc1 partition, which does not match the current Mazda system. This ibc1 partition is updated by the reinstall package. So it’s bricked because it cannot boot anymore.
The easiest fix here is to change the boot select value on the flash chip to boot on ibc2 (the failsafe). This is normally done by the update process, after the reinstallation package is checked for integrity. Here we are going to do it by forcing the boot. It will start the «failsafe» installation software, that will tell us that installation fails and that we can retry by putting a USB key into the car with a correct reinstallation package. Then the installation will continue and finish.

Tutorial:
Here is a step by step tutorial on how to achieve this. Be aware that It can be hard to do this if you do not understand what you are doing. But in case your CMU is bricked (black screen after a failed upgrade or so) you have nothing to loose, right? Bringing the car to a dealer will not help, they will just charge you for a full CMU replacement, and that costs a lot…

The flash chip is placed on the back of the CMU’s PCB. It’s a NOR SPI Flash. The idea is to directly connect to this chip and use a raspberry pi (that has an SPI bus) to reprogram the memory.

Required hardware:
  • A raspberry pi
  • A Programmer Test Clip SOIC16 or 6x IC Test clips (I used test clips)
  • A breadboard to do the connections

On the raspberry pi, you need to install Raspbian (Lite version is ok). From a fresh install of Rasbian, setup the pi to have SPI enabled by running:
Code:
sudo raspi-config
(enable SPI in Interfacing Options*)
sudo reboot
Install some required tools:
Code:
sudo apt-get update
sudo apt-get install build-essential libusb-1.0-0-dev libusb-dev git wget curl libpci-dev
Get a newer version of flashrom:
Code:
git clone https://github.com/flashrom/flashrom
cd flashrom
make
sync
Shut the power off of the raspberry.

Now the raspberry pi is ready. Unmount the CMU from your car (look on youtube for video on how to do it, it’s easy), unscrew the PCB from the CMU and plug the wires from the raspberry to the flash chip like here (see attached pic) and http://www.2x4logic.com/mcbot-annotated.jpg

Turn the raspberry pi on. And check if the flash is detected:
Code:
cd flashrom
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
This will tell if a chip is detected or not. If not your wiring is not ok. When something is detected, flashrom may tell you that multiple different chips are detected. That’s because some chips from a same manufacturer can have the same protocol. You need to read the right device model from what is written on the chip. I had a MX25L6445E. I know that some other CMU may have a different chip model. It should also work if flashrom can detect it.

Then try to read the memory and do a backup:
Code:
./flashrom -r backup-cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Carefully read what flashrom is doing to check of any failure. I had to use the option -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" to select the right chip model in flashrom as it was written when using the -p option (list all detected devices)

Once you have the backup, we modify the boot-select byte inside the file
Code:
cp backup-cmu.bin cmu-mod.bin
printf '\x00' | dd of=cmu-mod.bin bs=1 seek=65536 count=1 conv=notrunc
Now it’s time to write the modified file to the flash:
Code:
./flashrom -w cmu-mod.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Read back the flash to verify it worked
Code:
./flashrom -r cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Check if the file matches by verifying the checksum
Code:
sha1sum cmu.bin cmu-mod.bin
The checksum should match, if they do, the procedure is done. It’s time to unplug everything and put the CMU back in the car. The CMU should boot into the failsafe recovery system and ask you for a USB key with the reinstall package.

Good luck, and happy hacking! ;)
 

Attachments

#33 ·
Reinstall loop

Hi,

Actually, your CMU is bricked. I did the exact same thing as you where my car was turned off just after installing the failsafe package. Luckily there is a way to recover, which is not so easy to do, bit it's quiet doable if you are not afraid to unmount the CMU, open it and plug some wires.

Full explanation:
Thanks to this website: http://www.2x4logic.com it saves me a lot of time to dig on how the system works. The CMU update process is indeed very badly designed, as it has plenty of failure points where it ends with a bricked device that will not boot anymore. The easiest way to do that is by shutting the CMU off after the failsafe package installation. Basically what happens is that a small flash chip that contains the boot program has a flag on it that decides on which system it has to boot. It can either be the normal Mazda system, or the «*failsafe*» software. When you install the failsafe update package without the 2nd reinstall package, the flash chip boot select mode is set to boot on the ibc1 partition, which does not match the current Mazda system. This ibc1 partition is updated by the reinstall package. So it’s bricked because it cannot boot anymore.
The easiest fix here is to change the boot select value on the flash chip to boot on ibc2 (the failsafe). This is normally done by the update process, after the reinstallation package is checked for integrity. Here we are going to do it by forcing the boot. It will start the «*failsafe*» installation software, that will tell us that installation fails and that we can retry by putting a USB key into the car with a correct reinstallation package. Then the installation will continue and finish.

Tutorial:
Here is a step by step tutorial on how to achieve this. Be aware that It can be hard to do this if you do not understand what you are doing. But in case your CMU is bricked (black screen after a failed upgrade or so) you have nothing to loose, right? Bringing the car to a dealer will not help, they will just charge you for a full CMU replacement, and that costs a lot…

The flash chip is placed on the back of the CMU’s PCB. It’s a NOR SPI Flash. The idea is to directly connect to this chip and use a raspberry pi (that has an SPI bus) to reprogram the memory.

Required hardware:
- A raspberry pi
- A Programmer Test Clip SOIC16 or 6x IC Test clips (I used test clips)
- A breadboard to do the connections

On the raspberry pi, you need to install Raspbian (Lite version is ok). From a fresh install of Rasbian, setup the pi to have SPI enabled by running:
Code:
sudo raspi-config
(enable SPI in Interfacing Options*)
sudo reboot
Install some required tools:
Code:
sudo apt-get update
sudo apt-get install build-essential libusb-1.0-0-dev libusb-dev git wget curl libpci-dev
Get a newer version of flashrom:
Code:
git clone [url]https://github.com/flashrom/flashrom[/url]
cd flashrom
make
sync
Shut the power off of the raspberry.

Now the raspberry pi is ready. Unmount the CMU from your car (look on youtube for video on how to do it, it’s easy), unscrew the PCB from the CMU and plug the wires from the raspberry to the flash chip like here (see attached pic) and http://www.2x4logic.com/mcbot-annotated.jpg

Turn the raspberry pi on. And check if the flash is detected:
Code:
cd flashrom 
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
This will tell if a chip is detected or not. If not your wiring is not ok. When something is detected, flashrom may tell you that multiple different chips are detected. That’s because some chips from a same manufacturer can have the same protocol. You need to read the right device model from what is written on the chip. I had a MX25L6445E. I know that some other CMU may have a different chip model. It should also work if flashrom can detect it.

Then try to read the memory and do a backup:
Code:
./flashrom -r backup-cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Carefully read what flashrom is doing to check of any failure. I had to use the option -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" to select the right chip model in flashrom as it was written when using the -p option (list all detected devices)

Once you have the backup, we modify the boot-select byte inside the file
Code:
cp backup-cmu.bin cmu-mod.bin
printf '\x00' | dd of=cmu-mod.bin bs=1 seek=65536 count=1 conv=notrunc
Now it’s time to write the modified file to the flash:
Code:
./flashrom -w cmu-mod.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Read back the flash to verify it worked
Code:
./flashrom -r cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Check if the file matches by verifying the checksum
Code:
sha1sum cmu.bin cmu-mod.bin
The checksum should match, if they do, the procedure is done. It’s time to unplug everything and put the CMU back in the car. The CMU should boot into the failsafe recovery system and ask you for a USB key with the reinstall package.

Good luck, and happy hacking! ;)
After put my mazda on acc mode, mazda connect asks me to insert a USB, I have cmu150_NA_70.00.100A_reinstall.up on it (formatted FAT32), but it keeps on loop (see attached video), what do I need to do?
 

Attachments

#11 ·
Hello I'm trying to reset the CMU NOR FLash with a RPi. I have a SOIC 16 test clip. I had a question. When i'm doing the breadboard plugins. Does the breadboard need a power supply? Or does the RPI being powered on supply the voltage through the breadboard to flash the chip? Sorry i'm not entirely sure about this and i keep getting an error of

"NO EEPROM/flash device found"

I'm not sure how else to do the wiring. I've tried it multiple ways... Thanks.
 
#12 ·
I have not checked the NOR chip pinout but 3.3v and ground are supplied from the red/black wires. On the photo the bottom item is a power supply but it is not connected to anything on the breadboard pins used by the RPI or CMU wiring. Here are two RPI pinout drawings.
 

Attachments

#16 ·
Programmer Testing Clip SOP 16 ebay
ebay.com/p/Programmer-Testing-Clip-SOP-16-SOP-SOIC-16-Dip16-Pin-IC-Test-Clamp-With-Cable/2131170762

USB BIOS EEPROM SPI FLASH Programmer CH341A 24 25 series
ebay.com/itm/USB-BIOS-EEPROM-SPI-FLASH-Programmer-CH341A-24-25-series-/301443899698

program and driver: karadev.net/basto/CH341A-programmer-software-1.29/CH341A-1.29-programmer-software.zip

conntecting :
Image
 
#21 ·
Hi Raoulh,

I recently got the car play kit, attempted to install it myself and what was supposed to be an hour process turned into a week and a half now.

I started by upgrading the firmware... I have done this in the past with no issues, but this time did't work out. I managed to upload the failsafe but the firmware did not work out (can't remember the error.). I restarted the CMU and ended up much like everybody else here with a black screen. The radio is working on the last station but the screen never really comes up.

After quite a bit of research I have found this post followed it and bought an EEPROM writer. Managed to get it connected to my computer and I'm able to read it and save the bin file locally, unfortunately I'm not entirely clean of what to modify.

Please see attached a few pictures with my setup and I can always send backup of my .bin file if that helps.

Can you pls direct me where exactly to go and what address to change or send me a bin file to upload on my chip?

Thank you,

Vio
 

Attachments

#22 ·
official partition name offset prior to v31 offset after v31
bootstrap 0x000000 0x000000
boot-select 0x010000 0x010000
ibc1 0x020000 0x020000
ibc2 0x040000 0x040000
nv-config 0x060000 0x060000
config 0x070000 0x070000
jci-boot-diag n/a 0x0D0000
fail-safe 0x0E0000 0x0E0000
update 0x7E0000 0x7E0000
check this for more informations : 2x4logic.com/jci-failsafe.html
 
#63 ·
official partition name offset prior to v31 offset after v31
bootstrap 0x000000 0x000000
boot-select 0x010000 0x010000
ibc1 0x020000 0x020000
ibc2 0x040000 0x040000
nv-config 0x060000 0x060000
config 0x070000 0x070000
jci-boot-diag n/a 0x0D0000
fail-safe 0x0E0000 0x0E0000
update 0x7E0000 0x7E0000
check this for more informations : 2x4logic.com/jci-failsafe.html
what softwer to usr for change it?
 
#26 · (Edited)
It's already been stated, but essentially, NEVER TURN OFF YOUR CAR ONCE YOU'VE INSTALLED THE FAILSAFE BEFORE INSTALLING THE RE-INSTALLATION PACKAGE. As also stated, it is an explicit warning mentioned in nearly every thread describing how to update and the official Mazda update guidelines. Easiest way to brick.

I will say however that it is a bit stupid the CMU is setup this way. You WOULD think that the whole point of the failsafe and re-install files being separate would be to prevent bricks, not lead to them easily. It should have been that the failsafe install you do first installs a bareb-ones cut-down version of the OS that's basically the bootloader and the update program. That way as long as that succeeds, even if the 2nd part fails the system will still be bootable and the update can be attempted again, hence the term FAILSAFE DUR. Not really sure why its made the way it is lol.

EDIT: Just read the link that Trez shared and just wow. The company that Mazda hired really fucked up. Nothing else more to really say.