jaredmcneill / quartz64_uefi Goto Github PK
View Code? Open in Web Editor NEWEDK2 UEFI for Rockchip RK3566 and RK3568 based SBCs.
EDK2 UEFI for Rockchip RK3566 and RK3568 based SBCs.
Running the UEFI SCT component of the Arm SystemReady ES ACS 1.0 from a USB disk causes a CPU exception:
UEFI Interactive Shell v2.2
EDK II
UEFI v2.70 (EDK2, 0x00010000)
Mapping table
FS0: Alias(s):HD1a0c0b:;BLK2:
VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000C0FC0000000000)/USB(0x0
,0x0)/USB(0x2,0x0)/HD(1,GPT,AB6B2A97-08B1-404B-93C0-2B1D1CF68115,0x800,0xFFFFF)
FS1: Alias(s):HD1a0c0c:;BLK3:
VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000C0FC0000000000)/USB(0x0
,0x0)/USB(0x2,0x0)/HD(2,GPT,A0BFF4C5-4664-4F5F-B06E-7FBA20DABAF8,0x100800,0x18FF
F)
BLK0: Alias(s):
MemoryMapped(0xB,0xFE2B0000,0xFE2B0FFF)
BLK1: Alias(s):
VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000C0FC0000000000)/USB(0x0
,0x0)/USB(0x2,0x0)
Press ESC in 1 seconds to skip startup.nsh or any other key to continue.
Shell> echo -off
Press any key to stop the EFI SCT running
Load support files ... seconds
Load proxy files ...
Load test files ...
Test preparing...
Synchronous Exception at 0x00000000EFDA3718
Recursive exception occurred while dumping the CPU state
With latest FW, I am unable to get the HDMI video on my HP 22es monitor (https://support.hp.com/us-en/document/c05300181). This used to work on earlier FW before the EDID detection was introduced.
DisplayDxe is not showing any child handles.
Shell> dh -d -v 59
59: EF0AA398
ComponentName2(EFCEE0E0)
ComponentName(EFCEE0C8)
DriverBinding(EFCEE1F0)
ImageDevicePath(EF0AA418)
Fv(9A15AA37-D555-4A4E-B541-86391FF68164)/FvFile(03234652-6F71-4A89-92EA-E84E04
E36196)
LoadedImage(EF0AA140)
Name..........: DisplayDxe
Revision......: 0x00001000
ParentHandle..: EFA37F98
SystemTable...: EFFD0018
DeviceHandle..: EFA1FE18
FilePath......: FvFile(03234652-6F71-4A89-92EA-E84E04E36196)
PdbFileName...: /home/runner/work/quartz64_uefi/quartz64_uefi/Build/Quartz64/R
ELEASE_GCC5/AARCH64/Silicon/Rockchip/Rk356x/Drivers/DisplayDxe/DisplayDxe/DEBUG/
DisplayDxe.dll
OptionsSize...: 0
LoadOptions...: 0
ImageBase.....: EFCEA000
ImageSize.....: 6000
CodeType......: EfiBootServicesCode
DataType......: EfiBootServicesData
Unload........: 0
Driver Name [59] : RK356x Display Driver
Driver Image Name : FvFile(03234652-6F71-4A89-92EA-E84E04E36196)
Driver Version : 0000000A
Driver Type : <Unknown>
Configuration : NO
Diagnostics : NO
Managing : None
On many widespread linux distros (Fedora 39, ...) esp. LTS ones (Ubuntu 22.04, RHEL/CentOS Stream (and derived) rel 9, ...) is shipped a version of rhboot's shim that does not work when the newly added EFI_MEMORY_ATTRIBUTE_PROTOCOL is provided by the firmware, causing a Synchronous Exception
error when booting the OS.
Many distros haven't updated yet, so uninstall the protocol could be a workaround for the time being.
This has been introduced by the release 1.2 of this port of edk2 for rk356x.
The issue has been already addressed in the edk2 porting for rk3588:
edk2-porting/edk2-rk3588@842db13
Is it possible to introduce it here as well?
Ref:
I am in ubuntu jammy and get this when trying to build
root@hplaptop:/quartz64_uefi# make sdcard
Loading previous configuration from /quartz64_uefi/edk2/Conf/BuildEnv.sh
Using EDK2 in-source Basetools
WORKSPACE: /quartz64_uefi
EDK_TOOLS_PATH: /quartz64_uefi/edk2/BaseTools
CONF_PATH: /quartz64_uefi/edk2/Conf
=> Building UEFI tools
make[1]: se entra en el directorio '/quartz64_uefi/edk2/BaseTools'
make -C Source/C
make -C Source/Python
make[2]: se entra en el directorio '/quartz64_uefi/edk2/BaseTools/Source/C'
Attempting to detect HOST_ARCH from 'uname -m': x86_64
make[2]: se entra en el directorio '/quartz64_uefi/edk2/BaseTools/Source/Python'
make[2]: No se hace nada para 'all'.
make[2]: se sale del directorio '/quartz64_uefi/edk2/BaseTools/Source/Python'
Detected HOST_ARCH of X64 using uname.
mkdir -p .
make -C Common
make -C VfrCompile VfrLexer.h
make[3]: se entra en el directorio '/quartz64_uefi/edk2/BaseTools/Source/C/Common'
make[3]: se entra en el directorio '/quartz64_uefi/edk2/BaseTools/Source/C/VfrCompile'
BIN_DIR='.' make -C Pccts/dlg
BIN_DIR='.' make -C Pccts/antlr
gcc -c -I .. -I ../Include/Common -I ../Include/ -I ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/X64/ -MD -fshort-wchar -fno-strict-aliasing -fwrapv -fno-delete-null-pointer-checks -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -g -O2 BasePeCoff.c -o BasePeCoff.o
make[3]: gcc: No existe el archivo o el directorio
make[3]: *** [../Makefiles/footer.makefile:21: BasePeCoff.o] Error 127
make[3]: se sale del directorio '/quartz64_uefi/edk2/BaseTools/Source/C/Common'
make[2]: *** [GNUmakefile:76: Common] Error 2
make[2]: *** Se espera a que terminen otras tareas....
make[4]: se entra en el directorio '/quartz64_uefi/edk2/BaseTools/Source/C/VfrCompile/Pccts/antlr'
gcc -c -O -I. -I../support/set -I../h -DUSER_ZZSYN -DZZLEXBUFSIZE=65536 antlr.c -o antlr.o
make[4]: gcc: No existe el archivo o el directorio
make[4]: *** [makefile:213: antlr.o] Error 127
make[4]: se sale del directorio '/quartz64_uefi/edk2/BaseTools/Source/C/VfrCompile/Pccts/antlr'
make[3]: *** [GNUmakefile:57: Pccts/antlr/antlr] Error 2
make[4]: se entra en el directorio '/quartz64_uefi/edk2/BaseTools/Source/C/VfrCompile/Pccts/dlg'
make[3]: *** Se espera a que terminen otras tareas....
cc -O -I. -I../support/set -I../h -DUSER_ZZSYN -DZZLEXBUFSIZE=65536 -c dlg_p.c
make[4]: cc: No existe el archivo o el directorio
make[4]: *** [makefile:145: dlg_p.o] Error 127
make[4]: se sale del directorio '/quartz64_uefi/edk2/BaseTools/Source/C/VfrCompile/Pccts/dlg'
make[3]: *** [GNUmakefile:60: Pccts/dlg/dlg] Error 2
make[3]: se sale del directorio '/quartz64_uefi/edk2/BaseTools/Source/C/VfrCompile'
make[2]: *** [GNUmakefile:83: VfrCompile/VfrLexer.h] Error 2
make[2]: se sale del directorio '/quartz64_uefi/edk2/BaseTools/Source/C'
make[1]: *** [GNUmakefile:19: Source/C] Error 2
make[1]: se sale del directorio '/quartz64_uefi/edk2/BaseTools'
make: *** [Makefile:9: uefi] Error 2
¿I make someyhing wrong? I managed to build long time ago
Hi!
I noticed that the last commit from @mariobalanica added support for the Orange Pi 3B. I manually built the sdcard image for the Orange PI, but unfortunately the image wasn't able to boot. The version of my orange pi 3B is v1.1.1, I placed the image on an sd card and tested multiple sd cards, and every time with the same result.
The log of the boot is the following one:
DDR Version V1.10 20210810
ln
ddrconfig:7
LPDDR4X, 324MHz
BW=32 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=4096MB
tdqss: cs0 dqs0: -72ps, dqs1: -217ps, dqs2: -120ps, dqs3: -192ps,
tdqss: cs1 dqs0: -96ps, dqs1: -217ps, dqs2: -144ps, dqs3: -192ps,
change to: 324MHz
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:41%
dram drv:40,odt:0
clk skew:0x65
change to: 528MHz
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:41%
dram drv:40,odt:0
clk skew:0x58
change to: 780MHz
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:41%
dram drv:40,odt:0
clk skew:0x58
change to: 1056MHz(final freq)
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:22%
dram drv:40,odt:80
vref_ca:00000071
clk skew:0x4d
cs 0:
the read training result:
DQS0:0x40, DQS1:0x3b, DQS2:0x41, DQS3:0x3b,
min : 0xc 0xc 0xe 0xd 0x1 0x3 0x5 0x5 , 0x6 0x7 0x3 0x1 0x9 0xe 0x10 0x10 ,
0x3 0x1 0x10 0x10 0xd 0xd 0xf 0xb , 0x6 0x4 0x9 0x1 0xd 0xd 0xd 0xb ,
mid :0x2b 0x2a 0x2b 0x2b 0x1f 0x20 0x23 0x25 ,0x23 0x24 0x20 0x1e 0x27 0x2d 0x2e 0x2d ,
0x21 0x20 0x2c 0x2c 0x29 0x2a 0x2b 0x29 ,0x24 0x23 0x27 0x1f 0x2b 0x2b 0x2a 0x29 ,
max :0x4a 0x48 0x49 0x4a 0x3d 0x3e 0x41 0x45 ,0x40 0x41 0x3e 0x3c 0x45 0x4c 0x4c 0x4a ,
0x40 0x3f 0x49 0x48 0x46 0x47 0x47 0x47 ,0x42 0x42 0x46 0x3d 0x49 0x49 0x48 0x47 ,
range:0x3e 0x3c 0x3b 0x3d 0x3c 0x3b 0x3c 0x40 ,0x3a 0x3a 0x3b 0x3b 0x3c 0x3e 0x3c 0x3a ,
0x3d 0x3e 0x39 0x38 0x39 0x3a 0x38 0x3c ,0x3c 0x3e 0x3d 0x3c 0x3c 0x3c 0x3b 0x3c ,
the write training result:
DQS0:0x44, DQS1:0x30, DQS2:0x3d, DQS3:0x34,
min :0x5c 0x5d 0x5e 0x5f 0x54 0x53 0x55 0x5a 0x59 ,0x46 0x47 0x46 0x42 0x4a 0x50 0x4f 0x51 0x4d ,
0x4c 0x4a 0x57 0x56 0x54 0x53 0x55 0x55 0x54 ,0x4b 0x4b 0x4f 0x4a 0x52 0x51 0x54 0x53 0x4d ,
mid :0x78 0x79 0x7a 0x7a 0x6f 0x6f 0x71 0x76 0x74 ,0x63 0x63 0x61 0x5f 0x66 0x6c 0x6c 0x6e 0x69 ,
0x69 0x67 0x73 0x73 0x70 0x6f 0x70 0x70 0x70 ,0x67 0x67 0x6b 0x65 0x6e 0x6e 0x70 0x6f 0x69 ,
max :0x95 0x95 0x97 0x95 0x8a 0x8b 0x8d 0x92 0x90 ,0x81 0x80 0x7c 0x7c 0x83 0x89 0x89 0x8c 0x86 ,
0x86 0x84 0x8f 0x91 0x8c 0x8b 0x8b 0x8c 0x8d ,0x83 0x84 0x87 0x80 0x8a 0x8c 0x8d 0x8b 0x85 ,
range:0x39 0x38 0x39 0x36 0x36 0x38 0x38 0x38 0x37 ,0x3b 0x39 0x36 0x3a 0x39 0x39 0x3a 0x3b 0x39 ,
0x3a 0x3a 0x38 0x3b 0x38 0x38 0x36 0x37 0x39 ,0x38 0x39 0x38 0x36 0x38 0x3b 0x39 0x38 0x38 ,
cs 1:
the read training result:
DQS0:0x40, DQS1:0x3d, DQS2:0x40, DQS3:0x3b,
min : 0xa 0x9 0xc 0xc 0x1 0x2 0x4 0x4 , 0x7 0x6 0x5 0x1 0x9 0xf 0x10 0x10 ,
0x3 0x0 0x10 0xf 0xc 0xd 0xf 0xb , 0x6 0x4 0x9 0x1 0xc 0xd 0xe 0xc ,
mid :0x2a 0x29 0x2b 0x2c 0x20 0x21 0x23 0x25 ,0x25 0x25 0x24 0x1f 0x28 0x2f 0x2f 0x2e ,
0x20 0x1f 0x2c 0x2b 0x28 0x29 0x2a 0x28 ,0x24 0x22 0x27 0x1f 0x2a 0x2a 0x2b 0x2a ,
max :0x4b 0x49 0x4a 0x4c 0x40 0x41 0x42 0x46 ,0x44 0x44 0x43 0x3e 0x47 0x50 0x4f 0x4d ,
0x3e 0x3f 0x49 0x47 0x45 0x46 0x46 0x46 ,0x42 0x41 0x46 0x3d 0x49 0x48 0x49 0x48 ,
range:0x41 0x40 0x3e 0x40 0x3f 0x3f 0x3e 0x42 ,0x3d 0x3e 0x3e 0x3d 0x3e 0x41 0x3f 0x3d ,
0x3b 0x3f 0x39 0x38 0x39 0x39 0x37 0x3b ,0x3c 0x3d 0x3d 0x3c 0x3d 0x3b 0x3b 0x3c ,
the write training result:
DQS0:0x44, DQS1:0x30, DQS2:0x3d, DQS3:0x34,
min :0x59 0x5b 0x5c 0x5d 0x52 0x51 0x53 0x58 0x57 ,0x47 0x47 0x47 0x43 0x4d 0x50 0x51 0x53 0x4e ,
0x49 0x47 0x54 0x54 0x50 0x50 0x52 0x53 0x52 ,0x4b 0x4b 0x4f 0x49 0x53 0x51 0x53 0x53 0x4d ,
mid :0x75 0x76 0x77 0x78 0x6d 0x6d 0x6f 0x73 0x72 ,0x63 0x63 0x61 0x5e 0x67 0x6c 0x6c 0x6e 0x6a ,
0x65 0x64 0x6f 0x70 0x6c 0x6c 0x6d 0x6d 0x6d ,0x67 0x67 0x6b 0x65 0x6f 0x6f 0x6f 0x6f 0x69 ,
max :0x92 0x92 0x93 0x93 0x89 0x89 0x8b 0x8f 0x8e ,0x7f 0x80 0x7c 0x7a 0x82 0x88 0x88 0x8a 0x86 ,
0x82 0x82 0x8b 0x8d 0x89 0x88 0x88 0x87 0x88 ,0x83 0x84 0x88 0x82 0x8b 0x8d 0x8c 0x8c 0x86 ,
range:0x39 0x37 0x37 0x36 0x37 0x38 0x38 0x37 0x37 ,0x38 0x39 0x35 0x37 0x35 0x38 0x37 0x37 0x38 ,
0x39 0x3b 0x37 0x39 0x39 0x38 0x36 0x34 0x36 ,0x38 0x39 0x39 0x39 0x38 0x3c 0x39 0x39 0x39 ,
CA Training result:
cs:0 min :0x45 0x41 0x3f 0x3c 0x40 0x39 0x42 ,0x47 0x3f 0x45 0x3e 0x42 0x39 0x43 ,
cs:0 mid :0x82 0x81 0x7b 0x7d 0x7c 0x7a 0x6f ,0x82 0x81 0x7f 0x7d 0x7d 0x7b 0x70 ,
cs:0 max :0xc0 0xc2 0xb8 0xbf 0xb9 0xbb 0x9d ,0xbe 0xc4 0xba 0xbc 0xb8 0xbd 0x9d ,
cs:0 range:0x7b 0x81 0x79 0x83 0x79 0x82 0x5b ,0x77 0x85 0x75 0x7e 0x76 0x84 0x5a ,
cs:1 min :0x45 0x42 0x3e 0x3e 0x3e 0x3c 0x40 ,0x43 0x43 0x40 0x3e 0x3f 0x3c 0x42 ,
cs:1 mid :0x84 0x81 0x7c 0x7e 0x7c 0x7b 0x6f ,0x81 0x81 0x7e 0x7c 0x7c 0x7a 0x6e ,
cs:1 max :0xc3 0xc1 0xba 0xbe 0xba 0xbb 0x9e ,0xbf 0xbf 0xbc 0xbb 0xb9 0xb9 0x9b ,
cs:1 range:0x7e 0x7f 0x7c 0x80 0x7c 0x7f 0x5e ,0x7c 0x7c 0x7c 0x7d 0x7a 0x7d 0x59 ,
out
U-Boot SPL board init
U-Boot SPL 2017.09-orangepi (Aug 15 2023 - 14:24:38)
Trying to boot from MMC1
No misc partition
Trying fit image at 0x4000 sector
Not fit magic
Trying fit image at 0x5400 sector
Not fit magic
Trying fit image at 0x4000 sector
Not fit magic
Trying fit image at 0x5400 sector
Not fit magic
Trying to boot from MMC2
Card did not respond to voltage select!
spl: mmc init failed with error: -95
Trying to boot from MTD2
sys malloc pool space exhausted
alloc_read_gpt_entries: ERROR: Can't allocate lX bytes for GPT Entries
GPT: Failed to allocate memory for PTE
part_get_info_efi: *** ERROR: Invalid GPT ***
GUID Partition Table Header signature is wrong: 0xX != 0xX
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
sys malloc pool space exhausted
alloc_read_gpt_entries: ERROR: Can't allocate lX bytes for GPT Entries
GPT: Failed to allocate memory for PTE
part_get_info_efi: *** ERROR: Invalid GPT ***
GUID Partition Table Header signature is wrong: 0xX != 0xX
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
sys malloc pool space exhausted
alloc_read_gpt_entries: ERROR: Can't allocate lX bytes for GPT Entries
GPT: Failed to allocate memory for PTE
part_get_info_efi: *** ERROR: Invalid GPT ***
GUID Partition Table Header signature is wrong: 0xX != 0xX
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
No misc partition
sys malloc pool space exhausted
alloc_read_gpt_entries: ERROR: Can't allocate lX bytes for GPT Entries
GPT: Failed to allocate memory for PTE
part_get_info_efi: *** ERROR: Invalid GPT ***
GUID Partition Table Header signature is wrong: 0xX != 0xX
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
sys malloc pool space exhausted
alloc_read_gpt_entries: ERROR: Can't allocate lX bytes for GPT Entries
GPT: Failed to allocate memory for PTE
part_get_info_efi: *** ERROR: Invalid GPT ***
GUID Partition Table Header signature is wrong: 0xX != 0xX
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
Trying fit image at 0x400 sector
## Verified-boot: 0
## Checking atf-1 0x00040000 ... sha256(2f01bd8955...) + OK
## Checking uboot 0x00a00000 ... sha256(ed4b06accc...) + OK
## Checking fdt 0x00b3faf8 ... sha256(1f3b8cb579...) + OK
## Checking atf-2 0xfdcc9000 ... sha256(f1fecab971...) + OK
sys malloc pool space exhausted
## Checking atf-3 0xfdcd0000 ... sha256hw_fit_calculate_hash: algo sha256 failed, ret=-22
error!
Unsupported hash algorithm for 'hash' hash node in 'atf-3' image node
Trying fit image at 0x1800 sector
Not fit magic
sys malloc pool space exhausted
alloc_read_gpt_entries: ERROR: Can't allocate lX bytes for GPT Entries
GPT: Failed to allocate memory for PTE
part_get_info_efi: *** ERROR: Invalid GPT ***
GUID Partition Table Header signature is wrong: 0xX != 0xX
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
sys malloc pool space exhausted
alloc_read_gpt_entries: ERROR: Can't allocate lX bytes for GPT Entries
GPT: Failed to allocate memory for PTE
part_get_info_efi: *** ERROR: Invalid GPT ***
GUID Partition Table Header signature is wrong: 0xX != 0xX
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
# Reset the board to bootrom #
Does anyone have an idea about the reason behind this error? Or can help me debug this?
On ROC-RK3566-PC when changing any value in the UI, do not persist the reboot.
Any change remain if you move across the various UI section, but despite hitting F10, at the reboot is not persisted.
This has been verified and happen when tianocore is installed either on SD or on eMMC, with target release 1.2.
I want to create a 16MB or 8MB image for spi flash. But the 16MB env partition is stopping me. Is this partition necessary?
I'm currently looking at RK3588's vendor EDK2 port and found out there is some code related to RK3568 as well:
https://gitlab.com/rk3588_linux/rk/uefi-monorepo/-/tree/linux-5.10-gen-rkr3.1/edk2-platforms/Platform/Rockchip/RK3568
https://gitlab.com/rk3588_linux/rk/uefi-monorepo/-/tree/linux-5.10-gen-rkr3.1/edk2-platforms/Silicon/Rockchip/RK3568
Those might be useful to this project.
When attempting to boot OS with UEFI booting from USB storage device (SD 256GB) I get:
Synchronous Exception at 0x00000000EBFE989C
Synchronous Exception at 0x00000000EBFE989C
SD card is a Samsung PRO Plus 256 GB SD card (UHS-I) via USB. The card adapter is the one shipped with the card.
Commit: 4845480
Image: ROC-RK3568-PC_EFI.img
Device: NanoPi R5C + 4 GB RAM + 32GB eMMC + M.2 WiFi
https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=290
When booting I can only break into UEFI using RS232 terminal . USB Keyboard is ignored. Once Serial terminal breaks into UEFI the USB keyboard then works. USB devices only enumerate on the USB Download port. The other port is non-responsive.
Hi there; I am currently doing some skunk works to figure out building with the now mainline dtb's for the anbernic (rg353p/v/m etc) and powkiddy (and other) rk3566 retro handheld systems which all use various configurations of the rk3566 generally with 8 or 32gb EMMC and dual TF cards and 2GB of ram.
The dtsi's for these are now in mainline, and the horrible mess of BSP kernel and hacked up distro's available for them (the least worst being the now mainline based rocknix) all have varying approaches to how to deal with bootloaders. It would be great to bring all of the various android and linux based distros under one UEFI based umbrella. The current mess has various incompatible versions needing modern vs legacy uboot in order to i.e support Dual booting Android and Linux images.
It would also let these devices be repurposed for i.e smart control surfaces (for those with Touch panels) and run standard distros like fedora or a merged distro like ambian/ubuntu-rockchip
I've cloned the repo ; and read through some of the source / docs. In theory this should be as simple as adding the relevant dtsi / dtb to the project and compiling a target.
I'm just opening this as a placeholder as much for myself to report back here with findings. And also as a check to see if I'm missing something crucial and/or if someone has already done this.
Panfrost is not enabled by the kernel. There is something in UEFI configuration to enable it or just that is not still implemented?
Hi. I have a RADXA Rock 3A, and I tried connecting ASM2824 PCIE switch to it. However, the PCIe switch and the NVMe drives behind it are not getting recognized in UEFI. Directly connecting an NVMe drive to the PCIe3 port on the SBC works fine.
Here are some log which might be useful:
PCIe: Segment 2
PCIe: PciExpressBaseAddress 0x380000000
PCIe: ApbBase 0xFE280000
PCIe: DbiBase 0x3C0800000
PCIe: NumLanes 2
PCIe: LinkSpeed 3
PCIe: Reset GPIO 3 17
PCIe: Power GPIO 0 28
GPIO: SetPull 0 1C 0000 0xFDC2002C = 0x03000000
CruSetPpllRate(): Rate = 100000000 Hz
PmuCruGetPllRate(): PllNumber = 0, Rate = 200000000
CruGetPciePhyClockRate(): Index = 2, Sel = 1, Rate = 100000000 Hz
MultiPhySetModePcie(2, ...): Rate = 100000000 Hz
PCIe30: PHY init
PCIe30: PHY init complete
PCIe: Setup clocks
PCIe: Switching to RC mode
PCIe: Enabling DBI access
PCIe: Setup BARs
PCIe: Setup iATU
PCIe: Set link speed
PCIe: SetupBars: Speed change
PCIe: Assert reset
GPIO: SetPull 3 11 0000 0xFDC600A8 = 0x000C0000
PCIe: Start LTSSM
PCIe: Deassert reset
PCIe: Waiting for link up...
PCIe: PciIsLinkUp(): LTSSM_STATUS=0x00030011
PCIe: Link up (x1, 2.5 GT/s)
RootBridge: PcieRoot(0x0)
Support/Attr: 70069 / 70069
DmaAbove4G: Yes
NoExtConfSpace: No
AllocAttr: 3 (CombineMemPMem Mem64Decode)
Bus: 0 - FF Translation=0
Io: 0 - FFFF Translation=FFFFFFFC40010000
Mem: F0000000 - F1FFFFFF Translation=0
MemAbove4G: 390000000 - 3BFFEFFFF Translation=0
PMem: FFFFFFFFFFFFFFFF - 0 Translation=0
PMemAbove4G: FFFFFFFFFFFFFFFF - 0 Translation=0
PCI Bus First Scanning
PciBus: Discovered PPB @ [00|00|00]
PciBus: Discovered PPB @ [00|00|00]
PciHostBridge: SubmitResources for PcieRoot(0x0)
Mem: Granularity/SpecificFlag = 32 / 00
Length/Alignment = 0x100000 / 0xFFFFF
PciBus: HostBridge->SubmitResources() - Success
PciHostBridge: NotifyPhase (AllocateResources)
RootBridge: PcieRoot(0x0)
Mem: Base/Length/Alignment = F0000000/100000/FFFFF - Success
PciBus: HostBridge->NotifyPhase(AllocateResources) - Success
Process Option ROM: BAR Base/Length = F0000000/10000
PciBus: Resource Map for Root Bridge PcieRoot(0x0)
Type = Mem32; Base = 0xF0000000; Length = 0x100000; Alignment = 0xFFFFF
Base = 0xF0000000; Length = 0x10000; Alignment = 0xFFFF; Owner = PCI [00|00|00:00]; Type = OpRom
PciBus: Resource Map for Bridge [00|00|00]
Shell> pci
Seg Bus Dev Func
--- --- --- ----
02 00 00 00 ==> Bridge Device - PCI/PCI bridge
Vendor 1D87 Device 3566 Prog Interface 0
Hi all
Recently I've started adding a new board to be supported - BananaPI R2-Pro. The initial support has been based on ROC-RK3568-PC which (according to schematics) has the same PMIC: rk809-5.
But in my case both of the: PMIC_LDO1_ON_VSEL and PMIC_LDO9_ON_VSEL hax 0x00 value during the board init.
Using debug image results in:
BOARD: PMIC init
GPIO: SetPull 0 09 0000 0xFDC20024 = 0x000C0000
GPIO: SetInput 0 09 0002 0xFDC20034 = 0x000C0008
GPIO: SetFunction 0 09 0001 0xFDC20008 = 0x00F00010
GPIO: SetPull 0 0A 0000 0xFDC20024 = 0x00300000
GPIO: SetInput 0 0A 0002 0xFDC20034 = 0x00300020
GPIO: SetFunction 0 0A 0001 0xFDC20008 = 0x0F000100
PMIC: Detected RK809 ver 0x4
ASSERT [BoardInitDxe] /home/alex/Src/BPI_EFI/bpi-r2pro_uefi.build/edk2-rockchip/Platform/BananaPI/BPI-R2PRO/Drivers/BoardInitDxe/BoardInitDxe.c(296): Value == 0x0c
The release one starts but w/o HDMI output.
Adding these lines:
PmicWrite (PMIC_LDO1_ON_VSEL, 0x0c);
PmicWrite (PMIC_LDO9_ON_VSEL, 0x30);
Resolves the HDMI issue, but I still have some questions:
According to the datasheet rk809-5 should have 0.9V and 1.8V default voltages for LDO1 and LDO9, also PMIC_LDO1_ON_VSEL and PMIC_LDO9_ON_VSEL has OTP (one-timr programmed) reset value
Does it mean that rk809-x has different OTP values and these values are constant for each "x" variant?
Or the different rk809-5 versions may have different OTPs?
I will appreciate any info from anyone.
Thanks a lot!
hello, I want to replace uboot with uefi. Although uefi can start normally, I don't know how he boots the system and what kind of partition structure needs to be created on the disk. When using uboot, the partition structure of my SD card is uboot, boot, recovery, rootfs. What kind of structure do I need after using uefi? I compiled grub.efi for aarch64, I don't know how he uses it. What else do I need to boot the system after burning the uefi image?
Hi,
The v1.1 binary release ROC-RK3568-PC_EFI.img
works fine on my ROCK-3A and boots Armbian EFI from NVME to userland. I tried to compile custom image with #60 but ROCK3A image couldn't boot kernel. Later tried vanilla code from main but outcome was the same, my ROC-RK3568-PC_EFI.img
couldn't boot kernel either. Checked also other tags and different build environments (went back to Ubuntu 20.04) but I'm still getting the same message during boot:
Loading Linux 6.1.50-current-arm64 ...
Loading initial ramdisk ...
EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services...
Am I missing something when I'm building image? I tried also to boot NetBSD and other distros.
On desktop:
~/quartz64_uefi$ make release
fatal: No names found, cannot describe anything.
make: *** [Makefile:9: uefi] Erro 128
On github actions:
Run make sdcard
fatal: No names found, cannot describe anything.
make: *** [Makefile:9: uefi] Error 128
Error: Process completed with exit code 2.
is this a problem?
HDMI plug detection appears to break SOQuartz. If I comment out the plug detect check HDMI works:
Hpd = DwHdmiPhyDetect ();
DEBUG ((DEBUG_INFO, "HDMI: Plug %adetected\n", Hpd ? "" : "not "));
// if (!Hpd) {
// return FALSE;
// }
I'm using a WaveShare Compute Module 4 PoE Board (B) with my SOQuartz and I've tried two different monitors. A generic 1080P panel and a Samsung 4K. Neither seems to satisfy the plug detection. (the 4K was tried in 4K and a PiP mode) The generic 1080P seems to work and the 4K in PiP mode. In 4K mode the screen just turns on and off with no display, though the log seems reasonable.
Anyway, it seems like some boards might need some special treatment and I'm not sure how to handle that in an abstracted way.
Log:
HDMI: version 2.11A, phytype 0xF3
HDMI: DwHdmiPhyDetect: DwHdmiRead: 1
HDMI: Plug not detected
DwHdmiDdcExec: Error! I2CM_STAT0 = 0x3
HDMI: Read 0 extention blocks (of possible 1)
EDID: [00] +0000: 00 FF FF FF FF FF FF 00 26 13 00 00 01 00 00 00
[ ... working 1080p setup ]
Vendor link: https://www.geniatech.com/product/xpi-3566-zero/
I posess the board (2/8 variant) and willing to help and provide info and logs.
My plan is to boot OpenBSD with HDMI output on it.
As someone who is not a developer is there anything that can be done to help this project along? I can provider sponsor support or donate hardware.
I was just wondering if support for the rk3568 based Odroid M1 is possibly gonna happen?
It's very much like the Quartz64 regarding I/O and uses the same SoC as the StationPC M2.
Here's the product page: https://www.hardkernel.com/shop/odroid-m1-with-8gbyte-ram/
I have the device and would be willing to do some testing.
Does supporting integrated lcd screen (like using a quartz64 inside the playbox enclosure with the lcd) is in scope of this projects ?
I have radxa rock3a with a 16MB spi flash on board.
Now we create a 33MB image with a 16MB env partition. Is this partition necessary?
Sector 32768(16MB) is the start of linux boot partition according to rockchip's document.
The most spi flash size is 16/32mb,is the img can be improved to support 16mn spi flash? I see the other project of RK3588 uefi is just 8mb.
Hey -- thanks for an awesome project.
I'm trying to use this to boot NetBSD from NVMe. I have it starting up from an SD card, and I can get to the EFI shell. But I don't see my NVMe devices (I've tried 3 different cards, all blitted with the netbsd arm64.img).
Not sure if this is expected, but typing pci
at the shell says pci: Protocol - PciRootBridgeIo not found.
and when I look at devices, the only block device I see are sd:
88 D - - 1 1 0 MemoryMapped(0xB,0xFE2B0000,0xFE2B0FFF)/HD(1,GPT,996284FE-9 B71-49F9-864F-5E971B73E880,0x40,0x3FC0)
89 D - - 1 1 0 MemoryMapped(0xB,0xFE2B0000,0xFE2B0FFF)/HD(2,GPT,A654DBB6-9 2EA-4FFB-87C3-30A9D9BABC44,0x4000,0x4000)
8A D - - 1 1 0 MemoryMapped(0xB,0xFE2B0000,0xFE2B0FFF)/HD(3,GPT,9AC222C5-8 EC1-4EC1-A68F-EEC251DA50A9,0x8000,0x8000)
Can you offer any advice? I'm almost certainly not trying the right thing, but I'm not really sure where I'm going wrong.
Hi,
thanks for your amazing port: I've been able to install Fedora 36 that is working fine with kernel 5.18.16-200.fc36 on Firefly ROC-RK3566-PC.
Unfortunately the lack of support to eMMC prevent the installation on the embedded storage, forcing the use of NVMe or external USB drive for the OS.
Same for the internal ethernet nic, that is not detected and force the use of usb<->ethernet dongle.
Can you please clarify if the missing functionalities are due to code needed to be implemented on EDK2 side, or if the lack of support rely on the linux kernel side?
Is it a Firefly limitation or common to all RK356x SBCs?
For sure with the support of at least the nic, this project will be even more hugely appealing for a lot of users.
eMMC is definitely appreciated as well, esp for >= 4Gb ram sbc, that often are delivered with large embedded storage.
Thanks for clarifications
Hi! First of all, thank you for all your amazing work!
I have a RADXA ROCK3 Model A, which is equipped with RK3568 and 2GB of RAM. Windows arm64 boots with the UEFI firmware, ofc without display output. But I can successfully connect to it via UART with windbg (KDCOM).
The problem is, as soon as I plug any USB device into the USB2 port, Windows BSOD with WHEA_UNCORRECTABLE_ERROR
, while USB3 port works well. I don't have much knowledge of all these stuff actually, so I'd like to share those debug output here.
List of devices in windbg:
0: kd> !devnode 0 1
Dumping IopRootDeviceNode (= 0xffffac8c31ecda20)
DevNode 0xffffac8c31ecda20 for PDO 0xffffac8c31feed50
InstancePath is "HTREE\ROOT\0"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c31edfa20 for PDO 0xffffac8c31ff2d70
InstancePath is "ROOT\KDNIC\0000"
State = DeviceNodeInitialized (0x304)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_REINSTALL
Problem Status = 0xc0000493
DevNode 0xffffac8c31ef9a20 for PDO 0xffffac8c31ff3d70
InstancePath is "ROOT\UMBUS\0000"
ServiceName is "umbus_CE7D0C77822564F6"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeStartPostWork (0x309)
DevNode 0xffffac8c31ff6010 for PDO 0xffffac8c31ef9e20
InstancePath is "ROOT\NdisVirtualBus\0000"
ServiceName is "NdisVirtualBus"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeStartPostWork (0x309)
DevNode 0xffffac8c31ff63c0 for PDO 0xffffac8c31ff4d70
InstancePath is "ROOT\SYSTEM\0000"
ServiceName is "swenum"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeStartPostWork (0x309)
DevNode 0xffffac8c31ff6770 for PDO 0xffffac8c31ff7a70
InstancePath is "ROOT\ARM64_HAL\0000"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c320a4c30 for PDO 0xffffac8c31ff6b70
InstancePath is "ACPI_HAL\PNP0C08\0"
ServiceName is "ACPI"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322c2010 for PDO 0xffffac8c322c0270
InstancePath is "ACPI\Rockchip_-_ARMv8_(64-bit)_Family_8_Model_D05_Revision_200\0"
ServiceName is "FxPPM"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322c23c0 for PDO 0xffffac8c322c04a0
InstancePath is "ACPI\Rockchip_-_ARMv8_(64-bit)_Family_8_Model_D05_Revision_200\1"
ServiceName is "FxPPM"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322c2770 for PDO 0xffffac8c322c06d0
InstancePath is "ACPI\Rockchip_-_ARMv8_(64-bit)_Family_8_Model_D05_Revision_200\2"
ServiceName is "FxPPM"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322c2b20 for PDO 0xffffac8c322c0900
InstancePath is "ACPI\Rockchip_-_ARMv8_(64-bit)_Family_8_Model_D05_Revision_200\3"
ServiceName is "FxPPM"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322c3010 for PDO 0xffffac8c322c0b30
InstancePath is "ACPI\HISI0031\0"
State = DeviceNodeInitialized (0x304)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_FAILED_INSTALL
Problem Status = 0xc0000490
DevNode 0xffffac8c322c33c0 for PDO 0xffffac8c322c0d60
InstancePath is "ACPI\PNP0D20\0"
ServiceName is "usbehci"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c3235a260 for PDO 0xffffac8c324ae050
InstancePath is "USB\ROOT_HUB20\3&116959a7&0"
ServiceName is "usbhub"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322c3770 for PDO 0xffffac8c322c1060
InstancePath is "ACPI\RKCP0DFF\0"
State = DeviceNodeInitialized (0x304)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_FAILED_INSTALL
Problem Status = 0xc0000490
DevNode 0xffffac8c322c3b20 for PDO 0xffffac8c322c1290
InstancePath is "ACPI\PNP0D20\1"
ServiceName is "usbehci"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c324b5b70 for PDO 0xffffac8c324d0050
InstancePath is "USB\ROOT_HUB20\3&15056fe&0"
ServiceName is "usbhub"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322c4010 for PDO 0xffffac8c322c14c0
InstancePath is "ACPI\RKCP0DFF\1"
State = DeviceNodeInitialized (0x304)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_FAILED_INSTALL
Problem Status = 0xc0000490
DevNode 0xffffac8c322c43c0 for PDO 0xffffac8c322c16f0
InstancePath is "ACPI\PNP0D10\0"
ServiceName is "USBXHCI"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c325bab50 for PDO 0xffffac8c32522dc0
InstancePath is "USB\ROOT_HUB30\3&20a5d118&0&0"
ServiceName is "USBHUB3"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322c4770 for PDO 0xffffac8c322c1920
InstancePath is "ACPI\PNP0D10\1"
ServiceName is "USBXHCI"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c325b7a20 for PDO 0xffffac8c3259c4b0
InstancePath is "USB\ROOT_HUB30\3&dec2073&0&0"
ServiceName is "USBHUB3"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c341425e0 for PDO 0xffffac8c32ca4370
InstancePath is "USB\VID_067B&PID_2731\ABCDEF0123456789AB"
ServiceName is "USBSTOR"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c342be5e0 for PDO 0xffffac8c32c79060
InstancePath is "USBSTOR\Disk&Ven_&Prod_SD_Card_Reader&Rev_1.00\ABCDEF0123456789AB&0"
ServiceName is "disk"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322c4b20 for PDO 0xffffac8c322c1b50
InstancePath is "ACPI\PNP0A08\2&daba3ff&0"
ServiceName is "pci"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeEnumerateCompletion (0x30f)
DevNode 0xffffac8c322e9010 for PDO 0xffffac8c3231abc0
InstancePath is "ACPI\PNP0C02\3&b1bfb68&0"
State = DeviceNodeInitialized (0x304)
Previous State = DeviceNodeUninitialized (0x301)
DevNode 0xffffac8c322e2a20 for PDO 0xffffac8c322dad80
InstancePath is "SWD\COMPUTER\MFG_Pine64&FAM_Quartz64&PROD_RADXA_ROCK3_Model_A&SKU_0000000000000000"
State = DeviceNodeStarted (0x30a)
Previous State = DeviceNodeStartPostWork (0x309)
........................
Bugcheck analysis:
WHEA_UNCORRECTABLE_ERROR (124)
A fatal hardware error has occurred. Parameter 1 identifies the type of error
source that reported the error. Parameter 2 holds the address of the
nt!_WHEA_ERROR_RECORD structure that describes the error condition. Try !errrec Address of the nt!_WHEA_ERROR_RECORD structure to get more details.
Arguments:
Arg1: 0000000000000011, Error Source Type
Arg2: ffffac8c34454038
Arg3: 0000000000000000
Arg4: 0000000000000000
Debugging Details:
------------------
KEY_VALUES_STRING: 1
Key : Analysis.CPU.mSec
Value: 1030
Key : Analysis.DebugAnalysisManager
Value: Create
Key : Analysis.Elapsed.mSec
Value: 10495
Key : Analysis.Init.CPU.mSec
Value: 6468
Key : Analysis.Init.Elapsed.mSec
Value: 1274762
Key : Analysis.Memory.CommitPeak.Mb
Value: 91
Key : WER.OS.Branch
Value: rs_prerelease
Key : WER.OS.Timestamp
Value: 2021-12-10T14:18:00Z
Key : WER.OS.Version
Value: 10.0.22523.1000
BUGCHECK_CODE: 124
BUGCHECK_P1: 11
BUGCHECK_P2: ffffac8c34454038
BUGCHECK_P3: 0
BUGCHECK_P4: 0
PROCESS_NAME: System
STACK_TEXT:
fffffc88`19b4b790 fffff802`fb181e90 : fffffc88`19b4b7e0 fffff802`fb1816b8 fffffc88`00000003 fffff802`fb181644 : nt!DbgBreakPoint
fffffc88`19b4b790 fffff802`fb1816b8 : fffffc88`19b4b7e0 fffff802`fb1816b8 fffffc88`00000003 fffff802`fb181644 : nt!KiBugCheckDebugBreak+0x20
fffffc88`19b4b7e0 fffff802`fb134004 : fffffc88`19b4bdc0 fffff802`fb134004 ffffac8c`01000001 ffffac8c`325b7080 : nt!KeBugCheck2+0x938
fffffc88`19b4bdc0 fffff802`fb23fcfc : fffffc88`19b4be00 fffff802`fb23fcfc ffffac8c`34454038 ffffac8c`32648070 : nt!HalBugCheckSystem+0x84
fffffc88`19b4be00 fffff802`fb2400e8 : fffffc88`19b4be80 fffff802`fb2400e8 ffffac8c`34454010 fffffc88`19b4bee0 : nt!WheaRecoveryBugCheck+0x6c
fffffc88`19b4be20 fffff802`fb0ab380 : fffff802`000009e0 00000000`00000000 00000000`00000000 00000000`00000001 : nt!WheaReportHwError+0x3d8
fffffc88`19b4bee0 fffff802`faf73a44 : 00000003`41454857 00000000`00000065 00000000`00000006 00000011`00000004 : nt!HalWheaHandleSea+0x120
fffffc88`19b4bf70 fffff802`faf73558 : fffffc88`19b4c060 fffff802`faf73558 fffffc88`19b4c100 fffff802`fa5a0980 : nt!KiAbortException+0x224
fffffc88`19b4bfb0 fffff802`faeb3c00 : 00000000`0000bf00 00000000`c0000709 00000000`00000000 fffff802`fd6f10dc : nt!KiSynchronousException+0x218
fffffc88`19b4c0a0 fffff802`faeb285c : ffffac8c`32f1d828 ffff9900`86a66100 ffffac8c`32356da0 ffffac8c`32356da0 : nt!KzSynchronousException+0x24
fffffc88`19b4c100 fffff802`fd6f10dc : 7072544b`00000001 ffffac8c`343ed001 fffffc88`19b4c250 ffffac8c`32d38800 : nt!KiArm64ExceptionVectors+0x5c
fffffc88`19b4c470 fffff802`fd6fcaf4 : fffffc88`19b4c4a0 fffff802`fd6f6c68 00000000`00000001 ffffac8c`32f1d828 : usbehci!InterlockedOr+0xc
fffffc88`19b4c470 fffff802`fd6f6c68 : fffffc88`19b4c4a0 fffff802`fd6f6c68 00000000`00000001 ffffac8c`32f1d828 : usbehci!EHCI_AllocTd+0x84
fffffc88`19b4c4a0 fffff802`fd6fe8d0 : fffffc88`19b4c510 fffff802`fd6fe8d0 00000000`00000001 00000000`00000000 : usbehci!EHCI_OpenBulkOrControlEndpoint+0x160
fffffc88`19b4c510 fffff802`fd712fac : fffffc88`19b4c580 fffff802`fd712fac 00000040`00000000 00000000`00000002 : usbehci!EHCI_OpenEndpoint+0x150
fffffc88`19b4c580 fffff802`fd742a44 : fffffc88`19b4c5c0 fffff802`fd742a44 ffffac8c`32f1d560 00000000`00180a95 : USBPORT!MPx_OpenEndpoint+0xd4
fffffc88`19b4c5c0 fffff802`fd741788 : fffffc88`19b4c630 fffff802`fd741788 fffffc88`19b4c501 00010000`00000400 : USBPORT!USBPORT_OpenEndpoint+0x94c
fffffc88`19b4c630 fffff802`fd71ec10 : fffffc88`19b4c6b0 fffff802`fd71ec10 ffffac8c`32355050 fffffc88`19b4c6c0 : USBPORT!USBPORT_NeoCreateDevice+0x300
fffffc88`19b4c6a0 fffff802`fd5e7a88 : ffffac8c`34355c20 ffff5b86`9c073a86 fffffc88`19b4c7b0 fffff802`fd5e7a88 : USBPORT!USBPORTBUSIF_CreateUsbDeviceV7+0xa0
fffffc88`19b4c720 fffff802`fd60a4ec : ffffac8c`34355c20 ffffac8c`343439c0 ffffac8c`34340000 00000000`00000000 : usbhub!UsbhCreateDevice+0x2a0
fffffc88`19b4c810 fffff802`fd6088f0 : fffffc88`19b4c840 fffff802`faf0a494 00000000`00000990 00000000`00000000 : usbhub!UsbhReset1Complete+0x16c
fffffc88`19b4c8a0 fffff802`fd5df238 : fffffc88`19b4c900 fffff802`fd5df238 00000000`00000010 fffff802`fd5dec64 : usbhub!UsbhEnumerate1+0x218
fffffc88`19b4c8f0 fffff802`fd5dfa90 : fffffc88`19b4c970 fffff802`fd5df95c fffffc88`19b4c970 fffff802`fd5dfa90 : usbhub!UsbhHubDispatchPortEvent+0x718
fffffc88`19b4c960 fffff802`fd5e5d0c : 00000000`00000000 ffffac8c`324d8028 fffffc88`19b4ca20 fffff802`fd5e5d0c : usbhub!UsbhHubRunPortChangeQueue+0x310
fffffc88`19b4ca20 fffff802`fd5de524 : fffffc88`19b4ca60 fffff802`fd5de524 50447170`70714400 fffff802`faf0c570 : usbhub!Usbh_PCE_wRun_Action+0x194
fffffc88`19b4ca60 fffff802`fd5e1134 : fffffc88`19b4cab0 fffff802`fd5e1134 ffffac8c`324d2050 ffffac8c`324d8010 : usbhub!UsbhDispatch_PortChangeQueueEventEx+0x12c
fffffc88`19b4cab0 fffff802`fd5df46c : fffffc88`19b4cae0 fffff802`fd5df46c ffffac8c`324d8010 ffffac8c`324d2050 : usbhub!UsbhPCE_wRun+0x8c
fffffc88`19b4cae0 fffff802`faf84c3c : fffffc88`19b4cb50 fffff802`faf84c3c fffffffe`76999ba7 00000000`00000000 : usbhub!UsbhHubProcessChangeWorker+0x12c
fffffc88`19b4cb30 fffff802`faf8415c : 00000000`00000000 00000000`00000000 ffffac8c`325b7080 ffff5b86`9c073f26 : nt!IopProcessWorkItem+0x8c
fffffc88`19b4cb90 fffff802`fb01a70c : ffffac8c`31e69420 fffff802`fb9e1200 fffff802`fb9e1200 00000000`00000000 : nt!ExpWorkerThread+0x1dc
fffffc88`19b4cd50 fffff802`faeb7de4 : 00000000`00000000 fffff802`faeb7de4 ffffac8c`325b7080 fffff802`fa5a0980 : nt!PspSystemThreadStartup+0xdc
fffffc88`19b4cd90 00000000`00000000 : ffffac8c`31ebfa20 fffff802`faf83f80 fffff802`fb01a630 00000000`00000000 : nt!KiStartSystemThread+0x24
HI just get this SBC today , Oepn a issues tracker for update of work ,
it would be amazing to be able to use any arm64 efi os on the rock 5b
Hi,
How much effort / what's needed to add support for ROCK 3C model? Looking at specs, it's also RK3566, same as Quartz64.
I tried image for Quartz64 (EFI on SD, OS on USB) + u-boot
for 3C to boot FreeBSD. Loader booted, kernel started to boot but fail right at the start with panic: Invalid bus configuration: acpi
:) ?
With either the 2023-03-18 or 2023-03-13 release, the onboard ethernet NIC of my Quartz64 Model A shows as disconnected (but present) in ESXi-ARM (initially with v1.11, also with v1.12).
The only way I found to get the onboard NIC to work again was to downgrade back to the earlier 2022-07-20 release.
Hi sir, I'm interested in your project and trying to port edk2 to rk3588, But it failed to start :(, I see that most of the rockchip drivers write bits to the BASE ADDR of some hardware module, but I can't find them in datasreet. May I ask you a question? Looking forward to your reply.
It could be worth to have reported here how to use the firmware with the various SBC it support, in order to make it easier for end users to test it.
Friendly NanoPi R5S also uses a Rockchip RK3568B2 CPU. Is it possible to have prebuilt image for this board?
I am having trouble getting the network card working when reverting to uboot and arch/manjaro after using the EDK2 with ESXI. I can't find any settings that could explain this. The board still works when booting back into EDK2 and ESXI. Any tips would help.
Thanks
Tom
Hello! It would be really cool if this supported ipxe. I tried manually compiling a ipxe image to use alongside this, though it seems that there is just no hardware driver.
So then I tried compiling it using this guide https://github.com/tianocore/tianocore.github.io/wiki/NetworkPkg-Getting-Started-Guide#features-enabling
But I don't believe I did it right
/home/sam/git/mcsh/quartz64_uefi/edk2-rockchip/Platform/Pine64/SOQuartz/SOQuartz.dsc(515): error 000E: File/directory not found in workspace
MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf is not found in packages path:
/home/sam/git/mcsh/quartz64_uefi/edk2
/home/sam/git/mcsh/quartz64_uefi/edk2-platforms
/home/sam/git/mcsh/quartz64_uefi/edk2-non-osi
/home/sam/git/mcsh/quartz64_uefi/edk2-rockchip
Hi There!
Anyone is having luck with Ubuntu Jammy on a Quartz64?
I tried to boot with latest ubuntu-22.04.3-live-server-arm64.iso
but always stuck with message as below:
EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services...
I am currently using latest 1.1 image.
Thank you!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.