Skip to content

Conversation

@driver1998
Copy link
Contributor

@driver1998 driver1998 commented Jan 17, 2022

This adds two new BSPs: RPi3.ARM64 and RPi4.ARM64.

Currently they require UEFI firmware from PFTF to be manually added to bspfiles/RPix.ARM64/Packages/RPi.BootFirmware before exporting the BSP.

Also the proprietary USB and LAN drivers for Pi3 are not included, and have to be manually added.

A special INF file, rpirshub3.inf, is added to bring up XHCI on Pi 4 on Windows builds <= RS5.

Check out https://github.com/driver1998/windows-drivers/blob/arm64-iot/IOTARM64.md for more details.

Current Status:

Features Pi 3 Pi 4
WiFi
Bluetooth
UART
LAN ✔(1) ❌ (1)
Rear USB
USB-C OTG N/A ✔ (2)
GPIO
I2C ✔(3) ✔ (3)
SPI ✔(3) ✔ (3)
Mailbox
PWM ❓(4)
Audio Jack ❓(4)
HDMI Audio
  1. LAN95xx/LAN78xx on Pi 3 requires Microchip driver, GENET does not work on IoT Core. USB LAN Adapter works but you'll need to provide your own drivers.
  2. Will work if you limit RAM to 1GB
  3. Will only work if you modify ACPI to use the old, Microsoft-specific MsftFunctionConfig resources to describe pin muxing, instead of the new, standard PinFunction used in upstream EDK2 nowadays (I doubt a patch to revert this change will ever be merged)
  4. Untested, hopefully they are not affected by PinFunction issues.

USB Root Hub INF on builds (RS5 or earlier) with broken XHCI driver.
On these builds, the Hardware ID of the root hub would become
B\ROOT_HUB30# instead of the normal USB\ROOT_HUB30
and the stock INF will fail to work.
The new RPi3.ARM64 and RPi4.ARM64 BSP will be side by side
with the existing RPi ARM32 BSP for RPi2/3.
Move RPi to its own directory to avoid conflition.
binexport scripts will be updated when the new BSPs are added.
@binarymaster
Copy link

Will only work if you modify ACPI to use the old, Microsoft-specific MsftFunctionConfig resources to describe pin muxing

I doubt a patch to revert this change will ever be merged

While trying to upstream a revert patch does not make much sense, one can try to make a patch that will allow to switch between MS-specific function and the standard PinFunction which is used by default now.

The switch can be then added to the UEFI setup application.

Copy link
Collaborator

@mariobalanica mariobalanica left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants