GithubHelp home page GithubHelp logo

jaredmcneill / quartz64_uefi Goto Github PK

View Code? Open in Web Editor NEW
151.0 15.0 60.0 18.24 MB

EDK2 UEFI for Rockchip RK3566 and RK3568 based SBCs.

Makefile 0.10% Shell 1.46% C 92.33% ASL 5.05% Assembly 0.12% Python 0.11% BitBake 0.83%

quartz64_uefi's Issues

Arm SystemReady ES ACS crashes

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

Graphics output not working

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

EFI_MEMORY_ATTRIBUTE_PROTOCOL cause Synchronous Exception when booting Linux

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:

Build does not work for me

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

Unable to boot on Orange Pi 3B

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?

[BUG] UEFI env vars not persisted neither on SD nor on eMMC

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.

Synchronous Exception

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.

[FR] Build for various rk3566 Retro Handheld devices (rg353m/x55/rgb30 etc etc)

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

Panfrost is not enabled by the kernel. There is something in UEFI configuration to enable it or just that is not still implemented?

PCIe switch not recognized

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

PMIC: rk809-5 LDO1/LDO9 Default values?

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!

boot the kernel

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?

Self build images can't boot kernel - `EFI stub: Exiting boot services...`

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.

Build on desktop or fork Github actions

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?

SOQuartz HDMI plug detection fails.

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 ]

Project Support

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.

Quartz64: Can't figure out how to boot from NVMe

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.

Lack of eMMC and ethernet support in Linux

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

EHCI not working in Windows

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

Support for ROCK 3C model ?

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 :) ?

Quartz64 onboard NIC disconnected in ESXi-ARM

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.

Porting edk2 into rock5 rk3588

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.

Trouble with ethernet after reverting to uboot Quart64 Model A

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

Network Boot

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.
image

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

Compatibility with Ubuntu Jammy 22.04.3 LTS?

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!

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.