9
0
Fork 0
barebox/Documentation/filesystems/smhfs.rst

58 lines
1.7 KiB
ReStructuredText

.. index:: smhfs (filesystem)
.. _filesystems_smhfs:
File I/O over ARM semihosting support
=====================================
Target Side Setup
-----------------
barebox can communicate with debug programms attached via SWD/JTAG by
means of ARM semihosting protocol.
Not all of the I/O primitives neccessary to implement a full
filesystem are exposed in ARM semihosting API and because of that some
aspects of filesystem funcionality are missing. Implementation does
not have support for listing directories. This means a
:ref:`command_ls` to a SMHFS-mounted path will show an empty
directory. Nevertheless, the files are there.
Example::
barebox:/ mount -t smhfs /dev/null /mnt/smhfs
Host Side Setup
---------------
FIXME: Currently OpenOCD does not work correctly if Barebox is built
with MMU enabled, so before using this featrue, please make sure that
MMU is disabled in your particular configuration
To make semihosting work host machine connected to the target via
JTAG/SWD must have semihosting capable debug software running. One
such tool would be OpenOCD. For ARM9 and ARM11 CPUs most recent
release of OpenOCD should suffice, however for ARMv7A based devices
patched version from here http://openocd.zylin.com/#/c/2908/ has to be
used.
The following steps are required to set up a operational semihosting
channel:
1. In a terminal start OpenOCD and specify your particular board
and debug adapter used.
2. In a separate terminal connect to OpenOCD via telnet
telnet localhost 4444
3. In resulting telnet session execute the following commands:
halt
arm semihosting on
resume
After that is done all of the semihosting related functions should be
ready to use.