Juno: Change I2C bus speed used for HDMI to 100kHz.
[platform/kernel/linux-arm64.git] / README.md
1 ### 1.  Release details
2 *  Product Release Status
3       - 1.0-Juno
4 *  Linux Kernel BSP
5       - The Linux Kernel BSP contains the upstream version 3.15-rc8 of the 
6         Linux kernel modified to support the Juno development board.
7 *  Functionality included
8       - Linux kernel configures the Juno Compute System and a limited set
9         of peripherals on the Juno development board.
10 *  New features
11       - full native resolution on HDMI connectors.
12       - USB 1.1 and USB 2.0 devices fully working
13       - Initial support for HMP patchset for AArch64. Please note that the patch has not been fine-tuned for Juno yet.
14       - Initial support for DVFS
15       - Unified defconfig for both standard Linux filesystem and Android
16       - Double buffering support when paired with Mali DDK code.
17 *  Limitations
18       - No cpuidle support at the moment. Code is present but performance has not been tuned.
19 *  Issues resolved since last release
20       - USB keyboard issues fixed
21       - Drivers for DVFS and cpufreq
22       - SCPI clock framework updated to follow the new MHU driver that uses the mailbox mechanisms
23 *  Test cases and results
24       - This release does not contain any test cases or example code other
25           than those already present in the upstream version of the kernel.
26 *  Other information
27       - Please refer to the supplied documentation.
28
29 ### 2.  Installation
30
31 This is only a short summary of the steps required in order to build
32 the Linux kernel and the Juno device tree bindings binaries. It
33 assumes that the GNU C cross-compiler used is already set
34 in the _$PATH_ environment variable and that the name prefix for the
35 toolchain executables is 'aarch64-linux-gnu-'. If this is different
36 in your setup, please adjust the command lines accordingly.
37
38 *   Ensure clean state of the source code deliverable
39
40     ```
41 $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- mrproper
42     ```
43
44 *   Initial configuration of the kernel source code
45
46     ```
47 $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
48     ```
49
50 *   Please note that if you plan to use the kernel with an Android software stack, the provided defconfig enables all the features needed for it.
51
52 *   Kernel compilation. This step needs to be repeated after changes in the kernel source code.
53
54     ```
55 $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8
56     ```
57
58 *   Device Tree compilation. This step needs to be repeated after changes in the arch/arm64/boot/dts/juno.dts file.
59
60     ```
61 $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs
62     ```
63
64 *   Deployment. The kernel binary will be stored in _arch/arm64/boot/Image_ and
65         the compiled device tree bindings in _arch/arm64/boot/dts/juno.dtb_. Copy
66         these two files to the SOFTWARE directory on the mounted Juno board storage.
67
68 ###3.  Deploying a root filesystem
69
70 * This BSP code has been tested with **_minimal_** version of the AArch64 OpenEmbedded
71       filesystem from Linaro.
72 * Download the filesystem from here: [14.02 minimal release](http://releases.linaro.org/14.02/openembedded/aarch64/linaro-image-minimal-genericarmv8-20140223-649.rootfs.tar.gz)
73 * Format a partition on the USB mass storage as ext4 filesystem. If another 
74       filesystem is preferred then support needs to be enabled in the kernel.
75 * Mount the USB mass storage on the computer and extract the rootfs as root
76       onto the formatted partition (replace */media/usb_storage* with the correct
77       path to the mounted directory)
78
79     ```
80 $ sudo tar zxf linaro-image-minimal-genericarmv8-20140223-649.rootfs.tar.gz -C /media/usb_storage/
81     ```
82 * Return to the directory where you have compiled the kernel and install the built modules onto the USB mass storage partition:
83
84     ```
85 $ sudo make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=/media/usb_storage modules_install
86     ```
87 * Unmount the USB mass storage and place it onto the Juno board in one of the
88       USB ports next to the HDMI connectors.
89
90 ###4.  Tools
91
92 The Linux kernel BSP depends on the availability of a GNU C cross-compiler
93     that supports ARM's v8 architecture. 
94
95 ###5.  Support
96
97 Any feedback is to be routed through [support@arm.com](mailto:support@arm.com).