Update README.md
authorankeet <postmillenial@users.noreply.github.com>
Wed, 26 Oct 2016 17:47:46 +0000 (13:47 -0400)
committerGitHub <noreply@github.com>
Wed, 26 Oct 2016 17:47:46 +0000 (13:47 -0400)
Adding OSX build instructions

README.md

index bb5b732..8dbf8db 100755 (executable)
--- a/README.md
+++ b/README.md
@@ -11,6 +11,43 @@ All Broadcom headers are licensed under 3-Clause BSD License while the rest of t
 \r
 You need Julian Brown's VC4 toolchain to build this (https://github.com/puppeh/vc4-toolchain) as well as a arm-none-eabi-toolchain. You can tweak the paths to it in CROSS_COMPILE in `Makefile` (for VC4) and for ARM in `arm_chainloader/Makefile`, although by default it assumes they are currently in your path. Contributors should not commit their personal paths. Contributors should also use tabs for indentation. After you've done it, run `buildall.sh` and you should have a blob in `build/bootcode.bin`. \r
 \r
+### Building on OSX\r
+\r
+#### Dependencies:\r
+\r
++ vc4-toolchain (https://github.com/puppeh/vc4-toolchain)\r
+\r
++ arm-none-abi-toolchain (https://launchpad.net/gcc-arm-embedded/+download)\r
+    + compilation instructions for OSX in the [pdf](https://launchpadlibrarian.net/287100910/How-to-build-toolchain.pdf)\r
+\r
+#### Build instructions: \r
+Compiling for osx is basically the same; you just have to be careful of OSX's built-in gcc (it's actually lldb) and the default version of guile (2.x and totally not compatible with older syntax). \r
+\r
+install dependencies: \r
+\r
+    brew install gcc-6 guile18\r
+\r
+install the arm toolchain.\r
+\r
+    # follow the instructions in the pdf linked above\r
+\r
+Download the source and dependencies together for vc4-toolchain:\r
+\r
+    git clone --recursive https://github.com/puppeh/vc4-toolchain.git\r
+\r
+Once it’s done, you’ll need to add file paths to your $PATH variable: \r
+\r
+    export PATH=$PATH:/path/to/gcc-arm-none-eabi-5_4-2016q3/bin:/path/to/vc4-toolchain/prefix/bin\r
+\r
+From the main instructions ("After you've done it, run buildall.sh and you should have a blob in build/bootcode.bin"):\r
+\r
+    git clone https://github.com/christinaa/rpi-open-firmware; cd rpi-open-firmware\r
+    CC=gcc-6 LIBRARY_PATH=/lib:/lib64 ./build-all.sh\r
+\r
+Note: on the last step, i set the library path here because mine initially had a trailing “:” and something in the build chain didn’t like that. CC=gcc-6 is just to ensure it's using the gcc install from the first step.\r
+\r
+That's it! Your shiny new binary is sitting at rpi-open-firmware/build/bootcode.bin.\r
+\r
 ## Technical Details\r
 The firmware is split into two parts, a VC4 part and and ARM part. The VC4 part initializes PLLC and moves VPU over to it, and then brings up UART. It then performs SDRAM initialization, making SDRAM available at `0xC0000000` (uncached alias). The ARM loader will do ARM initialization and then copy the ARM bootloader that's embedded in it to the alias. It will then map it to `0x0` in ARM's memory space and start ARM. The code under `arm_chainloader` is what will run on the ARM. \r
 \r
This page took 0.023644 seconds and 4 git commands to generate.