265 Commits
v0.4 ... v0.9

Author SHA1 Message Date
Mario Bălănică
105f7b9fc9 Silicon/Rockchip: PWMLib: Insert delay after locking previous period & duty
Otherwise the new values would sometimes be ignored.
2023-10-07 23:04:01 +03:00
Mario Bălănică
8b6b3a6242 Add basic Secure Boot support 2023-10-06 22:30:49 +03:00
Mario Bălănică
f1ca49412c Use latest GCC instead of GCC5
"build: : warning: Toolchain GCC5 is deprecated and will be removed before the
edk2-stable202402 release. You should use 'GCCNOLTO' instead of 'GCC49', and
'GCC' instead of 'GCC5'"
2023-10-06 17:30:14 +03:00
Mario Bălănică
8921a37b17 Update to latest rkbin
* ATF (BL31) to v1.40
  * ddrbin to v1.12
2023-10-06 16:54:37 +03:00
Mario Bălănică
c2bb0235c5 Silicon/RK3588: Move ACPI code to its own platform driver 2023-10-06 15:15:48 +03:00
Mario Bălănică
9b56a310f1 Add Device Tree support
The included DTBs correspond to:
  * <a8384552a2/arch/arm64/boot/dts/rockchip>
  * roc-rk3588s-pc: <b8646da212/arch/arm64/boot/dts/rockchip>

See README for more details.
2023-10-06 14:18:04 +03:00
Mario Bălănică
6175a503df Update README.md 2023-09-19 04:37:43 +03:00
Mario Bălănică
f6b305c705 Add RTL MAC address programming guide to README
Thanks to @strygin
2023-09-19 04:01:52 +03:00
Mario Bălănică
06dcc238c6 Remove references to RPi and Arm Juno 2023-09-18 05:02:02 +03:00
Mario Bălănică
842db13abd Silicon/RK3588: Uninstall EFI_MEMORY_ATTRIBUTE_PROTOCOL
Older versions of rhboot's shim use this protocol incorrectly and lead to a
Synchronous Exception.

Many distros haven't updated yet, so uninstall the protocol as a workaround for
the time being.

See:
  - https://github.com/microsoft/mu_silicon_arm_tiano/issues/124
  - https://edk2.groups.io/g/devel/topic/99631663
2023-09-18 04:14:27 +03:00
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
Mario Bălănică
8d3b89755d Update README.md 2023-06-01 03:52:28 +03:00
Mario Bălănică
b9e6b9baec Platforms: Make UEFI FV size consistent
Increase size to 0x00500000 for remaining platforms.
2023-06-01 03:40:02 +03:00
Mario Bălănică
1bb2861929 Do not append NV var store to the final flash image
This allows the variables to persist across firmware updates.

If the store is corrupted or missing (which was also the case with NV_DATA.img being actually empty), the FVB driver should rewrite a clean FV header.
2023-06-01 03:36:20 +03:00
Mario Bălănică
017844d902 Platform/ROCK5A: Rename "ROCK 5A" to "ROCK 5 Model A"
To be consistent with Model B and naming on the website.
2023-06-01 02:54:54 +03:00
Mario Bălănică
5fc7f34ea5 Platform/ROCK5B: Don't allow switching Combo PHY #0
It is hardwired to the onboard Realtek PCIe NIC.
2023-06-01 02:43:40 +03:00
Mario Bălănică
f6c1346772 Silicon/Rockchip: Disable SATA staggered spin-up
With it enabled, NetBSD doesn't pick up any drive (be it HDD or SSD) most of the time (is this a driver or controller bug?).
2023-06-01 02:42:05 +03:00
Mario Bălănică
fc5ee180d8 Platforms: Expose SATA devices in ACPI
Enable only controllers that have the PHY routable to some kind of connector on the platform.

It would be better to have them into their own SSDT that gets installed at runtime depending on the Combo PHY configuration.
2023-06-01 02:39:39 +03:00
Mario Bălănică
57a86578c2 Platforms: Set default CPU clock presets
The SoC heats up quite a lot with CPU clocks and voltages always set to max.
Therefore, leave clocks at their boot default value on platforms without active cooling that's turned on by default.
The presets can be overridden by the user in the Configuration menu, assuming proper cooling is installed.
2023-06-01 01:06:48 +03:00
Mario Bălănică
39118afb47 Silicon/Rockchip: Add default cluster clock preset PCDs 2023-06-01 00:46:43 +03:00
Mario Bălănică
40be23e7d5 Platforms: Configure default Combo PHY modes
- Combo PHY #1 is not exposed on RK3588S.

- For platforms that have an USB 3 port directly wired to the PHY (that is, no hub in between), allow switching modes as it's fairly possible to hack together an USB 3 to PCIe or SATA cable.
2023-06-01 00:00:03 +03:00
Mario Bălănică
7595444430 Silicon/Rockchip: Make the Naneng Combo PHY user-configurable 2023-05-31 23:23:37 +03:00
Mario Bălănică
16d3555631 Silicon/Rockchip: Fix SATA support
The upstream driver works fine if we correct the HBA capabilities.

Also fix and split the ACPI devices into their own file, since RK3588S lacks SATA #1.
2023-05-30 18:57:35 +03:00
Mario Bălănică
dbde496288 Platforms: Switch to AHCI drivers from MdeModulePkg 2023-05-30 18:38:36 +03:00
Mario Bălănică
4f261d1115 Platform/ROCK5A: Enable eMMC and update pin muxing comments
Same as the previous change for Indiedroid Nova.
2023-05-30 04:15:21 +03:00
Mario Bălănică
e1f1f50ef5 Platform/IndiedroidNova: Do not override eMMC and FSPI pin muxing
The eMMC slot is shared with FSPI, making it possible to connect either an eMMC or SPI NOR module.
Pin muxing is already configured by earlier boot stages depending on what's detected in the slot, thus no need to perform the detection ourselves.
2023-05-30 04:13:27 +03:00
Mario Bălănică
df1f46add9 Platforms: Enable RkFvbDxe 2023-05-30 03:24:44 +03:00
Mario Bălănică
c1de6b10ff Silicon/Rockchip: Support persistent variable store on SD/eMMC
On SD/eMMC this feature is more limited, since these devices are meant to be used by the OS and we can't take ownership of them.
As such, changes to the var store will only be saved at boot time when certain events happen (platform reset, ready to boot, image load).

Full runtime support is available when booted from SPI NOR flash.

Also introduce the gRockchipTokenSpaceGuid.PcdNvStoragePreferSpiFlash flag which forces the var store to be on SPI flash, if available, no matter the boot device.
This can be useful during development as NOR flash is quite slow to write compared to SD.
2023-05-30 03:08:04 +03:00
Mario Bălănică
4db804855f Silicon/Rockchip: Make SD controllers identifiable by base address 2023-05-30 02:06:12 +03:00
Mario Bălănică
1184da0f5d Silicon/Rockchip: Signal an event on system reset 2023-05-30 02:00:33 +03:00
Mario Bălănică
d496851043 U-Boot FIT: Map UEFI NV region into memory
Load it at the same address as seen in flash so we don't have to deal with reading it from the boot device in UEFI anymore.
2023-05-30 01:54:27 +03:00
Mario Bălănică
1d435eeafb Silicon/Rockchip: Add ATAGS reading library 2023-05-26 17:48:50 +03:00
Molly Sophia
0c765f022b Workflow: Fix CI
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-05-21 16:11:43 +08:00
Molly Sophia
3461e121e6 Rockchip: Reduce code duplication in DwEmmcDxe
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-05-21 16:08:16 +08:00
Molly Sophia
8eb1541a00 RK3588: Remove duplicated (and unused) RK3588Dxe
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-05-21 16:05:27 +08:00
Molly Sophia
3dd1abd91d Update build.sh
This includes several tiny fixes:
- Fixed `build.sh --clean` command
- Partially fixed `build.sh -d all` command
- Don't check for SimpleInit folder when BUILD_GUI is false
- Added a define CONFIG_SOC for reducing code duplication

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-05-21 15:54:03 +08:00
Molly Sophia
cfdb896be5 Platforms: Add initial support for Radxa rock-5a
What's working:
- USB3 Ports
- HDMI0 Output

Note: On rock-5a the FSPI for SPI NOR is multiplexed with the eMMC
module, so both are not configured yet. May try to add some
autodetecting code later.

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-05-20 11:59:54 +08:00
Molly Sophia
694dfc8b25 Workflow: Add NanoPC T6
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-05-14 14:18:23 +08:00
Sophon
f5e87e2230 Merge pull request #22 from MollySophia/molly/nanopc-t6
Platforms: Add initial support for NanoPC T6
2023-05-14 14:13:59 +08:00
Molly Sophia
b3abf83da7 Platforms: Add initial support for NanoPC T6
What's working:
- Type-C and USB
- HDMI0 Output
- eMMC and SDHCI

What's broken or untested:
- Everything else

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2023-05-14 14:06:27 +08:00
Mario Bălănică
3676af4b37 Add Khadas Edge2 platform 2023-05-11 19:07:20 +03:00
Mario Bălănică
5570bf1348 Silicon/Rockchip: Delete Usb2PhySuspend() in RockchipPlatformLib
Unused and actually enables the PHYs.
2023-05-02 04:07:38 +03:00
Mario Bălănică
4999bfad7d Add Mekotronics R58 Mini platform
The device is a trimmed down R58X.
No PCIe / M.2 slots and SD expansion is completely missing.
2023-05-02 03:32:00 +03:00
Mario Bălănică
05f8cc20fc Add Mekotronics R58X platform
Everything currently supported works except for the micro SD card slot - no idea what it's connected to,
no signs of life on either MSHC controller even in Maskrom mode.
2023-05-02 02:54:32 +03:00
Mario Bălănică
b88a32dd93 Fix and expose eMMC device in ACPI
In preparation for Windows support.
2023-04-28 18:54:25 +03:00
Mario Bălănică
08c90b9eb2 Silicon/Rockchip: Improve eMMC detection 2023-04-28 18:49:29 +03:00
Mario Bălănică
6e88083971 Enable EMMC boot for platforms that support it 2023-04-21 22:17:17 +03:00
Mario Bălănică
f5895f0295 Silicon/Rockchip: Add card detection in SdhciHostDxe
Adapted from ArasanMmcHostDxe.
Fixes #17
2023-04-21 22:16:08 +03:00
Mario Bălănică
e62c694e7b Add config options for CPU clock rates and voltages
By default, clock rates are set to maximum and voltages are set depending on the clock.
This behavior can be changed in the CPU Performance form (for platforms that have persistent NV support as of now).

Clocks are set as soon as we get write access to the var store, however voltages will be set later on first notification of the ReadyToBoot event.
This allows the user to dial settings back in case the values are too high and the system hangs or boot loops when loading the OS.
2023-04-20 12:14:15 +03:00
Mario Bălănică
fc1afc0b1e Add identification tags to RK860X regulators 2023-04-20 09:55:08 +03:00
Mario Bălănică
b9857a812a Minor refactoring for RockchipPlatformLib and I2cDxe 2023-04-17 05:16:35 +03:00
Mario Bălănică
bf4468e1b6 Add Firefly ROC-RK3588S-PC and Station M3 platforms
Station M3 is basically a complete package (case, cooling, accessories) built around the ROC-RK3588S-PC board.
We have a separate platform for it as it's sold under a different brand with its own logo and product name.
2023-04-17 03:15:55 +03:00
Mario Bălănică
c2b5ffd259 Silicon/Rockchip: Add SMBIOS PCDs for motherboard vendor and name 2023-04-17 03:15:54 +03:00
Mario Bălănică
1dd3e75ad5 Add miscellaneous init function for platforms 2023-04-17 03:15:33 +03:00
Mario Bălănică
a4bf6ae99f Platform/IndiedroidNova: Enable & configure voltage regulators 2023-04-15 02:10:18 +03:00
Mario Bălănică
bf712b17d5 Silicon/Rockchip: More fixes for the regulator event handler 2023-04-14 23:13:57 +03:00
Mario Bălănică
15d6b7a31b Silicon/Rockchip: Remove dependency on gRk860xRegulatorProtocolGuid
In case some platforms don't have it configured yet.
2023-04-14 22:36:19 +03:00
Mario Bălănică
45c5c04c27 Platform/ROCK5B: Update RK806 voltages
Little CPU cluster is set to maximum voltage for roughly 1.8 GHz.
2023-04-13 05:06:29 +03:00
Mario Bălănică
e2696f8a03 Platform/ROCK5B: Enable RK860X regulators for the big cores 2023-04-13 04:41:30 +03:00
Mario Bălănică
c6e85e2b93 Platform/OrangePi5: Enable RK860X regulators for the big cores 2023-04-13 04:36:55 +03:00
Mario Bălănică
eda397ef22 Silicon/Rockchip: Configure RK860X in RK3588Dxe 2023-04-13 04:20:19 +03:00
Mario Bălănică
d922f80d9a Silicon/Rockchip: Add RK860X voltage regulator driver 2023-04-13 04:06:30 +03:00
Mario Bălănică
aa2637795f Silicon/Rockchip: Move USB PHY setup back to UsbHcdInitDxe 2023-04-13 02:37:22 +03:00
Mario Bălănică
920a324046 Fix USB controller sizes and delete unused PCDs 2023-04-13 02:33:16 +03:00
Mario Bălănică
aaa4412ed6 Silicon/Rockchip: Create a protocol for OhciDxe
We can initialize these controllers only *after* USB PHY setup, which happens in a driver that may load later.

This also fixes the boot delay caused by storage devices being initially enumerated on OHCI (due to it loading earlier) and a second time on EHCI or XHCI.
2023-04-13 02:25:10 +03:00
WillzenZou
b808ae5d79 Platform/OrangePi5: Adjust the voltage to allow the CPU frequency to be normal and remove the PCIe3 initialisation until PCIe2 is supported.
Note: Voltage reference from Orange Pi5's Linux device tree and schematic
2023-04-09 03:34:37 +03:00
Mario Bălănică
5468c3911b workflows/build: Add indiedroid-nova 2023-04-08 16:22:34 +03:00
Mario Bălănică
d3fd20e064 Platform/IndiedroidNova: Add initial support
Almost everything currently supported works, with the exception of SDMMC and possibly other things that require GPIO mux.
We have no schematics for this board yet.

Also known as 9Tripod Pico Pi V2.0.
2023-04-08 16:19:47 +03:00
Mario Bălănică
f3a02af3d3 Platform/ROCK5B: Remove vendor from platform name
Fix "Radxa Radxa"
2023-04-06 21:54:03 +03:00
Mario Bălănică
b2a49eb86c Silicon/Rockchip: Set ARM clocks to maximum 2023-04-06 21:22:21 +03:00
Mario Bălănică
1571a69925 Move RK806 init to RockchipPlatformLib 2023-04-06 20:27:35 +03:00
Mario Bălănică
519474e4ec Move RK3588Dxe to Silicon/Rockchip/RK3588
All board-specific code should be moved to RockchipPlatformLib instead.
2023-04-06 20:23:25 +03:00
Mario Bălănică
f688ecb5c1 Move common ACPI tables to Silicon/Rockchip/RK3588 2023-04-05 20:34:26 +03:00
Mario Bălănică
d8fb4f170b Update SMBIOS and share it between boards
The serial number and SoC model are now read from OTP memory.

CPU clock is read from SCMI but it may need some tweaking.
2023-04-05 02:19:47 +03:00
Mario Bălănică
9172e8a588 Silicon/Rockchip: Add RK3588 OTP library 2023-04-05 01:35:10 +03:00
Mario Bălănică
47ff4eb0fe Platform/ROCK5B: Don't include SimpleInit.inc if it's disabled 2023-04-02 20:41:49 +03:00
Mario Bălănică
c56ba68db8 Delete ROCK5B and OrangePi5 package declarations
We don't need them anymore.
2023-04-02 20:12:43 +03:00
Mario Bălănică
3a940530c8 Delete our Dw8250SerialPortLib fork and use Hisilicon's instead 2023-04-02 20:10:15 +03:00
Mario Bălănică
ca9f78d422 Move ROCK5B's GpioLib to Silicon/Rockchip/RK3588 2023-04-02 19:51:38 +03:00
Mario Bălănică
42fd558d61 Move ROCK5B's RkMtlLib to Silicon/Rockchip 2023-04-02 19:29:07 +03:00
Mario Bălănică
4fdc21d1f5 Move ROCK5B's maskrom app to Silicon/Rockchip 2023-04-02 19:21:05 +03:00
Mario Bălănică
ec0751ff07 Move ROCK5B's MemoryInitPeiLib to Silicon/Rockchip/RK3588 2023-04-02 19:09:04 +03:00
Mario Bălănică
9b28318d67 Move ROCK5B's ResetSystemLib to Silicon/Rockchip 2023-04-02 18:32:35 +03:00
Mario Bălănică
b6b21196b1 Move ROCK5B's DwEmmcDxe to Silicon/Rockchip/RK3588 2023-04-02 18:23:25 +03:00
Mario Bălănică
8b86613593 Move plat CruLib and Sdhci helper to Silicon/Rockchip/RK3588 2023-04-02 17:56:52 +03:00
Mario Bălănică
70067ff9ba Silicon/Rockchip: Remove stale boot options in PlatformBootManagerLib
Fixes #16
2023-04-02 01:02:22 +03:00
Mario Bălănică
14296a2d03 Silicon/Rockchip: Delete unused BmcConfigBootLib 2023-04-02 00:32:38 +03:00
Mario Bălănică
760f28cf7c Move ROCK5B's PlatformBootManagerLib to Silicon/Rockchip 2023-04-02 00:24:57 +03:00
Xilin Wu
a92e99261c Make simple-init optional 2023-03-28 09:44:38 +08:00
Xilin Wu
91fcaad18f rock-5b: Enable FvSimpleFileSystemDxe 2023-03-28 09:23:36 +08:00
WillzenZou
f0bf08d7a2 Platform/OrangePi5: Support SD card boot and expose microSD socket via ACPI.
From the efforts of @Googulator.
2023-03-27 23:05:49 +03:00
WillzenZou
6d0fe9b99d Replace mkimage binary form rockchip's uboot sources to fix "libc.so.6: version `GLIBC_2.34' not found" when build in ubuntu 20.04.
It might be better to integrate the source code of mkimage in rockchip's uboot.
2023-03-27 23:05:49 +03:00
WillzenZou
1832e267aa Platform/OrangePi5: Add OrangePi Logo. 2023-03-27 23:05:49 +03:00
Mario Bălănică
a7c9207fc3 workflows/build: Switch to actions/checkout@v3
Silence warnings.
2023-03-26 04:31:28 +03:00
Mario Bălănică
8bb27dd77e Update workflows
This will build all platforms and configurations on every push or pull request to master.
Creating version tags will rebuild and draft a new release.
2023-03-26 02:22:57 +02:00
Mario Bălănică
f386fdb548 Enable USB PHYs a bit earlier and re-enable OhciDxe
There's no clear dependency set here. It may be better to register a protocol for this instead.
2023-03-25 00:52:04 +02:00
Mario Bălănică
8249a40916 Platform/OrangePi5: Add memory detection 2023-03-24 19:14:23 +02:00
Mario Bălănică
45e5744a13 Move ROCK5B's ArmPlatformLib to Silicon/Rockchip/RK3588 2023-03-24 18:45:31 +02:00
Sophon
b8f77ee0a4 Merge pull request #12 from amazingfate/github-workflow 2023-03-24 17:48:07 +08:00
amazingfate
d0bff2a5ea workflow: fix git submodule init 2023-03-24 04:51:51 +00:00
amazingfate
95c272d4f2 workflow: fix dep gcc-aarch64-linux-gnu 2023-03-24 04:46:38 +00:00
amazingfate
478e247519 add missing dep gettext 2023-03-24 04:43:29 +00:00
amazingfate
8255f785af add test branch to workflow 2023-03-24 04:40:53 +00:00
amazingfate
f361f2e655 add github workflow build 2023-03-24 04:39:37 +00:00
Mario Bălănică
6a38289140 Silicon/Rockchip: Fix Rk3588 case sensitivity issue 2023-03-24 04:20:52 +02:00
Googulator
810662b1b0 Rock 5B: Add bad memory ranges from upstream u-boot
On 16GB Rock 5Bs, memory ranges 0x3FC000000-0x3FC500000 and 0x3FFF00000-0x400000000 cause a SError when accessed.

Enabling full 16GB support exposed this issue.

TODO: Figure out why BSP u-boot is not affected by this (is it already blacklisting these ranges?)
2023-03-23 04:35:42 +01:00
Googulator
32417bc583 Merge pull request #11 from Googulator/master
Rock 5B: Autodetect memory size
2023-03-23 04:08:55 +01:00
Googulator
2b04205689 Rock 5B: Autodetect memory size
Get rid of the hardcoded 8GB value.

SdramLib is intended to be generic, but the base address & bank count are still defined in code.
They will need to be converted to PCDs to be truly generic.
2023-03-23 04:06:38 +01:00
Xilin Wu
e206e0606d ACPI IORT: Set CCA to 0
PCIe is not cache coherent on rk3588
2023-03-22 18:05:48 +08:00
Sophon
ec58d6f883 Merge pull request #10 from Googulator/master 2023-03-22 14:24:51 +08:00
Googulator
26a5d60c67 Expose microSD socket via ACPI
Unfortunately this is not SDHCI or even anything similar, so a custom driver will be required.
2023-03-22 05:45:23 +01:00
Googulator
6ca88e897d Rock 5B: Support SD card boot
Currently, this is done using a forked version of DwEmmcDxe, due to clock handling differences
between RK3568 and RK3588 (on RK3588, the SD interface clock is managed by SCMI).

The driver name is confusing - DwEmmcDxe is for the SD socket, while SdhciHostDxe is for the
eMMC socket. Unfortunately eMMC boot cannot be enabled, because SdhciHostDxe softlocks
if it cannot detect a plugged-in eMMC, instead of allowing fallback to another boot device.
2023-03-22 04:38:33 +01:00
Googulator
78cd614959 Rock 5B: Stop pretending to be Hikey 2023-03-21 22:52:58 +01:00
Googulator
1760d7fb5b Rock 5B: Set combo PHY #0 to PCIE
On the Rock 5B, Combo PHYs #0 and #1 are used for PCIE, while #2 serves the top
USB 3.0 Type A port.

SATA is not accessible, except via a special M.2 breakout adapter, which connects to PHY #1.
Therefore, setting PHY #0 to SATA makes no sense. (In the future, PHY #1 should be made
configurable in the firmware menu, to enable using the M.2 -> SATA adapter.)
2023-03-21 22:22:31 +01:00
Googulator
0839d43c7a Remove more GMAC code for Rock 5B 2023-03-21 22:07:14 +01:00
Googulator
7253525eb2 Remove GMAC init for Rock 5B
The GMAC interface is not used for Ethernet on Rock 5B. Instead, a PCIE-based 2.5GBASE-T Ethernet solution is used.
2023-03-21 22:06:22 +01:00
Googulator
80e8b8ee84 Merge pull request #1 from mariobalanica/master
Merge Mario's logo changes
2023-03-21 21:58:56 +01:00
WillzenZou
6761759867 Platform/OrangePi5: Initial support for OPi5
notes: just turned off the pcie3x4 and changed some names.
2023-03-17 21:09:17 +02:00
Mario Bălănică
5eb829c872 Platform/Radxa: Add LogoDxe 2023-03-17 20:22:21 +02:00
36466 changed files with 55181 additions and 5537645 deletions

98
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,98 @@
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:
runs-on: ubuntu-latest
strategy:
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
- blade3
- h88k
CONFIGURATION: ${{ fromJSON(format('[{0}]', inputs.build-configs || '"Debug"')) }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install dependencies
shell: bash
run: |
sudo apt-get update && \
sudo apt-get install -y \
acpica-tools \
binutils-aarch64-linux-gnu \
build-essential \
device-tree-compiler \
gettext \
git \
gcc-aarch64-linux-gnu \
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: Set up Secure Boot default keys
run: |
mkdir keys
# We don't really need a usable PK, so just generate a public key for it and discard the private key
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Rockchip Platform Key/" -keyout /dev/null -outform DER -out keys/pk.cer -days 7300 -nodes -sha256
curl -L https://go.microsoft.com/fwlink/?LinkId=321185 -o keys/ms_kek.cer
curl -L https://go.microsoft.com/fwlink/?linkid=321192 -o keys/ms_db1.cer
curl -L https://go.microsoft.com/fwlink/?linkid=321194 -o keys/ms_db2.cer
curl -L https://uefi.org/sites/default/files/resources/dbxupdate_arm64.bin -o keys/arm64_dbx.bin
- name: Build platform
shell: bash
run: |
export BUILD_FLAGS="-D SECURE_BOOT_ENABLE=TRUE"
export DEFAULT_KEYS="-D DEFAULT_KEYS=TRUE \
-D PK_DEFAULT_FILE=keys/pk.cer \
-D KEK_DEFAULT_FILE1=keys/ms_kek.cer \
-D DB_DEFAULT_FILE1=keys/ms_db1.cer \
-D DB_DEFAULT_FILE2=keys/ms_db2.cer \
-D DBX_DEFAULT_FILE1=keys/arm64_dbx.bin"
./build.sh --device ${{matrix.PLATFORM}} --release ${{matrix.CONFIGURATION}} --build-flags="${BUILD_FLAGS} ${DEFAULT_KEYS}"
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:
name: ${{matrix.PLATFORM}} UEFI ${{matrix.CONFIGURATION}} image
path: ./*.img
if-no-files-found: error

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"'

36
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: Release
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
permissions:
contents: write
steps:
- name: Download all workflow run artifacts
uses: actions/download-artifact@v3
- name: Create release
uses: softprops/action-gh-release@v1
with:
draft: true
prerelease: false
files: "*/*Release*.img"
fail_on_unmatched_files: true
generate_release_notes: true
append_body: true
body: |
## Usage
Flash the board-specific image to SPINOR with rkdevtool / rkdeveloptool or to an EMMC / SD card.
If your board is not yet supported, using a similar image may work but beware of potential issues.
Debug builds can be found in the artifacts of the workflow run for this release.

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

467
README.md
View File

@@ -1,65 +1,450 @@
# EDK2 UEFI firmware for Rockchip RK35xx platforms
# EDK2 UEFI firmware for Rockchip RK3588 platforms
This repository contains an UEFI firmware implementation based on EDK2 for various RK3588 boards.
**WARNING: This repo is highly experimental**
## Supported platforms
- [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)
## Description
## Supported peripherals
Applicable to all platforms unless otherwise noted.
This repository is based on the official open-source UEFI implementation from Rockchip, which is under active development.
| Device | Status | Notes |
| --- | --- | --- |
| 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 | 🟡 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 | |
| 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 Type-C Controller | 🔴 Not working | Required for PD negotiation and connector orientation switching |
Therefore, to keep up with the work from Rockchip, we should avoid modifying code from Rockchip in most cases.
## Supported OSes
### In ACPI mode
| OS | Version | Tested/supported hardware | Notes |
| --- | --- | --- | --- |
| Windows | 10 (1904x), 11 | [Status](https://github.com/worproject/Rockchip-Windows-Drivers#hardware-support-status) ||
| 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 switch to Device Tree mode. |
Discussion thread: [Windows / UEFI on Rock 5 (Mega thread)](https://forum.radxa.com/t/windows-uefi-on-rock-5-mega-thread/12924)
#### 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).
### In Device Tree mode
| OS | Version | Tested/supported hardware | Notes |
| --- | --- | --- | --- |
| Rockchip SDK Linux | 5.10 legacy, tested with [Armbian rk3588-live-iso](https://github.com/amazingfate/rk3588-live-iso) | Platform-dependent, most peripherals work. | If using a different kernel, see [Device Tree configuration](#device-tree-configuration). |
## 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.
Also check the configuration options described below, some of which may need to be changed depending on the OS used.
If you experience any issues, please see the [Troubleshooting](#troubleshooting) section.
## Configuration settings
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
* CPU clocks are set to 816 MHz (boot default) on platforms without a cooling fan included. If you have adequate cooling, go to the configuration menu -> `CPU Performance` and set all Cluster Presets to `Maximum`.
* If you only wish to boot non-Windows OSes in ACPI mode, go to the configuration menu -> `ACPI / Device Tree` 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.
### Device Tree configuration
For rich Linux support, it is recommended to enable Device Tree mode. You can do so by going to the configuration menu -> `ACPI / Device Tree` and setting `Config Table Mode` to `Device Tree`.
By default, the firmware installs a [DTB compatible with (most) Rockchip SDK Linux 5.10 legacy kernel variants](https://github.com/edk2-porting/edk2-rk3588/tree/master/edk2-rockchip-non-osi/Platform/Rockchip/DeviceTree).
#### Custom Device Tree Blob (DTB) override and overlays
It is also possible to provide a custom DTB and overlays. To enable this, go to the configuration menu -> `ACPI / Device Tree` and set `Support DTB override & overlays` to `Enabled`.
The firmware will now look for overrides in the partition of a selected boot option / OS loader. In most cases this will be the first FAT32 EFI System Partition.
* The base DTB must be located at `\dtb\base\<PLATFORM-DT-NAME>.dtb`.
* The overlays can be placed in:
* `\dtb\overlays` - will be applied first, regardless of the platform.
* `\dtb\overlays\<PLATFORM-DT-NAME>` - will be applied only to the specified platform.
and must have the `.dtbo` extension.
The paths above are relative to the root of the file system. That is, the `dtb` directory must not be placed in a sub-directory.
`<PLATFORM-DT-NAME>` can be:
| Name | Platform |
| --------------------------------------- | ----------------------------- |
| `rk3588s-9tripod-linux` | Indiedroid Nova |
| `roc-rk3588s-pc` | ROC-RK3588S-PC / Station M3 |
| `rk3588-nanopc-t6` | NanoPC T6 |
| `rk3588s-nanopi-r6c` | NanoPi R6C |
| `rk3588s-nanopi-r6s` | NanoPi R6S |
| `rk3588-hinlink-h88k` | H88K |
| `rk3588s-khadas-edge2` | Edge2 |
| `rk3588-blueberry-minipc-linux` | R58 Mini |
| `rk3588-blueberry-edge-v12-linux` | R58X (v1.2) |
| `rk3588-blade3-v101-linux` | Blade 3 |
| `rk3588s-orangepi-5` | Orange Pi 5 |
| `rk3588-orangepi-5-plus` | Orange Pi 5 Plus |
| `rk3588s-rock-5a` | ROCK 5A |
| `rk3588-rock-5b` | ROCK 5B |
In the absence of a custom base DTB override, the overlays are applied on top of the firmware-provided DTB.
The firmware applies some fix-ups to its own DTB depending on the user settings (e.g. PCIe/SATA/USB selection, making SATA overlays redundant). These fix-ups are not applied to a custom base DTB - overlays must be used instead.
If the application of an overlay fails (e.g. due to it being invalid in regard to the base DTB), all overlays are discarded, including those that got applied up to that point.
If the custom base DTB is invalid, the firmware-provided one will be passed to the OS instead.
This entire process is logged to the [serial console](#advanced-troubleshooting). There's currently no other way to see potential errors.
## 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.
Assuming the firmware loads fine:
* 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.
* Make sure the power supply and cable are good
#### Networking does not work
* Only Realtek PCIe and USB controllers are supported. Native Gigabit provided by RK3588 isn't.
* Some boards with Realtek NICs do not have a MAC address set at factory and will show-up as being all zeros in UEFI, possibly preventing the adapter from obtaining an IP address.
You can easily fix this by writing the MAC address manually:
1. Boot into Linux and open up a terminal. The commands below apply to Armbian with legacy kernel.
2. Install the headers for your kernel version:
```bash
sudo apt install -y linux-headers-legacy-rk35xx
```
3. Clone Realtek PGTool and build the driver:
```bash
git clone https://github.com/redchenjs/rtnicpg
cd rtnicpg
make
```
4. Unload all Realtek modules and load the driver built above:
```bash
sudo rmmod pgdrv
sudo ./pgload.sh
```
Note: make sure there aren't any remaining Realtek modules loaded after this, except for the new `pgdrv`.<br> If you have `r8125` built-in, you might have to reboot with `initcall_blacklist=rtl8125_init_module` as a kernel parameter (in Grub).
5. Burn a MAC address into the eFuses:
For only one NIC:
```bash
sudo ./rtnicpg-aarch64-linux-gnu /efuse /nodeid 00E04C001234
```
For two or more:
```bash
sudo ./rtnicpg-aarch64-linux-gnu /efuse /# 1 /nodeid 00E04C001234
sudo ./rtnicpg-aarch64-linux-gnu /efuse /# 2 /nodeid 00E04C001235
```
`00E04C001234` is an example address. You can generate random and unique ones using: <https://www.macvendorlookup.com/mac-address-generator>
**Note:** the number of eFuses is limited, thus MAC addresses can only be changed a few times.
### 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.
Using Arch Linux as example
1. Install required packages:
Install required packages:
```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
```
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
```
Required packages for Ubuntu/Debian:
```bash
sudo apt install git gcc g++ build-essential gcc-aarch64-linux-gnu iasl python3-pyelftools
```
2. Clone the repository:
```bash
git clone https://github.com/edk2-porting/edk2-rk3588.git --recursive
cd edk2-rk3588
```
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-rk3588/tree/master/configs)):
```bash
./build.sh --device rock-5b --release Release # (or Debug)
```
Build UEFI (ROCK 5B for example):
```bash
./build.sh -d rock-5b
```
## TODO
- Create gpt image in build process instead of using the prebuilt one
- Fix resetting to maskrom
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 |
| 0x00088000 | | IDBlock | idblock.bin |
| 0x00100000 | 0x00500000 | BL33_AP_UEFI FV | ${DEVICE}_EFI.itb |
| 0x007C0000 | 0x00010000 | NV_VARIABLE_STORE | |
| 0x007D0000 | 0x00010000 | NV_FTW_WORKING header | |
| 0x007E0000 | 0x00010000 | NV_FTW_WORKING data | NV_DATA.img |
| 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 |
| Address | Size | Desc | File |
| ---------- | :--: | ------------- | ------------------- |
| 0x00040000 | | ATF | bl31_0x00040000.bin |
| 0x000f0000 | | ATF | bl31_0x000f0000.bin |
| 0x00200000 | | UEFI FV | BL33_AP_UEFI.Fv |
| 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:
```
setvar <NAME> -guid 10f41c33-a468-42cd-85ee-7043213f73a3
```
The syntax to write a setting is:
```
setvar <NAME> -guid 10f41c33-a468-42cd-85ee-7043213f73a3 -bs -rt -nv =<VALUE>
```
`VALUE` must be in hexadecimal.
For string-type settings, the syntax to write is:
```
setvar <NAME> -guid 10f41c33-a468-42cd-85ee-7043213f73a3 -bs -rt -nv =L"<VALUE>" =0x0000
```
### CPU Performance
#### Cluster clocks / voltages
| Variable | NAME | VALUE |
| --------------------------------- |----------------------------------- |----------------------------- |
| CPU`x` Clock Preset | `CpuPerf_CPUxClusterClockPreset` | Boot default = `0x00000000`<br> Min = `0x00000001`<br> Max = `0x00000002`<br> Custom = `0x00000003` |
| CPU`x` Custom Clock Preset (MHz) | `CpuPerf_CPUxClusterClockCustom` | Hex numeric option, 4-bytes<br> See below. |
| CPU`x` Voltage Mode | `CpuPerf_CPUxClusterVoltageMode` | Auto = `0x00000000` (default)<br> Custom = `0x00000001`|
| CPU`x` Custom Voltage (uV) | `CpuPerf_CPUxClusterVoltageCustom` | Hex numeric value, 4-bytes<br> See below. |
`x` can be :
* `L` for LITTLE cluster
* `B01` for big cluster #0
* `B23` for big cluster #1
`CpuPerf_CPUxClusterClockCustom` can have one of the following values:
* 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`.
Default value depends on cluster type.
### PCIe/SATA/USB Combo PIPE PHY
| 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 / Device Tree
| Variable | NAME | VALUE |
| ----------------- | ----------------- | --------------------------------- |
| Config Table Mode | `ConfigTableMode` | ACPI = `0x00000001`<br> DeviceTree = `0x00000002`<br> Both = `0x00000003` |
#### ACPI Configuration
| Variable | NAME | VALUE |
| --------------- | --------------- | --------------------------------- |
| USB 2.0 Support | `AcpiUsb2State` | Enabled = `0x00000001`<br> Disabled = `0x00000000` |
#### Device Tree Configuration
| Variable | NAME | VALUE |
| ------------------------------- | --------------------- | --------------------------------- |
| Support DTB override & overlays | `FdtSupportOverrides` | Enabled = `0x01`<br> Disabled = `0x00` |
### 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 :
```
setvar CpuPerf_CPULClusterClockPreset -guid 10f41c33-a468-42cd-85ee-7043213f73a3
```
- To change the 'CPUL Clock Preset' setting to 'Maximum' :
```
setvar CpuPerf_CPULClusterClockPreset -guid 10f41c33-a468-42cd-85ee-7043213f73a3 -bs -rt -nv =0x00000002
```
## Licenses
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).
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 files in `edk2-rockchip-non-osi` are licensed as **GPL-2.0-only**.
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>
* Hack w/ Rockchip Telegram: <https://t.me/UEFIonRockchip>
* Windows on R Discord: <https://discord.gg/vjHwptUCa3>
## Credits & alternatives
This firmware is based on Rockchip's initial efforts at <https://gitlab.com/rk3588_linux/rk/uefi-monorepo>.
For RK356x, check out the Quartz64-UEFI project at https://github.com/jaredmcneill/quartz64_uefi, from which we also reused some code.

View File

@@ -8,12 +8,14 @@ function _help(){
echo "Options: "
echo " --device DEV, -d DEV: build for DEV."
echo " --all, -a: build all devices."
echo " --gui: Enable simple-init GUI."
echo " --release MODE, -r MODE: Release mode for building, default is 'DEBUG', 'RELEASE' alternatively."
echo " --toolchain TOOLCHAIN: Set toolchain, default is 'GCC5'."
echo " --toolchain TOOLCHAIN: Set toolchain, default is 'GCC'."
echo " --skip-rootfs-gen: skip generating SimpleInit rootfs to speed up building."
echo " --clean, -C: clean workspace and output."
echo " --distclean, -D: clean up all files that are not in repo."
echo " --outputdir, -O: output folder."
echo " --build-flags: flags appended to the EDK2 build process."
echo " --help, -h: show this help."
echo
exit "${1}"
@@ -21,14 +23,26 @@ 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}
FLASHFILES="FlashHead.bin FlashData.bin FlashBoot.bin"
rm -f rk35*_spl_loader_*.bin idblock.bin rk35*_ddr_*.bin rk35*_usbplug*.bin UsbHead.bin ${FLASHFILES}
DDRBIN=$(grep '^FlashData' ${ROOTDIR}/misc/rkbin/RKBOOT/${MINIALL_INI} | cut -d = -f 2-)
SPL=$(grep '^FlashBoot' ${ROOTDIR}/misc/rkbin/RKBOOT/${MINIALL_INI} | cut -d = -f 2-)
# 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/${DDRBIN}:${ROOTDIR}/misc/rkbin/${SPL} idblock.bin
popd
echo " => idblock.bin build done"
}
@@ -45,7 +59,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"
@@ -58,17 +72,12 @@ function _pack(){
echo " => Building 8MB NOR FLASH IMAGE"
cp ${WORKSPACE}/Build/${PLATFORM_NAME}/${_MODE}_${TOOLCHAIN}/FV/NOR_FLASH_IMAGE.fd ${WORKSPACE}/RK3588_NOR_FLASH.img
# backup NV_DATA at 0x007C0000
dd if=${WORKSPACE}/RK3588_NOR_FLASH.img of=${WORKSPACE}/NV_DATA.img bs=1K skip=7936
# 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
# restore NV_DATA at 0x007C0000
dd if=${WORKSPACE}/NV_DATA.img of=${WORKSPACE}/RK3588_NOR_FLASH.img bs=1K seek=7936
cp ${WORKSPACE}/RK3588_NOR_FLASH.img ${ROOTDIR}/
}
@@ -109,6 +118,9 @@ function _build(){
-p "${ROOTDIR}/${DSC_FILE}" \
-b "${_MODE}" \
-D FIRMWARE_VER="${GITCOMMIT}" \
-D ENABLE_SIMPLE_INIT="${BUILD_GUI}" \
-D CONFIG_SOC="${SOC}" \
${BUILD_FLAGS} \
||return "$?"
_pack
@@ -117,7 +129,7 @@ function _build(){
echo "Build done: RK3588_NOR_FLASH.img"
}
function _clean(){ rm --one-file-system --recursive --force "${WORKSPACE}" "${OUTDIR}"/boot-*.img "${OUTDIR}"/uefi-*.img*; }
function _clean(){ rm --one-file-system --recursive --force "${OUTDIR}"/workspace "${OUTDIR}"/RK3588_*.img "${OUTDIR}"/uefi-*.img*; }
function _distclean(){ if [ -d .git ];then git clean -xdf;else _clean;fi; }
@@ -130,10 +142,12 @@ DEVICE=""
MODE=DEBUG
CLEAN=false
DISTCLEAN=false
TOOLCHAIN=GCC5
TOOLCHAIN=GCC
BUILD_FLAGS=""
export ROOTDIR OUTDIR
export GEN_ROOTFS=true
OPTS="$(getopt -o t:d:haCDO:r -l toolchain:,device:,help,all,skip-rootfs-gen,clean,distclean,outputdir:,release: -n 'build.sh' -- "$@")"||exit 1
export BUILD_GUI=false
OPTS="$(getopt -o t:d:haCDO:r -l toolchain:,device:,help,all,skip-rootfs-gen,gui,clean,distclean,outputdir:,release:,build-flags: -n 'build.sh' -- "$@")"||exit 1
eval set -- "${OPTS}"
while true
do case "${1}" in
@@ -143,8 +157,10 @@ do case "${1}" in
-D|--distclean) DISTCLEAN=true;shift;;
-O|--outputdir) OUTDIR="${2}";shift 2;;
--skip-rootfs-gen) GEN_ROOTFS=false;shift;;
--gui) BUILD_GUI=true;shift;;
-r|--release) MODE="${2}";shift 2;;
-t|--toolchain) TOOLCHAIN="${2}";shift 2;;
--build-flags) BUILD_FLAGS="${2}";shift 2;;
-h|--help) _help 0;shift;;
--) shift;break;;
*) _help 1;;
@@ -154,7 +170,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"
@@ -170,34 +186,37 @@ do
fi
done
[ -n "${_SIMPLE_INIT}" ]||_error "SimpleInit not found, please see README.md"
[ -f "configs/${DEVICE}.conf" ]||_error "Device configuration not found"
[ -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 GCC_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-rockchip-non-osi:${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" ]
@@ -206,8 +225,11 @@ then
for i in configs/*.conf
do
DEV="$(basename "$i" .conf)"
echo "Building ${DEV}"
_build "${DEV}"||E="$?"
if [ "${DEV}" != "RK3588" ]&&[ "${DEV}" != "RK3568" ]
then
echo "Building ${DEV}"
_build "${DEV}"||E="$?"
fi
done
exit "${E}"
else

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

3
configs/edge2.conf Normal file
View File

@@ -0,0 +1,3 @@
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

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

3
configs/nanopc-t6.conf Normal file
View File

@@ -0,0 +1,3 @@
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

3
configs/orangepi-5.conf Normal file
View File

@@ -0,0 +1,3 @@
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

3
configs/r58-mini.conf Normal file
View File

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

3
configs/r58x.conf Normal file
View File

@@ -0,0 +1,3 @@
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

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

3
configs/rock-5a.conf Normal file
View File

@@ -0,0 +1,3 @@
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

3
configs/station-m3.conf Normal file
View File

@@ -0,0 +1,3 @@
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