Updated Home (markdown)

Patrik Jakobsson
2015-12-20 21:14:49 +01:00
parent 7613d7342a
commit 75f3ba0b29

56
Home.md

@@ -1,64 +1,20 @@
# Welcome to the bcwc_pcie wiki!
The goal of this project is to write a Linux driver for the Broadcom 1570 PCIe webcam.
# Motivation
Get the webcam included in the current Macbooks (mid 2013 and later) working on Linux.
The webcam seems to be what Apple is shipping with their latest hardware. The switch from iSight to Broadcom is due to the increased bandwidth requirement for high definition video streaming.
# Difficulties
It uses the PCIE bus rather than USB. The USB standard includes a generic interface for video devices but unfortunately PCI/PCIE does not. No documentation or official statement regarding a Linux driver has been given by Broadcom so far.
# Approach
It's a mix of probing, reverse engineering, reading up on similar hardware, guessing, etc.
# Current Status
The driver is not working and it is not recommended that you try it on real hardware unless you're a developer and you're fine with frying your (probably expensive) computer.
The driver is now able to stream video. It can be accessed through the V4L2 API. It is still experimental so you mileage may vary.
# Roadmap
These are the needed steps identified so far. Some of them needs to be done in parallel. There are probably more stuff and the difficulty of each step is unknown. The roadmap will be updated when more information is available.
* ~~PCI driver prototype~~
* ~~Resource allocation~~
* ~~PCIE link init~~
* ~~Initial SoC bootup and config~~
* ~~PLL reset~~
* ~~PLL init~~
* DDR PHY
* ~~Controller soft reset~~
* ~~Controller init~~
* ~~Save / Restore configuration~~
* Timings calibration
* ~~Memory verification~~
* ~~RD DATA DELAY FIFO~~
* ~~RE BYTE FIFO~~
* ~~One RE FIFO~~
* RD DQS (started)
* WR DQ
* WR DM
* ADDR
* Sensor(s)
* Image signal processor
* IPC
* Firmware loading
* Control interface / Command stream
* Interrupts
* Memory management / sync
* Runtime power management
* ...
* Add V4L2 interface
* Prepare for mainline inclusion
# Other Questions
### Can we use firmware from osx drivers?
The firmware for the ISP is included in the OSX .kext file and can be extracted with the utilities found in the firmware directory. [Thanks to: Dominic Chen]
# Known issues
* Suspend / resume doesn't work.
* Only firmware version 1.43 (latest OSX El Capitan) works with the driver.
* A script for extracting the sensors calibration settings files (set files) from the OSX driver is missing. This is however not required to to use the driver but will increase the image quality.
### How can I help?
* Code contributions are welcome.
* Star the repo. Perhaps numbers might give Broadcom a reason to help out.
* If someone could convince Broadcom to release the specs it would be immensely helpful.
Why not leave them a courteous request to provide information with a link to this repo:
[http://www.broadcom.com/contact/feedback.php](http://www.broadcom.com/contact/feedback.php)
* Test the driver and report any issues
* You can also add to the bounty on Bountysource which gets passed on when the driver becomes sufficiently functional.
Note that this was started independently by members of the crowd here to help encourage and thank the developer(s) and never asked for by the developer(s).