Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Xiashangning committed Nov 20, 2021
2 parents 87450ad + d92afe2 commit 8add2e6
Showing 1 changed file with 11 additions and 17 deletions.
28 changes: 11 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ Big Sur + Surface -> Big Surface (LOL)

PS : If you have a better name, please let me know.

**A proposition for a fully intergrated kext for all Surface Pro related hardwares**
**A proposition for a fully intergrated kext for all Surface related hardwares**

## How to install

You will need to add the kext into opencore's `config.plist` in the order specified as below
You will need to first DELETE all the original VoodooI2C series Kext, and then add the kext into opencore's `config.plist` in the order specified as below
<img width="407" alt="截屏2021-06-29 下午8 26 08" src="https://user-images.githubusercontent.com/18528518/123798086-6feaca00-d919-11eb-9e87-2fb3d6268cfe.png">

## TODO
Expand All @@ -17,26 +17,20 @@ You will need to add the kext into opencore's `config.plist` in the order specif
> The code is based on VoodooI2CHID.kext, but added **integrated and hot pluggable touchpad&keyboard support**.
- Battery status--Surface Serial Hub **Most Important**
> See https://github.com/linux-surface/surface-aggregator-module.
> To obtain the battery readout, one needs to register the operation handler for _SAN device(called via _SAN.RQST) and send the request to SSH device.
> SSH is a UART controller, **the low level uart operation(tx, rx)** is needed to be completed. Thus an expert in UART development is needed.
> Other than that, the rest of the code is not hard to port, mainly how to encode and decode the request packages.
>
> The Surface Laptop and Surface Book things can be deleted.
- Performance mode

> Depends on Surface Serial Hub driver
- Buttons
- Buttons **Done**

> WIP
- Ambient Light Sensor
> Problem remains to be solved: Power Button fails after wake from sleep (with deep idle enabled). Might need to investigate into Linux code to see if there are resetting codes when wakeup
- Ambient Light Sensor **Done**
> ACPI device name: ACSD, attached under I2C4
> The Linux source code is attached in the folder, just one source file, should be 'easy' to port.(Maybe we don't need gesture and proximity)
> Driver should attach to VoodooI2CDeviceNub and use it to perform I2C IO.
> See VoodooI2CSynaptics for code reference.
- Cameras
>
> Problem remains to be solved: Only works after a hot reboot from Windows, otherwise its readout are around 0-3 (in normal situation: 200-300 in room)
- Cameras Impossible so far
> ACPI devices: CAMR,CAMF,CAM3(infrared camera)
>
> Corresponding device id: OV8865,OV5693,OV7251
> Not so important, they use I2C to transfert data. Linux code available.
>
> Even Linux failed to drive the cameras on SP7 (IPU4), SP6 and before (IPU3) might be possible but I do not have the device.
- Touch Screen
> Device id: 0x34E4
> Linux uses `mei` to communicate with the touch screen(ipts), don't know the equivalant thing on macOS nor how to communicate with it.

0 comments on commit 8add2e6

Please sign in to comment.