20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)

这篇具有很好参考价值的文章主要介绍了20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

20230313用友善之臂的Android11跑起来ROC-RK3399-PC
2023/3/13 12:30


SDK:友善之臂的Android11:rk3399-android-11-r20211216.tar.xz
https://pan.baidu.com/share/init?surl=XL6x7CGzG03zR238TcBSAA
提取码:1234

【小知识】:ROC-RK3399-PC开发板,TYPE-C0接电脑一般就可以用了!
如果【用鼠标】经常出现莫名其妙的死机,请在TYPE-C1按需接入电源适配器。


1、正常编译,启动异常。
Rockchip_Developer_Guide_Android11_SDK_V1.1.3_CN.pdf
RK3399+Android11
RK3399 挖掘机开发板

(一)整体编译
rk3399-sapphireexcavatoredp-avb

build/envsetup.sh;
lunch rk3399_Android11-userdebug

./build.sh -AUCKu -d rk3399-sapphire-excavator-edp-avb


(二)分步骤编译:
./make.sh rk3399


make ARCH=arm64 rockchip_defconfig android-11.config
make ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3399_Android10/boot.img rk3399-sapphire-excavator-edp-avb.img -j18


build/envsetup.sh;
lunch rk3399_Android11-eng
make -j36

./build.sh -u

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)

DDR Version 1.27 20211018
In
channel 0
CS = 0
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 1
CS = 0
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 0 training pass!
channel 1 training pass!
change freq to 416MHz 0,1
Channel 0: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
Channel 1: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
256B stride
channel 0
CS = 0
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 1
CS = 0
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 0 training pass!
channel 1 training pass!
change freq to 856MHz 1,0
ch 0 ddrconfig = 0x101, ddrsize = 0x2020
ch 1 ddrconfig = 0x101, ddrsize = 0x2020
pmugrf_os_reg[2] = 0x3AA1FAA1, stride = 0xD
OUT
Boot1 Release Time: Jun  2 2020 15:02:17, version: 1.26
CPUId = 0x0
SdmmcInit=2 0
BootCapSize=100000
UserCapSize=14910MB
FwPartOffset=2000 , 100000
##############serialno_str = ZXK0HN7563
UsbBoot ...157114
powerOn 169337
DDR Version 1.27 20211018
In
soft reset
SRX
channel 0
CS = 0
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 1
CS = 0
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 0 training pass!
channel 1 training pass!
change freq to 416MHz 0,1
Channel 0: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
Channel 1: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
256B stride
channel 0
CS = 0
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 1
CS = 0
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x18
MR4=0x1
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 0 training pass!
channel 1 training pass!
channel 0, cs 0, advanced training done
channel 0, cs 1, advanced training done
channel 1, cs 0, advanced training done
channel 1, cs 1, advanced training done
change freq to 856MHz 1,0
ch 0 ddrconfig = 0x101, ddrsize = 0x2020
ch 1 ddrconfig = 0x101, ddrsize = 0x2020
pmugrf_os_reg[2] = 0x3AA1FAA1, stride = 0xD
ddr_set_rate to 328MHZ
ddr_set_rate to 666MHZ
ddr_set_rate to 416MHZ, ctl_index 0
ddr_set_rate to 856MHZ, ctl_index 1
support 416 856 328 666 MHz, current 856MHz
OUT
Boot1 Release Time: May 29 2020 17:36:36, version: 1.26
CPUId = 0x0
ChipType = 0x10, 437
SdmmcInit=2 0
BootCapSize=100000
UserCapSize=14910MB
FwPartOffset=2000 , 100000
mmc0:cmd8,20
mmc0:cmd5,20
mmc0:cmd55,20
mmc0:cmd1,20
mmc0:cmd8,20
mmc0:cmd5,20
mmc0:cmd55,20
mmc0:cmd1,20
mmc0:cmd8,20
mmc0:cmd5,20
mmc0:cmd55,20
mmc0:cmd1,20
SdmmcInit=0 1
StorageInit ok = 69538
SecureMode = 0
SecureInit read PBA: 0x4
SecureInit read PBA: 0x404
SecureInit read PBA: 0x804
SecureInit read PBA: 0xc04
SecureInit read PBA: 0x1004
SecureInit read PBA: 0x1404
SecureInit read PBA: 0x1804
SecureInit read PBA: 0x1c04
SecureInit ret = 0, SecureMode = 0
atags_set_bootdev: ret:(0)
GPT part:  0, name:         security, start:0x2000, size:0x2000
GPT part:  1, name:            uboot, start:0x4000, size:0x2000
GPT part:  2, name:            trust, start:0x6000, size:0x2000
GPT part:  3, name:             misc, start:0x8000, size:0x2000
GPT part:  4, name:             dtbo, start:0xa000, size:0x2000
GPT part:  5, name:           vbmeta, start:0xc000, size:0x2000
GPT part:  6, name:             boot, start:0xe000, size:0x14000
GPT part:  7, name:         recovery, start:0x22000, size:0x37000
GPT part:  8, name:           backup, start:0x59000, size:0xc0000
GPT part:  9, name:            cache, start:0x119000, size:0xc0000
GPT part: 10, name:         metadata, start:0x1d9000, size:0x8000
GPT part: 11, name:    baseparameter, start:0x1e1000, size:0x800
GPT part: 12, name:            super, start:0x1e1800, size:0x614000
GPT part: 13, name:         userdata, start:0x7f5800, size:0x15297c0
find part:uboot OK. first_lba:0x4000.
find part:trust OK. first_lba:0x6000.
Trust Addr:0x6000, 0x58334c42
No find bl30.bin
Load uboot, ReadLba = 4000
Load OK, addr=0x200000, size=0x1001a8
RunBL31 0x40000 @ 118627 us
NOTICE:  BL31: v1.3(release):845ee93
NOTICE:  BL31: Built : 15:51:11, Jul 22 2020
NOTICE:  BL31: Rockchip release version: v1.1
INFO:    GICv3 with legacy support detected. ARM GICV3 driver initialized in EL3
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    plat_rockchip_pmu_init(1196): pd status 3e
INFO:    BL31: Initializing runtime services
INFO:    BL31: Initializing BL32
INF [0x0] TEE-CORE:init_primary_helper:337: Initializing (1.1.0-266-gee81607c #1 Mon Aug 17 09:23:30 UTC 2020 aarch64)

INF [0x0] TEE-CORE:init_primary_helper:338: Release version: 1.2

INF [0x0] TEE-CORE:init_teecore:83: teecore inits done
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2017.09 (Mar 12 2023 - 21:56:48 +0800)

Model: Rockchip RK3399 Evaluation Board
PreSerial: 2, raw, 0xff1a0000
DRAM:  3.8 GiB
Sysmem: init
Relocation Offset: f5b7b000, fdt: f3d6f2d8 
Using default environment

mmc@fe320000: 1, sdhci@fe330000: 0
Bootdev(atags): mmc 0
MMC0: HS400, 150Mhz
PartType: EFI
boot mode: recovery (misc)
Android 11.0, Build 2021.6, v2
Found DTB in recovery part
DTB: rk-kernel.dtb (108209)
HASH(c): OK
ANDROID: fdt overlay OK
I2c0 speed: 400000Hz
PMIC:  RK808 
vdd_center 900000 uV
vdd_cpu_l 900000 uV
vdd_log 1100000 uV
Model: Rockchip RK3399 Excavator Board edp avb (Android)
Rockchip UBOOT DRM driver version: v1.0.1
disp info 0, type:11, id:0
xfer: num: 2, addr: 0x50
xfer: num: 2, addr: 0x50
Monitor has basic audio support
base_parameter.mode:1920x1080
mode: 1920x1080
Detailed mode clock 148500 kHz, flags[5]
    H: 1920 2008 2052 2200
    V: 1080 1084 1089 1125
bus_format: 100a
CEA mode used vic=16
final pixclk = 148500000 tmdsclk = 148500000
PHY powered down in 0 iterations
PHY PLL locked 1 iterations
PHY powered down in 0 iterations
PHY PLL locked 1 iterations
sink has audio support
hdmi_set_clk_regenerator: fs=48000Hz ftdms=148.500MHz N=6144 cts=148500
Using display timing dts
Detailed mode clock 200000 kHz, flags[a]
    H: 1536 1548 1564 1612
    V: 2048 2056 2060 2068
bus_format: 100e
AUX CH command reply failed!
AUX CH error happens: 2
AUX CH command reply failed!
AUX CH error happens: 2
AUX CH command reply failed!
AUX CH error happens: 2
failed to get Rx Max Link Rate
failed to init training
unable to do link train
CLK: (uboot. arml: enter 816000 KHz, init 816000 KHz, kernel 0N/A)
CLK: (uboot. armb: enter 816000 KHz, init 816000 KHz, kernel 0N/A)
  aplll 816000 KHz
  apllb 816000 KHz
  dpll 856000 KHz
  cpll 200000 KHz
  gpll 800000 KHz
  npll 600000 KHz
  vpll 148000 KHz
  aclk_perihp 133333 KHz
  hclk_perihp 66666 KHz
  pclk_perihp 33333 KHz
  aclk_perilp0 266666 KHz
  hclk_perilp0 88888 KHz
  pclk_perilp0 44444 KHz
  hclk_perilp1 100000 KHz
  pclk_perilp1 50000 KHz
Net:   eth0: ethernet@fe300000
Hit key to stop autoboot('CTRL+C'):  0 
ANDROID: reboot reason: "recovery"
optee api revision: 2.0
Vboot=0, AVB images, AVB verify
General failure 
INF [0x0] TEE-CORE:tee_rpmb_init:1217: RPMB INIT: Verify key failed. Try again.

ERR [0x0] TEE-CORE:tee_rpmb_init:1225: ERROR: Verify RPMB authentication key failed!

General failure 
INF [0x0] TEE-CORE:tee_rpmb_init:1217: RPMB INIT: Verify key failed. Try again.

ERR [0x0] TEE-CORE:tee_rpmb_init:1225: ERROR: Verify RPMB authentication key failed!

General failure 
INF [0x0] TEE-CORE:tee_rpmb_init:1217: RPMB INIT: Verify key failed. Try again.

ERR [0x0] TEE-CORE:tee_rpmb_init:1225: ERROR: Verify RPMB authentication key failed!

General failure 
INF [0x0] TEE-CORE:tee_rpmb_init:1217: RPMB INIT: Verify key failed. Try again.

ERR [0x0] TEE-CORE:tee_rpmb_init:1225: ERROR: Verify RPMB authentication key failed!

lib/avb/libavb_user/avb_ops_user.c: init lock state error
Error determining whether device is unlocked.
read_is_device_unlocked() ops returned that device is UNLOCKED
Magic is incorrect.
Error validating A/B metadata from disk. Resetting and writing new A/B metadata to disk.
avb_footer.c:41: ERROR: Footer magic is incorrect.
avb_vbmeta_image.c:65: ERROR: Magic is incorrect.
avb_slot_verify.c:773: ERROR: recovery: Error verifying vbmeta image: invalid vbmeta header
Verify recovery with vbmeta.
avb_slot_verify.c:762: ERROR: vbmeta: Error verifying vbmeta image: OK_NOT_SIGNED
General failure 
INF [0x0] TEE-CORE:tee_rpmb_init:1217: RPMB INIT: Verify key failed. Try again.

ERR [0x0] TEE-CORE:tee_rpmb_init:1225: ERROR: Verify RPMB authentication key failed!

General failure 
INF [0x0] TEE-CORE:tee_rpmb_init:1217: RPMB INIT: Verify key failed. Try again.

ERR [0x0] TEE-CORE:tee_rpmb_init:1225: ERROR: Verify RPMB authentication key failed!

General failure 
INF [0x0] TEE-CORE:tee_rpmb_init:1217: RPMB INIT: Verify key failed. Try again.

ERR [0x0] TEE-CORE:tee_rpmb_init:1225: ERROR: Verify RPMB authentication key failed!

General failure 
INF [0x0] TEE-CORE:tee_rpmb_init:1217: RPMB INIT: Verify key failed. Try again.

ERR [0x0] TEE-CORE:tee_rpmb_init:1225: ERROR: Verify RPMB authentication key failed!

lib/avb/libavb_user/avb_ops_user.c: init rollback index error
avb_slot_verify.c:883: ERROR: vbmeta: Error getting rollback index for location.
AVB verify failed
Android boot failed, error -1.

## Booting Rockchip Format Image
Could not find kernel partition, ret=-1
MMC error: The cmd index is 1, ret is -110
Card did not respond to voltage select!
mmc_init: -95, time 10
switch to partitions #0, OK
mmc0(part 0) is current device
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
starting USB...
Bus usb@fe380000: USB EHCI 1.00
Bus usb@fe3a0000: USB OHCI 1.0
Bus usb@fe3c0000: USB EHCI 1.00
Bus usb@fe3e0000: USB OHCI 1.0
Bus dwc3@fe800000: probe failed, error -2
Bus dwc3@fe900000: usb maximum-speed not found
Rockchip Type-C PHY is initialized
Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@fe380000 for devices... 1 USB Device(s) found
scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found
scanning bus usb@fe3c0000 for devices... 1 USB Device(s) found
scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found
scanning bus dwc3@fe900000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-e2-e3-e7-dc-21-c9
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-rockchip
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Config file not found
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
=> 
=> 

[END] 2023/3/13 11:44:57

 


2、根据AIO-3568J的经验,直接使用ROC-RK3399-PC Plus开发板的U-boot来引导Android11了。
https://www.t-firefly.com/product/industry/rocrk3399pcpro
https://www.t-firefly.com/product/industry/rocrk3399pcplus
https://www.t-firefly.com/doc/download/85.html

./make.sh rk3399
./build.sh -u

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot) 

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot) 

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot) 

 


3、找到修改的地方了!
Z:\rk3399-android11\u-boot\arch\arm\dts\rk3399.dtsi
Z:\rk3399-android11\u-boot\arch\arm\dts\Makefile
Z:\rk3399-android11\u-boot\arch\arm\mach-rockchip\rk3399\rk3399.c
Z:\rk3399-android11\u-boot\configs\rk3399_defconfig
Z:\rk3399-android11\u-boot\make.sh


Z:\rk3399-android11\u-boot\arch\arm\dts\rk3399.dtsi
    sdio0: mmc@fe310000 {
        compatible = "rockchip,rk3399-dw-mshc",
                 "rockchip,rk3288-dw-mshc";
        reg = <0x0 0xfe310000 0x0 0x4000>;
        interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
        max-frequency = <150000000>;
        clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
             <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
        clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
        fifo-depth = <0x100>;
        power-domains = <&power RK3399_PD_SDIOAUDIO>;
        resets = <&cru SRST_SDIO0>;
        reset-names = "reset";
        status = "disabled";
    };

    sdmmc: mmc@fe320000 {
        compatible = "rockchip,rk3399-dw-mshc",
                 "rockchip,rk3288-dw-mshc";
        reg = <0x0 0xfe320000 0x0 0x4000>;
        interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
        max-frequency = <150000000>;
        clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
             <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
        clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
        fifo-depth = <0x100>;
        power-domains = <&power RK3399_PD_SD>;
        resets = <&cru SRST_SDMMC>;
        reset-names = "reset";
        status = "disabled";
    };
修改为:
    sdio0: dwmmc@fe310000 {
        compatible = "rockchip,rk3399-dw-mshc",
                 "rockchip,rk3288-dw-mshc";
        reg = <0x0 0xfe310000 0x0 0x4000>;
        interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
        max-frequency = <150000000>;
        clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
             <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
        clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
        fifo-depth = <0x100>;
        power-domains = <&power RK3399_PD_SDIOAUDIO>;
        resets = <&cru SRST_SDIO0>;
        reset-names = "reset";
        status = "disabled";
    };

    sdmmc: dwmmc@fe320000 {
        compatible = "rockchip,rk3399-dw-mshc",
                 "rockchip,rk3288-dw-mshc";
        reg = <0x0 0xfe320000 0x0 0x4000>;
        interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
        max-frequency = <150000000>;
        clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
             <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
        clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
        fifo-depth = <0x100>;
        power-domains = <&power RK3399_PD_SD>;
        resets = <&cru SRST_SDMMC>;
        reset-names = "reset";
        status = "disabled";
    };

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)

 


【貌似关系不大】
Z:\rk3399-android11\u-boot\arch\arm\dts\Makefile
dtb-$(CONFIG_ARCH_ROCKCHIP) += \
    rk3036-sdk.dtb \
    rk3066a-mk808.dtb \
    rk3126-evb.dtb \
    rk3128-evb.dtb \
    rk3188-radxarock.dtb \
    rk3288-evb.dtb \
    rk3288-fennec.dtb \
    rk3288-firefly.dtb \
    rk3288-miqi.dtb \
    rk3288-phycore-rdk.dtb \
    rk3288-popmetal.dtb \
    rk3288-rock2-square.dtb \
    rk3288-tinker.dtb \
    rk3288-veyron-jerry.dtb \
    rk3288-veyron-mickey.dtb \
    rk3288-veyron-minnie.dtb \
    rk3288-vyasa.dtb \
    rk3308-evb.dtb \
    rk3328-evb.dtb \
    rk3328-nanopi-r2.dtb \
    rk3368-lion.dtb \
    rk3368-sheep.dtb \
    rk3368-geekbox.dtb \
    rk3368-px5-evb.dtb \
    rk3399-evb.dtb \
    rk3399-firefly.dtb \
    rk3399-puma-ddr1333.dtb \
    rk3399-puma-ddr1600.dtb \
    rk3399-puma-ddr1866.dtb \
    rk3399-nanopi4.dtb \
    rv1108-evb.dtb
dtb-$(CONFIG_ARCH_MESON) += \
    meson-gxbb-odroidc2.dtb
修改为:
dtb-$(CONFIG_ARCH_ROCKCHIP) += \
    rk3036-sdk.dtb \
    rk3066a-mk808.dtb \
    rk3126-evb.dtb \
    rk3128-evb.dtb \
    rk3188-radxarock.dtb \
    rk3288-evb.dtb \
    rk3288-fennec.dtb \
    rk3288-firefly.dtb \
    rk3288-miqi.dtb \
    rk3288-phycore-rdk.dtb \
    rk3288-popmetal.dtb \
    rk3288-rock2-square.dtb \
    rk3288-tinker.dtb \
    rk3288-veyron-jerry.dtb \
    rk3288-veyron-mickey.dtb \
    rk3288-veyron-minnie.dtb \
    rk3288-vyasa.dtb \
    rk3308-evb.dtb \
    rk3328-evb.dtb \
    rk3368-lion.dtb \
    rk3368-sheep.dtb \
    rk3368-geekbox.dtb \
    rk3368-px5-evb.dtb \
    rk3399-evb.dtb \
    rk3399-firefly.dtb \
    rk3399-puma-ddr1333.dtb \
    rk3399-puma-ddr1600.dtb \
    rk3399-puma-ddr1866.dtb \
    rv1108-evb.dtb
dtb-$(CONFIG_ARCH_MESON) += \
    meson-gxbb-odroidc2.dtb
dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \


dtb-$(CONFIG_ARCH_ASPEED) += ast2500-evb.dtb

dtb-$(CONFIG_ARCH_STI) += stih410-b2260.dtb

# Compile embeded kernel dts to dtb, and put it behind of u-boot.dtb
EMBED_KERN_DTB_PATH := $(CONFIG_EMBED_KERNEL_DTB_PATH:"%"=%)
EMBED_KERN_DTS_PATH := $(subst dtb,dts, $(EMBED_KERN_DTB_PATH))
ifneq ($(wildcard $(EMBED_KERN_DTS_PATH)),)
EMBED_KERN_DTB=$(shell echo $(EMBED_KERN_DTB_PATH) | awk -F '/' '{ print $$NF }')
dtb-y += $(EMBED_KERN_DTB)
endif

targets += $(dtb-y)

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot) 

 


Z:\rk3399-android11\u-boot\arch\arm\mach-rockchip\rk3399\rk3399.c
struct mm_region *mem_map = rk3399_mem_map;

const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
    [BROM_BOOTSOURCE_EMMC] = "/sdhci@fe330000",
    [BROM_BOOTSOURCE_SPINOR] = "/spi@ff1d0000",
    [BROM_BOOTSOURCE_SD] = "/mmc@fe320000",
};

#ifdef CONFIG_SPL_BUILD
修改为:
struct mm_region *mem_map = rk3399_mem_map;

const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
    [BROM_BOOTSOURCE_EMMC] = "/sdhci@fe330000",
    [BROM_BOOTSOURCE_SPINOR] = "/spi@ff1d0000",
    [BROM_BOOTSOURCE_SD] = "/dwmmc@fe320000",
};

#ifdef CONFIG_SPL_BUILD

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)

 


【貌似关系不大】
Z:\rk3399-android11\u-boot\configs\rk3399_defconfig
CONFIG_DEFAULT_DEVICE_TREE="rk3399-evb"
CONFIG_DEBUG_UART=y
CONFIG_FIT=y
CONFIG_SPL_LOAD_FIT=y
# CONFIG_SPL_SYS_DCACHE_OFF is not set
CONFIG_BOOTDELAY=10
CONFIG_SYS_CONSOLE_INFO_QUIET=y

# CONFIG_DISPLAY_CPUINFO is not set
修改为:
CONFIG_DEFAULT_DEVICE_TREE="rk3399-evb"
CONFIG_DEBUG_UART=y
CONFIG_FIT=y
CONFIG_SPL_LOAD_FIT=y
# CONFIG_SPL_SYS_DCACHE_OFF is not set
CONFIG_BOOTDELAY=0
CONFIG_OPTEE_ALWAYS_USE_SECURITY_PARTITION=y

CONFIG_SYS_CONSOLE_INFO_QUIET=y
# CONFIG_DISPLAY_CPUINFO is not set

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)

 


【貌似关系不大】
Z:\rk3399-android11\u-boot\make.sh
function select_toolchain()
{
    if grep -q '^CONFIG_ARM64=y' .config ; then
        if ${GCC_ARM64}gcc -v >/dev/null 2>&1; then
            TOOLCHAIN_GCC=${GCC_ARM64}
            TOOLCHAIN_OBJDUMP=${OBJ_ARM64}
            TOOLCHAIN_ADDR2LINE=${ADDR2LINE_ARM64}
        elif [ -d ${TOOLCHAIN_ARM64} ]; then

            absolute_path=$(cd `dirname ${TOOLCHAIN_ARM64}`; pwd)
            TOOLCHAIN_NM=${absolute_path}/bin/${NM_ARM64}
            TOOLCHAIN_GCC=${absolute_path}/bin/${GCC_ARM64}
            TOOLCHAIN_OBJDUMP=${absolute_path}/bin/${OBJ_ARM64}
            TOOLCHAIN_ADDR2LINE=${absolute_path}/bin/${ADDR2LINE_ARM64}
        else
            echo "ERROR: No toolchain: ${TOOLCHAIN_ARM64}"
            exit 1
        fi
    else
        if [ -d ${TOOLCHAIN_ARM32} ]; then
            absolute_path=$(cd `dirname ${TOOLCHAIN_ARM32}`; pwd)
            TOOLCHAIN_NM=${absolute_path}/bin/${NM_ARM32}
            TOOLCHAIN_GCC=${absolute_path}/bin/${GCC_ARM32}
            TOOLCHAIN_OBJDUMP=${absolute_path}/bin/${OBJ_ARM32}
            TOOLCHAIN_ADDR2LINE=${absolute_path}/bin/${ADDR2LINE_ARM32}
        else
            echo "ERROR: No toolchain: ${TOOLCHAIN_ARM32}"
            exit 1
        fi
    fi
}
修改为:
function select_toolchain()
{
    if grep -q '^CONFIG_ARM64=y' .config ; then
        if [ -d ${TOOLCHAIN_ARM64} ]; then

            absolute_path=$(cd `dirname ${TOOLCHAIN_ARM64}`; pwd)
            TOOLCHAIN_NM=${absolute_path}/bin/${NM_ARM64}
            TOOLCHAIN_GCC=${absolute_path}/bin/${GCC_ARM64}
            TOOLCHAIN_OBJDUMP=${absolute_path}/bin/${OBJ_ARM64}
            TOOLCHAIN_ADDR2LINE=${absolute_path}/bin/${ADDR2LINE_ARM64}
        else
            echo "ERROR: No toolchain: ${TOOLCHAIN_ARM64}"
            exit 1
        fi
    else
        if [ -d ${TOOLCHAIN_ARM32} ]; then
            absolute_path=$(cd `dirname ${TOOLCHAIN_ARM32}`; pwd)
            TOOLCHAIN_NM=${absolute_path}/bin/${NM_ARM32}
            TOOLCHAIN_GCC=${absolute_path}/bin/${GCC_ARM32}
            TOOLCHAIN_OBJDUMP=${absolute_path}/bin/${OBJ_ARM32}
            TOOLCHAIN_ADDR2LINE=${absolute_path}/bin/${ADDR2LINE_ARM32}
        else
            echo "ERROR: No toolchain: ${TOOLCHAIN_ARM32}"
            exit 1
        fi
    fi
}

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)

20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot) 

 


参考资料:
http://www.friendlyarm.com/
Welcome to FriendlyELEC
The website you visited has been changed to a new domain name. 

Please click the link https://www.friendlyelec.com


http://www.friendlyelec.com.cn/nanopi-R5S.asp
https://wiki.friendlyelec.com/wiki/index.php/Main_Page
Main Page


https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T4
https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T4#Download_Android10_Source_Code

https://pan.baidu.com/share/init?surl=oBLn9H31hILJKEPQXgrUog
提取码:yn6r


 文章来源地址https://www.toymoban.com/news/detail-480031.html

到了这里,关于20230313用友善之臂的Android11跑起来ROC-RK3399-PC(U-boot)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【android12-linux-5.1】【ST芯片】HAL移植后没调起来

    ST传感器芯片HAL按官方文档移植后,测试一直掉不起来,加的日志没出来。经过分析,是系统自带了一个HAL,影响的。 按照官方文档,移植HAL后,在/device/vendor/board/device.mk*路径增加PRODUCT_PACKAGES += sensors.{TARGET_BOARD_PLATFORM}。生成的sensors.{TARGET_BOARD_PLATFORM}.so会被在刷系统的时候

    2024年02月10日
    浏览(32)
  • Android 13 Launcher——长按图标弹窗内容修改以及小组件等隐藏起来

    目录 一.背景 二.实现思路 三.布局文件修改 四.隐藏代码中原先的view 由于定制化开发需要将原先的长按图标原生弹窗界面隐藏,然后显示自定义的弹

    2024年02月13日
    浏览(91)
  • Android studio 引入不了R包,手动引入显示红色。可以跑起来却没问题

    之前在这个问题踩坑2次,遂记录一下。 问题是:工程里找不到自己包名的R,手动导入显示红色,Run起来倒是没问题 尝试过Clean,Rebuild,清缓存,重启,都没用。 最终发现是没有在 AndroidManifest.xml指定包名:   指定一下:package即可

    2024年02月16日
    浏览(42)
  • 机械臂的雅克比矩阵推导

    p i = p i − 1 + R i − 1 r i − 1 , i i − 1 mathbf{p}_{i}=mathbf{p}_{i-1}+mathbf{R}_{i-1} mathbf{r}_{i-1, i}^{i-1} p i ​ = p i − 1 ​ + R i − 1 ​ r i − 1 , i i − 1 ​ p i − 1 mathbf{p}_{i-1} p i − 1 ​ 是 { i − 1 } {i-1} { i − 1 } 坐标系的原点的向量, p i mathbf{p}_{i} p i ​ 是 { i } {i} { i } 坐标系的原

    2024年02月15日
    浏览(58)
  • (7)机械臂的速度雅克比矩阵

    前面介绍了机器人的逆运动学解法又几何法和代数法得到的都是机器人逆运动学的解析解,但是由于解析解可能不存在,所以需要寻求新的方法。这里介绍速度级的雅克比方法(Jacobian)。雅克比方法求机器人的运动学逆解对于不同类型的机械臂求解过程是相同的,而且不要

    2024年02月01日
    浏览(40)
  • 机器人操作臂的速度与静力分析

    目录 一、速度雅可比的求导法 位置求导法 二、速度雅可比的矢量积法 三、连杆的受力和平衡方程 机器人是一个多输入多输出的运动系统,为了更好地控制机器人的运动,必须精确求解机器人操作空间与关节空间之间的速度关系。 雅可比矩阵定义为: 关节空间速度 向 末端

    2024年02月04日
    浏览(44)
  • 机械臂的动力学分析-工业机器人

    工业机器人动力学研究采用的方法有很多,例如拉格朗日法、牛顿-欧拉法、高斯法、凯恩法等,在此重点介绍牛顿-欧拉法和拉格朗日法。牛顿-欧拉法需要从运动学出发求得加速度,并计算各内作用力。对于较复杂的系统,此种分析方法十分复杂与麻烦。而拉格朗日法,只需

    2023年04月08日
    浏览(39)
  • (6)六轴机械臂的运动学正、逆解

    下面在前面的ur5机械臂的DH参数基础是对其正逆解进行求解,为了后面能在MATLAB中利用stl文件进行实际显示,这里以标准DH参数为例进行讲解。( 修正DH参数在用plot3d函数是显示失败,不知道是不是这个函数只能显示标准dh参数的机械臂模型,有知道的网友可以在评论里告知一

    2023年04月09日
    浏览(47)
  • 如何在Windows 11上的WSL2做到GPU直通,并用Deepracer本地训练炸干电脑的资源(显卡降价了,618等等党还等什么,一起来加入Deepracer的比赛学习交流吧)

    下面两种安装docker环境的方式中选其一 1.1 下载并安装 Docker Desktop 从docker的官方网站下载并安装: 1.2 在Docker Desktop中配置Nvidia docker环境 1.2.1 用下面的命令行代码在WSL2的环境中安装nvidia-docker2: 在WSL2 terminal中输入 1.2.2 在docker desktop界面修改Docker daemon配置文件添加使用nvidia容器

    2024年02月09日
    浏览(67)
  • SolidWorks导出机械臂的URDF模型各个关节坐标系设置

    郑重提示 :为了记录自己在学习过程中遇到的问题,所以记录了这篇博客。。在后面学习的过程中发现 之前 这篇博客记录的导出URDF模型坐标系设置方法存在一些问题,不好写DH参数表,,更更要命的是,好些朋友都收藏了这篇博客, 为了不误导大家,再次对以下内容做出修

    2024年02月05日
    浏览(114)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包