Difference between revisions of "Rock/U-Boot"
(→External links) |
|||
(19 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{rock_header}} | ||
{{Languages|rock/U-Boot}} | {{Languages|rock/U-Boot}} | ||
− | |||
− | |||
− | |||
− | |||
== Features == | == Features == | ||
− | * both | + | * both Rockchip proprietary USB protocol and fastboot USB protocol are supported (Rockchip USB tools works) |
− | * format of partitions (images) are compatible to Rockchip proprietary bootloader (rkcrc, mkbootimg | + | * format of partitions (images) are compatible to Rockchip proprietary bootloader (rkcrc, mkbootimg works) |
* (need more investigation...) | * (need more investigation...) | ||
− | == | + | == For NAND flash == |
− | git clone -b | + | === Build === |
− | cd | + | Refer [[Rock/install_toolchain | install toolchain]] if you don't have arm-eabi- on your system. Other toolchain(Linaro arm-linux-gnueabihf-gcc 4.9) may cause data abort errors. |
+ | git clone -b u-boot-rk3188 https://github.com/radxa/u-boot-rockchip.git | ||
+ | cd u-boot-rockchip | ||
+ | make rk30xx | ||
− | + | The binary we need for nand flash are '''RK3188Loader_miniall.bin''' and '''uboot.img'''. | |
− | + | === Flash === | |
− | + | refer [[rock/flash_the_image| flash image page]] | |
− | + | ||
− | + | use the new u-boot to erase the old loader | |
+ | sudo upgrade_tool ef RK3188Loader_miniall.bin | ||
+ | flash new loader | ||
+ | sudo upgrade_tool ul RK3188Loader_miniall.bin | ||
+ | |||
+ | format NAND (first time only) | ||
+ | sudo upgrade_tool lf | ||
+ | |||
+ | flash parameter | ||
+ | upgrade_tool di -p parameter | ||
+ | |||
+ | paramter file | ||
+ | FIRMWARE_VER:4.2.2 | ||
+ | MACHINE_MODEL:radxa_rock | ||
+ | MACHINE_ID:007 | ||
+ | MANUFACTURER:RADXA | ||
+ | MAGIC: 0x5041524B | ||
+ | ATAG: 0x60000800 | ||
+ | MACHINE: 3066 | ||
+ | CHECK_MASK: 0x80 | ||
+ | KERNEL_IMG: 0x60408000 | ||
+ | CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init mac_addr=de:ad:de:ad:be:ef initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00008000@0x00004000(boot),-@0x000c0000(linuxroot) | ||
+ | |||
+ | flash U-Boot | ||
+ | sudo upgrade_tool wl 0x2000 uboot.img | ||
+ | sudo upgrade_tool rd | ||
+ | |||
+ | flash kernel + ramdisk | ||
+ | upgrade_tool di -b boot-linux.img | ||
+ | |||
+ | flash root fs | ||
+ | upgrade_tool di linuxroot rootfs.img | ||
+ | |||
+ | Booting log can be found at: http://paste.ubuntu.com/9623598/ | ||
+ | |||
+ | == For SD card == | ||
+ | === Build === | ||
+ | Refer [[Rock/install_toolchain | install toolchain]] if you don't have arm-eabi- on your system. Other toolchain(Linaro arm-linux-gnueabihf-gcc 4.9) may cause data abort errors. | ||
+ | git clone -b u-boot-rk3188-sdcard https://github.com/radxa/u-boot-rockchip.git | ||
+ | cd u-boot-rockchip | ||
make rk30xx | make rk30xx | ||
+ | ./pack-sd.sh | ||
− | + | The binary we need for sdcard is '''u-boot-sd.img'''. | |
− | == | + | === Flash === |
− | + | sudo dd if=u-boot-sd.img of=/dev/sdx seek=64 | |
− | + | Insert the uSD card to rock pro, it will boot from u-boot on uSD card. | |
− | * [ | + | == Develop == |
− | * [ | + | |
+ | Some important files and directories related to the Rockchip platform: | ||
+ | |||
+ | * [https://github.com/radxa/u-boot-rockchip/blob/master/UserManual '''UserManual'''] - documentation | ||
+ | * [https://github.com/radxa/u-boot-rockchip/blob/master/include/configs/rk30xx.h '''include/configs/rk30xx.h'''] - configuration file | ||
+ | * [https://github.com/radxa/u-boot-rockchip/tree/master/tools/rk_tools '''tools/rk_tools'''] | ||
+ | |||
+ | * [https://github.com/radxa/u-boot-rockchip/tree/master/board/rockchip '''board/rockchip'''] | ||
+ | ├── [https://github.com/radxa/u-boot-rockchip/tree/master/board/rockchip/common '''common'''] | ||
+ | │ ├── [https://github.com/radxa/u-boot-rockchip/tree/master/board/rockchip/common/armlinux '''armlinux'''] | ||
+ | │ ├── [https://github.com/radxa/u-boot-rockchip/tree/master/board/rockchip/common/common '''common'''] | ||
+ | │ │ ├── A8MMU | ||
+ | │ │ ├── crc | ||
+ | │ │ ├── emmc | ||
+ | │ │ ├── fat | ||
+ | │ │ ├── rc4 | ||
+ | │ │ ├── rockusb | ||
+ | │ │ ├── serial_p9 | ||
+ | │ │ └── SPI | ||
+ | │ └── [https://github.com/radxa/u-boot-rockchip/tree/master/board/rockchip/common/platform '''platform'''] | ||
+ | │ ├── rk2928 | ||
+ | │ └── rk30 | ||
+ | └── [https://github.com/radxa/u-boot-rockchip/tree/master/board/rockchip/rk30xx '''rk30xx'''] | ||
+ | |||
+ | * [https://github.com/radxa/u-boot-rockchip/tree/master/arch/arm/cpu/armv7/rk30xx '''arch/arm/cpu/armv7/rk30xx'''] | ||
+ | * [https://github.com/radxa/u-boot-rockchip/blob/master/arch/arm/include/asm/arch-rk30xx/ '''arch/arm/include/asm/arch-rk30xx'''] | ||
+ | |||
+ | == Unbrick == | ||
+ | |||
+ | If something goes wrong and your device doesn't boot anymore, read [[rock/unbrick | Unbrick Rock]]. | ||
== External links == | == External links == | ||
− | * https://github.com/ | + | |
− | + | * https://github.com/linux-rockchip/u-boot-rockchip (some improvement) |
Latest revision as of 01:49, 19 November 2020
Contents
Features
- both Rockchip proprietary USB protocol and fastboot USB protocol are supported (Rockchip USB tools works)
- format of partitions (images) are compatible to Rockchip proprietary bootloader (rkcrc, mkbootimg works)
- (need more investigation...)
For NAND flash
Build
Refer install toolchain if you don't have arm-eabi- on your system. Other toolchain(Linaro arm-linux-gnueabihf-gcc 4.9) may cause data abort errors.
git clone -b u-boot-rk3188 https://github.com/radxa/u-boot-rockchip.git cd u-boot-rockchip make rk30xx
The binary we need for nand flash are RK3188Loader_miniall.bin and uboot.img.
Flash
refer flash image page
use the new u-boot to erase the old loader
sudo upgrade_tool ef RK3188Loader_miniall.bin
flash new loader
sudo upgrade_tool ul RK3188Loader_miniall.bin
format NAND (first time only)
sudo upgrade_tool lf
flash parameter
upgrade_tool di -p parameter
paramter file
FIRMWARE_VER:4.2.2 MACHINE_MODEL:radxa_rock MACHINE_ID:007 MANUFACTURER:RADXA MAGIC: 0x5041524B ATAG: 0x60000800 MACHINE: 3066 CHECK_MASK: 0x80 KERNEL_IMG: 0x60408000 CMDLINE:console=ttyFIQ0,115200 console=tty0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init mac_addr=de:ad:de:ad:be:ef initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00008000@0x00004000(boot),-@0x000c0000(linuxroot)
flash U-Boot
sudo upgrade_tool wl 0x2000 uboot.img sudo upgrade_tool rd
flash kernel + ramdisk
upgrade_tool di -b boot-linux.img
flash root fs
upgrade_tool di linuxroot rootfs.img
Booting log can be found at: http://paste.ubuntu.com/9623598/
For SD card
Build
Refer install toolchain if you don't have arm-eabi- on your system. Other toolchain(Linaro arm-linux-gnueabihf-gcc 4.9) may cause data abort errors.
git clone -b u-boot-rk3188-sdcard https://github.com/radxa/u-boot-rockchip.git cd u-boot-rockchip make rk30xx ./pack-sd.sh
The binary we need for sdcard is u-boot-sd.img.
Flash
sudo dd if=u-boot-sd.img of=/dev/sdx seek=64
Insert the uSD card to rock pro, it will boot from u-boot on uSD card.
Develop
Some important files and directories related to the Rockchip platform:
* UserManual - documentation * include/configs/rk30xx.h - configuration file * tools/rk_tools
* board/rockchip ├── common │ ├── armlinux │ ├── common │ │ ├── A8MMU │ │ ├── crc │ │ ├── emmc │ │ ├── fat │ │ ├── rc4 │ │ ├── rockusb │ │ ├── serial_p9 │ │ └── SPI │ └── platform │ ├── rk2928 │ └── rk30 └── rk30xx
* arch/arm/cpu/armv7/rk30xx * arch/arm/include/asm/arch-rk30xx
Unbrick
If something goes wrong and your device doesn't boot anymore, read Unbrick Rock.
External links
- https://github.com/linux-rockchip/u-boot-rockchip (some improvement)