147 Commits
v0.7 ... v0.8

Author SHA1 Message Date
Mario Bălănică
031633ddfc Update README.md 2023-09-16 22:25:35 +03:00
Mario Bălănică
1ae9c5f1c5 Update to latest EDK2
edk2-stable202308
2023-09-15 01:57:16 +03:00
Mario Bălănică
7a0363351f Silicon/Rockchip: I2cDxe: Connect all controller handles at end of Dxe
Only the first handle was connected.
2023-09-15 01:06:44 +03:00
Mario Bălănică
8b616fe787 Silicon/RK3588: Set default fan speed to 50% 2023-09-14 04:50:29 +03:00
Mario Bălănică
3154f1454a Add fan control for more platforms
- Indiedroid Nova (GPIO4_B4)
- ROC-RK3588S-PC / Station M3 (fan header)
- Blade 3 (fan header)
- Orange Pi 5 (GPIO4_B2)
- Orange Pi 5 Plus (fan header)
- ROCK 5B (fan header)
2023-09-14 04:42:46 +03:00
Mario Bălănică
1a9dc8252d Platform/Khadas: Add MCU driver for fan control 2023-09-13 04:38:10 +03:00
Mario Bălănică
e50878b95a Silicon/Rockchip: Add RAM disk support 2023-09-12 04:15:58 +03:00
Mario Bălănică
34f9e1860f Silicon/Rockchip: StatusLedDxe: Fix BlinkLedSync() 2023-09-12 03:42:45 +03:00
Mario Bălănică
e1fc17f6f1 Add basic status LED support
During DXE phase, the LED will pulse repeatedly. If this keeps going on forever
or the LED freezes, something went terribly wrong.

After the console is ready, at BDS phase, the LED will switch to a calm short
pulsing every two seconds or so. This indicates the firmware is alive and
waiting for user input or the countdown to boot automatically. If the blinking
stops, it can either mean that the firmware has exited the boot services and
handed off control to the OS (most likely), or that it's not responding. Brief
freezes are expected with some peripherals due to how device drivers use the
timer.

I had initially planned on blinking the LED at ExitBootServices() too, but the
delay added to the boot process doesn't seem justified.

Long pulses >= 2 are reserved for future error code reporting.

Enabled on all platforms that have a controllable LED.
2023-09-12 03:37:15 +03:00
Mario Bălănică
55f9943b00 Silicon/RK3588: GpioLib: Log direction and value set, adjust verbosity 2023-09-10 22:28:08 +03:00
Mario Bălănică
5833bde557 Silicon/Rockchip: Vop2Dxe: Fix info debug message level 2023-09-06 02:44:11 +03:00
Mario Bălănică
7505423178 Silicon/RK3588: Set VP2 pixel clock using CruLib
Custom video modes are now working on DisplayPort, but not on HDMI yet as the
driver uses hardcoded timings for 1080p 60Hz.

Once that's fixed, we can look into adding a setup option for the display mode
and even handle EDID.
2023-09-06 02:37:21 +03:00
Mario Bălănică
a36bf868d1 Silicon/RK3588: CruLib: Support (almost) arbitrary PLL rates 2023-09-06 01:17:06 +03:00
Mario Bălănică
cdf1a5ed02 Silicon/Rockchip: Add initial DisplayPort support
DwDpLib was ported from U-Boot downstream commit
549d42b6f4d1b261c433c0942868fd6e1b38aaaf.

It has been globally enabled on all RK3588 platforms where DP lanes are exposed.

Output mode is fixed by GOP at 1080p 60Hz - no EDID and HPD implemented yet.

Only works in one orientation of the Type-C connector.

Tested on:
  - R58-Mini (USB-C)
  - Indiedroid Nova (USB-C)
  - ROCK 5A (onboard HDMI -> DP converter)
2023-09-03 07:05:38 +03:00
Mario Bălănică
73bdaca713 Silicon/Rockchip: GOP: Support multiple mode setting
More changes are required in Vop2Dxe and DwHdmiQpLib.
2023-09-03 04:34:35 +03:00
Mario Bălănică
4415c8ae93 Silicon/Rockchip: GOP: Support multiple connectors
...on a single CRTC / framebuffer.
2023-09-03 04:22:15 +03:00
Mario Bălănică
8df3fc2c3f Silicon/RK3588: UsbDpPhyDxe: Add DisplayPort configuration support 2023-09-03 03:54:50 +03:00
Mario Bălănică
d56ea77d77 Silicon/RK3588: UsbDpPhyDxe: Set lane flip state when both USB and DP are exposed 2023-08-30 20:13:48 +03:00
Mario Bălănică
5bc1517de4 Silicon/RK3588: Fix GMAC ACPI _UID conflict
Make Windows happy again.
2023-08-30 03:45:55 +03:00
Mario Bălănică
f187fa7237 Silicon/Rockchip: DWC3: Disable SS instances in park mode
No, I did not notice any issues, but Rockchip have enabled this quirk in their
kernel, so let's do the same.

Apparently, on some implementations of DWC3 the controller would halt under high
load and never come back online.
2023-08-30 03:23:44 +03:00
Mario Bălănică
dbaeeacd38 Remove simple-init dependency
It was disabled by default and can't really be used due to a Synchronous Exception.
2023-08-27 22:11:54 +03:00
Mario Bălănică
e8a04487d3 Silicon/RK3588: Fix uninitialized handle in RK3588Dxe
This would point to invalid memory when the AcpiUsb2State setting was enabled,
preventing gRockchipPlatformConfigAppliedProtocolGuid from getting installed.
2023-08-26 01:25:46 +03:00
jfliu
e94e810c9d add devicetree name of board in smbios OEM Strings 2023-08-25 18:30:58 +03:00
jfliu
d4c97c6eb6 remove unused second IDBlock in flash 2023-08-25 17:02:07 +03:00
Mario Bălănică
4dbfc37a6b Platform/OrangePi5: Revert USB-C VBUS disable
Pushed accidentally.
2023-08-23 00:02:21 +03:00
Mario Bălănică
53b8299232 Silicon/RK3588: GmacPlatformDxe: Add missing break in switch statement 2023-08-22 23:58:20 +03:00
Mario Bălănică
ed76800bdf Initialize GMAC and expose in ACPI
Enabled on all platforms that use it.

Tested to be working with NetBSD on:
- R58X & R58-Mini
- Orange Pi 5
- ROCK 5A
- ROC-RK3588S-PC / Station M3

VMware ESXi also detects the NICs and link status, however it's not able to get
an IP address.

The original GMAC0 definition by Rockchip was more thorough, but I have no idea
if all the methods have been tested and with what kernel, so for now we'll keep
it minimal like on Quartz64.

This will only work when connected to a Gigabit capable port, lower speed modes
are not supported due to lack of clock management in the OS.
2023-08-22 23:52:52 +03:00
Mario Bălănică
d2ed387cc5 Silicon/RK3588: Fix PPTT A76 L2 cache reference 2023-08-20 14:32:56 +03:00
Mario Bălănică
d8039ee7fb Silicon/Rockchip: RkSdmmcDxe: Set base clock rate
If a card was plugged in after boot, it wouldn't respond.
Turns out we need to increase the base clock from the default 400 KHz. Set it to
52 MHz like the earlier stages do when a card is present at boot.

Weirdly enough this arised only after I globally enabled the DEBUG_INFO logging
level.
2023-08-20 03:30:17 +03:00
Mario Bălănică
05daac0d50 Silicon/Rockchip Fix flag clearing in DEBUG_PRINT_ERROR_LEVEL_NO_INFO 2023-08-20 02:38:05 +03:00
Mario Bălănică
4e02eb69e5 Silicon/Rockchip: Adjust logging verbosity
- Release builds are now free of any logging, to keep the serial console clean
and avoid bottlenecking the boot process.

- Debug builds are a bit more verbose.
2023-08-20 01:07:07 +03:00
Mario Bălănică
d6d9df82fb Logging fixes
- Replace EFI_D_* with DEBUG_*
- Fix informational messages that were logged as errors or warnings.
2023-08-20 00:32:07 +03:00
Mario Bălănică
e540f36293 Configure SDMMC I/O muxes 2023-08-19 19:39:08 +03:00
Mario Bălănică
5a6bb8a0e5 Silicon/Synopsys: DwMmcHcDxe: Initialize the slot even if no card is present at driver binding start
Otherwise we can't plug in an SD card after boot.
2023-08-19 19:20:12 +03:00
Mario Bălănică
937e90447b RockchipPlatformLib: Rename DwEmmcDxeIoMux & SdhciEmmcIoMux 2023-08-19 17:50:31 +03:00
Mario Bălănică
ce653aeaca Platform/OrangePi5: Do not override eMMC and FSPI pin muxing
This way we can also support the 5B wihich has an eMMC instead of SPI NOR.
2023-08-19 17:30:51 +03:00
Mario Bălănică
bf0ba70cb5 Silicon/RK3588: PPTT package has a valid AcpiProcessorId 2023-08-19 17:12:29 +03:00
Mario Bălănică
0be33750a4 Describe CPU topology in ACPI 2023-08-19 16:29:49 +03:00
Mario Bălănică
e3b055025d Silicon/RK3588: Fix HII form ID conflict 2023-08-19 03:53:34 +03:00
Mario Bălănică
0b23d9913b Platform/OrangePi5Plus: Expose the correct XHCI controller in ACPI 2023-08-19 03:44:56 +03:00
Mario Bălănică
2ffd0b3e59 Configure USB/DP PHY for all platforms
Only tested on:
 - ROCK 5B
 - Orange Pi 5 Plus
 - Indiedroid Nova
 - Edge2
 - R58X
2023-08-19 03:32:10 +03:00
Mario Bălănică
da6271594a Silicon/RK3588: Add early USB/DP PHY support
UsbDpPhyDxe was ported from U-Boot upstream commit
7b57ca18f8a3a88216b69cd295e1eed2b0c6c1be.

It currently lacks:
- proper DisplayPort PHY bring-up
- lane orientation flip binding, exposed via a protocol to the TCPM driver

USB 3 works mostly okay, but it's not as reliable as through the USB/SATA/PCIe
Combo PHY. My RTL8156B NIC for instance fails with tons of transaction errors
from the XHCI driver. This does not occur when the device is plugged into a hub.
The same behavior can be observed with Rockchip's legacy kernel booted via
U-Boot, so at least the issue is not limited to UEFI.

Thus, we introduce some config options to allow disabling SuperSpeed.

Oh, XhciDxe also doesn't cope too well with flaky USB-C connectors, it may hang
for a good while (sometimes indefinitely) retrying transfers when there isn't a
good connection.
2023-08-19 03:32:05 +03:00
Molly Sophia
5bfd4808de Platform/ROCK-5B: Enable fan control
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-08-13 23:02:52 +08:00
Molly Sophia
9ec8f97ebd Add support for fan controlling in settings
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-08-13 22:53:38 +08:00
Skr-niao
a46a675cb9 Platform/ROCK-5B: Enable fan pwm at 40kHz, 60% duty 2023-08-13 15:56:17 +08:00
Molly Sophia
e8632850d3 Platform/ROCK-5A: Enable fan pwm at 1kHz, 50% duty
Hardcoded for now

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-08-12 12:17:53 +08:00
Molly Sophia
343be283d4 README.md: Update support status
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-08-12 12:12:35 +08:00
Molly Sophia
08407f5703 RK3588/PWMLib: Fix Duty/Period cycle setting
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-08-12 12:06:35 +08:00
Molly Sophia
ae3932ee0b RK3588/GpioLib: Fix an mistake in IOMUX addr calculation
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-08-12 10:56:16 +08:00
Molly Sophia
444ac8109b misc/rk3588_spi_nor_gpt: Fix GPT table
Make the last_lba value in GPT header smaller at 16M, so that after
flashing into mmc/sd devices, fdisk doesn't get confused.

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-08-11 13:09:59 +08:00
Mario Bălănică
d999a44a38 Expose USB EHCI + OHCI controllers in ACPI
- EHCI is exposed conditionally (via a user setting) and disabled by default due to Windows compatibility issues.
- OHCI is exposed at all times. Windows on Arm does not have a driver for it.
2023-08-05 23:37:47 +03:00
Mario Bălănică
e76211191e Fix platform DSC macros used in byte array PCDs
Forgot to enclose them in $( ).

Also, decimal values used to work fine until I switched to macros, then they suddenly started to read back as zero.
2023-08-05 06:06:38 +03:00
Mario Bălănică
7d3a9ec3b5 Platforms: Configure runtime support for I2C buses 2023-08-05 04:32:24 +03:00
Mario Bălănică
9ec1e446c5 Silicon/Rockchip: I2cDxe: Add runtime support 2023-08-05 04:24:50 +03:00
Mario Bălănică
4b862edfc2 Platform/R58X: Disable HS400 for eMMC
Work around issue #54
2023-08-03 21:49:49 +03:00
Mario Bălănică
6f41ec8eb7 Silicon/Rockchip: Add HS400 disable flag for SDHCI 2023-08-03 21:47:35 +03:00
Mario Bălănică
4584499270 Silicon/Rockchip: Add 0xd6 (Foresee) eMMC MID to boot description list 2023-08-03 05:39:51 +03:00
Mario Bălănică
4ac45a4a74 Silicon/Rockchip: Add 0x9B (YMTC) eMMC MID to boot description list 2023-08-03 05:27:45 +03:00
Mario Bălănică
51f33c10b7 Platforms: Enable HYM8563 RTC support
Enabled on all platforms, except for:
 - Radxa ROCK 5A: I2C location unknown yet
 - Mixtile Blade 3: no RTC present

Not tested on Hinlink and FriendlyElec devices.
2023-08-03 03:04:49 +03:00
Mario Bălănică
9ec4c35553 Move some I2C PCD definitions to platform DSC and delete unused ones
Even though regulator setup is the same on all platforms, other I2C devices are placed on different busses.
2023-08-03 02:33:53 +03:00
Mario Bălănică
1ca239fba8 Silicon/Rockchip: Add 8563-based RTC support
Uses Pcf8563RealTimeClockLib, which is compatible with the HYM8563 chip used on many Rockchip platforms.
2023-08-02 05:11:27 +03:00
Mario Bălănică
a5fdc7c793 Silicon/Rockchip: I2cDxe: Implement SetBusFrequency stub 2023-08-02 05:11:27 +03:00
Mario Bălănică
4b015d357b Silicon/Rockchip: I2cDxe: Don't initialize a bus more than once 2023-08-02 05:11:26 +03:00
Mario Bălănică
c0bd3af135 Silicon/Rockchip: Introduce RockchipI2cMasterProtocol
We need a way to get the platform I2C bus number associated with the master protocol, so drivers that consume it directly (like RTC) can be provided with the appropriate controller handle.

RTC drivers don't follow the higher-level I2C I/O model as it doesn't support runtime use.
2023-08-02 05:11:26 +03:00
Mario Bălănică
30423e8d6f Silicon/RK3588: Fix I2C_BASE macro 2023-08-02 05:11:26 +03:00
Molly Sophia
9439ee8f03 Platform/NanoPi-R6C: Fix compilation
Gmac.asl doesn't build, so comment it out for now

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-08-02 10:09:10 +08:00
root
f9c0f21beb Add FriendlyElec NanoPi-R6C platform 2023-08-02 09:46:36 +08:00
Mario Bălănică
e34219f362 Platform/R58-Mini: Enable PCIe for WLAN
Recent changes have fixed PCIe on all Mekotronics boards.
2023-07-28 04:36:30 +03:00
amazingfate
52315a7bf5 add usb hub reset gpio for h88k 2023-07-26 18:58:05 +03:00
Mario Bălănică
98aec4c33c Clean-up some of the unused code
Rockchip EVB platforms and RK356x silicon bits have also been deleted.

1) EVB platform was outdated, unbuildable and I don't have the hardware to test. Feel free to add it back if you do :-)

2) RK356x support was almost non-existent outside of some basic HAL SDK ported code.
There's no interest to support it in this repo either - unless, of course, it's done properly with code reusability in mind (but then might as well aim for upstream).
2023-07-26 02:49:26 +03:00
amazingfate
8358d31f3a fix shell syntax 2023-07-25 20:27:27 +03:00
amazingfate
4ea9e4041d Add Hinlink H88K platform 2023-07-25 20:27:05 +03:00
Mario Bălănică
6eeff5000d Platform/ROCK5A: Enable vcc_5v0
USB 2.0 ports were not working.

Fixes #35
2023-07-24 18:28:54 +03:00
Mario Bălănică
784d85ffd5 Silicon/RK3588: Support PCIe switches in UEFI 2023-07-23 23:36:30 +03:00
Mario Bălănică
c812b12708 Add Mixtile Blade 3 platform
- The two RTL8125s don't work as they're behind a PCIe switch, we don't support this yet.

 - With a 5V supply the board is not able to properly feed the 5V and 3.3V lines, resulting in USB devices not working at all and NVME crashing under load.

Since we currently lack PD negotiation, higher fixed voltage must be supplied to either the USB-C PD port or U.2 slot.

It is also possible to load vendor U-Boot, let it do the negotiation then reboot into UEFI from another media. Voltage will persist across reboots and even power cycles as long as the supply is not disconnected.
2023-07-16 04:44:17 +03:00
Mario Bălănică
c206fdfe0e Silicon/RK3588: Route PCIe 2 l0 & l1 to the correct Combo PHYs 2023-07-16 04:09:53 +03:00
Mario Bălănică
f85454f8b7 Mark mkimages as executable 2023-07-15 18:55:29 +03:00
Mario Bălănică
c2652a54bf Add arm64 mkimage
Built from cc781e0266

Fixes issue #34
2023-07-15 18:38:05 +03:00
Mario Bălănică
30fcba8889 Silicon/Rockchip: Add 0x45 (SanDisk) eMMC MID to boot description list 2023-07-13 02:44:55 +03:00
Mario Bălănică
6853c6ceaa Silicon/Rockchip: Add proper boot descriptions for SD/eMMC 2023-07-09 16:12:18 +03:00
Mario Bălănică
68841b48bf Silicon/Synopsys: DwMmcHcDxe: Discard CRC field for CID too 2023-07-09 03:38:57 +03:00
Mario Bălănică
175d90f9d4 Silicon/Rockchip: Rename gOhciDeviceProtocol to gOhciDeviceProtocolGuid 2023-07-07 22:00:07 +03:00
Mario Bălănică
37d0c718ff Silicon/Rockchip: Connect OHCI and SD/eMMC boot device before console
This fixes:
 - USB 1.1 devices (keyboard) not working until the BDS timeout
 - NVRAM vars on SD/eMMC not being dumped in time when the boot process isn't interrupted
2023-07-07 21:52:54 +03:00
Mario Bălănică
01d7159814 Silicon/Rockchip: DwcSdhciDxe: Fix PHY DLL configuration
HS400 appears to work reliably now.
2023-07-07 05:01:55 +03:00
Mario Bălănică
825f4f68f0 Silicon/Rockchip: RkFvbDxe: Fix boot disk detection
Broken by recent SD/eMMC changes.
2023-07-07 00:25:26 +03:00
Mario Bălănică
dd7867fd10 Silicon/Rockchip: RkSdmmcDxe: Allow software card detection 2023-07-06 18:48:24 +03:00
Mario Bălănică
f7f26addb4 Rename SD platform libs and PCDs 2023-07-06 18:33:33 +03:00
Mario Bălănică
e895cbbb33 Silicon/Rockchip: Delete DwEmmcDxe
We've switched to DwMmcHcDxe which provides better PIO performance, with the potential for DMA and higher speed modes in the future.

WinPE can also be loaded from SD card now.
2023-07-06 18:08:09 +03:00
Mario Bălănică
077100b9e0 Silicon/Synopsys: DwMmcHcDxe: Support SD version 1 cards
Tested with a 256 MB Nokia card.
2023-07-06 17:50:50 +03:00
Mario Bălănică
2773d70772 Silicon/Synopsys: DwMmcHcDxe: Wait for auto CMD12 and data transfer over
The driver is now able to properly identify cards and write data to them.
Tested with ADATA 8 GB Class 4 and SanDisk Extreme 32 GB.

Performance is quite a bit better compared to DwEmmcDxe, at the same bus speed.
2023-07-06 17:50:50 +03:00
Mario Bălănică
6f0aad4630 Silicon/Synopsys: DwMmcHcDxe: Add error & timeout handling to TransferFifo()
The driver would hang in an infinite loop trying to transfer data when it was no longer possible.
For instance, quickly plugging and unplugging a card could easily trigger this.
2023-07-06 17:50:49 +03:00
Mario Bălănică
287f386df5 Silicon/Synopsys: DwMmcHcDxe: Reset FIFO before doing block transfers 2023-07-06 17:50:49 +03:00
Mario Bălănică
abf1dc7dce Silicon/Synopsys: DwMmcHcDxe: Handle command errors 2023-07-06 17:50:49 +03:00
Mario Bălănică
dc1d8ba8de Silicon/Synopsys: DwMmcHcDxe: Fix card detection 2023-07-06 17:50:48 +03:00
Mario Bălănică
2fb26b6ccf Silicon/Rockchip: Add DwMmcHcDxe-based SD driver
Only tested with a Class 4 card in HS mode (for now).

Missing clock rate and phase configuration.
2023-07-06 17:50:48 +03:00
Mario Bălănică
f567489c71 Silicon/Synopsys: Add gDwMmcHcNonDiscoverableDeviceGuid 2023-07-06 17:50:48 +03:00
Mario Bălănică
1ae483c7b3 Silicon/Synopsys: Move DwMmcHcDxe.dec to root of DesignWare 2023-07-06 17:50:47 +03:00
Mario Bălănică
26c3c2124e Silicon/Synopsys: Import DwMmcHcDxe
7919500800

This is an alternative to DwEmmcDxe for the custom MSHC controller. It follows the new driver model and appears to support SDR104.

I found it randomly in the edk2 devel mailing list, submitted to EmbeddedPkg. It didn't get merged due to some minor cosmetic issues.
2023-07-06 17:50:47 +03:00
initdc
4815cc03c0 Add NanoPi R6S platform 2023-06-30 22:21:41 +03:00
Molly Sophia
331fbdd582 build.sh: Don't build SimpleInit when not enabled[skip ci]
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-27 12:50:06 +08:00
Molly Sophia
f32687b128 build.sh: Fix build when SimpleInit disabled while present[skip ci]
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-27 12:41:13 +08:00
Mario Bălănică
c6ab6ecf00 Silicon/Rockchip: Switch to upstream MmcDxe
The downstream version was only needed by SdhciHostDxe to set HS400ES.
2023-06-27 04:31:51 +03:00
Mario Bălănică
3d3f905b74 Delete old SdhciHostDxe code 2023-06-27 04:09:48 +03:00
Mario Bălănică
0d5f7fe014 Silicon/Rockchip: Add SdMmcPciHcDxe-based eMMC driver
This replaces the old SdhciHostDxe driver which is quite limited and has some issues around the DMA code.

It supports all speed modes with the exception of HS400ES (requires a few changes in SdMmcPciHcDxe).

Derived from Quartz64-UEFI's EmmcDxe.
2023-06-27 03:58:52 +03:00
Mario Bălănică
a4b551c603 workflows: Add nightly builds
CI build time has doubled due to GitHub Actions being limited to 20 parallel workflow runs, so only build the firmware for Release on a "nightly" schedule in order to halve the number of runs.

Also ignore markdown documentation changes and allow manual dispatch.
2023-06-25 01:15:06 +03:00
Mario Bălănică
7083c37b9c Add own mkimage back
Would be better to build it from source or even port to a Python script.
2023-06-24 01:52:43 +03:00
Mario Bălănică
85aee99911 Add rockchip-linux/rkbin submodule 2023-06-24 01:40:53 +03:00
Mario Bălănică
bc747e314f Delete rkbin blobs from repo 2023-06-24 01:32:26 +03:00
Mario Bălănică
1ea0d782a5 Platforms: Include PCIe & SATA SSDTs, disable IORT 2023-06-24 01:12:52 +03:00
Mario Bălănică
9c10dafb37 Silicon/RK3588: Expose PCIe & SATA in ACPI depending on configuration
This implementation based on RPi's ConfigDxe is good enough for now.
Might come back to it later and rework using dynamic tables with generators, so that PCIe resources, MCFG, MADT and IORT can be entirely populated by code.
2023-06-24 01:12:51 +03:00
Danct12
d3debe48a0 rkbin: Upgrade blobs
- Upgrade BL31 to v1.38
- Upgrade BL32 to v1.13
- Upgrade DDR blob to v1.11
- Upgrade SPL to v1.12

Changelog for these blobs can be found here:
https://gitlab.com/rk3588_linux/rk/rkbin/-/blob/78cbbc/doc/release/RK3588_EN.md
2023-06-23 18:25:47 +03:00
Mario Bălănică
1a1923e338 Silicon/RK3588: Fix PCIe addresses & add initial ACPI support
The configuration is almost identical to that of Quartz64-UEFI.
We hide the root port and expose only bus 1 to the OS due to non-compliant ECAM (therefore switches won't work).

ACPI support has been validated in Ubuntu Server 22.04.2 with NVME boot on PCIe 3x4 and onboard RTL8125B NIC on PCIe 2x1.

Windows is able to enumerate devices and even initialize the NVME drive, but unfortunately it keeps timing out.

Not yet enabled in platforms because we must expose only the controllers that are enabled/initialized.
2023-06-22 23:27:15 +03:00
Mario Bălănică
68f803dcfd Platforms: Configure and enable PCIe support
It's been tested to work on all platforms, with the exception of Mekotronics boards:
PCIE20L0 on R58-Mini hangs at "PCIe: Enabling DBI access" and on R58X it doesn't detect the Wi-Fi chip.

This is likely happening due to incorrect pin muxing, since GMAC routing was causing similar issues on other boards.
Will be addressed in a future patch.
2023-06-16 05:06:10 +03:00
Mario Bălănică
748e19d6de Silicon/RK3588: Update HII Combo PHY help descriptions
PHYs wired to permanent devices are not selectable, so the user won't see the description anyway.
2023-06-15 04:06:36 +03:00
Mario Bălănică
9f8e241524 Silicon/Rockchip: Enable networking and add Realtek UNDI drivers
Tested to work fine with the onboard RTL8125B PCIe NIC on ROCK 5B.
2023-06-15 03:39:55 +03:00
Mario Bălănică
5a9bb82754 Silicon/RK3588: Move PciHostBridgeInit Combo PHY config to RK3588Dxe 2023-06-15 03:03:23 +03:00
Mario Bălănică
91682461df Silicon/RK3588: Make PCIe 3.0 user-configurable 2023-06-15 01:53:03 +03:00
Mario Bălănică
0a8451ee09 Silicon/Rockchip: Delete old PCIe code and clean up dsc/fdf
The new implementation is currently RK3588-specific, so move its component descriptions to the according dsc/fdf.
2023-06-15 00:13:12 +03:00
Molly Sophia
74e0eb9e5e Silicon/RK3588: Add multiple PCIe2 support
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-14 23:12:27 +03:00
Mario Bălănică
9480cf365b Add OPi 5 Plus to README.md 2023-06-14 01:49:21 +03:00
Mario Bălănică
f32e9633fa Add Orange Pi 5 Plus platform
Variable changes on SPI NOR don't persist yet for some reason.
2023-06-14 01:36:55 +03:00
Mario Bălănică
40db0be757 Silicon/Rockchip: Add PlatformBootDescriptionLib
This filters the boot descriptions in UefiBootManagerLib and returns proper ones for the SD & eMMC Block I/O devices.

Additionally, it appends "(Not Connected)" to devices without a media present and "[Firmware]" to the boot device that holds the UEFI image.
2023-06-13 05:03:30 +03:00
Mario Bălănică
69054eaa09 Silicon/Rockchip: Implement proper card detection for DwEmmcDxe
Make use of the SDMMC_DET pin if available, otherwise fall back to RPi-style software detection.

This allows MmcDxe to handle hot-plugging and fixes timeouts without a card present.
2023-06-13 04:41:40 +03:00
Mario Bălănică
0b70ec8d83 Silicon/RK3588: Add GpioPinReadActual function to GpioLib
This reads the actual state of the pin, while GpioPinRead returns the target value.
2023-06-13 04:25:13 +03:00
Mario Bălănică
4cc20e30a1 Silicon/Rockchip: Move DwEmmcDxe platform-specific code into a lib 2023-06-13 04:19:43 +03:00
Mario Bălănică
8971c2feb4 workflows/build: Shallow submodule checkout
This shaves over 1 minute on average off the checkout step.
2023-06-11 16:38:42 +03:00
Molly Sophia
e0f6bc60df GpioLib: Implement pinconf functions
Bugs may exist

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-11 13:09:33 +08:00
Molly Sophia
5aed3e41b7 edk2-platforms: Add as a submodule
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-11 12:38:03 +08:00
Molly Sophia
b917dcce9b Remove old edk2-platforms folder
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-11 12:33:52 +08:00
Molly Sophia
85a4f36ba4 edk2-rockchip: Split out from edk2-platforms
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-11 12:33:22 +08:00
Molly Sophia
7e438114d3 edk2-non-osi: Add as a submodule
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-11 12:13:33 +08:00
Molly Sophia
197333ea2b Remove old edk2-non-osi folder
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-11 12:09:44 +08:00
Molly Sophia
1e334b95fe Silicon/Rockchip: Fix compilation after edk2 rebase
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-11 11:44:02 +08:00
Molly Sophia
c4e15c7a34 edk2: Rebase to edk2-stable202302
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-11 11:44:02 +08:00
Molly Sophia
506658f6a7 Remove old edk2 folder.
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-11 11:44:02 +08:00
Mario Bălănică
a2be49950b Silicon/Rockchip: Add processor name PCD
Some (early?) RK3588S silicon does not have the CPU version set in OTP, meaning that it will identify as a full RK3588.
2023-06-11 05:17:06 +03:00
Mario Bălănică
8068666b43 Silicon/Rockchip: More dsc/fdf/dec cleanup
Remove more leftovers from HiSilicon and DwEmmcDxe package.
2023-06-11 04:49:15 +03:00
Mario Bălănică
cc60274c17 Silicon/Rockchip: Disable reset to maskrom app
It does not work and I'm not sure it can be reliably made to.
2023-06-11 03:38:09 +03:00
Mario Bălănică
d1f0312307 Silicon/Rockchip: RK3588Dxe: Remove unused variables 2023-06-10 19:45:20 +03:00
Mario Bălănică
97078c4496 Silicon/Rockchip: RK3588Dxe: Clean up
Remove hardcoded boot options, unused headers and libraries leftover from HiKeyDxe.
2023-06-10 19:37:19 +03:00
Mario Bălănică
d7c18353f1 Silicon/Rockchip: Place variable arch drivers after RkFvbDxe
RkFvbDxe must load before VariableRuntimeDxe so it can take care of a potentially corrupted / missing FV header.

DSC change is purely cosmetic.
2023-06-10 17:59:33 +03:00
Mario Bălănică
610b43eb07 Silicon/Rockchip/RK3588: Re-enable RK860X regulator support 2023-06-10 15:57:37 +03:00
Mario Bălănică
2c58062352 Refactor platform and flash descriptions 2023-06-10 15:37:23 +03:00
Molly Sophia
3d435e40de ROCK-5A: Dsdt: Expose sata0
It was done earlier in fc5ee180d8, which was accidentally reverted in my commits

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-01 17:05:22 +08:00
Molly Sophia
6e6e0d137d NanoPC-T6: Configure ComboPhys correctly
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-01 16:49:03 +08:00
Molly Sophia
ec44410a65 ROCK-5A: Dsdt: Enable eMMC
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-01 11:49:01 +08:00
Molly Sophia
b9775add6b RkFvbDxe: Fix Fvb erase when Fvb Header is invalid
After writing UEFI image into eMMC for the first time, the FvbHeader is
invalid and the WRITE_STATUS attribute is unset, which prevents the Fvb
from being erased thus causing Exception.

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-06-01 11:00:43 +08:00
36462 changed files with 46548 additions and 5533349 deletions

View File

@@ -1,12 +1,21 @@
name: Build
on:
push:
paths-ignore:
- '**.md'
branches:
- master
pull_request:
paths-ignore:
- '**.md'
branches:
- master
workflow_call:
inputs:
build-configs:
type: string
required: true
workflow_dispatch:
jobs:
build:
@@ -15,24 +24,27 @@ jobs:
matrix:
PLATFORM:
- rock-5b
- rock-5a
- orangepi-5
- orangepi-5plus
- indiedroid-nova
- roc-rk3588s-pc
- station-m3
- r58x
- r58-mini
- edge2
- nanopi-r6c
- nanopi-r6s
- nanopc-t6
- rock-5a
# - rk3588-evb is currently failing
CONFIGURATION: [Debug, Release]
- blade3
- h88k
CONFIGURATION: ${{ fromJSON(format('[{0}]', inputs.build-configs || '"Debug"')) }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Submodule init
shell: bash
run: git submodule update --init --recursive
with:
submodules: recursive
- name: Install dependencies
shell: bash
run: |
@@ -48,18 +60,18 @@ jobs:
libc6-dev-arm64-cross \
python3 \
python3-pyelftools
- name: Get version tag
id: get_version_tag
shell: bash
run: echo "version=$(git describe --tags --always)" >> $GITHUB_OUTPUT
- name: Build platform
shell: bash
run: |
run: |
./build.sh --device ${{matrix.PLATFORM}} --release ${{matrix.CONFIGURATION}}
mv RK3588_NOR_FLASH.img ${{matrix.PLATFORM}}_UEFI_${{matrix.CONFIGURATION}}_${{steps.get_version_tag.outputs.version}}.img
- name: Upload artifact
uses: actions/upload-artifact@v3
with:

41
.github/workflows/nightly.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: Nightly
run-name: Nightly build
on:
schedule:
- cron: "0 0 * * *"
jobs:
prepare:
runs-on: ubuntu-latest
permissions:
actions: write
steps:
- name: Delete previous cancelled runs
uses: Mattraks/delete-workflow-runs@v2
with:
retain_days: 0
keep_minimum_runs: 0
delete_workflow_pattern: ${{ github.workflow }}
delete_run_by_conclusion_pattern: cancelled
- name: Check for new commits
id: check-new-commits
uses: adriangl/check-new-commits-action@v1
with:
seconds: 86400 # One day in seconds
branch: 'master'
- name: Cancel action if no new commits
if: ${{ steps.check-new-commits.outputs.has-new-commits != 'true' }}
uses: andymckay/cancel-action@0.3
- name: Wait for cancellation
if: ${{ steps.check-new-commits.outputs.has-new-commits != 'true' }}
shell: bash
run: while true; do echo "Waiting for job to be cancelled"; sleep 5; done
build_for_nightly:
needs: prepare
uses: ./.github/workflows/build.yml
with:
build-configs: '"Debug", "Release"'

View File

@@ -1,13 +1,15 @@
name: Release
on:
on:
push:
tags:
- '*'
jobs:
build_for_release:
uses: ./.github/workflows/build.yml
with:
build-configs: '"Debug", "Release"'
release:
runs-on: ubuntu-latest
needs: build_for_release
@@ -16,7 +18,7 @@ jobs:
steps:
- name: Download all workflow run artifacts
uses: actions/download-artifact@v3
- name: Create release
uses: softprops/action-gh-release@v1
with:

16
.gitmodules vendored
View File

@@ -1,4 +1,12 @@
[submodule "simple-init"]
path = simple-init
url = https://github.com/BigfootACA/simple-init.git
branch = master
[submodule "edk2"]
path = edk2
url = https://github.com/tianocore/edk2.git
[submodule "edk2-non-osi"]
path = edk2-non-osi
url = https://github.com/tianocore/edk2-non-osi.git
[submodule "edk2-platforms"]
path = edk2-platforms
url = https://github.com/tianocore/edk2-platforms.git
[submodule "misc/rkbin"]
path = misc/rkbin
url = https://github.com/rockchip-linux/rkbin.git

323
README.md
View File

@@ -5,51 +5,246 @@ This repository contains an UEFI firmware implementation based on EDK2 for vario
- [Radxa ROCK 5B](https://wiki.radxa.com/Rock5/hardware/5b)
- [Radxa ROCK 5A](https://wiki.radxa.com/Rock5/hardware/5a)
- [Orange Pi 5](http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5.html)
- [Orange Pi 5 Plus](http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-plus.html)
- [ameriDroid Indiedroid Nova](https://indiedroid.us)
- [Firefly ROC-RK3588S-PC](https://en.t-firefly.com/product/industry/rocrk3588spc)
- [StationPC Station M3](https://www.stationpc.com/product/stationm3)
- [Mekotronics R58X](https://www.mekotronics.com/h-pd-75.html)
- [Mekotronics R58 Mini](https://www.mekotronics.com/h-pd-76.html)
- [Khadas Edge2](https://www.khadas.com/edge2)
- [Mixtile Blade 3](https://www.mixtile.com/blade-3)
- [FriendlyELEC NanoPC T6](https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6)
- [FriendlyELEC NanoPi R6C](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R6C)
- [FriendlyELEC NanoPi R6S](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R6S)
- [Hinlink H88K](http://www.hinlink.com)
## Supported peripherals
Applicable to all platforms unless otherwise noted.
| Device | Status | Notes |
| --- | --- | --- |
| USB 3 / 2.0 / 1.1 | 🟢 Working | Host-mode only |
| PCIe 3.0 (RK3588) | 🟡 Partial | |
| PCIe 2.1 | 🔴 Not working | |
| USB 3 / 2.0 / 1.1 | 🟢 Working | Host-mode only, USB 3 devices connected to a Type-C port only work in one orientation. |
| PCIe 3.0 (RK3588) | 🟢 Working | No bifurcation support |
| PCIe 2.1 | 🟢 Working | |
| SATA | 🟢 Working | |
| SD/eMMC | 🟢 Working | |
| HDMI output | 🟢 Working | Single display with mode limited at 1080p 60 Hz |
| USB-C DP output | 🔴 Not working | |
| eDP output | 🔴 Not working | |
| DSI | 🔴 Not working | |
| GMAC Ethernet | 🔴 Not working | |
| UART | 🟢 Working | |
| GPIO | 🟡 Partial | No pin function support |
| HDMI output | 🟡 Partial | Single display with mode limited at 1080p 60 Hz |
| DisplayPort output (USB-C) | 🟡 Partial | Mode fixed at 1080p 60 Hz, only works in one orientation of the Type-C port. |
| eDP output | 🟡 Partial | Disabled, requires manual configuration depending on the platform and panel. |
| DSI output | 🔴 Not working | |
| GMAC Ethernet | 🔴 Not working | Only brought-up for OS usage |
| Realtek PCIe Ethernet | 🟢 Working | Some platforms don't have MAC addresses set, networking may not work in that case. |
| UART | 🟢 Working | UART2 console available at 1500000 baud rate |
| GPIO | 🟡 Partial | Only read, write and alt function supported |
| I2C | 🟢 Working | |
| SPI | 🟢 Working | |
| SARADC | 🔴 Not working | |
| PWM | ⚪ Untested | |
| PWM | 🟢 Working | |
| SPI NOR Flash | 🟢 Working | |
| HYM8563 real-time clock | 🟢 Working | |
| Cooling fan | 🟢 Working | Supported on most platforms. Fan connector where present, otherwise available at the GPIO header for 3-pin PWM fans (do *not* connect 2-pin fans there!):<br>* Orange Pi 5: `GPIO4_B2`<br>* Indiedroid Nova: `GPIO4_B4` |
| Status LED | 🟢 Working | |
| Voltage regulators (RK806, RK860) | 🟢 Working | |
| FUSB302 USB-C PD negotiation | 🔴 Not working | Only present on a few boards (ROCK 5B, Edge2) |
| FUSB302 USB Type-C Controller | 🔴 Not working | Required for PD negotiation and connector orientation switching |
## Supported OSes
## Supported OSes (with ACPI)
| OS | Version | Tested/supported hardware | Notes |
| --- | --- | --- | --- |
| Windows | 10 (1904x), 11 | [Status](https://github.com/worproject/Rockchip-Windows-Drivers#hardware-support-status) ||
| NetBSD | 10 | HDMI GOP, USB, SATA, UART ||
| VMware ESXi Arm Fling | 1.12 | HDMI GOP, USB |Need to hide PCIe 3 in ACPI|
| NetBSD | 10 | Display, UART, USB, PCIe (incl. NVME), SATA, eMMC, GMAC Ethernet ||
| VMware ESXi Arm Fling | >= 1.12 | Display, USB | * PCIe devices will hang at boot, need to disable in settings or leave the ports empty.<br>* GMAC Ethernet gets detected but does not work. |
| Linux | tested Ubuntu 22.04, kernel 5.15.0-75-generic | Display, UART, USB, PCIe (incl. NVME & Ethernet), SATA | For full hardware functionality, use a kernel with RK3588 support and platform Device Tree supplied by Grub. |
## Installation & usage
Check out the latest release at: <https://github.com/edk2-porting/edk2-rk35xx/releases>, including install instructions.
#### Additional limitations when using ACPI
* Devices behind PCIe switches do not work (e.g. the two NICs on Mixtile Blade 3).
* GMAC is limited to Gigabit speed (i.e. no 10/100).
## Getting started
### 1. Requirements
* One of the [supported devices](#supported-platforms).
* Either SPI NOR flash (included with some devices), SD card or eMMC to store the firmware on.
* Quality power supply that can provide at least 15 W. Depending on the peripherals you use, more may be needed.
Note: on Mixtile Blade 3, a fixed voltage *higher than* 5V must be supplied. The board cannot power any external peripherals if the input voltage is just 5V. USB-PD negotiation is not supported by firmware.
* HDMI or DisplayPort (USB-C) screen capable of at least 1080p 60Hz.
* Optionally, if display is not available or for debugging purposes, an UART adapter capable of 1500000 baud rate (e.g. USB CH340, CP2104).
### 2. Download the firmware image
The latest version can be obtained from <https://github.com/edk2-porting/edk2-rk3588/releases>.
If your platform is not yet supported, using an image meant for another device is **not** recommended. Although they are generally similar, voltage setup can happen to be different and you may risk damaging the board. External peripherals are unlikely to work either.
### 3. Flash the firmware
UEFI can be flashed to either a SPI NOR flash, SD card or eMMC module:
* For removable SD or eMMC (easiest), you can simply use balenaEtcher, RPi Imager or dd.
* For SPI NOR or soldered eMMC, instructions can be found at: <https://wiki.radxa.com/Rock5/install/spi>.
In short, you can flash the image from Linux booted on the device or by using RKDevTool on another computer. The latter requires entering Maskrom mode on the device. The way to do this slightly varies across platforms, refer to your vendor documentation.
**Warning:** these operations will erase data on the storage device. Make a backup first!
If you wish to have both UEFI and an OS on the same SD or eMMC device: flash UEFI first, then create any additional partitions without touching the first, reserved one. Steps for updating the firmware in this case can be found [here](#updating-the-firmware).
Note: Using SPI NOR (if present) is recommeded, as it leaves the other storage options free for other purposes. Additionally, SD/eMMC will limit the firmware's ability to access its own storage (variable store) when an OS is running. This feature is mostly used by OS installers to create the boot menu options, it is not mandatory.
### 4. Connect peripherals and power on the device
If the flashing process has been done correctly, you should see the status LED blinking (if present), and shortly after, the platform's boot logo with a progress bar at the bottom on the connected display.
At this stage, you can press <kbd>Esc</kbd> to enter the firmware setup, <kbd>F1</kbd> to launch the UEFI Shell, or, provided you also have an UEFI bootloader/app on a storage device, you can let the system automatically run that, which is the default behavior if no action is taken.
Check the [Supported peripherals](#supported-peripherals) and [Supported OSes](#supported-oses-with-acpi) sections to see what's currently possible with this firmware.
If you experience any issues, please see the [Troubleshooting](#troubleshooting) section.
## Configuration settings
The UEFI configuration settings can be viewed and changed using both the UI configuration menu (under `Device Manager` -> `Rockchip Platform Configuration`), as well as the UEFI Shell. To configure using the UEFI Shell, use `setvar` command to read/write the UEFI variables with GUID = `10f41c33-a468-42cd-85ee-7043213f73a3`.
The UEFI provides a few configuration options, like CPU frequency, PCIe/SATA selection for an M.2 port, fan control, etc. These can be viewed and changed using both the UI configuration menu (under `Device Manager` -> `Rockchip Platform Configuration`), as well as the UEFI Shell.
Configuration through the user interface is fairly straightforward and help information is provided on the right side of the menu.
Configuration through the UEFI shell is more advanced and mostly useful for scripts. See [Setting configuration options via the shell](#setting-configuration-options-via-the-shell).
#### Tips
If you only wish to boot non-Windows OSes, go to the configuration menu -> `ACPI` and set `USB 2.0 Support` to `Enabled`, in order to get maximum speed from USB 2.0 ports.
Booting Windows with this option enabled will cause it to crash.
## Updating the firmware
If the storage is only used for UEFI and nothing else, simply download the latest image and flash it as described in the [Getting started](#getting-started) section.
If it is also used by an OS and has additional partitions, only part of the image needs to be applied. This can be done with the `dd` tool:
```bash
dd if=FIRMWARE.img of=DESTINATION bs=512 skip=64 seek=64 conv=notrunc
```
`FIRMWARE.img` is the firmware image for your platform. E.g. `edge2_UEFI_Release_v0.8.img`.
`DESTINATION` is the destination storage that you wish to update the firmware on. E.g. `/dev/sdb`.
Here we skip the GPT and copy the firmware starting at offset 0x8000 (`64` blocks * `512` bytes block size) until its end. See [Flash layout](#flash-layout) for more details.
## Troubleshooting
First of all, make sure your device can only possibly load the UEFI firmware and nothing else. U-Boot must not present on either SPI NOR, SD or eMMC, otherwise it could take precedence.
Below you can find some basic debugging information. If none of this helps, please see the [Advanced troubleshooting](#advanced-troubleshooting) section.
### Meaning of the Status LED
If your device has an activity LED, the firmware will blink it in different patterns to indicate the current system status.
1. Immediately after power on, the LED should start pulsing quickly. This indicates that the firmware is initializing.
2. After initialization (usually takes less than 5 seconds), the LED will switch to a short pulsing every 2 seconds or so. This indicates that the firmware is ready and waiting for user action or the countdown to boot automatically. The display output should also be enabled at this point.
3. When the firmware boots an OS and is about to exit, the LED will stop blinking.
If the LED:
* does not light up after power on, this means the firmware has not managed to load up at all.
* gets stuck in either on or off state after blinking a few times and never recovers, something went wrong and the firmware has crashed or frozen.
Note that it is only expected to stop as described at point 3) above.
### Common issues
#### Nothing shows up on the screen
Make sure you've flashed the firmware correctly and that it is the version designed for your device. In most cases this is the culprit.
The display must support a resolution of at least 1080p at 60 Hz.
If you're using HDMI and the system has two ports, only one will work. Try both.
If you're using USB-C to DisplayPort, only one orientation of the USB-C connector will work. Check both.
If you are not able to get any display output, the only way to interact with UEFI is via the [serial console](#advanced-troubleshooting).
#### USB 3 devices do not work
Try a different port.
If you're using USB-C, 3.0 devices will only work in one orientation of the connector. Check both.
This can also be a power issue.
#### Networking does not work
Only Realtek PCIe and USB controllers are supported. Native Gigabit provided by RK3588 isn't.
Some boards do not have a MAC address set at factory and will show-up as being all zeros in UEFI. There is no documented fix available yet. See [issue 42](https://github.com/edk2-porting/edk2-rk3588/issues/42) for more info.
### Advanced troubleshooting
The firmware will log detailed information to the serial console when using a debug version. See the [release notes](https://github.com/edk2-porting/edk2-rk3588/releases) for details on how to obtain this version.
1. The debug image needs to be flashed in place of the existing one.
2. Connect the **UART2** RX, TX and GND pins on your device (check vendor documentation) to the UART adapter on your other computer.
3. Open up a serial terminal (`PuTTY` on Windows, `stty` on Linux) set to 1500000 baud rate and 8n1 (default).
4. Power on the device.
You should be able to see a lot of debug messages being printed. If that's not the case, double check the connections (swap RX/TX), make sure the adapter is functional and configured correctly.
The logs should give an insight of what's going on. If you need help analyzing them, feel free to open an issue ticket.
## Reporting issues
You can open issues related to UEFI at <https://github.com/edk2-porting/edk2-rk3588/issues>.
Please include as many details as possible: expected behavior, what actually happens, steps to reproduce, [serial logs](#advanced-troubleshooting), etc.
Also check the existing issues in case yours might be already reported.
## Building
The firmware can only be built on Linux currently. For Windows use WSL.
1. Install required packages:
For Ubuntu/Debian:
```bash
sudo apt install git gcc g++ build-essential gcc-aarch64-linux-gnu iasl python3-pyelftools uuid-dev
```
For Arch Linux:
```bash
sudo pacman -Syu
sudo pacman -S git base-devel gcc dtc aarch64-linux-gnu-binutils aarch64-linux-gnu-gcc aarch64-linux-gnu-glibc python python-pyelftools iasl --needed
```
2. Clone the repository:
```bash
git clone https://github.com/edk2-porting/edk2-rk3588.git --recursive
cd edk2-rk3588
```
3. Build UEFI (ROCK 5B for example, check [list of platform configs](https://github.com/edk2-porting/edk2-rk3588/tree/master/configs)):
```bash
./build.sh --device rock-5b --release Release # (or Debug)
```
If you get build errors, it is very likely that you're still missing some dependencies. The list of packages above is not complete and depending on the distro you may need to install additional ones. In most cases, looking up the error messages on the internet will point you at the right packages.
## Notes
### Flash layout
| Address | Size | Desc | File |
| ---------- | ---------- | --------------------- | ---------------------- |
| 0x00000000 | 0x00004400 | GPT Table | rk3588_spi_nor_gpt.img |
| 0x00008000 | | IDBlock | idblock.bin |
| 0x00100000 | 0x00500000 | BL33_AP_UEFI FV | ${DEVICE}_EFI.itb |
| 0x007C0000 | 0x00010000 | NV_VARIABLE_STORE | |
| 0x007D0000 | 0x00010000 | NV_FTW_WORKING | |
| 0x007E0000 | 0x00010000 | NV_FTW_SPARE | |
The variable store is not included in the flash image, in order to prevent overwriting it and to maintain the user settings across updates.
The firmware expects these exact offsets, do not change them.
### Memory Map
| Address | Size | Desc | File |
| ---------- | --------- | --------------------- | ------------------- |
| 0x00040000 | | ATF | bl31_0x00040000.bin |
| 0x000f0000 | | ATF | bl31_0x000f0000.bin |
| 0x00200000 | 0x00500000 | UEFI FV | BL33_AP_UEFI.Fv |
| 0x007C0000 | 0x00010000 | NV_VARIABLE_STORE | |
| 0x007D0000 | 0x00010000 | NV_FTW_WORKING | |
| 0x007E0000 | 0x00010000 | NV_FTW_SPARE | |
| 0x08400000 | | OP-TEE | bl32.bin |
| 0xff100000 | | ATF (PMU_MEM) | bl31_0xff100000.bin |
### Setting configuration options via the shell
To configure using the UEFI Shell, use `setvar` command to read/write the UEFI variables with GUID = `10f41c33-a468-42cd-85ee-7043213f73a3`.
The syntax to read a setting is:
```
@@ -85,18 +280,40 @@ setvar <NAME> -guid 10f41c33-a468-42cd-85ee-7043213f73a3 -bs -rt -nv =L"<VALUE>"
* All clusters: `408000000`, `600000000`, `816000000`, `1008000000`, `1200000000`, `1416000000`, `1608000000`, `1800000000`
* Big cluster additional clocks: `2016000000`, `2208000000`, `2256000000`, `2304000000`, `2352000000`, `2400000000`
`CpuPerf_CPUxClusterVoltageCustom` is the cluster voltage in microvolts. Min: `500000`, Max: `1500000`.
`CpuPerf_CPUxClusterVoltageCustom` is the cluster voltage in microvolts. Min: `500000`, Max: `1500000`.
Default value depends on cluster type.
### PCIe/SATA/USB Combo PIPE PHY
| Variable | NAME | VALUE |
| ----------- |-----------------|----------------------------------- |
| Variable | NAME | VALUE |
| ----------- | --------------- | ---------------------------------- |
| PHY #0 Mode | `ComboPhy0Mode` | Unconnected = `0x00000000`<br> PCIe = `0x00000001`<br> SATA = `0x00000002` |
| PHY #1 Mode | `ComboPhy1Mode` | Unconnected = `0x00000000`<br> PCIe = `0x00000001`<br> SATA = `0x00000002` |
| PHY #2 Mode | `ComboPhy2Mode` | Unconnected = `0x00000000`<br> PCIe = `0x00000001`<br> SATA = `0x00000002`<br> USB3 = `0x00000003` |
Default values and supported options depend on the platform. Check documentation and schematics for more details on PHY wiring.
### USB/DP Combo PHY
| Variable | NAME | VALUE |
| ----------------------------- | -------------------- | --------------------------------- |
| PHY #0 USB 3 SuperSpeed State | `UsbDpPhy0Usb3State` | Enabled = `0x00000001`<br> Disabled = `0x00000000` |
| PHY #1 USB 3 SuperSpeed State | `UsbDpPhy1Usb3State` | Enabled = `0x00000001`<br> Disabled = `0x00000000` |
### PCI Express 3.0
| Variable | NAME | VALUE |
| ------------- | ------------- | --------------------------------- |
| Support State | `Pcie30State` | Enabled = `0x00000001`<br> Disabled = `0x00000000` |
### ACPI configuration
| Variable | NAME | VALUE |
| --------------- | --------------- | --------------------------------- |
| USB 2.0 Support | `AcpiUsb2State` | Enabled = `0x00000001`<br> Disabled = `0x00000000` |
### Cooling fan
| Variable | NAME | VALUE |
| --------------- | ----------------- | --------------------------------- |
| On-board Fan | `CoolingFanState` | Enabled = `0x00000001`<br> Disabled = `0x00000000` |
| Fan Speed (%) | `CoolingFanSpeed` | Hex numeric value, 4-bytes<br> Percentage: 0-100 |
**Examples:**
- To read the 'CPUL Clock Preset' setting :
```
@@ -108,60 +325,16 @@ setvar CpuPerf_CPULClusterClockPreset -guid 10f41c33-a468-42cd-85ee-7043213f73a3
setvar CpuPerf_CPULClusterClockPreset -guid 10f41c33-a468-42cd-85ee-7043213f73a3 -bs -rt -nv =0x00000002
```
## Building
The firmware can only be built on Linux currently. For Windows use WSL.
1. Install required packages:
For Ubuntu/Debian:
```bash
sudo apt install git gcc g++ build-essential gcc-aarch64-linux-gnu iasl python3-pyelftools
```
For Arch Linux:
```bash
sudo pacman -Syu
sudo pacman -S git base-devel gcc dtc aarch64-linux-gnu-binutils aarch64-linux-gnu-gcc aarch64-linux-gnu-glibc python python-pyelftools iasl --needed
```
2. Clone the repository:
```bash
git clone https://github.com/edk2-porting/edk2-rk35xx.git --recursive
cd edk2-rk35xx
```
3. Build UEFI (ROCK 5B for example, check [list of platform configs](https://github.com/edk2-porting/edk2-rk35xx/tree/master/configs)):
```bash
./build.sh --device rock-5b --release Release # (or Debug)
```
## Notes
### ACPI
ACPI support is limited, with only boot critical devices being currently exposed. It has been tested with Windows, NetBSD and VMware ESXi.
### Flash layout
| Address | Size | Desc | File |
| ---------- | ---------- | --------------------- | ---------------------- |
| 0x00000000 | 0x00004400 | GPT Table | rk3588_spi_nor_gpt.img |
| 0x00008000 | | IDBlock | idblock.bin |
| 0x00088000 | | IDBlock | idblock.bin |
| 0x00100000 | 0x00500000 | BL33_AP_UEFI FV | ${DEVICE}_EFI.itb |
### Memory Map
| Address | Size | Desc | File |
| ---------- | --------- | --------------------- | ------------------- |
| 0x00040000 | | ATF | bl31_0x00040000.bin |
| 0x000f0000 | | ATF | bl31_0x000f0000.bin |
| 0x00200000 | 0x00500000 | UEFI FV | BL33_AP_UEFI.Fv |
| 0x007C0000 | 0x00010000 | NV_VARIABLE_STORE | |
| 0x007D0000 | 0x00010000 | NV_FTW_WORKING | |
| 0x007E0000 | 0x00010000 | NV_FTW_SPARE | |
| 0x08400000 | | OP-TEE | bl32.bin |
| 0xff100000 | | ATF (PMU_MEM) | bl31_0xff100000.bin |
## Licenses
The UEFI code and produced FD binary are licensed under the current EDK2 license, which is [BSD-2-Clause-Patent](https://github.com/tianocore/edk2/blob/master/License.txt).
Most of the UEFI code is licensed under the default EDK2 license, which is [BSD-2-Clause-Patent](https://github.com/tianocore/edk2/blob/master/License.txt).
The license of the blobs in the `misc/rkbin/` directory is to be determined. Most of them are built from open-source projects such as U-Boot, Arm Trusted Firmware and OP-TEE.
Some non-critical components have been ported from Rockchip's U-Boot fork and are licensed as **GPL-2.0-or-later**:
* UsbDpPhy
* DwDpLib
The firmware will continue to work without them, minus the additional functionality they provide.
The license for some of the blobs in the `misc/rkbin/` directory can be found at: <https://github.com/rockchip-linux/rkbin/blob/master/LICENSE>. Note that it also contains binaries built from open-source projects such as U-Boot (SPL), Arm Trusted Firmware and OP-TEE, having a different license.
## Community
* Radxa forum: <https://forum.radxa.com/t/windows-uefi-on-rock-5-mega-thread/12924>
@@ -171,4 +344,4 @@ The license of the blobs in the `misc/rkbin/` directory is to be determined. Mos
## Credits & alternatives
This firmware is based on Rockchip's initial efforts at <https://gitlab.com/rk3588_linux/rk/uefi-monorepo>.
There's also minimal support for RK356X (likely broken in our repo with no plans of reviving), but there's a much better implementation made by @jaredmcneill at https://github.com/jaredmcneill/quartz64_uefi, from which we also reused some code.
For RK356x, check out the Quartz64-UEFI project at https://github.com/jaredmcneill/quartz64_uefi, from which we also reused some code.

View File

@@ -22,6 +22,15 @@ function _help(){
function _error(){ echo "${@}" >&2;exit 1; }
MACHINE_TYPE=`uname -m`
# Fix-up possible differences in reported arch
if [ ${MACHINE_TYPE} == 'arm64' ]; then
MACHINE_TYPE='aarch64'
elif [ ${MACHINE_TYPE} == 'amd64' ]; then
MACHINE_TYPE='x86_64'
fi
function _build_idblock(){
echo " => Building idblock.bin"
pushd ${WORKSPACE}
@@ -29,7 +38,7 @@ function _build_idblock(){
rm -f rk35*_spl_loader_*.bin idblock.bin rk35*_ddr_*.bin rk35*_usbplug*.bin UsbHead.bin ${FLASHFILES}
# Create idblock.bin
${ROOTDIR}/misc/rkbin/tools/mkimage -n rk3588 -T rksd -d ${ROOTDIR}/misc/rkbin/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.09.bin:${ROOTDIR}/misc/rkbin/bin/rk35/rk3588_spl_v1.11.bin idblock.bin
${ROOTDIR}/misc/tools/${MACHINE_TYPE}/mkimage -n rk3588 -T rksd -d ${ROOTDIR}/misc/rkbin/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.11.bin:${ROOTDIR}/misc/rkbin/bin/rk35/rk3588_spl_v1.12.bin idblock.bin
popd
echo " => idblock.bin build done"
}
@@ -46,7 +55,7 @@ function _build_fit(){
cp ${ROOTDIR}/misc/${SOC_L}_spl.dtb ${WORKSPACE}/${DEVICE}.dtb
cp ${WORKSPACE}/Build/${PLATFORM_NAME}/${_MODE}_${TOOLCHAIN}/FV/BL33_AP_UEFI.Fv ${WORKSPACE}/
cat ${ROOTDIR}/misc/uefi_${SOC_L}.its | sed "s,@DEVICE@,${DEVICE},g" > ${SOC_L}_${DEVICE}_EFI.its
${ROOTDIR}/misc/rkbin/tools/mkimage -f ${SOC_L}_${DEVICE}_EFI.its -E ${DEVICE}_EFI.itb
${ROOTDIR}/misc/tools/${MACHINE_TYPE}/mkimage -f ${SOC_L}_${DEVICE}_EFI.its -E ${DEVICE}_EFI.itb
popd
echo " => FIT build done"
@@ -61,9 +70,8 @@ function _pack(){
# might be GPT table? size:0x4400
dd if=${ROOTDIR}/misc/rk3588_spi_nor_gpt.img of=${WORKSPACE}/RK3588_NOR_FLASH.img
# idblock at 0x8000 and 0x88000
# idblock at 0x8000
dd if=${WORKSPACE}/idblock.bin of=${WORKSPACE}/RK3588_NOR_FLASH.img bs=1K seek=32
dd if=${WORKSPACE}/idblock.bin of=${WORKSPACE}/RK3588_NOR_FLASH.img bs=1K seek=544
# FIT Image at 0x100000
dd if=${WORKSPACE}/${DEVICE}_EFI.itb of=${WORKSPACE}/RK3588_NOR_FLASH.img bs=1K seek=1024
cp ${WORKSPACE}/RK3588_NOR_FLASH.img ${ROOTDIR}/
@@ -155,7 +163,7 @@ if "${DISTCLEAN}";then _distclean;exit "$?";fi
if "${CLEAN}";then _clean;exit "$?";fi
[ -z "${DEVICE}" ]&&_help 1
if ! [ -f Common/edk2/edksetup.sh ] && ! [ -f ../edk2/edksetup.sh ]
if ! [ -f edk2/edksetup.sh ] && ! [ -f ../edk2/edksetup.sh ]
then
set -e
echo "SKIP Updating submodules"
@@ -171,34 +179,37 @@ do
fi
done
[ -n "${_SIMPLE_INIT}" ]||[ ${BUILD_GUI} == false ]_error "SimpleInit not found, please see README.md"
[ -n "${_SIMPLE_INIT}" ]||[ ${BUILD_GUI} == false ]||error "SimpleInit not found, please see README.md"
[ -f "configs/${DEVICE}.conf" ]||[ "${DEVICE}" == "all" ]||_error "Device configuration not found"
export CROSS_COMPILE="${CROSS_COMPILE:-aarch64-linux-gnu-}"
export GCC5_AARCH64_PREFIX="${CROSS_COMPILE}"
export CLANG38_AARCH64_PREFIX="${CROSS_COMPILE}"
# export PACKAGES_PATH="$_EDK2:$_EDK2_PLATFORMS:$_SIMPLE_INIT:$PWD"
export PACKAGES_PATH="${ROOTDIR}/edk2:${ROOTDIR}/edk2-platforms:${ROOTDIR}/edk2-non-osi:${ROOTDIR}:${_SIMPLE_INIT}"
export PACKAGES_PATH="${ROOTDIR}/edk2:${ROOTDIR}/edk2-platforms:${ROOTDIR}/edk2-rockchip:${ROOTDIR}/edk2-non-osi:${ROOTDIR}:${_SIMPLE_INIT}"
export WORKSPACE="${OUTDIR}/workspace"
GITCOMMIT="$(git describe --tags --always)"||GITCOMMIT="unknown"
export GITCOMMIT
set -e
mkdir -p "${_SIMPLE_INIT}/build" "${_SIMPLE_INIT}/root/usr/share/locale"
for i in "${_SIMPLE_INIT}/po/"*.po
do
[ -f "${i}" ]||continue
_name="$(basename "$i" .po)"
_path="${_SIMPLE_INIT}/root/usr/share/locale/${_name}/LC_MESSAGES"
mkdir -p "${_path}"
msgfmt -o "${_path}/simple-init.mo" "${i}"
done
if "${GEN_ROOTFS}"
if "${BUILD_GUI}"
then
bash "${_SIMPLE_INIT}/scripts/gen-rootfs-source.sh" \
"${_SIMPLE_INIT}" \
"${_SIMPLE_INIT}/build"
mkdir -p "${_SIMPLE_INIT}/build" "${_SIMPLE_INIT}/root/usr/share/locale"
for i in "${_SIMPLE_INIT}/po/"*.po
do
[ -f "${i}" ]||continue
_name="$(basename "$i" .po)"
_path="${_SIMPLE_INIT}/root/usr/share/locale/${_name}/LC_MESSAGES"
mkdir -p "${_path}"
msgfmt -o "${_path}/simple-init.mo" "${i}"
done
if "${GEN_ROOTFS}"
then
bash "${_SIMPLE_INIT}/scripts/gen-rootfs-source.sh" \
"${_SIMPLE_INIT}" \
"${_SIMPLE_INIT}/build"
fi
fi
if [ "${DEVICE}" == "all" ]

3
configs/blade3.conf Normal file
View File

@@ -0,0 +1,3 @@
DSC_FILE=edk2-rockchip/Platform/Mixtile/Blade3/Blade3.dsc
PLATFORM_NAME=Blade3
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/Khadas/Edge2/Edge2.dsc
DSC_FILE=edk2-rockchip/Platform/Khadas/Edge2/Edge2.dsc
PLATFORM_NAME=Edge2
SOC=RK3588

3
configs/h88k.conf Normal file
View File

@@ -0,0 +1,3 @@
DSC_FILE=edk2-rockchip/Platform/Hinlink/H88K/H88K.dsc
PLATFORM_NAME=H88K
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/Ameridroid/IndiedroidNova/IndiedroidNova.dsc
DSC_FILE=edk2-rockchip/Platform/Ameridroid/IndiedroidNova/IndiedroidNova.dsc
PLATFORM_NAME=IndiedroidNova
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/FriendlyElec/NanoPC-T6/NanoPC-T6.dsc
DSC_FILE=edk2-rockchip/Platform/FriendlyElec/NanoPC-T6/NanoPC-T6.dsc
PLATFORM_NAME=NanoPC-T6
SOC=RK3588

3
configs/nanopi-r6c.conf Normal file
View File

@@ -0,0 +1,3 @@
DSC_FILE=edk2-rockchip/Platform/FriendlyElec/NanoPi-R6C/NanoPi-R6C.dsc
PLATFORM_NAME=NanoPi-R6C
SOC=RK3588

3
configs/nanopi-r6s.conf Normal file
View File

@@ -0,0 +1,3 @@
DSC_FILE=edk2-rockchip/Platform/FriendlyElec/NanoPi-R6S/NanoPi-R6S.dsc
PLATFORM_NAME=NanoPi-R6S
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/OrangePi/OrangePi5/OrangePi5.dsc
DSC_FILE=edk2-rockchip/Platform/OrangePi/OrangePi5/OrangePi5.dsc
PLATFORM_NAME=OrangePi5
SOC=RK3588

View File

@@ -0,0 +1,3 @@
DSC_FILE=edk2-rockchip/Platform/OrangePi/OrangePi5Plus/OrangePi5Plus.dsc
PLATFORM_NAME=OrangePi5Plus
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/Mekotronics/R58-Mini/R58-Mini.dsc
DSC_FILE=edk2-rockchip/Platform/Mekotronics/R58-Mini/R58-Mini.dsc
PLATFORM_NAME=R58-Mini
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/Mekotronics/R58X/R58X.dsc
DSC_FILE=edk2-rockchip/Platform/Mekotronics/R58X/R58X.dsc
PLATFORM_NAME=R58X
SOC=RK3588

View File

@@ -1,3 +0,0 @@
DSC_FILE=edk2-platforms/Platform/Rockchip/RK3588/RK3588.dsc
PLATFORM_NAME=RK3588
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/Firefly/ROC-RK3588S-PC/ROC-RK3588S-PC.dsc
DSC_FILE=edk2-rockchip/Platform/Firefly/ROC-RK3588S-PC/ROC-RK3588S-PC.dsc
PLATFORM_NAME=ROC-RK3588S-PC
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/Radxa/ROCK5A/ROCK5A.dsc
DSC_FILE=edk2-rockchip/Platform/Radxa/ROCK5A/ROCK5A.dsc
PLATFORM_NAME=ROCK5A
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/Radxa/ROCK5B/ROCK5B.dsc
DSC_FILE=edk2-rockchip/Platform/Radxa/ROCK5B/ROCK5B.dsc
PLATFORM_NAME=ROCK5B
SOC=RK3588

View File

@@ -1,3 +1,3 @@
DSC_FILE=edk2-platforms/Platform/StationPC/StationM3/StationM3.dsc
DSC_FILE=edk2-rockchip/Platform/StationPC/StationM3/StationM3.dsc
PLATFORM_NAME=StationM3
SOC=RK3588

1
edk2 Submodule

Submodule edk2 added at 819cfc6b42

1
edk2-non-osi Submodule

Submodule edk2-non-osi added at 8c09bd0955

View File

@@ -1,23 +0,0 @@
## @file
# Component description file for ASPEED Graphics Controller Driver.
#
# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2020, ASPEED Technology Inc. All rights reserved.<BR>
# Copyright (c) 2021, American Megatrends International LLC.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
[Defines]
INF_VERSION = 0x0001001B
BASE_NAME = ASpeedAst2500GopDxe
FILE_GUID = 7F81D838-F91D-4C44-8552-8FB912122FDD
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.1
[Binaries.AArch64]
PE32|AArch64/ASpeedAst2500Gop.efi|*
[Binaries.X64]
PE32|X64/ASpeedAst2500Gop.efi|*

View File

@@ -1,25 +0,0 @@
Copyright (c) 2020, ASPEED Technology Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

View File

@@ -1,24 +0,0 @@
#/** @file
#
# Copyright (c) 2020 Realtek Semiconductor Corp. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 1.27
BASE_NAME = RtkUsbUndiDxe
FILE_GUID = 2EB8953E-C191-4A5E-B2AC-705EFB14A613
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.0
[Binaries.AARCH64]
PE32|AArch64/RtkUsbUndiDxe.efi|*

View File

@@ -1,25 +0,0 @@
Copyright (c) 2020 Realtek Semiconductor Corp. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

View File

@@ -1,504 +0,0 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
(This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.)
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
{description}
Copyright (C) {year} {fullname}
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random
Hacker.
{signature of Ty Coon}, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -1,7 +0,0 @@
Binary build of the QEMU based x86 PE/COFF emulator for AARCH64
Repo: http://github.com/ardbiesheuvel/X86EmulatorPkg.git
Commit: 5f4deb30eb935f9004b93d97712cc3ac3ae1ca97
Repo: http://github.com/tiancore/edk2.git
Commit: 2e21e8c4b89656897797019a9c56bc5ccbf12df1

View File

@@ -1,21 +0,0 @@
#/** @file
#
# Copyright (c) 2017 - 2019, Linaro Limited. All rights reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
#**/
[Defines]
INF_VERSION = 1.27
BASE_NAME = X86EmulatorDxe
FILE_GUID = E6727A5E-CBCD-44C8-B37F-78BC3A0C16C8
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.0
[Binaries.common.AARCH64]
PE32|X86EmulatorDxe.efi|*
DXE_DEPEX|X86EmulatorDxe.depex|*

View File

@@ -1,88 +0,0 @@
EDK II Maintainers
==================
This file provides information about the primary maintainers for
EDK II.
In general, you should not privately email the maintainer. You should
email the edk2-devel list, but you can also Cc the maintainer.
Descriptions of section entries:
L: Mailing list that is relevant to this area (default is edk2-devel)
Patches and questions should be sent to the email list.
M: Cc address for patches and questions (ie, the package maintainer)
W: Web-page with status/info
T: SCM tree type and location. Type is one of: git, svn.
S: Status, one of the following:
Supported: Someone is actually paid to look after this.
Maintained: Someone actually looks after it.
Odd Fixes: It has a maintainer but they don't have time to do
much other than throw the odd patch in. See below.
Orphan: No current maintainer [but maybe you could take the
role as you write your new code].
Obsolete: Old code. Something tagged obsolete generally means
it has been replaced by a better system and you
should be using that.
EDK II
------
W: http://www.tianocore.org/edk2/
L: https://lists.sourceforge.net/lists/listinfo/edk2-devel
T: git - https://github.com/tianocore/edk2-non-osi.git
T: git - https://bitbucket.org/tianocore/edk2-non-osi.git
T: git - http://git.code.sf.net/p/tianocore/edk2-non-osi
T: svn - https://svn.code.sf.net/p/edk2/code/trunk/edk2-non-osi
Responsible Disclosure, Reporting Security Issues
-------------------------------------------------
W: https://github.com/tianocore/tianocore.github.io/wiki/Security
EDK II Packages:
----------------
Platform/Intel/KabylakeOpenBoardBinPkg
M: Chasel Chiu <chasel.chiu@intel.com>
M: Nate DeSimone <nathaniel.l.desimone@intel.com>
Platform/Intel/WhitleyOpenBoardBinPkg
M: Isaac Oram <isaac.w.oram@intel.com>
M: Nate DeSimone <nathaniel.l.desimone@intel.com>
M: Chasel Chiu <chasel.chiu@intel.com>
Platform/Intel/CoffeelakeSiliconBinPkg
M: Chasel Chiu <chasel.chiu@intel.com>
M: Sai Chaganty <rangasai.v.chaganty@intel.com>
Platform/Intel/CometlakeSiliconBinPkg
M: Kathappan Esakkithevar <kathappan.esakkithevar@intel.com>
M: Sai Chaganty <rangasai.v.chaganty@intel.com>
Silicon/Intel/ElkhartlakeSiliconBinPkg
M: Nate DeSimone <nathaniel.l.desimone@intel.com>
M: Sai Chaganty <rangasai.v.chaganty@intel.com>
M: Jin Jhu Lim <jin.jhu.lim@intel.com>
Silicon/Intel/KabylakeSiliconBinPkg
M: Chasel Chiu <chasel.chiu@intel.com>
M: Sai Chaganty <rangasai.v.chaganty@intel.com>
Silicon/Intel/PurleySiliconBinPkg
M: Nate DeSimone <nathaniel.l.desimone@intel.com>
M: Isaac W Oram <isaac.w.oram@intel.com>
Silicon/Intel/WhitleySiliconBinPkg
M: Nate DeSimone <nathaniel.l.desimone@intel.com>
M: Isaac W Oram <isaac.w.oram@intel.com>
Silicon/Intel/QuarkSocBinPkg
M: Michael D Kinney <michael.d.kinney@intel.com>
M: Kelly Steele <kelly.steele@intel.com>
Silicon/Intel/Vlv2SocBinPkg
M: Zailiang Sun <zailiang.sun@intel.com>
M: Yi Qian <yi.qian@intel.com>
Silicon/Intel/TigerlakeSiliconBinPkg
M: Sai Chaganty <rangasai.v.chaganty@intel.com>
M: Nate DeSimone <nathaniel.l.desimone@intel.com>

View File

@@ -1,25 +0,0 @@
Copyright (c) 2013 - 2016, AMD Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

View File

@@ -1,361 +0,0 @@
From http://community.arm.com/docs/DOC-8402, dated 4 Jul 2014.
Juno Software EULA
THIS END USER LICENCE AGREEMENT ("LICENCE") IS A LEGAL AGREEMENT BETWEEN YOU
(EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND ARM LIMITED ("ARM") FOR
THE USE OF THE DELIVERABLES ACCOMPANYING THIS LICENCE. ARM IS ONLY WILLING TO
LICENSE THE DELIVERABLES TO YOU ON CONDITION THAT YOU ACCEPT ALL OF THE TERMS IN
THIS LICENCE. BY CLICKING "I AGREE" OR BY INSTALLING OR OTHERWISE USING OR
COPYING THE DELIVERABLES YOU INDICATE THAT YOU AGREE TO BE BOUND BY ALL THE
TERMS OF THIS LICENCE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, ARM IS
UNWILLING TO LICENSE THE DELIVERABLES TO YOU AND YOU MAY NOT INSTALL, USE OR
COPY THE DELIVERABLES, BUT YOU SHOULD PROMPTLY RETURN THE DELIVERABLES TO YOUR
SUPPLIER AND ASK FOR A REFUND OF ANY LICENCE FEE PAID.
"Juno ARM Development Platform" means a hardware development board purchased
directly from ARM or its authorised distributors.
"Deliverables" means any software, firmware, boardfiles, data and documentation
accompanying this Licence, any printed, electronic or online documentation
supplied with it, and any updates, patches and modifications ARM may make
available to you under the terms of this Licence, in all cases relating to the
supporting deliverables for the Juno ARM Development Platform
"Separate Files" means the separate files identified in Part D of the Schedule.
1. LICENCE GRANTS.
(i) DELIVERABLES: ARM hereby grants to you, subject to the terms and conditions
of this Licence, a non-exclusive, non-transferable licence solely for use on a
Juno ARM Development Platform and only for the purposes of your internal
development, testing and debugging of software applications that are designed to
run solely on microprocessors manufactured under licence from ARM, to:
(a) use and copy the Deliverables identified in Part A of the Schedule;
(b) use, copy and modify the Deliverables identified in Part B and Part C of the
Schedule;
(c) distribute and sub-license to third parties the right to use, copy and
modify the Deliverables identified in Part C(i) of the Schedule, or your
derivatives thereof, as part of your own products ("Licensed Products")
provided you comply with the terms of Clause 1(ii);
(d) permit either or both your customers and your authorised distributors to
redistribute the Deliverables identified in Part C(i) of the Schedule, or your
derivatives thereof, solely as part of Licensed Products developed by you or
your permitted users (identified in clause 2 paragraph three below).
Except as permitted by clause 1(i)(b) above, you shall not modify the
Deliverables. Except as permitted by clauses 1(i)(c) and 1(i)(d) above, you
shall not redistribute any of the Deliverables.
(ii) FURTHER CONDITIONS APPLICABLE TO REDISTRIBUTION AND SUB-LICENSING: If you
choose to redistribute the Deliverables identified in Part C(i) of the Schedule
("Example Code") you agree: (a) to ensure that they are licensed for use only as
part of Licensed Products and only on microprocessors manufactured or simulated
under licence from ARM; (b) not to use ARMs or any of its licensors names,
logos or trademarks to market the Licensed Products; (c) to include valid
copyright notices on the Licensed Products, and preserve any copyright notices
which are included with, or in, the Example Code; (d) to comply with all the
other terms of this Licence; and (e) to ensure that any further redistribution
is limited to redistribution by either or both your customers and your
authorised distributors only as part of Licensed Products developed by you or
your permitted users and only for use on microprocessors manufactured or
simulated under licence from ARM and that your customers and authorised
distributors comply with the terms of this clause 1(ii).
2. RESTRICTIONS ON USE OF THE DELIVERABLES.
COPYING: You shall not use or copy the Deliverables except as expressly
authorised in this Licence. You may make one additional copy of the delivered
Deliverables media or image for backup or archival purposes.
PERMITTED USERS: The Deliverables shall be used only by your employees, or by
your bona fide sub-contractors for whose acts and omissions you hereby agree to
be responsible to ARM to the same extent as you are for any acts and omissions
of your employees, and provided always that such sub-contractors; (i) work only
onsite at your premises; (ii) comply with the terms of this Licence; (iii) are
contractually obligated to use the Deliverables only for your benefit, and (iv)
agree to assign all their work product and any rights they create therein in
the supply of such work to you. Only the single individual, company or other
legal entity to whom ARM is supplying this Licence may use the Deliverables.
Except as provided in this clause, you shall not allow third parties (including
but not limited to any subsidiary, parent or affiliated companies, or offsite
contractors you may have) to use the Deliverables unless ARM specifically agrees
otherwise with you on a case by case basis.
NO REMOTE USE: The Deliverables shall only be used onsite at your premises and
only for your benefit.
MULTIPLE VERSIONS: The media on which the Deliverables resides may contain more
than one version of the Deliverables, each of which is compatible with a
different operating system (such as Microsoft Windows XP Professional and Red
Hat Linux).
ACADEMIC OR EDUCATIONAL USERS ONLY: If you or your employer or institution paid
academic or educational pricing for the Deliverables, or the Deliverables are
identified as an academic or educational version (together "Academic Software"),
then notwithstanding anything else in this Licence, YOU AGREE TO USE THE
ACADEMIC SOFTWARE ONLY FOR ACADEMIC, NON-COMMERCIAL PURPOSES, AND ARM DOES NOT
GRANT YOU ANY RIGHTS TO DISTRIBUTE OR SUB-LICENSE ANY APPLICATIONS DEVELOPED
USING THE ACADEMIC SOFTWARE UNDER THIS LICENCE.
REVERSE ENGINEERING: Except to the extent that such activity is permitted by
applicable law you shall not reverse engineer, decompile or disassemble any of
the Deliverables. If the Deliverables were provided to you in Europe you shall
not reverse engineer, decompile or disassemble any of the Deliverables for the
purposes of error correction.
BENCHMARKING: This licence does not prevent you from using the Deliverables for
internal benchmarking purposes. However, you shall treat any and all
benchmarking data, and any other results of your use or testing of the
Deliverables which are indicative of performance, efficacy, reliability or
quality, as confidential information and you shall not disclose such information
to any third party without the express written permission of ARM.
RESTRICTIONS ON TRANSFER OF LICENSED RIGHTS: The rights granted to you under
this Licence may not be assigned, sublicensed or otherwise transferred by you
to any third party without the prior written consent of ARM. An assignment shall
be deemed to include, without limitation; (i) any transaction or series of
transactions whereby a third party acquires, directly or indirectly, the power
to control the management and policies of you, whether through the acquisition
of voting securities, by contract or otherwise; or (ii) the sale of more than
fifty percent (50%) of the your assets whether in a single transaction or series
of transactions. You shall not rent or lease the Deliverables. You shall not
share the Deliverables with contractors (except as identified in the PERMITTED
USERS clause above) or other third parties.
COPYRIGHT AND RESERVATION OF RIGHTS: The Deliverables are owned by ARM or its
licensors and are protected by copyright and other intellectual property laws
and international treaties. The Deliverables are licensed not sold. You acquire
no rights to the Deliverables other than as expressly provided by this Licence.
You shall not remove from the Deliverables any copyright notice or other notice
and shall ensure that any such notice is reproduced in any copies of the whole
or any part of the Deliverables made by you or your permitted users.
3. SUPPORT AND MAINTENANCE.
If you purchased the Deliverables directly from ARM, and you are not receiving
them as an update or upgrade or as Academic Software (defined in Clause 2), you
are entitled to reasonable support and maintenance for the Deliverables for the
period of one (1) year from the date of purchase. The support will be provided
on any version of the Deliverables which, at the date of your support request,
are either; (a) the current version made generally available by ARM; or (b) the
previous version made generally available by ARM at some time during the
previous ninety (90) days.
Support will be provided by telephone, email or other written format designated
by ARM, prioritised at ARMs discretion, and may not be used as a substitute for
training or as additional resource for your programming projects. Maintenance
will be provided in the form of upgrades, updates and patch releases to the
Deliverables as and when they are made generally available from ARM.
ARMs obligation under this Clause 3 is limited to the provision of support and
maintenance to you and ARM is under no obligation to provide any support and
maintenance to any third parties under this Licence. If you purchase support and
maintenance for additional years it will be provided pursuant to this Clause 3
and will be subject to the terms and conditions of this Licence.
If; (i) you obtained the Deliverables from an ARM authorised reseller or other
third party; (ii) Deliverables were provided free of charge or for evaluation;
or (iii) it is Academic Software, you are not entitled to any support for the
Deliverables from ARM, but ARM may, at its sole discretion provide limited
support to you. The vendor of the Deliverables may or may not offer support to
you for the Deliverables. Please refer to the Technical Support area of
http://www.arm.com for contact details for ARMs support service and (if
applicable) other authorised support channels. ARM shall be under no obligation
to provide support in respect of any modifications (where permitted) to the
Deliverables.
4. CONFIDENTIALITY.
You acknowledge that the Deliverables and any benchmarking data and related
information mentioned in Clause 2 contains trade secrets and confidential
material, and you agree to maintain all such information in confidence and
apply security measures no less stringent than the measures which you apply to
protect your own like information, but not less than a reasonable degree of
care, to prevent their unauthorised disclosure and use. Subject to any
restrictions imposed by applicable law, the period of confidentiality shall be
indefinite. You agree that you shall not use any such information other than in
normal use of the Deliverables under the licences granted in this Licence.
Notwithstanding the foregoing you may disclose the Deliverables identified in
Part C(i) of the Schedule to third parties solely in exercise of the licence
rights contained in Clause 1(i)(c) of this Licence.
5. LIMITED WARRANTIES.
For the period of ninety (90) days from the date of receipt by you of the
Deliverables, ARM warrants to you that (i) the media on which the Deliverables
are provided shall be free from defects in materials and workmanship under
normal use; and (ii) the Deliverables will perform substantially in accordance
with the accompanying documentation (if any). ARM's total liability and your
exclusive remedy for breach of these limited warranties shall be limited to ARM,
at ARM's option; (a) replacing the defective Deliverables; or (b) using
reasonable efforts to correct material, documented, reproducible defects in the
Deliverables and delivering such corrected Deliverables to you. Any replacement
Deliverables will be warranted for the remainder of the original warranty
period or thirty (30) days, whichever is the longer.
EXCEPT AS PROVIDED ABOVE, YOU AGREE THAT THE DELIVERABLES ARE LICENSED "AS IS",
AND THAT ARM EXPRESSLY DISCLAIMS ALL REPRESENTATIONS, WARRANTIES, CONDITIONS OR
OTHER TERMS, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION THE
IMPLIED WARRANTIES OF NON- INFRINGEMENT, SATISFACTORY QUALITY, AND FITNESS FOR A
PARTICULAR PURPOSE.
YOU EXPRESSLY ASSUME ALL LIABILITIES AND RISKS, FOR USE OR OPERATION OF SOFTWARE
APPLICATIONS, INCLUDING WITHOUT LIMITATION, APPLICATIONS DESIGNED OR INTENDED
FOR MISSION CRITICAL APPLICATIONS, SUCH AS PACEMAKERS, WEAPONARY, AIRCRAFT
NAVIGATION, FACTORY CONTROL SYSTEMS, ETC. SHOULD THE DELIVERABLES PROVE
DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR
CORRECTION.
6. LIMITATION OF LIABILITY.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL ARM BE
LIABLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING
LOSS OF PROFITS) ARISING OUT OF THE USE OR INABILITY TO USE THE DELIVERABLES
WHETHER BASED ON A CLAIM UNDER CONTRACT, TORT OR OTHER LEGAL THEORY, EVEN IF ARM
WAS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
ARM does not seek to limit or exclude liability for death or personal injury
arising from ARM's negligence or ARMs fraud and because some jurisdictions do
not permit the exclusion or limitation of liability for consequential or
incidental damages the above limitation relating to liability for consequential
damages may not apply to you.
NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED IN THIS LICENCE, THE MAXIMUM
LIABILITY OF ARM TO YOU IN AGGREGATE FOR ALL CLAIMS MADE AGAINST ARM IN CONTRACT
TORT OR OTHERWISE UNDER OR IN CONNECTION WITH THE SUBJECT MATTER OF THIS LICENCE
SHALL NOT EXCEED THE GREATER OF; (I) THE TOTAL OF SUMS PAID BY YOU TO ARM (IF
ANY) FOR THIS LICENCE; AND (II) $10 USD.
THE EXISTENCE OF MORE THAN ONE CLAIM WILL NOT ENLARGE OR EXTEND THE LIMIT.
7. THIRD PARTY RIGHTS.
The Separate Files are delivered subject to and your use is governed by their
own separate licence agreements. This Licence does not apply to such Separate
Files and they are not included in the term "Deliverables" under this Licence.
You agree to comply with all terms and conditions imposed on you in respect of
such Separate Files including those identified in the Schedule ("Third Party
Terms").
ARM HEREBY DISCLAIMS ANY AND ALL WARRANTIES EXPRESS OR IMPLIED FROM ANY THIRD
PARTIES REGARDING ANY SEPARATE FILES, ANY THIRD PARTY MATERIALS INCLUDED IN THE
DELIVERABLES, ANY THIRD PARTY MATERIALS FROM WHICH THE DELIVERABLES ARE DERIVED
(COLLECTIVELY "OTHER CODE"), AND THE USE OF ANY OR ALL THE OTHER CODE IN
CONNECTION WITH THE DELIVERABLES, INCLUDING (WITHOUT LIMITATION) ANY WARRANTIES
OF SATISFACTORY QUALITY OR FITNESS FOR A PARTICULAR PURPOSE.
NO THIRD PARTY LICENSORS OF OTHER CODE SHALL HAVE ANY LIABILITY FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND WHETHER MADE UNDER
CONTRACT, TORT OR OTHER LEGAL THEORY, ARISING IN ANY WAY OUT OF THE USE OR
DISTRIBUTION OF THE OTHER CODE OR THE EXERCISE OF ANY RIGHTS GRANTED UNDER
EITHER OR BOTH THIS LICENCE AND THE LEGAL TERMS APPLICABLE TO ANY SEPARATE
FILES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
8. GOVERNMENT END USERS.
US Government Restrictions: Use, duplication, reproduction, release,
modification, disclosure or transfer of the Deliverables is restricted in
accordance with the terms of this Licence.
9. TERM AND TERMINATION.
This Licence shall remain in force until terminated by you or by ARM. Without
prejudice to any of its other rights if you are in breach of any of the terms
and conditions of this Licence then ARM may terminate this Licence immediately
upon giving written notice to you. You may terminate this Licence at any time.
Upon termination of this Licence by you or by ARM you shall stop using the
Deliverables and confidential information and destroy all copies of the
Deliverables and confidential information in your possession together with all
documentation and related materials. Notwithstanding the foregoing, except where
ARM has terminated this Licence for your breach, your rights to distribute the
Example Code as part of Licensed Products developed prior to termination shall
survive termination of this Licence, subject to the terms of this Licence. The
provisions of Clauses 4, 6, 7, 8, 9 and 10 shall survive termination of this
Licence.
10. GENERAL.
This Licence is governed by English Law. Except where ARM agrees otherwise in;
(i) a written contract signed by you and ARM; or (ii) a written contract
provided by ARM and accepted by you, this is the only agreement between you and
ARM relating to the Deliverables and it may only be modified by written
agreement between you and ARM. This Licence may not be modified by purchase
orders, advertising or other representation by any person. If any clause or
sentence in this Licence is held by a court of law to be illegal or
unenforceable the remaining provisions of this Licence shall not be affected
thereby. The failure by ARM to enforce any of the provisions of this Licence,
unless waived in writing, shall not constitute a waiver of ARM's rights to
enforce such provision or any other provision of this Licence in the future.
The Deliverables provided under this Licence are subject to U.S. export control
laws, including the U.S. Export Administration Act and its associated
regulations, and may be subject to export or import regulations in other
countries. You agree to comply fully with all laws and regulations of the United
States and other countries ("Export Laws") to assure that the Deliverables, are
not (1) exported, directly or indirectly, in violation of Export Laws, either to
any countries that are subject to U.S.A. export restrictions or to any end user
who has been prohibited from participating in the U.S.A. export transactions by
any federal agency of the U.S.A. government; or (2) intended to be used for any
purpose prohibited by Export Laws, including, without limitation, nuclear,
chemical, or biological weapons proliferation.
To the extent that the provisions contained in this Licence conflict with any
provisions of any other licence you have entered with ARM governing the
Deliverables the provisions contained in this Licence shall prevail over and
shall supersede any such conflicting provisions.
SCHEDULE
Part A
Hardware Binaries:
FPGA bitstream file for any or all of the Hardware Source identified below in
this Part A
Software Binaries:
Motherboard configuration controller
Daughterboard configuration controller
Daughterboard Application note SelfTest
SCP firmware
Mali GPU driver
Documentation:
Documentation, provided as PDF
Hardware Source
Hardware netlists of the ARM CoreLink peripheral technology and components known as TLX-400, NIC-400, and PL330
Part B
Wrapper:
Application Note wrapper file provided as hardware source files and netlists.
Part C: Example Code
(i) Platform specific libraries and source code.
(ii) ARM source code of Application note SelfTest.
Part D: Separate Files
A. UEFI firmware, including drivers for third party components licensed to
you under BSD 3-Clause.
B. Linux kernel licensed to you under the GNU General Public License version
2.0
To the extent that ARM is obliged to do so, ARM hereby offers to supply the
files which are subject to the GNU General Public Licence version 2 (identified
above), in source code form, subject to the terms of the GNU General Public
License version 2, upon request. This offer is valid for three (3) years from
the date of your acceptance of this Licence.
C. ARM Trusted Firmware licensed to you under BSD 3-Clause.
/end
ARM contract references: LES-PRE-20435 JUNO ARM DEVELOPMENT PLATFORM DELIVERABLES

View File

@@ -1,26 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = GetInfoFromBmc
FILE_GUID = 43B59C81-9C5F-4021-B0F2-947DB839B781
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = GetBmcInfoDriverEntry
[Binaries]
PE32|GetInfoFromBmc.efi|*
DXE_DEPEX|GetInfoFromBmc.depex|*

View File

@@ -1,32 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = IpmiInterfacePei
FILE_GUID = 269702AF-8004-4570-A08E-00762AE65D15
MODULE_TYPE = PEIM
VERSION_STRING = 1.0
ENTRY_POINT = IpmiInterfacePeiEntry
[Sources]
[Binaries.AARCH64]
TE|IpmiInterfacePei.efi|*
[Depex]
TRUE

View File

@@ -1,28 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = IpmiInterfaceDxe
FILE_GUID = EF5483F8-68AD-4D71-9A23-674D2E9C013E
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
[Binaries.common]
PE32|IpmiInterfaceDxe.efi|*
DXE_DEPEX|IpmiInterfaceDxe.depex|*

View File

@@ -1,27 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = IpmiMiscOp
FILE_GUID = EC68451C-6D10-4ba2-9862-D27D4D6090DB
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = IpmiMiscOpEntry
[Binaries]
PE32|IpmiMiscOp.efi|*
DXE_DEPEX|IpmiMiscOpDxe.depex|*

View File

@@ -1,27 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = IpmiWatchdogDxe
FILE_GUID = 7C7ACA9F-DB25-43FB-A479-1B6E42F38792
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = InitializeWatchdogDxeEntry
[Binaries]
PE32|IpmiWatchdogDxe.efi|*
DXE_DEPEX|IpmiWatchdogDxe.depex|*

View File

@@ -1,24 +0,0 @@
#/** @file
#
# Copyright (c) 2017, Hisilicon Limited. All rights reserved.
# Copyright (c) 2017, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010019
BASE_NAME = SnpPV600Dxe
FILE_GUID = 3247F15F-3612-4803-BD4E-4104D7EF944A
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
[Binaries.AARCH64]
PE32|SnpPV600Dxe.efi|*

View File

@@ -1,26 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[defines]
INF_VERSION = 0x00010005
BASE_NAME = NativeOhci
FILE_GUID = 043D0B5E-DAC1-463a-85BA-2CEDC33A8C4F
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.0
[Binaries]
PE32|NativeOhci.efi|*

View File

@@ -1,25 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = ReportPciePlugDidVidToBmc
FILE_GUID = 9BC4A5D1-5A46-4A6C-AF11-4875268179D3
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
[Binaries]
PE32|ReportPciePlugDidVidToBmc.efi|*
DXE_DEPEX|ReportPciePlugDidVidToBmc.depex|*

View File

@@ -1,29 +0,0 @@
#/** @file
#
# Copyright (c) 2015, Hisilicon Limited. All rights reserved.
# Copyright (c) 2015, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = SFCDriver
FILE_GUID = FC5651CA-55D8-4fd2-B6D3-A284D993ABA2
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = SFCInitialize
[Binaries.common]
PE32|SFCDriver.efi|*
DXE_DEPEX|SFCDriver.depex|*

View File

@@ -1,28 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = SasDriverDxe
FILE_GUID = 49ea041e-6752-42ca-b0b1-7344fe234567
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = SasDriverInitialize
[Binaries]
PE32|SasDriverDxe.efi|*

View File

@@ -1,26 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = TransSmbiosInfo
FILE_GUID = 13668C32-1977-436a-800C-F8644D11CB76
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = TransferSmbiosInfoToBMC
[Binaries]
PE32|TransSmbiosInfo.efi|*
DXE_DEPEX|TransSmbiosInfo.depex|*

View File

@@ -1,44 +0,0 @@
#/** @file
#
# Copyright (c) 2015, Hisilicon Limited. All rights reserved.
# Copyright (c) 2015, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = OemAddressMap2P
FILE_GUID = 32BC48E3-5428-4556-A383-25A23EA816A7
MODULE_TYPE = BASE
VERSION_STRING = 1.0
LIBRARY_CLASS = OemAddressMapLib
[Sources.common]
[Binaries.AARCH64]
LIB|OemAddressMap2P.lib|*
[Sources.AARCH64.GCC]
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
ArmPkg/ArmPkg.dec
Silicon/Hisilicon/HisiPkg.dec
[LibraryClasses]
CpldIoLib
[BuildOptions]
[FixedPcd]
gHisiTokenSpaceGuid.PcdNORFlashBase

View File

@@ -1,33 +0,0 @@
#/** @file
#
# Copyright (c) 2011-2014, ARM Ltd. All rights reserved.<BR>
# Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
# Copyright (c) 2015, Linaro Limited. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
# Based on the files under ArmPlatformPkg/MemoryInitPei/
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = MemoryInit
FILE_GUID = c61ef796-b50d-4f98-9f78-4f6f79d800d5
MODULE_TYPE = PEIM
VERSION_STRING = 1.0
ENTRY_POINT = InitializeMemory
[Sources]
[Binaries.AARCH64]
TE|MemoryInit.efi|*
[Depex]
TRUE

View File

@@ -1,26 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010019
BASE_NAME = GetInfoFromBmc
FILE_GUID = DFDF885A-623D-4D13-9EB6-8454BA30A7CD
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = GetBmcInfoDriverEntry
[Binaries]
PE32|GetInfoFromBmc.efi|*
DXE_DEPEX|GetInfoFromBmc.depex|*

View File

@@ -1,28 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010019
BASE_NAME = IpmiInterfaceDxe
FILE_GUID = 89DCAC3C-D653-4FD7-82E7-9840ED7E0B1D
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
[Binaries.common]
PE32|IpmiInterfaceDxe.efi|*
DXE_DEPEX|IpmiInterfaceDxe.depex|*

View File

@@ -1,32 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010019
BASE_NAME = IpmiInterfacePei
FILE_GUID = 0E169987-AC8F-4DF8-9A67-D2860C15699D
MODULE_TYPE = PEIM
VERSION_STRING = 1.0
ENTRY_POINT = IpmiInterfacePeiEntry
[Sources]
[Binaries.AARCH64]
TE|IpmiInterfacePei.efi|*
[Depex]
TRUE

View File

@@ -1,27 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010019
BASE_NAME = IpmiMiscOp
FILE_GUID = 536C9EE4-3D34-4EB6-9195-7BEEDE4D4F9F
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = IpmiMiscOpEntry
[Binaries]
PE32|IpmiMiscOp.efi|*
DXE_DEPEX|IpmiMiscOpDxe.depex|*

View File

@@ -1,27 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010019
BASE_NAME = IpmiWatchdogDxe
FILE_GUID = 4C112583-9092-4712-BBBF-429B4B66220F
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = InitializeWatchdogDxeEntry
[Binaries]
PE32|IpmiWatchdogDxe.efi|*
DXE_DEPEX|IpmiWatchdogDxe.depex|*

View File

@@ -1,24 +0,0 @@
#/** @file
#
# Copyright (c) 2017, Hisilicon Limited. All rights reserved.
# Copyright (c) 2017, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010019
BASE_NAME = SnpPV600Dxe
FILE_GUID = 6BB8E531-2E49-43CC-AF7A-7CABDAEB7B7A
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
[Binaries.AARCH64]
PE32|SnpPV600Dxe.efi|*

View File

@@ -1,26 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[defines]
INF_VERSION = 0x00010019
BASE_NAME = NativeOhci
FILE_GUID = 559F7D9C-34A8-4028-815C-D5A73EDEB60F
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.0
[Binaries]
PE32|NativeOhci.efi|*

View File

@@ -1,25 +0,0 @@
#/** @file
#
# Copyright (c) 2016, Hisilicon Limited. All rights reserved.
# Copyright (c) 2016, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#**/
[Defines]
INF_VERSION = 0x00010019
BASE_NAME = ReportPciePlugDidVidToBmc
FILE_GUID = 5C6B2DC9-D4F5-405A-94A4-4EA9E74A1800
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
[Binaries]
PE32|ReportPciePlugDidVidToBmc.efi|*
DXE_DEPEX|ReportPciePlugDidVidToBmc.depex|*

Some files were not shown because too many files have changed in this diff Show More