Convert CONFIG_HUSH_INIT_VAR to Kconfig
[platform/kernel/u-boot.git] / README
diff --git a/README b/README
index 5549849..e686839 100644 (file)
--- a/README
+++ b/README
@@ -134,7 +134,6 @@ Directory Hierarchy:
   /m68k                        Files generic to m68k architecture
   /microblaze          Files generic to microblaze architecture
   /mips                        Files generic to MIPS architecture
   /m68k                        Files generic to m68k architecture
   /microblaze          Files generic to microblaze architecture
   /mips                        Files generic to MIPS architecture
-  /nds32               Files generic to NDS32 architecture
   /nios2               Files generic to Altera NIOS2 architecture
   /powerpc             Files generic to PowerPC architecture
   /riscv               Files generic to RISC-V architecture
   /nios2               Files generic to Altera NIOS2 architecture
   /powerpc             Files generic to PowerPC architecture
   /riscv               Files generic to RISC-V architecture
@@ -374,14 +373,6 @@ The following options need to be configured:
                See Freescale App Note 4493 for more information about
                this erratum.
 
                See Freescale App Note 4493 for more information about
                this erratum.
 
-               CONFIG_A003399_NOR_WORKAROUND
-               Enables a workaround for IFC erratum A003399. It is only
-               required during NOR boot.
-
-               CONFIG_A008044_WORKAROUND
-               Enables a workaround for T1040/T1042 erratum A008044. It is only
-               required during NAND boot and valid for Rev 1.0 SoC revision
-
                CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY
 
                This is the value to write into CCSR offset 0x18600
                CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY
 
                This is the value to write into CCSR offset 0x18600
@@ -411,10 +402,6 @@ The following options need to be configured:
                This CONFIG is defined when the CPC is configured as SRAM at the
                time of U-Boot entry and is required to be re-initialized.
 
                This CONFIG is defined when the CPC is configured as SRAM at the
                time of U-Boot entry and is required to be re-initialized.
 
-               CONFIG_DEEP_SLEEP
-               Indicates this SoC supports deep sleep feature. If deep sleep is
-               supported, core will start to execute uboot when wakes up.
-
 - Generic CPU options:
                CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN
 
 - Generic CPU options:
                CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN
 
@@ -499,9 +486,6 @@ The following options need to be configured:
                CONFIG_SYS_FSL_OTHER_DDR_NUM_CTRLS
                Number of controllers used for other than main memory.
 
                CONFIG_SYS_FSL_OTHER_DDR_NUM_CTRLS
                Number of controllers used for other than main memory.
 
-               CONFIG_SYS_FSL_HAS_DP_DDR
-               Defines the SoC has DP-DDR used for DPAA.
-
                CONFIG_SYS_FSL_SEC_BE
                Defines the SEC controller register space as Big Endian
 
                CONFIG_SYS_FSL_SEC_BE
                Defines the SEC controller register space as Big Endian
 
@@ -565,13 +549,6 @@ The following options need to be configured:
                boards with QUICC Engines require OF_QE to set UCC MAC
                addresses
 
                boards with QUICC Engines require OF_QE to set UCC MAC
                addresses
 
-               CONFIG_OF_SYSTEM_SETUP
-
-               Other code has addition modification that it wants to make
-               to the flat device tree before handing it off to the kernel.
-               This causes ft_system_setup() to be called before booting
-               the kernel.
-
                CONFIG_OF_IDE_FIXUP
 
                U-Boot can detect if an IDE device is present or not.
                CONFIG_OF_IDE_FIXUP
 
                U-Boot can detect if an IDE device is present or not.
@@ -720,17 +697,6 @@ The following options need to be configured:
                CONFIG_SCSI) you must configure support for at
                least one non-MTD partition type as well.
 
                CONFIG_SCSI) you must configure support for at
                least one non-MTD partition type as well.
 
-- IDE Reset method:
-               CONFIG_IDE_RESET - is this is defined, IDE Reset will
-               be performed by calling the function
-                       ide_set_reset(int reset)
-               which has to be defined in a board specific file
-
-- ATAPI Support:
-               CONFIG_ATAPI
-
-               Set this to enable ATAPI support.
-
 - LBA48 Support
                CONFIG_LBA48
 
 - LBA48 Support
                CONFIG_LBA48
 
@@ -743,16 +709,6 @@ The following options need to be configured:
                        When enabled, makes the IDE subsystem use 64bit sector addresses.
                        Default is 32bit.
 
                        When enabled, makes the IDE subsystem use 64bit sector addresses.
                        Default is 32bit.
 
-- SCSI Support:
-               CONFIG_SYS_SCSI_MAX_LUN [8], CONFIG_SYS_SCSI_MAX_SCSI_ID [7] and
-               CONFIG_SYS_SCSI_MAX_DEVICE [CONFIG_SYS_SCSI_MAX_SCSI_ID *
-               CONFIG_SYS_SCSI_MAX_LUN] can be adjusted to define the
-               maximum numbers of LUNs, SCSI ID's and target
-               devices.
-
-               The environment variable 'scsidevs' is set to the number of
-               SCSI devices found during the last scan.
-
 - NETWORK Support (PCI):
                CONFIG_E1000_SPI
                Utility code for direct access to the SPI bus on Intel 8257x.
 - NETWORK Support (PCI):
                CONFIG_E1000_SPI
                Utility code for direct access to the SPI bus on Intel 8257x.
@@ -1006,34 +962,12 @@ The following options need to be configured:
 - Keyboard Support:
                See Kconfig help for available keyboard drivers.
 
 - Keyboard Support:
                See Kconfig help for available keyboard drivers.
 
-- Video support:
-               CONFIG_FSL_DIU_FB
-               Enable the Freescale DIU video driver.  Reference boards for
-               SOCs that have a DIU should define this macro to enable DIU
-               support, and should also define these other macros:
-
-                       CONFIG_SYS_DIU_ADDR
-                       CONFIG_VIDEO
-                       CONFIG_CFB_CONSOLE
-                       CONFIG_VIDEO_SW_CURSOR
-                       CONFIG_VGA_AS_SINGLE_DEVICE
-                       CONFIG_VIDEO_BMP_LOGO
-
-               The DIU driver will look for the 'video-mode' environment
-               variable, and if defined, enable the DIU as a console during
-               boot.  See the documentation file doc/README.video for a
-               description of this variable.
-
 - LCD Support: CONFIG_LCD
 
                Define this to enable LCD support (for output to LCD
                display); also select one of the supported displays
                by defining one of these:
 
 - LCD Support: CONFIG_LCD
 
                Define this to enable LCD support (for output to LCD
                display); also select one of the supported displays
                by defining one of these:
 
-               CONFIG_ATMEL_LCD:
-
-                       HITACHI TX09D70VM1CCA, 3.5", 240x320.
-
                CONFIG_NEC_NL6448AC33:
 
                        NEC NL6448AC33-18. Active, color, single scan.
                CONFIG_NEC_NL6448AC33:
 
                        NEC NL6448AC33-18. Active, color, single scan.
@@ -1102,22 +1036,11 @@ The following options need to be configured:
                If CONFIG_LCD_ROTATION is not defined, the console will be
                initialized with 0degree rotation.
 
                If CONFIG_LCD_ROTATION is not defined, the console will be
                initialized with 0degree rotation.
 
-               CONFIG_LCD_BMP_RLE8
-
-               Support drawing of RLE8-compressed bitmaps on the LCD.
-
 - MII/PHY support:
                CONFIG_PHY_CLOCK_FREQ (ppc4xx)
 
                The clock frequency of the MII bus
 
 - MII/PHY support:
                CONFIG_PHY_CLOCK_FREQ (ppc4xx)
 
                The clock frequency of the MII bus
 
-               CONFIG_PHY_RESET_DELAY
-
-               Some PHY like Intel LXT971A need extra delay after
-               reset before any MII register access is possible.
-               For such PHY, set this option to the usec delay
-               required. (minimum 300usec for LXT971A)
-
                CONFIG_PHY_CMD_DELAY (ppc4xx)
 
                Some PHY like Intel LXT971A need extra delay after
                CONFIG_PHY_CMD_DELAY (ppc4xx)
 
                Some PHY like Intel LXT971A need extra delay after
@@ -1138,11 +1061,6 @@ The following options need to be configured:
                server to contact when using the "tftboot" command.
                (Environment variable "serverip")
 
                server to contact when using the "tftboot" command.
                (Environment variable "serverip")
 
-               CONFIG_KEEP_SERVERADDR
-
-               Keeps the server's MAC address, in the env 'serveraddr'
-               for passing to bootargs (like Linux's netconsole option)
-
 - Gateway IP address:
                CONFIG_GATEWAYIP
 
 - Gateway IP address:
                CONFIG_GATEWAYIP
 
@@ -1198,38 +1116,6 @@ The following options need to be configured:
                from a BOOTP client in networks with unusually high latency.
 
 - DHCP Advanced Options:
                from a BOOTP client in networks with unusually high latency.
 
 - DHCP Advanced Options:
-               You can fine tune the DHCP functionality by defining
-               CONFIG_BOOTP_* symbols:
-
-               CONFIG_BOOTP_NISDOMAIN
-               CONFIG_BOOTP_BOOTFILESIZE
-               CONFIG_BOOTP_NTPSERVER
-               CONFIG_BOOTP_TIMEOFFSET
-               CONFIG_BOOTP_VENDOREX
-               CONFIG_BOOTP_MAY_FAIL
-
-               CONFIG_BOOTP_SERVERIP - TFTP server will be the serverip
-               environment variable, not the BOOTP server.
-
-               CONFIG_BOOTP_MAY_FAIL - If the DHCP server is not found
-               after the configured retry count, the call will fail
-               instead of starting over.  This can be used to fail over
-               to Link-local IP address configuration if the DHCP server
-               is not available.
-
-               CONFIG_BOOTP_DHCP_REQUEST_DELAY
-
-               A 32bit value in microseconds for a delay between
-               receiving a "DHCP Offer" and sending the "DHCP Request".
-               This fixes a problem with certain DHCP servers that don't
-               respond 100% of the time to a "DHCP request". E.g. On an
-               AT91RM9200 processor running at 180MHz, this delay needed
-               to be *at least* 15,000 usec before a Windows Server 2003
-               DHCP server would reply 100% of the time. I recommend at
-               least 50,000 usec to be safe. The alternative is to hope
-               that one of the retries will be successful but note that
-               the DHCP timeout and retry process takes a longer than
-               this delay.
 
  - Link-local IP address negotiation:
                Negotiate with other link-local clients on the local network
 
  - Link-local IP address negotiation:
                Negotiate with other link-local clients on the local network
@@ -1621,24 +1507,6 @@ The following options need to be configured:
                        FLAGADM
 
 - Error Recovery:
                        FLAGADM
 
 - Error Recovery:
-               CONFIG_NET_RETRY_COUNT
-
-               This variable defines the number of retries for
-               network operations like ARP, RARP, TFTP, or BOOTP
-               before giving up the operation. If not defined, a
-               default value of 5 is used.
-
-               CONFIG_ARP_TIMEOUT
-
-               Timeout waiting for an ARP reply in milliseconds.
-
-               CONFIG_NFS_TIMEOUT
-
-               Timeout in milliseconds used in NFS protocol.
-               If you encounter "ERROR: Cannot umount" in nfs command,
-               try longer timeout such as
-               #define CONFIG_NFS_TIMEOUT 10000UL
-
        Note:
 
                In the current implementation, the local variables
        Note:
 
                In the current implementation, the local variables
@@ -1660,14 +1528,6 @@ The following options need to be configured:
                of the backslashes before semicolons and special
                symbols.
 
                of the backslashes before semicolons and special
                symbols.
 
-- Command Line Editing and History:
-               CONFIG_CMDLINE_PS_SUPPORT
-
-               Enable support for changing the command prompt string
-               at run-time. Only static string is supported so far.
-               The string is obtained from environment variables PS1
-               and PS2.
-
 - Default Environment:
                CONFIG_EXTRA_ENV_SETTINGS
 
 - Default Environment:
                CONFIG_EXTRA_ENV_SETTINGS
 
@@ -1703,26 +1563,6 @@ The following options need to be configured:
                this is instead controlled by the value of
                /config/load-environment.
 
                this is instead controlled by the value of
                /config/load-environment.
 
-- TFTP Fixed UDP Port:
-               CONFIG_TFTP_PORT
-
-               If this is defined, the environment variable tftpsrcp
-               is used to supply the TFTP UDP source port value.
-               If tftpsrcp isn't defined, the normal pseudo-random port
-               number generator is used.
-
-               Also, the environment variable tftpdstp is used to supply
-               the TFTP UDP destination port value.  If tftpdstp isn't
-               defined, the normal port 69 is used.
-
-               The purpose for tftpsrcp is to allow a TFTP server to
-               blindly start the TFTP transfer using the pre-configured
-               target IP address and UDP port. This has the effect of
-               "punching through" the (Windows XP) firewall, allowing
-               the remainder of the TFTP transfer to proceed normally.
-               A better solution is to properly configure the firewall,
-               but sometimes that is not allowed.
-
                CONFIG_STANDALONE_LOAD_ADDR
 
                This option defines a board specific value for the
                CONFIG_STANDALONE_LOAD_ADDR
 
                This option defines a board specific value for the
@@ -1879,10 +1719,6 @@ The following options need to be configured:
                CONFIG_SPL_INIT_MINIMAL
                Arch init code should be built for a very small image
 
                CONFIG_SPL_INIT_MINIMAL
                Arch init code should be built for a very small image
 
-               CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR
-               Sector to load kernel uImage from when MMC is being
-               used in raw mode (for Falcon mode)
-
                CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR,
                CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS
                Sector and number of sectors to load kernel argument
                CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR,
                CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS
                Sector and number of sectors to load kernel argument
@@ -1909,10 +1745,6 @@ The following options need to be configured:
                CONFIG_SPL_SKIP_RELOCATE
                Avoid SPL relocation
 
                CONFIG_SPL_SKIP_RELOCATE
                Avoid SPL relocation
 
-               CONFIG_SPL_NAND_IDENT
-               SPL uses the chip ID list to identify the NAND flash.
-               Requires CONFIG_SPL_NAND_BASE.
-
                CONFIG_SPL_UBI
                Support for a lightweight UBI (fastmap) scanner and
                loader
                CONFIG_SPL_UBI
                Support for a lightweight UBI (fastmap) scanner and
                loader
@@ -2005,7 +1837,6 @@ typically in board_init_f() and board_init_r().
 - CONFIG_BOARD_EARLY_INIT_F: Call board_early_init_f()
 - CONFIG_BOARD_EARLY_INIT_R: Call board_early_init_r()
 - CONFIG_BOARD_LATE_INIT: Call board_late_init()
 - CONFIG_BOARD_EARLY_INIT_F: Call board_early_init_f()
 - CONFIG_BOARD_EARLY_INIT_R: Call board_early_init_r()
 - CONFIG_BOARD_LATE_INIT: Call board_late_init()
-- CONFIG_BOARD_POSTCLK_INIT: Call board_postclk_init()
 
 Configuration Settings:
 -----------------------
 
 Configuration Settings:
 -----------------------
@@ -2022,16 +1853,6 @@ Configuration Settings:
 - CONFIG_SYS_PROMPT:   This is what U-Boot prints on the console to
                prompt for user input.
 
 - CONFIG_SYS_PROMPT:   This is what U-Boot prints on the console to
                prompt for user input.
 
-- CONFIG_SYS_CBSIZE:   Buffer size for input from the Console
-
-- CONFIG_SYS_PBSIZE:   Buffer size for Console output
-
-- CONFIG_SYS_MAXARGS:  max. Number of arguments accepted for monitor commands
-
-- CONFIG_SYS_BARGSIZE: Buffer size for Boot Arguments which are passed to
-               the application (usually a Linux kernel) when it is
-               booted
-
 - CONFIG_SYS_BAUDRATE_TABLE:
                List of legal baudrate settings for this board.
 
 - CONFIG_SYS_BAUDRATE_TABLE:
                List of legal baudrate settings for this board.
 
@@ -2044,27 +1865,6 @@ Configuration Settings:
                the RAM base is not zero, or RAM is divided into banks,
                this variable needs to be recalcuated to get the address.
 
                the RAM base is not zero, or RAM is divided into banks,
                this variable needs to be recalcuated to get the address.
 
-- CONFIG_SYS_MEM_TOP_HIDE:
-               If CONFIG_SYS_MEM_TOP_HIDE is defined in the board config header,
-               this specified memory area will get subtracted from the top
-               (end) of RAM and won't get "touched" at all by U-Boot. By
-               fixing up gd->ram_size the Linux kernel should gets passed
-               the now "corrected" memory size and won't touch it either.
-               This should work for arch/ppc and arch/powerpc. Only Linux
-               board ports in arch/powerpc with bootwrapper support that
-               recalculate the memory size from the SDRAM controller setup
-               will have to get fixed in Linux additionally.
-
-               This option can be used as a workaround for the 440EPx/GRx
-               CHIP 11 errata where the last 256 bytes in SDRAM shouldn't
-               be touched.
-
-               WARNING: Please make sure that this value is a multiple of
-               the Linux page size (normally 4k). If this is not the case,
-               then the end address of the Linux memory will be located at a
-               non page size aligned address and this could cause major
-               problems.
-
 - CONFIG_SYS_LOADS_BAUD_CHANGE:
                Enable temporary baudrate change while serial download
 
 - CONFIG_SYS_LOADS_BAUD_CHANGE:
                Enable temporary baudrate change while serial download
 
@@ -2074,12 +1874,6 @@ Configuration Settings:
 - CONFIG_SYS_FLASH_BASE:
                Physical start address of Flash memory.
 
 - CONFIG_SYS_FLASH_BASE:
                Physical start address of Flash memory.
 
-- CONFIG_SYS_MONITOR_BASE:
-               Physical start address of boot monitor code (set by
-               make config files to be same as the text base address
-               (CONFIG_SYS_TEXT_BASE) used when linking) - same as
-               CONFIG_SYS_FLASH_BASE when booting from flash.
-
 - CONFIG_SYS_MONITOR_LEN:
                Size of memory reserved for monitor code, used to
                determine _at_compile_time_ (!) if the environment is
 - CONFIG_SYS_MONITOR_LEN:
                Size of memory reserved for monitor code, used to
                determine _at_compile_time_ (!) if the environment is
@@ -2157,9 +1951,6 @@ Configuration Settings:
                Enables allocating and saving a kernel copy of the bd_info in
                space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
 
                Enables allocating and saving a kernel copy of the bd_info in
                space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
 
-- CONFIG_SYS_MAX_FLASH_BANKS:
-               Max number of Flash memory banks
-
 - CONFIG_SYS_MAX_FLASH_SECT:
                Max number of sectors on a Flash chip
 
 - CONFIG_SYS_MAX_FLASH_SECT:
                Max number of sectors on a Flash chip
 
@@ -2232,14 +2023,6 @@ Configuration Settings:
                while unprotecting/erasing/programming. Please only enable
                this option if you really know what you are doing.
 
                while unprotecting/erasing/programming. Please only enable
                this option if you really know what you are doing.
 
-- CONFIG_SYS_RX_ETH_BUFFER:
-               Defines the number of Ethernet receive buffers. On some
-               Ethernet controllers it is recommended to set this value
-               to 8 or even higher (EEPRO100 or 405 EMAC), since all
-               buffers can be full shortly after enabling the interface
-               on high Ethernet traffic.
-               Defaults to 4 if not defined.
-
 - CONFIG_ENV_MAX_ENTRIES
 
        Maximum number of entries in the hash table that is used
 - CONFIG_ENV_MAX_ENTRIES
 
        Maximum number of entries in the hash table that is used
@@ -2337,12 +2120,6 @@ Note: once the monitor has been relocated, then it will complain if
 the default environment is used; a new CRC is computed as soon as you
 use the "saveenv" command to store a valid environment.
 
 the default environment is used; a new CRC is computed as soon as you
 use the "saveenv" command to store a valid environment.
 
-- CONFIG_SYS_FAULT_ECHO_LINK_DOWN:
-               Echo the inverted Ethernet link state to the fault LED.
-
-               Note: If this option is active, then CONFIG_SYS_FAULT_MII_ADDR
-                     also needs to be defined.
-
 - CONFIG_SYS_FAULT_MII_ADDR:
                MII address of the PHY to check for the Ethernet link state.
 
 - CONFIG_SYS_FAULT_MII_ADDR:
                MII address of the PHY to check for the Ethernet link state.
 
@@ -2363,11 +2140,6 @@ use the "saveenv" command to store a valid environment.
                later, once stdio is running and output goes to the LCD, if
                present.
 
                later, once stdio is running and output goes to the LCD, if
                present.
 
-- CONFIG_BOARD_SIZE_LIMIT:
-               Maximum size of the U-Boot image. When defined, the
-               build system checks that the actual size does not
-               exceed it.
-
 Low Level (hardware related) configuration options:
 ---------------------------------------------------
 
 Low Level (hardware related) configuration options:
 ---------------------------------------------------
 
@@ -2408,14 +2180,6 @@ Low Level (hardware related) configuration options:
                If this macro is defined, then CONFIG_SYS_CCSRBAR_PHYS will be
                forced to a value that ensures that CCSR is not relocated.
 
                If this macro is defined, then CONFIG_SYS_CCSRBAR_PHYS will be
                forced to a value that ensures that CCSR is not relocated.
 
-- CONFIG_IDE_AHB:
-               Most IDE controllers were designed to be connected with PCI
-               interface. Only few of them were designed for AHB interface.
-               When software is doing ATA command and data transfer to
-               IDE devices through IDE-AHB controller, some additional
-               registers accessing to these kind of IDE-AHB controller
-               is required.
-
 - CONFIG_SYS_IMMR:     Physical address of the Internal Memory.
                DO NOT CHANGE unless you know exactly what you're
                doing! (11-4) [MPC8xx systems only]
 - CONFIG_SYS_IMMR:     Physical address of the Internal Memory.
                DO NOT CHANGE unless you know exactly what you're
                doing! (11-4) [MPC8xx systems only]
@@ -2914,8 +2678,8 @@ details; basically, the header defines the following image properties:
   LynxOS, pSOS, QNX, RTEMS, INTEGRITY;
   Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, INTEGRITY).
 * Target CPU Architecture (Provisions for Alpha, ARM, Intel x86,
   LynxOS, pSOS, QNX, RTEMS, INTEGRITY;
   Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, INTEGRITY).
 * Target CPU Architecture (Provisions for Alpha, ARM, Intel x86,
-  IA64, MIPS, NDS32, Nios II, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit;
-  Currently supported: ARM, Intel x86, MIPS, NDS32, Nios II, PowerPC).
+  IA64, MIPS, Nios II, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit;
+  Currently supported: ARM, Intel x86, MIPS, Nios II, PowerPC).
 * Compression Type (uncompressed, gzip, bzip2)
 * Load Address
 * Entry Point
 * Compression Type (uncompressed, gzip, bzip2)
 * Load Address
 * Entry Point
@@ -3627,23 +3391,6 @@ On Nios II, the ABI is documented here:
     Note: on Nios II, we give "-G0" option to gcc and don't use gp
     to access small data sections, so gp is free.
 
     Note: on Nios II, we give "-G0" option to gcc and don't use gp
     to access small data sections, so gp is free.
 
-On NDS32, the following registers are used:
-
-       R0-R1:  argument/return
-       R2-R5:  argument
-       R15:    temporary register for assembler
-       R16:    trampoline register
-       R28:    frame pointer (FP)
-       R29:    global pointer (GP)
-       R30:    link register (LP)
-       R31:    stack pointer (SP)
-       PC:     program counter (PC)
-
-    ==> U-Boot will use R10 to hold a pointer to the global data
-
-NOTE: DECLARE_GLOBAL_DATA_PTR must be used with file-global scope,
-or current versions of GCC may "optimize" the code too much.
-
 On RISC-V, the following registers are used:
 
        x0: hard-wired zero (zero)
 On RISC-V, the following registers are used:
 
        x0: hard-wired zero (zero)