diff options
Diffstat (limited to 'user/bsps/arm/beagle.rst')
-rw-r--r-- | user/bsps/arm/beagle.rst | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/user/bsps/arm/beagle.rst b/user/bsps/arm/beagle.rst index 5789bb8..55f75c0 100644 --- a/user/bsps/arm/beagle.rst +++ b/user/bsps/arm/beagle.rst @@ -32,7 +32,7 @@ To boot via uboot, the ELF must be converted to a U-Boot image like below: .. code-block:: none - arm-rtems5-objcopy hello.exe -O binary app.bin + arm-rtems@rtems-ver-major@-objcopy hello.exe -O binary app.bin gzip -9 app.bin mkimage -A arm -O linux -T kernel -a 0x80000000 -e 0x80000000 -n RTEMS -d app.bin.gz rtems-app.img @@ -67,23 +67,39 @@ Add the following to a file named uEnv.txt: I2C Driver ---------- -The Beagle has the `i2c-0` device registered at initialization. For registering -`i2c-1` and `i2c-2` ``bbb_register_i2c_1()`` and -``bbb_register_i2c_2()`` wrapper functions are respectively used. +The Beagle i2c initialization is based on the device tree. To initialize a i2c +device, the user has to enable the respective node in the device tree using +overlays. -For registering an I2C device with a custom path (say `/dev/i2c-3`) the -function ``am335x_i2c_bus_register()`` has to be used. +For registering an I2C device with a custom path (say `/dev/i2c-eeprom`) an +overlay has to be provided. The overlay must add an additional attribute +`rtems,path` with the custom path as value to the respective i2c node. -The function prototype is given below: +For example, + +.. code-block:: none + + /dts-v1/; + + / { + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; -.. code-block:: C + fragment@0 { + target = <0xffffffff>; - int am335x_i2c_bus_register( - const char *bus_path, - uintptr_t register_base, - uint32_t input_clock, - rtems_vector_number irq - ); + __overlay__ { + compatible = "rtems,bsp-i2c", "ti,omap4-i2c"; + status = "okay"; + rtems,path = "/dev/i2c-eeprom"; + }; + }; + + __fixups__ { + i2c0 = "/fragment@0:target:0"; + }; + }; + +The above example registers a custom path `/dev/i2c-eeprom` for i2c0. SPI Driver ---------- @@ -94,7 +110,7 @@ For registering with a custom path, the ``bsp_register_spi()`` can be used. The function prototype is given below: -.. code-block:: C +.. code-block:: c rtems_status_code bsp_register_spi( const char *bus_path, @@ -138,7 +154,7 @@ The modification is: The resulting wiring is: -.. code-block:: +.. code-block:: none 1 === /--=== 2 3 === | === 4 @@ -151,7 +167,7 @@ The resulting wiring is: 17 === === 18 19 === === 20 -.. figure:: ../../images/user/bbb-p2-debug-mod.jpg +.. figure:: ../../../images/user/bbb-p2-debug-mod.jpg :width: 50% :align: center :alt: BeagleBone Black JTAG Hardware Modification @@ -183,7 +199,7 @@ Cortex M only debuggers (like the Segger J-Link Edu Mini) won't work. If the debugger offers a gdb server (like OpenOCD or Segger J-Link) the following gdb start script can be used: -.. code-block:: +.. code-block:: none define reset echo -- Reset target and wait for U-Boot to start kernel.\n |