Git Product home page Git Product logo

tools's Introduction

Usage

spl_tool

How to create u-boot-spl.bin.normal.out

Please refer to the README.md under spl_tool directory

uboot_its

How to create visionfive2_fw_payload.img

Input:

{U-BOOT_PATH}/tools/mkimage
{OPENSBI_PATH}/build/platform/generic/firmware/fw_payload.bin
visionfive2-uboot-fit-image.its

Output:

visionfive2_fw_payload.img

For example:

{U-BOOT_PATH}/tools/mkimage -f visionfive2-uboot-fit-image.its -A riscv -O u-boot -T firmware visionfive2_fw_payload.img

recovery

How to recover bootloader

The SPL and U-Boot are stored inside the SPI flash on board. There may be situations where you accidentally emptied the flash or if the flash is damaged on your board. In these situations, it's better to recover the bootloader.

Before you recover the bootloader, please double check the boot mode jumpers(Switch_2) on your board has already been switched to UART mode(GPIO_1,GPIO_0: 1,1);

  1. Configure the serial port settings: 115200bps;

  2. Power up, you will see an output like this:

    CCCCCCCCCCCCCCCCCCCCC
    
  3. Please transfer the recovery binary jh7110-recovery-20221205.bin by xmode and you will see recovery menu automaticlly;

    JH7110 secondboot version: 221205-74596a9
    CPU freq: 1250MHz
    idcode: 0x1860C8
    ddr 0x00000000, 4M test
    ddr 0x00400000, 8M test
    DDR clk 2133M, size 8GB
    *********************************************************
    ****************** JH7110 program tool ******************
    *********************************************************
    0: update 2ndboot/SPL in flash
    1: update 2ndboot/SPL in emmc
    2: update fw_verif/uboot in flash
    3: update fw_verif/uboot in emmc
    4: update otp, caution!!!!
    5: exit
    NOTE: current xmodem receive buff = 0x40000000, 'load 0x********' to change.
    select the function to test:
    
  4. Type 0 and press Enter to udpate SPL binary u-boot-spl.bin.normal.out;

  5. Type 2 and press Enter to update U-Boot binary visionfive2_fw_payload.img;

  6. Power off and switch back to Flash mode(GPIO_1,GPIO_0: 0,0);

tools's People

Contributors

andyhu-stf avatar chabulhwi avatar jianlonghuang avatar michaelzhuxx avatar saminguo avatar strlcat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

tools's Issues

Document XMODEM behavior with good/bad chips

Hi!

I was playing around with the recovery feature on VisionFive2 and I had no luck getting it to work at all with a TTL-USB converter using this device:

Prolific Technology, Inc. PL2303 Serial Port / Mobile Action MA-8910

This is the errors:


Welcome to minicom 2.8                                                                        
                                                                                              
OPTIONS: I18n                                                                                 
Comp+----------------[xmodem upload - Press CTRL-C to quit]----------------+                  
Port|Sending jh7110-recovery-20230322.bin, 1291 blocks: Give your local XMO|                  
    |DEM receive command now.                                              |                  
Pres|Xmodem sectors/kbytes sent: 1192/149kRetry 0: NAK on sector           |                  
    |                                                                      |                  
CCCC|                                                                      |                  
(C)S|                                                                      |                  
CCCC|                                                                      |                  
    +----------------------------------------------------------------------+                  
                                                                                              

However, when I switch to using my trusty Future Technology Devices International, Ltd FT232 Serial (UART) IC based one the XMODEM inside Minicom worked on the first try. (115200 8N1, No flow control).

Welcome to minicom 2.8                                                                        
                                                                                              
OPTIONS: I18n                                                                                 
Compiled on Jan 19 2023, 00:00:00.                                                            
Port /dev/ttyUSB0, 14:01:37                                                                   
                                                                                              
Press CTRL-A Z for help on special keys                                                       
                                                                                              
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
JH7110 secondboot version: 230322-c514da9                                                     
CPU freq: 1250MHz                                                                             
idcode: 0x1860C8                                                                              
ddr 0x00000000, 4M test                                                                       
ddr 0x00400000, 8M test                                                                       
DDR clk 2133M, size 4GB                                                                       
                                                                                              
*********************************************************                                     
****************** JH7110 program tool ******************                                     
*********************************************************                                     
0: update 2ndboot/SPL in flash                                                                
1: update 2ndboot/SPL in emmc                                                                 
2: update fw_verif/uboot in flash                                                             
3: update fw_verif/uboot in emmc                                                              
4: update otp, caution!!!!                                                                    
5: exit                                                                                       
NOTE: current xmodem receive buff = 0x40000000, 'load 0x********' to change.                  
select the function to test:                                                                  

Might be worth mentioning on the recovery guide so that people don't pull their hair out trying to debug something that is due to a less-than-ideal TTL-serial-converter.

I repeated this experiement more than three times to ensure it was conclusive and it is. 0% success rate with my PL2303 adapter, 100% success rate with my FT232 one.

document OTP fuses and secure boot flow

In #1, we discussed the basics of creating a valid header for a simple boot.

Still open is

  • what are the semantics behind the OTP cells?
  • how does the secure boot flow work exactly?
  • where are the OTP cells in MMIO space?

For reference:

I would like to provision my JH7110 SoCs with secure boot and need this documentation.
I can write the tools for that myself and would integrate support in oreboot.

Provide source code for jh7110-recovery-20221205.bin

Hi, please accept my thanks for producing such a wonderful and feature rich board.

There are few misunderstandings on my side left as for a new user.
I'm experienced user of VisionFive 1 board, built, customized, modified and installed successfully it's firmware. I've been several times in need to recover it because my U-Boot was misconfigured, but I managed to get out of the situation using recovery.

There's jh7110-recovery-20221205.bin U-Boot recovery binary in this repo.
I searched all your repositories, but nowhere is a sign of source code for it. I suspect it's upgraded https://github.com/starfive-tech/bootloader_recovery, but that repo does not show activity going towards porting it to VisionFive 2 (no branches related to VF2).

Could you please provide source code for it, point where it can be found, or at least tell why it's not published already?
Thank you.

source code, document behavior

Please provide the source code for and document the header that the tools generate.
The VisionFive 2 is advertised as open source, and here, sources are missing.

Here is what I have reverse engineered. Given a file with the following contents:

$ echo toaster > toaster
$ xxd toaster
00000000: 746f 6173 7465 720a                      toaster.

This is the output of ./create_sbl toaster 1234 (toaster.normal.out):

$ hexdump toaster.normal.out
0000000 0240 0000 0000 0020 0000 0000 0000 0000
0000010 0000 0000 0000 0000 0000 0000 0000 0000
*
0000280 0000 0000 04d2 0000 0008 0000 0400 0000
0000290 f685 1a81 0000 0000 0000 0000 0000 0000
00002a0 0000 0000 0000 0000 0000 0000 0000 0000
*
0000400 6f74 7361 6574 0a72
0000408

Note: all entries are little endian

The first two bytes seem to be fixed; I've run the tool over a few other files: 0240. Same for the 0020 at 0x007.

Then come many more zero-bytes.

The 04d2 0000 (at 0x0284) is the hex representation of the version passed, 1234. I noticed that passing longer numbers gets truncated and only the lowest 32 bits (4 bytes) are preserved.

The 0008 0000 appears to be the file size in bytes.

The 0400 0000 seems to be fixed.

The f685 1a81 is the CRC32 checksum of the file.

At 0x0400, the actual file starts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.