{"id":20601742,"url":"https://github.com/xboot/xrock","last_synced_at":"2025-04-05T00:06:23.635Z","repository":{"id":45434898,"uuid":"391889534","full_name":"xboot/xrock","owner":"xboot","description":"The low level tools for rockchip SOC with maskrom and loader mode support.","archived":false,"fork":false,"pushed_at":"2025-01-04T06:25:18.000Z","size":97,"stargazers_count":141,"open_issues_count":3,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-28T23:04:25.599Z","etag":null,"topics":["baremetal","maskrom","rockchip"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xboot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-02T09:33:34.000Z","updated_at":"2025-03-28T16:52:11.000Z","dependencies_parsed_at":"2024-08-23T04:24:42.504Z","dependency_job_id":"5339c3fa-f73d-430f-9970-aa9b0bab4932","html_url":"https://github.com/xboot/xrock","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xboot%2Fxrock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xboot%2Fxrock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xboot%2Fxrock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xboot%2Fxrock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xboot","download_url":"https://codeload.github.com/xboot/xrock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266563,"owners_count":20910836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["baremetal","maskrom","rockchip"],"created_at":"2024-11-16T09:11:53.239Z","updated_at":"2025-04-05T00:06:23.615Z","avatar_url":"https://github.com/xboot.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n***\n# XROCK\nThe low level tools for rockchip SOC with maskrom and loader mode support.\n\n## How to build\n\n### Linux platform\n\nThe xrock tools depends on the `libusb-1.0` library, you need to install `libusb-1.0-0-dev` before compile, for example in ubuntu:\n\n```shell\nsudo apt install libusb-1.0-0-dev\n```\n\nThen just type `make` at the root directory, you will see a binary program.\n\n```shell\ncd xrock\nmake\nsudo make install\n```\n\n### Window platform\n\nInstall some build tools\n\n```shell\nsudo apt install mingw-w64\nsudo apt install autoconf\nsudo apt install libtool-bin\n```\n\nDownload and install libusb\n\n```shell\ngit clone https://github.com/libusb/libusb.git\ncd libusb\n./autogen.sh\n./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32/\nmake\nsudo make install\n```\n\nBuild xrock source code\n\n```shell\ncd xrock\nCROSS=x86_64-w64-mingw32- make -f Makefile.win\n```\n\nFor 32-bits windows, you can using `i686-w64-mingw32-` instead of `x86_64-w64-mingw32` above.\n\n## Usage\n\n```shell\nusage:\n    xrock maskrom \u003cddr\u003e \u003cusbplug\u003e [--rc4-off]    - Initial chip using ddr and usbplug in maskrom mode\n    xrock download \u003cloader\u003e                      - Initial chip using loader in maskrom mode\n    xrock upgrade \u003cloader\u003e                       - Upgrade loader to flash in loader mode\n    xrock ready                                  - Show chip ready or not\n    xrock version                                - Show chip version\n    xrock capability                             - Show capability information\n    xrock reset [maskrom]                        - Reset chip to normal or maskrom mode\n    xrock dump \u003caddress\u003e \u003clength\u003e                - Dump memory region in hex format\n    xrock read \u003caddress\u003e \u003clength\u003e \u003cfile\u003e         - Read memory to file\n    xrock write \u003caddress\u003e \u003cfile\u003e                 - Write file to memory\n    xrock exec \u003caddress\u003e [dtb]                   - Call function address(Recommend to use extra command)\n    xrock otp \u003clength\u003e                           - Dump otp memory in hex format\n    xrock sn                                     - Read serial number\n    xrock sn \u003cstring\u003e                            - Write serial number\n    xrock vs dump \u003cindex\u003e \u003clength\u003e [type]        - Dump vendor storage in hex format\n    xrock vs read \u003cindex\u003e \u003clength\u003e \u003cfile\u003e [type] - Read vendor storage\n    xrock vs write \u003cindex\u003e \u003cfile\u003e [type]         - Write vendor storage\n    xrock storage                                - Read storage media list\n    xrock storage \u003cindex\u003e                        - Switch storage media and show list\n    xrock flash                                  - Detect flash and show information\n    xrock flash erase \u003csector\u003e \u003ccount\u003e           - Erase flash sector\n    xrock flash read \u003csector\u003e \u003ccount\u003e \u003cfile\u003e     - Read flash sector to file\n    xrock flash write \u003csector\u003e \u003cfile\u003e            - Write file to flash sector\nextra:\n    xrock extra maskrom --rc4 \u003con|off\u003e [--sram \u003cfile\u003e --delay \u003cms\u003e] [--dram \u003cfile\u003e --delay \u003cms\u003e] [...]\n    xrock extra maskrom-dump-arm32 --rc4 \u003con|off\u003e --uart \u003cregister\u003e \u003caddress\u003e \u003clength\u003e\n    xrock extra maskrom-dump-arm64 --rc4 \u003con|off\u003e --uart \u003cregister\u003e \u003caddress\u003e \u003clength\u003e\n    xrock extra maskrom-write-arm32 --rc4 \u003con|off\u003e \u003caddress\u003e \u003cfile\u003e\n    xrock extra maskrom-write-arm64 --rc4 \u003con|off\u003e \u003caddress\u003e \u003cfile\u003e\n    xrock extra maskrom-exec-arm32 --rc4 \u003con|off\u003e \u003caddress\u003e\n    xrock extra maskrom-exec-arm64 --rc4 \u003con|off\u003e \u003caddress\u003e\n```\n\n## Tips\n\n- The maskrom command can only used in maskrom mode, Before executing other commands, you must first execute the maskrom command\n\n- The memory base address from 0, **NOT** sdram's physical address.\n\n- In some u-boot rockusb driver, The flash dump operation be limited to the start of 32MB, you can patch u-boot's macro `RKUSB_READ_LIMIT_ADDR`.\n\n```\ndiff --git a/u-boot/cmd/rockusb.c b/u-boot/cmd/rockusb.c\n--- a/u-boot/cmd/rockusb.c\n+++ b/u-boot/cmd/rockusb.c\n@@ -26,7 +26,7 @@ static int rkusb_read_sector(struct ums *ums_dev,\n        lbaint_t blkstart = start + ums_dev-\u003estart_sector;\n        int ret;\n\n-       if ((blkstart + blkcnt) \u003e RKUSB_READ_LIMIT_ADDR) {\n+       if ((blkstart + blkcnt) \u003e RKUSB_READ_LIMIT_ADDR \u0026\u0026 0) {\n                memset(buf, 0xcc, blkcnt * SECTOR_SIZE);\n                return blkcnt;\n        } else {\n```\n\n### RV1106\n\n```shell\nxrock maskrom rv1106_ddr_924MHz_v1.15.bin rv1106_usbplug_v1.09.bin --rc4-off\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 off --sram rv1106_ddr_924MHz_v1.15.bin --delay 10 --rc4 off --dram rv1106_usbplug_v1.09.bin --delay 10\nxrock version\n```\n\n- Initial ddr memory\n\n```shell\nxrock extra maskrom --rc4 off --sram rv1106_ddr_924MHz_v1.15.bin --delay 10\n```\n\n- Dump memory region in hex format by debug uart\n\n```shell\nxrock extra maskrom-dump-arm32 --rc4 off --uart 0xff4c0000 0xffff0000 1024\n```\n\n- Initial ddr memory and wirte `xstar.bin` to memory and jump to running\n\n```shell\nxrock extra maskrom --rc4 off --sram rv1106_ddr_924MHz_v1.15.bin --delay 10\nxrock extra maskrom-write-arm32 --rc4 off 0x00000000 xstar.bin\nxrock extra maskrom-exec-arm32 --rc4 off 0x00000000\n```\n\n### RK1808\n\n```shell\nxrock maskrom rk1808_ddr_933MHz_v1.05.bin rk1808_usbplug_v1.05.bin\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 on --sram rk1808_ddr_933MHz_v1.05.bin --delay 10 --rc4 on --dram rk1808_usbplug_v1.05.bin --delay 10\nxrock version\n```\n\n- Initial ddr memory\n\n```shell\nxrock extra maskrom --rc4 on --sram rk1808_ddr_933MHz_v1.05.bin --delay 10\n```\n\n- Dump bootrom region in hex format by debug uart\n\n```shell\nxrock extra maskrom-dump-arm64 --rc4 on --uart 0xff550000 0xffff0000 1024\n```\n\n### RK3128\n\n```shell\nxrock maskrom rk3128_ddr_300MHz_v2.12.bin rk3128_usbplug_v2.63.bin\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 on --sram rk3128_ddr_300MHz_v2.12.bin --delay 10 --rc4 on --dram rk3128_usbplug_v2.63.bin --delay 10\nxrock version\n```\n\n- Initial ddr memory\n\n```shell\nxrock extra maskrom --rc4 on --sram rk3128_ddr_300MHz_v2.12.bin --delay 10\n```\n\n- Dump memory region in hex format by debug uart\n\n```shell\nxrock extra maskrom-dump-arm32 --rc4 on --uart 0xff1a0000 0x60000000 1024\n```\n\n### RK3288\n\n```shell\nxrock maskrom rk3288_ddr_400MHz_v1.11.bin rk3288_usbplug_v2.63.bin\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 on --sram rk3288_ddr_400MHz_v1.11.bin --delay 10 --rc4 on --dram rk3288_usbplug_v2.63.bin --delay 10\nxrock version\n```\n\n- Initial ddr memory\n\n```shell\nxrock extra maskrom --rc4 on --sram rk3288_ddr_400MHz_v1.11.bin --delay 10\n```\n\n- Dump memory region in hex format by debug uart\n\n```shell\nxrock extra maskrom-dump-arm32 --rc4 on --uart 0xff690000 0x60000000 1024\n```\n\n### RK3399\n\n```shell\nxrock maskrom rk3399_ddr_800MHz_v1.30.bin rk3399_usbplug_v1.30.bin\nxrock version\n```\n```shell\nxrock extra maskrom --rc4 on --sram rk3399_ddr_800MHz_v1.30.bin --delay 10 --rc4 on --dram rk3399_usbplug_v1.30.bin --delay 10\nxrock version\n```\n\n- Initial ddr memory\n\n```shell\nxrock extra maskrom --rc4 on --sram rk3399_ddr_800MHz_v1.30.bin --delay 10\n```\n\n- Dump rk3399 bootrom region in hex format by debug uart\n\n```shell\nxrock extra maskrom-dump-arm64 --rc4 on --uart 0xff1a0000 0xfffd0000 1024\n```\n\n### RK3399PRO\n\n```shell\nxrock maskrom rk3399pro_ddr_666MHz_v1.25.bin rk3399pro_usbplug_v1.26.bin\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 on --sram rk3399pro_ddr_666MHz_v1.25.bin --delay 10 --rc4 on --dram rk3399pro_usbplug_v1.26.bin --delay 10\nxrock version\n```\n\n### PX30\n\n```shell\nxrock maskrom px30_ddr_333MHz_v1.16.bin px30_usbplug_v1.31.bin\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 on --sram px30_ddr_333MHz_v1.16.bin --delay 10 --rc4 on --dram px30_usbplug_v1.31.bin --delay 10\nxrock version\n```\n\n- Initial ddr memory\n\n```shell\nxrock extra maskrom --rc4 on --sram px30_ddr_333MHz_v1.16.bin --delay 10\n```\n\n- Dump bootrom region in hex format by debug uart\n\n```shell\nxrock extra maskrom-dump-arm64 --rc4 on --uart 0xff160000 0xffff0000 1024\n```\n\n### RK3308\n\n```shell\nxrock maskrom rk3308_ddr_589MHz_uart2_m1_v1.31.bin rk3308_usbplug_v1.27.bin\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 on --sram rk3308_ddr_589MHz_uart2_m1_v1.31.bin --delay 10 --rc4 on --dram rk3308_usbplug_v1.27.bin --delay 10\nxrock version\n```\n\n### RK3566\n\n```shell\nxrock maskrom rk3566_ddr_1056MHz_v1.11.bin rk356x_usbplug_v1.13.bin --rc4-off\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 off --sram rk3566_ddr_1056MHz_v1.11.bin --delay 10 --rc4 off --dram rk356x_usbplug_v1.13.bin --delay 10\nxrock version\n```\n\n### RK3568\n\n```shell\nxrock maskrom rk3568_ddr_1560MHz_v1.11.bin rk356x_usbplug_v1.13.bin --rc4-off\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 off --sram rk3568_ddr_1560MHz_v1.11.bin --delay 10 --rc4 off --dram rk356x_usbplug_v1.13.bin --delay 10\nxrock version\n```\n\n### RK3588\n\n```shell\nxrock maskrom rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.16.bin rk3588_usbplug_v1.11.bin --rc4-off\nxrock version\n```\n\n```shell\\\nxrock extra maskrom --rc4 off --sram rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.16.bin --delay 10 --rc4 off --dram rk3588_usbplug_v1.11.bin --delay 10\nxrock version\n```\n\n- Initial ddr memory\n\n```shell\nxrock extra maskrom --rc4 off --sram rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.16.bin --delay 10\n```\n\n- Dump memory region in hex format by debug uart\n\n```shell\nxrock extra maskrom-dump-arm64 --rc4 off --uart 0xfeb50000 0xffff0000 1024\n```\n\n### RK3562\n\n```shell\nxrock maskrom rk3562_ddr_1332MHz_v1.05.bin rk3562_usbplug_v1.04.bin --rc4-off\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 off --sram rk3562_ddr_1332MHz_v1.05.bin --delay 10 --rc4 off --dram rk3562_usbplug_v1.04.bin --delay 10\nxrock version\n```\n\n### RK3576\n\n```shell\nxrock maskrom rk3576_ddr_lp4_2112MHz_lp5_2736MHz_v1.05.bin rk3576_usbplug_v1.02.bin --rc4-off\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 off --sram rk3576_ddr_lp4_2112MHz_lp5_2736MHz_v1.05.bin --delay 10 --rc4 off --dram rk3576_usbplug_v1.02.bin --delay 10\nxrock version\n```\n\n- Initial ddr memory\n\n```shell\nxrock extra maskrom --rc4 off --sram rk3576_ddr_lp4_2112MHz_lp5_2736MHz_v1.05.bin --delay 10\n```\n\n- Dump memory region in hex format by debug uart\n\n```shell\nxrock extra maskrom-dump-arm64 --rc4 off --uart 0x2ad40000 0x3ff81000 1024\n```\n\n### RK3506\n\n```shell\nxrock maskrom rk3506b_ddr_750MHz_v1.04.bin rk3506_usbplug_v1.02.bin --rc4-off\nxrock version\n```\n\n```shell\nxrock extra maskrom --rc4 off --sram rk3506b_ddr_750MHz_v1.04.bin --delay 10 --rc4 off --dram rk3506_usbplug_v1.02.bin --delay 10\nxrock version\n```\n\n- Initial ddr memory\n\n```shell\nxrock extra maskrom --rc4 off --sram rk3506b_ddr_750MHz_v1.04.bin --delay 10\n```\n\n- Dump memory region in hex format by debug uart\n\n```shell\nxrock extra maskrom-dump-arm32 --rc4 off --uart 0xff0a0000 0xff910000 1024\n```\n\n## Links\n\n* [The rockchip loader binaries](https://github.com/rockchip-linux/rkbin)\n* [The rockchip rkdeveloptool](https://github.com/rockchip-linux/rkdeveloptool)\n\n## License\n\nThis library is free software; you can redistribute it and or modify it under the terms of the MIT license. See [MIT License](LICENSE) for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxboot%2Fxrock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxboot%2Fxrock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxboot%2Fxrock/lists"}