~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/misc-devices/c2port.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/misc-devices/c2port.rst (Version linux-6.11.5) and /Documentation/misc-devices/c2port.rst (Version linux-6.1.114)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2 .. include:: <isonum.txt>                           2 .. include:: <isonum.txt>
  3                                                     3 
  4 ===============                                     4 ===============
  5 C2 port support                                     5 C2 port support
  6 ===============                                     6 ===============
  7                                                     7 
  8 (C) Copyright 2007 Rodolfo Giometti <giometti@e      8 (C) Copyright 2007 Rodolfo Giometti <giometti@enneenne.com>
  9                                                     9 
 10 This program is free software; you can redistr     10 This program is free software; you can redistribute it and/or modify
 11 it under the terms of the GNU General Public L     11 it under the terms of the GNU General Public License as published by
 12 the Free Software Foundation; either version 2     12 the Free Software Foundation; either version 2 of the License, or
 13 (at your option) any later version.                13 (at your option) any later version.
 14                                                    14 
 15 This program is distributed in the hope that i     15 This program is distributed in the hope that it will be useful,
 16 but WITHOUT ANY WARRANTY; without even the imp     16 but WITHOUT ANY WARRANTY; without even the implied warranty of
 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PU     17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 18 GNU General Public License for more details.       18 GNU General Public License for more details.
 19                                                    19 
 20                                                    20 
 21                                                    21 
 22 Overview                                           22 Overview
 23 --------                                           23 --------
 24                                                    24 
 25 This driver implements the support for Linux o     25 This driver implements the support for Linux of Silicon Labs (Silabs)
 26 C2 Interface used for in-system programming of     26 C2 Interface used for in-system programming of micro controllers.
 27                                                    27 
 28 By using this driver you can reprogram the in-     28 By using this driver you can reprogram the in-system flash without EC2
 29 or EC3 debug adapter. This solution is also us     29 or EC3 debug adapter. This solution is also useful in those systems
 30 where the micro controller is connected via sp     30 where the micro controller is connected via special GPIOs pins.
 31                                                    31 
 32 References                                         32 References
 33 ----------                                         33 ----------
 34                                                    34 
 35 The C2 Interface main references are at (https     35 The C2 Interface main references are at (https://www.silabs.com)
 36 Silicon Laboratories site], see:                   36 Silicon Laboratories site], see:
 37                                                    37 
 38 - AN127: FLASH Programming via the C2 Interfac     38 - AN127: FLASH Programming via the C2 Interface at
 39   https://www.silabs.com/Support Documents/Tec     39   https://www.silabs.com/Support Documents/TechnicalDocs/an127.pdf
 40                                                    40 
 41 - C2 Specification at                              41 - C2 Specification at
 42   https://www.silabs.com/pages/DownloadDoc.asp     42   https://www.silabs.com/pages/DownloadDoc.aspx?FILEURL=Support%20Documents/TechnicalDocs/an127.pdf&src=SearchResults
 43                                                    43 
 44 however it implements a two wire serial commun     44 however it implements a two wire serial communication protocol (bit
 45 banging) designed to enable in-system programm     45 banging) designed to enable in-system programming, debugging, and
 46 boundary-scan testing on low pin-count Silicon     46 boundary-scan testing on low pin-count Silicon Labs devices. Currently
 47 this code supports only flash programming but      47 this code supports only flash programming but extensions are easy to
 48 add.                                               48 add.
 49                                                    49 
 50 Using the driver                                   50 Using the driver
 51 ----------------                                   51 ----------------
 52                                                    52 
 53 Once the driver is loaded you can use sysfs su     53 Once the driver is loaded you can use sysfs support to get C2port's
 54 info or read/write in-system flash::               54 info or read/write in-system flash::
 55                                                    55 
 56   # ls /sys/class/c2port/c2port0/                  56   # ls /sys/class/c2port/c2port0/
 57   access            flash_block_size  flash_er     57   access            flash_block_size  flash_erase       rev_id
 58   dev_id            flash_blocks_num  flash_si     58   dev_id            flash_blocks_num  flash_size        subsystem/
 59   flash_access      flash_data        reset        59   flash_access      flash_data        reset             uevent
 60                                                    60 
 61 Initially the C2port access is disabled since      61 Initially the C2port access is disabled since you hardware may have
 62 such lines multiplexed with other devices so,      62 such lines multiplexed with other devices so, to get access to the
 63 C2port, you need the command::                     63 C2port, you need the command::
 64                                                    64 
 65   # echo 1 > /sys/class/c2port/c2port0/access      65   # echo 1 > /sys/class/c2port/c2port0/access
 66                                                    66 
 67 after that you should read the device ID and r     67 after that you should read the device ID and revision ID of the
 68 connected micro controller::                       68 connected micro controller::
 69                                                    69 
 70   # cat /sys/class/c2port/c2port0/dev_id           70   # cat /sys/class/c2port/c2port0/dev_id
 71   8                                                71   8
 72   # cat /sys/class/c2port/c2port0/rev_id           72   # cat /sys/class/c2port/c2port0/rev_id
 73   1                                                73   1
 74                                                    74 
 75 However, for security reasons, the in-system f     75 However, for security reasons, the in-system flash access in not
 76 enabled yet, to do so you need the command::       76 enabled yet, to do so you need the command::
 77                                                    77 
 78   # echo 1 > /sys/class/c2port/c2port0/flash_a     78   # echo 1 > /sys/class/c2port/c2port0/flash_access
 79                                                    79 
 80 After that you can read the whole flash::          80 After that you can read the whole flash::
 81                                                    81 
 82   # cat /sys/class/c2port/c2port0/flash_data >     82   # cat /sys/class/c2port/c2port0/flash_data > image
 83                                                    83 
 84 erase it::                                         84 erase it::
 85                                                    85 
 86   # echo 1 > /sys/class/c2port/c2port0/flash_e     86   # echo 1 > /sys/class/c2port/c2port0/flash_erase
 87                                                    87 
 88 and write it::                                     88 and write it::
 89                                                    89 
 90   # cat image > /sys/class/c2port/c2port0/flas     90   # cat image > /sys/class/c2port/c2port0/flash_data
 91                                                    91 
 92 after writing you have to reset the device to      92 after writing you have to reset the device to execute the new code::
 93                                                    93 
 94   # echo 1 > /sys/class/c2port/c2port0/reset       94   # echo 1 > /sys/class/c2port/c2port0/reset
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php