SDHI_driver patch (mbedOS 5.11.5)

Files at this revision

API Documentation at this revision

Comitter:
tvendov
Date:
Fri Mar 29 19:47:34 2019 +0200
Parent:
1:b07be64e592e
Commit message:
Fix: Folder structure changed. All SD Auto tests pass with OK!

Changed in this revision

SDHI_compile.log Show annotated file Show diff for this revision Revisions of this file
SDHI_tests.log Show annotated file Show diff for this revision Revisions of this file
SD_dirs(ARM).log Show diff for this revision Revisions of this file
SD_files(ARM).log Show diff for this revision Revisions of this file
SD_fopen(ARM).log Show diff for this revision Revisions of this file
SD_paralel(ARM).log Show diff for this revision Revisions of this file
SD_seek(ARM).log Show diff for this revision Revisions of this file
SYNC_FAIL.log Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/COMMON/fsfat_debug.h Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/COMMON/fsfat_test.c Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/COMMON/fsfat_test.h Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/Same as TESTS in COMPONENT_SD.txt Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/dirs/main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/files/main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/fopen/fopen.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/parallel/main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/seek/main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/TOOLCHAIN_ARM_STD/lib_RZ_A1H_sd_driver.ar Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/TOOLCHAIN_GCC_ARM/lib_RZ_A1H_sd_driver.a Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/TOOLCHAIN_IAR/lib_RZ_A1H_sd_driver.a Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/sd_cfg.h Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/sdhi_low.c Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/sdif.h Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/mbed_lib.json Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/features/storage/kvstore/conf/kv_config.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/features/storage/system_storage/SystemStorage.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/TOOLCHAIN_ARM_STD/lib_RZ_A1H_sd_driver.ar Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/TOOLCHAIN_GCC_ARM/lib_RZ_A1H_sd_driver.a Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/TOOLCHAIN_IAR/lib_RZ_A1H_sd_driver.a Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/sd_cfg.h Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/sdhi_low.c Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/sdif.h Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/inc/iodefines/sdhi_iodefine.h Show annotated file Show diff for this revision Revisions of this file
mbed-os-program/mbed-os/targets/targets.json Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDHI_compile.log	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,6566 @@
+D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver>mbed test --compile -t GCC_ARM -m VK_RZ_A1H -n mbed-os-components-storage-blockdevice-component_rz_sdhi-tests*
+[mbed] Auto-installing missing Python modules...
+Building library mbed-build (VK_RZ_A1H, GCC_ARM)
+Scan: driver
+Copy: thread_lowpower_api.h
+Copy: lfs_util.h
+Copy: dvdec_iodefine.h
+Copy: cfg_rf_tunnel.h
+Copy: Nanostack.h
+Copy: ether_iodefine.h
+Copy: utest.h
+Copy: lcp.h
+Copy: thread_common.h
+Copy: DigitalOut.h
+Copy: CThunkBase.h
+Copy: ac_buffer_builder.h
+Copy: ns_types.h
+Copy: fhss.h
+Copy: wdt_iodefine.h
+Copy: rsa.h
+Copy: UBLOX_PPP_CellularPower.h
+Copy: pwmout_api.h
+Copy: mtu2_iodefine.h
+Copy: APN_db.h
+Copy: pana_header.h
+Copy: scif_iobitmask.h
+Copy: scif_iodefine.h
+Copy: LoRaMacChannelPlan.h
+Copy: PortNames.h
+Copy: mle_service_security.h
+Copy: fnet_stack.h
+Copy: thread_diagnostic.h
+Copy: pn512.h
+Copy: camellia.h
+Copy: Event.h
+Copy: intc_iobitmask.h
+Copy: fnet_dns_config.h
+Copy: ipv6_flow.h
+Copy: serial_mac_api.h
+Copy: FileHandle.h
+Copy: UARTSerial.h
+Copy: SlicingBlockDevice.h
+Copy: memp_std.h
+Copy: crypto.h
+Copy: net_polling_api.h
+Copy: neighbor_table_definition.h
+Copy: AT_CellularSMS.h
+Copy: ns_nvm_helper.h
+Copy: gpio_iobitmask.h
+Copy: fnv_hash.h
+Copy: rpl_mrhof.h
+Copy: ns_sha256.h
+Copy: tcpip.h
+Copy: LowPowerTimeout.h
+Copy: PPPCellularInterface.h
+Copy: fnet_arp.h
+Copy: socket.h
+Copy: version.h
+Copy: ssif_iodefine.h
+Copy: cipv6_fragmenter.h
+Copy: icmpv6.h
+Copy: PinNames.h
+Copy: platform_mbed.h
+Copy: fnet.h
+Copy: md5.h
+Copy: protocol_timer.h
+Copy: ac_stream.h
+Copy: upap.h
+Copy: mbed_preprocessor.h
+Copy: QUECTEL_M26_CellularPower.h
+Copy: QUECTEL_UG96_CellularNetwork.h
+Copy: utest_default_handlers.h
+Copy: KVMap.h
+Copy: UBLOX_PPP_CellularContext.h
+Copy: sn_config.h
+Copy: protocol.h
+Copy: DigitalInOut.h
+Copy: memp.h
+Copy: mem.h
+Copy: api.h
+Copy: thread_config.h
+Copy: ExhaustibleBlockDevice.h
+Copy: rtos.h
+Copy: integer.h
+Copy: QUECTEL_BC95_CellularSIM.h
+Copy: mle_service_frame_counter_table.h
+Copy: transceiver.h
+Copy: sockets.h
+Copy: thread_management_api.h
+Copy: ccm.h
+Copy: QUECTEL_M26_CellularStack.h
+Copy: sha256.h
+Copy: mbed.h
+Copy: Mutex.h
+Copy: ipv6_fragmentation.h
+Copy: dhcpv6_client_api.h
+Copy: thread_network_synch.h
+Copy: oid.h
+Copy: usb20_iodefine.h
+Copy: utest_case.h
+Copy: ws_neighbor_class.h
+Copy: wait_api.h
+Copy: pn512_types.h
+Copy: iodefine_typedef.h
+Copy: LWIPMemoryManager.h
+Copy: pn512_internal.h
+Copy: AT_CellularPower.h
+Copy: rpl_objective.h
+Copy: ppp_impl.h
+Copy: thread_joiner_application.h
+Copy: ppp.h
+Copy: CThunk.h
+Copy: thread_management_client.h
+Copy: NanostackRfPhyAtmel.h
+Copy: mac_helper.h
+Copy: mbed_events.h
+Copy: autoip.h
+Copy: lin_iodefine.h
+Copy: aesni.h
+Copy: ESP8266.h
+Copy: itm_api.h
+Copy: sn_coap_protocol_internal.h
+Copy: pn512_registers.h
+Copy: dmac_iodefine.h
+Copy: sys.h
+Copy: l2c_iodefine.h
+Copy: Kernel.h
+Copy: EMAC.h
+Copy: TableCRC.h
+Copy: mld6.h
+Copy: inet.h
+Copy: thread_nvm_store.h
+Copy: ip4.h
+Copy: DNS.h
+Copy: libDHCPv6.h
+Copy: nd_router_object.h
+Copy: ethernet_api.h
+Copy: VK_RZ_A1H.h
+Copy: tcp.h
+Copy: net_fhss.h
+Copy: unity_handler.h
+Copy: chap-md5.h
+Copy: mac_timer.h
+Copy: ip6.h
+Copy: thread_routing.h
+Copy: LoRaPHYCN779.h
+Copy: lwipopts.h
+Copy: compat-1.3.h
+Copy: FileSystemStore.h
+Copy: TELIT_HE910_CellularContext.h
+Copy: rpl_upward.h
+Copy: cfg_thread_full_end_device.h
+Copy: debug.h
+Copy: MeshInterfaceNanostack.h
+Copy: mbed_sleep.h
+Copy: net_rpl.h
+Copy: ac_buffer_reader.h
+Copy: ScopedRamExecutionLock.h
+Copy: Serial.h
+Copy: bsc_iodefine.h
+Copy: udp.h
+Copy: FileLike.h
+Copy: ScopedLock.h
+Copy: cfg_lowpan_router_ecc_release.h
+Copy: dhcp.h
+Copy: DHCPv6_server_service.h
+Copy: arm_hal_random.h
+Copy: ReadOnlyBlockDevice.h
+Copy: rf_driver_storage.h
+Copy: md4.h
+Copy: Socket.h
+Copy: LocalFileSystem.h
+Copy: GEMALTO_CINTERION_CellularStack.h
+Copy: nvstore.h
+Copy: disc_iodefine.h
+Copy: stats.h
+Copy: sn_coap_protocol.h
+Copy: ns_cmdline.h
+Copy: Driver_Storage.h
+Copy: NonCopyable.h
+Copy: ethernet_mac_api.h
+Copy: net_mle_api.h
+Copy: ns_mdns_api.h
+Copy: nd6.h
+Copy: ip4_frag.h
+Copy: ssl_internal.h
+Copy: blacklist.h
+Copy: platform_util.h
+Copy: nfc_common.h
+Copy: SimpleMessageParser.h
+Copy: ip.h
+Copy: etharp.h
+Copy: icmpv6_prefix.h
+Copy: md_internal.h
+Copy: PlatformMutex.h
+Copy: mac_fhss_callbacks.h
+Copy: border_router.h
+Copy: loraphy_target.h
+Copy: cfg_lowpan_border_router_rf_tunnel_ecc_release.h
+Copy: QUECTEL_M26.h
+Copy: lp_ticker_api.h
+Copy: LoRaPHYEU433.h
+Copy: dma_api.h
+Copy: sha1.h
+Copy: sio.h
+Copy: flash_api.h
+Copy: sha1.h
+Copy: riic_iobitmask.h
+Copy: SharedPtr.h
+Copy: diskio.h
+Copy: ostm_iobitmask.h
+Copy: LoRaPHYKR920.h
+Copy: net_pana_parameters_api.h
+Copy: pana_nvm.h
+Copy: mbed_power_mgmt.h
+Copy: HeapBlockDevice.h
+Copy: ipv6cp.h
+Copy: ns_list.h
+Copy: tcp_priv.h
+Copy: RtosTimer.h
+Copy: lorawan_types.h
+Copy: iphc_compress.h
+Copy: ssl_cache.h
+Copy: lwip_tcp_isn.h
+Copy: mac_filter_api.h
+Copy: protocol_6lowpan_bootstrap.h
+Copy: UBLOX_AT_CellularPower.h
+Copy: autoip.h
+Copy: arm_hal_phy.h
+Copy: lwip_errno.h
+Copy: CriticalSectionLock.h
+Copy: mbed_rtx_conf.h
+Copy: fnet_mdns_config.h
+Copy: fnet_netif.h
+Copy: network_lib.h
+Copy: SocketAddress.h
+Copy: rpl_structures.h
+Copy: cfg_lowpan_router_ecc.h
+Copy: ns_error_types.h
+Copy: QUECTEL_BG96_CellularContext.h
+Copy: TimerEvent.h
+Copy: lvds_iodefine.h
+Copy: beacon_handler.h
+Copy: rtc_time.h
+Copy: virtual_rf_defines.h
+Copy: utest_stack_trace.h
+Copy: md2.h
+Copy: ns_buffer.h
+Copy: memory_buffer_alloc.h
+Copy: utest_specification.h
+Copy: bsc_iobitmask.h
+Copy: ip.h
+Copy: AT_CellularContext.h
+Copy: NFCControllerDriver.h
+Copy: pn512_callback.h
+Copy: init.h
+Copy: mesh_interface_types.h
+Copy: MCR20Reg.h
+Copy: vj.h
+Copy: cmsis_gcc.h
+Copy: pn512_rf.h
+Copy: PortIn.h
+Copy: spibsc_iodefine.h
+Copy: SystemStorage.h
+Copy: Timer.h
+Copy: dev_drv.h
+Copy: AnalogIn.h
+Copy: error.h
+Copy: mac_pd_sap.h
+Copy: rtos_idle.h
+Copy: mld6.h
+Copy: fnet_icmp6.h
+Copy: fnet_services.h
+Copy: LowPowerTimer.h
+Copy: TELIT_HE910_CellularNetwork.h
+Copy: BusInOut.h
+Copy: load_balance_api.h
+Copy: mbed_rtos_storage.h
+Copy: mpu_api.h
+Copy: LoRaPHYUS915.h
+Copy: cfg_thread_end_device.h
+Copy: config-no-entropy.h
+Copy: coap_service_api.h
+Copy: randLIB.h
+Copy: protocol_ipv6.h
+Copy: coap_service_api_internal.h
+Copy: fhss_channel.h
+Copy: mbed_rtos1_types.h
+Copy: at24mac.h
+Copy: CellularSIM.h
+Copy: pana_internal_api.h
+Copy: irq_ctrl.h
+Copy: buffer.h
+Copy: cfg_lowpan_border_router_rf_tunnel_ecc.h
+Copy: NanostackEthernetInterface.h
+Copy: trng_api.h
+Copy: spm_api.h
+Copy: fhss_common.h
+Copy: thread_commissioning_if.h
+Copy: InterruptIn.h
+Copy: ecdsa.h
+Copy: md4.h
+Copy: Text.h
+Copy: ChainingBlockDevice.h
+Copy: pppol2tp.h
+Copy: cpg_iobitmask.h
+Copy: mtu2.h
+Copy: utest_types.h
+Copy: etx.h
+Copy: NanostackEMACInterface.h
+Copy: OnboardNetworkStack.h
+Copy: rscan0_iodefine.h
+Copy: GEMALTO_CINTERION_CellularContext.h
+Copy: RZ_SDHIBlockDevice.hpp
+Copy: pn512_cmd.h
+Copy: mppe.h
+Copy: ns_address.h
+Copy: mac_ie_lib.h
+Copy: thread_management_internal.h
+Copy: mbed_poll.h
+Copy: ns_virtual_rf_api.h
+Copy: UARTCellularInterface.h
+Copy: QUECTEL_BG96_CellularPower.h
+Copy: DTLSSocketWrapper.h
+Copy: thread_tasklet.h
+Copy: semihost_api.h
+Copy: lowpan6_opts.h
+Copy: thread_neighbor_class.h
+Copy: PortOut.h
+Copy: pppos.h
+Copy: isodep.h
+Copy: lfs.h
+Copy: EventQueue.h
+Copy: flctl_iodefine.h
+Copy: DeepSleepLock.h
+Copy: mlme.h
+Copy: rtx_core_ca.h
+Copy: thread_border_router_api_internal.h
+Copy: fsm.h
+Copy: LoRaMacCommand.h
+Copy: qspi_api.h
+Copy: Driver_Common.h
+Copy: thread_lowpower_private_api.h
+Copy: CellularDevice.h
+Copy: ATCmdParser.h
+Copy: protocol_stats.h
+Copy: isodep_target.h
+Copy: md.h
+Copy: pana.h
+Copy: ws_bootstrap.h
+Copy: ceu_iodefine.h
+Copy: pn512_hw.h
+Copy: mac_common_defines.h
+Copy: cfg_thread_router.h
+Copy: pkcs11.h
+Copy: ecp.h
+Copy: FlashIAP.h
+Copy: LoRaMacCrypto.h
+Copy: cmsis_compiler.h
+Copy: socket_api.h
+Copy: InterruptManager.h
+Copy: rtc_api.h
+Copy: ip6.h
+Copy: cipv6.h
+Copy: channel_functions.h
+Copy: rpl_protocol.h
+Copy: nist_kw.h
+Copy: PeripheralPins.h
+Copy: pfv_iodefine.h
+Copy: net_nwk_scan.h
+Copy: arm_hal_timer.h
+Copy: cmsis_armcc.h
+Copy: ns_crc.h
+Copy: unity_internals.h
+Copy: rpl_downward.h
+Copy: WiFiAccessPoint.h
+Copy: Timeout.h
+Copy: InternetSocket.h
+Copy: CellularBase.h
+Copy: ppp_opts.h
+Copy: mbed_critical.h
+Copy: BufferedBlockDevice.h
+Copy: ssl_ticket.h
+Copy: ccp.h
+Copy: ecp.h
+Copy: pn512_timer.h
+Copy: fhss_api.h
+Copy: mpl.h
+Copy: rtc_iodefine.h
+Copy: pn512_irq.h
+Copy: device.h
+Copy: common_functions.h
+Copy: thread_dhcpv6_server.h
+Copy: SerialBase.h
+Copy: NFC.h
+Copy: mbed_error.h
+Copy: ns_event_loop.h
+Copy: BusOut.h
+Copy: Dir.h
+Copy: RecordParser.h
+Copy: crypto_extra.h
+Copy: NanostackMemoryManager.h
+Copy: mbed_rtc_time.h
+Copy: ns_timer.h
+Copy: riic_iodefine.h
+Copy: NanostackRfPhyMcr20a.h
+Copy: dmac_iobitmask.h
+Copy: spi_api.h
+Copy: NFCNDEFCapable.h
+Copy: igmp.h
+Copy: nd_defines.h
+Copy: xtea.h
+Copy: pwm_iodefine.h
+Copy: chachapoly.h
+Copy: perf.h
+Copy: LoRaPHYEU868.h
+Copy: nsdynmemLIB.h
+Copy: PeripheralNames.h
+Copy: ip.h
+Copy: event.h
+Copy: sleep_api.h
+Copy: FileBase.h
+Copy: jcu_iodefine.h
+Copy: ThreadInterface.h
+Copy: EthernetInterface.h
+Copy: URI.h
+Copy: rpl_data.h
+Copy: CellularPower.h
+Copy: nfc_errors.h
+Copy: core_ca.h
+Copy: eap_protocol.h
+Copy: SARA4_PPP_CellularNetwork.h
+Copy: TELIT_HE910_CellularPower.h
+Copy: RZ_A1_Init.h
+Copy: CellularSMS.h
+Copy: mac_indirect_data.h
+Copy: UBLOX_PPP_CellularNetwork.h
+Copy: dhcp6.h
+Copy: NFCEEPROMDriver.h
+Copy: thread_diagcop_lib.h
+Copy: slipif.h
+Copy: arm_hal_aes.h
+Copy: AnalogOut.h
+Copy: SARA4_PPP_CellularContext.h
+Copy: blowfish.h
+Copy: NFCTarget.h
+Copy: AT_CellularDevice.h
+Copy: lowpan_context.h
+Copy: toolchain.h
+Copy: net_sleep.h
+Copy: net_6lowpan_parameter_api.h
+Copy: TCPServer.h
+Copy: NanostackEthernetPhy.h
+Copy: rpl_policy.h
+Copy: pem.h
+Copy: ieb_iodefine.h
+Copy: TLSSocket.h
+Copy: NFCController.h
+Copy: mbed_cmsis_conf.h
+Copy: ConditionVariable.h
+Copy: protocol_abstract.h
+Copy: cfg_local_socket.h
+Copy: thread_management_server.h
+Copy: magic.h
+Copy: hmac_drbg.h
+Copy: inet_chksum.h
+Copy: memp_priv.h
+Copy: ccmLIB.h
+Copy: udp.h
+Copy: rsa_internal.h
+Copy: CellularStateMachine.h
+Copy: wisun_tasklet.h
+Copy: trickle.h
+Copy: us_ticker_api.h
+Copy: cfg_generic.h
+Copy: thread_net_config_api.h
+Copy: platform.h
+Copy: cfg_thread_end_device.h
+Copy: MessageParser.h
+Copy: mlb_iodefine.h
+Copy: mbed_error_hist.h
+Copy: fnet_timer.h
+Copy: padlock.h
+Copy: ecjpake.h
+Copy: NetworkInterface.h
+Copy: ws_management_api.h
+Copy: des.h
+Copy: intc_iodefine.h
+Copy: net_ipv6_api.h
+Copy: CellularContext.h
+Copy: ip6_addr.h
+Copy: dhcp_service_api.h
+Copy: BusIn.h
+Copy: fhss_ws.h
+Copy: cfg_thread_full_end_device.h
+Copy: s2lpReg.h
+Copy: fnet_dns.h
+Copy: MCR20Drv.h
+Copy: RawSerial.h
+Copy: mbed_shared_queues.h
+Copy: config.h
+Copy: rza1_emac.h
+Copy: check_config.h
+Copy: sec_lib_definitions.h
+Copy: DeviceKey.h
+Copy: QUECTEL_BC95_CellularContext.h
+Copy: ethip6.h
+Copy: QUECTEL_BG96_CellularNetwork.h
+Copy: usb_iobitmask.h
+Copy: NFCRemoteEndpoint.h
+Copy: Thread.h
+Copy: i2c_api.h
+Copy: platform_time.h
+Copy: platform.h
+Copy: thread_router_bootstrap.h
+Copy: UBLOX_AT.h
+Copy: fnet_assert.h
+Copy: TLSSocketWrapper.h
+Copy: adc_iodefine.h
+Copy: TELIT_HE910.h
+Copy: iodefine.h
+Copy: Type4RemoteInitiator.h
+Copy: cfg_thread_border_router.h
+Copy: equeue_platform.h
+Copy: AT_CellularBase.h
+Copy: thread_commissioning_api.h
+Copy: SARA4_PPP.h
+Copy: fnet_inet.h
+Copy: sockbuf.h
+Copy: mbed_mpu_mgmt.h
+Copy: iso7816_defs.h
+Copy: NFCEEPROM.h
+Copy: ipv6.h
+Copy: poly1305.h
+Copy: EventFlags.h
+Copy: nsapi_ppp.h
+Copy: iphc_decompress.h
+Copy: rf_configuration.h
+Copy: asn1.h
+Copy: rza_io_regrw.h
+Copy: igmp.h
+Copy: net.h
+Copy: NFCRemoteInitiator.h
+Copy: ppp_lwip.h
+Copy: rtx_evr.h
+Copy: nd_proxy.h
+Copy: scux_iodefine.h
+Copy: protocol_6lowpan_interface.h
+Copy: chap_ms.h
+Copy: rtos_handlers.h
+Copy: nfc_debug.h
+Copy: cfg_lowpan_router.h
+Copy: Callback.h
+Copy: fnet_debug.h
+Copy: mbed_rtx.h
+Copy: mbed_wait_api.h
+Copy: hkdf.h
+Copy: Queue.h
+Copy: DigitalIn.h
+Copy: PwmOut.h
+Copy: dhm.h
+Copy: fnet_socket.h
+Copy: sha512.h
+Copy: timing.h
+Copy: netifapi.h
+Copy: ecp_internal.h
+Copy: ac_debug.h
+Copy: rspi_iobitmask.h
+Copy: cfg_lowpan_border_router.h
+Copy: Stream.h
+Copy: ns_fnet_types.h
+Copy: iso7816_app.h
+Copy: ns_fnet_events.h
+Copy: tcp.h
+Copy: mbed_application.h
+Copy: net_thread_test.h
+Copy: gpio_addrdefine.h
+Copy: enet_tasklet.h
+Copy: MeshInterface.h
+Copy: coap_message_handler.h
+Copy: QUECTEL_UG96_CellularPower.h
+Copy: multicast_api.h
+Copy: fnet_dns_prv.h
+Copy: reg32_t.h
+Copy: DTLSSocket.h
+Copy: channel_list.h
+Copy: thread_extension_bootstrap.h
+Copy: PortInOut.h
+Copy: os_whiteboard.h
+Copy: cmsis_nvic.h
+Copy: nsapi_dns.h
+Copy: FATFileSystem.h
+Copy: cfg_thread_thci.h
+Copy: mle_tlv.h
+Copy: mle_service_buffer.h
+Copy: fnet_ip.h
+Copy: CellularLog.h
+Copy: cfg_lowpan_border_router.h
+Copy: sdif.h
+Copy: UDPSocket.h
+Copy: sdhi_iodefine.h
+Copy: icmp.h
+Copy: AT_CellularSIM.h
+Copy: LoWPANNDInterface.h
+Copy: lwip_random.h
+Copy: lwip_ethernet.h
+Copy: irda_iodefine.h
+Copy: util.h
+Copy: crypto_platform.h
+Copy: ip6string.h
+Copy: snmp.h
+Copy: EthInterface.h
+Copy: pppoe.h
+Copy: mbed_interface.h
+Copy: ip4_addr.h
+Copy: whiteboard_api.h
+Copy: pk.h
+Copy: fnet_cpu.h
+Copy: LoRaPHYCN470.h
+Copy: ipv6_constants.h
+Copy: arc4.h
+Copy: base64.h
+Copy: tcp.h
+Copy: net_sockets.h
+Copy: cfg_ethernet.h
+Copy: LoRaPHYAS923.h
+Copy: mbed_assert.h
+Copy: NanostackRfPhy.h
+Copy: fnet_timer_prv.h
+Copy: CellularNetwork.h
+Copy: CellularList.h
+Copy: fnet_nd6.h
+Copy: mesh_system.h
+Copy: rtx_os.h
+Copy: QUECTEL_BC95_CellularNetwork.h
+Copy: net_address_extension.h
+Copy: mbed_debug.h
+Copy: shalib.h
+Copy: ipv6_resolution.h
+Copy: sleep.h
+Copy: eventloop_config.h
+Copy: platform_alt.h
+Copy: net_test_api.h
+Copy: Transaction.h
+Copy: etharp.h
+Copy: AT_CellularNetwork.h
+Copy: GEMALTO_CINTERION_CellularNetwork.h
+Copy: ripemd160.h
+Copy: fnet_user_config.h
+Copy: cfg_thread_router.h
+Copy: dns.h
+Copy: cfg_lowpan_border_router_rf_tunnel.h
+Copy: mbed_drv_cfg.h
+Copy: fnet_netbuf.h
+Copy: mle_service_interface.h
+Copy: sd_cfg.h
+Copy: ecdh.h
+Copy: greentea_metrics.h
+Copy: spibsc.h
+Copy: PN512Driver.h
+Copy: coap_security_handler.h
+Copy: arm_hal_interrupt_private.h
+Copy: CAN.h
+Copy: objects.h
+Copy: rpl_control.h
+Copy: certs.h
+Copy: ObservingBlockDevice.h
+Copy: tls_lib.h
+Copy: QUECTEL_BC95.h
+Copy: pana_relay_table.h
+Copy: ssl.h
+Copy: nwk_stats_api.h
+Copy: QUECTEL_BG96_CellularSIM.h
+Copy: utest_shim.h
+Copy: crypto_sizes.h
+Copy: netif.h
+Copy: thread_network_data_storage.h
+Copy: unity_config.h
+Copy: thread_mdns.h
+Copy: PN512TransportDriver.h
+Copy: ws_common_defines.h
+Copy: mbed_trace.h
+Copy: mbed_crash_data_offsets.h
+Copy: CellularTargets.h
+Copy: asn1write.h
+Copy: TDBStore.h
+Copy: whiteboard.h
+Copy: raw.h
+Copy: ip_fsc.h
+Copy: protocol_6lowpan.h
+Copy: utest_scheduler.h
+Copy: CellularCommon.h
+Copy: mac_data_poll.h
+Copy: pppdebug.h
+Copy: fnet_comp_config.h
+Copy: SecureStore.h
+Copy: ip4string.h
+Copy: bignum.h
+Copy: fnet_ip6.h
+Copy: ipcp.h
+Copy: ns_hal_init.h
+Copy: nd_tasklet.h
+Copy: QUECTEL_M26_CellularSIM.h
+Copy: entropy.h
+Copy: PN512SPITransportDriver.h
+Copy: ssl_ciphersuites.h
+Copy: arc4.h
+Copy: fnet_stack_config.h
+Copy: thread_bootstrap.h
+Copy: EMACMemoryManager.h
+Copy: bn_mul.h
+Copy: rtx_core_cm.h
+Copy: coap_connection_handler.h
+Copy: XcvrSpi.h
+Copy: gpio_api.h
+Copy: thread_dhcpv6_server.h
+Copy: sw_mac.h
+Copy: thread_management_if.h
+Copy: QUECTEL_BG96.h
+Copy: ip4.h
+Copy: greentea_serial.h
+Copy: gpio_object.h
+Copy: net_interface.h
+Copy: fnet_comp.h
+Copy: SPI.h
+Copy: mbed_mktime.h
+Copy: net_load_balance_api.h
+Copy: LittleFileSystem.h
+Copy: fnet_mdns.h
+Copy: ndef.h
+Copy: inb_iodefine.h
+Copy: mld.h
+Copy: pan_blacklist_api.h
+Copy: eventOS_event.h
+Copy: UBLOX_AT_CellularStack.h
+Copy: ostm_iodefine.h
+Copy: port_api.h
+Copy: cipher_internal.h
+Copy: SPISlave.h
+Copy: nd6.h
+Copy: critical_section_api.h
+Copy: eui64.h
+Copy: FileSystemLike.h
+Copy: ipv6_routing_table.h
+Copy: nwk_nvm.h
+Copy: ip_addr.h
+Copy: icmp6.h
+Copy: mac_defines.h
+Copy: QUECTEL_UG96_CellularContext.h
+Copy: fhss_config.h
+Copy: x509.h
+Copy: topo_trace.h
+Copy: thread_extension.h
+Copy: lwip_ethernet.h
+Copy: aes.h
+Copy: thread_nd.h
+Copy: cfg_thread_border_router.h
+Copy: cmsis_os2.h
+Copy: aria.h
+Copy: chacha20.h
+Copy: WiFiInterface.h
+Copy: mac_mcps.h
+Copy: ac_buffer.h
+Copy: MBRBlockDevice.h
+Copy: LWIPStack.h
+Copy: eap.h
+Copy: des.h
+Copy: protocols.h
+Copy: pk_internal.h
+Copy: ESP8266Interface.h
+Copy: mac_header_helper_functions.h
+Copy: mbed_retarget.h
+Copy: LoRaWANBase.h
+Copy: kvstore_global_api.h
+Copy: NFCDefinitions.h
+Copy: thread_border_router_api.h
+Copy: pppcrypt.h
+Copy: ip6_frag.h
+Copy: x509_crt.h
+Copy: ac_macros.h
+Copy: mac_filter.h
+Copy: thread_tmfcop_lib.h
+Copy: eventOS_scheduler.h
+Copy: mac_mlme.h
+Copy: icmp6.h
+Copy: SARA4_PPP_CellularPower.h
+Copy: nvic_wrapper.h
+Copy: pkcs5.h
+Copy: pana_eap_header.h
+Copy: Ticker.h
+Copy: mbed_mem_trace.h
+Copy: cipher.h
+Copy: udp.h
+Copy: thread_resolution_client.h
+Copy: lora_phy_ds.h
+Copy: CellularUtil.h
+Copy: QUECTEL_M26_CellularNetwork.h
+Copy: entropy_poll.h
+Copy: CircularBuffer.h
+Copy: thread_bbr_api.h
+Copy: chap-new.h
+Copy: LoRaPHY.h
+Copy: eventOS_callback_timer.h
+Copy: arch.h
+Copy: I2C.h
+Copy: os_tick.h
+Copy: cfg_lowpan_host.h
+Copy: debug.h
+Copy: mbed_lp_ticker_wrapper.h
+Copy: md5.h
+Copy: fnet_poll.h
+Copy: fnet_eth.h
+Copy: fnet_error.h
+Copy: LoRaRadio.h
+Copy: RTE_Components.h
+Copy: ScopedRomWriteLock.h
+Copy: thread_beacon.h
+Copy: mesh.h
+Copy: cfg_rf_interface.h
+Copy: Mail.h
+Copy: ATHandler.h
+Copy: nfc_transport.h
+Copy: QUECTEL_BG96_CellularStack.h
+Copy: SocketStats.h
+Copy: nd6_priv.h
+Copy: onboard_modem_api.h
+Copy: tls_ccm_crypt.h
+Copy: callback_handler.h
+Copy: sec_lib.h
+Copy: pn512_transceive.h
+Copy: address.h
+Copy: Mime.h
+Copy: ssl_cookie.h
+Copy: thread_mle_message_handler.h
+Copy: eventOS_event_timer.h
+Copy: mac_security_mib.h
+Copy: FunctionPointer.h
+Copy: vfp_neon_push_pop.h
+Copy: fnet_stdlib.h
+Copy: NanostackPhy.h
+Copy: opt.h
+Copy: critical.h
+Copy: dhcp.h
+Copy: gpio_iodefine.h
+Copy: unity.h
+Copy: pn512_poll.h
+Copy: KVStore.h
+Copy: mle_service_api.h
+Copy: mac_mcps_sap.h
+Copy: lorawan_data_structures.h
+Copy: cca_api.h
+Copy: fhss_statistics.h
+Copy: sys_arch.h
+Copy: net_load_balance_internal.h
+Copy: sn_coap_header.h
+Copy: can_api.h
+Copy: x509_crl.h
+Copy: AT86RFReg.h
+Copy: NetworkStack.h
+Copy: analogout_api.h
+Copy: fnet_serial_config.h
+Copy: BlockDevice.h
+Copy: x509_csr.h
+Copy: LoRaPHYAU915.h
+Copy: netbuf.h
+Copy: threading.h
+Copy: ffconf.h
+Copy: dns.h
+Copy: fnet_isr.h
+Copy: arm_hal_nvm.h
+Copy: pinmap.h
+Copy: QUECTEL_BC95_CellularPower.h
+Copy: serial_api.h
+Copy: SysTimer.h
+Copy: mac_neighbor_table.h
+Copy: cfg_lowpan_host.h
+Copy: mmc_iodefine.h
+Copy: cmsis_iccarm.h
+Copy: CellularInformation.h
+Copy: mac_response_handler.h
+Copy: MbedCRC.h
+Copy: scim_iodefine.h
+Copy: ws_common.h
+Copy: mac_pairwise_key.h
+Copy: WisunInterface.h
+Copy: test_env.h
+Copy: ctr_drbg.h
+Copy: system_VK_RZ_A1H.h
+Copy: thread_extension_bbr.h
+Copy: rtx_core_c.h
+Copy: cfg_nanostack_full_debug.h
+Copy: thread_resolution_server.h
+Copy: cmac.h
+Copy: LoRaWANTimer.h
+Copy: cmsis_cp15.h
+Copy: timeouts.h
+Copy: mbed_boot.h
+Copy: rtx_lib.h
+Copy: thread_network_data_lib.h
+Copy: mbed_semihost_api.h
+Copy: NanostackRfInterface.h
+Copy: arm_hal_interrupt.h
+Copy: transceiver_internal.h
+Copy: mbed_toolchain.h
+Copy: LowPowerTickerWrapper.h
+Copy: thread_discovery.h
+Copy: thread_leader_service.h
+Copy: cfg_lowpan_router.h
+Copy: rpl_of0.h
+Copy: sw_mac_internal.h
+Copy: nsapi_types.h
+Copy: FlashSimBlockDevice.h
+Copy: libDHCPv6_server.h
+Copy: fnet_services_config.h
+Copy: havege.h
+Copy: romdec_iodefine.h
+Copy: cc.h
+Copy: pppapi.h
+Copy: UBLOX_AT_CellularNetwork.h
+Copy: sn_coap_header_internal.h
+Copy: DirHandle.h
+Copy: SerialWireOutput.h
+Copy: Span.h
+Copy: fnet_mempool.h
+Copy: ns_event_loop_mutex.h
+Copy: GEMALTO_CINTERION.h
+Copy: r_typedefs.h
+Copy: CallChain.h
+Copy: Ethernet.h
+Copy: LoRaPHYIN865.h
+Copy: lowpan_adaptation_interface.h
+Copy: Record.h
+Copy: mbed_stats.h
+Copy: timer_sys.h
+Copy: thread_meshcop_lib.h
+Copy: NanostackRfPhys2lp.h
+Copy: crc_api.h
+Copy: rspi_iodefine.h
+Copy: VKRZA1H.h
+Copy: QUECTEL_UG96.h
+Copy: pkcs12.h
+Copy: iso7816.h
+Copy: analogin_api.h
+Copy: OnboardCellularInterface.h
+Copy: def.h
+Copy: lowpan6.h
+Copy: cpg_iodefine.h
+Copy: ff.h
+Copy: etharp.h
+Copy: LoRaMac.h
+Copy: LoRaWANStack.h
+Copy: FileSystemHandle.h
+Copy: ProfilingBlockDevice.h
+Copy: vdc5_iodefine.h
+Copy: cmsis_armclang.h
+Copy: TCPSocket.h
+Copy: netdb.h
+Copy: pbuf.h
+Copy: icmpv6_radv.h
+Copy: fhss_ws_extension.h
+Copy: MemoryPool.h
+Copy: UBLOX_AT_CellularContext.h
+Copy: RTX_Config.h
+Copy: nsapi.h
+Copy: kv_config.h
+Copy: LoRaWANInterface.h
+Copy: err.h
+Copy: NanostackInterface.h
+Copy: QSPI.h
+Copy: ns_trace.h
+Copy: mbed_filesystem.h
+Copy: isqrt.h
+Copy: api_msg.h
+Copy: AT_CellularInformation.h
+Copy: AT_CellularStack.h
+Copy: ethernetext_api.h
+Copy: File.h
+Copy: crypto_driver.h
+Copy: nsconfig.h
+Copy: can_helper.h
+Copy: mac_api.h
+Copy: pana_avp.h
+Copy: ns_file_system.h
+Copy: net_nvm_api.h
+Copy: mtu2_iobitmask.h
+Copy: icmp.h
+Copy: gpio_irq_api.h
+Copy: SingletonPtr.h
+Copy: NanostackLockGuard.h
+Copy: cmsis.h
+Copy: type4_target.h
+Copy: thread_address_registration_client.h
+Copy: QUECTEL_BC95_CellularStack.h
+Copy: mbed_version.h
+Copy: MessageBuilder.h
+Copy: fnet_serial.h
+Copy: MCR20Overwrites.h
+Copy: FileSystem.h
+Copy: LowPowerTicker.h
+Copy: equeue.h
+Copy: utest_serial.h
+Copy: cmsis_os.h
+Copy: QUECTEL_M26_CellularContext.h
+Copy: psa_util.h
+Copy: DirectAccessDevicekey.h
+Copy: tcpip_priv.h
+Copy: thread_host_bootstrap.h
+Copy: EMACInterface.h
+Copy: cfg_ethernet_host.h
+Copy: Semaphore.h
+Copy: mpx_api.h
+Copy: I2CSlave.h
+Copy: thread_constants.h
+Copy: utest_harness.h
+Copy: gcm.h
+Copy: spdif_iodefine.h
+Copy: nfc_scheduler.h
+Copy: fnet_netif_prv.h
+Copy: cfg_nanostack_full.h
+Copy: thread_bbr_api_internal.h
+Copy: ThisThread.h
+Copy: ticker_api.h
+Copy: fnet_config.h
+Copy: FilePath.h
+Copy: mle.h
+Copy: sdg_iodefine.h
+Copy: UBLOX_PPP.h
+Copy: lib_RZ_A1H_sd_driver.a
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: targets.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: doxygen_options.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: VKRZA1H.ld
+Compile [  0.1%]: irq_ctrl_gic.c
+Compile [  0.3%]: MCR20Drv.c
+Compile [  0.4%]: rf_configuration.c
+Compile [  0.6%]: at24mac.cpp
+Compile [  0.7%]: sdhi_low.c
+[Warning] sdhi_low.c@261,76: comparison between signed and unsigned integer expressions [-Wsign-compare]
+[Warning] sdhi_low.c@253,22: variable 'dummy_buf' set but not used [-Wunused-but-set-variable]
+[Warning] sdhi_low.c@416,10: #pragma GCC target is not supported for this machine [-Wpragmas]
+[Warning] sdhi_low.c@531,80: comparison between signed and unsigned integer expressions [-Wsign-compare]
+[Warning] sdhi_low.c@542,82: comparison between signed and unsigned integer expressions [-Wsign-compare]
+Compile [  0.9%]: NanostackRfPhyAtmel.cpp
+Compile [  1.0%]: NanostackRfPhyMcr20a.cpp
+Compile [  1.1%]: NanostackRfPhys2lp.cpp
+Compile [  1.3%]: ESP8266Interface.cpp
+Compile [  1.4%]: ESP8266.cpp
+Compile [  1.6%]: AnalogIn.cpp
+Compile [  1.7%]: BusIn.cpp
+Compile [  1.9%]: BusOut.cpp
+Compile [  2.0%]: BusInOut.cpp
+Compile [  2.1%]: RZ_SDHIBlockDevice.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+Compile [  2.3%]: Ethernet.cpp
+Compile [  2.4%]: CAN.cpp
+Compile [  2.6%]: InterruptManager.cpp
+Compile [  2.7%]: FlashIAP.cpp
+Compile [  2.9%]: I2C.cpp
+Compile [  3.0%]: I2CSlave.cpp
+Compile [  3.1%]: MbedCRC.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+Compile [  3.3%]: TableCRC.cpp
+Compile [  3.4%]: InterruptIn.cpp
+Compile [  3.6%]: QSPI.cpp
+Compile [  3.7%]: RawSerial.cpp
+Compile [  3.9%]: SPISlave.cpp
+Compile [  4.0%]: SPI.cpp
+Compile [  4.1%]: Serial.cpp
+Compile [  4.3%]: Ticker.cpp
+Compile [  4.4%]: SerialBase.cpp
+Compile [  4.6%]: Timeout.cpp
+Compile [  4.7%]: TimerEvent.cpp
+Compile [  4.9%]: equeue_posix.c
+Compile [  5.0%]: Timer.cpp
+Compile [  5.2%]: equeue.c
+Compile [  5.3%]: EventQueue.cpp
+Compile [  5.4%]: mbed_shared_queues.cpp
+Compile [  5.6%]: UARTSerial.cpp
+Compile [  5.7%]: equeue_mbed.cpp
+Compile [  5.9%]: AT_CellularBase.cpp
+Compile [  6.0%]: AT_CellularInformation.cpp
+Compile [  6.2%]: AT_CellularPower.cpp
+Compile [  6.3%]: AT_CellularContext.cpp
+Compile [  6.4%]: AT_CellularSIM.cpp
+Compile [  6.6%]: ATHandler.cpp
+Compile [  6.7%]: AT_CellularNetwork.cpp
+Compile [  6.9%]: AT_CellularDevice.cpp
+Compile [  7.0%]: CellularLog.cpp
+Compile [  7.2%]: AT_CellularSMS.cpp
+Compile [  7.3%]: CellularUtil.cpp
+Compile [  7.4%]: AT_CellularStack.cpp
+Compile [  7.6%]: CellularContext.cpp
+Compile [  7.7%]: GEMALTO_CINTERION.cpp
+Compile [  7.9%]: GEMALTO_CINTERION_CellularContext.cpp
+Compile [  8.0%]: CellularDevice.cpp
+Compile [  8.2%]: GEMALTO_CINTERION_CellularNetwork.cpp
+Compile [  8.3%]: SARA4_PPP.cpp
+Compile [  8.4%]: CellularStateMachine.cpp
+Compile [  8.6%]: SARA4_PPP_CellularContext.cpp
+Compile [  8.7%]: GEMALTO_CINTERION_CellularStack.cpp
+[Warning] GEMALTO_CINTERION_CellularStack.cpp@494,29: 'port_start' may be used uninitialized in this function [-Wmaybe-uninitialized]
+Compile [  8.9%]: SARA4_PPP_CellularNetwork.cpp
+Compile [  9.0%]: SARA4_PPP_CellularPower.cpp
+Compile [  9.2%]: QUECTEL_BC95.cpp
+Compile [  9.3%]: QUECTEL_BC95_CellularContext.cpp
+Compile [  9.4%]: QUECTEL_BC95_CellularNetwork.cpp
+Compile [  9.6%]: QUECTEL_BC95_CellularPower.cpp
+Compile [  9.7%]: QUECTEL_BC95_CellularSIM.cpp
+Compile [  9.9%]: QUECTEL_BC95_CellularStack.cpp
+Compile [ 10.0%]: QUECTEL_BG96.cpp
+Compile [ 10.2%]: QUECTEL_BG96_CellularContext.cpp
+Compile [ 10.3%]: QUECTEL_BG96_CellularNetwork.cpp
+Compile [ 10.4%]: QUECTEL_BG96_CellularPower.cpp
+Compile [ 10.6%]: QUECTEL_BG96_CellularSIM.cpp
+Compile [ 10.7%]: QUECTEL_M26.cpp
+Compile [ 10.9%]: QUECTEL_BG96_CellularStack.cpp
+[Warning] QUECTEL_BG96_CellularStack.cpp@332,29: comparison between signed and unsigned integer expressions [-Wsign-compare]
+Compile [ 11.0%]: QUECTEL_M26_CellularContext.cpp
+Compile [ 11.2%]: QUECTEL_M26_CellularNetwork.cpp
+Compile [ 11.3%]: QUECTEL_M26_CellularPower.cpp
+Compile [ 11.4%]: QUECTEL_M26_CellularSIM.cpp
+Compile [ 11.6%]: QUECTEL_M26_CellularStack.cpp
+[Warning] QUECTEL_M26_CellularStack.cpp@367,9: variable 'sent_acked' set but not used [-Wunused-but-set-variable]
+Compile [ 11.7%]: QUECTEL_UG96.cpp
+Compile [ 11.9%]: QUECTEL_UG96_CellularNetwork.cpp
+Compile [ 12.0%]: QUECTEL_UG96_CellularContext.cpp
+Compile [ 12.2%]: QUECTEL_UG96_CellularPower.cpp
+Compile [ 12.3%]: TELIT_HE910.cpp
+Compile [ 12.4%]: TELIT_HE910_CellularContext.cpp
+Compile [ 12.6%]: TELIT_HE910_CellularNetwork.cpp
+Compile [ 12.7%]: TELIT_HE910_CellularPower.cpp
+Compile [ 12.9%]: UBLOX_AT.cpp
+Compile [ 13.0%]: UBLOX_AT_CellularNetwork.cpp
+Compile [ 13.2%]: UBLOX_AT_CellularPower.cpp
+Compile [ 13.3%]: DeviceKey.cpp
+Compile [ 13.4%]: UBLOX_AT_CellularContext.cpp
+Compile [ 13.6%]: UBLOX_PPP.cpp
+Compile [ 13.7%]: UBLOX_PPP_CellularContext.cpp
+Compile [ 13.9%]: UBLOX_PPP_CellularNetwork.cpp
+Compile [ 14.0%]: UBLOX_AT_CellularStack.cpp
+Compile [ 14.2%]: greentea_metrics.cpp
+Compile [ 14.3%]: UBLOX_PPP_CellularPower.cpp
+Compile [ 14.4%]: randLIB.c
+Compile [ 14.6%]: sn_coap_header_check.c
+Compile [ 14.7%]: sn_coap_builder.c
+Compile [ 14.9%]: sn_coap_parser.c
+Compile [ 15.0%]: ip_fsc.c
+Compile [ 15.2%]: mbed_trace.c
+Compile [ 15.3%]: greentea_serial.cpp
+Compile [ 15.5%]: sn_coap_protocol.c
+Compile [ 15.6%]: ns_cmdline.c
+Compile [ 15.7%]: ns_list.c
+Compile [ 15.9%]: greentea_test_env.cpp
+Compile [ 16.0%]: common_functions.c
+Compile [ 16.2%]: ip4tos.c
+Compile [ 16.3%]: stoip4.c
+Compile [ 16.5%]: ip6tos.c
+Compile [ 16.6%]: stoip6.c
+Compile [ 16.7%]: nsdynmemLIB.c
+Compile [ 16.9%]: ns_nvm_helper.c
+Compile [ 17.0%]: unity.c
+Compile [ 17.2%]: utest_stack_trace.cpp
+Compile [ 17.3%]: mbed-utest-shim.cpp
+Compile [ 17.5%]: unity_handler.cpp
+Compile [ 17.6%]: utest_case.cpp
+Compile [ 17.7%]: utest_default_handlers.cpp
+Compile [ 17.9%]: utest_shim.cpp
+Compile [ 18.0%]: utest_greentea_handlers.cpp
+Compile [ 18.2%]: utest_harness.cpp
+Compile [ 18.3%]: utest_types.cpp
+Compile [ 18.5%]: LoRaMacCrypto.cpp
+Compile [ 18.6%]: LoRaWANInterface.cpp
+Compile [ 18.7%]: LoRaMacChannelPlan.cpp
+Compile [ 18.9%]: LoRaMacCommand.cpp
+Compile [ 19.0%]: LoRaPHYAS923.cpp
+Compile [ 19.2%]: LoRaWANStack.cpp
+Compile [ 19.3%]: LoRaMac.cpp
+Compile [ 19.5%]: LoRaPHY.cpp
+Compile [ 19.6%]: LoRaPHYAU915.cpp
+Compile [ 19.7%]: LoRaPHYCN779.cpp
+Compile [ 19.9%]: LoRaPHYCN470.cpp
+Compile [ 20.0%]: LoRaPHYEU433.cpp
+Compile [ 20.2%]: LoRaPHYEU868.cpp
+Compile [ 20.3%]: LoRaPHYIN865.cpp
+Compile [ 20.5%]: LoRaPHYKR920.cpp
+Compile [ 20.6%]: LoRaWANTimer.cpp
+Compile [ 20.7%]: lwip_checksum.c
+Compile [ 20.9%]: lwip_memcpy.c
+Compile [ 21.0%]: LoRaPHYUS915.cpp
+Compile [ 21.2%]: lwip_random.c
+Compile [ 21.3%]: LWIPMemoryManager.cpp
+Compile [ 21.5%]: LWIPInterfaceEMAC.cpp
+Compile [ 21.6%]: LWIPInterface.cpp
+Compile [ 21.7%]: lwip_sys_arch.c
+Compile [ 21.9%]: lwip_tcp_isn.c
+Compile [ 22.0%]: lwip_api_lib.c
+Compile [ 22.2%]: LWIPStack.cpp
+Compile [ 22.3%]: lwip_err.c
+Compile [ 22.5%]: lwip_netdb.c
+Compile [ 22.6%]: lwip_netbuf.c
+Compile [ 22.7%]: lwip_netifapi.c
+Compile [ 22.9%]: lwip_sockets.c
+Compile [ 23.0%]: lwip_api_msg.c
+Compile [ 23.2%]: lwip_autoip.c
+Compile [ 23.3%]: lwip_tcpip.c
+Compile [ 23.5%]: lwip_icmp.c
+Compile [ 23.6%]: lwip_etharp.c
+Compile [ 23.7%]: lwip_igmp.c
+Compile [ 23.9%]: lwip_dhcp.c
+Compile [ 24.0%]: lwip_ip4_addr.c
+Compile [ 24.2%]: lwip_ip4.c
+Compile [ 24.3%]: lwip_dhcp6.c
+Compile [ 24.5%]: lwip_ip4_frag.c
+Compile [ 24.6%]: lwip_ethip6.c
+Compile [ 24.7%]: lwip_icmp6.c
+Compile [ 24.9%]: lwip_inet6.c
+Compile [ 25.0%]: lwip_ip6.c
+Compile [ 25.2%]: lwip_ip6_addr.c
+Compile [ 25.3%]: lwip_mld6.c
+Compile [ 25.5%]: lwip_ip6_frag.c
+Compile [ 25.6%]: lwip_nd6.c
+Compile [ 25.8%]: lwip_def.c
+Compile [ 25.9%]: lwip_dns.c
+Compile [ 26.0%]: lwip_inet_chksum.c
+Compile [ 26.2%]: lwip_ip.c
+Compile [ 26.3%]: lwip_init.c
+Compile [ 26.5%]: lwip_mem.c
+Compile [ 26.6%]: lwip_memp.c
+Compile [ 26.8%]: lwip_netif.c
+Compile [ 26.9%]: lwip_raw.c
+Compile [ 27.0%]: lwip_stats.c
+Compile [ 27.2%]: lwip_sys.c
+Compile [ 27.3%]: lwip_pbuf.c
+Compile [ 27.5%]: lwip_tcp.c
+Compile [ 27.6%]: lwip_tcp_in.c
+Compile [ 27.8%]: lwip_timeouts.c
+Compile [ 27.9%]: lwip_tcp_out.c
+Compile [ 28.0%]: lwip_ethernetif.c
+Compile [ 28.2%]: lwip_udp.c
+Compile [ 28.3%]: lwip_ethernet.c
+Compile [ 28.5%]: lwip_lowpan6.c
+Compile [ 28.6%]: lwip_auth.c
+Compile [ 28.8%]: lwip_ccp.c
+Compile [ 28.9%]: lwip_chap-md5.c
+Compile [ 29.0%]: lwip_chap-new.c
+Compile [ 29.2%]: lwip_chap_ms.c
+Compile [ 29.3%]: lwip_demand.c
+Compile [ 29.5%]: lwip_ecp.c
+Compile [ 29.6%]: lwip_eap.c
+Compile [ 29.8%]: lwip_eui64.c
+Compile [ 29.9%]: lwip_fsm.c
+Compile [ 30.0%]: lwip_ipcp.c
+Compile [ 30.2%]: lwip_ipv6cp.c
+Compile [ 30.3%]: lwip_lcp.c
+Compile [ 30.5%]: lwip_mppe.c
+Compile [ 30.6%]: lwip_magic.c
+Compile [ 30.8%]: lwip_multilink.c
+Compile [ 30.9%]: lwip_ppp.c
+Compile [ 31.0%]: lwip_pppapi.c
+Compile [ 31.2%]: lwip_pppcrypt.c
+Compile [ 31.3%]: lwip_pppoe.c
+Compile [ 31.5%]: lwip_pppol2tp.c
+Compile [ 31.6%]: lwip_pppos.c
+Compile [ 31.8%]: lwip_upap.c
+Compile [ 31.9%]: lwip_utils.c
+Compile [ 32.0%]: lwip_vj.c
+Compile [ 32.2%]: mbed_trng.cpp
+Compile [ 32.3%]: lwip_arc4.c
+Compile [ 32.5%]: lwip_des.c
+Compile [ 32.6%]: lwip_md4.c
+Compile [ 32.8%]: lwip_sha1.c
+Compile [ 32.9%]: lwip_md5.c
+Compile [ 33.0%]: aesni.c
+Compile [ 33.2%]: arc4.c
+Compile [ 33.3%]: aria.c
+Compile [ 33.5%]: platform_alt.c
+Compile [ 33.6%]: blowfish.c
+Compile [ 33.8%]: camellia.c
+Compile [ 33.9%]: asn1parse.c
+Compile [ 34.0%]: lwip_tools.cpp
+Compile [ 34.2%]: aes.c
+Compile [ 34.3%]: asn1write.c
+Compile [ 34.5%]: base64.c
+Compile [ 34.6%]: certs.c
+Compile [ 34.8%]: chacha20.c
+Compile [ 34.9%]: chachapoly.c
+Compile [ 35.1%]: ppp_lwip.cpp
+Compile [ 35.2%]: ctr_drbg.c
+Compile [ 35.3%]: debug.c
+Compile [ 35.5%]: des.c
+Compile [ 35.6%]: dhm.c
+Compile [ 35.8%]: ecdh.c
+Compile [ 35.9%]: bignum.c
+Compile [ 36.1%]: ccm.c
+Compile [ 36.2%]: cipher_wrap.c
+Compile [ 36.3%]: ecjpake.c
+Compile [ 36.5%]: entropy.c
+Compile [ 36.6%]: cipher.c
+Compile [ 36.8%]: cmac.c
+Compile [ 36.9%]: havege.c
+Compile [ 37.1%]: hkdf.c
+Compile [ 37.2%]: entropy_poll.c
+Compile [ 37.3%]: ecdsa.c
+Compile [ 37.5%]: ecp_curves.c
+Compile [ 37.6%]: md2.c
+Compile [ 37.8%]: md4.c
+Compile [ 37.9%]: md5.c
+Compile [ 38.1%]: memory_buffer_alloc.c
+Compile [ 38.2%]: error.c
+Compile [ 38.3%]: net_sockets.c
+Compile [ 38.5%]: hmac_drbg.c
+Compile [ 38.6%]: gcm.c
+Compile [ 38.8%]: nist_kw.c
+Compile [ 38.9%]: md.c
+Compile [ 39.1%]: padlock.c
+Compile [ 39.2%]: ecp.c
+Compile [ 39.3%]: md_wrap.c
+Compile [ 39.5%]: pkcs11.c
+Compile [ 39.6%]: pkcs12.c
+Compile [ 39.8%]: pkcs5.c
+Compile [ 39.9%]: pk.c
+Compile [ 40.1%]: poly1305.c
+Compile [ 40.2%]: pem.c
+Compile [ 40.3%]: oid.c
+Compile [ 40.5%]: ripemd160.c
+Compile [ 40.6%]: pk_wrap.c
+Compile [ 40.8%]: platform_util.c
+Compile [ 40.9%]: platform.c
+Compile [ 41.1%]: pkwrite.c
+Compile [ 41.2%]: sha1.c
+Compile [ 41.3%]: pkparse.c
+Compile [ 41.5%]: rsa_internal.c
+Compile [ 41.6%]: ssl_cache.c
+Compile [ 41.8%]: ssl_ciphersuites.c
+Compile [ 41.9%]: ssl_cli.c
+Compile [ 42.1%]: ssl_cookie.c
+Compile [ 42.2%]: ssl_srv.c
+Compile [ 42.3%]: ssl_ticket.c
+Compile [ 42.5%]: ssl_tls.c
+Compile [ 42.6%]: threading.c
+Compile [ 42.8%]: x509_create.c
+Compile [ 42.9%]: sha256.c
+Compile [ 43.1%]: version.c
+Compile [ 43.2%]: version_features.c
+Compile [ 43.3%]: rsa.c
+Compile [ 43.5%]: sha512.c
+Compile [ 43.6%]: x509_csr.c
+Compile [ 43.8%]: timing.c
+Compile [ 43.9%]: x509write_crt.c
+Compile [ 44.1%]: xtea.c
+Compile [ 44.2%]: x509write_csr.c
+Compile [ 44.3%]: x509.c
+Compile [ 44.5%]: hash_wrappers.c
+Compile [ 44.6%]: x509_crl.c
+Compile [ 44.8%]: coap_security_handler.c
+Compile [ 44.9%]: coap_message_handler.c
+Compile [ 45.1%]: coap_connection_handler.c
+[Warning] coap_security_handler.h@132,45: statement with no effect [-Wunused-value]
+[Warning] coap_security_handler.h@132,45: statement with no effect [-Wunused-value]
+[Warning] coap_connection_handler.c@430,12: 'secure_session_sendto' defined but not used [-Wunused-function]
+[Warning] coap_connection_handler.c@463,12: 'secure_session_recvfrom' defined but not used [-Wunused-function]
+[Warning] coap_connection_handler.c@516,13: 'start_timer' defined but not used [-Wunused-function]
+[Warning] coap_connection_handler.c@539,12: 'timer_status' defined but not used [-Wunused-function]
+Compile [ 45.2%]: coap_service_api.c
+Compile [ 45.4%]: x509_crt.c
+Compile [ 45.5%]: CallbackHandler.cpp
+Compile [ 45.6%]: LoWPANNDInterface.cpp
+Compile [ 45.8%]: NanostackMemoryManager.cpp
+Compile [ 45.9%]: MeshInterfaceNanostack.cpp
+Compile [ 46.1%]: NanostackEMACInterface.cpp
+Compile [ 46.2%]: NanostackEthernetInterface.cpp
+Compile [ 46.4%]: ethernet_tasklet.c
+Compile [ 46.5%]: ThreadInterface.cpp
+Compile [ 46.6%]: WisunInterface.cpp
+Compile [ 46.8%]: arm_hal_interrupt.c
+Compile [ 46.9%]: mesh_system.c
+Compile [ 47.1%]: arm_hal_random.c
+Compile [ 47.2%]: nd_tasklet.c
+Compile [ 47.4%]: cs_nvm.c
+Compile [ 47.5%]: wisun_tasklet.c
+Compile [ 47.6%]: thread_tasklet.c
+Compile [ 47.8%]: ns_event_loop.c
+Compile [ 47.9%]: ns_hal_init.c
+Compile [ 48.1%]: ns_event_loop_mutex.c
+Compile [ 48.2%]: nvm_ram.c
+Compile [ 48.4%]: minar_hal_timer.cpp
+Compile [ 48.5%]: ns_timeout.c
+Compile [ 48.6%]: arm_hal_fhss_timer.cpp
+Compile [ 48.8%]: event.c
+Compile [ 48.9%]: arm_hal_timer.cpp
+Compile [ 49.1%]: ns_timer.c
+Compile [ 49.2%]: ns_event_loop_mbed.cpp
+Compile [ 49.4%]: system_timer.c
+Compile [ 49.5%]: network_lib.c
+Compile [ 49.6%]: cipv6_fragmenter.c
+Compile [ 49.8%]: Nanostack.cpp
+Compile [ 49.9%]: 6lowpan_iphc.c
+Compile [ 50.1%]: protocol_6lowpan_interface.c
+Compile [ 50.2%]: iphc_compress.c
+Compile [ 50.4%]: protocol_6lowpan.c
+Compile [ 50.5%]: lowpan_context.c
+Compile [ 50.6%]: iphc_decompress.c
+Compile [ 50.8%]: mac_ie_lib.c
+Compile [ 50.9%]: beacon_handler.c
+Compile [ 51.1%]: protocol_6lowpan_bootstrap.c
+Compile [ 51.2%]: mac_pairwise_key.c
+Compile [ 51.4%]: mac_data_poll.c
+Compile [ 51.5%]: mac_helper.c
+Compile [ 51.6%]: mac_response_handler.c
+Compile [ 51.8%]: thread_beacon.c
+Compile [ 51.9%]: mesh.c
+Compile [ 52.1%]: nwk_nvm.c
+Compile [ 52.2%]: thread_border_router_api.c
+Compile [ 52.4%]: nd_router_object.c
+Compile [ 52.5%]: thread_bbr_api.c
+Compile [ 52.6%]: thread_commissioning_if.c
+Compile [ 52.8%]: thread_dhcpv6_server.c
+Compile [ 52.9%]: thread_commissioning_api.c
+Compile [ 53.1%]: thread_lowpower_private_api.c
+Compile [ 53.2%]: thread_diagnostic.c
+Compile [ 53.4%]: thread_bootstrap.c
+Compile [ 53.5%]: thread_common.c
+Compile [ 53.6%]: thread_discovery.c
+Compile [ 53.8%]: thread_host_bootstrap.c
+Compile [ 53.9%]: thread_management_api.c
+Compile [ 54.1%]: thread_leader_service.c
+Compile [ 54.2%]: thread_joiner_application.c
+Compile [ 54.4%]: thread_meshcop_lib.c
+Compile [ 54.5%]: thread_management_client.c
+Compile [ 54.6%]: thread_mdns.c
+Compile [ 54.8%]: thread_net_config_api.c
+Compile [ 54.9%]: thread_management_if.c
+Compile [ 55.1%]: thread_neighbor_class.c
+Compile [ 55.2%]: thread_management_server.c
+Compile [ 55.4%]: thread_mle_message_handler.c
+Compile [ 55.5%]: thread_nd.c
+Compile [ 55.7%]: thread_network_data_lib.c
+Compile [ 55.8%]: thread_network_synch.c
+Compile [ 55.9%]: thread_resolution_client.c
+Compile [ 56.1%]: thread_resolution_server.c
+Compile [ 56.2%]: thread_nvm_store.c
+Compile [ 56.4%]: thread_network_data_storage.c
+Compile [ 56.5%]: ws_empty_functions.c
+Compile [ 56.7%]: thread_routing.c
+Compile [ 56.8%]: thread_test_api.c
+Compile [ 56.9%]: icmpv6_prefix.c
+Compile [ 57.1%]: ipv6_flow.c
+Compile [ 57.2%]: adaptation_interface.c
+Compile [ 57.4%]: border_router.c
+Compile [ 57.5%]: thread_router_bootstrap.c
+[Warning] thread_router_bootstrap.c@1408,21: unused variable 'retVal' [-Wunused-variable]
+[Warning] thread_router_bootstrap.c@1428,21: unused variable 'retVal' [-Wunused-variable]
+Compile [ 57.7%]: icmpv6_radv.c
+Compile [ 57.8%]: icmpv6.c
+Compile [ 57.9%]: ipv6.c
+Compile [ 58.1%]: ipv6_fragmentation.c
+Compile [ 58.2%]: ipv6_resolution.c
+Compile [ 58.4%]: mld.c
+Compile [ 58.5%]: udp.c
+Compile [ 58.7%]: buffer_dyn.c
+Compile [ 58.8%]: tcp.c
+Compile [ 58.9%]: sockbuf.c
+Compile [ 59.1%]: mac_fhss_callbacks.c
+Compile [ 59.2%]: address.c
+Compile [ 59.4%]: dhcpv6_client_service.c
+Compile [ 59.5%]: ns_socket.c
+Compile [ 59.7%]: mac_filter.c
+Compile [ 59.8%]: DHCPv6_Server_service.c
+Compile [ 59.9%]: mac_indirect_data.c
+Compile [ 60.1%]: mac_timer.c
+Compile [ 60.2%]: mac_header_helper_functions.c
+Compile [ 60.4%]: mac_security_mib.c
+Compile [ 60.5%]: mac_pd_sap.c
+Compile [ 60.7%]: sw_mac.c
+Compile [ 60.8%]: mac_mlme.c
+Compile [ 60.9%]: ethernet_mac_api.c
+Compile [ 61.1%]: rf_driver_storage.c
+Compile [ 61.2%]: serial_mac_api.c
+Compile [ 61.4%]: mac_mcps_sap.c
+Compile [ 61.5%]: virtual_rf_client.c
+Compile [ 61.7%]: virtual_rf_driver.c
+Compile [ 61.8%]: protocol_stats.c
+Compile [ 61.9%]: mle_tlv.c
+Compile [ 62.1%]: mle.c
+Compile [ 62.2%]: protocol_core_sleep.c
+Compile [ 62.4%]: protocol_timer.c
+Compile [ 62.5%]: mpl.c
+Compile [ 62.7%]: rpl_objective.c
+Compile [ 62.8%]: rpl_mrhof.c
+Compile [ 62.9%]: protocol_core.c
+Compile [ 63.1%]: rpl_of0.c
+Compile [ 63.2%]: rpl_data.c
+Compile [ 63.4%]: rpl_control.c
+Compile [ 63.5%]: rpl_policy.c
+Compile [ 63.7%]: rpl_downward.c
+Compile [ 63.8%]: pana_avp.c
+Compile [ 63.9%]: pana_eap_header.c
+Compile [ 64.1%]: pana_header.c
+Compile [ 64.2%]: security_lib.c
+Compile [ 64.4%]: eap_protocol.c
+Compile [ 64.5%]: rpl_upward.c
+Compile [ 64.7%]: pana_relay_table.c
+Compile [ 64.8%]: tls_ccm_crypt.c
+Compile [ 64.9%]: pana.c
+Compile [ 65.1%]: pana_client.c
+Compile [ 65.2%]: aes_mbedtls_adapter.c
+Compile [ 65.4%]: ccm_security.c
+Compile [ 65.5%]: neighbor_cache.c
+Compile [ 65.7%]: trickle.c
+Compile [ 65.8%]: ns_sha256.c
+Compile [ 66.0%]: tls_lib.c
+Compile [ 66.1%]: shalib.c
+Compile [ 66.2%]: pana_server.c
+Compile [ 66.4%]: fhss_channel.c
+Compile [ 66.5%]: channel_list.c
+Compile [ 66.7%]: blacklist.c
+Compile [ 66.8%]: fhss_statistics.c
+Compile [ 67.0%]: etx.c
+Compile [ 67.1%]: fhss_configuration_interface.c
+Compile [ 67.2%]: fhss_common.c
+Compile [ 67.4%]: fnv_hash.c
+Compile [ 67.5%]: fhss.c
+Compile [ 67.7%]: fhss_ws_empty_functions.c
+Compile [ 67.8%]: load_balance.c
+Compile [ 68.0%]: mac_neighbor_table.c
+Compile [ 68.1%]: fnet_poll.c
+Compile [ 68.2%]: ns_fnet_events.c
+Compile [ 68.4%]: fnet_stdlib.c
+Compile [ 68.5%]: ns_fnet_port.c
+Compile [ 68.7%]: ns_mdns_api.c
+Compile [ 68.8%]: fnet_mdns.c
+Compile [ 69.0%]: mle_service_buffer.c
+Compile [ 69.1%]: mle_service_frame_counter_table.c
+Compile [ 69.2%]: mle_service_interface.c
+Compile [ 69.4%]: isqrt.c
+Compile [ 69.5%]: mle_service_security.c
+Compile [ 69.7%]: ns_crc.c
+Compile [ 69.8%]: pan_blacklist.c
+Compile [ 70.0%]: nd_proxy.c
+Compile [ 70.1%]: mle_service.c
+Compile [ 70.2%]: ns_file_system.c
+Compile [ 70.4%]: whiteboard.c
+Compile [ 70.5%]: libDHCPv6_server.c
+Compile [ 70.7%]: libDHCPv6.c
+Compile [ 70.8%]: net_6lowpan_parameter_api.c
+Compile [ 71.0%]: dhcp_service_api.c
+Compile [ 71.1%]: multicast_api.c
+Compile [ 71.2%]: protocol_ipv6.c
+Compile [ 71.4%]: ipv6_routing_table.c
+Compile [ 71.5%]: net_ipv6.c
+Compile [ 71.7%]: net_mle.c
+Compile [ 71.8%]: net_short_address_extension.c
+Compile [ 72.0%]: net_load_balance.c
+Compile [ 72.1%]: net_rpl.c
+Compile [ 72.2%]: net_test.c
+Compile [ 72.4%]: socket_api.c
+Compile [ 72.5%]: ns_net.c
+Compile [ 72.7%]: DTLSSocket.cpp
+Compile [ 72.8%]: NetworkInterface.cpp
+Compile [ 73.0%]: EMACMemoryManager.cpp
+Compile [ 73.1%]: InternetSocket.cpp
+Compile [ 73.2%]: EMACInterface.cpp
+Compile [ 73.4%]: EthernetInterface.cpp
+Compile [ 73.5%]: DTLSSocketWrapper.cpp
+Compile [ 73.7%]: NetworkInterfaceDefaults.cpp
+Compile [ 73.8%]: SocketAddress.cpp
+Compile [ 74.0%]: NetworkStack.cpp
+Compile [ 74.1%]: WiFiAccessPoint.cpp
+Compile [ 74.2%]: TCPServer.cpp
+Compile [ 74.4%]: SocketStats.cpp
+Compile [ 74.5%]: TLSSocket.cpp
+Compile [ 74.7%]: TCPSocket.cpp
+Compile [ 74.8%]: UDPSocket.cpp
+Compile [ 75.0%]: TLSSocketWrapper.cpp
+Compile [ 75.1%]: OnboardCellularInterface.cpp
+Compile [ 75.3%]: ac_stream.c
+Compile [ 75.4%]: ac_buffer_builder.c
+Compile [ 75.5%]: ac_buffer.c
+Compile [ 75.7%]: ac_buffer_reader.c
+Compile [ 75.8%]: PPPCellularInterface.cpp
+Compile [ 76.0%]: UARTCellularInterface.cpp
+Compile [ 76.1%]: PN512TransportDriver.cpp
+Compile [ 76.3%]: rza1_emac.cpp
+Compile [ 76.4%]: PN512Driver.cpp
+Compile [ 76.5%]: NFCControllerDriver.cpp
+Compile [ 76.7%]: nsapi_dns.cpp
+Compile [ 76.8%]: NFCEEPROMDriver.cpp
+Compile [ 77.0%]: PN512SPITransportDriver.cpp
+Compile [ 77.1%]: NFCNDEFCapable.cpp
+Compile [ 77.3%]: NFCEEPROM.cpp
+Compile [ 77.4%]: NFCController.cpp
+Compile [ 77.5%]: NFCTarget.cpp
+Compile [ 77.7%]: NFCRemoteInitiator.cpp
+Compile [ 77.8%]: MessageBuilder.cpp
+Compile [ 78.0%]: NFCRemoteEndpoint.cpp
+Compile [ 78.1%]: RecordParser.cpp
+Compile [ 78.3%]: MessageParser.cpp
+Compile [ 78.4%]: Type4RemoteInitiator.cpp
+Compile [ 78.5%]: Mime.cpp
+Compile [ 78.7%]: SimpleMessageParser.cpp
+Compile [ 78.8%]: ndef.c
+Compile [ 79.0%]: Text.cpp
+Compile [ 79.1%]: nfc_scheduler.c
+Compile [ 79.3%]: URI.cpp
+Compile [ 79.4%]: util.cpp
+Compile [ 79.5%]: nfc_transport.c
+Compile [ 79.7%]: iso7816.c
+Compile [ 79.8%]: iso7816_app.c
+Compile [ 80.0%]: isodep_target.c
+Compile [ 80.1%]: type4_target.c
+Compile [ 80.3%]: pn512_cmd.c
+Compile [ 80.4%]: pn512.c
+Compile [ 80.5%]: pn512_hw.c
+Compile [ 80.7%]: pn512_irq.c
+Compile [ 80.8%]: pn512_registers.c
+Compile [ 81.0%]: transceiver.c
+Compile [ 81.1%]: pn512_timer.c
+Compile [ 81.3%]: pn512_poll.c
+Compile [ 81.4%]: pn512_rf.c
+Compile [ 81.5%]: pn512_transceive.c
+Compile [ 81.7%]: ExhaustibleBlockDevice.cpp
+Compile [ 81.8%]: ChainingBlockDevice.cpp
+Compile [ 82.0%]: ProfilingBlockDevice.cpp
+Compile [ 82.1%]: SlicingBlockDevice.cpp
+Compile [ 82.3%]: HeapBlockDevice.cpp
+Compile [ 82.4%]: BufferedBlockDevice.cpp
+Compile [ 82.5%]: ObservingBlockDevice.cpp
+Compile [ 82.7%]: ReadOnlyBlockDevice.cpp
+Compile [ 82.8%]: ffunicode.cpp
+Compile [ 83.0%]: FlashSimBlockDevice.cpp
+Compile [ 83.1%]: MBRBlockDevice.cpp
+Compile [ 83.3%]: Dir.cpp
+Compile [ 83.4%]: File.cpp
+Compile [ 83.5%]: ff.cpp
+Compile [ 83.7%]: lfs_util.c
+Compile [ 83.8%]: FileSystem.cpp
+Compile [ 84.0%]: DirectAccessDevicekey.cpp
+Compile [ 84.1%]: lfs.c
+Compile [ 84.3%]: SecureStore.cpp
+Compile [ 84.4%]: FATFileSystem.cpp
+Compile [ 84.5%]: LittleFileSystem.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+[Warning] MbedCRC.h@276,38: left shift count is negative
+Compile [ 84.7%]: nvstore.cpp
+Compile [ 84.8%]: mbed_critical_section_api.c
+Compile [ 85.0%]: kvstore_global_api.cpp
+Compile [ 85.1%]: KVMap.cpp
+Compile [ 85.3%]: FileSystemStore.cpp
+Compile [ 85.4%]: mbed_itm_api.c
+Compile [ 85.6%]: mbed_flash_api.c
+Compile [ 85.7%]: mbed_gpio.c
+Compile [ 85.8%]: LowPowerTickerWrapper.cpp
+Compile [ 86.0%]: mbed_lp_ticker_api.c
+Compile [ 86.1%]: mbed_lp_ticker_wrapper.cpp
+Compile [ 86.3%]: mbed_us_ticker_api.c
+Compile [ 86.4%]: mbed_pinmap_common.c
+Compile [ 86.6%]: kv_config.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+Compile [ 86.7%]: mbed_mpu_v7m.c
+Compile [ 86.8%]: TDBStore.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+[Warning] MbedCRC.h@276,38: left shift count is negative
+Compile [ 87.0%]: mbed_mpu_v8m.c
+Compile [ 87.1%]: mbed_ticker_api.c
+Compile [ 87.3%]: SystemStorage.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+Compile [ 87.4%]: CallChain.cpp
+Compile [ 87.6%]: CThunkBase.cpp
+Compile [ 87.7%]: ATCmdParser.cpp
+Compile [ 87.8%]: FileHandle.cpp
+Compile [ 88.0%]: FileBase.cpp
+Compile [ 88.1%]: FileSystemHandle.cpp
+Compile [ 88.3%]: FilePath.cpp
+Compile [ 88.4%]: LocalFileSystem.cpp
+Compile [ 88.6%]: mbed_assert.c
+Compile [ 88.7%]: mbed_critical.c
+Compile [ 88.8%]: mbed_application.c
+Compile [ 89.0%]: mbed_alloc_wrappers.cpp
+Compile [ 89.1%]: mbed_board.c
+Compile [ 89.3%]: Stream.cpp
+Compile [ 89.4%]: mbed_error.c
+Compile [ 89.6%]: mbed_mktime.c
+Compile [ 89.7%]: mbed_interface.c
+Compile [ 89.8%]: mbed_mem_trace.cpp
+Compile [ 90.0%]: mbed_mpu_mgmt.c
+Compile [ 90.1%]: mbed_error_hist.c
+Compile [ 90.3%]: mbed_wait_api_no_rtos.c
+Compile [ 90.4%]: mbed_sdk_boot.c
+Compile [ 90.6%]: mbed_semihost_api.c
+Compile [ 90.7%]: mbed_poll.cpp
+Compile [ 90.8%]: mbed_stats.c
+Compile [ 91.0%]: mbed_sleep_manager.c
+Compile [ 91.1%]: mbed_rtc_time.cpp
+Compile [ 91.3%]: Kernel.cpp
+Compile [ 91.4%]: SysTimer.cpp
+Compile [ 91.6%]: ConditionVariable.cpp
+Compile [ 91.7%]: mbed_wait_api_rtos.cpp
+Compile [ 91.8%]: mbed_retarget.cpp
+Compile [ 92.0%]: EventFlags.cpp
+Compile [ 92.1%]: Semaphore.cpp
+Compile [ 92.3%]: Mutex.cpp
+Compile [ 92.4%]: mbed_boot_gcc_arm.c
+Compile [ 92.6%]: RtosTimer.cpp
+Compile [ 92.7%]: irq_ca.S
+Compile [ 92.8%]: RTX_Config.c
+Compile [ 93.0%]: cmsis_os1.c
+Compile [ 93.1%]: handlers.c
+Compile [ 93.3%]: mbed_rtos_rtx.c
+Compile [ 93.4%]: mbed_boot.c
+Compile [ 93.6%]: mbed_rtx_handlers.c
+Compile [ 93.7%]: rtx_delay.c
+Compile [ 93.8%]: rtx_lib.c
+Compile [ 94.0%]: mbed_rtx_idle.cpp
+Compile [ 94.1%]: rtx_evr.c
+Compile [ 94.3%]: rtx_evflags.c
+Compile [ 94.4%]: rtx_kernel.c
+Compile [ 94.6%]: rtx_memory.c
+Compile [ 94.7%]: rtx_mempool.c
+Compile [ 94.8%]: rtx_mutex.c
+Compile [ 95.0%]: rtx_system.c
+Compile [ 95.1%]: rtx_semaphore.c
+Compile [ 95.3%]: os_systick.c
+Compile [ 95.4%]: rtx_msgqueue.c
+Compile [ 95.6%]: startup_VKRZ1AH.S
+Compile [ 95.7%]: os_tick_ptim.c
+Compile [ 95.9%]: rtx_timer.c
+Compile [ 96.0%]: PeripheralPins.c
+Compile [ 96.1%]: cmsis_nvic.c
+Compile [ 96.3%]: rtx_thread.c
+Compile [ 96.4%]: mmu_VK_RZ_A1H.c
+Compile [ 96.6%]: ThisThread.cpp
+Compile [ 96.7%]: nvic_wrapper.c
+Compile [ 96.9%]: os_tick_ostm.c
+Compile [ 97.0%]: RZ_A1_Init.c
+Compile [ 97.1%]: Thread.cpp
+Compile [ 97.3%]: analogin_api.c
+Compile [ 97.4%]: rza_io_regrw.c
+Compile [ 97.6%]: system_VK_RZ_A1H.c
+Compile [ 97.7%]: lp_ticker.c
+Compile [ 97.9%]: flash_api.c
+Compile [ 98.0%]: gpio_api.c
+Compile [ 98.1%]: gpio_irq_api.c
+Compile [ 98.3%]: mtu2.c
+Compile [ 98.4%]: can_api.c
+Compile [ 98.6%]: ethernet_api.c
+Compile [ 98.7%]: port_api.c
+Compile [ 98.9%]: pinmap.c
+Compile [ 99.0%]: trng_api.c
+Compile [ 99.1%]: i2c_api.c
+Compile [ 99.3%]: pwmout_api.c
+Compile [ 99.4%]: sleep.c
+Compile [ 99.6%]: rtc_api.c
+Compile [ 99.7%]: us_ticker.c
+Compile [ 99.9%]: serial_api.c
+Compile [100.0%]: spi_api.c
+[Warning] spi_api.h@36,31: large integer implicitly truncated to unsigned type [-Woverflow]
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project fopen (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: fopen
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: fopen.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+Link: fopen
+Elf2Bin: fopen
+| Module                          |         .text |       .data |          .bss |
+|---------------------------------|---------------|-------------|---------------|
+| [fill]                          |       62(+62) |     20(+20) |       29(+29) |
+| [lib]\c.a                       | 25451(+25451) | 2208(+2208) |       56(+56) |
+| [lib]\gcc.a                     |   2124(+2124) |       0(+0) |         0(+0) |
+| [lib]\m.a                       |       88(+88) |       0(+0) |         0(+0) |
+| [lib]\misc                      |     252(+252) |     12(+12) |       28(+28) |
+| [misc]                          |       72(+72) |       0(+0) |         0(+0) |
+| cmsis\TARGET_CORTEX_A           |   1276(+1276) |       0(+0) |   4084(+4084) |
+| components\802.15.4_RF          |     156(+156) |       0(+0) |         0(+0) |
+| components\storage              |   1474(+1474) |       4(+4) |     492(+492) |
+| components\wifi                 |     100(+100) |       0(+0) |         0(+0) |
+| drivers\I2C.o                   |       36(+36) |       0(+0) |         0(+0) |
+| drivers\RawSerial.o             |     508(+508) |       0(+0) |         0(+0) |
+| drivers\SPI.o                   |     180(+180) |       4(+4) |     716(+716) |
+| drivers\Serial.o                |       64(+64) |       0(+0) |         0(+0) |
+| drivers\SerialBase.o            |     943(+943) |       0(+0) |         0(+0) |
+| drivers\Ticker.o                |     332(+332) |       0(+0) |         0(+0) |
+| drivers\Timeout.o               |     231(+231) |       0(+0) |         0(+0) |
+| drivers\TimerEvent.o            |     184(+184) |       0(+0) |         0(+0) |
+| drivers\UARTSerial.o            |       40(+40) |       0(+0) |         0(+0) |
+| features\frameworks             |   8378(+8378) |     69(+69) |     369(+369) |
+| hal\mbed_critical_section_api.o |     208(+208) |       0(+0) |         2(+2) |
+| hal\mbed_gpio.o                 |       92(+92) |       0(+0) |         0(+0) |
+| hal\mbed_pinmap_common.o        |     400(+400) |       0(+0) |         0(+0) |
+| hal\mbed_ticker_api.o           |   1668(+1668) |       0(+0) |         0(+0) |
+| hal\mbed_us_ticker_api.o        |       84(+84) |       4(+4) |       64(+64) |
+| platform\CThunkBase.o           |       24(+24) |       0(+0) |         4(+4) |
+| platform\FileHandle.o           |         8(+8) |       0(+0) |         0(+0) |
+| platform\mbed_alloc_wrappers.o  |       16(+16) |       0(+0) |         0(+0) |
+| platform\mbed_assert.o          |       48(+48) |       0(+0) |         0(+0) |
+| platform\mbed_board.o           |     325(+325) |       0(+0) |         0(+0) |
+| platform\mbed_critical.o        |     356(+356) |       0(+0) |         4(+4) |
+| platform\mbed_error.o           |   1387(+1387) |       0(+0) |     114(+114) |
+| platform\mbed_retarget.o        |   2136(+2136) |   260(+260) |       80(+80) |
+| platform\mbed_sleep_manager.o   |     295(+295) |       0(+0) |         2(+2) |
+| platform\mbed_wait_api_rtos.o   |     160(+160) |       0(+0) |         0(+0) |
+| rtos\TARGET_CORTEX              | 11951(+11951) |   173(+173) |   5968(+5968) |
+| targets\TARGET_RENESAS          | 14069(+14069) |       6(+6) |     724(+724) |
+| Subtotals                       | 75178(+75178) | 2760(+2760) | 12736(+12736) |
+Total Static RAM memory (data + bss): 15496(+15496) bytes
+Total Flash memory (text + data): 77938(+77938) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/fopen/fopen.bin
+
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project dirs (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: dirs
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+[Warning] main.cpp@160,27: comparison between signed and unsigned integer expressions [-Wsign-compare]
+[Warning] main.cpp@168,26: comparison between signed and unsigned integer expressions [-Wsign-compare]
+[Warning] main.cpp@184,54: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@184,54: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@184,54: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@184,54: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@245,75: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@245,75: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@245,75: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@245,75: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@245,75: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@245,75: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@345,58: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@345,58: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@345,58: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@345,58: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@391,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@391,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@391,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@391,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@391,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@423,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@423,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@423,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@423,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@423,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@455,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@455,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@455,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@455,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+[Warning] main.cpp@455,65: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
+Link: dirs
+Elf2Bin: dirs
+| Module                          |           .text |       .data |          .bss |
+|---------------------------------|-----------------|-------------|---------------|
+| [fill]                          |       101(+101) |     20(+20) |       58(+58) |
+| [lib]\_RZ_A1H_sd_driver.a       |           0(+0) |       0(+0) |     128(+128) |
+| [lib]\c.a                       |   33681(+33681) | 2288(+2288) |       94(+94) |
+| [lib]\gcc.a                     |     2148(+2148) |       0(+0) |         0(+0) |
+| [lib]\m.a                       |         88(+88) |       0(+0) |         0(+0) |
+| [lib]\misc                      |       252(+252) |     12(+12) |       28(+28) |
+| [lib]\stdc++.a                  |       420(+420) |       0(+0) |         0(+0) |
+| [misc]                          |         80(+80) |       0(+0) |         0(+0) |
+| cmsis\TARGET_CORTEX_A           |     1276(+1276) |       0(+0) |   4084(+4084) |
+| components\802.15.4_RF          |       156(+156) |       0(+0) |         0(+0) |
+| components\storage              |   15173(+15173) |       4(+4) |   9085(+9085) |
+| components\wifi                 |       100(+100) |       0(+0) |         0(+0) |
+| drivers\I2C.o                   |       238(+238) |       0(+0) |         0(+0) |
+| drivers\RawSerial.o             |       508(+508) |       0(+0) |         0(+0) |
+| drivers\SPI.o                   |       180(+180) |       4(+4) |     716(+716) |
+| drivers\Serial.o                |         72(+72) |       0(+0) |         0(+0) |
+| drivers\SerialBase.o            |       943(+943) |       0(+0) |         0(+0) |
+| drivers\Ticker.o                |       332(+332) |       0(+0) |         0(+0) |
+| drivers\Timeout.o               |       231(+231) |       0(+0) |         0(+0) |
+| drivers\TimerEvent.o            |       184(+184) |       0(+0) |         0(+0) |
+| drivers\UARTSerial.o            |         40(+40) |       0(+0) |         0(+0) |
+| features\frameworks             |     9792(+9792) |     69(+69) |     529(+529) |
+| features\storage                |   26323(+26323) |       0(+0) |     340(+340) |
+| hal\mbed_critical_section_api.o |       208(+208) |       0(+0) |         2(+2) |
+| hal\mbed_gpio.o                 |         92(+92) |       0(+0) |         0(+0) |
+| hal\mbed_pinmap_common.o        |       400(+400) |       0(+0) |         0(+0) |
+| hal\mbed_ticker_api.o           |     1668(+1668) |       0(+0) |         0(+0) |
+| hal\mbed_us_ticker_api.o        |         84(+84) |       4(+4) |       64(+64) |
+| platform\CThunkBase.o           |         24(+24) |       0(+0) |         4(+4) |
+| platform\FileBase.o             |       316(+316) |       0(+0) |       56(+56) |
+| platform\FileHandle.o           |           8(+8) |       0(+0) |         0(+0) |
+| platform\FileSystemHandle.o     |         92(+92) |       0(+0) |         0(+0) |
+| platform\mbed_alloc_wrappers.o  |         16(+16) |       0(+0) |         0(+0) |
+| platform\mbed_assert.o          |         48(+48) |       0(+0) |         0(+0) |
+| platform\mbed_board.o           |       325(+325) |       0(+0) |         0(+0) |
+| platform\mbed_critical.o        |       356(+356) |       0(+0) |         4(+4) |
+| platform\mbed_error.o           |     1387(+1387) |       0(+0) |     114(+114) |
+| platform\mbed_mktime.o          |       780(+780) |       0(+0) |         0(+0) |
+| platform\mbed_retarget.o        |     2296(+2296) |   260(+260) |     128(+128) |
+| platform\mbed_rtc_time.o        |       212(+212) |     16(+16) |       48(+48) |
+| platform\mbed_sleep_manager.o   |       295(+295) |       0(+0) |         2(+2) |
+| platform\mbed_wait_api_rtos.o   |       160(+160) |       0(+0) |         0(+0) |
+| rtos\Mutex.o                    |       428(+428) |       0(+0) |         0(+0) |
+| rtos\TARGET_CORTEX              |   12495(+12495) |   173(+173) |   5968(+5968) |
+| targets\TARGET_RENESAS          |   15105(+15105) |       6(+6) |     724(+724) |
+| Subtotals                       | 129113(+129113) | 2856(+2856) | 22176(+22176) |
+Total Static RAM memory (data + bss): 25032(+25032) bytes
+Total Flash memory (text + data): 131969(+131969) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/dirs/dirs.bin
+
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project seek (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: seek
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+[Warning] main.cpp@547,27: comparison between signed and unsigned integer expressions [-Wsign-compare]
+Link: seek
+Elf2Bin: seek
+| Module                          |           .text |       .data |          .bss |
+|---------------------------------|-----------------|-------------|---------------|
+| [fill]                          |       103(+103) |     20(+20) |       54(+54) |
+| [lib]\_RZ_A1H_sd_driver.a       |           0(+0) |       0(+0) |     128(+128) |
+| [lib]\c.a                       |   33777(+33777) | 2288(+2288) |       94(+94) |
+| [lib]\gcc.a                     |     2148(+2148) |       0(+0) |         0(+0) |
+| [lib]\m.a                       |         88(+88) |       0(+0) |         0(+0) |
+| [lib]\misc                      |       252(+252) |     12(+12) |       28(+28) |
+| [lib]\stdc++.a                  |       420(+420) |       0(+0) |         0(+0) |
+| [misc]                          |         80(+80) |       0(+0) |         0(+0) |
+| cmsis\TARGET_CORTEX_A           |     1276(+1276) |       0(+0) |   4084(+4084) |
+| components\802.15.4_RF          |       156(+156) |       0(+0) |         0(+0) |
+| components\storage              |   18835(+18835) |       4(+4) |   9057(+9057) |
+| components\wifi                 |       100(+100) |       0(+0) |         0(+0) |
+| drivers\I2C.o                   |       238(+238) |       0(+0) |         0(+0) |
+| drivers\RawSerial.o             |       508(+508) |       0(+0) |         0(+0) |
+| drivers\SPI.o                   |       180(+180) |       4(+4) |     716(+716) |
+| drivers\Serial.o                |         72(+72) |       0(+0) |         0(+0) |
+| drivers\SerialBase.o            |       943(+943) |       0(+0) |         0(+0) |
+| drivers\Ticker.o                |       332(+332) |       0(+0) |         0(+0) |
+| drivers\Timeout.o               |       231(+231) |       0(+0) |         0(+0) |
+| drivers\TimerEvent.o            |       184(+184) |       0(+0) |         0(+0) |
+| drivers\UARTSerial.o            |         40(+40) |       0(+0) |         0(+0) |
+| features\frameworks             |     9592(+9592) |     69(+69) |     529(+529) |
+| features\storage                |   26323(+26323) |       0(+0) |     340(+340) |
+| hal\mbed_critical_section_api.o |       208(+208) |       0(+0) |         2(+2) |
+| hal\mbed_gpio.o                 |         92(+92) |       0(+0) |         0(+0) |
+| hal\mbed_pinmap_common.o        |       400(+400) |       0(+0) |         0(+0) |
+| hal\mbed_ticker_api.o           |     1668(+1668) |       0(+0) |         0(+0) |
+| hal\mbed_us_ticker_api.o        |         84(+84) |       4(+4) |       64(+64) |
+| platform\CThunkBase.o           |         24(+24) |       0(+0) |         4(+4) |
+| platform\FileBase.o             |       316(+316) |       0(+0) |       56(+56) |
+| platform\FileHandle.o           |           8(+8) |       0(+0) |         0(+0) |
+| platform\FileSystemHandle.o     |         92(+92) |       0(+0) |         0(+0) |
+| platform\mbed_alloc_wrappers.o  |         16(+16) |       0(+0) |         0(+0) |
+| platform\mbed_assert.o          |         48(+48) |       0(+0) |         0(+0) |
+| platform\mbed_board.o           |       325(+325) |       0(+0) |         0(+0) |
+| platform\mbed_critical.o        |       356(+356) |       0(+0) |         4(+4) |
+| platform\mbed_error.o           |     1387(+1387) |       0(+0) |     114(+114) |
+| platform\mbed_mktime.o          |       780(+780) |       0(+0) |         0(+0) |
+| platform\mbed_retarget.o        |     2296(+2296) |   260(+260) |     128(+128) |
+| platform\mbed_rtc_time.o        |       212(+212) |     16(+16) |       48(+48) |
+| platform\mbed_sleep_manager.o   |       295(+295) |       0(+0) |         2(+2) |
+| platform\mbed_wait_api_rtos.o   |       160(+160) |       0(+0) |         0(+0) |
+| rtos\Mutex.o                    |       428(+428) |       0(+0) |         0(+0) |
+| rtos\TARGET_CORTEX              |   12495(+12495) |   173(+173) |   5968(+5968) |
+| targets\TARGET_RENESAS          |   15105(+15105) |       6(+6) |     724(+724) |
+| Subtotals                       | 132673(+132673) | 2856(+2856) | 22144(+22144) |
+Total Static RAM memory (data + bss): 25000(+25000) bytes
+Total Flash memory (text + data): 135529(+135529) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/seek/seek.bin
+
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project parallel (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: parallel
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+[Warning] main.cpp@108,21: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@120,25: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@124,21: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@135,21: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@139,25: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@151,21: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@169,26: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@170,26: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@170,86: cast to pointer from integer of different size [-Wint-to-pointer-cast]
+[Warning] main.cpp@175,26: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@176,33: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@177,26: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@178,26: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@178,85: cast to pointer from integer of different size [-Wint-to-pointer-cast]
+[Warning] main.cpp@183,26: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@184,33: array subscript has type 'char' [-Wchar-subscripts]
+Link: parallel
+Elf2Bin: parallel
+| Module                          |           .text |       .data |          .bss |
+|---------------------------------|-----------------|-------------|---------------|
+| [fill]                          |       121(+121) |     20(+20) |       51(+51) |
+| [lib]\_RZ_A1H_sd_driver.a       |           0(+0) |       0(+0) |     128(+128) |
+| [lib]\c.a                       |   33681(+33681) | 2288(+2288) |       94(+94) |
+| [lib]\gcc.a                     |     2148(+2148) |       0(+0) |         0(+0) |
+| [lib]\m.a                       |         88(+88) |       0(+0) |         0(+0) |
+| [lib]\misc                      |       252(+252) |     12(+12) |       28(+28) |
+| [lib]\stdc++.a                  |       421(+421) |       0(+0) |         0(+0) |
+| [misc]                          |         80(+80) |       0(+0) |         0(+0) |
+| cmsis\TARGET_CORTEX_A           |     1276(+1276) |       0(+0) |   4084(+4084) |
+| components\802.15.4_RF          |       156(+156) |       0(+0) |         0(+0) |
+| components\storage              |     9244(+9244) |       4(+4) |     412(+412) |
+| components\wifi                 |       100(+100) |       0(+0) |         0(+0) |
+| drivers\I2C.o                   |       238(+238) |       0(+0) |         0(+0) |
+| drivers\RawSerial.o             |       508(+508) |       0(+0) |         0(+0) |
+| drivers\SPI.o                   |       180(+180) |       4(+4) |     716(+716) |
+| drivers\Serial.o                |         72(+72) |       0(+0) |         0(+0) |
+| drivers\SerialBase.o            |       943(+943) |       0(+0) |         0(+0) |
+| drivers\Ticker.o                |       332(+332) |       0(+0) |         0(+0) |
+| drivers\Timeout.o               |       231(+231) |       0(+0) |         0(+0) |
+| drivers\TimerEvent.o            |       184(+184) |       0(+0) |         0(+0) |
+| drivers\UARTSerial.o            |         40(+40) |       0(+0) |         0(+0) |
+| features\frameworks             |     9669(+9669) |     69(+69) |     529(+529) |
+| features\storage                |   26323(+26323) |       0(+0) |     340(+340) |
+| hal\mbed_critical_section_api.o |       208(+208) |       0(+0) |         2(+2) |
+| hal\mbed_gpio.o                 |         92(+92) |       0(+0) |         0(+0) |
+| hal\mbed_pinmap_common.o        |       400(+400) |       0(+0) |         0(+0) |
+| hal\mbed_ticker_api.o           |     1668(+1668) |       0(+0) |         0(+0) |
+| hal\mbed_us_ticker_api.o        |         84(+84) |       4(+4) |       64(+64) |
+| platform\CThunkBase.o           |         24(+24) |       0(+0) |         4(+4) |
+| platform\FileBase.o             |       316(+316) |       0(+0) |       56(+56) |
+| platform\FileHandle.o           |           8(+8) |       0(+0) |         0(+0) |
+| platform\FileSystemHandle.o     |         92(+92) |       0(+0) |         0(+0) |
+| platform\mbed_alloc_wrappers.o  |         16(+16) |       0(+0) |         0(+0) |
+| platform\mbed_assert.o          |         48(+48) |       0(+0) |         0(+0) |
+| platform\mbed_board.o           |       325(+325) |       0(+0) |         0(+0) |
+| platform\mbed_critical.o        |       356(+356) |       0(+0) |         4(+4) |
+| platform\mbed_error.o           |     1387(+1387) |       0(+0) |     114(+114) |
+| platform\mbed_mktime.o          |       780(+780) |       0(+0) |         0(+0) |
+| platform\mbed_retarget.o        |     2300(+2300) |   260(+260) |     128(+128) |
+| platform\mbed_rtc_time.o        |       212(+212) |     16(+16) |       48(+48) |
+| platform\mbed_sleep_manager.o   |       295(+295) |       0(+0) |         2(+2) |
+| platform\mbed_wait_api_rtos.o   |       160(+160) |       0(+0) |         0(+0) |
+| rtos\Mutex.o                    |       428(+428) |       0(+0) |         0(+0) |
+| rtos\Semaphore.o                |       293(+293) |       0(+0) |         0(+0) |
+| rtos\TARGET_CORTEX              |   14263(+14263) |   173(+173) |   5968(+5968) |
+| rtos\Thread.o                   |     1198(+1198) |       0(+0) |         0(+0) |
+| targets\TARGET_RENESAS          |   15105(+15105) |       6(+6) |     724(+724) |
+| Subtotals                       | 126345(+126345) | 2856(+2856) | 13496(+13496) |
+Total Static RAM memory (data + bss): 16352(+16352) bytes
+Total Flash memory (text + data): 129201(+129201) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/parallel/parallel.bin
+
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project files (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: files
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+[Warning] MbedCRC.h@37,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
+[Warning] main.cpp@149,55: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@171,55: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@149,76: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@171,66: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@149,76: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@171,66: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@149,76: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@171,66: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@149,76: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@171,66: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@149,76: array subscript has type 'char' [-Wchar-subscripts]
+[Warning] main.cpp@171,66: array subscript has type 'char' [-Wchar-subscripts]
+Link: files
+Elf2Bin: files
+| Module                          |           .text |       .data |          .bss |
+|---------------------------------|-----------------|-------------|---------------|
+| [fill]                          |       112(+112) |     20(+20) |       61(+61) |
+| [lib]\_RZ_A1H_sd_driver.a       |           0(+0) |       0(+0) |     128(+128) |
+| [lib]\c.a                       |   33873(+33873) | 2288(+2288) |       94(+94) |
+| [lib]\gcc.a                     |     2148(+2148) |       0(+0) |         0(+0) |
+| [lib]\m.a                       |         88(+88) |       0(+0) |         0(+0) |
+| [lib]\misc                      |       252(+252) |     12(+12) |       28(+28) |
+| [lib]\stdc++.a                  |       420(+420) |       0(+0) |         0(+0) |
+| [misc]                          |         80(+80) |       0(+0) |         0(+0) |
+| cmsis\TARGET_CORTEX_A           |     1276(+1276) |       0(+0) |   4084(+4084) |
+| components\802.15.4_RF          |       156(+156) |       0(+0) |         0(+0) |
+| components\storage              |   15682(+15682) |     36(+36) | 25442(+25442) |
+| components\wifi                 |       100(+100) |       0(+0) |         0(+0) |
+| drivers\I2C.o                   |       238(+238) |       0(+0) |         0(+0) |
+| drivers\RawSerial.o             |       508(+508) |       0(+0) |         0(+0) |
+| drivers\SPI.o                   |       180(+180) |       4(+4) |     716(+716) |
+| drivers\Serial.o                |         72(+72) |       0(+0) |         0(+0) |
+| drivers\SerialBase.o            |       943(+943) |       0(+0) |         0(+0) |
+| drivers\Ticker.o                |       332(+332) |       0(+0) |         0(+0) |
+| drivers\Timeout.o               |       231(+231) |       0(+0) |         0(+0) |
+| drivers\TimerEvent.o            |       184(+184) |       0(+0) |         0(+0) |
+| drivers\UARTSerial.o            |         40(+40) |       0(+0) |         0(+0) |
+| features\frameworks             |     9592(+9592) |     69(+69) |     529(+529) |
+| features\storage                |   26323(+26323) |       0(+0) |     340(+340) |
+| hal\mbed_critical_section_api.o |       208(+208) |       0(+0) |         2(+2) |
+| hal\mbed_gpio.o                 |         92(+92) |       0(+0) |         0(+0) |
+| hal\mbed_pinmap_common.o        |       400(+400) |       0(+0) |         0(+0) |
+| hal\mbed_ticker_api.o           |     1668(+1668) |       0(+0) |         0(+0) |
+| hal\mbed_us_ticker_api.o        |         84(+84) |       4(+4) |       64(+64) |
+| platform\CThunkBase.o           |         24(+24) |       0(+0) |         4(+4) |
+| platform\FileBase.o             |       316(+316) |       0(+0) |       56(+56) |
+| platform\FileHandle.o           |           8(+8) |       0(+0) |         0(+0) |
+| platform\FileSystemHandle.o     |         92(+92) |       0(+0) |         0(+0) |
+| platform\mbed_alloc_wrappers.o  |         16(+16) |       0(+0) |         0(+0) |
+| platform\mbed_assert.o          |         48(+48) |       0(+0) |         0(+0) |
+| platform\mbed_board.o           |       325(+325) |       0(+0) |         0(+0) |
+| platform\mbed_critical.o        |       356(+356) |       0(+0) |         4(+4) |
+| platform\mbed_error.o           |     1387(+1387) |       0(+0) |     114(+114) |
+| platform\mbed_mktime.o          |       780(+780) |       0(+0) |         0(+0) |
+| platform\mbed_retarget.o        |     2296(+2296) |   260(+260) |     128(+128) |
+| platform\mbed_rtc_time.o        |       212(+212) |     16(+16) |       48(+48) |
+| platform\mbed_sleep_manager.o   |       295(+295) |       0(+0) |         2(+2) |
+| platform\mbed_wait_api_rtos.o   |       160(+160) |       0(+0) |         0(+0) |
+| rtos\Mutex.o                    |       428(+428) |       0(+0) |         0(+0) |
+| rtos\TARGET_CORTEX              |   12495(+12495) |   173(+173) |   5968(+5968) |
+| targets\TARGET_RENESAS          |   15105(+15105) |       6(+6) |     724(+724) |
+| Subtotals                       | 129625(+129625) | 2888(+2888) | 38536(+38536) |
+Total Static RAM memory (data + bss): 41424(+41424) bytes
+Total Flash memory (text + data): 132513(+132513) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/files/files.bin
+
+Memory map breakdown for built projects (values in Bytes):
+| name     | target    | toolchain | static_ram | total_flash |
+|----------|-----------|-----------|------------|-------------|
+| dirs     | VK_RZ_A1H | GCC_ARM   |      25032 |      131969 |
+| files    | VK_RZ_A1H | GCC_ARM   |      41424 |      132513 |
+| fopen    | VK_RZ_A1H | GCC_ARM   |      15496 |       77938 |
+| parallel | VK_RZ_A1H | GCC_ARM   |      16352 |      129201 |
+| seek     | VK_RZ_A1H | GCC_ARM   |      25000 |      135529 |
+
+
+Build successes:
+  * VK_RZ_A1H::GCC_ARM::MBED-BUILD
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-DIRS
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FILES
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FOPEN
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-PARALLEL
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-SEEK
+
+D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver>mbed test --compile -t ARM -m VK_RZ_A1H -n mbed-os-components-storage-blockdevice-component_rz_sdhi-tests*
+[mbed] Auto-installing missing Python modules...
+Building library mbed-build (VK_RZ_A1H, ARM)
+Scan: driver
+Copy: thread_lowpower_api.h
+Copy: lfs_util.h
+Copy: dvdec_iodefine.h
+Copy: cfg_rf_tunnel.h
+Copy: Nanostack.h
+Copy: ether_iodefine.h
+Copy: utest.h
+Copy: lcp.h
+Copy: thread_common.h
+Copy: DigitalOut.h
+Copy: CThunkBase.h
+Copy: ac_buffer_builder.h
+Copy: ns_types.h
+Copy: fhss.h
+Copy: wdt_iodefine.h
+Copy: rsa.h
+Copy: UBLOX_PPP_CellularPower.h
+Copy: pwmout_api.h
+Copy: mtu2_iodefine.h
+Copy: APN_db.h
+Copy: pana_header.h
+Copy: scif_iobitmask.h
+Copy: scif_iodefine.h
+Copy: LoRaMacChannelPlan.h
+Copy: PortNames.h
+Copy: mle_service_security.h
+Copy: fnet_stack.h
+Copy: thread_diagnostic.h
+Copy: pn512.h
+Copy: camellia.h
+Copy: Event.h
+Copy: intc_iobitmask.h
+Copy: fnet_dns_config.h
+Copy: ipv6_flow.h
+Copy: serial_mac_api.h
+Copy: FileHandle.h
+Copy: UARTSerial.h
+Copy: SlicingBlockDevice.h
+Copy: memp_std.h
+Copy: crypto.h
+Copy: net_polling_api.h
+Copy: neighbor_table_definition.h
+Copy: AT_CellularSMS.h
+Copy: ns_nvm_helper.h
+Copy: gpio_iobitmask.h
+Copy: fnv_hash.h
+Copy: rpl_mrhof.h
+Copy: ns_sha256.h
+Copy: tcpip.h
+Copy: LowPowerTimeout.h
+Copy: PPPCellularInterface.h
+Copy: fnet_arp.h
+Copy: socket.h
+Copy: version.h
+Copy: ssif_iodefine.h
+Copy: cipv6_fragmenter.h
+Copy: icmpv6.h
+Copy: PinNames.h
+Copy: platform_mbed.h
+Copy: fnet.h
+Copy: md5.h
+Copy: protocol_timer.h
+Copy: ac_stream.h
+Copy: upap.h
+Copy: mbed_preprocessor.h
+Copy: QUECTEL_M26_CellularPower.h
+Copy: QUECTEL_UG96_CellularNetwork.h
+Copy: utest_default_handlers.h
+Copy: KVMap.h
+Copy: UBLOX_PPP_CellularContext.h
+Copy: mem_VK_RZ_A1H.h
+Copy: sn_config.h
+Copy: protocol.h
+Copy: DigitalInOut.h
+Copy: memp.h
+Copy: mem.h
+Copy: api.h
+Copy: thread_config.h
+Copy: ExhaustibleBlockDevice.h
+Copy: rtos.h
+Copy: integer.h
+Copy: QUECTEL_BC95_CellularSIM.h
+Copy: mle_service_frame_counter_table.h
+Copy: transceiver.h
+Copy: sockets.h
+Copy: thread_management_api.h
+Copy: ccm.h
+Copy: QUECTEL_M26_CellularStack.h
+Copy: sha256.h
+Copy: mbed.h
+Copy: Mutex.h
+Copy: ipv6_fragmentation.h
+Copy: dhcpv6_client_api.h
+Copy: thread_network_synch.h
+Copy: oid.h
+Copy: usb20_iodefine.h
+Copy: utest_case.h
+Copy: ws_neighbor_class.h
+Copy: wait_api.h
+Copy: pn512_types.h
+Copy: iodefine_typedef.h
+Copy: LWIPMemoryManager.h
+Copy: pn512_internal.h
+Copy: AT_CellularPower.h
+Copy: rpl_objective.h
+Copy: ppp_impl.h
+Copy: thread_joiner_application.h
+Copy: ppp.h
+Copy: CThunk.h
+Copy: thread_management_client.h
+Copy: NanostackRfPhyAtmel.h
+Copy: mac_helper.h
+Copy: mbed_events.h
+Copy: autoip.h
+Copy: lin_iodefine.h
+Copy: aesni.h
+Copy: ESP8266.h
+Copy: itm_api.h
+Copy: sn_coap_protocol_internal.h
+Copy: pn512_registers.h
+Copy: dmac_iodefine.h
+Copy: sys.h
+Copy: l2c_iodefine.h
+Copy: Kernel.h
+Copy: EMAC.h
+Copy: TableCRC.h
+Copy: mld6.h
+Copy: inet.h
+Copy: thread_nvm_store.h
+Copy: ip4.h
+Copy: DNS.h
+Copy: libDHCPv6.h
+Copy: nd_router_object.h
+Copy: ethernet_api.h
+Copy: VK_RZ_A1H.h
+Copy: tcp.h
+Copy: net_fhss.h
+Copy: unity_handler.h
+Copy: chap-md5.h
+Copy: mac_timer.h
+Copy: ip6.h
+Copy: thread_routing.h
+Copy: LoRaPHYCN779.h
+Copy: lwipopts.h
+Copy: compat-1.3.h
+Copy: FileSystemStore.h
+Copy: TELIT_HE910_CellularContext.h
+Copy: rpl_upward.h
+Copy: cfg_thread_full_end_device.h
+Copy: debug.h
+Copy: MeshInterfaceNanostack.h
+Copy: mbed_sleep.h
+Copy: net_rpl.h
+Copy: ac_buffer_reader.h
+Copy: ScopedRamExecutionLock.h
+Copy: Serial.h
+Copy: bsc_iodefine.h
+Copy: udp.h
+Copy: FileLike.h
+Copy: ScopedLock.h
+Copy: cfg_lowpan_router_ecc_release.h
+Copy: dhcp.h
+Copy: DHCPv6_server_service.h
+Copy: arm_hal_random.h
+Copy: ReadOnlyBlockDevice.h
+Copy: rf_driver_storage.h
+Copy: md4.h
+Copy: Socket.h
+Copy: LocalFileSystem.h
+Copy: GEMALTO_CINTERION_CellularStack.h
+Copy: nvstore.h
+Copy: disc_iodefine.h
+Copy: stats.h
+Copy: sn_coap_protocol.h
+Copy: ns_cmdline.h
+Copy: Driver_Storage.h
+Copy: NonCopyable.h
+Copy: ethernet_mac_api.h
+Copy: net_mle_api.h
+Copy: ns_mdns_api.h
+Copy: nd6.h
+Copy: ip4_frag.h
+Copy: ssl_internal.h
+Copy: blacklist.h
+Copy: platform_util.h
+Copy: nfc_common.h
+Copy: SimpleMessageParser.h
+Copy: ip.h
+Copy: etharp.h
+Copy: icmpv6_prefix.h
+Copy: md_internal.h
+Copy: PlatformMutex.h
+Copy: mac_fhss_callbacks.h
+Copy: border_router.h
+Copy: loraphy_target.h
+Copy: cfg_lowpan_border_router_rf_tunnel_ecc_release.h
+Copy: QUECTEL_M26.h
+Copy: lp_ticker_api.h
+Copy: LoRaPHYEU433.h
+Copy: dma_api.h
+Copy: sha1.h
+Copy: sio.h
+Copy: flash_api.h
+Copy: sha1.h
+Copy: riic_iobitmask.h
+Copy: SharedPtr.h
+Copy: diskio.h
+Copy: ostm_iobitmask.h
+Copy: LoRaPHYKR920.h
+Copy: net_pana_parameters_api.h
+Copy: pana_nvm.h
+Copy: mbed_power_mgmt.h
+Copy: HeapBlockDevice.h
+Copy: ipv6cp.h
+Copy: ns_list.h
+Copy: tcp_priv.h
+Copy: RtosTimer.h
+Copy: lorawan_types.h
+Copy: iphc_compress.h
+Copy: ssl_cache.h
+Copy: lwip_tcp_isn.h
+Copy: mac_filter_api.h
+Copy: protocol_6lowpan_bootstrap.h
+Copy: UBLOX_AT_CellularPower.h
+Copy: autoip.h
+Copy: arm_hal_phy.h
+Copy: lwip_errno.h
+Copy: CriticalSectionLock.h
+Copy: mbed_rtx_conf.h
+Copy: fnet_mdns_config.h
+Copy: fnet_netif.h
+Copy: network_lib.h
+Copy: SocketAddress.h
+Copy: rpl_structures.h
+Copy: cfg_lowpan_router_ecc.h
+Copy: ns_error_types.h
+Copy: QUECTEL_BG96_CellularContext.h
+Copy: TimerEvent.h
+Copy: lvds_iodefine.h
+Copy: beacon_handler.h
+Copy: rtc_time.h
+Copy: virtual_rf_defines.h
+Copy: utest_stack_trace.h
+Copy: md2.h
+Copy: ns_buffer.h
+Copy: memory_buffer_alloc.h
+Copy: utest_specification.h
+Copy: bsc_iobitmask.h
+Copy: ip.h
+Copy: AT_CellularContext.h
+Copy: NFCControllerDriver.h
+Copy: pn512_callback.h
+Copy: init.h
+Copy: mesh_interface_types.h
+Copy: MCR20Reg.h
+Copy: vj.h
+Copy: cmsis_gcc.h
+Copy: pn512_rf.h
+Copy: PortIn.h
+Copy: spibsc_iodefine.h
+Copy: SystemStorage.h
+Copy: Timer.h
+Copy: dev_drv.h
+Copy: AnalogIn.h
+Copy: error.h
+Copy: mac_pd_sap.h
+Copy: rtos_idle.h
+Copy: mld6.h
+Copy: fnet_icmp6.h
+Copy: fnet_services.h
+Copy: LowPowerTimer.h
+Copy: TELIT_HE910_CellularNetwork.h
+Copy: BusInOut.h
+Copy: load_balance_api.h
+Copy: mbed_rtos_storage.h
+Copy: mpu_api.h
+Copy: LoRaPHYUS915.h
+Copy: cfg_thread_end_device.h
+Copy: config-no-entropy.h
+Copy: coap_service_api.h
+Copy: randLIB.h
+Copy: protocol_ipv6.h
+Copy: coap_service_api_internal.h
+Copy: fhss_channel.h
+Copy: mbed_rtos1_types.h
+Copy: at24mac.h
+Copy: CellularSIM.h
+Copy: pana_internal_api.h
+Copy: irq_ctrl.h
+Copy: buffer.h
+Copy: cfg_lowpan_border_router_rf_tunnel_ecc.h
+Copy: NanostackEthernetInterface.h
+Copy: trng_api.h
+Copy: spm_api.h
+Copy: fhss_common.h
+Copy: thread_commissioning_if.h
+Copy: InterruptIn.h
+Copy: ecdsa.h
+Copy: md4.h
+Copy: Text.h
+Copy: ChainingBlockDevice.h
+Copy: pppol2tp.h
+Copy: cpg_iobitmask.h
+Copy: mtu2.h
+Copy: utest_types.h
+Copy: etx.h
+Copy: NanostackEMACInterface.h
+Copy: OnboardNetworkStack.h
+Copy: rscan0_iodefine.h
+Copy: GEMALTO_CINTERION_CellularContext.h
+Copy: RZ_SDHIBlockDevice.hpp
+Copy: pn512_cmd.h
+Copy: mppe.h
+Copy: ns_address.h
+Copy: mac_ie_lib.h
+Copy: thread_management_internal.h
+Copy: mbed_poll.h
+Copy: ns_virtual_rf_api.h
+Copy: UARTCellularInterface.h
+Copy: QUECTEL_BG96_CellularPower.h
+Copy: DTLSSocketWrapper.h
+Copy: thread_tasklet.h
+Copy: semihost_api.h
+Copy: lowpan6_opts.h
+Copy: thread_neighbor_class.h
+Copy: PortOut.h
+Copy: pppos.h
+Copy: isodep.h
+Copy: lfs.h
+Copy: EventQueue.h
+Copy: flctl_iodefine.h
+Copy: DeepSleepLock.h
+Copy: mlme.h
+Copy: rtx_core_ca.h
+Copy: thread_border_router_api_internal.h
+Copy: fsm.h
+Copy: LoRaMacCommand.h
+Copy: qspi_api.h
+Copy: Driver_Common.h
+Copy: thread_lowpower_private_api.h
+Copy: CellularDevice.h
+Copy: ATCmdParser.h
+Copy: protocol_stats.h
+Copy: isodep_target.h
+Copy: md.h
+Copy: pana.h
+Copy: ws_bootstrap.h
+Copy: ceu_iodefine.h
+Copy: pn512_hw.h
+Copy: mac_common_defines.h
+Copy: cfg_thread_router.h
+Copy: pkcs11.h
+Copy: ecp.h
+Copy: FlashIAP.h
+Copy: LoRaMacCrypto.h
+Copy: cmsis_compiler.h
+Copy: socket_api.h
+Copy: InterruptManager.h
+Copy: rtc_api.h
+Copy: ip6.h
+Copy: cipv6.h
+Copy: channel_functions.h
+Copy: rpl_protocol.h
+Copy: nist_kw.h
+Copy: PeripheralPins.h
+Copy: pfv_iodefine.h
+Copy: net_nwk_scan.h
+Copy: arm_hal_timer.h
+Copy: cmsis_armcc.h
+Copy: ns_crc.h
+Copy: unity_internals.h
+Copy: rpl_downward.h
+Copy: WiFiAccessPoint.h
+Copy: Timeout.h
+Copy: InternetSocket.h
+Copy: CellularBase.h
+Copy: ppp_opts.h
+Copy: mbed_critical.h
+Copy: BufferedBlockDevice.h
+Copy: ssl_ticket.h
+Copy: ccp.h
+Copy: ecp.h
+Copy: pn512_timer.h
+Copy: fhss_api.h
+Copy: mpl.h
+Copy: rtc_iodefine.h
+Copy: pn512_irq.h
+Copy: device.h
+Copy: common_functions.h
+Copy: thread_dhcpv6_server.h
+Copy: SerialBase.h
+Copy: NFC.h
+Copy: mbed_error.h
+Copy: ns_event_loop.h
+Copy: BusOut.h
+Copy: Dir.h
+Copy: RecordParser.h
+Copy: crypto_extra.h
+Copy: NanostackMemoryManager.h
+Copy: mbed_rtc_time.h
+Copy: ns_timer.h
+Copy: riic_iodefine.h
+Copy: NanostackRfPhyMcr20a.h
+Copy: dmac_iobitmask.h
+Copy: spi_api.h
+Copy: NFCNDEFCapable.h
+Copy: igmp.h
+Copy: nd_defines.h
+Copy: xtea.h
+Copy: pwm_iodefine.h
+Copy: chachapoly.h
+Copy: perf.h
+Copy: LoRaPHYEU868.h
+Copy: nsdynmemLIB.h
+Copy: PeripheralNames.h
+Copy: ip.h
+Copy: event.h
+Copy: sleep_api.h
+Copy: FileBase.h
+Copy: jcu_iodefine.h
+Copy: ThreadInterface.h
+Copy: EthernetInterface.h
+Copy: URI.h
+Copy: rpl_data.h
+Copy: CellularPower.h
+Copy: nfc_errors.h
+Copy: core_ca.h
+Copy: eap_protocol.h
+Copy: SARA4_PPP_CellularNetwork.h
+Copy: TELIT_HE910_CellularPower.h
+Copy: RZ_A1_Init.h
+Copy: CellularSMS.h
+Copy: mac_indirect_data.h
+Copy: UBLOX_PPP_CellularNetwork.h
+Copy: dhcp6.h
+Copy: NFCEEPROMDriver.h
+Copy: thread_diagcop_lib.h
+Copy: slipif.h
+Copy: arm_hal_aes.h
+Copy: AnalogOut.h
+Copy: SARA4_PPP_CellularContext.h
+Copy: blowfish.h
+Copy: NFCTarget.h
+Copy: AT_CellularDevice.h
+Copy: lowpan_context.h
+Copy: toolchain.h
+Copy: net_sleep.h
+Copy: net_6lowpan_parameter_api.h
+Copy: TCPServer.h
+Copy: NanostackEthernetPhy.h
+Copy: rpl_policy.h
+Copy: pem.h
+Copy: ieb_iodefine.h
+Copy: TLSSocket.h
+Copy: NFCController.h
+Copy: mbed_cmsis_conf.h
+Copy: ConditionVariable.h
+Copy: protocol_abstract.h
+Copy: cfg_local_socket.h
+Copy: thread_management_server.h
+Copy: magic.h
+Copy: hmac_drbg.h
+Copy: inet_chksum.h
+Copy: memp_priv.h
+Copy: ccmLIB.h
+Copy: udp.h
+Copy: rsa_internal.h
+Copy: CellularStateMachine.h
+Copy: wisun_tasklet.h
+Copy: trickle.h
+Copy: us_ticker_api.h
+Copy: cfg_generic.h
+Copy: thread_net_config_api.h
+Copy: platform.h
+Copy: cfg_thread_end_device.h
+Copy: MessageParser.h
+Copy: mlb_iodefine.h
+Copy: mbed_error_hist.h
+Copy: fnet_timer.h
+Copy: padlock.h
+Copy: ecjpake.h
+Copy: NetworkInterface.h
+Copy: ws_management_api.h
+Copy: des.h
+Copy: intc_iodefine.h
+Copy: net_ipv6_api.h
+Copy: CellularContext.h
+Copy: ip6_addr.h
+Copy: dhcp_service_api.h
+Copy: BusIn.h
+Copy: fhss_ws.h
+Copy: cfg_thread_full_end_device.h
+Copy: s2lpReg.h
+Copy: fnet_dns.h
+Copy: MCR20Drv.h
+Copy: RawSerial.h
+Copy: mbed_shared_queues.h
+Copy: config.h
+Copy: rza1_emac.h
+Copy: check_config.h
+Copy: sec_lib_definitions.h
+Copy: DeviceKey.h
+Copy: QUECTEL_BC95_CellularContext.h
+Copy: ethip6.h
+Copy: QUECTEL_BG96_CellularNetwork.h
+Copy: usb_iobitmask.h
+Copy: NFCRemoteEndpoint.h
+Copy: Thread.h
+Copy: i2c_api.h
+Copy: platform_time.h
+Copy: platform.h
+Copy: thread_router_bootstrap.h
+Copy: UBLOX_AT.h
+Copy: fnet_assert.h
+Copy: TLSSocketWrapper.h
+Copy: adc_iodefine.h
+Copy: TELIT_HE910.h
+Copy: iodefine.h
+Copy: Type4RemoteInitiator.h
+Copy: cfg_thread_border_router.h
+Copy: equeue_platform.h
+Copy: AT_CellularBase.h
+Copy: thread_commissioning_api.h
+Copy: SARA4_PPP.h
+Copy: fnet_inet.h
+Copy: sockbuf.h
+Copy: mbed_mpu_mgmt.h
+Copy: iso7816_defs.h
+Copy: NFCEEPROM.h
+Copy: ipv6.h
+Copy: poly1305.h
+Copy: EventFlags.h
+Copy: nsapi_ppp.h
+Copy: iphc_decompress.h
+Copy: rf_configuration.h
+Copy: asn1.h
+Copy: rza_io_regrw.h
+Copy: igmp.h
+Copy: net.h
+Copy: NFCRemoteInitiator.h
+Copy: ppp_lwip.h
+Copy: rtx_evr.h
+Copy: nd_proxy.h
+Copy: scux_iodefine.h
+Copy: protocol_6lowpan_interface.h
+Copy: chap_ms.h
+Copy: rtos_handlers.h
+Copy: nfc_debug.h
+Copy: cfg_lowpan_router.h
+Copy: Callback.h
+Copy: fnet_debug.h
+Copy: mbed_rtx.h
+Copy: mbed_wait_api.h
+Copy: hkdf.h
+Copy: Queue.h
+Copy: DigitalIn.h
+Copy: PwmOut.h
+Copy: dhm.h
+Copy: fnet_socket.h
+Copy: sha512.h
+Copy: timing.h
+Copy: netifapi.h
+Copy: ecp_internal.h
+Copy: ac_debug.h
+Copy: rspi_iobitmask.h
+Copy: cfg_lowpan_border_router.h
+Copy: Stream.h
+Copy: ns_fnet_types.h
+Copy: iso7816_app.h
+Copy: ns_fnet_events.h
+Copy: tcp.h
+Copy: mbed_application.h
+Copy: net_thread_test.h
+Copy: gpio_addrdefine.h
+Copy: enet_tasklet.h
+Copy: MeshInterface.h
+Copy: coap_message_handler.h
+Copy: QUECTEL_UG96_CellularPower.h
+Copy: multicast_api.h
+Copy: fnet_dns_prv.h
+Copy: reg32_t.h
+Copy: DTLSSocket.h
+Copy: channel_list.h
+Copy: thread_extension_bootstrap.h
+Copy: PortInOut.h
+Copy: os_whiteboard.h
+Copy: cmsis_nvic.h
+Copy: nsapi_dns.h
+Copy: FATFileSystem.h
+Copy: cfg_thread_thci.h
+Copy: mle_tlv.h
+Copy: mle_service_buffer.h
+Copy: fnet_ip.h
+Copy: CellularLog.h
+Copy: cfg_lowpan_border_router.h
+Copy: sdif.h
+Copy: UDPSocket.h
+Copy: sdhi_iodefine.h
+Copy: icmp.h
+Copy: AT_CellularSIM.h
+Copy: LoWPANNDInterface.h
+Copy: lwip_random.h
+Copy: lwip_ethernet.h
+Copy: irda_iodefine.h
+Copy: util.h
+Copy: crypto_platform.h
+Copy: ip6string.h
+Copy: snmp.h
+Copy: EthInterface.h
+Copy: pppoe.h
+Copy: mbed_interface.h
+Copy: ip4_addr.h
+Copy: whiteboard_api.h
+Copy: pk.h
+Copy: fnet_cpu.h
+Copy: LoRaPHYCN470.h
+Copy: ipv6_constants.h
+Copy: arc4.h
+Copy: base64.h
+Copy: tcp.h
+Copy: net_sockets.h
+Copy: cfg_ethernet.h
+Copy: LoRaPHYAS923.h
+Copy: mbed_assert.h
+Copy: NanostackRfPhy.h
+Copy: fnet_timer_prv.h
+Copy: CellularNetwork.h
+Copy: CellularList.h
+Copy: fnet_nd6.h
+Copy: mesh_system.h
+Copy: rtx_os.h
+Copy: QUECTEL_BC95_CellularNetwork.h
+Copy: net_address_extension.h
+Copy: mbed_debug.h
+Copy: shalib.h
+Copy: ipv6_resolution.h
+Copy: sleep.h
+Copy: eventloop_config.h
+Copy: platform_alt.h
+Copy: net_test_api.h
+Copy: Transaction.h
+Copy: etharp.h
+Copy: AT_CellularNetwork.h
+Copy: GEMALTO_CINTERION_CellularNetwork.h
+Copy: ripemd160.h
+Copy: fnet_user_config.h
+Copy: cfg_thread_router.h
+Copy: dns.h
+Copy: cfg_lowpan_border_router_rf_tunnel.h
+Copy: mbed_drv_cfg.h
+Copy: fnet_netbuf.h
+Copy: mle_service_interface.h
+Copy: sd_cfg.h
+Copy: ecdh.h
+Copy: greentea_metrics.h
+Copy: spibsc.h
+Copy: PN512Driver.h
+Copy: coap_security_handler.h
+Copy: arm_hal_interrupt_private.h
+Copy: CAN.h
+Copy: objects.h
+Copy: rpl_control.h
+Copy: certs.h
+Copy: ObservingBlockDevice.h
+Copy: tls_lib.h
+Copy: QUECTEL_BC95.h
+Copy: pana_relay_table.h
+Copy: ssl.h
+Copy: nwk_stats_api.h
+Copy: QUECTEL_BG96_CellularSIM.h
+Copy: utest_shim.h
+Copy: crypto_sizes.h
+Copy: netif.h
+Copy: thread_network_data_storage.h
+Copy: unity_config.h
+Copy: thread_mdns.h
+Copy: PN512TransportDriver.h
+Copy: ws_common_defines.h
+Copy: mbed_trace.h
+Copy: mbed_crash_data_offsets.h
+Copy: CellularTargets.h
+Copy: asn1write.h
+Copy: TDBStore.h
+Copy: whiteboard.h
+Copy: raw.h
+Copy: ip_fsc.h
+Copy: protocol_6lowpan.h
+Copy: utest_scheduler.h
+Copy: CellularCommon.h
+Copy: mac_data_poll.h
+Copy: pppdebug.h
+Copy: fnet_comp_config.h
+Copy: SecureStore.h
+Copy: ip4string.h
+Copy: bignum.h
+Copy: fnet_ip6.h
+Copy: ipcp.h
+Copy: ns_hal_init.h
+Copy: nd_tasklet.h
+Copy: QUECTEL_M26_CellularSIM.h
+Copy: entropy.h
+Copy: PN512SPITransportDriver.h
+Copy: ssl_ciphersuites.h
+Copy: arc4.h
+Copy: fnet_stack_config.h
+Copy: thread_bootstrap.h
+Copy: EMACMemoryManager.h
+Copy: bn_mul.h
+Copy: rtx_core_cm.h
+Copy: coap_connection_handler.h
+Copy: XcvrSpi.h
+Copy: gpio_api.h
+Copy: thread_dhcpv6_server.h
+Copy: sw_mac.h
+Copy: thread_management_if.h
+Copy: QUECTEL_BG96.h
+Copy: ip4.h
+Copy: greentea_serial.h
+Copy: gpio_object.h
+Copy: net_interface.h
+Copy: fnet_comp.h
+Copy: SPI.h
+Copy: mbed_mktime.h
+Copy: net_load_balance_api.h
+Copy: LittleFileSystem.h
+Copy: fnet_mdns.h
+Copy: ndef.h
+Copy: inb_iodefine.h
+Copy: mld.h
+Copy: pan_blacklist_api.h
+Copy: eventOS_event.h
+Copy: UBLOX_AT_CellularStack.h
+Copy: ostm_iodefine.h
+Copy: port_api.h
+Copy: cipher_internal.h
+Copy: SPISlave.h
+Copy: nd6.h
+Copy: critical_section_api.h
+Copy: eui64.h
+Copy: FileSystemLike.h
+Copy: ipv6_routing_table.h
+Copy: nwk_nvm.h
+Copy: ip_addr.h
+Copy: icmp6.h
+Copy: mac_defines.h
+Copy: QUECTEL_UG96_CellularContext.h
+Copy: fhss_config.h
+Copy: x509.h
+Copy: topo_trace.h
+Copy: thread_extension.h
+Copy: lwip_ethernet.h
+Copy: aes.h
+Copy: thread_nd.h
+Copy: cfg_thread_border_router.h
+Copy: cmsis_os2.h
+Copy: aria.h
+Copy: chacha20.h
+Copy: WiFiInterface.h
+Copy: mac_mcps.h
+Copy: ac_buffer.h
+Copy: MBRBlockDevice.h
+Copy: LWIPStack.h
+Copy: eap.h
+Copy: des.h
+Copy: protocols.h
+Copy: pk_internal.h
+Copy: ESP8266Interface.h
+Copy: mac_header_helper_functions.h
+Copy: mbed_retarget.h
+Copy: LoRaWANBase.h
+Copy: kvstore_global_api.h
+Copy: NFCDefinitions.h
+Copy: thread_border_router_api.h
+Copy: pppcrypt.h
+Copy: ip6_frag.h
+Copy: x509_crt.h
+Copy: ac_macros.h
+Copy: mac_filter.h
+Copy: thread_tmfcop_lib.h
+Copy: eventOS_scheduler.h
+Copy: mac_mlme.h
+Copy: icmp6.h
+Copy: SARA4_PPP_CellularPower.h
+Copy: nvic_wrapper.h
+Copy: pkcs5.h
+Copy: pana_eap_header.h
+Copy: Ticker.h
+Copy: mbed_mem_trace.h
+Copy: cipher.h
+Copy: udp.h
+Copy: thread_resolution_client.h
+Copy: lora_phy_ds.h
+Copy: CellularUtil.h
+Copy: QUECTEL_M26_CellularNetwork.h
+Copy: entropy_poll.h
+Copy: CircularBuffer.h
+Copy: thread_bbr_api.h
+Copy: chap-new.h
+Copy: LoRaPHY.h
+Copy: eventOS_callback_timer.h
+Copy: arch.h
+Copy: I2C.h
+Copy: os_tick.h
+Copy: cfg_lowpan_host.h
+Copy: debug.h
+Copy: mbed_lp_ticker_wrapper.h
+Copy: md5.h
+Copy: fnet_poll.h
+Copy: fnet_eth.h
+Copy: fnet_error.h
+Copy: LoRaRadio.h
+Copy: RTE_Components.h
+Copy: ScopedRomWriteLock.h
+Copy: thread_beacon.h
+Copy: mesh.h
+Copy: cfg_rf_interface.h
+Copy: Mail.h
+Copy: ATHandler.h
+Copy: nfc_transport.h
+Copy: QUECTEL_BG96_CellularStack.h
+Copy: SocketStats.h
+Copy: nd6_priv.h
+Copy: onboard_modem_api.h
+Copy: tls_ccm_crypt.h
+Copy: callback_handler.h
+Copy: sec_lib.h
+Copy: pn512_transceive.h
+Copy: address.h
+Copy: Mime.h
+Copy: ssl_cookie.h
+Copy: thread_mle_message_handler.h
+Copy: eventOS_event_timer.h
+Copy: mac_security_mib.h
+Copy: FunctionPointer.h
+Copy: vfp_neon_push_pop.h
+Copy: fnet_stdlib.h
+Copy: NanostackPhy.h
+Copy: opt.h
+Copy: critical.h
+Copy: dhcp.h
+Copy: gpio_iodefine.h
+Copy: unity.h
+Copy: pn512_poll.h
+Copy: KVStore.h
+Copy: mle_service_api.h
+Copy: mac_mcps_sap.h
+Copy: lorawan_data_structures.h
+Copy: cca_api.h
+Copy: fhss_statistics.h
+Copy: sys_arch.h
+Copy: net_load_balance_internal.h
+Copy: sn_coap_header.h
+Copy: can_api.h
+Copy: x509_crl.h
+Copy: AT86RFReg.h
+Copy: NetworkStack.h
+Copy: analogout_api.h
+Copy: fnet_serial_config.h
+Copy: BlockDevice.h
+Copy: x509_csr.h
+Copy: LoRaPHYAU915.h
+Copy: netbuf.h
+Copy: threading.h
+Copy: ffconf.h
+Copy: dns.h
+Copy: fnet_isr.h
+Copy: arm_hal_nvm.h
+Copy: pinmap.h
+Copy: QUECTEL_BC95_CellularPower.h
+Copy: serial_api.h
+Copy: SysTimer.h
+Copy: mac_neighbor_table.h
+Copy: cfg_lowpan_host.h
+Copy: mmc_iodefine.h
+Copy: cmsis_iccarm.h
+Copy: CellularInformation.h
+Copy: mac_response_handler.h
+Copy: MbedCRC.h
+Copy: scim_iodefine.h
+Copy: ws_common.h
+Copy: mac_pairwise_key.h
+Copy: WisunInterface.h
+Copy: test_env.h
+Copy: ctr_drbg.h
+Copy: system_VK_RZ_A1H.h
+Copy: thread_extension_bbr.h
+Copy: rtx_core_c.h
+Copy: cfg_nanostack_full_debug.h
+Copy: thread_resolution_server.h
+Copy: cmac.h
+Copy: LoRaWANTimer.h
+Copy: cmsis_cp15.h
+Copy: timeouts.h
+Copy: mbed_boot.h
+Copy: rtx_lib.h
+Copy: thread_network_data_lib.h
+Copy: mbed_semihost_api.h
+Copy: NanostackRfInterface.h
+Copy: arm_hal_interrupt.h
+Copy: transceiver_internal.h
+Copy: mbed_toolchain.h
+Copy: LowPowerTickerWrapper.h
+Copy: thread_discovery.h
+Copy: thread_leader_service.h
+Copy: cfg_lowpan_router.h
+Copy: rpl_of0.h
+Copy: sw_mac_internal.h
+Copy: nsapi_types.h
+Copy: FlashSimBlockDevice.h
+Copy: libDHCPv6_server.h
+Copy: fnet_services_config.h
+Copy: havege.h
+Copy: romdec_iodefine.h
+Copy: cc.h
+Copy: pppapi.h
+Copy: UBLOX_AT_CellularNetwork.h
+Copy: sn_coap_header_internal.h
+Copy: DirHandle.h
+Copy: SerialWireOutput.h
+Copy: Span.h
+Copy: fnet_mempool.h
+Copy: ns_event_loop_mutex.h
+Copy: GEMALTO_CINTERION.h
+Copy: r_typedefs.h
+Copy: CallChain.h
+Copy: Ethernet.h
+Copy: LoRaPHYIN865.h
+Copy: lowpan_adaptation_interface.h
+Copy: Record.h
+Copy: mbed_stats.h
+Copy: timer_sys.h
+Copy: thread_meshcop_lib.h
+Copy: NanostackRfPhys2lp.h
+Copy: crc_api.h
+Copy: rspi_iodefine.h
+Copy: VKRZA1H.h
+Copy: QUECTEL_UG96.h
+Copy: pkcs12.h
+Copy: iso7816.h
+Copy: analogin_api.h
+Copy: OnboardCellularInterface.h
+Copy: def.h
+Copy: lowpan6.h
+Copy: cpg_iodefine.h
+Copy: ff.h
+Copy: etharp.h
+Copy: LoRaMac.h
+Copy: LoRaWANStack.h
+Copy: FileSystemHandle.h
+Copy: ProfilingBlockDevice.h
+Copy: vdc5_iodefine.h
+Copy: cmsis_armclang.h
+Copy: TCPSocket.h
+Copy: netdb.h
+Copy: pbuf.h
+Copy: icmpv6_radv.h
+Copy: fhss_ws_extension.h
+Copy: MemoryPool.h
+Copy: UBLOX_AT_CellularContext.h
+Copy: RTX_Config.h
+Copy: nsapi.h
+Copy: kv_config.h
+Copy: LoRaWANInterface.h
+Copy: err.h
+Copy: NanostackInterface.h
+Copy: QSPI.h
+Copy: ns_trace.h
+Copy: mbed_filesystem.h
+Copy: isqrt.h
+Copy: api_msg.h
+Copy: AT_CellularInformation.h
+Copy: AT_CellularStack.h
+Copy: ethernetext_api.h
+Copy: File.h
+Copy: crypto_driver.h
+Copy: nsconfig.h
+Copy: can_helper.h
+Copy: mac_api.h
+Copy: pana_avp.h
+Copy: ns_file_system.h
+Copy: net_nvm_api.h
+Copy: mtu2_iobitmask.h
+Copy: icmp.h
+Copy: gpio_irq_api.h
+Copy: SingletonPtr.h
+Copy: NanostackLockGuard.h
+Copy: cmsis.h
+Copy: type4_target.h
+Copy: thread_address_registration_client.h
+Copy: QUECTEL_BC95_CellularStack.h
+Copy: mbed_version.h
+Copy: MessageBuilder.h
+Copy: fnet_serial.h
+Copy: MCR20Overwrites.h
+Copy: FileSystem.h
+Copy: LowPowerTicker.h
+Copy: equeue.h
+Copy: utest_serial.h
+Copy: cmsis_os.h
+Copy: QUECTEL_M26_CellularContext.h
+Copy: psa_util.h
+Copy: DirectAccessDevicekey.h
+Copy: tcpip_priv.h
+Copy: thread_host_bootstrap.h
+Copy: EMACInterface.h
+Copy: cfg_ethernet_host.h
+Copy: Semaphore.h
+Copy: mpx_api.h
+Copy: I2CSlave.h
+Copy: thread_constants.h
+Copy: utest_harness.h
+Copy: gcm.h
+Copy: spdif_iodefine.h
+Copy: nfc_scheduler.h
+Copy: fnet_netif_prv.h
+Copy: cfg_nanostack_full.h
+Copy: thread_bbr_api_internal.h
+Copy: ThisThread.h
+Copy: ticker_api.h
+Copy: fnet_config.h
+Copy: FilePath.h
+Copy: mle.h
+Copy: sdg_iodefine.h
+Copy: UBLOX_PPP.h
+Copy: lib_RZ_A1H_sd_driver.ar
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: targets.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: doxygen_options.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: VKRZA1H.sct
+Compile [  0.1%]: MCR20Drv.c
+Compile [  0.3%]: irq_ctrl_gic.c
+Compile [  0.4%]: rf_configuration.c
+Compile [  0.6%]: at24mac.cpp
+Compile [  0.7%]: NanostackRfPhyMcr20a.cpp
+Compile [  0.9%]: AnalogIn.cpp
+Compile [  1.0%]: NanostackRfPhyAtmel.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  1.1%]: sdhi_low.c
+Compile [  1.3%]: ESP8266.cpp
+Compile [  1.4%]: NanostackRfPhys2lp.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  1.6%]: ESP8266Interface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  1.7%]: BusIn.cpp
+Compile [  1.9%]: BusOut.cpp
+Compile [  2.0%]: BusInOut.cpp
+Compile [  2.1%]: FlashIAP.cpp
+Compile [  2.3%]: Ethernet.cpp
+Compile [  2.4%]: CAN.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  2.6%]: InterruptManager.cpp
+Compile [  2.7%]: MbedCRC.cpp
+Compile [  2.9%]: RZ_SDHIBlockDevice.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  3.0%]: I2CSlave.cpp
+Compile [  3.1%]: I2C.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  3.3%]: InterruptIn.cpp
+Compile [  3.4%]: TableCRC.cpp
+Compile [  3.6%]: QSPI.cpp
+Compile [  3.7%]: RawSerial.cpp
+Compile [  3.9%]: SPISlave.cpp
+Compile [  4.0%]: Timeout.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  4.1%]: Serial.cpp
+Compile [  4.3%]: Ticker.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  4.4%]: SPI.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  4.6%]: SerialBase.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  4.7%]: Timer.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  4.9%]: TimerEvent.cpp
+Compile [  5.0%]: equeue_posix.c
+Compile [  5.1%]: EventQueue.cpp
+Compile [  5.3%]: equeue.c
+Compile [  5.4%]: mbed_shared_queues.cpp
+Compile [  5.6%]: AT_CellularBase.cpp
+Compile [  5.7%]: equeue_mbed.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [  5.9%]: AT_CellularInformation.cpp
+Compile [  6.0%]: UARTSerial.cpp
+Compile [  6.1%]: AT_CellularPower.cpp
+Compile [  6.3%]: CellularLog.cpp
+Compile [  6.4%]: AT_CellularSIM.cpp
+Compile [  6.6%]: AT_CellularNetwork.cpp
+Compile [  6.7%]: CellularUtil.cpp
+Compile [  6.9%]: AT_CellularDevice.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  7.0%]: AT_CellularStack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  7.1%]: CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  7.3%]: AT_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  7.4%]: AT_CellularSMS.cpp
+Compile [  7.6%]: ATHandler.cpp
+Compile [  7.7%]: GEMALTO_CINTERION_CellularNetwork.cpp
+Compile [  7.9%]: GEMALTO_CINTERION.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  8.0%]: GEMALTO_CINTERION_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  8.1%]: SARA4_PPP.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  8.3%]: SARA4_PPP_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  8.4%]: SARA4_PPP_CellularNetwork.cpp
+Compile [  8.6%]: CellularDevice.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  8.7%]: SARA4_PPP_CellularPower.cpp
+Compile [  8.9%]: QUECTEL_BC95.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  9.0%]: GEMALTO_CINTERION_CellularStack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  9.1%]: QUECTEL_BC95_CellularNetwork.cpp
+Compile [  9.3%]: QUECTEL_BC95_CellularPower.cpp
+Compile [  9.4%]: QUECTEL_BC95_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [  9.6%]: QUECTEL_BC95_CellularSIM.cpp
+Compile [  9.7%]: CellularStateMachine.cpp
+Compile [  9.9%]: QUECTEL_BC95_CellularStack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 10.0%]: QUECTEL_BG96.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 10.1%]: QUECTEL_BG96_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 10.3%]: QUECTEL_BG96_CellularPower.cpp
+Compile [ 10.4%]: QUECTEL_BG96_CellularSIM.cpp
+Compile [ 10.6%]: QUECTEL_BG96_CellularNetwork.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 10.7%]: QUECTEL_M26_CellularNetwork.cpp
+Compile [ 10.9%]: QUECTEL_M26_CellularPower.cpp
+Compile [ 11.0%]: QUECTEL_BG96_CellularStack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 11.1%]: QUECTEL_M26.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 11.3%]: QUECTEL_M26_CellularSIM.cpp
+Compile [ 11.4%]: QUECTEL_M26_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 11.6%]: QUECTEL_UG96.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 11.7%]: QUECTEL_M26_CellularStack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] QUECTEL_M26_CellularStack.cpp@367,0:  #550-D: variable "sent_acked" was set but never used
+Compile [ 11.9%]: QUECTEL_UG96_CellularNetwork.cpp
+Compile [ 12.0%]: QUECTEL_UG96_CellularPower.cpp
+Compile [ 12.1%]: QUECTEL_UG96_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 12.3%]: TELIT_HE910.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 12.4%]: TELIT_HE910_CellularNetwork.cpp
+Compile [ 12.6%]: TELIT_HE910_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 12.7%]: TELIT_HE910_CellularPower.cpp
+Compile [ 12.9%]: UBLOX_AT_CellularNetwork.cpp
+Compile [ 13.0%]: UBLOX_AT.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 13.1%]: UBLOX_AT_CellularPower.cpp
+Compile [ 13.3%]: UBLOX_PPP_CellularNetwork.cpp
+Compile [ 13.4%]: DeviceKey.cpp
+Compile [ 13.6%]: UBLOX_PPP.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 13.7%]: UBLOX_PPP_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 13.9%]: UBLOX_PPP_CellularPower.cpp
+Compile [ 14.0%]: randLIB.c
+Compile [ 14.1%]: sn_coap_header_check.c
+Compile [ 14.3%]: greentea_metrics.cpp
+Compile [ 14.4%]: UBLOX_AT_CellularContext.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 14.6%]: sn_coap_builder.c
+Compile [ 14.7%]: greentea_serial.cpp
+Compile [ 14.9%]: ip_fsc.c
+Compile [ 15.0%]: UBLOX_AT_CellularStack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 15.1%]: sn_coap_protocol.c
+Compile [ 15.3%]: ns_list.c
+Compile [ 15.4%]: sn_coap_parser.c
+Compile [ 15.6%]: ip4tos.c
+Compile [ 15.7%]: mbed_trace.c
+Compile [ 15.9%]: common_functions.c
+Compile [ 16.0%]: greentea_test_env.cpp
+Compile [ 16.1%]: stoip4.c
+Compile [ 16.3%]: ip6tos.c
+Compile [ 16.4%]: stoip6.c
+Compile [ 16.6%]: ns_nvm_helper.c
+Compile [ 16.7%]: nsdynmemLIB.c
+Compile [ 16.9%]: ns_cmdline.c
+Compile [ 17.0%]: unity.c
+Compile [ 17.1%]: mbed-utest-shim.cpp
+Compile [ 17.3%]: unity_handler.cpp
+Compile [ 17.4%]: utest_stack_trace.cpp
+Compile [ 17.6%]: utest_case.cpp
+Compile [ 17.7%]: utest_default_handlers.cpp
+Compile [ 17.9%]: utest_greentea_handlers.cpp
+Compile [ 18.0%]: utest_shim.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 18.1%]: utest_harness.cpp
+Compile [ 18.3%]: LoRaMacCrypto.cpp
+Compile [ 18.4%]: utest_types.cpp
+Compile [ 18.6%]: LoRaMacChannelPlan.cpp
+Compile [ 18.7%]: LoRaWANInterface.cpp
+Compile [ 18.9%]: LoRaMacCommand.cpp
+Compile [ 19.0%]: LoRaPHYAS923.cpp
+Compile [ 19.1%]: LoRaPHYAU915.cpp
+Compile [ 19.3%]: LoRaPHYCN779.cpp
+Compile [ 19.4%]: LoRaMac.cpp
+Compile [ 19.6%]: LoRaWANStack.cpp
+[Warning] LoRaWANStack.cpp@816,0:  #111-D: statement is unreachable
+Compile [ 19.7%]: LoRaPHYCN470.cpp
+Compile [ 19.9%]: LoRaPHYEU433.cpp
+Compile [ 20.0%]: LoRaPHY.cpp
+Compile [ 20.1%]: LoRaWANTimer.cpp
+Compile [ 20.3%]: LoRaPHYEU868.cpp
+Compile [ 20.4%]: lwip_checksum.c
+Compile [ 20.6%]: LoRaPHYIN865.cpp
+Compile [ 20.7%]: lwip_memcpy.c
+Compile [ 20.9%]: LoRaPHYKR920.cpp
+Compile [ 21.0%]: LoRaPHYUS915.cpp
+Compile [ 21.1%]: lwip_random.c
+Compile [ 21.3%]: LWIPMemoryManager.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 21.4%]: lwip_sys_arch.c
+Compile [ 21.6%]: LWIPInterfaceEMAC.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 21.7%]: LWIPInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 21.9%]: lwip_tcp_isn.c
+Compile [ 22.0%]: lwip_api_lib.c
+Compile [ 22.1%]: lwip_err.c
+Compile [ 22.3%]: LWIPStack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 22.4%]: lwip_netbuf.c
+Compile [ 22.6%]: lwip_netdb.c
+Compile [ 22.7%]: lwip_netifapi.c
+Compile [ 22.9%]: lwip_api_msg.c
+Compile [ 23.0%]: lwip_sockets.c
+Compile [ 23.1%]: lwip_autoip.c
+Compile [ 23.3%]: lwip_tcpip.c
+Compile [ 23.4%]: lwip_icmp.c
+Compile [ 23.6%]: lwip_etharp.c
+Compile [ 23.7%]: lwip_igmp.c
+Compile [ 23.9%]: lwip_ip4_addr.c
+Compile [ 24.0%]: lwip_ip4.c
+Compile [ 24.1%]: lwip_dhcp6.c
+Compile [ 24.3%]: lwip_dhcp.c
+Compile [ 24.4%]: lwip_ip4_frag.c
+Compile [ 24.6%]: lwip_ethip6.c
+Compile [ 24.7%]: lwip_icmp6.c
+Compile [ 24.9%]: lwip_inet6.c
+Compile [ 25.0%]: lwip_ip6.c
+Compile [ 25.1%]: lwip_ip6_addr.c
+Compile [ 25.3%]: lwip_mld6.c
+Compile [ 25.4%]: lwip_nd6.c
+Compile [ 25.6%]: lwip_ip6_frag.c
+Compile [ 25.7%]: lwip_def.c
+Compile [ 25.9%]: lwip_dns.c
+Compile [ 26.0%]: lwip_inet_chksum.c
+Compile [ 26.1%]: lwip_ip.c
+Compile [ 26.3%]: lwip_init.c
+Compile [ 26.4%]: lwip_mem.c
+Compile [ 26.6%]: lwip_memp.c
+Compile [ 26.7%]: lwip_raw.c
+Compile [ 26.9%]: lwip_stats.c
+Compile [ 27.0%]: lwip_netif.c
+Compile [ 27.1%]: lwip_sys.c
+Compile [ 27.3%]: lwip_pbuf.c
+Compile [ 27.4%]: lwip_ethernet.c
+Compile [ 27.6%]: lwip_ethernetif.c
+Compile [ 27.7%]: lwip_udp.c
+Compile [ 27.9%]: lwip_lowpan6.c
+Compile [ 28.0%]: lwip_timeouts.c
+Compile [ 28.1%]: lwip_tcp.c
+Compile [ 28.3%]: lwip_tcp_out.c
+Compile [ 28.4%]: lwip_tcp_in.c
+Compile [ 28.6%]: lwip_auth.c
+Compile [ 28.7%]: lwip_ccp.c
+Compile [ 28.9%]: lwip_chap-new.c
+Compile [ 29.0%]: lwip_chap-md5.c
+Compile [ 29.1%]: lwip_chap_ms.c
+Compile [ 29.3%]: lwip_demand.c
+Compile [ 29.4%]: lwip_eap.c
+Compile [ 29.6%]: lwip_ecp.c
+Compile [ 29.7%]: lwip_fsm.c
+Compile [ 29.9%]: lwip_eui64.c
+Compile [ 30.0%]: lwip_ipcp.c
+Compile [ 30.1%]: lwip_ipv6cp.c
+Compile [ 30.3%]: lwip_magic.c
+Compile [ 30.4%]: lwip_lcp.c
+Compile [ 30.6%]: lwip_mppe.c
+Compile [ 30.7%]: lwip_multilink.c
+Compile [ 30.9%]: lwip_ppp.c
+Compile [ 31.0%]: lwip_pppapi.c
+Compile [ 31.1%]: lwip_pppcrypt.c
+Compile [ 31.3%]: lwip_pppoe.c
+Compile [ 31.4%]: lwip_pppol2tp.c
+Compile [ 31.6%]: lwip_pppos.c
+Compile [ 31.7%]: lwip_upap.c
+Compile [ 31.9%]: lwip_utils.c
+Compile [ 32.0%]: lwip_vj.c
+Compile [ 32.1%]: lwip_arc4.c
+Compile [ 32.3%]: lwip_des.c
+Compile [ 32.4%]: lwip_md4.c
+Compile [ 32.6%]: mbed_trng.cpp
+Compile [ 32.7%]: lwip_md5.c
+Compile [ 32.9%]: lwip_sha1.c
+Compile [ 33.0%]: platform_alt.c
+Compile [ 33.1%]: aesni.c
+Compile [ 33.3%]: arc4.c
+Compile [ 33.4%]: aria.c
+Compile [ 33.6%]: blowfish.c
+Compile [ 33.7%]: base64.c
+Compile [ 33.9%]: asn1parse.c
+Compile [ 34.0%]: asn1write.c
+Compile [ 34.1%]: camellia.c
+Compile [ 34.3%]: certs.c
+Compile [ 34.4%]: chacha20.c
+Compile [ 34.6%]: chachapoly.c
+Compile [ 34.7%]: aes.c
+Compile [ 34.9%]: cipher_wrap.c
+Compile [ 35.0%]: ctr_drbg.c
+Compile [ 35.1%]: ccm.c
+Compile [ 35.3%]: debug.c
+Compile [ 35.4%]: des.c
+Compile [ 35.6%]: lwip_tools.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 35.7%]: cmac.c
+Compile [ 35.9%]: cipher.c
+Compile [ 36.0%]: dhm.c
+Compile [ 36.1%]: ecdh.c
+Compile [ 36.3%]: ecjpake.c
+Compile [ 36.4%]: entropy.c
+Compile [ 36.6%]: entropy_poll.c
+Compile [ 36.7%]: ppp_lwip.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 36.9%]: havege.c
+Compile [ 37.0%]: ecdsa.c
+Compile [ 37.1%]: hkdf.c
+Compile [ 37.3%]: md2.c
+Compile [ 37.4%]: hmac_drbg.c
+Compile [ 37.6%]: md4.c
+Compile [ 37.7%]: md.c
+Compile [ 37.9%]: error.c
+Compile [ 38.0%]: gcm.c
+Compile [ 38.1%]: bignum.c
+Compile [ 38.3%]: md5.c
+Compile [ 38.4%]: memory_buffer_alloc.c
+Compile [ 38.6%]: net_sockets.c
+Compile [ 38.7%]: md_wrap.c
+Compile [ 38.9%]: nist_kw.c
+Compile [ 39.0%]: padlock.c
+Compile [ 39.1%]: ecp_curves.c
+Compile [ 39.3%]: pkcs11.c
+Compile [ 39.4%]: pkcs12.c
+Compile [ 39.6%]: pem.c
+Compile [ 39.7%]: oid.c
+Compile [ 39.9%]: pkcs5.c
+Compile [ 40.0%]: pk.c
+Compile [ 40.1%]: platform.c
+Compile [ 40.3%]: pk_wrap.c
+Compile [ 40.4%]: poly1305.c
+Compile [ 40.6%]: platform_util.c
+Compile [ 40.7%]: ripemd160.c
+Compile [ 40.9%]: ecp.c
+Compile [ 41.0%]: pkwrite.c
+Compile [ 41.1%]: sha1.c
+Compile [ 41.3%]: ssl_cache.c
+Compile [ 41.4%]: pkparse.c
+Compile [ 41.6%]: ssl_ciphersuites.c
+Compile [ 41.7%]: ssl_cli.c
+Compile [ 41.9%]: rsa_internal.c
+Compile [ 42.0%]: ssl_cookie.c
+Compile [ 42.1%]: ssl_ticket.c
+Compile [ 42.3%]: ssl_srv.c
+Compile [ 42.4%]: ssl_tls.c
+Compile [ 42.6%]: threading.c
+Compile [ 42.7%]: timing.c
+Compile [ 42.9%]: version.c
+Compile [ 43.0%]: version_features.c
+Compile [ 43.1%]: x509_create.c
+Compile [ 43.3%]: sha256.c
+Compile [ 43.4%]: x509_csr.c
+Compile [ 43.6%]: x509write_crt.c
+Compile [ 43.7%]: x509write_csr.c
+Compile [ 43.9%]: xtea.c
+Compile [ 44.0%]: x509.c
+Compile [ 44.1%]: hash_wrappers.c
+Compile [ 44.3%]: x509_crl.c
+Compile [ 44.4%]: rsa.c
+Compile [ 44.6%]: coap_security_handler.c
+Compile [ 44.7%]: coap_message_handler.c
+Compile [ 44.9%]: coap_connection_handler.c
+Compile [ 45.0%]: coap_service_api.c
+Compile [ 45.1%]: x509_crt.c
+[Warning] x509_crt.c@376,0:  #68-D: integer conversion resulted in a change of sign
+Compile [ 45.3%]: CallbackHandler.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] Nanostack.h@278,0:  #1300-D: call_in inherits implicit virtual
+Compile [ 45.4%]: MeshInterfaceNanostack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] Nanostack.h@278,0:  #1300-D: call_in inherits implicit virtual
+Compile [ 45.6%]: LoWPANNDInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] Nanostack.h@278,0:  #1300-D: call_in inherits implicit virtual
+Compile [ 45.7%]: NanostackMemoryManager.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 45.9%]: NanostackEMACInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] Nanostack.h@278,0:  #1300-D: call_in inherits implicit virtual
+Compile [ 46.0%]: NanostackEthernetInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] Nanostack.h@278,0:  #1300-D: call_in inherits implicit virtual
+Compile [ 46.1%]: mesh_system.c
+Compile [ 46.3%]: ethernet_tasklet.c
+Compile [ 46.4%]: nd_tasklet.c
+Compile [ 46.6%]: wisun_tasklet.c
+Compile [ 46.7%]: arm_hal_interrupt.c
+Compile [ 46.9%]: arm_hal_random.c
+Compile [ 47.0%]: thread_tasklet.c
+Compile [ 47.1%]: cs_nvm.c
+Compile [ 47.3%]: ThreadInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] Nanostack.h@278,0:  #1300-D: call_in inherits implicit virtual
+Compile [ 47.4%]: ns_hal_init.c
+Compile [ 47.6%]: WisunInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] Nanostack.h@278,0:  #1300-D: call_in inherits implicit virtual
+Compile [ 47.7%]: nvm_ram.c
+Compile [ 47.9%]: ns_event_loop_mutex.c
+Compile [ 48.0%]: ns_event_loop.c
+Compile [ 48.1%]: arm_hal_fhss_timer.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 48.3%]: minar_hal_timer.cpp
+Compile [ 48.4%]: ns_event_loop_mbed.cpp
+Compile [ 48.6%]: ns_timeout.c
+[Warning] ns_timeout.c@69,0:  #546-D: transfer of control bypasses initialization of:
+Compile [ 48.7%]: event.c
+Compile [ 48.9%]: arm_hal_timer.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 49.0%]: ns_timer.c
+Compile [ 49.1%]: system_timer.c
+[Warning] system_timer.c@313,0:  #546-D: transfer of control bypasses initialization of:
+Compile [ 49.3%]: sha512.c
+Compile [ 49.4%]: network_lib.c
+Compile [ 49.6%]: cipv6_fragmenter.c
+Compile [ 49.7%]: 6lowpan_iphc.c
+Compile [ 49.9%]: protocol_6lowpan_interface.c
+Compile [ 50.0%]: lowpan_context.c
+Compile [ 50.1%]: Nanostack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] Nanostack.h@278,0:  #1300-D: call_in inherits implicit virtual
+Compile [ 50.3%]: iphc_compress.c
+Compile [ 50.4%]: protocol_6lowpan.c
+Compile [ 50.6%]: iphc_decompress.c
+Compile [ 50.7%]: mac_ie_lib.c
+Compile [ 50.9%]: beacon_handler.c
+Compile [ 51.0%]: mac_data_poll.c
+Compile [ 51.1%]: mac_pairwise_key.c
+Compile [ 51.3%]: mac_helper.c
+Compile [ 51.4%]: mac_response_handler.c
+Compile [ 51.6%]: mesh.c
+Compile [ 51.7%]: thread_beacon.c
+Compile [ 51.9%]: nwk_nvm.c
+Compile [ 52.0%]: protocol_6lowpan_bootstrap.c
+Compile [ 52.1%]: thread_commissioning_if.c
+Compile [ 52.3%]: thread_dhcpv6_server.c
+Compile [ 52.4%]: thread_border_router_api.c
+Compile [ 52.6%]: thread_bbr_api.c
+Compile [ 52.7%]: thread_commissioning_api.c
+Compile [ 52.9%]: nd_router_object.c
+[Warning] nd_router_object.c@969,0:  #236-D: controlling expression is constant
+Compile [ 53.0%]: thread_lowpower_private_api.c
+Compile [ 53.1%]: thread_diagnostic.c
+Compile [ 53.3%]: thread_discovery.c
+Compile [ 53.4%]: thread_common.c
+Compile [ 53.6%]: thread_management_api.c
+Compile [ 53.7%]: thread_host_bootstrap.c
+[Warning] thread_host_bootstrap.c@478,0:  #111-D: statement is unreachable
+Compile [ 53.9%]: thread_management_client.c
+Compile [ 54.0%]: thread_bootstrap.c
+Compile [ 54.1%]: thread_meshcop_lib.c
+Compile [ 54.3%]: thread_mdns.c
+Compile [ 54.4%]: thread_net_config_api.c
+Compile [ 54.6%]: thread_leader_service.c
+Compile [ 54.7%]: thread_joiner_application.c
+Compile [ 54.9%]: thread_neighbor_class.c
+Compile [ 55.0%]: thread_nd.c
+Compile [ 55.1%]: thread_management_if.c
+[Warning] thread_management_if.c@1383,0:  #111-D: statement is unreachable
+Compile [ 55.3%]: thread_management_server.c
+Compile [ 55.4%]: thread_network_data_lib.c
+Compile [ 55.6%]: thread_resolution_server.c
+Compile [ 55.7%]: thread_mle_message_handler.c
+Compile [ 55.9%]: thread_resolution_client.c
+Compile [ 56.0%]: thread_network_synch.c
+Compile [ 56.1%]: thread_nvm_store.c
+Compile [ 56.3%]: ws_empty_functions.c
+Compile [ 56.4%]: icmpv6_prefix.c
+Compile [ 56.6%]: thread_test_api.c
+Compile [ 56.7%]: thread_routing.c
+Compile [ 56.9%]: ipv6_flow.c
+Compile [ 57.0%]: thread_network_data_storage.c
+Compile [ 57.1%]: adaptation_interface.c
+[Warning] adaptation_interface.c@640,0:  #236-D: controlling expression is constant
+[Warning] adaptation_interface.c@652,0:  #236-D: controlling expression is constant
+[Warning] adaptation_interface.c@1174,0:  #236-D: controlling expression is constant
+Compile [ 57.3%]: icmpv6_radv.c
+Compile [ 57.4%]: border_router.c
+Compile [ 57.6%]: icmpv6.c
+[Warning] icmpv6.c@1007,0:  #236-D: controlling expression is constant
+Compile [ 57.7%]: ipv6_fragmentation.c
+Compile [ 57.9%]: ipv6_resolution.c
+Compile [ 58.0%]: mld.c
+Compile [ 58.1%]: udp.c
+Compile [ 58.3%]: ipv6.c
+Compile [ 58.4%]: thread_router_bootstrap.c
+[Warning] thread_router_bootstrap.c@1945,0:  #188-D: enumerated type mixed with another type
+[Warning] thread_router_bootstrap.c@1946,0:  #188-D: enumerated type mixed with another type
+[Warning] thread_router_bootstrap.c@1947,0:  #188-D: enumerated type mixed with another type
+Compile [ 58.6%]: sockbuf.c
+Compile [ 58.7%]: buffer_dyn.c
+Compile [ 58.9%]: DHCPv6_Server_service.c
+Compile [ 59.0%]: mac_fhss_callbacks.c
+Compile [ 59.1%]: dhcpv6_client_service.c
+Compile [ 59.3%]: mac_filter.c
+Compile [ 59.4%]: tcp.c
+Compile [ 59.6%]: address.c
+Compile [ 59.7%]: mac_header_helper_functions.c
+Compile [ 59.9%]: mac_indirect_data.c
+Compile [ 60.0%]: mac_timer.c
+Compile [ 60.1%]: ns_socket.c
+Compile [ 60.3%]: mac_security_mib.c
+Compile [ 60.4%]: ethernet_mac_api.c
+Compile [ 60.6%]: mac_pd_sap.c
+Compile [ 60.7%]: rf_driver_storage.c
+Compile [ 60.9%]: sw_mac.c
+Compile [ 61.0%]: virtual_rf_client.c
+Compile [ 61.1%]: serial_mac_api.c
+Compile [ 61.3%]: virtual_rf_driver.c
+Compile [ 61.4%]: protocol_stats.c
+Compile [ 61.6%]: mac_mlme.c
+Compile [ 61.7%]: mle_tlv.c
+Compile [ 61.9%]: mac_mcps_sap.c
+Compile [ 62.0%]: mle.c
+Compile [ 62.1%]: protocol_timer.c
+Compile [ 62.3%]: protocol_core_sleep.c
+Compile [ 62.4%]: rpl_objective.c
+Compile [ 62.6%]: rpl_mrhof.c
+Compile [ 62.7%]: rpl_policy.c
+Compile [ 62.9%]: rpl_data.c
+Compile [ 63.0%]: mpl.c
+Compile [ 63.1%]: rpl_of0.c
+Compile [ 63.3%]: pana_avp.c
+Compile [ 63.4%]: protocol_core.c
+[Warning] protocol_core.c@247,0:  #236-D: controlling expression is constant
+[Warning] protocol_core.c@315,0:  #236-D: controlling expression is constant
+[Warning] protocol_core.c@1091,0:  #236-D: controlling expression is constant
+Compile [ 63.6%]: rpl_control.c
+Compile [ 63.7%]: pana_eap_header.c
+Compile [ 63.9%]: pana_header.c
+Compile [ 64.0%]: security_lib.c
+Compile [ 64.1%]: pana_relay_table.c
+Compile [ 64.3%]: eap_protocol.c
+Compile [ 64.4%]: rpl_downward.c
+Compile [ 64.6%]: tls_ccm_crypt.c
+Compile [ 64.7%]: aes_mbedtls_adapter.c
+Compile [ 64.9%]: pana.c
+Compile [ 65.0%]: ccm_security.c
+Compile [ 65.1%]: neighbor_cache.c
+Compile [ 65.3%]: ns_sha256.c
+Compile [ 65.4%]: trickle.c
+Compile [ 65.6%]: shalib.c
+Compile [ 65.7%]: rpl_upward.c
+Compile [ 65.9%]: pana_client.c
+Compile [ 66.0%]: channel_list.c
+Compile [ 66.1%]: blacklist.c
+Compile [ 66.3%]: fhss_channel.c
+Compile [ 66.4%]: fhss_common.c
+Compile [ 66.6%]: etx.c
+Compile [ 66.7%]: fhss_configuration_interface.c
+Compile [ 66.9%]: fhss_statistics.c
+Compile [ 67.0%]: fnv_hash.c
+Compile [ 67.1%]: fhss_ws_empty_functions.c
+Compile [ 67.3%]: tls_lib.c
+[Warning] tls_lib.c@1318,0:  #111-D: statement is unreachable
+[Warning] tls_lib.c@1633,0:  #111-D: statement is unreachable
+Compile [ 67.4%]: pana_server.c
+Compile [ 67.6%]: fhss.c
+Compile [ 67.7%]: mac_neighbor_table.c
+Compile [ 67.9%]: fnet_poll.c
+Compile [ 68.0%]: load_balance.c
+Compile [ 68.1%]: ns_fnet_events.c
+Compile [ 68.3%]: fnet_stdlib.c
+Compile [ 68.4%]: mle_service_frame_counter_table.c
+Compile [ 68.6%]: ns_fnet_port.c
+Compile [ 68.7%]: mle_service_buffer.c
+Compile [ 68.9%]: ns_mdns_api.c
+Compile [ 69.0%]: mle_service_interface.c
+Compile [ 69.1%]: isqrt.c
+Compile [ 69.3%]: ns_crc.c
+Compile [ 69.4%]: ns_file_system.c
+Compile [ 69.6%]: mle_service_security.c
+Compile [ 69.7%]: pan_blacklist.c
+Compile [ 69.9%]: nd_proxy.c
+Compile [ 70.0%]: whiteboard.c
+Compile [ 70.1%]: fnet_mdns.c
+[Warning] fnet_mdns.c@987,0:  #1293-D: assignment in condition
+[Warning] fnet_mdns.c@988,0:  #1293-D: assignment in condition
+Compile [ 70.3%]: libDHCPv6_server.c
+Compile [ 70.4%]: mle_service.c
+Compile [ 70.6%]: libDHCPv6.c
+Compile [ 70.7%]: multicast_api.c
+Compile [ 70.9%]: net_6lowpan_parameter_api.c
+Compile [ 71.0%]: dhcp_service_api.c
+Compile [ 71.1%]: net_ipv6.c
+Compile [ 71.3%]: net_mle.c
+Compile [ 71.4%]: protocol_ipv6.c
+Compile [ 71.6%]: net_short_address_extension.c
+Compile [ 71.7%]: net_rpl.c
+Compile [ 71.9%]: net_load_balance.c
+Compile [ 72.0%]: net_test.c
+Compile [ 72.1%]: ipv6_routing_table.c
+Compile [ 72.3%]: socket_api.c
+Compile [ 72.4%]: DTLSSocket.cpp
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 72.6%]: NetworkInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 72.7%]: DTLSSocketWrapper.cpp
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 72.9%]: NetworkInterfaceDefaults.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 73.0%]: ns_net.c
+Compile [ 73.1%]: EMACMemoryManager.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 73.3%]: InternetSocket.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 73.4%]: EMACInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 73.6%]: EthernetInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 73.7%]: SocketAddress.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 73.9%]: WiFiAccessPoint.cpp
+Compile [ 74.0%]: NetworkStack.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 74.1%]: SocketStats.cpp
+Compile [ 74.3%]: OnboardCellularInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 74.4%]: TCPServer.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 74.6%]: TCPSocket.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 74.7%]: UDPSocket.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 74.9%]: TLSSocket.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 75.0%]: TLSSocketWrapper.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 75.1%]: PPPCellularInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 75.3%]: ac_buffer.c
+Compile [ 75.4%]: ac_buffer_builder.c
+Compile [ 75.6%]: ac_stream.c
+Compile [ 75.7%]: ac_buffer_reader.c
+Compile [ 75.9%]: UARTCellularInterface.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+Compile [ 76.0%]: PN512TransportDriver.cpp
+Compile [ 76.1%]: PN512Driver.cpp
+Compile [ 76.3%]: NFCEEPROMDriver.cpp
+Compile [ 76.4%]: NFCControllerDriver.cpp
+Compile [ 76.6%]: rza1_emac.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 76.7%]: NFCNDEFCapable.cpp
+Compile [ 76.9%]: NFCTarget.cpp
+Compile [ 77.0%]: NFCEEPROM.cpp
+Compile [ 77.1%]: PN512SPITransportDriver.cpp
+Compile [ 77.3%]: NFCRemoteInitiator.cpp
+[Warning] NFCRemoteInitiator.cpp@55,0:  #1-D: last line of file ends without a newline
+Compile [ 77.4%]: RecordParser.cpp
+Compile [ 77.6%]: Mime.cpp
+Compile [ 77.7%]: MessageBuilder.cpp
+Compile [ 77.9%]: NFCController.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 78.0%]: MessageParser.cpp
+[Warning] MessageParser.cpp@63,0:  #177-D: function "<unnamed>::buffer_iterator_t::read_le" was declared but never referenced
+Compile [ 78.1%]: util.cpp
+Compile [ 78.3%]: SimpleMessageParser.cpp
+Compile [ 78.4%]: nsapi_dns.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+Compile [ 78.6%]: NFCRemoteEndpoint.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 78.7%]: Text.cpp
+Compile [ 78.9%]: URI.cpp
+Compile [ 79.0%]: ndef.c
+Compile [ 79.1%]: nfc_transport.c
+Compile [ 79.3%]: nfc_scheduler.c
+[Warning] nfc_scheduler.c@128,0:  #111-D: statement is unreachable
+Compile [ 79.4%]: iso7816_app.c
+Compile [ 79.6%]: iso7816.c
+[Warning] iso7816.c@250,0:  #111-D: statement is unreachable
+[Warning] iso7816.c@258,0:  #111-D: statement is unreachable
+Compile [ 79.7%]: pn512.c
+Compile [ 79.9%]: isodep_target.c
+Compile [ 80.0%]: pn512_hw.c
+Compile [ 80.1%]: type4_target.c
+[Warning] type4_target.c@157,0:  #546-D: transfer of control bypasses initialization of:
+Compile [ 80.3%]: pn512_cmd.c
+Compile [ 80.4%]: Type4RemoteInitiator.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 80.6%]: pn512_irq.c
+Compile [ 80.7%]: pn512_registers.c
+Compile [ 80.9%]: transceiver.c
+Compile [ 81.0%]: pn512_timer.c
+Compile [ 81.1%]: pn512_rf.c
+[Warning] pn512_rf.c@265,0:  #68-D: integer conversion resulted in a change of sign
+Compile [ 81.3%]: ChainingBlockDevice.cpp
+Compile [ 81.4%]: ExhaustibleBlockDevice.cpp
+Compile [ 81.6%]: pn512_transceive.c
+Compile [ 81.7%]: BufferedBlockDevice.cpp
+Compile [ 81.9%]: pn512_poll.c
+Compile [ 82.0%]: HeapBlockDevice.cpp
+Compile [ 82.1%]: FlashSimBlockDevice.cpp
+Compile [ 82.3%]: ProfilingBlockDevice.cpp
+Compile [ 82.4%]: SlicingBlockDevice.cpp
+Compile [ 82.6%]: ReadOnlyBlockDevice.cpp
+Compile [ 82.7%]: ObservingBlockDevice.cpp
+Compile [ 82.9%]: ffunicode.cpp
+Compile [ 83.0%]: MBRBlockDevice.cpp
+Compile [ 83.1%]: lfs_util.c
+[Warning] lfs_util.c@28,0:  #1-D: last line of file ends without a newline
+Compile [ 83.3%]: Dir.cpp
+Compile [ 83.4%]: File.cpp
+Compile [ 83.6%]: FileSystem.cpp
+Compile [ 83.7%]: DirectAccessDevicekey.cpp
+Compile [ 83.9%]: LittleFileSystem.cpp
+Compile [ 84.0%]: FATFileSystem.cpp
+Compile [ 84.1%]: SecureStore.cpp
+Compile [ 84.3%]: nvstore.cpp
+Compile [ 84.4%]: lfs.c
+[Warning] lfs.c@2112,0:  #546-D: transfer of control bypasses initialization of:
+[Warning] lfs.c@2119,0:  #546-D: transfer of control bypasses initialization of:
+[Warning] lfs.c@2124,0:  #546-D: transfer of control bypasses initialization of:
+[Warning] lfs.c@2196,0:  #546-D: transfer of control bypasses initialization of:
+[Warning] lfs.c@2204,0:  #546-D: transfer of control bypasses initialization of:
+[Warning] lfs.c@2211,0:  #546-D: transfer of control bypasses initialization of:
+[Warning] lfs.c@2218,0:  #546-D: transfer of control bypasses initialization of:
+Compile [ 84.6%]: kvstore_global_api.cpp
+Compile [ 84.7%]: KVMap.cpp
+Compile [ 84.9%]: ff.cpp
+[Warning] ff.cpp@1660,0:  #1293-D: assignment in condition
+[Warning] ff.cpp@5586,0:  #1293-D: assignment in condition
+Compile [ 85.0%]: FileSystemStore.cpp
+Compile [ 85.1%]: mbed_itm_api.c
+Compile [ 85.3%]: kv_config.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+[Warning] kv_config.cpp@762,0:  #185-D: dynamic initialization in unreachable code
+[Warning] kv_config.cpp@847,0:  #185-D: dynamic initialization in unreachable code
+[Warning] kv_config.cpp@946,0:  #111-D: statement is unreachable
+[Warning] kv_config.cpp@1033,0:  #111-D: statement is unreachable
+[Warning] kv_config.cpp@1150,0:  #111-D: statement is unreachable
+Compile [ 85.4%]: mbed_critical_section_api.c
+Compile [ 85.6%]: mbed_flash_api.c
+Compile [ 85.7%]: mbed_gpio.c
+Compile [ 85.9%]: LowPowerTickerWrapper.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 86.0%]: mbed_lp_ticker_api.c
+Compile [ 86.1%]: mbed_lp_ticker_wrapper.cpp
+Compile [ 86.3%]: mbed_pinmap_common.c
+Compile [ 86.4%]: TDBStore.cpp
+Compile [ 86.6%]: mbed_us_ticker_api.c
+Compile [ 86.7%]: mbed_mpu_v7m.c
+Compile [ 86.9%]: SystemStorage.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+[Warning] SystemStorage.cpp@80,0:  #177-D: function "align_up" was declared but never referenced
+Compile [ 87.0%]: mbed_ticker_api.c
+Compile [ 87.1%]: mbed_mpu_v8m.c
+Compile [ 87.3%]: CallChain.cpp
+Compile [ 87.4%]: CThunkBase.cpp
+Compile [ 87.6%]: ATCmdParser.cpp
+Compile [ 87.7%]: LocalFileSystem.cpp
+Compile [ 87.9%]: FileHandle.cpp
+Compile [ 88.0%]: mbed_assert.c
+Compile [ 88.1%]: FileBase.cpp
+Compile [ 88.3%]: FileSystemHandle.cpp
+Compile [ 88.4%]: FilePath.cpp
+Compile [ 88.6%]: mbed_alloc_wrappers.cpp
+Compile [ 88.7%]: Stream.cpp
+Compile [ 88.9%]: mbed_application.c
+Compile [ 89.0%]: mbed_critical.c
+Compile [ 89.1%]: mbed_mktime.c
+Compile [ 89.3%]: mbed_board.c
+Compile [ 89.4%]: mbed_mem_trace.cpp
+Compile [ 89.6%]: mbed_error_hist.c
+Compile [ 89.7%]: mbed_interface.c
+Compile [ 89.9%]: mbed_error.c
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 90.0%]: mbed_mpu_mgmt.c
+Compile [ 90.1%]: mbed_wait_api_no_rtos.c
+Compile [ 90.3%]: mbed_sdk_boot.c
+Compile [ 90.4%]: mbed_semihost_api.c
+Compile [ 90.6%]: mbed_sleep_manager.c
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 90.7%]: mbed_poll.cpp
+Compile [ 90.9%]: mbed_rtc_time.cpp
+Compile [ 91.0%]: mbed_stats.c
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 91.1%]: ConditionVariable.cpp
+Compile [ 91.3%]: Kernel.cpp
+Compile [ 91.4%]: EventFlags.cpp
+Compile [ 91.6%]: SysTimer.cpp
+Compile [ 91.7%]: RtosTimer.cpp
+Compile [ 91.9%]: Mutex.cpp
+Compile [ 92.0%]: Semaphore.cpp
+Compile [ 92.1%]: mbed_wait_api_rtos.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Compile [ 92.3%]: mbed_retarget.cpp
+Compile [ 92.4%]: cmsis_os1.c
+Compile [ 92.6%]: mbed_boot_arm_std.c
+Compile [ 92.7%]: mbed_rtos_rtx.c
+Compile [ 92.9%]: RTX_Config.c
+Compile [ 93.0%]: irq_ca.S
+[Warning] irq_ca.S@89,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+[Warning] irq_ca.S@123,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+[Warning] irq_ca.S@152,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+[Warning] irq_ca.S@263,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+[Warning] irq_ca.S@341,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+[Warning] irq_ca.S@438,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 93.1%]: mbed_boot.c
+Compile [ 93.3%]: handlers.c
+Compile [ 93.4%]: mbed_rtx_handlers.c
+Compile [ 93.6%]: mbed_rtx_idle.cpp
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 93.7%]: rtx_evr.c
+Compile [ 93.9%]: rtx_lib.c
+Compile [ 94.0%]: rtx_delay.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 94.1%]: rtx_evflags.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 94.3%]: rtx_kernel.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 94.4%]: rtx_memory.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 94.6%]: rtx_mutex.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 94.7%]: rtx_mempool.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 94.9%]: rtx_msgqueue.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 95.0%]: rtx_semaphore.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 95.1%]: rtx_system.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 95.3%]: os_systick.c
+Compile [ 95.4%]: ThisThread.cpp
+Compile [ 95.6%]: rtx_timer.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 95.7%]: sys.cpp
+Compile [ 95.9%]: os_tick_ptim.c
+Compile [ 96.0%]: Thread.cpp
+Compile [ 96.1%]: PeripheralPins.c
+Compile [ 96.3%]: startup_VK_RZ_A1H.c
+Compile [ 96.4%]: rtx_thread.c
+[Warning] rtx_core_ca.h@110,0: A1786W: This instruction using SP is deprecated and may not work in future architecture revisions
+Compile [ 96.6%]: cmsis_nvic.c
+Compile [ 96.7%]: nvic_wrapper.c
+Compile [ 96.9%]: RZ_A1_Init.c
+Compile [ 97.0%]: mmu_VK_RZ_A1H.c
+Compile [ 97.1%]: rza_io_regrw.c
+Compile [ 97.3%]: os_tick_ostm.c
+Compile [ 97.4%]: system_VK_RZ_A1H.c
+Compile [ 97.6%]: lp_ticker.c
+Compile [ 97.7%]: analogin_api.c
+Compile [ 97.9%]: flash_api.c
+Compile [ 98.0%]: gpio_api.c
+Compile [ 98.1%]: gpio_irq_api.c
+Compile [ 98.3%]: mtu2.c
+Compile [ 98.4%]: ethernet_api.c
+Compile [ 98.6%]: can_api.c
+Compile [ 98.7%]: pinmap.c
+Compile [ 98.9%]: trng_api.c
+Compile [ 99.0%]: port_api.c
+Compile [ 99.1%]: i2c_api.c
+Compile [ 99.3%]: rtc_api.c
+Compile [ 99.4%]: pwmout_api.c
+Compile [ 99.6%]: sleep.c
+Compile [ 99.7%]: us_ticker.c
+Compile [ 99.9%]: spi_api.c
+[Warning] spi_api.c@507,0:  #69-D: integer conversion resulted in truncation
+Compile [100.0%]: serial_api.c
+Building project fopen (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: fopen
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: fopen.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Link: fopen
+Elf2Bin: fopen
+| Module                          |         .text |       .data |            .bss |
+|---------------------------------|---------------|-------------|-----------------|
+| [lib]\c_2.l                     | 12837(+12837) |     16(+16) |       348(+348) |
+| [lib]\cpp_5s.l                  |     118(+118) |     44(+44) |           0(+0) |
+| [lib]\cpprt_5.l                 |       78(+78) |       0(+0) |           0(+0) |
+| [lib]\fz_2v.l                   |       18(+18) |       0(+0) |           0(+0) |
+| [lib]\m_2v.l                    |       48(+48) |       0(+0) |           0(+0) |
+| anon$$obj.o                     |       40(+40) |       0(+0) | 111360(+111360) |
+| cmsis\TARGET_CORTEX_A           |   1452(+1452) |       4(+4) |     4080(+4080) |
+| components\802.15.4_RF          |       44(+44) |       0(+0) |           0(+0) |
+| components\storage              |   1389(+1389) |       0(+0) |       492(+492) |
+| components\wifi                 |       55(+55) |       0(+0) |           0(+0) |
+| drivers\I2C.o                   |       54(+54) |       0(+0) |           0(+0) |
+| drivers\RawSerial.o             |     560(+560) |       0(+0) |           0(+0) |
+| drivers\SPI.o                   |     204(+204) |       0(+0) |       768(+768) |
+| drivers\SerialBase.o            |     720(+720) |       0(+0) |           0(+0) |
+| drivers\Ticker.o                |     376(+376) |       0(+0) |           0(+0) |
+| drivers\Timeout.o               |     160(+160) |       0(+0) |           0(+0) |
+| drivers\TimerEvent.o            |     144(+144) |       0(+0) |           0(+0) |
+| features\frameworks             |   9200(+9200) |   140(+140) |       304(+304) |
+| features\netsocket              |     132(+132) |       0(+0) |           0(+0) |
+| hal\mbed_critical_section_api.o |     192(+192) |       2(+2) |           0(+0) |
+| hal\mbed_gpio.o                 |       80(+80) |       0(+0) |           0(+0) |
+| hal\mbed_pinmap_common.o        |     348(+348) |       0(+0) |           0(+0) |
+| hal\mbed_ticker_api.o           |   1904(+1904) |       0(+0) |           0(+0) |
+| hal\mbed_us_ticker_api.o        |       88(+88) |       4(+4) |         64(+64) |
+| platform\FileBase.o             |     220(+220) |       8(+8) |         48(+48) |
+| platform\FileHandle.o           |         8(+8) |       0(+0) |           0(+0) |
+| platform\FilePath.o             |     360(+360) |       0(+0) |           0(+0) |
+| platform\mbed_assert.o          |       48(+48) |       0(+0) |           0(+0) |
+| platform\mbed_board.o           |     345(+345) |       0(+0) |           0(+0) |
+| platform\mbed_critical.o        |     344(+344) |       4(+4) |           0(+0) |
+| platform\mbed_error.o           |   1388(+1388) |     12(+12) |       104(+104) |
+| platform\mbed_retarget.o        |   2408(+2408) |     80(+80) |       392(+392) |
+| platform\mbed_sleep_manager.o   |     292(+292) |     24(+24) |           0(+0) |
+| platform\mbed_wait_api_rtos.o   |     156(+156) |       0(+0) |           0(+0) |
+| rtos\Mutex.o                    |     504(+504) |       0(+0) |           0(+0) |
+| rtos\TARGET_CORTEX              | 16838(+16838) | 2298(+2298) |     4504(+4504) |
+| targets\TARGET_RENESAS          | 13660(+13660) |   177(+177) |       652(+652) |
+| Subtotals                       | 66812(+66812) | 2813(+2813) | 123116(+123116) |
+Total Static RAM memory (data + bss): 125929(+125929) bytes
+Total Flash memory (text + data): 69625(+69625) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/fopen/fopen.bin
+
+Building project dirs (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: dirs
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Link: dirs
+Elf2Bin: dirs
+| Module                          |           .text |       .data |            .bss |
+|---------------------------------|-----------------|-------------|-----------------|
+| [lib]\c_2.l                     |   21104(+21104) |     48(+48) |       434(+434) |
+| [lib]\cpp_5s.l                  |     5248(+5248) |     55(+55) |         40(+40) |
+| [lib]\cpprt_5.l                 |       558(+558) |       0(+0) |           0(+0) |
+| [lib]\fz_2v.l                   |       294(+294) |       0(+0) |           0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.ar   |   26364(+26364) |     12(+12) |       128(+128) |
+| [lib]\m_2v.l                    |       560(+560) |       0(+0) |           0(+0) |
+| anon$$obj.o                     |         56(+56) |       0(+0) | 111360(+111360) |
+| cmsis\TARGET_CORTEX_A           |     1452(+1452) |       4(+4) |     4080(+4080) |
+| components\802.15.4_RF          |         44(+44) |       0(+0) |           0(+0) |
+| components\storage              |   18219(+18219) | 1324(+1324) |     9088(+9088) |
+| components\wifi                 |         55(+55) |       0(+0) |           0(+0) |
+| drivers\I2C.o                   |         54(+54) |       0(+0) |           0(+0) |
+| drivers\RawSerial.o             |       560(+560) |       0(+0) |           0(+0) |
+| drivers\SPI.o                   |       204(+204) |       0(+0) |       768(+768) |
+| drivers\SerialBase.o            |       720(+720) |       0(+0) |           0(+0) |
+| drivers\Ticker.o                |       376(+376) |       0(+0) |           0(+0) |
+| drivers\Timeout.o               |       160(+160) |       0(+0) |           0(+0) |
+| drivers\TimerEvent.o            |       144(+144) |       0(+0) |           0(+0) |
+| features\frameworks             |   11007(+11007) |   140(+140) |       528(+528) |
+| features\netsocket              |       132(+132) |       0(+0) |           0(+0) |
+| features\storage                |   27756(+27756) |       4(+4) |         80(+80) |
+| hal\mbed_critical_section_api.o |       192(+192) |       2(+2) |           0(+0) |
+| hal\mbed_gpio.o                 |         80(+80) |       0(+0) |           0(+0) |
+| hal\mbed_pinmap_common.o        |       348(+348) |       0(+0) |           0(+0) |
+| hal\mbed_ticker_api.o           |     1904(+1904) |       0(+0) |           0(+0) |
+| hal\mbed_us_ticker_api.o        |         88(+88) |       4(+4) |         64(+64) |
+| platform\FileBase.o             |       528(+528) |       8(+8) |         48(+48) |
+| platform\FileHandle.o           |           8(+8) |       0(+0) |           0(+0) |
+| platform\FilePath.o             |       360(+360) |       0(+0) |           0(+0) |
+| platform\FileSystemHandle.o     |         44(+44) |       0(+0) |           0(+0) |
+| platform\mbed_assert.o          |         48(+48) |       0(+0) |           0(+0) |
+| platform\mbed_board.o           |       345(+345) |       0(+0) |           0(+0) |
+| platform\mbed_critical.o        |       344(+344) |       4(+4) |           0(+0) |
+| platform\mbed_error.o           |     1388(+1388) |     12(+12) |       104(+104) |
+| platform\mbed_mktime.o          |       856(+856) |       0(+0) |           0(+0) |
+| platform\mbed_retarget.o        |     2584(+2584) |     80(+80) |       392(+392) |
+| platform\mbed_rtc_time.o        |       168(+168) |     16(+16) |         48(+48) |
+| platform\mbed_sleep_manager.o   |       292(+292) |     24(+24) |           0(+0) |
+| platform\mbed_wait_api_rtos.o   |       156(+156) |       0(+0) |           0(+0) |
+| rtos\Mutex.o                    |       528(+528) |       0(+0) |           0(+0) |
+| rtos\TARGET_CORTEX              |   16942(+16942) | 2298(+2298) |     4504(+4504) |
+| targets\TARGET_RENESAS          |   14988(+14988) |   177(+177) |       652(+652) |
+| Subtotals                       | 157258(+157258) | 4212(+4212) | 132318(+132318) |
+Total Static RAM memory (data + bss): 136530(+136530) bytes
+Total Flash memory (text + data): 161470(+161470) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/dirs/dirs.bin
+
+Building project seek (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: seek
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Link: seek
+Elf2Bin: seek
+| Module                          |           .text |       .data |            .bss |
+|---------------------------------|-----------------|-------------|-----------------|
+| [lib]\c_2.l                     |   21104(+21104) |     48(+48) |       434(+434) |
+| [lib]\cpp_5s.l                  |     5248(+5248) |     55(+55) |         40(+40) |
+| [lib]\cpprt_5.l                 |       558(+558) |       0(+0) |           0(+0) |
+| [lib]\fz_2v.l                   |       294(+294) |       0(+0) |           0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.ar   |   26364(+26364) |     12(+12) |       128(+128) |
+| [lib]\m_2v.l                    |       560(+560) |       0(+0) |           0(+0) |
+| anon$$obj.o                     |         56(+56) |       0(+0) | 111360(+111360) |
+| cmsis\TARGET_CORTEX_A           |     1452(+1452) |       4(+4) |     4080(+4080) |
+| components\802.15.4_RF          |         44(+44) |       0(+0) |           0(+0) |
+| components\storage              |   21209(+21209) | 1324(+1324) |     9060(+9060) |
+| components\wifi                 |         55(+55) |       0(+0) |           0(+0) |
+| drivers\I2C.o                   |         54(+54) |       0(+0) |           0(+0) |
+| drivers\RawSerial.o             |       560(+560) |       0(+0) |           0(+0) |
+| drivers\SPI.o                   |       204(+204) |       0(+0) |       768(+768) |
+| drivers\SerialBase.o            |       720(+720) |       0(+0) |           0(+0) |
+| drivers\Ticker.o                |       376(+376) |       0(+0) |           0(+0) |
+| drivers\Timeout.o               |       160(+160) |       0(+0) |           0(+0) |
+| drivers\TimerEvent.o            |       144(+144) |       0(+0) |           0(+0) |
+| features\frameworks             |   10803(+10803) |   140(+140) |       528(+528) |
+| features\netsocket              |       132(+132) |       0(+0) |           0(+0) |
+| features\storage                |   27860(+27860) |       4(+4) |         80(+80) |
+| hal\mbed_critical_section_api.o |       192(+192) |       2(+2) |           0(+0) |
+| hal\mbed_gpio.o                 |         80(+80) |       0(+0) |           0(+0) |
+| hal\mbed_pinmap_common.o        |       348(+348) |       0(+0) |           0(+0) |
+| hal\mbed_ticker_api.o           |     1904(+1904) |       0(+0) |           0(+0) |
+| hal\mbed_us_ticker_api.o        |         88(+88) |       4(+4) |         64(+64) |
+| platform\FileBase.o             |       528(+528) |       8(+8) |         48(+48) |
+| platform\FileHandle.o           |           8(+8) |       0(+0) |           0(+0) |
+| platform\FilePath.o             |       360(+360) |       0(+0) |           0(+0) |
+| platform\FileSystemHandle.o     |         44(+44) |       0(+0) |           0(+0) |
+| platform\mbed_assert.o          |         48(+48) |       0(+0) |           0(+0) |
+| platform\mbed_board.o           |       345(+345) |       0(+0) |           0(+0) |
+| platform\mbed_critical.o        |       344(+344) |       4(+4) |           0(+0) |
+| platform\mbed_error.o           |     1388(+1388) |     12(+12) |       104(+104) |
+| platform\mbed_mktime.o          |       856(+856) |       0(+0) |           0(+0) |
+| platform\mbed_retarget.o        |     2584(+2584) |     80(+80) |       392(+392) |
+| platform\mbed_rtc_time.o        |       168(+168) |     16(+16) |         48(+48) |
+| platform\mbed_sleep_manager.o   |       292(+292) |     24(+24) |           0(+0) |
+| platform\mbed_wait_api_rtos.o   |       156(+156) |       0(+0) |           0(+0) |
+| rtos\Mutex.o                    |       528(+528) |       0(+0) |           0(+0) |
+| rtos\TARGET_CORTEX              |   16942(+16942) | 2298(+2298) |     4504(+4504) |
+| targets\TARGET_RENESAS          |   14988(+14988) |   177(+177) |       652(+652) |
+| Subtotals                       | 160148(+160148) | 4212(+4212) | 132290(+132290) |
+Total Static RAM memory (data + bss): 136502(+136502) bytes
+Total Flash memory (text + data): 164360(+164360) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/seek/seek.bin
+
+Building project parallel (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: parallel
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Link: parallel
+Elf2Bin: parallel
+| Module                          |           .text |       .data |            .bss |
+|---------------------------------|-----------------|-------------|-----------------|
+| [lib]\c_2.l                     |   20996(+20996) |     48(+48) |       434(+434) |
+| [lib]\cpp_5s.l                  |     5248(+5248) |     55(+55) |         40(+40) |
+| [lib]\cpprt_5.l                 |       559(+559) |       0(+0) |           0(+0) |
+| [lib]\fz_2v.l                   |       294(+294) |       0(+0) |           0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.ar   |   26364(+26364) |     12(+12) |       128(+128) |
+| [lib]\m_2v.l                    |       560(+560) |       0(+0) |           0(+0) |
+| anon$$obj.o                     |         56(+56) |       0(+0) | 111360(+111360) |
+| cmsis\TARGET_CORTEX_A           |     1452(+1452) |       4(+4) |     4080(+4080) |
+| components\802.15.4_RF          |         44(+44) |       0(+0) |           0(+0) |
+| components\storage              |   12361(+12361) | 1324(+1324) |       412(+412) |
+| components\wifi                 |         55(+55) |       0(+0) |           0(+0) |
+| drivers\I2C.o                   |         54(+54) |       0(+0) |           0(+0) |
+| drivers\RawSerial.o             |       560(+560) |       0(+0) |           0(+0) |
+| drivers\SPI.o                   |       204(+204) |       0(+0) |       768(+768) |
+| drivers\SerialBase.o            |       720(+720) |       0(+0) |           0(+0) |
+| drivers\Ticker.o                |       376(+376) |       0(+0) |           0(+0) |
+| drivers\Timeout.o               |       160(+160) |       0(+0) |           0(+0) |
+| drivers\TimerEvent.o            |       144(+144) |       0(+0) |           0(+0) |
+| features\frameworks             |   10879(+10879) |   140(+140) |       528(+528) |
+| features\netsocket              |       132(+132) |       0(+0) |           0(+0) |
+| features\storage                |   23988(+23988) |       4(+4) |         80(+80) |
+| hal\mbed_critical_section_api.o |       192(+192) |       2(+2) |           0(+0) |
+| hal\mbed_gpio.o                 |         80(+80) |       0(+0) |           0(+0) |
+| hal\mbed_pinmap_common.o        |       348(+348) |       0(+0) |           0(+0) |
+| hal\mbed_ticker_api.o           |     1904(+1904) |       0(+0) |           0(+0) |
+| hal\mbed_us_ticker_api.o        |         88(+88) |       4(+4) |         64(+64) |
+| platform\FileBase.o             |       528(+528) |       8(+8) |         48(+48) |
+| platform\FileHandle.o           |           8(+8) |       0(+0) |           0(+0) |
+| platform\FilePath.o             |       360(+360) |       0(+0) |           0(+0) |
+| platform\FileSystemHandle.o     |         44(+44) |       0(+0) |           0(+0) |
+| platform\mbed_assert.o          |         48(+48) |       0(+0) |           0(+0) |
+| platform\mbed_board.o           |       345(+345) |       0(+0) |           0(+0) |
+| platform\mbed_critical.o        |       344(+344) |       4(+4) |           0(+0) |
+| platform\mbed_error.o           |     1388(+1388) |     12(+12) |       104(+104) |
+| platform\mbed_mktime.o          |       856(+856) |       0(+0) |           0(+0) |
+| platform\mbed_retarget.o        |     2588(+2588) |     80(+80) |       392(+392) |
+| platform\mbed_rtc_time.o        |       168(+168) |     16(+16) |         48(+48) |
+| platform\mbed_sleep_manager.o   |       292(+292) |     24(+24) |           0(+0) |
+| platform\mbed_wait_api_rtos.o   |       156(+156) |       0(+0) |           0(+0) |
+| rtos\Mutex.o                    |       528(+528) |       0(+0) |           0(+0) |
+| rtos\Semaphore.o                |       376(+376) |       0(+0) |           0(+0) |
+| rtos\TARGET_CORTEX              |   19590(+19590) | 2298(+2298) |     4504(+4504) |
+| rtos\Thread.o                   |     1216(+1216) |       0(+0) |           0(+0) |
+| targets\TARGET_RENESAS          |   14988(+14988) |   177(+177) |       652(+652) |
+| Subtotals                       | 151641(+151641) | 4212(+4212) | 123642(+123642) |
+Total Static RAM memory (data + bss): 127854(+127854) bytes
+Total Flash memory (text + data): 155853(+155853) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/parallel/parallel.bin
+
+Building project files (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: files
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+[Warning] DNS.h@104,0:  #1-D: last line of file ends without a newline
+[Warning] DTLSSocketWrapper.h@53,0:  #1-D: last line of file ends without a newline
+[Warning] mbed_power_mgmt.h@268,0:  #1461-D: function declared with "noreturn" does return
+Link: files
+Elf2Bin: files
+| Module                          |           .text |       .data |            .bss |
+|---------------------------------|-----------------|-------------|-----------------|
+| [lib]\c_2.l                     |   21220(+21220) |     48(+48) |       662(+662) |
+| [lib]\cpp_5s.l                  |     5248(+5248) |     55(+55) |         40(+40) |
+| [lib]\cpprt_5.l                 |       558(+558) |       0(+0) |           0(+0) |
+| [lib]\fz_2v.l                   |       294(+294) |       0(+0) |           0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.ar   |   26364(+26364) |     12(+12) |       128(+128) |
+| [lib]\m_2v.l                    |       560(+560) |       0(+0) |           0(+0) |
+| anon$$obj.o                     |         56(+56) |       0(+0) | 111360(+111360) |
+| cmsis\TARGET_CORTEX_A           |     1452(+1452) |       4(+4) |     4080(+4080) |
+| components\802.15.4_RF          |         44(+44) |       0(+0) |           0(+0) |
+| components\storage              |   18567(+18567) | 1360(+1360) |   25444(+25444) |
+| components\wifi                 |         55(+55) |       0(+0) |           0(+0) |
+| drivers\I2C.o                   |         54(+54) |       0(+0) |           0(+0) |
+| drivers\RawSerial.o             |       560(+560) |       0(+0) |           0(+0) |
+| drivers\SPI.o                   |       204(+204) |       0(+0) |       768(+768) |
+| drivers\SerialBase.o            |       720(+720) |       0(+0) |           0(+0) |
+| drivers\Ticker.o                |       376(+376) |       0(+0) |           0(+0) |
+| drivers\Timeout.o               |       160(+160) |       0(+0) |           0(+0) |
+| drivers\TimerEvent.o            |       144(+144) |       0(+0) |           0(+0) |
+| features\frameworks             |   10803(+10803) |   140(+140) |       528(+528) |
+| features\netsocket              |       132(+132) |       0(+0) |           0(+0) |
+| features\storage                |   26256(+26256) |       4(+4) |         80(+80) |
+| hal\mbed_critical_section_api.o |       192(+192) |       2(+2) |           0(+0) |
+| hal\mbed_gpio.o                 |         80(+80) |       0(+0) |           0(+0) |
+| hal\mbed_pinmap_common.o        |       348(+348) |       0(+0) |           0(+0) |
+| hal\mbed_ticker_api.o           |     1904(+1904) |       0(+0) |           0(+0) |
+| hal\mbed_us_ticker_api.o        |         88(+88) |       4(+4) |         64(+64) |
+| platform\FileBase.o             |       528(+528) |       8(+8) |         48(+48) |
+| platform\FileHandle.o           |           8(+8) |       0(+0) |           0(+0) |
+| platform\FilePath.o             |       360(+360) |       0(+0) |           0(+0) |
+| platform\FileSystemHandle.o     |         44(+44) |       0(+0) |           0(+0) |
+| platform\mbed_assert.o          |         48(+48) |       0(+0) |           0(+0) |
+| platform\mbed_board.o           |       345(+345) |       0(+0) |           0(+0) |
+| platform\mbed_critical.o        |       344(+344) |       4(+4) |           0(+0) |
+| platform\mbed_error.o           |     1388(+1388) |     12(+12) |       104(+104) |
+| platform\mbed_mktime.o          |       856(+856) |       0(+0) |           0(+0) |
+| platform\mbed_retarget.o        |     2584(+2584) |     80(+80) |       392(+392) |
+| platform\mbed_rtc_time.o        |       168(+168) |     16(+16) |         48(+48) |
+| platform\mbed_sleep_manager.o   |       292(+292) |     24(+24) |           0(+0) |
+| platform\mbed_wait_api_rtos.o   |       156(+156) |       0(+0) |           0(+0) |
+| rtos\Mutex.o                    |       528(+528) |       0(+0) |           0(+0) |
+| rtos\TARGET_CORTEX              |   16942(+16942) | 2298(+2298) |     4504(+4504) |
+| targets\TARGET_RENESAS          |   14988(+14988) |   177(+177) |       652(+652) |
+| Subtotals                       | 156018(+156018) | 4248(+4248) | 148902(+148902) |
+Total Static RAM memory (data + bss): 153150(+153150) bytes
+Total Flash memory (text + data): 160266(+160266) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/files/files.bin
+
+Memory map breakdown for built projects (values in Bytes):
+| name     | target    | toolchain | static_ram | total_flash |
+|----------|-----------|-----------|------------|-------------|
+| dirs     | VK_RZ_A1H | ARM       |     136530 |      161470 |
+| files    | VK_RZ_A1H | ARM       |     153150 |      160266 |
+| fopen    | VK_RZ_A1H | ARM       |     125929 |       69625 |
+| parallel | VK_RZ_A1H | ARM       |     127854 |      155853 |
+| seek     | VK_RZ_A1H | ARM       |     136502 |      164360 |
+
+
+Build successes:
+  * VK_RZ_A1H::ARM::MBED-BUILD
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-DIRS
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FILES
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FOPEN
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-PARALLEL
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-SEEK
+
+D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver>mbed test --compile -t IAR -m VK_RZ_A1H -n mbed-os-components-storage-blockdevice-component_rz_sdhi-tests*
+[mbed] Auto-installing missing Python modules...
+Building library mbed-build (VK_RZ_A1H, IAR)
+Scan: driver
+Copy: thread_lowpower_api.h
+Copy: lfs_util.h
+Copy: dvdec_iodefine.h
+Copy: cfg_rf_tunnel.h
+Copy: Nanostack.h
+Copy: ether_iodefine.h
+Copy: utest.h
+Copy: lcp.h
+Copy: thread_common.h
+Copy: DigitalOut.h
+Copy: CThunkBase.h
+Copy: ac_buffer_builder.h
+Copy: ns_types.h
+Copy: fhss.h
+Copy: wdt_iodefine.h
+Copy: rsa.h
+Copy: UBLOX_PPP_CellularPower.h
+Copy: pwmout_api.h
+Copy: mtu2_iodefine.h
+Copy: APN_db.h
+Copy: pana_header.h
+Copy: scif_iobitmask.h
+Copy: scif_iodefine.h
+Copy: LoRaMacChannelPlan.h
+Copy: PortNames.h
+Copy: mle_service_security.h
+Copy: fnet_stack.h
+Copy: thread_diagnostic.h
+Copy: pn512.h
+Copy: camellia.h
+Copy: Event.h
+Copy: intc_iobitmask.h
+Copy: fnet_dns_config.h
+Copy: ipv6_flow.h
+Copy: serial_mac_api.h
+Copy: FileHandle.h
+Copy: UARTSerial.h
+Copy: SlicingBlockDevice.h
+Copy: memp_std.h
+Copy: crypto.h
+Copy: net_polling_api.h
+Copy: neighbor_table_definition.h
+Copy: AT_CellularSMS.h
+Copy: ns_nvm_helper.h
+Copy: gpio_iobitmask.h
+Copy: fnv_hash.h
+Copy: rpl_mrhof.h
+Copy: ns_sha256.h
+Copy: tcpip.h
+Copy: LowPowerTimeout.h
+Copy: PPPCellularInterface.h
+Copy: fnet_arp.h
+Copy: socket.h
+Copy: version.h
+Copy: ssif_iodefine.h
+Copy: cipv6_fragmenter.h
+Copy: icmpv6.h
+Copy: PinNames.h
+Copy: platform_mbed.h
+Copy: fnet.h
+Copy: md5.h
+Copy: protocol_timer.h
+Copy: ac_stream.h
+Copy: upap.h
+Copy: mbed_preprocessor.h
+Copy: QUECTEL_M26_CellularPower.h
+Copy: QUECTEL_UG96_CellularNetwork.h
+Copy: utest_default_handlers.h
+Copy: KVMap.h
+Copy: UBLOX_PPP_CellularContext.h
+Copy: sn_config.h
+Copy: protocol.h
+Copy: DigitalInOut.h
+Copy: memp.h
+Copy: mem.h
+Copy: api.h
+Copy: thread_config.h
+Copy: ExhaustibleBlockDevice.h
+Copy: rtos.h
+Copy: integer.h
+Copy: QUECTEL_BC95_CellularSIM.h
+Copy: mle_service_frame_counter_table.h
+Copy: transceiver.h
+Copy: sockets.h
+Copy: thread_management_api.h
+Copy: ccm.h
+Copy: QUECTEL_M26_CellularStack.h
+Copy: sha256.h
+Copy: mbed.h
+Copy: Mutex.h
+Copy: ipv6_fragmentation.h
+Copy: dhcpv6_client_api.h
+Copy: thread_network_synch.h
+Copy: oid.h
+Copy: usb20_iodefine.h
+Copy: utest_case.h
+Copy: ws_neighbor_class.h
+Copy: wait_api.h
+Copy: pn512_types.h
+Copy: iodefine_typedef.h
+Copy: LWIPMemoryManager.h
+Copy: pn512_internal.h
+Copy: AT_CellularPower.h
+Copy: rpl_objective.h
+Copy: ppp_impl.h
+Copy: thread_joiner_application.h
+Copy: ppp.h
+Copy: CThunk.h
+Copy: thread_management_client.h
+Copy: NanostackRfPhyAtmel.h
+Copy: mac_helper.h
+Copy: mbed_events.h
+Copy: autoip.h
+Copy: lin_iodefine.h
+Copy: aesni.h
+Copy: ESP8266.h
+Copy: itm_api.h
+Copy: sn_coap_protocol_internal.h
+Copy: pn512_registers.h
+Copy: dmac_iodefine.h
+Copy: sys.h
+Copy: l2c_iodefine.h
+Copy: Kernel.h
+Copy: EMAC.h
+Copy: TableCRC.h
+Copy: mld6.h
+Copy: inet.h
+Copy: thread_nvm_store.h
+Copy: ip4.h
+Copy: DNS.h
+Copy: libDHCPv6.h
+Copy: nd_router_object.h
+Copy: ethernet_api.h
+Copy: VK_RZ_A1H.h
+Copy: tcp.h
+Copy: net_fhss.h
+Copy: unity_handler.h
+Copy: chap-md5.h
+Copy: mac_timer.h
+Copy: ip6.h
+Copy: thread_routing.h
+Copy: LoRaPHYCN779.h
+Copy: lwipopts.h
+Copy: compat-1.3.h
+Copy: FileSystemStore.h
+Copy: TELIT_HE910_CellularContext.h
+Copy: rpl_upward.h
+Copy: cfg_thread_full_end_device.h
+Copy: debug.h
+Copy: MeshInterfaceNanostack.h
+Copy: mbed_sleep.h
+Copy: net_rpl.h
+Copy: ac_buffer_reader.h
+Copy: ScopedRamExecutionLock.h
+Copy: Serial.h
+Copy: bsc_iodefine.h
+Copy: udp.h
+Copy: FileLike.h
+Copy: ScopedLock.h
+Copy: cfg_lowpan_router_ecc_release.h
+Copy: dhcp.h
+Copy: DHCPv6_server_service.h
+Copy: arm_hal_random.h
+Copy: ReadOnlyBlockDevice.h
+Copy: rf_driver_storage.h
+Copy: md4.h
+Copy: Socket.h
+Copy: LocalFileSystem.h
+Copy: GEMALTO_CINTERION_CellularStack.h
+Copy: nvstore.h
+Copy: disc_iodefine.h
+Copy: stats.h
+Copy: sn_coap_protocol.h
+Copy: ns_cmdline.h
+Copy: Driver_Storage.h
+Copy: NonCopyable.h
+Copy: ethernet_mac_api.h
+Copy: net_mle_api.h
+Copy: ns_mdns_api.h
+Copy: nd6.h
+Copy: ip4_frag.h
+Copy: ssl_internal.h
+Copy: blacklist.h
+Copy: platform_util.h
+Copy: nfc_common.h
+Copy: SimpleMessageParser.h
+Copy: ip.h
+Copy: etharp.h
+Copy: icmpv6_prefix.h
+Copy: md_internal.h
+Copy: PlatformMutex.h
+Copy: mac_fhss_callbacks.h
+Copy: border_router.h
+Copy: loraphy_target.h
+Copy: cfg_lowpan_border_router_rf_tunnel_ecc_release.h
+Copy: QUECTEL_M26.h
+Copy: lp_ticker_api.h
+Copy: LoRaPHYEU433.h
+Copy: dma_api.h
+Copy: sha1.h
+Copy: sio.h
+Copy: flash_api.h
+Copy: sha1.h
+Copy: riic_iobitmask.h
+Copy: SharedPtr.h
+Copy: diskio.h
+Copy: ostm_iobitmask.h
+Copy: LoRaPHYKR920.h
+Copy: net_pana_parameters_api.h
+Copy: pana_nvm.h
+Copy: mbed_power_mgmt.h
+Copy: HeapBlockDevice.h
+Copy: ipv6cp.h
+Copy: ns_list.h
+Copy: tcp_priv.h
+Copy: RtosTimer.h
+Copy: lorawan_types.h
+Copy: iphc_compress.h
+Copy: ssl_cache.h
+Copy: lwip_tcp_isn.h
+Copy: mac_filter_api.h
+Copy: protocol_6lowpan_bootstrap.h
+Copy: UBLOX_AT_CellularPower.h
+Copy: autoip.h
+Copy: arm_hal_phy.h
+Copy: lwip_errno.h
+Copy: CriticalSectionLock.h
+Copy: mbed_rtx_conf.h
+Copy: fnet_mdns_config.h
+Copy: fnet_netif.h
+Copy: network_lib.h
+Copy: SocketAddress.h
+Copy: rpl_structures.h
+Copy: cfg_lowpan_router_ecc.h
+Copy: ns_error_types.h
+Copy: QUECTEL_BG96_CellularContext.h
+Copy: TimerEvent.h
+Copy: lvds_iodefine.h
+Copy: beacon_handler.h
+Copy: rtc_time.h
+Copy: virtual_rf_defines.h
+Copy: utest_stack_trace.h
+Copy: md2.h
+Copy: ns_buffer.h
+Copy: memory_buffer_alloc.h
+Copy: utest_specification.h
+Copy: bsc_iobitmask.h
+Copy: ip.h
+Copy: AT_CellularContext.h
+Copy: NFCControllerDriver.h
+Copy: pn512_callback.h
+Copy: init.h
+Copy: mesh_interface_types.h
+Copy: MCR20Reg.h
+Copy: vj.h
+Copy: cmsis_gcc.h
+Copy: pn512_rf.h
+Copy: PortIn.h
+Copy: spibsc_iodefine.h
+Copy: SystemStorage.h
+Copy: Timer.h
+Copy: dev_drv.h
+Copy: AnalogIn.h
+Copy: error.h
+Copy: mac_pd_sap.h
+Copy: rtos_idle.h
+Copy: mld6.h
+Copy: fnet_icmp6.h
+Copy: fnet_services.h
+Copy: LowPowerTimer.h
+Copy: TELIT_HE910_CellularNetwork.h
+Copy: BusInOut.h
+Copy: load_balance_api.h
+Copy: mbed_rtos_storage.h
+Copy: mpu_api.h
+Copy: LoRaPHYUS915.h
+Copy: cfg_thread_end_device.h
+Copy: config-no-entropy.h
+Copy: coap_service_api.h
+Copy: randLIB.h
+Copy: protocol_ipv6.h
+Copy: coap_service_api_internal.h
+Copy: fhss_channel.h
+Copy: mbed_rtos1_types.h
+Copy: at24mac.h
+Copy: CellularSIM.h
+Copy: pana_internal_api.h
+Copy: irq_ctrl.h
+Copy: buffer.h
+Copy: cfg_lowpan_border_router_rf_tunnel_ecc.h
+Copy: NanostackEthernetInterface.h
+Copy: trng_api.h
+Copy: spm_api.h
+Copy: fhss_common.h
+Copy: thread_commissioning_if.h
+Copy: InterruptIn.h
+Copy: ecdsa.h
+Copy: md4.h
+Copy: Text.h
+Copy: ChainingBlockDevice.h
+Copy: pppol2tp.h
+Copy: cpg_iobitmask.h
+Copy: mtu2.h
+Copy: utest_types.h
+Copy: etx.h
+Copy: NanostackEMACInterface.h
+Copy: OnboardNetworkStack.h
+Copy: rscan0_iodefine.h
+Copy: GEMALTO_CINTERION_CellularContext.h
+Copy: RZ_SDHIBlockDevice.hpp
+Copy: pn512_cmd.h
+Copy: mppe.h
+Copy: ns_address.h
+Copy: mac_ie_lib.h
+Copy: thread_management_internal.h
+Copy: mbed_poll.h
+Copy: ns_virtual_rf_api.h
+Copy: UARTCellularInterface.h
+Copy: QUECTEL_BG96_CellularPower.h
+Copy: DTLSSocketWrapper.h
+Copy: thread_tasklet.h
+Copy: semihost_api.h
+Copy: lowpan6_opts.h
+Copy: thread_neighbor_class.h
+Copy: PortOut.h
+Copy: pppos.h
+Copy: isodep.h
+Copy: lfs.h
+Copy: EventQueue.h
+Copy: flctl_iodefine.h
+Copy: DeepSleepLock.h
+Copy: mlme.h
+Copy: rtx_core_ca.h
+Copy: thread_border_router_api_internal.h
+Copy: fsm.h
+Copy: LoRaMacCommand.h
+Copy: qspi_api.h
+Copy: Driver_Common.h
+Copy: thread_lowpower_private_api.h
+Copy: CellularDevice.h
+Copy: ATCmdParser.h
+Copy: protocol_stats.h
+Copy: isodep_target.h
+Copy: md.h
+Copy: pana.h
+Copy: ws_bootstrap.h
+Copy: ceu_iodefine.h
+Copy: pn512_hw.h
+Copy: mac_common_defines.h
+Copy: cfg_thread_router.h
+Copy: pkcs11.h
+Copy: ecp.h
+Copy: FlashIAP.h
+Copy: LoRaMacCrypto.h
+Copy: cmsis_compiler.h
+Copy: socket_api.h
+Copy: InterruptManager.h
+Copy: rtc_api.h
+Copy: ip6.h
+Copy: cipv6.h
+Copy: channel_functions.h
+Copy: rpl_protocol.h
+Copy: nist_kw.h
+Copy: PeripheralPins.h
+Copy: pfv_iodefine.h
+Copy: net_nwk_scan.h
+Copy: arm_hal_timer.h
+Copy: cmsis_armcc.h
+Copy: ns_crc.h
+Copy: unity_internals.h
+Copy: rpl_downward.h
+Copy: WiFiAccessPoint.h
+Copy: Timeout.h
+Copy: InternetSocket.h
+Copy: CellularBase.h
+Copy: ppp_opts.h
+Copy: mbed_critical.h
+Copy: BufferedBlockDevice.h
+Copy: ssl_ticket.h
+Copy: ccp.h
+Copy: ecp.h
+Copy: pn512_timer.h
+Copy: fhss_api.h
+Copy: mpl.h
+Copy: rtc_iodefine.h
+Copy: pn512_irq.h
+Copy: device.h
+Copy: common_functions.h
+Copy: thread_dhcpv6_server.h
+Copy: SerialBase.h
+Copy: NFC.h
+Copy: mbed_error.h
+Copy: ns_event_loop.h
+Copy: BusOut.h
+Copy: Dir.h
+Copy: RecordParser.h
+Copy: crypto_extra.h
+Copy: NanostackMemoryManager.h
+Copy: mbed_rtc_time.h
+Copy: ns_timer.h
+Copy: riic_iodefine.h
+Copy: NanostackRfPhyMcr20a.h
+Copy: dmac_iobitmask.h
+Copy: spi_api.h
+Copy: NFCNDEFCapable.h
+Copy: igmp.h
+Copy: nd_defines.h
+Copy: xtea.h
+Copy: pwm_iodefine.h
+Copy: chachapoly.h
+Copy: perf.h
+Copy: LoRaPHYEU868.h
+Copy: nsdynmemLIB.h
+Copy: PeripheralNames.h
+Copy: ip.h
+Copy: event.h
+Copy: sleep_api.h
+Copy: FileBase.h
+Copy: jcu_iodefine.h
+Copy: ThreadInterface.h
+Copy: EthernetInterface.h
+Copy: URI.h
+Copy: rpl_data.h
+Copy: CellularPower.h
+Copy: nfc_errors.h
+Copy: core_ca.h
+Copy: eap_protocol.h
+Copy: SARA4_PPP_CellularNetwork.h
+Copy: TELIT_HE910_CellularPower.h
+Copy: RZ_A1_Init.h
+Copy: CellularSMS.h
+Copy: mac_indirect_data.h
+Copy: UBLOX_PPP_CellularNetwork.h
+Copy: dhcp6.h
+Copy: NFCEEPROMDriver.h
+Copy: thread_diagcop_lib.h
+Copy: slipif.h
+Copy: arm_hal_aes.h
+Copy: AnalogOut.h
+Copy: SARA4_PPP_CellularContext.h
+Copy: blowfish.h
+Copy: NFCTarget.h
+Copy: AT_CellularDevice.h
+Copy: lowpan_context.h
+Copy: toolchain.h
+Copy: net_sleep.h
+Copy: net_6lowpan_parameter_api.h
+Copy: TCPServer.h
+Copy: NanostackEthernetPhy.h
+Copy: rpl_policy.h
+Copy: pem.h
+Copy: ieb_iodefine.h
+Copy: TLSSocket.h
+Copy: NFCController.h
+Copy: mbed_cmsis_conf.h
+Copy: ConditionVariable.h
+Copy: protocol_abstract.h
+Copy: cfg_local_socket.h
+Copy: thread_management_server.h
+Copy: magic.h
+Copy: hmac_drbg.h
+Copy: inet_chksum.h
+Copy: memp_priv.h
+Copy: ccmLIB.h
+Copy: udp.h
+Copy: rsa_internal.h
+Copy: CellularStateMachine.h
+Copy: wisun_tasklet.h
+Copy: trickle.h
+Copy: us_ticker_api.h
+Copy: cfg_generic.h
+Copy: thread_net_config_api.h
+Copy: platform.h
+Copy: cfg_thread_end_device.h
+Copy: MessageParser.h
+Copy: mlb_iodefine.h
+Copy: mbed_error_hist.h
+Copy: fnet_timer.h
+Copy: padlock.h
+Copy: ecjpake.h
+Copy: NetworkInterface.h
+Copy: ws_management_api.h
+Copy: des.h
+Copy: intc_iodefine.h
+Copy: net_ipv6_api.h
+Copy: CellularContext.h
+Copy: ip6_addr.h
+Copy: dhcp_service_api.h
+Copy: BusIn.h
+Copy: fhss_ws.h
+Copy: cfg_thread_full_end_device.h
+Copy: s2lpReg.h
+Copy: fnet_dns.h
+Copy: MCR20Drv.h
+Copy: RawSerial.h
+Copy: mbed_shared_queues.h
+Copy: config.h
+Copy: rza1_emac.h
+Copy: check_config.h
+Copy: sec_lib_definitions.h
+Copy: DeviceKey.h
+Copy: QUECTEL_BC95_CellularContext.h
+Copy: ethip6.h
+Copy: QUECTEL_BG96_CellularNetwork.h
+Copy: usb_iobitmask.h
+Copy: NFCRemoteEndpoint.h
+Copy: Thread.h
+Copy: i2c_api.h
+Copy: platform_time.h
+Copy: platform.h
+Copy: thread_router_bootstrap.h
+Copy: UBLOX_AT.h
+Copy: fnet_assert.h
+Copy: TLSSocketWrapper.h
+Copy: adc_iodefine.h
+Copy: TELIT_HE910.h
+Copy: iodefine.h
+Copy: Type4RemoteInitiator.h
+Copy: cfg_thread_border_router.h
+Copy: equeue_platform.h
+Copy: AT_CellularBase.h
+Copy: thread_commissioning_api.h
+Copy: SARA4_PPP.h
+Copy: fnet_inet.h
+Copy: sockbuf.h
+Copy: mbed_mpu_mgmt.h
+Copy: iso7816_defs.h
+Copy: NFCEEPROM.h
+Copy: ipv6.h
+Copy: poly1305.h
+Copy: EventFlags.h
+Copy: nsapi_ppp.h
+Copy: iphc_decompress.h
+Copy: rf_configuration.h
+Copy: asn1.h
+Copy: rza_io_regrw.h
+Copy: igmp.h
+Copy: net.h
+Copy: NFCRemoteInitiator.h
+Copy: ppp_lwip.h
+Copy: rtx_evr.h
+Copy: nd_proxy.h
+Copy: scux_iodefine.h
+Copy: protocol_6lowpan_interface.h
+Copy: chap_ms.h
+Copy: rtos_handlers.h
+Copy: nfc_debug.h
+Copy: cfg_lowpan_router.h
+Copy: Callback.h
+Copy: fnet_debug.h
+Copy: mbed_rtx.h
+Copy: mbed_wait_api.h
+Copy: hkdf.h
+Copy: Queue.h
+Copy: DigitalIn.h
+Copy: PwmOut.h
+Copy: dhm.h
+Copy: fnet_socket.h
+Copy: sha512.h
+Copy: timing.h
+Copy: netifapi.h
+Copy: ecp_internal.h
+Copy: ac_debug.h
+Copy: rspi_iobitmask.h
+Copy: cfg_lowpan_border_router.h
+Copy: Stream.h
+Copy: ns_fnet_types.h
+Copy: iso7816_app.h
+Copy: ns_fnet_events.h
+Copy: tcp.h
+Copy: mbed_application.h
+Copy: net_thread_test.h
+Copy: gpio_addrdefine.h
+Copy: enet_tasklet.h
+Copy: MeshInterface.h
+Copy: coap_message_handler.h
+Copy: QUECTEL_UG96_CellularPower.h
+Copy: multicast_api.h
+Copy: fnet_dns_prv.h
+Copy: reg32_t.h
+Copy: DTLSSocket.h
+Copy: channel_list.h
+Copy: thread_extension_bootstrap.h
+Copy: PortInOut.h
+Copy: os_whiteboard.h
+Copy: cmsis_nvic.h
+Copy: nsapi_dns.h
+Copy: FATFileSystem.h
+Copy: cfg_thread_thci.h
+Copy: mle_tlv.h
+Copy: mle_service_buffer.h
+Copy: fnet_ip.h
+Copy: CellularLog.h
+Copy: cfg_lowpan_border_router.h
+Copy: sdif.h
+Copy: UDPSocket.h
+Copy: sdhi_iodefine.h
+Copy: icmp.h
+Copy: AT_CellularSIM.h
+Copy: LoWPANNDInterface.h
+Copy: lwip_random.h
+Copy: lwip_ethernet.h
+Copy: irda_iodefine.h
+Copy: util.h
+Copy: crypto_platform.h
+Copy: ip6string.h
+Copy: snmp.h
+Copy: EthInterface.h
+Copy: pppoe.h
+Copy: mbed_interface.h
+Copy: ip4_addr.h
+Copy: whiteboard_api.h
+Copy: pk.h
+Copy: fnet_cpu.h
+Copy: LoRaPHYCN470.h
+Copy: ipv6_constants.h
+Copy: arc4.h
+Copy: base64.h
+Copy: tcp.h
+Copy: net_sockets.h
+Copy: cfg_ethernet.h
+Copy: LoRaPHYAS923.h
+Copy: mbed_assert.h
+Copy: NanostackRfPhy.h
+Copy: fnet_timer_prv.h
+Copy: CellularNetwork.h
+Copy: CellularList.h
+Copy: fnet_nd6.h
+Copy: mesh_system.h
+Copy: rtx_os.h
+Copy: QUECTEL_BC95_CellularNetwork.h
+Copy: net_address_extension.h
+Copy: mbed_debug.h
+Copy: shalib.h
+Copy: ipv6_resolution.h
+Copy: sleep.h
+Copy: eventloop_config.h
+Copy: platform_alt.h
+Copy: net_test_api.h
+Copy: Transaction.h
+Copy: etharp.h
+Copy: AT_CellularNetwork.h
+Copy: GEMALTO_CINTERION_CellularNetwork.h
+Copy: ripemd160.h
+Copy: fnet_user_config.h
+Copy: cfg_thread_router.h
+Copy: dns.h
+Copy: cfg_lowpan_border_router_rf_tunnel.h
+Copy: mbed_drv_cfg.h
+Copy: fnet_netbuf.h
+Copy: mle_service_interface.h
+Copy: sd_cfg.h
+Copy: ecdh.h
+Copy: greentea_metrics.h
+Copy: spibsc.h
+Copy: PN512Driver.h
+Copy: coap_security_handler.h
+Copy: arm_hal_interrupt_private.h
+Copy: CAN.h
+Copy: objects.h
+Copy: rpl_control.h
+Copy: certs.h
+Copy: ObservingBlockDevice.h
+Copy: tls_lib.h
+Copy: QUECTEL_BC95.h
+Copy: pana_relay_table.h
+Copy: ssl.h
+Copy: nwk_stats_api.h
+Copy: QUECTEL_BG96_CellularSIM.h
+Copy: utest_shim.h
+Copy: crypto_sizes.h
+Copy: netif.h
+Copy: thread_network_data_storage.h
+Copy: unity_config.h
+Copy: thread_mdns.h
+Copy: PN512TransportDriver.h
+Copy: ws_common_defines.h
+Copy: mbed_trace.h
+Copy: mbed_crash_data_offsets.h
+Copy: CellularTargets.h
+Copy: asn1write.h
+Copy: TDBStore.h
+Copy: whiteboard.h
+Copy: raw.h
+Copy: ip_fsc.h
+Copy: protocol_6lowpan.h
+Copy: utest_scheduler.h
+Copy: CellularCommon.h
+Copy: mac_data_poll.h
+Copy: pppdebug.h
+Copy: fnet_comp_config.h
+Copy: SecureStore.h
+Copy: ip4string.h
+Copy: bignum.h
+Copy: fnet_ip6.h
+Copy: ipcp.h
+Copy: ns_hal_init.h
+Copy: nd_tasklet.h
+Copy: QUECTEL_M26_CellularSIM.h
+Copy: entropy.h
+Copy: PN512SPITransportDriver.h
+Copy: ssl_ciphersuites.h
+Copy: arc4.h
+Copy: fnet_stack_config.h
+Copy: thread_bootstrap.h
+Copy: EMACMemoryManager.h
+Copy: bn_mul.h
+Copy: rtx_core_cm.h
+Copy: coap_connection_handler.h
+Copy: XcvrSpi.h
+Copy: gpio_api.h
+Copy: thread_dhcpv6_server.h
+Copy: sw_mac.h
+Copy: thread_management_if.h
+Copy: QUECTEL_BG96.h
+Copy: ip4.h
+Copy: greentea_serial.h
+Copy: gpio_object.h
+Copy: net_interface.h
+Copy: fnet_comp.h
+Copy: SPI.h
+Copy: mbed_mktime.h
+Copy: net_load_balance_api.h
+Copy: LittleFileSystem.h
+Copy: fnet_mdns.h
+Copy: ndef.h
+Copy: inb_iodefine.h
+Copy: mld.h
+Copy: pan_blacklist_api.h
+Copy: eventOS_event.h
+Copy: UBLOX_AT_CellularStack.h
+Copy: ostm_iodefine.h
+Copy: port_api.h
+Copy: cipher_internal.h
+Copy: SPISlave.h
+Copy: nd6.h
+Copy: critical_section_api.h
+Copy: eui64.h
+Copy: FileSystemLike.h
+Copy: ipv6_routing_table.h
+Copy: nwk_nvm.h
+Copy: ip_addr.h
+Copy: icmp6.h
+Copy: mac_defines.h
+Copy: QUECTEL_UG96_CellularContext.h
+Copy: fhss_config.h
+Copy: x509.h
+Copy: topo_trace.h
+Copy: thread_extension.h
+Copy: lwip_ethernet.h
+Copy: aes.h
+Copy: thread_nd.h
+Copy: cfg_thread_border_router.h
+Copy: cmsis_os2.h
+Copy: aria.h
+Copy: chacha20.h
+Copy: WiFiInterface.h
+Copy: mac_mcps.h
+Copy: ac_buffer.h
+Copy: MBRBlockDevice.h
+Copy: LWIPStack.h
+Copy: eap.h
+Copy: des.h
+Copy: protocols.h
+Copy: pk_internal.h
+Copy: ESP8266Interface.h
+Copy: mac_header_helper_functions.h
+Copy: mbed_retarget.h
+Copy: LoRaWANBase.h
+Copy: kvstore_global_api.h
+Copy: NFCDefinitions.h
+Copy: thread_border_router_api.h
+Copy: pppcrypt.h
+Copy: ip6_frag.h
+Copy: x509_crt.h
+Copy: ac_macros.h
+Copy: mac_filter.h
+Copy: thread_tmfcop_lib.h
+Copy: eventOS_scheduler.h
+Copy: mac_mlme.h
+Copy: icmp6.h
+Copy: SARA4_PPP_CellularPower.h
+Copy: nvic_wrapper.h
+Copy: pkcs5.h
+Copy: pana_eap_header.h
+Copy: Ticker.h
+Copy: mbed_mem_trace.h
+Copy: cipher.h
+Copy: udp.h
+Copy: thread_resolution_client.h
+Copy: lora_phy_ds.h
+Copy: CellularUtil.h
+Copy: QUECTEL_M26_CellularNetwork.h
+Copy: entropy_poll.h
+Copy: CircularBuffer.h
+Copy: thread_bbr_api.h
+Copy: chap-new.h
+Copy: LoRaPHY.h
+Copy: eventOS_callback_timer.h
+Copy: arch.h
+Copy: I2C.h
+Copy: os_tick.h
+Copy: cfg_lowpan_host.h
+Copy: debug.h
+Copy: mbed_lp_ticker_wrapper.h
+Copy: md5.h
+Copy: fnet_poll.h
+Copy: fnet_eth.h
+Copy: fnet_error.h
+Copy: LoRaRadio.h
+Copy: RTE_Components.h
+Copy: ScopedRomWriteLock.h
+Copy: thread_beacon.h
+Copy: mesh.h
+Copy: cfg_rf_interface.h
+Copy: Mail.h
+Copy: ATHandler.h
+Copy: nfc_transport.h
+Copy: QUECTEL_BG96_CellularStack.h
+Copy: SocketStats.h
+Copy: nd6_priv.h
+Copy: onboard_modem_api.h
+Copy: tls_ccm_crypt.h
+Copy: callback_handler.h
+Copy: sec_lib.h
+Copy: pn512_transceive.h
+Copy: address.h
+Copy: Mime.h
+Copy: ssl_cookie.h
+Copy: thread_mle_message_handler.h
+Copy: eventOS_event_timer.h
+Copy: mac_security_mib.h
+Copy: FunctionPointer.h
+Copy: vfp_neon_push_pop.h
+Copy: fnet_stdlib.h
+Copy: NanostackPhy.h
+Copy: opt.h
+Copy: critical.h
+Copy: dhcp.h
+Copy: gpio_iodefine.h
+Copy: unity.h
+Copy: pn512_poll.h
+Copy: KVStore.h
+Copy: mle_service_api.h
+Copy: mac_mcps_sap.h
+Copy: lorawan_data_structures.h
+Copy: cca_api.h
+Copy: fhss_statistics.h
+Copy: sys_arch.h
+Copy: net_load_balance_internal.h
+Copy: sn_coap_header.h
+Copy: can_api.h
+Copy: x509_crl.h
+Copy: AT86RFReg.h
+Copy: NetworkStack.h
+Copy: analogout_api.h
+Copy: fnet_serial_config.h
+Copy: BlockDevice.h
+Copy: x509_csr.h
+Copy: LoRaPHYAU915.h
+Copy: netbuf.h
+Copy: threading.h
+Copy: ffconf.h
+Copy: dns.h
+Copy: fnet_isr.h
+Copy: arm_hal_nvm.h
+Copy: pinmap.h
+Copy: QUECTEL_BC95_CellularPower.h
+Copy: serial_api.h
+Copy: SysTimer.h
+Copy: mac_neighbor_table.h
+Copy: cfg_lowpan_host.h
+Copy: mmc_iodefine.h
+Copy: cmsis_iccarm.h
+Copy: CellularInformation.h
+Copy: mac_response_handler.h
+Copy: MbedCRC.h
+Copy: scim_iodefine.h
+Copy: ws_common.h
+Copy: mac_pairwise_key.h
+Copy: WisunInterface.h
+Copy: test_env.h
+Copy: ctr_drbg.h
+Copy: system_VK_RZ_A1H.h
+Copy: thread_extension_bbr.h
+Copy: rtx_core_c.h
+Copy: cfg_nanostack_full_debug.h
+Copy: thread_resolution_server.h
+Copy: cmac.h
+Copy: LoRaWANTimer.h
+Copy: cmsis_cp15.h
+Copy: timeouts.h
+Copy: mbed_boot.h
+Copy: rtx_lib.h
+Copy: thread_network_data_lib.h
+Copy: mbed_semihost_api.h
+Copy: NanostackRfInterface.h
+Copy: arm_hal_interrupt.h
+Copy: transceiver_internal.h
+Copy: mbed_toolchain.h
+Copy: LowPowerTickerWrapper.h
+Copy: thread_discovery.h
+Copy: thread_leader_service.h
+Copy: cfg_lowpan_router.h
+Copy: rpl_of0.h
+Copy: sw_mac_internal.h
+Copy: nsapi_types.h
+Copy: FlashSimBlockDevice.h
+Copy: libDHCPv6_server.h
+Copy: fnet_services_config.h
+Copy: havege.h
+Copy: romdec_iodefine.h
+Copy: cc.h
+Copy: pppapi.h
+Copy: UBLOX_AT_CellularNetwork.h
+Copy: sn_coap_header_internal.h
+Copy: DirHandle.h
+Copy: SerialWireOutput.h
+Copy: Span.h
+Copy: fnet_mempool.h
+Copy: ns_event_loop_mutex.h
+Copy: GEMALTO_CINTERION.h
+Copy: r_typedefs.h
+Copy: CallChain.h
+Copy: Ethernet.h
+Copy: LoRaPHYIN865.h
+Copy: lowpan_adaptation_interface.h
+Copy: Record.h
+Copy: mbed_stats.h
+Copy: timer_sys.h
+Copy: thread_meshcop_lib.h
+Copy: NanostackRfPhys2lp.h
+Copy: crc_api.h
+Copy: rspi_iodefine.h
+Copy: VKRZA1H.h
+Copy: QUECTEL_UG96.h
+Copy: pkcs12.h
+Copy: iso7816.h
+Copy: analogin_api.h
+Copy: OnboardCellularInterface.h
+Copy: def.h
+Copy: lowpan6.h
+Copy: cpg_iodefine.h
+Copy: ff.h
+Copy: etharp.h
+Copy: LoRaMac.h
+Copy: LoRaWANStack.h
+Copy: FileSystemHandle.h
+Copy: ProfilingBlockDevice.h
+Copy: vdc5_iodefine.h
+Copy: cmsis_armclang.h
+Copy: TCPSocket.h
+Copy: netdb.h
+Copy: pbuf.h
+Copy: icmpv6_radv.h
+Copy: fhss_ws_extension.h
+Copy: MemoryPool.h
+Copy: UBLOX_AT_CellularContext.h
+Copy: RTX_Config.h
+Copy: nsapi.h
+Copy: kv_config.h
+Copy: LoRaWANInterface.h
+Copy: err.h
+Copy: NanostackInterface.h
+Copy: QSPI.h
+Copy: ns_trace.h
+Copy: mbed_filesystem.h
+Copy: isqrt.h
+Copy: api_msg.h
+Copy: AT_CellularInformation.h
+Copy: AT_CellularStack.h
+Copy: ethernetext_api.h
+Copy: File.h
+Copy: crypto_driver.h
+Copy: nsconfig.h
+Copy: can_helper.h
+Copy: mac_api.h
+Copy: pana_avp.h
+Copy: ns_file_system.h
+Copy: net_nvm_api.h
+Copy: mtu2_iobitmask.h
+Copy: icmp.h
+Copy: gpio_irq_api.h
+Copy: SingletonPtr.h
+Copy: NanostackLockGuard.h
+Copy: cmsis.h
+Copy: type4_target.h
+Copy: thread_address_registration_client.h
+Copy: QUECTEL_BC95_CellularStack.h
+Copy: mbed_version.h
+Copy: MessageBuilder.h
+Copy: fnet_serial.h
+Copy: MCR20Overwrites.h
+Copy: FileSystem.h
+Copy: LowPowerTicker.h
+Copy: equeue.h
+Copy: utest_serial.h
+Copy: cmsis_os.h
+Copy: QUECTEL_M26_CellularContext.h
+Copy: psa_util.h
+Copy: DirectAccessDevicekey.h
+Copy: tcpip_priv.h
+Copy: thread_host_bootstrap.h
+Copy: EMACInterface.h
+Copy: cfg_ethernet_host.h
+Copy: Semaphore.h
+Copy: mpx_api.h
+Copy: I2CSlave.h
+Copy: thread_constants.h
+Copy: utest_harness.h
+Copy: gcm.h
+Copy: spdif_iodefine.h
+Copy: nfc_scheduler.h
+Copy: fnet_netif_prv.h
+Copy: cfg_nanostack_full.h
+Copy: thread_bbr_api_internal.h
+Copy: ThisThread.h
+Copy: ticker_api.h
+Copy: fnet_config.h
+Copy: FilePath.h
+Copy: mle.h
+Copy: sdg_iodefine.h
+Copy: UBLOX_PPP.h
+Copy: lib_RZ_A1H_sd_driver.a
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: targets.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: doxygen_options.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: mbed_lib.json
+Copy: VKRZA1H.icf
+Compile [  0.1%]: cmain.S
+Compile [  0.3%]: rf_configuration.c
+Compile [  0.4%]: MCR20Drv.c
+Compile [  0.6%]: irq_ctrl_gic.c
+Compile [  0.7%]: at24mac.cpp
+Compile [  0.9%]: sdhi_low.c
+Compile [  1.0%]: AnalogIn.cpp
+Compile [  1.1%]: NanostackRfPhyMcr20a.cpp
+[Warning] NanostackRfPhyMcr20a.cpp@392,14: [Pe177]: function "rf_ack_wait_timer_stop" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@779,14: [Pe177]: function "rf_on" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@601,14: [Pe177]: function "rf_poll_trx_state_change" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@415,14: [Pe177]: function "rf_set_mac_address" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@691,14: [Pe177]: function "rf_cca_abort" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@403,16: [Pe177]: function "rf_read_mac_address" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@300,14: [Pe177]: function "rf_read_random" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@768,14: [Pe177]: function "rf_calibration_cb" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@1054,14: [Pe177]: function "rf_init_phy_mode" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@328,14: [Pe177]: function "rf_calibration_timer_interrupt" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@368,14: [Pe177]: function "rf_calibration_timer_start" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@339,14: [Pe177]: function "rf_cca_timer_interrupt" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@380,18: [Pe177]: function "rf_cca_timer_start" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@420,16: [Pe177]: function "rf_get_phy_mtu_size" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@885,17: [Pe177]: function "rf_tx_power_set" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@906,16: [Pe177]: function "rf_tx_power_get" was declared but never referenced
+[Warning] NanostackRfPhyMcr20a.cpp@918,0: [Pe177]: function "rf_enable_antenna_diversity" was declared but never referenced
+Compile [  1.3%]: NanostackRfPhyAtmel.cpp
+Compile [  1.4%]: BusIn.cpp
+Compile [  1.6%]: NanostackRfPhys2lp.cpp
+Compile [  1.7%]: ESP8266Interface.cpp
+Compile [  1.9%]: BusInOut.cpp
+Compile [  2.0%]: BusOut.cpp
+Compile [  2.1%]: Ethernet.cpp
+Compile [  2.3%]: ESP8266.cpp
+Compile [  2.4%]: FlashIAP.cpp
+Compile [  2.6%]: CAN.cpp
+Compile [  2.7%]: InterruptManager.cpp
+Compile [  2.9%]: I2CSlave.cpp
+Compile [  3.0%]: MbedCRC.cpp
+Compile [  3.1%]: I2C.cpp
+Compile [  3.3%]: InterruptIn.cpp
+Compile [  3.4%]: QSPI.cpp
+Compile [  3.6%]: TableCRC.cpp
+Compile [  3.7%]: SPISlave.cpp
+Compile [  3.9%]: RawSerial.cpp
+Compile [  4.0%]: Serial.cpp
+Compile [  4.1%]: RZ_SDHIBlockDevice.cpp
+Compile [  4.3%]: Ticker.cpp
+Compile [  4.4%]: SPI.cpp
+Compile [  4.6%]: Timeout.cpp
+Compile [  4.7%]: TimerEvent.cpp
+Compile [  4.9%]: Timer.cpp
+Compile [  5.0%]: equeue_posix.c
+Compile [  5.1%]: SerialBase.cpp
+Compile [  5.3%]: EventQueue.cpp
+Compile [  5.4%]: equeue.c
+Compile [  5.6%]: mbed_shared_queues.cpp
+Compile [  5.7%]: AT_CellularBase.cpp
+Compile [  5.9%]: equeue_mbed.cpp
+Compile [  6.0%]: UARTSerial.cpp
+Compile [  6.1%]: AT_CellularInformation.cpp
+Compile [  6.3%]: AT_CellularSIM.cpp
+Compile [  6.4%]: AT_CellularPower.cpp
+Compile [  6.6%]: CellularLog.cpp
+Compile [  6.7%]: AT_CellularDevice.cpp
+Compile [  6.9%]: AT_CellularNetwork.cpp
+Compile [  7.0%]: AT_CellularStack.cpp
+Compile [  7.1%]: CellularUtil.cpp
+Compile [  7.3%]: CellularContext.cpp
+Compile [  7.4%]: AT_CellularContext.cpp
+Compile [  7.6%]: ATHandler.cpp
+Compile [  7.7%]: GEMALTO_CINTERION.cpp
+Compile [  7.9%]: GEMALTO_CINTERION_CellularContext.cpp
+Compile [  8.0%]: GEMALTO_CINTERION_CellularNetwork.cpp
+Compile [  8.1%]: AT_CellularSMS.cpp
+Compile [  8.3%]: CellularDevice.cpp
+Compile [  8.4%]: SARA4_PPP.cpp
+Compile [  8.6%]: SARA4_PPP_CellularNetwork.cpp
+Compile [  8.7%]: SARA4_PPP_CellularContext.cpp
+Compile [  8.9%]: SARA4_PPP_CellularPower.cpp
+Compile [  9.0%]: QUECTEL_BC95.cpp
+Compile [  9.1%]: QUECTEL_BC95_CellularNetwork.cpp
+Compile [  9.3%]: GEMALTO_CINTERION_CellularStack.cpp
+Compile [  9.4%]: QUECTEL_BC95_CellularPower.cpp
+Compile [  9.6%]: QUECTEL_BC95_CellularContext.cpp
+Compile [  9.7%]: QUECTEL_BC95_CellularSIM.cpp
+Compile [  9.9%]: CellularStateMachine.cpp
+Compile [ 10.0%]: QUECTEL_BG96.cpp
+Compile [ 10.1%]: QUECTEL_BC95_CellularStack.cpp
+Compile [ 10.3%]: QUECTEL_BG96_CellularPower.cpp
+Compile [ 10.4%]: QUECTEL_BG96_CellularContext.cpp
+Compile [ 10.6%]: QUECTEL_BG96_CellularSIM.cpp
+Compile [ 10.7%]: QUECTEL_BG96_CellularNetwork.cpp
+Compile [ 10.9%]: QUECTEL_M26.cpp
+Compile [ 11.0%]: QUECTEL_M26_CellularNetwork.cpp
+Compile [ 11.1%]: QUECTEL_M26_CellularContext.cpp
+Compile [ 11.3%]: QUECTEL_M26_CellularPower.cpp
+Compile [ 11.4%]: QUECTEL_M26_CellularSIM.cpp
+Compile [ 11.6%]: QUECTEL_UG96.cpp
+Compile [ 11.7%]: QUECTEL_BG96_CellularStack.cpp
+Compile [ 11.9%]: QUECTEL_UG96_CellularContext.cpp
+Compile [ 12.0%]: QUECTEL_UG96_CellularNetwork.cpp
+Compile [ 12.1%]: QUECTEL_UG96_CellularPower.cpp
+Compile [ 12.3%]: QUECTEL_M26_CellularStack.cpp
+[Warning] QUECTEL_M26_CellularStack.cpp@367,0: [Pe550]: variable "sent_acked" was set but never used
+Compile [ 12.4%]: TELIT_HE910_CellularNetwork.cpp
+Compile [ 12.6%]: TELIT_HE910.cpp
+Compile [ 12.7%]: TELIT_HE910_CellularPower.cpp
+Compile [ 12.9%]: TELIT_HE910_CellularContext.cpp
+Compile [ 13.0%]: UBLOX_AT.cpp
+Compile [ 13.1%]: UBLOX_AT_CellularNetwork.cpp
+Compile [ 13.3%]: UBLOX_AT_CellularPower.cpp
+Compile [ 13.4%]: DeviceKey.cpp
+Compile [ 13.6%]: UBLOX_PPP_CellularNetwork.cpp
+Compile [ 13.7%]: UBLOX_PPP_CellularContext.cpp
+Compile [ 13.9%]: UBLOX_PPP.cpp
+Compile [ 14.0%]: greentea_metrics.cpp
+Compile [ 14.1%]: randLIB.c
+Compile [ 14.3%]: UBLOX_PPP_CellularPower.cpp
+Compile [ 14.4%]: UBLOX_AT_CellularContext.cpp
+Compile [ 14.6%]: sn_coap_header_check.c
+Compile [ 14.7%]: greentea_serial.cpp
+Compile [ 14.9%]: ip_fsc.c
+Compile [ 15.0%]: sn_coap_builder.c
+Compile [ 15.1%]: UBLOX_AT_CellularStack.cpp
+Compile [ 15.3%]: greentea_test_env.cpp
+Compile [ 15.4%]: sn_coap_parser.c
+Compile [ 15.6%]: mbed_trace.c
+Compile [ 15.7%]: ns_list.c
+Compile [ 15.9%]: sn_coap_protocol.c
+Compile [ 16.0%]: ip4tos.c
+Compile [ 16.1%]: common_functions.c
+Compile [ 16.3%]: stoip4.c
+Compile [ 16.4%]: ip6tos.c
+Compile [ 16.6%]: stoip6.c
+Compile [ 16.7%]: ns_nvm_helper.c
+Compile [ 16.9%]: nsdynmemLIB.c
+Compile [ 17.0%]: mbed-utest-shim.cpp
+Compile [ 17.1%]: unity_handler.cpp
+Compile [ 17.3%]: ns_cmdline.c
+Compile [ 17.4%]: utest_case.cpp
+Compile [ 17.6%]: utest_stack_trace.cpp
+Compile [ 17.7%]: utest_default_handlers.cpp
+Compile [ 17.9%]: utest_greentea_handlers.cpp
+Compile [ 18.0%]: unity.c
+Compile [ 18.1%]: utest_types.cpp
+Compile [ 18.3%]: utest_shim.cpp
+Compile [ 18.4%]: utest_harness.cpp
+Compile [ 18.6%]: LoRaMacChannelPlan.cpp
+Compile [ 18.7%]: LoRaMacCrypto.cpp
+Compile [ 18.9%]: LoRaWANInterface.cpp
+Compile [ 19.0%]: LoRaPHYAS923.cpp
+Compile [ 19.1%]: LoRaMacCommand.cpp
+Compile [ 19.3%]: LoRaPHYAU915.cpp
+Compile [ 19.4%]: LoRaPHYCN470.cpp
+Compile [ 19.6%]: LoRaPHYCN779.cpp
+Compile [ 19.7%]: LoRaPHY.cpp
+Compile [ 19.9%]: LoRaPHYEU868.cpp
+Compile [ 20.0%]: LoRaWANStack.cpp
+[Warning] LoRaWANStack.cpp@816,0: [Pe111]: statement is unreachable
+Compile [ 20.1%]: LoRaPHYEU433.cpp
+Compile [ 20.3%]: LoRaPHYIN865.cpp
+Compile [ 20.4%]: LoRaMac.cpp
+Compile [ 20.6%]: lwip_checksum.c
+Compile [ 20.7%]: lwip_memcpy.c
+Compile [ 20.9%]: LoRaWANTimer.cpp
+Compile [ 21.0%]: LoRaPHYKR920.cpp
+Compile [ 21.1%]: lwip_random.c
+Compile [ 21.3%]: LoRaPHYUS915.cpp
+Compile [ 21.4%]: lwip_sys_arch.c
+Compile [ 21.6%]: LWIPMemoryManager.cpp
+Compile [ 21.7%]: lwip_tcp_isn.c
+Compile [ 21.9%]: lwip_err.c
+Compile [ 22.0%]: LWIPInterfaceEMAC.cpp
+Compile [ 22.1%]: lwip_api_lib.c
+Compile [ 22.3%]: lwip_netbuf.c
+Compile [ 22.4%]: LWIPInterface.cpp
+Compile [ 22.6%]: lwip_netifapi.c
+Compile [ 22.7%]: lwip_netdb.c
+Compile [ 22.9%]: lwip_sockets.c
+Compile [ 23.0%]: LWIPStack.cpp
+Compile [ 23.1%]: lwip_autoip.c
+Compile [ 23.3%]: lwip_api_msg.c
+Compile [ 23.4%]: lwip_tcpip.c
+Compile [ 23.6%]: lwip_icmp.c
+Compile [ 23.7%]: lwip_ip4_addr.c
+Compile [ 23.9%]: lwip_dhcp6.c
+Compile [ 24.0%]: lwip_igmp.c
+Compile [ 24.1%]: lwip_etharp.c
+Compile [ 24.3%]: lwip_ip4.c
+Compile [ 24.4%]: lwip_ip4_frag.c
+Compile [ 24.6%]: lwip_icmp6.c
+Compile [ 24.7%]: lwip_ethip6.c
+Compile [ 24.9%]: lwip_dhcp.c
+Compile [ 25.0%]: lwip_inet6.c
+Compile [ 25.1%]: lwip_ip6.c
+Compile [ 25.3%]: lwip_ip6_addr.c
+Compile [ 25.4%]: lwip_mld6.c
+Compile [ 25.6%]: lwip_ip6_frag.c
+Compile [ 25.7%]: lwip_nd6.c
+Compile [ 25.9%]: lwip_def.c
+Compile [ 26.0%]: lwip_dns.c
+Compile [ 26.1%]: lwip_inet_chksum.c
+Compile [ 26.3%]: lwip_ip.c
+Compile [ 26.4%]: lwip_init.c
+[Warning] lwip_init.c@341,0: [Pe549]: variable "a" is used before its value is set
+Compile [ 26.6%]: lwip_mem.c
+Compile [ 26.7%]: lwip_raw.c
+Compile [ 26.9%]: lwip_stats.c
+Compile [ 27.0%]: lwip_memp.c
+Compile [ 27.1%]: lwip_netif.c
+Compile [ 27.3%]: lwip_sys.c
+Compile [ 27.4%]: lwip_pbuf.c
+Compile [ 27.6%]: lwip_ethernetif.c
+Compile [ 27.7%]: lwip_ethernet.c
+Compile [ 27.9%]: lwip_timeouts.c
+Compile [ 28.0%]: lwip_lowpan6.c
+Compile [ 28.1%]: lwip_udp.c
+Compile [ 28.3%]: lwip_auth.c
+Compile [ 28.4%]: lwip_tcp_out.c
+Compile [ 28.6%]: lwip_ccp.c
+Compile [ 28.7%]: lwip_chap-md5.c
+Compile [ 28.9%]: lwip_chap-new.c
+Compile [ 29.0%]: lwip_tcp.c
+Compile [ 29.1%]: lwip_chap_ms.c
+Compile [ 29.3%]: lwip_tcp_in.c
+Compile [ 29.4%]: lwip_demand.c
+Compile [ 29.6%]: lwip_eap.c
+Compile [ 29.7%]: lwip_ecp.c
+Compile [ 29.9%]: lwip_eui64.c
+Compile [ 30.0%]: lwip_fsm.c
+Compile [ 30.1%]: lwip_ipcp.c
+Compile [ 30.3%]: lwip_ipv6cp.c
+Compile [ 30.4%]: lwip_lcp.c
+Compile [ 30.6%]: lwip_magic.c
+Compile [ 30.7%]: lwip_mppe.c
+Compile [ 30.9%]: lwip_multilink.c
+Compile [ 31.0%]: lwip_ppp.c
+Compile [ 31.1%]: lwip_pppapi.c
+Compile [ 31.3%]: lwip_pppcrypt.c
+Compile [ 31.4%]: lwip_pppoe.c
+Compile [ 31.6%]: lwip_pppol2tp.c
+Compile [ 31.7%]: lwip_pppos.c
+Compile [ 31.9%]: lwip_upap.c
+Compile [ 32.0%]: lwip_utils.c
+Compile [ 32.1%]: lwip_vj.c
+Compile [ 32.3%]: lwip_arc4.c
+Compile [ 32.4%]: lwip_des.c
+Compile [ 32.6%]: mbed_trng.cpp
+Compile [ 32.7%]: lwip_md4.c
+Compile [ 32.9%]: lwip_md5.c
+Compile [ 33.0%]: lwip_sha1.c
+Compile [ 33.1%]: aesni.c
+Compile [ 33.3%]: arc4.c
+Compile [ 33.4%]: platform_alt.c
+Compile [ 33.6%]: aria.c
+Compile [ 33.7%]: blowfish.c
+Compile [ 33.9%]: camellia.c
+Compile [ 34.0%]: base64.c
+Compile [ 34.1%]: asn1parse.c
+Compile [ 34.3%]: asn1write.c
+Compile [ 34.4%]: certs.c
+Compile [ 34.6%]: chacha20.c
+Compile [ 34.7%]: chachapoly.c
+Compile [ 34.9%]: aes.c
+Compile [ 35.0%]: ccm.c
+Compile [ 35.1%]: cipher_wrap.c
+Compile [ 35.3%]: ctr_drbg.c
+Compile [ 35.4%]: lwip_tools.cpp
+Compile [ 35.6%]: debug.c
+Compile [ 35.7%]: des.c
+Compile [ 35.9%]: dhm.c
+Compile [ 36.0%]: ecdh.c
+Compile [ 36.1%]: cipher.c
+Compile [ 36.3%]: ecjpake.c
+Compile [ 36.4%]: cmac.c
+Compile [ 36.6%]: entropy.c
+Compile [ 36.7%]: ppp_lwip.cpp
+Compile [ 36.9%]: entropy_poll.c
+Compile [ 37.0%]: havege.c
+Compile [ 37.1%]: hkdf.c
+Compile [ 37.3%]: ecdsa.c
+Compile [ 37.4%]: md2.c
+Compile [ 37.6%]: hmac_drbg.c
+Compile [ 37.7%]: md4.c
+Compile [ 37.9%]: ecp_curves.c
+Compile [ 38.0%]: md.c
+Compile [ 38.1%]: md5.c
+Compile [ 38.3%]: memory_buffer_alloc.c
+Compile [ 38.4%]: net_sockets.c
+Compile [ 38.6%]: nist_kw.c
+Compile [ 38.7%]: gcm.c
+Compile [ 38.9%]: md_wrap.c
+Compile [ 39.0%]: padlock.c
+Compile [ 39.1%]: bignum.c
+Compile [ 39.3%]: pkcs11.c
+Compile [ 39.4%]: pkcs12.c
+Compile [ 39.6%]: pem.c
+Compile [ 39.7%]: pkcs5.c
+Compile [ 39.9%]: pk.c
+Compile [ 40.0%]: oid.c
+Compile [ 40.1%]: pk_wrap.c
+Compile [ 40.3%]: error.c
+Compile [ 40.4%]: platform.c
+Compile [ 40.6%]: platform_util.c
+Compile [ 40.7%]: poly1305.c
+Compile [ 40.9%]: ripemd160.c
+Compile [ 41.0%]: sha1.c
+Compile [ 41.1%]: ssl_cache.c
+Compile [ 41.3%]: pkwrite.c
+Compile [ 41.4%]: ssl_ciphersuites.c
+Compile [ 41.6%]: pkparse.c
+Compile [ 41.7%]: ssl_cli.c
+Compile [ 41.9%]: rsa_internal.c
+Compile [ 42.0%]: ecp.c
+Compile [ 42.1%]: ssl_cookie.c
+Compile [ 42.3%]: ssl_srv.c
+Compile [ 42.4%]: ssl_ticket.c
+Compile [ 42.6%]: ssl_tls.c
+Compile [ 42.7%]: threading.c
+Compile [ 42.9%]: timing.c
+Compile [ 43.0%]: version.c
+Compile [ 43.1%]: version_features.c
+Compile [ 43.3%]: x509_create.c
+Compile [ 43.4%]: x509_csr.c
+Compile [ 43.6%]: x509write_crt.c
+Compile [ 43.7%]: x509write_csr.c
+Compile [ 43.9%]: sha512.c
+Compile [ 44.0%]: xtea.c
+Compile [ 44.1%]: sha256.c
+Compile [ 44.3%]: hash_wrappers.c
+Compile [ 44.4%]: x509.c
+Compile [ 44.6%]: coap_security_handler.c
+Compile [ 44.7%]: x509_crl.c
+Compile [ 44.9%]: rsa.c
+Compile [ 45.0%]: coap_message_handler.c
+Compile [ 45.1%]: coap_connection_handler.c
+[Warning] coap_connection_handler.c@238,18: [Pe174]: expression has no effect
+[Warning] coap_connection_handler.c@765,18: [Pe111]: statement is unreachable
+[Warning] coap_connection_handler.c@870,13: [Pe174]: expression has no effect
+[Warning] coap_connection_handler.c@430,13: [Pe177]: function "secure_session_sendto" was declared but never referenced
+[Warning] coap_connection_handler.c@463,14: [Pe177]: function "secure_session_recvfrom" was declared but never referenced
+[Warning] coap_connection_handler.c@516,13: [Pe177]: function "start_timer" was declared but never referenced
+[Warning] coap_connection_handler.c@539,0: [Pe177]: function "timer_status" was declared but never referenced
+Compile [ 45.3%]: coap_service_api.c
+Compile [ 45.4%]: CallbackHandler.cpp
+Compile [ 45.6%]: x509_crt.c
+Compile [ 45.7%]: NanostackMemoryManager.cpp
+Compile [ 45.9%]: ethernet_tasklet.c
+Compile [ 46.0%]: LoWPANNDInterface.cpp
+Compile [ 46.1%]: mesh_system.c
+Compile [ 46.3%]: NanostackEMACInterface.cpp
+Compile [ 46.4%]: MeshInterfaceNanostack.cpp
+Compile [ 46.6%]: NanostackEthernetInterface.cpp
+Compile [ 46.7%]: nd_tasklet.c
+Compile [ 46.9%]: arm_hal_interrupt.c
+Compile [ 47.0%]: wisun_tasklet.c
+Compile [ 47.1%]: cs_nvm.c
+Compile [ 47.3%]: arm_hal_random.c
+Compile [ 47.4%]: thread_tasklet.c
+Compile [ 47.6%]: ThreadInterface.cpp
+Compile [ 47.7%]: ns_hal_init.c
+Compile [ 47.9%]: ns_event_loop.c
+Compile [ 48.0%]: WisunInterface.cpp
+Compile [ 48.1%]: ns_event_loop_mutex.c
+Compile [ 48.3%]: minar_hal_timer.cpp
+Compile [ 48.4%]: nvm_ram.c
+Compile [ 48.6%]: arm_hal_fhss_timer.cpp
+Compile [ 48.7%]: ns_event_loop_mbed.cpp
+Compile [ 48.9%]: ns_timeout.c
+Compile [ 49.0%]: event.c
+Compile [ 49.1%]: arm_hal_timer.cpp
+Compile [ 49.3%]: ns_timer.c
+Compile [ 49.4%]: system_timer.c
+Compile [ 49.6%]: network_lib.c
+Compile [ 49.7%]: protocol_6lowpan_interface.c
+Compile [ 49.9%]: 6lowpan_iphc.c
+Compile [ 50.0%]: cipv6_fragmenter.c
+Compile [ 50.1%]: protocol_6lowpan.c
+Compile [ 50.3%]: iphc_compress.c
+Compile [ 50.4%]: lowpan_context.c
+Compile [ 50.6%]: iphc_decompress.c
+Compile [ 50.7%]: mac_ie_lib.c
+Compile [ 50.9%]: beacon_handler.c
+Compile [ 51.0%]: mac_pairwise_key.c
+Compile [ 51.1%]: Nanostack.cpp
+Compile [ 51.3%]: mac_data_poll.c
+Compile [ 51.4%]: mac_response_handler.c
+Compile [ 51.6%]: mac_helper.c
+Compile [ 51.7%]: thread_beacon.c
+Compile [ 51.9%]: mesh.c
+Compile [ 52.0%]: nwk_nvm.c
+Compile [ 52.1%]: thread_commissioning_if.c
+Compile [ 52.3%]: protocol_6lowpan_bootstrap.c
+Compile [ 52.4%]: thread_bbr_api.c
+Compile [ 52.6%]: thread_dhcpv6_server.c
+Compile [ 52.7%]: thread_border_router_api.c
+Compile [ 52.9%]: thread_commissioning_api.c
+Compile [ 53.0%]: nd_router_object.c
+[Warning] nd_router_object.c@969,0: [Pe236]: controlling expression is constant
+Compile [ 53.1%]: thread_lowpower_private_api.c
+Compile [ 53.3%]: thread_diagnostic.c
+Compile [ 53.4%]: thread_management_api.c
+Compile [ 53.6%]: thread_common.c
+Compile [ 53.7%]: thread_discovery.c
+Compile [ 53.9%]: thread_management_client.c
+Compile [ 54.0%]: thread_host_bootstrap.c
+[Warning] thread_host_bootstrap.c@478,0: [Pe111]: statement is unreachable
+Compile [ 54.1%]: thread_mdns.c
+Compile [ 54.3%]: thread_meshcop_lib.c
+Compile [ 54.4%]: thread_bootstrap.c
+Compile [ 54.6%]: thread_joiner_application.c
+Compile [ 54.7%]: thread_leader_service.c
+Compile [ 54.9%]: thread_neighbor_class.c
+Compile [ 55.0%]: thread_net_config_api.c
+Compile [ 55.1%]: thread_management_if.c
+[Warning] thread_management_if.c@1383,0: [Pe111]: statement is unreachable
+Compile [ 55.3%]: thread_mle_message_handler.c
+Compile [ 55.4%]: thread_network_data_lib.c
+Compile [ 55.6%]: thread_nd.c
+Compile [ 55.7%]: thread_management_server.c
+Compile [ 55.9%]: thread_network_synch.c
+Compile [ 56.0%]: thread_resolution_client.c
+Compile [ 56.1%]: thread_resolution_server.c
+Compile [ 56.3%]: thread_nvm_store.c
+Compile [ 56.4%]: ws_empty_functions.c
+Compile [ 56.6%]: icmpv6_prefix.c
+Compile [ 56.7%]: thread_routing.c
+Compile [ 56.9%]: thread_test_api.c
+Compile [ 57.0%]: border_router.c
+Compile [ 57.1%]: ipv6_flow.c
+Compile [ 57.3%]: icmpv6_radv.c
+Compile [ 57.4%]: adaptation_interface.c
+[Warning] adaptation_interface.c@640,21: [Pe236]: controlling expression is constant
+[Warning] adaptation_interface.c@652,30: [Pe236]: controlling expression is constant
+[Warning] adaptation_interface.c@1174,0: [Pe236]: controlling expression is constant
+Compile [ 57.6%]: thread_network_data_storage.c
+Compile [ 57.7%]: ipv6_fragmentation.c
+Compile [ 57.9%]: mld.c
+Compile [ 58.0%]: icmpv6.c
+[Warning] icmpv6.c@1007,0: [Pe236]: controlling expression is constant
+Compile [ 58.1%]: ipv6_resolution.c
+Compile [ 58.3%]: sockbuf.c
+Compile [ 58.4%]: udp.c
+Compile [ 58.6%]: buffer_dyn.c
+Compile [ 58.7%]: ipv6.c
+Compile [ 58.9%]: mac_fhss_callbacks.c
+Compile [ 59.0%]: dhcpv6_client_service.c
+Compile [ 59.1%]: thread_router_bootstrap.c
+[Warning] thread_router_bootstrap.c@1945,49: [Pe188]: enumerated type mixed with another type
+[Warning] thread_router_bootstrap.c@1946,44: [Pe188]: enumerated type mixed with another type
+[Warning] thread_router_bootstrap.c@1947,0: [Pe188]: enumerated type mixed with another type
+Compile [ 59.3%]: DHCPv6_Server_service.c
+Compile [ 59.4%]: mac_filter.c
+Compile [ 59.6%]: mac_indirect_data.c
+Compile [ 59.7%]: mac_header_helper_functions.c
+Compile [ 59.9%]: ns_socket.c
+Compile [ 60.0%]: address.c
+Compile [ 60.1%]: tcp.c
+Compile [ 60.3%]: mac_timer.c
+Compile [ 60.4%]: mac_pd_sap.c
+Compile [ 60.6%]: mac_security_mib.c
+Compile [ 60.7%]: ethernet_mac_api.c
+Compile [ 60.9%]: rf_driver_storage.c
+Compile [ 61.0%]: sw_mac.c
+Compile [ 61.1%]: serial_mac_api.c
+Compile [ 61.3%]: virtual_rf_client.c
+Compile [ 61.4%]: mac_mlme.c
+Compile [ 61.6%]: virtual_rf_driver.c
+Compile [ 61.7%]: protocol_stats.c
+Compile [ 61.9%]: mle_tlv.c
+Compile [ 62.0%]: mle.c
+Compile [ 62.1%]: protocol_core_sleep.c
+Compile [ 62.3%]: protocol_timer.c
+Compile [ 62.4%]: rpl_objective.c
+Compile [ 62.6%]: mac_mcps_sap.c
+Compile [ 62.7%]: rpl_mrhof.c
+Compile [ 62.9%]: rpl_policy.c
+Compile [ 63.0%]: rpl_of0.c
+Compile [ 63.1%]: protocol_core.c
+[Warning] protocol_core.c@247,29: [Pe236]: controlling expression is constant
+[Warning] protocol_core.c@315,25: [Pe236]: controlling expression is constant
+[Warning] protocol_core.c@1091,0: [Pe236]: controlling expression is constant
+Compile [ 63.3%]: mpl.c
+Compile [ 63.4%]: rpl_data.c
+Compile [ 63.6%]: pana_avp.c
+Compile [ 63.7%]: security_lib.c
+Compile [ 63.9%]: rpl_control.c
+Compile [ 64.0%]: pana_eap_header.c
+Compile [ 64.1%]: eap_protocol.c
+Compile [ 64.3%]: pana_header.c
+Compile [ 64.4%]: pana_relay_table.c
+Compile [ 64.6%]: tls_ccm_crypt.c
+Compile [ 64.7%]: rpl_downward.c
+Compile [ 64.9%]: pana.c
+Compile [ 65.0%]: ccm_security.c
+Compile [ 65.1%]: aes_mbedtls_adapter.c
+Compile [ 65.3%]: neighbor_cache.c
+Compile [ 65.4%]: ns_sha256.c
+Compile [ 65.6%]: rpl_upward.c
+Compile [ 65.7%]: pana_client.c
+Compile [ 65.9%]: trickle.c
+Compile [ 66.0%]: shalib.c
+Compile [ 66.1%]: channel_list.c
+Compile [ 66.3%]: blacklist.c
+Compile [ 66.4%]: fhss_channel.c
+Compile [ 66.6%]: fhss_common.c
+Compile [ 66.7%]: etx.c
+Compile [ 66.9%]: fhss_statistics.c
+Compile [ 67.0%]: fhss_configuration_interface.c
+Compile [ 67.1%]: fhss_ws_empty_functions.c
+Compile [ 67.3%]: fnv_hash.c
+Compile [ 67.4%]: tls_lib.c
+Compile [ 67.6%]: fnet_poll.c
+Compile [ 67.7%]: pana_server.c
+Compile [ 67.9%]: mac_neighbor_table.c
+Compile [ 68.0%]: load_balance.c
+Compile [ 68.1%]: fnet_stdlib.c
+Compile [ 68.3%]: fhss.c
+Compile [ 68.4%]: ns_fnet_events.c
+Compile [ 68.6%]: ns_fnet_port.c
+Compile [ 68.7%]: ns_mdns_api.c
+Compile [ 68.9%]: mle_service_interface.c
+Compile [ 69.0%]: mle_service_frame_counter_table.c
+Compile [ 69.1%]: mle_service_buffer.c
+Compile [ 69.3%]: ns_crc.c
+Compile [ 69.4%]: isqrt.c
+Compile [ 69.6%]: pan_blacklist.c
+Compile [ 69.7%]: mle_service_security.c
+Compile [ 69.9%]: ns_file_system.c
+Compile [ 70.0%]: nd_proxy.c
+Compile [ 70.1%]: whiteboard.c
+Compile [ 70.3%]: fnet_mdns.c
+Compile [ 70.4%]: libDHCPv6.c
+Compile [ 70.6%]: libDHCPv6_server.c
+Compile [ 70.7%]: mle_service.c
+Compile [ 70.9%]: net_6lowpan_parameter_api.c
+Compile [ 71.0%]: multicast_api.c
+Compile [ 71.1%]: dhcp_service_api.c
+Compile [ 71.3%]: net_ipv6.c
+Compile [ 71.4%]: net_mle.c
+Compile [ 71.6%]: protocol_ipv6.c
+Compile [ 71.7%]: net_short_address_extension.c
+Compile [ 71.9%]: net_rpl.c
+Compile [ 72.0%]: net_load_balance.c
+Compile [ 72.1%]: net_test.c
+Compile [ 72.3%]: ipv6_routing_table.c
+Compile [ 72.4%]: DTLSSocket.cpp
+Compile [ 72.6%]: socket_api.c
+Compile [ 72.7%]: DTLSSocketWrapper.cpp
+Compile [ 72.9%]: EMACMemoryManager.cpp
+Compile [ 73.0%]: ns_net.c
+Compile [ 73.1%]: NetworkInterface.cpp
+Compile [ 73.3%]: NetworkInterfaceDefaults.cpp
+Compile [ 73.4%]: EthernetInterface.cpp
+Compile [ 73.6%]: SocketAddress.cpp
+Compile [ 73.7%]: InternetSocket.cpp
+Compile [ 73.9%]: EMACInterface.cpp
+Compile [ 74.0%]: WiFiAccessPoint.cpp
+Compile [ 74.1%]: SocketStats.cpp
+Compile [ 74.3%]: NetworkStack.cpp
+Compile [ 74.4%]: TCPServer.cpp
+Compile [ 74.6%]: OnboardCellularInterface.cpp
+Compile [ 74.7%]: TCPSocket.cpp
+Compile [ 74.9%]: TLSSocket.cpp
+Compile [ 75.0%]: UDPSocket.cpp
+Compile [ 75.1%]: PPPCellularInterface.cpp
+Compile [ 75.3%]: ac_buffer.c
+Compile [ 75.4%]: UARTCellularInterface.cpp
+Compile [ 75.6%]: TLSSocketWrapper.cpp
+Compile [ 75.7%]: ac_buffer_builder.c
+Compile [ 75.9%]: ac_stream.c
+Compile [ 76.0%]: ac_buffer_reader.c
+Compile [ 76.1%]: PN512TransportDriver.cpp
+Compile [ 76.3%]: NFCControllerDriver.cpp
+Compile [ 76.4%]: PN512Driver.cpp
+Compile [ 76.6%]: NFCEEPROMDriver.cpp
+Compile [ 76.7%]: rza1_emac.cpp
+Compile [ 76.9%]: PN512SPITransportDriver.cpp
+Compile [ 77.0%]: NFCNDEFCapable.cpp
+Compile [ 77.1%]: NFCEEPROM.cpp
+Compile [ 77.3%]: NFCRemoteInitiator.cpp
+Compile [ 77.4%]: NFCTarget.cpp
+Compile [ 77.6%]: NFCRemoteEndpoint.cpp
+Compile [ 77.7%]: NFCController.cpp
+Compile [ 77.9%]: RecordParser.cpp
+Compile [ 78.0%]: MessageBuilder.cpp
+Compile [ 78.1%]: Mime.cpp
+Compile [ 78.3%]: MessageParser.cpp
+[Warning] MessageParser.cpp@63,0: [Pe177]: function "<unnamed>::buffer_iterator_t::read_le" was declared but never referenced
+Compile [ 78.4%]: nsapi_dns.cpp
+Compile [ 78.6%]: ndef.c
+Compile [ 78.7%]: Type4RemoteInitiator.cpp
+Compile [ 78.9%]: SimpleMessageParser.cpp
+Compile [ 79.0%]: nfc_scheduler.c
+[Warning] nfc_scheduler.c@128,0: [Pe111]: statement is unreachable
+Compile [ 79.1%]: Text.cpp
+Compile [ 79.3%]: util.cpp
+Compile [ 79.4%]: nfc_transport.c
+Compile [ 79.6%]: URI.cpp
+Compile [ 79.7%]: iso7816_app.c
+Compile [ 79.9%]: pn512_hw.c
+Compile [ 80.0%]: iso7816.c
+Compile [ 80.1%]: pn512_cmd.c
+Compile [ 80.3%]: pn512_irq.c
+Compile [ 80.4%]: pn512.c
+Compile [ 80.6%]: type4_target.c
+Compile [ 80.7%]: isodep_target.c
+Compile [ 80.9%]: pn512_registers.c
+Compile [ 81.0%]: transceiver.c
+Compile [ 81.1%]: pn512_timer.c
+Compile [ 81.3%]: pn512_rf.c
+Compile [ 81.4%]: pn512_transceive.c
+Compile [ 81.6%]: ExhaustibleBlockDevice.cpp
+Compile [ 81.7%]: ChainingBlockDevice.cpp
+Compile [ 81.9%]: HeapBlockDevice.cpp
+Compile [ 82.0%]: ProfilingBlockDevice.cpp
+Compile [ 82.1%]: BufferedBlockDevice.cpp
+Compile [ 82.3%]: FlashSimBlockDevice.cpp
+Compile [ 82.4%]: pn512_poll.c
+Compile [ 82.6%]: SlicingBlockDevice.cpp
+Compile [ 82.7%]: ObservingBlockDevice.cpp
+Compile [ 82.9%]: ReadOnlyBlockDevice.cpp
+Compile [ 83.0%]: ffunicode.cpp
+Compile [ 83.1%]: MBRBlockDevice.cpp
+Compile [ 83.3%]: lfs_util.c
+Compile [ 83.4%]: Dir.cpp
+Compile [ 83.6%]: DirectAccessDevicekey.cpp
+Compile [ 83.7%]: File.cpp
+Compile [ 83.9%]: FileSystem.cpp
+Compile [ 84.0%]: LittleFileSystem.cpp
+Compile [ 84.1%]: kvstore_global_api.cpp
+Compile [ 84.3%]: SecureStore.cpp
+Compile [ 84.4%]: FATFileSystem.cpp
+Compile [ 84.6%]: nvstore.cpp
+Compile [ 84.7%]: FileSystemStore.cpp
+Compile [ 84.9%]: KVMap.cpp
+Compile [ 85.0%]: mbed_critical_section_api.c
+Compile [ 85.1%]: mbed_flash_api.c
+Compile [ 85.3%]: kv_config.cpp
+[Warning] kv_config.cpp@762,16: [Pe185]: dynamic initialization in unreachable code
+[Warning] kv_config.cpp@847,6: [Pe185]: dynamic initialization in unreachable code
+[Warning] kv_config.cpp@946,6: [Pe111]: statement is unreachable
+[Warning] kv_config.cpp@1033,6: [Pe111]: statement is unreachable
+[Warning] kv_config.cpp@1150,0: [Pe111]: statement is unreachable
+Compile [ 85.4%]: mbed_itm_api.c
+Compile [ 85.6%]: lfs.c
+Compile [ 85.7%]: mbed_gpio.c
+Compile [ 85.9%]: LowPowerTickerWrapper.cpp
+Compile [ 86.0%]: ff.cpp
+Compile [ 86.1%]: mbed_lp_ticker_api.c
+Compile [ 86.3%]: mbed_lp_ticker_wrapper.cpp
+Compile [ 86.4%]: mbed_pinmap_common.c
+Compile [ 86.6%]: mbed_us_ticker_api.c
+Compile [ 86.7%]: mbed_mpu_v7m.c
+Compile [ 86.9%]: mbed_mpu_v8m.c
+Compile [ 87.0%]: mbed_ticker_api.c
+Compile [ 87.1%]: SystemStorage.cpp
+[Warning] SystemStorage.cpp@80,0: [Pe177]: function "align_up" was declared but never referenced
+Compile [ 87.3%]: CallChain.cpp
+Compile [ 87.4%]: CThunkBase.cpp
+Compile [ 87.6%]: TDBStore.cpp
+Compile [ 87.7%]: FileHandle.cpp
+Compile [ 87.9%]: FileBase.cpp
+Compile [ 88.0%]: FilePath.cpp
+Compile [ 88.1%]: ATCmdParser.cpp
+Compile [ 88.3%]: LocalFileSystem.cpp
+Compile [ 88.4%]: mbed_assert.c
+Compile [ 88.6%]: FileSystemHandle.cpp
+Compile [ 88.7%]: mbed_application.c
+Compile [ 88.9%]: mbed_alloc_wrappers.cpp
+Compile [ 89.0%]: mbed_critical.c
+Compile [ 89.1%]: Stream.cpp
+Compile [ 89.3%]: mbed_board.c
+Compile [ 89.4%]: mbed_error_hist.c
+Compile [ 89.6%]: mbed_mktime.c
+Compile [ 89.7%]: mbed_mem_trace.cpp
+Compile [ 89.9%]: mbed_interface.c
+Compile [ 90.0%]: mbed_error.c
+Compile [ 90.1%]: mbed_mpu_mgmt.c
+Compile [ 90.3%]: mbed_wait_api_no_rtos.c
+Compile [ 90.4%]: mbed_sdk_boot.c
+Compile [ 90.6%]: mbed_semihost_api.c
+Compile [ 90.7%]: mbed_poll.cpp
+Compile [ 90.9%]: mbed_sleep_manager.c
+Compile [ 91.0%]: mbed_rtc_time.cpp
+Compile [ 91.1%]: mbed_stats.c
+Compile [ 91.3%]: Kernel.cpp
+Compile [ 91.4%]: EventFlags.cpp
+Compile [ 91.6%]: SysTimer.cpp
+Compile [ 91.7%]: ConditionVariable.cpp
+Compile [ 91.9%]: mbed_wait_api_rtos.cpp
+Compile [ 92.0%]: Semaphore.cpp
+Compile [ 92.1%]: Mutex.cpp
+Compile [ 92.3%]: RtosTimer.cpp
+Compile [ 92.4%]: mbed_retarget.cpp
+Compile [ 92.6%]: RTX_Config.c
+[Warning] RTX_Config.c@32,0: [Pa021]: more than one #pragma object active for this declaration
+Compile [ 92.7%]: irq_ca.S
+Compile [ 92.9%]: mbed_boot.c
+Compile [ 93.0%]: mbed_boot_iar.c
+Compile [ 93.1%]: cmsis_os1.c
+Compile [ 93.3%]: mbed_rtos_rtx.c
+Compile [ 93.4%]: mbed_rtx_handlers.c
+Compile [ 93.6%]: rtx_evr.c
+Compile [ 93.7%]: mbed_rtx_idle.cpp
+Compile [ 93.9%]: rtx_lib.c
+Compile [ 94.0%]: handlers.c
+Compile [ 94.1%]: rtx_delay.c
+Compile [ 94.3%]: rtx_evflags.c
+Compile [ 94.4%]: rtx_memory.c
+Compile [ 94.6%]: rtx_kernel.c
+Compile [ 94.7%]: rtx_mempool.c
+Compile [ 94.9%]: rtx_mutex.c
+Compile [ 95.0%]: rtx_semaphore.c
+Compile [ 95.1%]: rtx_system.c
+Compile [ 95.3%]: os_systick.c
+Compile [ 95.4%]: rtx_msgqueue.c
+Compile [ 95.6%]: startup_VKRZA1H.S
+Compile [ 95.7%]: os_tick_ptim.c
+Compile [ 95.9%]: rtx_timer.c
+Compile [ 96.0%]: PeripheralPins.c
+Compile [ 96.1%]: ThisThread.cpp
+Compile [ 96.3%]: cmsis_nvic.c
+Compile [ 96.4%]: Thread.cpp
+Compile [ 96.6%]: nvic_wrapper.c
+Compile [ 96.7%]: os_tick_ostm.c
+Compile [ 96.9%]: rza_io_regrw.c
+Compile [ 97.0%]: mmu_VK_RZ_A1H.c
+Compile [ 97.1%]: rtx_thread.c
+Compile [ 97.3%]: system_VK_RZ_A1H.c
+Compile [ 97.4%]: analogin_api.c
+Compile [ 97.6%]: RZ_A1_Init.c
+Compile [ 97.7%]: lp_ticker.c
+Compile [ 97.9%]: flash_api.c
+Compile [ 98.0%]: gpio_api.c
+Compile [ 98.1%]: mtu2.c
+Compile [ 98.3%]: gpio_irq_api.c
+Compile [ 98.4%]: pinmap.c
+Compile [ 98.6%]: ethernet_api.c
+Compile [ 98.7%]: port_api.c
+Compile [ 98.9%]: can_api.c
+Compile [ 99.0%]: trng_api.c
+Compile [ 99.1%]: pwmout_api.c
+Compile [ 99.3%]: rtc_api.c
+Compile [ 99.4%]: sleep.c
+Compile [ 99.6%]: us_ticker.c
+Compile [ 99.7%]: i2c_api.c
+Compile [ 99.9%]: serial_api.c
+Compile [100.0%]: spi_api.c
+[Warning] spi_api.c@507,0: [Pe069]: integer conversion resulted in truncation
+Building project fopen (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: fopen
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: fopen.cpp
+Link: fopen
+Elf2Bin: fopen
+| Module                          |         .text |       .data |          .bss |
+|---------------------------------|---------------|-------------|---------------|
+| [lib]\dl7Sx_tlf.a               | 11116(+11116) |   480(+480) |     716(+716) |
+| [lib]\dlpp7Sx_tl_fc.a           |       84(+84) |       0(+0) |         0(+0) |
+| [lib]\m7Sx_tlv.a                |     582(+582) |       0(+0) |         0(+0) |
+| [lib]\rt7Sx_tl.a                |   2020(+2020) |       0(+0) |         0(+0) |
+| [misc]                          |     331(+331) |       0(+0) | 66304(+66304) |
+| cmsis\TARGET_CORTEX_A           |   1048(+1048) |       0(+0) |   4084(+4084) |
+| components\storage              |   1310(+1310) |       0(+0) |     492(+492) |
+| drivers\RawSerial.o             |     272(+272) |       0(+0) |         0(+0) |
+| drivers\SPI.o                   |       78(+78) |       0(+0) |     716(+716) |
+| drivers\SerialBase.o            |     392(+392) |       0(+0) |         0(+0) |
+| drivers\Ticker.o                |     276(+276) |       0(+0) |         0(+0) |
+| drivers\Timeout.o               |       88(+88) |       0(+0) |         0(+0) |
+| drivers\TimerEvent.o            |       98(+98) |       0(+0) |         0(+0) |
+| events\EventQueue.o             |       82(+82) |       0(+0) |         0(+0) |
+| features\cellular               |       36(+36) |       0(+0) |         0(+0) |
+| features\frameworks             |   5506(+5506) |   204(+204) |     236(+236) |
+| features\nanostack              |     184(+184) |       0(+0) |         0(+0) |
+| features\nfc                    |       68(+68) |       0(+0) |         0(+0) |
+| hal\mbed_critical_section_api.o |     156(+156) |       0(+0) |         2(+2) |
+| hal\mbed_gpio.o                 |       68(+68) |       0(+0) |         0(+0) |
+| hal\mbed_pinmap_common.o        |     248(+248) |       0(+0) |         0(+0) |
+| hal\mbed_ticker_api.o           |   1164(+1164) |       0(+0) |         0(+0) |
+| hal\mbed_us_ticker_api.o        |       68(+68) |       4(+4) |       64(+64) |
+| platform\ATCmdParser.o          |       26(+26) |       0(+0) |         0(+0) |
+| platform\FileBase.o             |     148(+148) |       0(+0) |       56(+56) |
+| platform\FilePath.o             |     160(+160) |       0(+0) |         0(+0) |
+| platform\mbed_assert.o          |       32(+32) |       0(+0) |         0(+0) |
+| platform\mbed_board.o           |     392(+392) |       0(+0) |         0(+0) |
+| platform\mbed_critical.o        |     256(+256) |       0(+0) |         4(+4) |
+| platform\mbed_error.o           |   1216(+1216) |       0(+0) |     120(+120) |
+| platform\mbed_retarget.o        |     690(+690) |   120(+120) |         8(+8) |
+| platform\mbed_rtc_time.o        |     136(+136) |       0(+0) |         0(+0) |
+| platform\mbed_sleep_manager.o   |     220(+220) |       0(+0) |         2(+2) |
+| platform\mbed_wait_api_rtos.o   |     128(+128) |       0(+0) |         0(+0) |
+| rtos\Mutex.o                    |     304(+304) |       0(+0) |         0(+0) |
+| rtos\TARGET_CORTEX              |   8358(+8358) |   173(+173) |   6352(+6352) |
+| rtos\Thread.o                   |       62(+62) |       0(+0) |         0(+0) |
+| targets\TARGET_RENESAS          |   9054(+9054) |   154(+154) |     711(+711) |
+| Subtotals                       | 46457(+46457) | 1135(+1135) | 79867(+79867) |
+Total Static RAM memory (data + bss): 81002(+81002) bytes
+Total Flash memory (text + data): 47592(+47592) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/fopen/fopen.bin
+
+Building project dirs (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: dirs
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+Link: dirs
+Elf2Bin: dirs
+| Module                          |           .text |       .data |          .bss |
+|---------------------------------|-----------------|-------------|---------------|
+| [lib]\dl7Sx_tlf.a               |   13220(+13220) |   540(+540) |     716(+716) |
+| [lib]\dlpp7Sx_tl_fc.a           |       130(+130) |       0(+0) |         0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.a    |   26364(+26364) |     12(+12) |     128(+128) |
+| [lib]\m7Sx_tlv.a                |       582(+582) |       0(+0) |         0(+0) |
+| [lib]\rt7Sx_tl.a                |     2520(+2520) |       0(+0) |         0(+0) |
+| [misc]                          |       371(+371) |       0(+0) | 66304(+66304) |
+| cmsis\TARGET_CORTEX_A           |     1048(+1048) |       0(+0) |   4084(+4084) |
+| components\storage              |   11732(+11732) |       0(+0) | 10396(+10396) |
+| drivers\RawSerial.o             |       272(+272) |       0(+0) |         0(+0) |
+| drivers\SPI.o                   |         78(+78) |       0(+0) |     716(+716) |
+| drivers\SerialBase.o            |       392(+392) |       0(+0) |         0(+0) |
+| drivers\Ticker.o                |       276(+276) |       0(+0) |         0(+0) |
+| drivers\Timeout.o               |         88(+88) |       0(+0) |         0(+0) |
+| drivers\TimerEvent.o            |         98(+98) |       0(+0) |         0(+0) |
+| events\EventQueue.o             |         82(+82) |       0(+0) |         0(+0) |
+| features\cellular               |         36(+36) |       0(+0) |         0(+0) |
+| features\frameworks             |     6420(+6420) |   204(+204) |     428(+428) |
+| features\nanostack              |       184(+184) |       0(+0) |         0(+0) |
+| features\nfc                    |         68(+68) |       0(+0) |         0(+0) |
+| features\storage                |   17516(+17516) |       0(+0) |       84(+84) |
+| hal\mbed_critical_section_api.o |       156(+156) |       0(+0) |         2(+2) |
+| hal\mbed_gpio.o                 |         68(+68) |       0(+0) |         0(+0) |
+| hal\mbed_pinmap_common.o        |       248(+248) |       0(+0) |         0(+0) |
+| hal\mbed_ticker_api.o           |     1164(+1164) |       0(+0) |         0(+0) |
+| hal\mbed_us_ticker_api.o        |         68(+68) |       4(+4) |       64(+64) |
+| platform\ATCmdParser.o          |         26(+26) |       0(+0) |         0(+0) |
+| platform\FileBase.o             |       324(+324) |       0(+0) |       56(+56) |
+| platform\FilePath.o             |       160(+160) |       0(+0) |         0(+0) |
+| platform\FileSystemHandle.o     |           8(+8) |       0(+0) |         0(+0) |
+| platform\mbed_assert.o          |         32(+32) |       0(+0) |         0(+0) |
+| platform\mbed_board.o           |       392(+392) |       0(+0) |         0(+0) |
+| platform\mbed_critical.o        |       256(+256) |       0(+0) |         4(+4) |
+| platform\mbed_error.o           |     1216(+1216) |       0(+0) |     120(+120) |
+| platform\mbed_mktime.o          |       552(+552) |       0(+0) |         0(+0) |
+| platform\mbed_retarget.o        |       806(+806) |   120(+120) |         8(+8) |
+| platform\mbed_rtc_time.o        |       260(+260) |     64(+64) |         0(+0) |
+| platform\mbed_sleep_manager.o   |       220(+220) |       0(+0) |         2(+2) |
+| platform\mbed_wait_api_rtos.o   |       128(+128) |       0(+0) |         0(+0) |
+| rtos\Mutex.o                    |       304(+304) |       0(+0) |         0(+0) |
+| rtos\TARGET_CORTEX              |     8430(+8430) |   173(+173) |   6352(+6352) |
+| rtos\Thread.o                   |         62(+62) |       0(+0) |         0(+0) |
+| targets\TARGET_RENESAS          |     9842(+9842) |   154(+154) |     711(+711) |
+| Subtotals                       | 106199(+106199) | 1271(+1271) | 90175(+90175) |
+Total Static RAM memory (data + bss): 91446(+91446) bytes
+Total Flash memory (text + data): 107470(+107470) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/dirs/dirs.bin
+
+Building project seek (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: seek
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+Link: seek
+Elf2Bin: seek
+| Module                          |           .text |       .data |          .bss |
+|---------------------------------|-----------------|-------------|---------------|
+| [lib]\dl7Sx_tlf.a               |   13220(+13220) |   540(+540) |     716(+716) |
+| [lib]\dlpp7Sx_tl_fc.a           |       130(+130) |       0(+0) |         0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.a    |   26364(+26364) |     12(+12) |     128(+128) |
+| [lib]\m7Sx_tlv.a                |       582(+582) |       0(+0) |         0(+0) |
+| [lib]\rt7Sx_tl.a                |     2520(+2520) |       0(+0) |         0(+0) |
+| [misc]                          |       372(+372) |       0(+0) | 66304(+66304) |
+| cmsis\TARGET_CORTEX_A           |     1048(+1048) |       0(+0) |   4084(+4084) |
+| components\storage              |   14268(+14268) |       0(+0) | 10364(+10364) |
+| drivers\RawSerial.o             |       272(+272) |       0(+0) |         0(+0) |
+| drivers\SPI.o                   |         78(+78) |       0(+0) |     716(+716) |
+| drivers\SerialBase.o            |       392(+392) |       0(+0) |         0(+0) |
+| drivers\Ticker.o                |       276(+276) |       0(+0) |         0(+0) |
+| drivers\Timeout.o               |         88(+88) |       0(+0) |         0(+0) |
+| drivers\TimerEvent.o            |         98(+98) |       0(+0) |         0(+0) |
+| events\EventQueue.o             |         82(+82) |       0(+0) |         0(+0) |
+| features\cellular               |         36(+36) |       0(+0) |         0(+0) |
+| features\frameworks             |     6284(+6284) |   204(+204) |     428(+428) |
+| features\nanostack              |       184(+184) |       0(+0) |         0(+0) |
+| features\nfc                    |         68(+68) |       0(+0) |         0(+0) |
+| features\storage                |   17860(+17860) |       0(+0) |       84(+84) |
+| hal\mbed_critical_section_api.o |       156(+156) |       0(+0) |         2(+2) |
+| hal\mbed_gpio.o                 |         68(+68) |       0(+0) |         0(+0) |
+| hal\mbed_pinmap_common.o        |       248(+248) |       0(+0) |         0(+0) |
+| hal\mbed_ticker_api.o           |     1164(+1164) |       0(+0) |         0(+0) |
+| hal\mbed_us_ticker_api.o        |         68(+68) |       4(+4) |       64(+64) |
+| platform\ATCmdParser.o          |         26(+26) |       0(+0) |         0(+0) |
+| platform\FileBase.o             |       324(+324) |       0(+0) |       56(+56) |
+| platform\FilePath.o             |       160(+160) |       0(+0) |         0(+0) |
+| platform\FileSystemHandle.o     |           8(+8) |       0(+0) |         0(+0) |
+| platform\mbed_assert.o          |         32(+32) |       0(+0) |         0(+0) |
+| platform\mbed_board.o           |       392(+392) |       0(+0) |         0(+0) |
+| platform\mbed_critical.o        |       256(+256) |       0(+0) |         4(+4) |
+| platform\mbed_error.o           |     1216(+1216) |       0(+0) |     120(+120) |
+| platform\mbed_mktime.o          |       552(+552) |       0(+0) |         0(+0) |
+| platform\mbed_retarget.o        |       806(+806) |   120(+120) |         8(+8) |
+| platform\mbed_rtc_time.o        |       260(+260) |     64(+64) |         0(+0) |
+| platform\mbed_sleep_manager.o   |       220(+220) |       0(+0) |         2(+2) |
+| platform\mbed_wait_api_rtos.o   |       128(+128) |       0(+0) |         0(+0) |
+| rtos\Mutex.o                    |       304(+304) |       0(+0) |         0(+0) |
+| rtos\TARGET_CORTEX              |     8430(+8430) |   173(+173) |   6352(+6352) |
+| rtos\Thread.o                   |         62(+62) |       0(+0) |         0(+0) |
+| targets\TARGET_RENESAS          |     9842(+9842) |   154(+154) |     711(+711) |
+| Subtotals                       | 108944(+108944) | 1271(+1271) | 90143(+90143) |
+Total Static RAM memory (data + bss): 91414(+91414) bytes
+Total Flash memory (text + data): 110215(+110215) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/seek/seek.bin
+
+Building project parallel (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: parallel
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+Link: parallel
+Elf2Bin: parallel
+| Module                          |           .text |       .data |          .bss |
+|---------------------------------|-----------------|-------------|---------------|
+| [lib]\dl7Sx_tlf.a               |   13220(+13220) |   540(+540) |     716(+716) |
+| [lib]\dlpp7Sx_tl_fc.a           |       134(+134) |       0(+0) |         0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.a    |   26364(+26364) |     12(+12) |     128(+128) |
+| [lib]\m7Sx_tlv.a                |       582(+582) |       0(+0) |         0(+0) |
+| [lib]\rt7Sx_tl.a                |     2368(+2368) |       0(+0) |         0(+0) |
+| [misc]                          |       373(+373) |       0(+0) | 66304(+66304) |
+| cmsis\TARGET_CORTEX_A           |     1048(+1048) |       0(+0) |   4084(+4084) |
+| components\storage              |     7964(+7964) |       0(+0) |   1716(+1716) |
+| drivers\RawSerial.o             |       272(+272) |       0(+0) |         0(+0) |
+| drivers\SPI.o                   |         78(+78) |       0(+0) |     716(+716) |
+| drivers\SerialBase.o            |       392(+392) |       0(+0) |         0(+0) |
+| drivers\Ticker.o                |       276(+276) |       0(+0) |         0(+0) |
+| drivers\Timeout.o               |         88(+88) |       0(+0) |         0(+0) |
+| drivers\TimerEvent.o            |         98(+98) |       0(+0) |         0(+0) |
+| events\EventQueue.o             |         82(+82) |       0(+0) |         0(+0) |
+| features\cellular               |         36(+36) |       0(+0) |         0(+0) |
+| features\frameworks             |     6340(+6340) |   204(+204) |     428(+428) |
+| features\nanostack              |       184(+184) |       0(+0) |         0(+0) |
+| features\nfc                    |         68(+68) |       0(+0) |         0(+0) |
+| features\storage                |   15596(+15596) |       0(+0) |       84(+84) |
+| hal\mbed_critical_section_api.o |       156(+156) |       0(+0) |         2(+2) |
+| hal\mbed_gpio.o                 |         68(+68) |       0(+0) |         0(+0) |
+| hal\mbed_pinmap_common.o        |       248(+248) |       0(+0) |         0(+0) |
+| hal\mbed_ticker_api.o           |     1164(+1164) |       0(+0) |         0(+0) |
+| hal\mbed_us_ticker_api.o        |         68(+68) |       4(+4) |       64(+64) |
+| platform\ATCmdParser.o          |         26(+26) |       0(+0) |         0(+0) |
+| platform\FileBase.o             |       324(+324) |       0(+0) |       56(+56) |
+| platform\FilePath.o             |       160(+160) |       0(+0) |         0(+0) |
+| platform\FileSystemHandle.o     |           8(+8) |       0(+0) |         0(+0) |
+| platform\mbed_assert.o          |         32(+32) |       0(+0) |         0(+0) |
+| platform\mbed_board.o           |       392(+392) |       0(+0) |         0(+0) |
+| platform\mbed_critical.o        |       256(+256) |       0(+0) |         4(+4) |
+| platform\mbed_error.o           |     1216(+1216) |       0(+0) |     120(+120) |
+| platform\mbed_mktime.o          |       552(+552) |       0(+0) |         0(+0) |
+| platform\mbed_retarget.o        |       810(+810) |   120(+120) |         8(+8) |
+| platform\mbed_rtc_time.o        |       260(+260) |     64(+64) |         0(+0) |
+| platform\mbed_sleep_manager.o   |       220(+220) |       0(+0) |         2(+2) |
+| platform\mbed_wait_api_rtos.o   |       128(+128) |       0(+0) |         0(+0) |
+| rtos\Mutex.o                    |       320(+320) |       0(+0) |         0(+0) |
+| rtos\Semaphore.o                |       208(+208) |       0(+0) |         0(+0) |
+| rtos\TARGET_CORTEX              |     9628(+9628) |   173(+173) |   6352(+6352) |
+| rtos\Thread.o                   |       844(+844) |       0(+0) |         0(+0) |
+| targets\TARGET_RENESAS          |     9842(+9842) |   154(+154) |     711(+711) |
+| Subtotals                       | 102493(+102493) | 1271(+1271) | 81495(+81495) |
+Total Static RAM memory (data + bss): 82766(+82766) bytes
+Total Flash memory (text + data): 103764(+103764) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/parallel/parallel.bin
+
+Building project files (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: files
+Scan: COMMON
+Compile [ 50.0%]: fsfat_test.c
+Compile [100.0%]: main.cpp
+Link: files
+Elf2Bin: files
+| Module                          |           .text |       .data |            .bss |
+|---------------------------------|-----------------|-------------|-----------------|
+| [lib]\dl7Sx_tlf.a               |   13486(+13486) |   680(+680) |       716(+716) |
+| [lib]\dlpp7Sx_tl_fc.a           |       130(+130) |       0(+0) |           0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.a    |   26364(+26364) |     12(+12) |       128(+128) |
+| [lib]\m7Sx_tlv.a                |       582(+582) |       0(+0) |           0(+0) |
+| [lib]\rt7Sx_tl.a                |     2520(+2520) |       0(+0) |           0(+0) |
+| [misc]                          |       405(+405) |       0(+0) |   66304(+66304) |
+| cmsis\TARGET_CORTEX_A           |     1048(+1048) |       0(+0) |     4084(+4084) |
+| components\storage              |   11820(+11820) |     32(+32) |   26756(+26756) |
+| drivers\RawSerial.o             |       272(+272) |       0(+0) |           0(+0) |
+| drivers\SPI.o                   |         78(+78) |       0(+0) |       716(+716) |
+| drivers\SerialBase.o            |       392(+392) |       0(+0) |           0(+0) |
+| drivers\Ticker.o                |       276(+276) |       0(+0) |           0(+0) |
+| drivers\Timeout.o               |         88(+88) |       0(+0) |           0(+0) |
+| drivers\TimerEvent.o            |         98(+98) |       0(+0) |           0(+0) |
+| events\EventQueue.o             |         82(+82) |       0(+0) |           0(+0) |
+| features\cellular               |         36(+36) |       0(+0) |           0(+0) |
+| features\frameworks             |     6284(+6284) |   204(+204) |       428(+428) |
+| features\nanostack              |       184(+184) |       0(+0) |           0(+0) |
+| features\nfc                    |         68(+68) |       0(+0) |           0(+0) |
+| features\storage                |   16944(+16944) |       0(+0) |         84(+84) |
+| hal\mbed_critical_section_api.o |       156(+156) |       0(+0) |           2(+2) |
+| hal\mbed_gpio.o                 |         68(+68) |       0(+0) |           0(+0) |
+| hal\mbed_pinmap_common.o        |       248(+248) |       0(+0) |           0(+0) |
+| hal\mbed_ticker_api.o           |     1164(+1164) |       0(+0) |           0(+0) |
+| hal\mbed_us_ticker_api.o        |         68(+68) |       4(+4) |         64(+64) |
+| platform\ATCmdParser.o          |         26(+26) |       0(+0) |           0(+0) |
+| platform\FileBase.o             |       324(+324) |       0(+0) |         56(+56) |
+| platform\FilePath.o             |       160(+160) |       0(+0) |           0(+0) |
+| platform\FileSystemHandle.o     |           8(+8) |       0(+0) |           0(+0) |
+| platform\mbed_assert.o          |         32(+32) |       0(+0) |           0(+0) |
+| platform\mbed_board.o           |       392(+392) |       0(+0) |           0(+0) |
+| platform\mbed_critical.o        |       256(+256) |       0(+0) |           4(+4) |
+| platform\mbed_error.o           |     1216(+1216) |       0(+0) |       120(+120) |
+| platform\mbed_mktime.o          |       552(+552) |       0(+0) |           0(+0) |
+| platform\mbed_retarget.o        |       806(+806) |   120(+120) |           8(+8) |
+| platform\mbed_rtc_time.o        |       260(+260) |     64(+64) |           0(+0) |
+| platform\mbed_sleep_manager.o   |       220(+220) |       0(+0) |           2(+2) |
+| platform\mbed_wait_api_rtos.o   |       128(+128) |       0(+0) |           0(+0) |
+| rtos\Mutex.o                    |       304(+304) |       0(+0) |           0(+0) |
+| rtos\TARGET_CORTEX              |     8430(+8430) |   173(+173) |     6352(+6352) |
+| rtos\Thread.o                   |         62(+62) |       0(+0) |           0(+0) |
+| targets\TARGET_RENESAS          |     9842(+9842) |   154(+154) |       711(+711) |
+| Subtotals                       | 105879(+105879) | 1443(+1443) | 106535(+106535) |
+Total Static RAM memory (data + bss): 107978(+107978) bytes
+Total Flash memory (text + data): 107322(+107322) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/files/files.bin
+
+Memory map breakdown for built projects (values in Bytes):
+| name     | target    | toolchain | static_ram | total_flash |
+|----------|-----------|-----------|------------|-------------|
+| dirs     | VK_RZ_A1H | IAR       |      91446 |      107470 |
+| files    | VK_RZ_A1H | IAR       |     107978 |      107322 |
+| fopen    | VK_RZ_A1H | IAR       |      81002 |       47592 |
+| parallel | VK_RZ_A1H | IAR       |      82766 |      103764 |
+| seek     | VK_RZ_A1H | IAR       |      91414 |      110215 |
+
+
+Build successes:
+  * VK_RZ_A1H::IAR::MBED-BUILD
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-DIRS
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FILES
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FOPEN
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-PARALLEL
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-SEEK
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDHI_tests.log	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,1368 @@
+D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver>mbed test -t IAR -m VK_RZ_A1H -n mbed-os-components-storage-blockdevice-component_rz_sdhi-tests*
+[mbed] Auto-installing missing Python modules...
+Building library mbed-build (VK_RZ_A1H, IAR)
+Scan: driver
+Building project fopen (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: fopen
+Scan: COMMON
+Link: fopen
+Elf2Bin: fopen
+| Module                          |     .text |    .data |      .bss |
+|---------------------------------|-----------|----------|-----------|
+| [lib]\dl7Sx_tlf.a               | 11116(+0) |  480(+0) |   716(+0) |
+| [lib]\dlpp7Sx_tl_fc.a           |    84(+0) |    0(+0) |     0(+0) |
+| [lib]\m7Sx_tlv.a                |   582(+0) |    0(+0) |     0(+0) |
+| [lib]\rt7Sx_tl.a                |  2020(+0) |    0(+0) |     0(+0) |
+| [misc]                          |   331(+0) |    0(+0) | 66304(+0) |
+| cmsis\TARGET_CORTEX_A           |  1048(+0) |    0(+0) |  4084(+0) |
+| components\storage              |  1310(+0) |    0(+0) |   492(+0) |
+| drivers\RawSerial.o             |   272(+0) |    0(+0) |     0(+0) |
+| drivers\SPI.o                   |    78(+0) |    0(+0) |   716(+0) |
+| drivers\SerialBase.o            |   392(+0) |    0(+0) |     0(+0) |
+| drivers\Ticker.o                |   276(+0) |    0(+0) |     0(+0) |
+| drivers\Timeout.o               |    88(+0) |    0(+0) |     0(+0) |
+| drivers\TimerEvent.o            |    98(+0) |    0(+0) |     0(+0) |
+| events\EventQueue.o             |    82(+0) |    0(+0) |     0(+0) |
+| features\cellular               |    36(+0) |    0(+0) |     0(+0) |
+| features\frameworks             |  5506(+0) |  204(+0) |   236(+0) |
+| features\nanostack              |   184(+0) |    0(+0) |     0(+0) |
+| features\nfc                    |    68(+0) |    0(+0) |     0(+0) |
+| hal\mbed_critical_section_api.o |   156(+0) |    0(+0) |     2(+0) |
+| hal\mbed_gpio.o                 |    68(+0) |    0(+0) |     0(+0) |
+| hal\mbed_pinmap_common.o        |   248(+0) |    0(+0) |     0(+0) |
+| hal\mbed_ticker_api.o           |  1164(+0) |    0(+0) |     0(+0) |
+| hal\mbed_us_ticker_api.o        |    68(+0) |    4(+0) |    64(+0) |
+| platform\ATCmdParser.o          |    26(+0) |    0(+0) |     0(+0) |
+| platform\FileBase.o             |   148(+0) |    0(+0) |    56(+0) |
+| platform\FilePath.o             |   160(+0) |    0(+0) |     0(+0) |
+| platform\mbed_assert.o          |    32(+0) |    0(+0) |     0(+0) |
+| platform\mbed_board.o           |   392(+0) |    0(+0) |     0(+0) |
+| platform\mbed_critical.o        |   256(+0) |    0(+0) |     4(+0) |
+| platform\mbed_error.o           |  1216(+0) |    0(+0) |   120(+0) |
+| platform\mbed_retarget.o        |   690(+0) |  120(+0) |     8(+0) |
+| platform\mbed_rtc_time.o        |   136(+0) |    0(+0) |     0(+0) |
+| platform\mbed_sleep_manager.o   |   220(+0) |    0(+0) |     2(+0) |
+| platform\mbed_wait_api_rtos.o   |   128(+0) |    0(+0) |     0(+0) |
+| rtos\Mutex.o                    |   304(+0) |    0(+0) |     0(+0) |
+| rtos\TARGET_CORTEX              |  8358(+0) |  173(+0) |  6352(+0) |
+| rtos\Thread.o                   |    62(+0) |    0(+0) |     0(+0) |
+| targets\TARGET_RENESAS          |  9054(+0) |  154(+0) |   711(+0) |
+| Subtotals                       | 46457(+0) | 1135(+0) | 79867(+0) |
+Total Static RAM memory (data + bss): 81002(+0) bytes
+Total Flash memory (text + data): 47592(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/fopen/fopen.bin
+
+Building project dirs (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: dirs
+Scan: COMMON
+Link: dirs
+Elf2Bin: dirs
+| Module                          |      .text |    .data |      .bss |
+|---------------------------------|------------|----------|-----------|
+| [lib]\dl7Sx_tlf.a               |  13220(+0) |  540(+0) |   716(+0) |
+| [lib]\dlpp7Sx_tl_fc.a           |    130(+0) |    0(+0) |     0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.a    |  26364(+0) |   12(+0) |   128(+0) |
+| [lib]\m7Sx_tlv.a                |    582(+0) |    0(+0) |     0(+0) |
+| [lib]\rt7Sx_tl.a                |   2520(+0) |    0(+0) |     0(+0) |
+| [misc]                          |    371(+0) |    0(+0) | 66304(+0) |
+| cmsis\TARGET_CORTEX_A           |   1048(+0) |    0(+0) |  4084(+0) |
+| components\storage              |  11732(+0) |    0(+0) | 10396(+0) |
+| drivers\RawSerial.o             |    272(+0) |    0(+0) |     0(+0) |
+| drivers\SPI.o                   |     78(+0) |    0(+0) |   716(+0) |
+| drivers\SerialBase.o            |    392(+0) |    0(+0) |     0(+0) |
+| drivers\Ticker.o                |    276(+0) |    0(+0) |     0(+0) |
+| drivers\Timeout.o               |     88(+0) |    0(+0) |     0(+0) |
+| drivers\TimerEvent.o            |     98(+0) |    0(+0) |     0(+0) |
+| events\EventQueue.o             |     82(+0) |    0(+0) |     0(+0) |
+| features\cellular               |     36(+0) |    0(+0) |     0(+0) |
+| features\frameworks             |   6420(+0) |  204(+0) |   428(+0) |
+| features\nanostack              |    184(+0) |    0(+0) |     0(+0) |
+| features\nfc                    |     68(+0) |    0(+0) |     0(+0) |
+| features\storage                |  17516(+0) |    0(+0) |    84(+0) |
+| hal\mbed_critical_section_api.o |    156(+0) |    0(+0) |     2(+0) |
+| hal\mbed_gpio.o                 |     68(+0) |    0(+0) |     0(+0) |
+| hal\mbed_pinmap_common.o        |    248(+0) |    0(+0) |     0(+0) |
+| hal\mbed_ticker_api.o           |   1164(+0) |    0(+0) |     0(+0) |
+| hal\mbed_us_ticker_api.o        |     68(+0) |    4(+0) |    64(+0) |
+| platform\ATCmdParser.o          |     26(+0) |    0(+0) |     0(+0) |
+| platform\FileBase.o             |    324(+0) |    0(+0) |    56(+0) |
+| platform\FilePath.o             |    160(+0) |    0(+0) |     0(+0) |
+| platform\FileSystemHandle.o     |      8(+0) |    0(+0) |     0(+0) |
+| platform\mbed_assert.o          |     32(+0) |    0(+0) |     0(+0) |
+| platform\mbed_board.o           |    392(+0) |    0(+0) |     0(+0) |
+| platform\mbed_critical.o        |    256(+0) |    0(+0) |     4(+0) |
+| platform\mbed_error.o           |   1216(+0) |    0(+0) |   120(+0) |
+| platform\mbed_mktime.o          |    552(+0) |    0(+0) |     0(+0) |
+| platform\mbed_retarget.o        |    806(+0) |  120(+0) |     8(+0) |
+| platform\mbed_rtc_time.o        |    260(+0) |   64(+0) |     0(+0) |
+| platform\mbed_sleep_manager.o   |    220(+0) |    0(+0) |     2(+0) |
+| platform\mbed_wait_api_rtos.o   |    128(+0) |    0(+0) |     0(+0) |
+| rtos\Mutex.o                    |    304(+0) |    0(+0) |     0(+0) |
+| rtos\TARGET_CORTEX              |   8430(+0) |  173(+0) |  6352(+0) |
+| rtos\Thread.o                   |     62(+0) |    0(+0) |     0(+0) |
+| targets\TARGET_RENESAS          |   9842(+0) |  154(+0) |   711(+0) |
+| Subtotals                       | 106199(+0) | 1271(+0) | 90175(+0) |
+Total Static RAM memory (data + bss): 91446(+0) bytes
+Total Flash memory (text + data): 107470(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/dirs/dirs.bin
+
+Building project seek (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: seek
+Scan: COMMON
+Link: seek
+Elf2Bin: seek
+| Module                          |      .text |    .data |      .bss |
+|---------------------------------|------------|----------|-----------|
+| [lib]\dl7Sx_tlf.a               |  13220(+0) |  540(+0) |   716(+0) |
+| [lib]\dlpp7Sx_tl_fc.a           |    130(+0) |    0(+0) |     0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.a    |  26364(+0) |   12(+0) |   128(+0) |
+| [lib]\m7Sx_tlv.a                |    582(+0) |    0(+0) |     0(+0) |
+| [lib]\rt7Sx_tl.a                |   2520(+0) |    0(+0) |     0(+0) |
+| [misc]                          |    372(+0) |    0(+0) | 66304(+0) |
+| cmsis\TARGET_CORTEX_A           |   1048(+0) |    0(+0) |  4084(+0) |
+| components\storage              |  14268(+0) |    0(+0) | 10364(+0) |
+| drivers\RawSerial.o             |    272(+0) |    0(+0) |     0(+0) |
+| drivers\SPI.o                   |     78(+0) |    0(+0) |   716(+0) |
+| drivers\SerialBase.o            |    392(+0) |    0(+0) |     0(+0) |
+| drivers\Ticker.o                |    276(+0) |    0(+0) |     0(+0) |
+| drivers\Timeout.o               |     88(+0) |    0(+0) |     0(+0) |
+| drivers\TimerEvent.o            |     98(+0) |    0(+0) |     0(+0) |
+| events\EventQueue.o             |     82(+0) |    0(+0) |     0(+0) |
+| features\cellular               |     36(+0) |    0(+0) |     0(+0) |
+| features\frameworks             |   6284(+0) |  204(+0) |   428(+0) |
+| features\nanostack              |    184(+0) |    0(+0) |     0(+0) |
+| features\nfc                    |     68(+0) |    0(+0) |     0(+0) |
+| features\storage                |  17860(+0) |    0(+0) |    84(+0) |
+| hal\mbed_critical_section_api.o |    156(+0) |    0(+0) |     2(+0) |
+| hal\mbed_gpio.o                 |     68(+0) |    0(+0) |     0(+0) |
+| hal\mbed_pinmap_common.o        |    248(+0) |    0(+0) |     0(+0) |
+| hal\mbed_ticker_api.o           |   1164(+0) |    0(+0) |     0(+0) |
+| hal\mbed_us_ticker_api.o        |     68(+0) |    4(+0) |    64(+0) |
+| platform\ATCmdParser.o          |     26(+0) |    0(+0) |     0(+0) |
+| platform\FileBase.o             |    324(+0) |    0(+0) |    56(+0) |
+| platform\FilePath.o             |    160(+0) |    0(+0) |     0(+0) |
+| platform\FileSystemHandle.o     |      8(+0) |    0(+0) |     0(+0) |
+| platform\mbed_assert.o          |     32(+0) |    0(+0) |     0(+0) |
+| platform\mbed_board.o           |    392(+0) |    0(+0) |     0(+0) |
+| platform\mbed_critical.o        |    256(+0) |    0(+0) |     4(+0) |
+| platform\mbed_error.o           |   1216(+0) |    0(+0) |   120(+0) |
+| platform\mbed_mktime.o          |    552(+0) |    0(+0) |     0(+0) |
+| platform\mbed_retarget.o        |    806(+0) |  120(+0) |     8(+0) |
+| platform\mbed_rtc_time.o        |    260(+0) |   64(+0) |     0(+0) |
+| platform\mbed_sleep_manager.o   |    220(+0) |    0(+0) |     2(+0) |
+| platform\mbed_wait_api_rtos.o   |    128(+0) |    0(+0) |     0(+0) |
+| rtos\Mutex.o                    |    304(+0) |    0(+0) |     0(+0) |
+| rtos\TARGET_CORTEX              |   8430(+0) |  173(+0) |  6352(+0) |
+| rtos\Thread.o                   |     62(+0) |    0(+0) |     0(+0) |
+| targets\TARGET_RENESAS          |   9842(+0) |  154(+0) |   711(+0) |
+| Subtotals                       | 108944(+0) | 1271(+0) | 90143(+0) |
+Total Static RAM memory (data + bss): 91414(+0) bytes
+Total Flash memory (text + data): 110215(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/seek/seek.bin
+
+Building project parallel (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: parallel
+Scan: COMMON
+Link: parallel
+Elf2Bin: parallel
+| Module                          |      .text |    .data |      .bss |
+|---------------------------------|------------|----------|-----------|
+| [lib]\dl7Sx_tlf.a               |  13220(+0) |  540(+0) |   716(+0) |
+| [lib]\dlpp7Sx_tl_fc.a           |    134(+0) |    0(+0) |     0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.a    |  26364(+0) |   12(+0) |   128(+0) |
+| [lib]\m7Sx_tlv.a                |    582(+0) |    0(+0) |     0(+0) |
+| [lib]\rt7Sx_tl.a                |   2368(+0) |    0(+0) |     0(+0) |
+| [misc]                          |    373(+0) |    0(+0) | 66304(+0) |
+| cmsis\TARGET_CORTEX_A           |   1048(+0) |    0(+0) |  4084(+0) |
+| components\storage              |   7964(+0) |    0(+0) |  1716(+0) |
+| drivers\RawSerial.o             |    272(+0) |    0(+0) |     0(+0) |
+| drivers\SPI.o                   |     78(+0) |    0(+0) |   716(+0) |
+| drivers\SerialBase.o            |    392(+0) |    0(+0) |     0(+0) |
+| drivers\Ticker.o                |    276(+0) |    0(+0) |     0(+0) |
+| drivers\Timeout.o               |     88(+0) |    0(+0) |     0(+0) |
+| drivers\TimerEvent.o            |     98(+0) |    0(+0) |     0(+0) |
+| events\EventQueue.o             |     82(+0) |    0(+0) |     0(+0) |
+| features\cellular               |     36(+0) |    0(+0) |     0(+0) |
+| features\frameworks             |   6340(+0) |  204(+0) |   428(+0) |
+| features\nanostack              |    184(+0) |    0(+0) |     0(+0) |
+| features\nfc                    |     68(+0) |    0(+0) |     0(+0) |
+| features\storage                |  15596(+0) |    0(+0) |    84(+0) |
+| hal\mbed_critical_section_api.o |    156(+0) |    0(+0) |     2(+0) |
+| hal\mbed_gpio.o                 |     68(+0) |    0(+0) |     0(+0) |
+| hal\mbed_pinmap_common.o        |    248(+0) |    0(+0) |     0(+0) |
+| hal\mbed_ticker_api.o           |   1164(+0) |    0(+0) |     0(+0) |
+| hal\mbed_us_ticker_api.o        |     68(+0) |    4(+0) |    64(+0) |
+| platform\ATCmdParser.o          |     26(+0) |    0(+0) |     0(+0) |
+| platform\FileBase.o             |    324(+0) |    0(+0) |    56(+0) |
+| platform\FilePath.o             |    160(+0) |    0(+0) |     0(+0) |
+| platform\FileSystemHandle.o     |      8(+0) |    0(+0) |     0(+0) |
+| platform\mbed_assert.o          |     32(+0) |    0(+0) |     0(+0) |
+| platform\mbed_board.o           |    392(+0) |    0(+0) |     0(+0) |
+| platform\mbed_critical.o        |    256(+0) |    0(+0) |     4(+0) |
+| platform\mbed_error.o           |   1216(+0) |    0(+0) |   120(+0) |
+| platform\mbed_mktime.o          |    552(+0) |    0(+0) |     0(+0) |
+| platform\mbed_retarget.o        |    810(+0) |  120(+0) |     8(+0) |
+| platform\mbed_rtc_time.o        |    260(+0) |   64(+0) |     0(+0) |
+| platform\mbed_sleep_manager.o   |    220(+0) |    0(+0) |     2(+0) |
+| platform\mbed_wait_api_rtos.o   |    128(+0) |    0(+0) |     0(+0) |
+| rtos\Mutex.o                    |    320(+0) |    0(+0) |     0(+0) |
+| rtos\Semaphore.o                |    208(+0) |    0(+0) |     0(+0) |
+| rtos\TARGET_CORTEX              |   9628(+0) |  173(+0) |  6352(+0) |
+| rtos\Thread.o                   |    844(+0) |    0(+0) |     0(+0) |
+| targets\TARGET_RENESAS          |   9842(+0) |  154(+0) |   711(+0) |
+| Subtotals                       | 102493(+0) | 1271(+0) | 81495(+0) |
+Total Static RAM memory (data + bss): 82766(+0) bytes
+Total Flash memory (text + data): 103764(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/parallel/parallel.bin
+
+Building project files (VK_RZ_A1H, IAR)
+Scan: IAR
+Scan: files
+Scan: COMMON
+Link: files
+Elf2Bin: files
+| Module                          |      .text |    .data |       .bss |
+|---------------------------------|------------|----------|------------|
+| [lib]\dl7Sx_tlf.a               |  13486(+0) |  680(+0) |    716(+0) |
+| [lib]\dlpp7Sx_tl_fc.a           |    130(+0) |    0(+0) |      0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.a    |  26364(+0) |   12(+0) |    128(+0) |
+| [lib]\m7Sx_tlv.a                |    582(+0) |    0(+0) |      0(+0) |
+| [lib]\rt7Sx_tl.a                |   2520(+0) |    0(+0) |      0(+0) |
+| [misc]                          |    405(+0) |    0(+0) |  66304(+0) |
+| cmsis\TARGET_CORTEX_A           |   1048(+0) |    0(+0) |   4084(+0) |
+| components\storage              |  11820(+0) |   32(+0) |  26756(+0) |
+| drivers\RawSerial.o             |    272(+0) |    0(+0) |      0(+0) |
+| drivers\SPI.o                   |     78(+0) |    0(+0) |    716(+0) |
+| drivers\SerialBase.o            |    392(+0) |    0(+0) |      0(+0) |
+| drivers\Ticker.o                |    276(+0) |    0(+0) |      0(+0) |
+| drivers\Timeout.o               |     88(+0) |    0(+0) |      0(+0) |
+| drivers\TimerEvent.o            |     98(+0) |    0(+0) |      0(+0) |
+| events\EventQueue.o             |     82(+0) |    0(+0) |      0(+0) |
+| features\cellular               |     36(+0) |    0(+0) |      0(+0) |
+| features\frameworks             |   6284(+0) |  204(+0) |    428(+0) |
+| features\nanostack              |    184(+0) |    0(+0) |      0(+0) |
+| features\nfc                    |     68(+0) |    0(+0) |      0(+0) |
+| features\storage                |  16944(+0) |    0(+0) |     84(+0) |
+| hal\mbed_critical_section_api.o |    156(+0) |    0(+0) |      2(+0) |
+| hal\mbed_gpio.o                 |     68(+0) |    0(+0) |      0(+0) |
+| hal\mbed_pinmap_common.o        |    248(+0) |    0(+0) |      0(+0) |
+| hal\mbed_ticker_api.o           |   1164(+0) |    0(+0) |      0(+0) |
+| hal\mbed_us_ticker_api.o        |     68(+0) |    4(+0) |     64(+0) |
+| platform\ATCmdParser.o          |     26(+0) |    0(+0) |      0(+0) |
+| platform\FileBase.o             |    324(+0) |    0(+0) |     56(+0) |
+| platform\FilePath.o             |    160(+0) |    0(+0) |      0(+0) |
+| platform\FileSystemHandle.o     |      8(+0) |    0(+0) |      0(+0) |
+| platform\mbed_assert.o          |     32(+0) |    0(+0) |      0(+0) |
+| platform\mbed_board.o           |    392(+0) |    0(+0) |      0(+0) |
+| platform\mbed_critical.o        |    256(+0) |    0(+0) |      4(+0) |
+| platform\mbed_error.o           |   1216(+0) |    0(+0) |    120(+0) |
+| platform\mbed_mktime.o          |    552(+0) |    0(+0) |      0(+0) |
+| platform\mbed_retarget.o        |    806(+0) |  120(+0) |      8(+0) |
+| platform\mbed_rtc_time.o        |    260(+0) |   64(+0) |      0(+0) |
+| platform\mbed_sleep_manager.o   |    220(+0) |    0(+0) |      2(+0) |
+| platform\mbed_wait_api_rtos.o   |    128(+0) |    0(+0) |      0(+0) |
+| rtos\Mutex.o                    |    304(+0) |    0(+0) |      0(+0) |
+| rtos\TARGET_CORTEX              |   8430(+0) |  173(+0) |   6352(+0) |
+| rtos\Thread.o                   |     62(+0) |    0(+0) |      0(+0) |
+| targets\TARGET_RENESAS          |   9842(+0) |  154(+0) |    711(+0) |
+| Subtotals                       | 105879(+0) | 1443(+0) | 106535(+0) |
+Total Static RAM memory (data + bss): 107978(+0) bytes
+Total Flash memory (text + data): 107322(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/IAR/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/files/files.bin
+
+Memory map breakdown for built projects (values in Bytes):
+| name     | target    | toolchain | static_ram | total_flash |
+|----------|-----------|-----------|------------|-------------|
+| dirs     | VK_RZ_A1H | IAR       |      91446 |      107470 |
+| files    | VK_RZ_A1H | IAR       |     107978 |      107322 |
+| fopen    | VK_RZ_A1H | IAR       |      81002 |       47592 |
+| parallel | VK_RZ_A1H | IAR       |      82766 |      103764 |
+| seek     | VK_RZ_A1H | IAR       |      91414 |      110215 |
+
+
+Build successes:
+  * VK_RZ_A1H::IAR::MBED-BUILD
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-DIRS
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FILES
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FOPEN
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-PARALLEL
+  * VK_RZ_A1H::IAR::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-SEEK
+mbedgt: greentea test automation tool ver. 1.3.2
+mbedgt: test specification file 'D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver\BUILD\tests\VK_RZ_A1H\IAR\test_spec.json' (specified with --test-spec option)
+mbedgt: using 'D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver\BUILD\tests\VK_RZ_A1H\IAR\test_spec.json' from current directory!
+mbedgt: detecting connected mbed-enabled devices...
+[1553876834.06][mbedls.lstools_base]Call to deprecated function list_mbeds_ext. Functionality has been moved into 'list_mbeds'. Please use list_mbeds with 'unique_names=True' and 'read_details_txt=True'
+mbedgt: detected 1 device
+mbedgt: processing target 'VK_RZ_A1H' toolchain 'IAR' compatible platforms... (note: switch set to --parallel 1)
+mbedgt: test case filter (specified with -n option)
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek'
+mbedgt: running 5 tests for platform 'VK_RZ_A1H' and toolchain 'IAR'
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen' . OK in 18.96 sec
+        test case: 'FSFAT_FOPEN_TEST_00: format sd card to FAT FS.' .................................. OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath.'  OK in 0.13 sec
+        test case: 'FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.' ................ OK in 0.09 sec
+        test case: 'FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.' ............... OK in 0.09 sec
+        test case: 'FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.' ...... OK in 0.11 sec
+        test case: 'FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).' ...................... OK in 0.10 sec
+        test case: 'FSFAT_FOPEN_TEST_07: fopen()/errno handling.' .................................... OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.' ........................ OK in 0.09 sec
+        test case: 'FSFAT_FOPEN_TEST_09: ftell() handling.' .......................................... OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_10: remove() test.' ............................................. OK in 0.07 sec
+        test case: 'FSFAT_FOPEN_TEST_11: rename().' .................................................. OK in 0.06 sec
+        test case: 'FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.' ..................... OK in 0.10 sec
+        test case: 'FSFAT_FOPEN_TEST_13: mkdir() test.' .............................................. OK in 0.07 sec
+        test case: 'FSFAT_FOPEN_TEST_14: stat() test.' ............................................... OK in 0.06 sec
+        test case: 'FSFAT_FOPEN_TEST_15: format() test.' ............................................. OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.' ........................... OK in 0.10 sec
+mbedgt: test case summary: 16 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs' .. OK in 20.09 sec
+        test case: 'Directory creation' .............................................................. OK in 0.07 sec
+        test case: 'Directory failures' .............................................................. OK in 0.05 sec
+        test case: 'Directory iteration' ............................................................. OK in 0.05 sec
+        test case: 'Directory remove' ................................................................ OK in 0.08 sec
+        test case: 'Directory rename' ................................................................ OK in 0.19 sec
+        test case: 'Directory tests' ................................................................. OK in 0.55 sec
+        test case: 'File creation' ................................................................... OK in 0.05 sec
+        test case: 'Multi-block directory' ........................................................... OK in 2.49 sec
+        test case: 'Nested directories' .............................................................. OK in 0.09 sec
+        test case: 'Root directory' .................................................................. OK in 0.03 sec
+mbedgt: test case summary: 10 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel'  OK in 15.54 sec
+        test case: 'File tests' ...................................................................... OK in 0.56 sec
+        test case: 'Filesystem access from multiple threads' ......................................... OK in 0.16 sec
+mbedgt: test case summary: 2 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files' . OK in 19.06 sec
+        test case: 'Block Size file test' ............................................................ OK in 0.16 sec
+        test case: 'Dir check' ....................................................................... OK in 0.04 sec
+        test case: 'File tests' ...................................................................... OK in 0.67 sec
+        test case: 'Large file test' ................................................................. OK in 1.29 sec
+        test case: 'Medium file test' ................................................................ OK in 0.08 sec
+        test case: 'Multiple block size file test' ................................................... OK in 0.09 sec
+        test case: 'Non-overlap check' ............................................................... OK in 0.35 sec
+        test case: 'Simple file test' ................................................................ OK in 0.06 sec
+        test case: 'Small file test' ................................................................. OK in 0.05 sec
+mbedgt: test case summary: 9 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek' .. OK in 19.94 sec
+        test case: 'Boundary seek and write' ......................................................... OK in 0.09 sec
+        test case: 'Large dir seek' .................................................................. OK in 0.06 sec
+        test case: 'Large file seek' ................................................................. OK in 0.05 sec
+        test case: 'Large file seek and write' ....................................................... OK in 0.06 sec
+        test case: 'Out-of-bounds seek' .............................................................. OK in 0.05 sec
+        test case: 'Seek tests' ...................................................................... OK in 3.07 sec
+        test case: 'Simple dir seek' ................................................................. OK in 0.03 sec
+        test case: 'Simple file seek' ................................................................ OK in 0.05 sec
+        test case: 'Simple file seek and write' ...................................................... OK in 0.06 sec
+mbedgt: test case summary: 9 passes, 0 failures
+mbedgt: all tests finished!
+mbedgt: shuffle seed: 0.4354926832
+mbedgt: test suite report:
++---------------+---------------+------------------------------------------------------------------------------------+--------+--------------------+-------------+
+| target        | platform_name | test suite                                                                         | result | elapsed_time (sec) | copy_method |
++---------------+---------------+------------------------------------------------------------------------------------+--------+--------------------+-------------+
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | OK     | 20.09              | default     |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | OK     | 19.06              | default     |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | OK     | 18.96              | default     |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel | OK     | 15.54              | default     |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | OK     | 19.94              | default     |
++---------------+---------------+------------------------------------------------------------------------------------+--------+--------------------+-------------+
+mbedgt: test suite results: 5 OK
+mbedgt: test case report:
++---------------+---------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+--------+--------+--------+--------------------+
+| target        | platform_name | test suite                                                                         | test case                                                                              | passed | failed | result | elapsed_time (sec) |
++---------------+---------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+--------+--------+--------+--------------------+
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory creation                                                                     | 1      | 0      | OK     | 0.07               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory failures                                                                     | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory iteration                                                                    | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory remove                                                                       | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory rename                                                                       | 1      | 0      | OK     | 0.19               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory tests                                                                        | 1      | 0      | OK     | 0.55               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | File creation                                                                          | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Multi-block directory                                                                  | 1      | 0      | OK     | 2.49               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Nested directories                                                                     | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Root directory                                                                         | 1      | 0      | OK     | 0.03               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Block Size file test                                                                   | 1      | 0      | OK     | 0.16               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Dir check                                                                              | 1      | 0      | OK     | 0.04               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | File tests                                                                             | 1      | 0      | OK     | 0.67               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Large file test                                                                        | 1      | 0      | OK     | 1.29               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Medium file test                                                                       | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Multiple block size file test                                                          | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Non-overlap check                                                                      | 1      | 0      | OK     | 0.35               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Simple file test                                                                       | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Small file test                                                                        | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_00: format sd card to FAT FS.                                         | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath. | 1      | 0      | OK     | 0.13               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.                       | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.                      | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.             | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).                             | 1      | 0      | OK     | 0.1                |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_07: fopen()/errno handling.                                           | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.                               | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_09: ftell() handling.                                                 | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_10: remove() test.                                                    | 1      | 0      | OK     | 0.07               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_11: rename().                                                         | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.                            | 1      | 0      | OK     | 0.1                |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_13: mkdir() test.                                                     | 1      | 0      | OK     | 0.07               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_14: stat() test.                                                      | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_15: format() test.                                                    | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.                                  | 1      | 0      | OK     | 0.1                |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel | File tests                                                                             | 1      | 0      | OK     | 0.56               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel | Filesystem access from multiple threads                                                | 1      | 0      | OK     | 0.16               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Boundary seek and write                                                                | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Large dir seek                                                                         | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Large file seek                                                                        | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Large file seek and write                                                              | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Out-of-bounds seek                                                                     | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Seek tests                                                                             | 1      | 0      | OK     | 3.07               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Simple dir seek                                                                        | 1      | 0      | OK     | 0.03               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Simple file seek                                                                       | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-IAR | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Simple file seek and write                                                             | 1      | 0      | OK     | 0.06               |
++---------------+---------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+--------+--------+--------+--------------------+
+mbedgt: test case results: 46 OK
+mbedgt: completed in 94.57 sec
+
+D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver>mbed test -t ARM -m VK_RZ_A1H -n mbed-os-components-storage-blockdevice-component_rz_sdhi-tests*
+[mbed] Auto-installing missing Python modules...
+Building library mbed-build (VK_RZ_A1H, ARM)
+Scan: driver
+Building project fopen (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: fopen
+Scan: COMMON
+Link: fopen
+Elf2Bin: fopen
+| Module                          |     .text |    .data |       .bss |
+|---------------------------------|-----------|----------|------------|
+| [lib]\c_2.l                     | 12837(+0) |   16(+0) |    348(+0) |
+| [lib]\cpp_5s.l                  |   118(+0) |   44(+0) |      0(+0) |
+| [lib]\cpprt_5.l                 |    78(+0) |    0(+0) |      0(+0) |
+| [lib]\fz_2v.l                   |    18(+0) |    0(+0) |      0(+0) |
+| [lib]\m_2v.l                    |    48(+0) |    0(+0) |      0(+0) |
+| anon$$obj.o                     |    40(+0) |    0(+0) | 111360(+0) |
+| cmsis\TARGET_CORTEX_A           |  1452(+0) |    4(+0) |   4080(+0) |
+| components\802.15.4_RF          |    44(+0) |    0(+0) |      0(+0) |
+| components\storage              |  1389(+0) |    0(+0) |    492(+0) |
+| components\wifi                 |    55(+0) |    0(+0) |      0(+0) |
+| drivers\I2C.o                   |    54(+0) |    0(+0) |      0(+0) |
+| drivers\RawSerial.o             |   560(+0) |    0(+0) |      0(+0) |
+| drivers\SPI.o                   |   204(+0) |    0(+0) |    768(+0) |
+| drivers\SerialBase.o            |   720(+0) |    0(+0) |      0(+0) |
+| drivers\Ticker.o                |   376(+0) |    0(+0) |      0(+0) |
+| drivers\Timeout.o               |   160(+0) |    0(+0) |      0(+0) |
+| drivers\TimerEvent.o            |   144(+0) |    0(+0) |      0(+0) |
+| features\frameworks             |  9200(+0) |  140(+0) |    304(+0) |
+| features\netsocket              |   132(+0) |    0(+0) |      0(+0) |
+| hal\mbed_critical_section_api.o |   192(+0) |    2(+0) |      0(+0) |
+| hal\mbed_gpio.o                 |    80(+0) |    0(+0) |      0(+0) |
+| hal\mbed_pinmap_common.o        |   348(+0) |    0(+0) |      0(+0) |
+| hal\mbed_ticker_api.o           |  1904(+0) |    0(+0) |      0(+0) |
+| hal\mbed_us_ticker_api.o        |    88(+0) |    4(+0) |     64(+0) |
+| platform\FileBase.o             |   220(+0) |    8(+0) |     48(+0) |
+| platform\FileHandle.o           |     8(+0) |    0(+0) |      0(+0) |
+| platform\FilePath.o             |   360(+0) |    0(+0) |      0(+0) |
+| platform\mbed_assert.o          |    48(+0) |    0(+0) |      0(+0) |
+| platform\mbed_board.o           |   345(+0) |    0(+0) |      0(+0) |
+| platform\mbed_critical.o        |   344(+0) |    4(+0) |      0(+0) |
+| platform\mbed_error.o           |  1388(+0) |   12(+0) |    104(+0) |
+| platform\mbed_retarget.o        |  2408(+0) |   80(+0) |    392(+0) |
+| platform\mbed_sleep_manager.o   |   292(+0) |   24(+0) |      0(+0) |
+| platform\mbed_wait_api_rtos.o   |   156(+0) |    0(+0) |      0(+0) |
+| rtos\Mutex.o                    |   504(+0) |    0(+0) |      0(+0) |
+| rtos\TARGET_CORTEX              | 16838(+0) | 2298(+0) |   4504(+0) |
+| targets\TARGET_RENESAS          | 13660(+0) |  177(+0) |    652(+0) |
+| Subtotals                       | 66812(+0) | 2813(+0) | 123116(+0) |
+Total Static RAM memory (data + bss): 125929(+0) bytes
+Total Flash memory (text + data): 69625(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/fopen/fopen.bin
+
+Building project dirs (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: dirs
+Scan: COMMON
+Link: dirs
+Elf2Bin: dirs
+| Module                          |      .text |    .data |       .bss |
+|---------------------------------|------------|----------|------------|
+| [lib]\c_2.l                     |  21104(+0) |   48(+0) |    434(+0) |
+| [lib]\cpp_5s.l                  |   5248(+0) |   55(+0) |     40(+0) |
+| [lib]\cpprt_5.l                 |    558(+0) |    0(+0) |      0(+0) |
+| [lib]\fz_2v.l                   |    294(+0) |    0(+0) |      0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.ar   |  26364(+0) |   12(+0) |    128(+0) |
+| [lib]\m_2v.l                    |    560(+0) |    0(+0) |      0(+0) |
+| anon$$obj.o                     |     56(+0) |    0(+0) | 111360(+0) |
+| cmsis\TARGET_CORTEX_A           |   1452(+0) |    4(+0) |   4080(+0) |
+| components\802.15.4_RF          |     44(+0) |    0(+0) |      0(+0) |
+| components\storage              |  18219(+0) | 1324(+0) |   9088(+0) |
+| components\wifi                 |     55(+0) |    0(+0) |      0(+0) |
+| drivers\I2C.o                   |     54(+0) |    0(+0) |      0(+0) |
+| drivers\RawSerial.o             |    560(+0) |    0(+0) |      0(+0) |
+| drivers\SPI.o                   |    204(+0) |    0(+0) |    768(+0) |
+| drivers\SerialBase.o            |    720(+0) |    0(+0) |      0(+0) |
+| drivers\Ticker.o                |    376(+0) |    0(+0) |      0(+0) |
+| drivers\Timeout.o               |    160(+0) |    0(+0) |      0(+0) |
+| drivers\TimerEvent.o            |    144(+0) |    0(+0) |      0(+0) |
+| features\frameworks             |  11007(+0) |  140(+0) |    528(+0) |
+| features\netsocket              |    132(+0) |    0(+0) |      0(+0) |
+| features\storage                |  27756(+0) |    4(+0) |     80(+0) |
+| hal\mbed_critical_section_api.o |    192(+0) |    2(+0) |      0(+0) |
+| hal\mbed_gpio.o                 |     80(+0) |    0(+0) |      0(+0) |
+| hal\mbed_pinmap_common.o        |    348(+0) |    0(+0) |      0(+0) |
+| hal\mbed_ticker_api.o           |   1904(+0) |    0(+0) |      0(+0) |
+| hal\mbed_us_ticker_api.o        |     88(+0) |    4(+0) |     64(+0) |
+| platform\FileBase.o             |    528(+0) |    8(+0) |     48(+0) |
+| platform\FileHandle.o           |      8(+0) |    0(+0) |      0(+0) |
+| platform\FilePath.o             |    360(+0) |    0(+0) |      0(+0) |
+| platform\FileSystemHandle.o     |     44(+0) |    0(+0) |      0(+0) |
+| platform\mbed_assert.o          |     48(+0) |    0(+0) |      0(+0) |
+| platform\mbed_board.o           |    345(+0) |    0(+0) |      0(+0) |
+| platform\mbed_critical.o        |    344(+0) |    4(+0) |      0(+0) |
+| platform\mbed_error.o           |   1388(+0) |   12(+0) |    104(+0) |
+| platform\mbed_mktime.o          |    856(+0) |    0(+0) |      0(+0) |
+| platform\mbed_retarget.o        |   2584(+0) |   80(+0) |    392(+0) |
+| platform\mbed_rtc_time.o        |    168(+0) |   16(+0) |     48(+0) |
+| platform\mbed_sleep_manager.o   |    292(+0) |   24(+0) |      0(+0) |
+| platform\mbed_wait_api_rtos.o   |    156(+0) |    0(+0) |      0(+0) |
+| rtos\Mutex.o                    |    528(+0) |    0(+0) |      0(+0) |
+| rtos\TARGET_CORTEX              |  16942(+0) | 2298(+0) |   4504(+0) |
+| targets\TARGET_RENESAS          |  14988(+0) |  177(+0) |    652(+0) |
+| Subtotals                       | 157258(+0) | 4212(+0) | 132318(+0) |
+Total Static RAM memory (data + bss): 136530(+0) bytes
+Total Flash memory (text + data): 161470(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/dirs/dirs.bin
+
+Building project seek (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: seek
+Scan: COMMON
+Link: seek
+Elf2Bin: seek
+| Module                          |      .text |    .data |       .bss |
+|---------------------------------|------------|----------|------------|
+| [lib]\c_2.l                     |  21104(+0) |   48(+0) |    434(+0) |
+| [lib]\cpp_5s.l                  |   5248(+0) |   55(+0) |     40(+0) |
+| [lib]\cpprt_5.l                 |    558(+0) |    0(+0) |      0(+0) |
+| [lib]\fz_2v.l                   |    294(+0) |    0(+0) |      0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.ar   |  26364(+0) |   12(+0) |    128(+0) |
+| [lib]\m_2v.l                    |    560(+0) |    0(+0) |      0(+0) |
+| anon$$obj.o                     |     56(+0) |    0(+0) | 111360(+0) |
+| cmsis\TARGET_CORTEX_A           |   1452(+0) |    4(+0) |   4080(+0) |
+| components\802.15.4_RF          |     44(+0) |    0(+0) |      0(+0) |
+| components\storage              |  21209(+0) | 1324(+0) |   9060(+0) |
+| components\wifi                 |     55(+0) |    0(+0) |      0(+0) |
+| drivers\I2C.o                   |     54(+0) |    0(+0) |      0(+0) |
+| drivers\RawSerial.o             |    560(+0) |    0(+0) |      0(+0) |
+| drivers\SPI.o                   |    204(+0) |    0(+0) |    768(+0) |
+| drivers\SerialBase.o            |    720(+0) |    0(+0) |      0(+0) |
+| drivers\Ticker.o                |    376(+0) |    0(+0) |      0(+0) |
+| drivers\Timeout.o               |    160(+0) |    0(+0) |      0(+0) |
+| drivers\TimerEvent.o            |    144(+0) |    0(+0) |      0(+0) |
+| features\frameworks             |  10803(+0) |  140(+0) |    528(+0) |
+| features\netsocket              |    132(+0) |    0(+0) |      0(+0) |
+| features\storage                |  27860(+0) |    4(+0) |     80(+0) |
+| hal\mbed_critical_section_api.o |    192(+0) |    2(+0) |      0(+0) |
+| hal\mbed_gpio.o                 |     80(+0) |    0(+0) |      0(+0) |
+| hal\mbed_pinmap_common.o        |    348(+0) |    0(+0) |      0(+0) |
+| hal\mbed_ticker_api.o           |   1904(+0) |    0(+0) |      0(+0) |
+| hal\mbed_us_ticker_api.o        |     88(+0) |    4(+0) |     64(+0) |
+| platform\FileBase.o             |    528(+0) |    8(+0) |     48(+0) |
+| platform\FileHandle.o           |      8(+0) |    0(+0) |      0(+0) |
+| platform\FilePath.o             |    360(+0) |    0(+0) |      0(+0) |
+| platform\FileSystemHandle.o     |     44(+0) |    0(+0) |      0(+0) |
+| platform\mbed_assert.o          |     48(+0) |    0(+0) |      0(+0) |
+| platform\mbed_board.o           |    345(+0) |    0(+0) |      0(+0) |
+| platform\mbed_critical.o        |    344(+0) |    4(+0) |      0(+0) |
+| platform\mbed_error.o           |   1388(+0) |   12(+0) |    104(+0) |
+| platform\mbed_mktime.o          |    856(+0) |    0(+0) |      0(+0) |
+| platform\mbed_retarget.o        |   2584(+0) |   80(+0) |    392(+0) |
+| platform\mbed_rtc_time.o        |    168(+0) |   16(+0) |     48(+0) |
+| platform\mbed_sleep_manager.o   |    292(+0) |   24(+0) |      0(+0) |
+| platform\mbed_wait_api_rtos.o   |    156(+0) |    0(+0) |      0(+0) |
+| rtos\Mutex.o                    |    528(+0) |    0(+0) |      0(+0) |
+| rtos\TARGET_CORTEX              |  16942(+0) | 2298(+0) |   4504(+0) |
+| targets\TARGET_RENESAS          |  14988(+0) |  177(+0) |    652(+0) |
+| Subtotals                       | 160148(+0) | 4212(+0) | 132290(+0) |
+Total Static RAM memory (data + bss): 136502(+0) bytes
+Total Flash memory (text + data): 164360(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/seek/seek.bin
+
+Building project parallel (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: parallel
+Scan: COMMON
+Link: parallel
+Elf2Bin: parallel
+| Module                          |      .text |    .data |       .bss |
+|---------------------------------|------------|----------|------------|
+| [lib]\c_2.l                     |  20996(+0) |   48(+0) |    434(+0) |
+| [lib]\cpp_5s.l                  |   5248(+0) |   55(+0) |     40(+0) |
+| [lib]\cpprt_5.l                 |    559(+0) |    0(+0) |      0(+0) |
+| [lib]\fz_2v.l                   |    294(+0) |    0(+0) |      0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.ar   |  26364(+0) |   12(+0) |    128(+0) |
+| [lib]\m_2v.l                    |    560(+0) |    0(+0) |      0(+0) |
+| anon$$obj.o                     |     56(+0) |    0(+0) | 111360(+0) |
+| cmsis\TARGET_CORTEX_A           |   1452(+0) |    4(+0) |   4080(+0) |
+| components\802.15.4_RF          |     44(+0) |    0(+0) |      0(+0) |
+| components\storage              |  12361(+0) | 1324(+0) |    412(+0) |
+| components\wifi                 |     55(+0) |    0(+0) |      0(+0) |
+| drivers\I2C.o                   |     54(+0) |    0(+0) |      0(+0) |
+| drivers\RawSerial.o             |    560(+0) |    0(+0) |      0(+0) |
+| drivers\SPI.o                   |    204(+0) |    0(+0) |    768(+0) |
+| drivers\SerialBase.o            |    720(+0) |    0(+0) |      0(+0) |
+| drivers\Ticker.o                |    376(+0) |    0(+0) |      0(+0) |
+| drivers\Timeout.o               |    160(+0) |    0(+0) |      0(+0) |
+| drivers\TimerEvent.o            |    144(+0) |    0(+0) |      0(+0) |
+| features\frameworks             |  10879(+0) |  140(+0) |    528(+0) |
+| features\netsocket              |    132(+0) |    0(+0) |      0(+0) |
+| features\storage                |  23988(+0) |    4(+0) |     80(+0) |
+| hal\mbed_critical_section_api.o |    192(+0) |    2(+0) |      0(+0) |
+| hal\mbed_gpio.o                 |     80(+0) |    0(+0) |      0(+0) |
+| hal\mbed_pinmap_common.o        |    348(+0) |    0(+0) |      0(+0) |
+| hal\mbed_ticker_api.o           |   1904(+0) |    0(+0) |      0(+0) |
+| hal\mbed_us_ticker_api.o        |     88(+0) |    4(+0) |     64(+0) |
+| platform\FileBase.o             |    528(+0) |    8(+0) |     48(+0) |
+| platform\FileHandle.o           |      8(+0) |    0(+0) |      0(+0) |
+| platform\FilePath.o             |    360(+0) |    0(+0) |      0(+0) |
+| platform\FileSystemHandle.o     |     44(+0) |    0(+0) |      0(+0) |
+| platform\mbed_assert.o          |     48(+0) |    0(+0) |      0(+0) |
+| platform\mbed_board.o           |    345(+0) |    0(+0) |      0(+0) |
+| platform\mbed_critical.o        |    344(+0) |    4(+0) |      0(+0) |
+| platform\mbed_error.o           |   1388(+0) |   12(+0) |    104(+0) |
+| platform\mbed_mktime.o          |    856(+0) |    0(+0) |      0(+0) |
+| platform\mbed_retarget.o        |   2588(+0) |   80(+0) |    392(+0) |
+| platform\mbed_rtc_time.o        |    168(+0) |   16(+0) |     48(+0) |
+| platform\mbed_sleep_manager.o   |    292(+0) |   24(+0) |      0(+0) |
+| platform\mbed_wait_api_rtos.o   |    156(+0) |    0(+0) |      0(+0) |
+| rtos\Mutex.o                    |    528(+0) |    0(+0) |      0(+0) |
+| rtos\Semaphore.o                |    376(+0) |    0(+0) |      0(+0) |
+| rtos\TARGET_CORTEX              |  19590(+0) | 2298(+0) |   4504(+0) |
+| rtos\Thread.o                   |   1216(+0) |    0(+0) |      0(+0) |
+| targets\TARGET_RENESAS          |  14988(+0) |  177(+0) |    652(+0) |
+| Subtotals                       | 151641(+0) | 4212(+0) | 123642(+0) |
+Total Static RAM memory (data + bss): 127854(+0) bytes
+Total Flash memory (text + data): 155853(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/parallel/parallel.bin
+
+Building project files (VK_RZ_A1H, ARM)
+Scan: ARM
+Scan: files
+Scan: COMMON
+Link: files
+Elf2Bin: files
+| Module                          |      .text |    .data |       .bss |
+|---------------------------------|------------|----------|------------|
+| [lib]\c_2.l                     |  21220(+0) |   48(+0) |    662(+0) |
+| [lib]\cpp_5s.l                  |   5248(+0) |   55(+0) |     40(+0) |
+| [lib]\cpprt_5.l                 |    558(+0) |    0(+0) |      0(+0) |
+| [lib]\fz_2v.l                   |    294(+0) |    0(+0) |      0(+0) |
+| [lib]\lib_RZ_A1H_sd_driver.ar   |  26364(+0) |   12(+0) |    128(+0) |
+| [lib]\m_2v.l                    |    560(+0) |    0(+0) |      0(+0) |
+| anon$$obj.o                     |     56(+0) |    0(+0) | 111360(+0) |
+| cmsis\TARGET_CORTEX_A           |   1452(+0) |    4(+0) |   4080(+0) |
+| components\802.15.4_RF          |     44(+0) |    0(+0) |      0(+0) |
+| components\storage              |  18567(+0) | 1360(+0) |  25444(+0) |
+| components\wifi                 |     55(+0) |    0(+0) |      0(+0) |
+| drivers\I2C.o                   |     54(+0) |    0(+0) |      0(+0) |
+| drivers\RawSerial.o             |    560(+0) |    0(+0) |      0(+0) |
+| drivers\SPI.o                   |    204(+0) |    0(+0) |    768(+0) |
+| drivers\SerialBase.o            |    720(+0) |    0(+0) |      0(+0) |
+| drivers\Ticker.o                |    376(+0) |    0(+0) |      0(+0) |
+| drivers\Timeout.o               |    160(+0) |    0(+0) |      0(+0) |
+| drivers\TimerEvent.o            |    144(+0) |    0(+0) |      0(+0) |
+| features\frameworks             |  10803(+0) |  140(+0) |    528(+0) |
+| features\netsocket              |    132(+0) |    0(+0) |      0(+0) |
+| features\storage                |  26256(+0) |    4(+0) |     80(+0) |
+| hal\mbed_critical_section_api.o |    192(+0) |    2(+0) |      0(+0) |
+| hal\mbed_gpio.o                 |     80(+0) |    0(+0) |      0(+0) |
+| hal\mbed_pinmap_common.o        |    348(+0) |    0(+0) |      0(+0) |
+| hal\mbed_ticker_api.o           |   1904(+0) |    0(+0) |      0(+0) |
+| hal\mbed_us_ticker_api.o        |     88(+0) |    4(+0) |     64(+0) |
+| platform\FileBase.o             |    528(+0) |    8(+0) |     48(+0) |
+| platform\FileHandle.o           |      8(+0) |    0(+0) |      0(+0) |
+| platform\FilePath.o             |    360(+0) |    0(+0) |      0(+0) |
+| platform\FileSystemHandle.o     |     44(+0) |    0(+0) |      0(+0) |
+| platform\mbed_assert.o          |     48(+0) |    0(+0) |      0(+0) |
+| platform\mbed_board.o           |    345(+0) |    0(+0) |      0(+0) |
+| platform\mbed_critical.o        |    344(+0) |    4(+0) |      0(+0) |
+| platform\mbed_error.o           |   1388(+0) |   12(+0) |    104(+0) |
+| platform\mbed_mktime.o          |    856(+0) |    0(+0) |      0(+0) |
+| platform\mbed_retarget.o        |   2584(+0) |   80(+0) |    392(+0) |
+| platform\mbed_rtc_time.o        |    168(+0) |   16(+0) |     48(+0) |
+| platform\mbed_sleep_manager.o   |    292(+0) |   24(+0) |      0(+0) |
+| platform\mbed_wait_api_rtos.o   |    156(+0) |    0(+0) |      0(+0) |
+| rtos\Mutex.o                    |    528(+0) |    0(+0) |      0(+0) |
+| rtos\TARGET_CORTEX              |  16942(+0) | 2298(+0) |   4504(+0) |
+| targets\TARGET_RENESAS          |  14988(+0) |  177(+0) |    652(+0) |
+| Subtotals                       | 156018(+0) | 4248(+0) | 148902(+0) |
+Total Static RAM memory (data + bss): 153150(+0) bytes
+Total Flash memory (text + data): 160266(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/files/files.bin
+
+Memory map breakdown for built projects (values in Bytes):
+| name     | target    | toolchain | static_ram | total_flash |
+|----------|-----------|-----------|------------|-------------|
+| dirs     | VK_RZ_A1H | ARM       |     136530 |      161470 |
+| files    | VK_RZ_A1H | ARM       |     153150 |      160266 |
+| fopen    | VK_RZ_A1H | ARM       |     125929 |       69625 |
+| parallel | VK_RZ_A1H | ARM       |     127854 |      155853 |
+| seek     | VK_RZ_A1H | ARM       |     136502 |      164360 |
+
+
+Build successes:
+  * VK_RZ_A1H::ARM::MBED-BUILD
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-DIRS
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FILES
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FOPEN
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-PARALLEL
+  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-SEEK
+mbedgt: greentea test automation tool ver. 1.3.2
+mbedgt: test specification file 'D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver\BUILD\tests\VK_RZ_A1H\ARM\test_spec.json' (specified with --test-spec option)
+mbedgt: using 'D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver\BUILD\tests\VK_RZ_A1H\ARM\test_spec.json' from current directory!
+mbedgt: detecting connected mbed-enabled devices...
+[1553876960.56][mbedls.lstools_base]Call to deprecated function list_mbeds_ext. Functionality has been moved into 'list_mbeds'. Please use list_mbeds with 'unique_names=True' and 'read_details_txt=True'
+mbedgt: detected 1 device
+mbedgt: processing target 'VK_RZ_A1H' toolchain 'ARM' compatible platforms... (note: switch set to --parallel 1)
+mbedgt: test case filter (specified with -n option)
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek'
+mbedgt: running 5 tests for platform 'VK_RZ_A1H' and toolchain 'ARM'
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen' . OK in 19.55 sec
+        test case: 'FSFAT_FOPEN_TEST_00: format sd card to FAT FS.' .................................. OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath.'  OK in 0.12 sec
+        test case: 'FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.' ................ OK in 0.11 sec
+        test case: 'FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.' ............... OK in 0.11 sec
+        test case: 'FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.' ...... OK in 0.13 sec
+        test case: 'FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).' ...................... OK in 0.11 sec
+        test case: 'FSFAT_FOPEN_TEST_07: fopen()/errno handling.' .................................... OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.' ........................ OK in 0.09 sec
+        test case: 'FSFAT_FOPEN_TEST_09: ftell() handling.' .......................................... OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_10: remove() test.' ............................................. OK in 0.06 sec
+        test case: 'FSFAT_FOPEN_TEST_11: rename().' .................................................. OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.' ..................... OK in 0.10 sec
+        test case: 'FSFAT_FOPEN_TEST_13: mkdir() test.' .............................................. OK in 0.07 sec
+        test case: 'FSFAT_FOPEN_TEST_14: stat() test.' ............................................... OK in 0.06 sec
+        test case: 'FSFAT_FOPEN_TEST_15: format() test.' ............................................. OK in 0.06 sec
+        test case: 'FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.' ........................... OK in 0.10 sec
+mbedgt: test case summary: 16 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs' .. OK in 22.22 sec
+        test case: 'Directory creation' .............................................................. OK in 0.06 sec
+        test case: 'Directory failures' .............................................................. OK in 0.04 sec
+        test case: 'Directory iteration' ............................................................. OK in 0.05 sec
+        test case: 'Directory remove' ................................................................ OK in 0.08 sec
+        test case: 'Directory rename' ................................................................ OK in 0.18 sec
+        test case: 'Directory tests' ................................................................. OK in 0.71 sec
+        test case: 'File creation' ................................................................... OK in 0.05 sec
+        test case: 'Multi-block directory' ........................................................... OK in 2.41 sec
+        test case: 'Nested directories' .............................................................. OK in 0.09 sec
+        test case: 'Root directory' .................................................................. OK in 0.03 sec
+mbedgt: test case summary: 10 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel'  OK in 17.85 sec
+        test case: 'File tests' ...................................................................... OK in 0.54 sec
+        test case: 'Filesystem access from multiple threads' ......................................... OK in 0.31 sec
+mbedgt: test case summary: 2 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files' . OK in 21.03 sec
+        test case: 'Block Size file test' ............................................................ OK in 0.14 sec
+        test case: 'Dir check' ....................................................................... OK in 0.03 sec
+        test case: 'File tests' ...................................................................... OK in 0.54 sec
+        test case: 'Large file test' ................................................................. OK in 1.34 sec
+        test case: 'Medium file test' ................................................................ OK in 0.11 sec
+        test case: 'Multiple block size file test' ................................................... OK in 0.10 sec
+        test case: 'Non-overlap check' ............................................................... OK in 0.32 sec
+        test case: 'Simple file test' ................................................................ OK in 0.04 sec
+        test case: 'Small file test' ................................................................. OK in 0.05 sec
+mbedgt: test case summary: 9 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek' .. OK in 22.95 sec
+        test case: 'Boundary seek and write' ......................................................... OK in 0.10 sec
+        test case: 'Large dir seek' .................................................................. OK in 0.05 sec
+        test case: 'Large file seek' ................................................................. OK in 0.04 sec
+        test case: 'Large file seek and write' ....................................................... OK in 0.06 sec
+        test case: 'Out-of-bounds seek' .............................................................. OK in 0.05 sec
+        test case: 'Seek tests' ...................................................................... OK in 2.95 sec
+        test case: 'Simple dir seek' ................................................................. OK in 0.04 sec
+        test case: 'Simple file seek' ................................................................ OK in 0.04 sec
+        test case: 'Simple file seek and write' ...................................................... OK in 0.06 sec
+mbedgt: test case summary: 9 passes, 0 failures
+mbedgt: all tests finished!
+mbedgt: shuffle seed: 0.8567178243
+mbedgt: test suite report:
++---------------+---------------+------------------------------------------------------------------------------------+--------+--------------------+-------------+
+| target        | platform_name | test suite                                                                         | result | elapsed_time (sec) | copy_method |
++---------------+---------------+------------------------------------------------------------------------------------+--------+--------------------+-------------+
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | OK     | 22.22              | default     |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | OK     | 21.03              | default     |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | OK     | 19.55              | default     |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel | OK     | 17.85              | default     |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | OK     | 22.95              | default     |
++---------------+---------------+------------------------------------------------------------------------------------+--------+--------------------+-------------+
+mbedgt: test suite results: 5 OK
+mbedgt: test case report:
++---------------+---------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+--------+--------+--------+--------------------+
+| target        | platform_name | test suite                                                                         | test case                                                                              | passed | failed | result | elapsed_time (sec) |
++---------------+---------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+--------+--------+--------+--------------------+
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory creation                                                                     | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory failures                                                                     | 1      | 0      | OK     | 0.04               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory iteration                                                                    | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory remove                                                                       | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory rename                                                                       | 1      | 0      | OK     | 0.18               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory tests                                                                        | 1      | 0      | OK     | 0.71               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | File creation                                                                          | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Multi-block directory                                                                  | 1      | 0      | OK     | 2.41               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Nested directories                                                                     | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Root directory                                                                         | 1      | 0      | OK     | 0.03               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Block Size file test                                                                   | 1      | 0      | OK     | 0.14               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Dir check                                                                              | 1      | 0      | OK     | 0.03               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | File tests                                                                             | 1      | 0      | OK     | 0.54               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Large file test                                                                        | 1      | 0      | OK     | 1.34               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Medium file test                                                                       | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Multiple block size file test                                                          | 1      | 0      | OK     | 0.1                |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Non-overlap check                                                                      | 1      | 0      | OK     | 0.32               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Simple file test                                                                       | 1      | 0      | OK     | 0.04               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Small file test                                                                        | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_00: format sd card to FAT FS.                                         | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath. | 1      | 0      | OK     | 0.12               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.                       | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.                      | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.             | 1      | 0      | OK     | 0.13               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).                             | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_07: fopen()/errno handling.                                           | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.                               | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_09: ftell() handling.                                                 | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_10: remove() test.                                                    | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_11: rename().                                                         | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.                            | 1      | 0      | OK     | 0.1                |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_13: mkdir() test.                                                     | 1      | 0      | OK     | 0.07               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_14: stat() test.                                                      | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_15: format() test.                                                    | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.                                  | 1      | 0      | OK     | 0.1                |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel | File tests                                                                             | 1      | 0      | OK     | 0.54               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel | Filesystem access from multiple threads                                                | 1      | 0      | OK     | 0.31               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Boundary seek and write                                                                | 1      | 0      | OK     | 0.1                |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Large dir seek                                                                         | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Large file seek                                                                        | 1      | 0      | OK     | 0.04               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Large file seek and write                                                              | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Out-of-bounds seek                                                                     | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Seek tests                                                                             | 1      | 0      | OK     | 2.95               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Simple dir seek                                                                        | 1      | 0      | OK     | 0.04               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Simple file seek                                                                       | 1      | 0      | OK     | 0.04               |
+| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Simple file seek and write                                                             | 1      | 0      | OK     | 0.06               |
++---------------+---------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+--------+--------+--------+--------------------+
+mbedgt: test case results: 46 OK
+mbedgt: completed in 104.52 sec
+
+D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver>mbed test -t GCC_ARM -m VK_RZ_A1H -n mbed-os-components-storage-blockdevice-component_rz_sdhi-tests*
+[mbed] Auto-installing missing Python modules...
+Building library mbed-build (VK_RZ_A1H, GCC_ARM)
+Scan: driver
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project fopen (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: fopen
+Scan: COMMON
+Link: fopen
+Elf2Bin: fopen
+| Module                          |     .text |    .data |      .bss |
+|---------------------------------|-----------|----------|-----------|
+| [fill]                          |    62(+0) |   20(+0) |    29(+0) |
+| [lib]\c.a                       | 25451(+0) | 2208(+0) |    56(+0) |
+| [lib]\gcc.a                     |  2124(+0) |    0(+0) |     0(+0) |
+| [lib]\m.a                       |    88(+0) |    0(+0) |     0(+0) |
+| [lib]\misc                      |   252(+0) |   12(+0) |    28(+0) |
+| [misc]                          |    72(+0) |    0(+0) |     0(+0) |
+| cmsis\TARGET_CORTEX_A           |  1276(+0) |    0(+0) |  4084(+0) |
+| components\802.15.4_RF          |   156(+0) |    0(+0) |     0(+0) |
+| components\storage              |  1474(+0) |    4(+0) |   492(+0) |
+| components\wifi                 |   100(+0) |    0(+0) |     0(+0) |
+| drivers\I2C.o                   |    36(+0) |    0(+0) |     0(+0) |
+| drivers\RawSerial.o             |   508(+0) |    0(+0) |     0(+0) |
+| drivers\SPI.o                   |   180(+0) |    4(+0) |   716(+0) |
+| drivers\Serial.o                |    64(+0) |    0(+0) |     0(+0) |
+| drivers\SerialBase.o            |   943(+0) |    0(+0) |     0(+0) |
+| drivers\Ticker.o                |   332(+0) |    0(+0) |     0(+0) |
+| drivers\Timeout.o               |   231(+0) |    0(+0) |     0(+0) |
+| drivers\TimerEvent.o            |   184(+0) |    0(+0) |     0(+0) |
+| drivers\UARTSerial.o            |    40(+0) |    0(+0) |     0(+0) |
+| features\frameworks             |  8378(+0) |   69(+0) |   369(+0) |
+| hal\mbed_critical_section_api.o |   208(+0) |    0(+0) |     2(+0) |
+| hal\mbed_gpio.o                 |    92(+0) |    0(+0) |     0(+0) |
+| hal\mbed_pinmap_common.o        |   400(+0) |    0(+0) |     0(+0) |
+| hal\mbed_ticker_api.o           |  1668(+0) |    0(+0) |     0(+0) |
+| hal\mbed_us_ticker_api.o        |    84(+0) |    4(+0) |    64(+0) |
+| platform\CThunkBase.o           |    24(+0) |    0(+0) |     4(+0) |
+| platform\FileHandle.o           |     8(+0) |    0(+0) |     0(+0) |
+| platform\mbed_alloc_wrappers.o  |    16(+0) |    0(+0) |     0(+0) |
+| platform\mbed_assert.o          |    48(+0) |    0(+0) |     0(+0) |
+| platform\mbed_board.o           |   325(+0) |    0(+0) |     0(+0) |
+| platform\mbed_critical.o        |   356(+0) |    0(+0) |     4(+0) |
+| platform\mbed_error.o           |  1387(+0) |    0(+0) |   114(+0) |
+| platform\mbed_retarget.o        |  2136(+0) |  260(+0) |    80(+0) |
+| platform\mbed_sleep_manager.o   |   295(+0) |    0(+0) |     2(+0) |
+| platform\mbed_wait_api_rtos.o   |   160(+0) |    0(+0) |     0(+0) |
+| rtos\TARGET_CORTEX              | 11951(+0) |  173(+0) |  5968(+0) |
+| targets\TARGET_RENESAS          | 14069(+0) |    6(+0) |   724(+0) |
+| Subtotals                       | 75178(+0) | 2760(+0) | 12736(+0) |
+Total Static RAM memory (data + bss): 15496(+0) bytes
+Total Flash memory (text + data): 77938(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/fopen/fopen.bin
+
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project dirs (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: dirs
+Scan: COMMON
+Link: dirs
+Elf2Bin: dirs
+| Module                          |      .text |    .data |      .bss |
+|---------------------------------|------------|----------|-----------|
+| [fill]                          |    101(+0) |   20(+0) |    58(+0) |
+| [lib]\_RZ_A1H_sd_driver.a       |      0(+0) |    0(+0) |   128(+0) |
+| [lib]\c.a                       |  33681(+0) | 2288(+0) |    94(+0) |
+| [lib]\gcc.a                     |   2148(+0) |    0(+0) |     0(+0) |
+| [lib]\m.a                       |     88(+0) |    0(+0) |     0(+0) |
+| [lib]\misc                      |    252(+0) |   12(+0) |    28(+0) |
+| [lib]\stdc++.a                  |    420(+0) |    0(+0) |     0(+0) |
+| [misc]                          |     80(+0) |    0(+0) |     0(+0) |
+| cmsis\TARGET_CORTEX_A           |   1276(+0) |    0(+0) |  4084(+0) |
+| components\802.15.4_RF          |    156(+0) |    0(+0) |     0(+0) |
+| components\storage              |  15173(+0) |    4(+0) |  9085(+0) |
+| components\wifi                 |    100(+0) |    0(+0) |     0(+0) |
+| drivers\I2C.o                   |    238(+0) |    0(+0) |     0(+0) |
+| drivers\RawSerial.o             |    508(+0) |    0(+0) |     0(+0) |
+| drivers\SPI.o                   |    180(+0) |    4(+0) |   716(+0) |
+| drivers\Serial.o                |     72(+0) |    0(+0) |     0(+0) |
+| drivers\SerialBase.o            |    943(+0) |    0(+0) |     0(+0) |
+| drivers\Ticker.o                |    332(+0) |    0(+0) |     0(+0) |
+| drivers\Timeout.o               |    231(+0) |    0(+0) |     0(+0) |
+| drivers\TimerEvent.o            |    184(+0) |    0(+0) |     0(+0) |
+| drivers\UARTSerial.o            |     40(+0) |    0(+0) |     0(+0) |
+| features\frameworks             |   9792(+0) |   69(+0) |   529(+0) |
+| features\storage                |  26323(+0) |    0(+0) |   340(+0) |
+| hal\mbed_critical_section_api.o |    208(+0) |    0(+0) |     2(+0) |
+| hal\mbed_gpio.o                 |     92(+0) |    0(+0) |     0(+0) |
+| hal\mbed_pinmap_common.o        |    400(+0) |    0(+0) |     0(+0) |
+| hal\mbed_ticker_api.o           |   1668(+0) |    0(+0) |     0(+0) |
+| hal\mbed_us_ticker_api.o        |     84(+0) |    4(+0) |    64(+0) |
+| platform\CThunkBase.o           |     24(+0) |    0(+0) |     4(+0) |
+| platform\FileBase.o             |    316(+0) |    0(+0) |    56(+0) |
+| platform\FileHandle.o           |      8(+0) |    0(+0) |     0(+0) |
+| platform\FileSystemHandle.o     |     92(+0) |    0(+0) |     0(+0) |
+| platform\mbed_alloc_wrappers.o  |     16(+0) |    0(+0) |     0(+0) |
+| platform\mbed_assert.o          |     48(+0) |    0(+0) |     0(+0) |
+| platform\mbed_board.o           |    325(+0) |    0(+0) |     0(+0) |
+| platform\mbed_critical.o        |    356(+0) |    0(+0) |     4(+0) |
+| platform\mbed_error.o           |   1387(+0) |    0(+0) |   114(+0) |
+| platform\mbed_mktime.o          |    780(+0) |    0(+0) |     0(+0) |
+| platform\mbed_retarget.o        |   2296(+0) |  260(+0) |   128(+0) |
+| platform\mbed_rtc_time.o        |    212(+0) |   16(+0) |    48(+0) |
+| platform\mbed_sleep_manager.o   |    295(+0) |    0(+0) |     2(+0) |
+| platform\mbed_wait_api_rtos.o   |    160(+0) |    0(+0) |     0(+0) |
+| rtos\Mutex.o                    |    428(+0) |    0(+0) |     0(+0) |
+| rtos\TARGET_CORTEX              |  12495(+0) |  173(+0) |  5968(+0) |
+| targets\TARGET_RENESAS          |  15105(+0) |    6(+0) |   724(+0) |
+| Subtotals                       | 129113(+0) | 2856(+0) | 22176(+0) |
+Total Static RAM memory (data + bss): 25032(+0) bytes
+Total Flash memory (text + data): 131969(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/dirs/dirs.bin
+
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project seek (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: seek
+Scan: COMMON
+Link: seek
+Elf2Bin: seek
+| Module                          |      .text |    .data |      .bss |
+|---------------------------------|------------|----------|-----------|
+| [fill]                          |    103(+0) |   20(+0) |    54(+0) |
+| [lib]\_RZ_A1H_sd_driver.a       |      0(+0) |    0(+0) |   128(+0) |
+| [lib]\c.a                       |  33777(+0) | 2288(+0) |    94(+0) |
+| [lib]\gcc.a                     |   2148(+0) |    0(+0) |     0(+0) |
+| [lib]\m.a                       |     88(+0) |    0(+0) |     0(+0) |
+| [lib]\misc                      |    252(+0) |   12(+0) |    28(+0) |
+| [lib]\stdc++.a                  |    420(+0) |    0(+0) |     0(+0) |
+| [misc]                          |     80(+0) |    0(+0) |     0(+0) |
+| cmsis\TARGET_CORTEX_A           |   1276(+0) |    0(+0) |  4084(+0) |
+| components\802.15.4_RF          |    156(+0) |    0(+0) |     0(+0) |
+| components\storage              |  18835(+0) |    4(+0) |  9057(+0) |
+| components\wifi                 |    100(+0) |    0(+0) |     0(+0) |
+| drivers\I2C.o                   |    238(+0) |    0(+0) |     0(+0) |
+| drivers\RawSerial.o             |    508(+0) |    0(+0) |     0(+0) |
+| drivers\SPI.o                   |    180(+0) |    4(+0) |   716(+0) |
+| drivers\Serial.o                |     72(+0) |    0(+0) |     0(+0) |
+| drivers\SerialBase.o            |    943(+0) |    0(+0) |     0(+0) |
+| drivers\Ticker.o                |    332(+0) |    0(+0) |     0(+0) |
+| drivers\Timeout.o               |    231(+0) |    0(+0) |     0(+0) |
+| drivers\TimerEvent.o            |    184(+0) |    0(+0) |     0(+0) |
+| drivers\UARTSerial.o            |     40(+0) |    0(+0) |     0(+0) |
+| features\frameworks             |   9592(+0) |   69(+0) |   529(+0) |
+| features\storage                |  26323(+0) |    0(+0) |   340(+0) |
+| hal\mbed_critical_section_api.o |    208(+0) |    0(+0) |     2(+0) |
+| hal\mbed_gpio.o                 |     92(+0) |    0(+0) |     0(+0) |
+| hal\mbed_pinmap_common.o        |    400(+0) |    0(+0) |     0(+0) |
+| hal\mbed_ticker_api.o           |   1668(+0) |    0(+0) |     0(+0) |
+| hal\mbed_us_ticker_api.o        |     84(+0) |    4(+0) |    64(+0) |
+| platform\CThunkBase.o           |     24(+0) |    0(+0) |     4(+0) |
+| platform\FileBase.o             |    316(+0) |    0(+0) |    56(+0) |
+| platform\FileHandle.o           |      8(+0) |    0(+0) |     0(+0) |
+| platform\FileSystemHandle.o     |     92(+0) |    0(+0) |     0(+0) |
+| platform\mbed_alloc_wrappers.o  |     16(+0) |    0(+0) |     0(+0) |
+| platform\mbed_assert.o          |     48(+0) |    0(+0) |     0(+0) |
+| platform\mbed_board.o           |    325(+0) |    0(+0) |     0(+0) |
+| platform\mbed_critical.o        |    356(+0) |    0(+0) |     4(+0) |
+| platform\mbed_error.o           |   1387(+0) |    0(+0) |   114(+0) |
+| platform\mbed_mktime.o          |    780(+0) |    0(+0) |     0(+0) |
+| platform\mbed_retarget.o        |   2296(+0) |  260(+0) |   128(+0) |
+| platform\mbed_rtc_time.o        |    212(+0) |   16(+0) |    48(+0) |
+| platform\mbed_sleep_manager.o   |    295(+0) |    0(+0) |     2(+0) |
+| platform\mbed_wait_api_rtos.o   |    160(+0) |    0(+0) |     0(+0) |
+| rtos\Mutex.o                    |    428(+0) |    0(+0) |     0(+0) |
+| rtos\TARGET_CORTEX              |  12495(+0) |  173(+0) |  5968(+0) |
+| targets\TARGET_RENESAS          |  15105(+0) |    6(+0) |   724(+0) |
+| Subtotals                       | 132673(+0) | 2856(+0) | 22144(+0) |
+Total Static RAM memory (data + bss): 25000(+0) bytes
+Total Flash memory (text + data): 135529(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/seek/seek.bin
+
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project parallel (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: parallel
+Scan: COMMON
+Link: parallel
+Elf2Bin: parallel
+| Module                          |      .text |    .data |      .bss |
+|---------------------------------|------------|----------|-----------|
+| [fill]                          |    121(+0) |   20(+0) |    51(+0) |
+| [lib]\_RZ_A1H_sd_driver.a       |      0(+0) |    0(+0) |   128(+0) |
+| [lib]\c.a                       |  33681(+0) | 2288(+0) |    94(+0) |
+| [lib]\gcc.a                     |   2148(+0) |    0(+0) |     0(+0) |
+| [lib]\m.a                       |     88(+0) |    0(+0) |     0(+0) |
+| [lib]\misc                      |    252(+0) |   12(+0) |    28(+0) |
+| [lib]\stdc++.a                  |    421(+0) |    0(+0) |     0(+0) |
+| [misc]                          |     80(+0) |    0(+0) |     0(+0) |
+| cmsis\TARGET_CORTEX_A           |   1276(+0) |    0(+0) |  4084(+0) |
+| components\802.15.4_RF          |    156(+0) |    0(+0) |     0(+0) |
+| components\storage              |   9244(+0) |    4(+0) |   412(+0) |
+| components\wifi                 |    100(+0) |    0(+0) |     0(+0) |
+| drivers\I2C.o                   |    238(+0) |    0(+0) |     0(+0) |
+| drivers\RawSerial.o             |    508(+0) |    0(+0) |     0(+0) |
+| drivers\SPI.o                   |    180(+0) |    4(+0) |   716(+0) |
+| drivers\Serial.o                |     72(+0) |    0(+0) |     0(+0) |
+| drivers\SerialBase.o            |    943(+0) |    0(+0) |     0(+0) |
+| drivers\Ticker.o                |    332(+0) |    0(+0) |     0(+0) |
+| drivers\Timeout.o               |    231(+0) |    0(+0) |     0(+0) |
+| drivers\TimerEvent.o            |    184(+0) |    0(+0) |     0(+0) |
+| drivers\UARTSerial.o            |     40(+0) |    0(+0) |     0(+0) |
+| features\frameworks             |   9669(+0) |   69(+0) |   529(+0) |
+| features\storage                |  26323(+0) |    0(+0) |   340(+0) |
+| hal\mbed_critical_section_api.o |    208(+0) |    0(+0) |     2(+0) |
+| hal\mbed_gpio.o                 |     92(+0) |    0(+0) |     0(+0) |
+| hal\mbed_pinmap_common.o        |    400(+0) |    0(+0) |     0(+0) |
+| hal\mbed_ticker_api.o           |   1668(+0) |    0(+0) |     0(+0) |
+| hal\mbed_us_ticker_api.o        |     84(+0) |    4(+0) |    64(+0) |
+| platform\CThunkBase.o           |     24(+0) |    0(+0) |     4(+0) |
+| platform\FileBase.o             |    316(+0) |    0(+0) |    56(+0) |
+| platform\FileHandle.o           |      8(+0) |    0(+0) |     0(+0) |
+| platform\FileSystemHandle.o     |     92(+0) |    0(+0) |     0(+0) |
+| platform\mbed_alloc_wrappers.o  |     16(+0) |    0(+0) |     0(+0) |
+| platform\mbed_assert.o          |     48(+0) |    0(+0) |     0(+0) |
+| platform\mbed_board.o           |    325(+0) |    0(+0) |     0(+0) |
+| platform\mbed_critical.o        |    356(+0) |    0(+0) |     4(+0) |
+| platform\mbed_error.o           |   1387(+0) |    0(+0) |   114(+0) |
+| platform\mbed_mktime.o          |    780(+0) |    0(+0) |     0(+0) |
+| platform\mbed_retarget.o        |   2300(+0) |  260(+0) |   128(+0) |
+| platform\mbed_rtc_time.o        |    212(+0) |   16(+0) |    48(+0) |
+| platform\mbed_sleep_manager.o   |    295(+0) |    0(+0) |     2(+0) |
+| platform\mbed_wait_api_rtos.o   |    160(+0) |    0(+0) |     0(+0) |
+| rtos\Mutex.o                    |    428(+0) |    0(+0) |     0(+0) |
+| rtos\Semaphore.o                |    293(+0) |    0(+0) |     0(+0) |
+| rtos\TARGET_CORTEX              |  14263(+0) |  173(+0) |  5968(+0) |
+| rtos\Thread.o                   |   1198(+0) |    0(+0) |     0(+0) |
+| targets\TARGET_RENESAS          |  15105(+0) |    6(+0) |   724(+0) |
+| Subtotals                       | 126345(+0) | 2856(+0) | 13496(+0) |
+Total Static RAM memory (data + bss): 16352(+0) bytes
+Total Flash memory (text + data): 129201(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/parallel/parallel.bin
+
+[Warning] @,: Compiler version mismatch: Have 4.9.3; expected version >= 6.0.0 and < 7.0.0
+Building project files (VK_RZ_A1H, GCC_ARM)
+Scan: GCC_ARM
+Scan: files
+Scan: COMMON
+Link: files
+Elf2Bin: files
+| Module                          |      .text |    .data |      .bss |
+|---------------------------------|------------|----------|-----------|
+| [fill]                          |    112(+0) |   20(+0) |    61(+0) |
+| [lib]\_RZ_A1H_sd_driver.a       |      0(+0) |    0(+0) |   128(+0) |
+| [lib]\c.a                       |  33873(+0) | 2288(+0) |    94(+0) |
+| [lib]\gcc.a                     |   2148(+0) |    0(+0) |     0(+0) |
+| [lib]\m.a                       |     88(+0) |    0(+0) |     0(+0) |
+| [lib]\misc                      |    252(+0) |   12(+0) |    28(+0) |
+| [lib]\stdc++.a                  |    420(+0) |    0(+0) |     0(+0) |
+| [misc]                          |     80(+0) |    0(+0) |     0(+0) |
+| cmsis\TARGET_CORTEX_A           |   1276(+0) |    0(+0) |  4084(+0) |
+| components\802.15.4_RF          |    156(+0) |    0(+0) |     0(+0) |
+| components\storage              |  15682(+0) |   36(+0) | 25442(+0) |
+| components\wifi                 |    100(+0) |    0(+0) |     0(+0) |
+| drivers\I2C.o                   |    238(+0) |    0(+0) |     0(+0) |
+| drivers\RawSerial.o             |    508(+0) |    0(+0) |     0(+0) |
+| drivers\SPI.o                   |    180(+0) |    4(+0) |   716(+0) |
+| drivers\Serial.o                |     72(+0) |    0(+0) |     0(+0) |
+| drivers\SerialBase.o            |    943(+0) |    0(+0) |     0(+0) |
+| drivers\Ticker.o                |    332(+0) |    0(+0) |     0(+0) |
+| drivers\Timeout.o               |    231(+0) |    0(+0) |     0(+0) |
+| drivers\TimerEvent.o            |    184(+0) |    0(+0) |     0(+0) |
+| drivers\UARTSerial.o            |     40(+0) |    0(+0) |     0(+0) |
+| features\frameworks             |   9592(+0) |   69(+0) |   529(+0) |
+| features\storage                |  26323(+0) |    0(+0) |   340(+0) |
+| hal\mbed_critical_section_api.o |    208(+0) |    0(+0) |     2(+0) |
+| hal\mbed_gpio.o                 |     92(+0) |    0(+0) |     0(+0) |
+| hal\mbed_pinmap_common.o        |    400(+0) |    0(+0) |     0(+0) |
+| hal\mbed_ticker_api.o           |   1668(+0) |    0(+0) |     0(+0) |
+| hal\mbed_us_ticker_api.o        |     84(+0) |    4(+0) |    64(+0) |
+| platform\CThunkBase.o           |     24(+0) |    0(+0) |     4(+0) |
+| platform\FileBase.o             |    316(+0) |    0(+0) |    56(+0) |
+| platform\FileHandle.o           |      8(+0) |    0(+0) |     0(+0) |
+| platform\FileSystemHandle.o     |     92(+0) |    0(+0) |     0(+0) |
+| platform\mbed_alloc_wrappers.o  |     16(+0) |    0(+0) |     0(+0) |
+| platform\mbed_assert.o          |     48(+0) |    0(+0) |     0(+0) |
+| platform\mbed_board.o           |    325(+0) |    0(+0) |     0(+0) |
+| platform\mbed_critical.o        |    356(+0) |    0(+0) |     4(+0) |
+| platform\mbed_error.o           |   1387(+0) |    0(+0) |   114(+0) |
+| platform\mbed_mktime.o          |    780(+0) |    0(+0) |     0(+0) |
+| platform\mbed_retarget.o        |   2296(+0) |  260(+0) |   128(+0) |
+| platform\mbed_rtc_time.o        |    212(+0) |   16(+0) |    48(+0) |
+| platform\mbed_sleep_manager.o   |    295(+0) |    0(+0) |     2(+0) |
+| platform\mbed_wait_api_rtos.o   |    160(+0) |    0(+0) |     0(+0) |
+| rtos\Mutex.o                    |    428(+0) |    0(+0) |     0(+0) |
+| rtos\TARGET_CORTEX              |  12495(+0) |  173(+0) |  5968(+0) |
+| targets\TARGET_RENESAS          |  15105(+0) |    6(+0) |   724(+0) |
+| Subtotals                       | 129625(+0) | 2888(+0) | 38536(+0) |
+Total Static RAM memory (data + bss): 41424(+0) bytes
+Total Flash memory (text + data): 132513(+0) bytes
+
+Image: BUILD/tests/VK_RZ_A1H/GCC_ARM/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/files/files.bin
+
+Memory map breakdown for built projects (values in Bytes):
+| name     | target    | toolchain | static_ram | total_flash |
+|----------|-----------|-----------|------------|-------------|
+| dirs     | VK_RZ_A1H | GCC_ARM   |      25032 |      131969 |
+| files    | VK_RZ_A1H | GCC_ARM   |      41424 |      132513 |
+| fopen    | VK_RZ_A1H | GCC_ARM   |      15496 |       77938 |
+| parallel | VK_RZ_A1H | GCC_ARM   |      16352 |      129201 |
+| seek     | VK_RZ_A1H | GCC_ARM   |      25000 |      135529 |
+
+
+Build successes:
+  * VK_RZ_A1H::GCC_ARM::MBED-BUILD
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-DIRS
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FILES
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-FOPEN
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-PARALLEL
+  * VK_RZ_A1H::GCC_ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_RZ_SDHI-TESTS-FILESYSTEM-SEEK
+mbedgt: greentea test automation tool ver. 1.3.2
+mbedgt: test specification file 'D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver\BUILD\tests\VK_RZ_A1H\GCC_ARM\test_spec.json' (specified with --test-spec option)
+mbedgt: using 'D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver\BUILD\tests\VK_RZ_A1H\GCC_ARM\test_spec.json' from current directory!
+mbedgt: detecting connected mbed-enabled devices...
+[1553877106.46][mbedls.lstools_base]Call to deprecated function list_mbeds_ext. Functionality has been moved into 'list_mbeds'. Please use list_mbeds with 'unique_names=True' and 'read_details_txt=True'
+mbedgt: detected 1 device
+mbedgt: processing target 'VK_RZ_A1H' toolchain 'GCC_ARM' compatible platforms... (note: switch set to --parallel 1)
+mbedgt: test case filter (specified with -n option)
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel'
+        test filtered in 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek'
+mbedgt: running 5 tests for platform 'VK_RZ_A1H' and toolchain 'GCC_ARM'
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen' . OK in 20.14 sec
+        test case: 'FSFAT_FOPEN_TEST_00: format sd card to FAT FS.' .................................. OK in 0.09 sec
+        test case: 'FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath.'  OK in 0.12 sec
+        test case: 'FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.' ................ OK in 0.11 sec
+        test case: 'FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.' ............... OK in 0.11 sec
+        test case: 'FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.' ...... OK in 0.11 sec
+        test case: 'FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).' ...................... OK in 0.10 sec
+        test case: 'FSFAT_FOPEN_TEST_07: fopen()/errno handling.' .................................... OK in 0.09 sec
+        test case: 'FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.' ........................ OK in 0.11 sec
+        test case: 'FSFAT_FOPEN_TEST_09: ftell() handling.' .......................................... OK in 0.07 sec
+        test case: 'FSFAT_FOPEN_TEST_10: remove() test.' ............................................. OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_11: rename().' .................................................. OK in 0.06 sec
+        test case: 'FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.' ..................... OK in 0.11 sec
+        test case: 'FSFAT_FOPEN_TEST_13: mkdir() test.' .............................................. OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_14: stat() test.' ............................................... OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_15: format() test.' ............................................. OK in 0.08 sec
+        test case: 'FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.' ........................... OK in 0.09 sec
+mbedgt: test case summary: 16 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs' .. OK in 22.47 sec
+        test case: 'Directory creation' .............................................................. OK in 0.05 sec
+        test case: 'Directory failures' .............................................................. OK in 0.04 sec
+        test case: 'Directory iteration' ............................................................. OK in 0.05 sec
+        test case: 'Directory remove' ................................................................ OK in 0.07 sec
+        test case: 'Directory rename' ................................................................ OK in 0.19 sec
+        test case: 'Directory tests' ................................................................. OK in 0.56 sec
+        test case: 'File creation' ................................................................... OK in 0.03 sec
+        test case: 'Multi-block directory' ........................................................... OK in 2.65 sec
+        test case: 'Nested directories' .............................................................. OK in 0.07 sec
+        test case: 'Root directory' .................................................................. OK in 0.05 sec
+mbedgt: test case summary: 10 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel'  OK in 17.88 sec
+        test case: 'File tests' ...................................................................... OK in 0.57 sec
+        test case: 'Filesystem access from multiple threads' ......................................... OK in 0.16 sec
+mbedgt: test case summary: 2 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files' . OK in 20.98 sec
+        test case: 'Block Size file test' ............................................................ OK in 0.17 sec
+        test case: 'Dir check' ....................................................................... OK in 0.04 sec
+        test case: 'File tests' ...................................................................... OK in 0.69 sec
+        test case: 'Large file test' ................................................................. OK in 1.30 sec
+        test case: 'Medium file test' ................................................................ OK in 0.09 sec
+        test case: 'Multiple block size file test' ................................................... OK in 0.09 sec
+        test case: 'Non-overlap check' ............................................................... OK in 0.35 sec
+        test case: 'Simple file test' ................................................................ OK in 0.05 sec
+        test case: 'Small file test' ................................................................. OK in 0.05 sec
+mbedgt: test case summary: 9 passes, 0 failures
+mbedgt: mbed-host-test-runner: started
+mbedgt: checking for GCOV data...
+mbedgt: test on hardware with target id: C00202240f1553d5f2ce6c2f
+mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek' .. OK in 21.96 sec
+        test case: 'Boundary seek and write' ......................................................... OK in 0.08 sec
+        test case: 'Large dir seek' .................................................................. OK in 0.07 sec
+        test case: 'Large file seek' ................................................................. OK in 0.05 sec
+        test case: 'Large file seek and write' ....................................................... OK in 0.06 sec
+        test case: 'Out-of-bounds seek' .............................................................. OK in 0.05 sec
+        test case: 'Seek tests' ...................................................................... OK in 2.98 sec
+        test case: 'Simple dir seek' ................................................................. OK in 0.05 sec
+        test case: 'Simple file seek' ................................................................ OK in 0.05 sec
+        test case: 'Simple file seek and write' ...................................................... OK in 0.05 sec
+mbedgt: test case summary: 9 passes, 0 failures
+mbedgt: all tests finished!
+mbedgt: shuffle seed: 0.2388332990
+mbedgt: test suite report:
++-------------------+---------------+------------------------------------------------------------------------------------+--------+--------------------+-------------+
+| target            | platform_name | test suite                                                                         | result | elapsed_time (sec) | copy_method |
++-------------------+---------------+------------------------------------------------------------------------------------+--------+--------------------+-------------+
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | OK     | 22.47              | default     |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | OK     | 20.98              | default     |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | OK     | 20.14              | default     |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel | OK     | 17.88              | default     |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | OK     | 21.96              | default     |
++-------------------+---------------+------------------------------------------------------------------------------------+--------+--------------------+-------------+
+mbedgt: test suite results: 5 OK
+mbedgt: test case report:
++-------------------+---------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+--------+--------+--------+--------------------+
+| target            | platform_name | test suite                                                                         | test case                                                                              | passed | failed | result | elapsed_time (sec) |
++-------------------+---------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+--------+--------+--------+--------------------+
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory creation                                                                     | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory failures                                                                     | 1      | 0      | OK     | 0.04               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory iteration                                                                    | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory remove                                                                       | 1      | 0      | OK     | 0.07               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory rename                                                                       | 1      | 0      | OK     | 0.19               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Directory tests                                                                        | 1      | 0      | OK     | 0.56               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | File creation                                                                          | 1      | 0      | OK     | 0.03               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Multi-block directory                                                                  | 1      | 0      | OK     | 2.65               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Nested directories                                                                     | 1      | 0      | OK     | 0.07               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-dirs     | Root directory                                                                         | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Block Size file test                                                                   | 1      | 0      | OK     | 0.17               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Dir check                                                                              | 1      | 0      | OK     | 0.04               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | File tests                                                                             | 1      | 0      | OK     | 0.69               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Large file test                                                                        | 1      | 0      | OK     | 1.3                |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Medium file test                                                                       | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Multiple block size file test                                                          | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Non-overlap check                                                                      | 1      | 0      | OK     | 0.35               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Simple file test                                                                       | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-files    | Small file test                                                                        | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_00: format sd card to FAT FS.                                         | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath. | 1      | 0      | OK     | 0.12               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.                       | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.                      | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.             | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).                             | 1      | 0      | OK     | 0.1                |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_07: fopen()/errno handling.                                           | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.                               | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_09: ftell() handling.                                                 | 1      | 0      | OK     | 0.07               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_10: remove() test.                                                    | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_11: rename().                                                         | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.                            | 1      | 0      | OK     | 0.11               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_13: mkdir() test.                                                     | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_14: stat() test.                                                      | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_15: format() test.                                                    | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-fopen    | FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.                                  | 1      | 0      | OK     | 0.09               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel | File tests                                                                             | 1      | 0      | OK     | 0.57               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-parallel | Filesystem access from multiple threads                                                | 1      | 0      | OK     | 0.16               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Boundary seek and write                                                                | 1      | 0      | OK     | 0.08               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Large dir seek                                                                         | 1      | 0      | OK     | 0.07               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Large file seek                                                                        | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Large file seek and write                                                              | 1      | 0      | OK     | 0.06               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Out-of-bounds seek                                                                     | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Seek tests                                                                             | 1      | 0      | OK     | 2.98               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Simple dir seek                                                                        | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Simple file seek                                                                       | 1      | 0      | OK     | 0.05               |
+| VK_RZ_A1H-GCC_ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_rz_sdhi-tests-filesystem-seek     | Simple file seek and write                                                             | 1      | 0      | OK     | 0.05               |
++-------------------+---------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+--------+--------+--------+--------------------+
+mbedgt: test case results: 46 OK
+mbedgt: completed in 104.36 sec
+
+D:\Projects\kitVK-RZ_A1H\mbed\SDHI\driver>
\ No newline at end of file
--- a/SD_dirs(ARM).log	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-[1552902532.73][HTST][INF] host test executor ver. 0.0.1
-[1552902532.73][HTST][INF] copy image onto target... SKIPPED!
-[1552902532.73][HTST][INF] starting host test process...
-[1552902533.38][CONN][INF] starting connection process...
-[1552902533.38][CONN][INF] notify event queue about extra 60 sec timeout for serial port pooling
-[1552902533.38][CONN][INF] initializing serial port listener... 
-[1552902533.38][SERI][INF] serial(port=COM27, baudrate=9600, read_timeout=0.01, write_timeout=5)
-[1552902533.38][SERI][TXD] mbedmbedmbedmbedmbedmbedmbedmbedmbedmbed
-[1552902533.38][CONN][INF] sending up to 2 __sync packets (specified with --sync=2)
-[1552902533.38][CONN][INF] sending preamble '3a5b5d7c-9ab9-43a8-9793-7b1a22f1de86'
-[1552902533.38][HTST][INF] setting timeout to: 60 sec
-[1552902533.43][SERI][TXD] {{__sync;3a5b5d7c-9ab9-43a8-9793-7b1a22f1de86}}
-[1552902533.52][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed

-[1552902533.57][CONN][INF] found SYNC in stream: {{__sync;3a5b5d7c-9ab9-43a8-9793-7b1a22f1de86}} it is #0 sent, queued...
-[1552902533.58][HTST][INF] sync KV found, uuid=3a5b5d7c-9ab9-43a8-9793-7b1a22f1de86, timestamp=1552902533.572000
-[1552902533.59][CONN][INF] found KV pair in stream: {{__version;1.3.0}}, queued...
-[1552902533.60][HTST][INF] DUT greentea-client version: 1.3.0
-[1552902533.61][CONN][INF] found KV pair in stream: {{__timeout;120}}, queued...
-[1552902533.61][HTST][INF] setting timeout to: 120 sec
-[1552902533.65][CONN][INF] found KV pair in stream: {{__host_test_name;default_auto}}, queued...
-[1552902533.65][HTST][INF] host test class: '<class 'mbed_os_tools.test.host_tests.default_auto.DefaultAuto'>'
-[1552902533.65][HTST][INF] host test setup() call...
-[1552902533.65][HTST][INF] CALLBACKs updated
-[1552902533.65][HTST][INF] host test detected: default_auto
-[1552902533.68][CONN][RXD] >>> Running 10 test cases...
-[1552902533.71][CONN][INF] found KV pair in stream: {{__testcase_name;Directory tests}}, queued...
-[1552902533.75][CONN][INF] found KV pair in stream: {{__testcase_name;Root directory}}, queued...
-[1552902533.80][CONN][INF] found KV pair in stream: {{__testcase_name;Directory creation}}, queued...
-[1552902533.83][CONN][INF] found KV pair in stream: {{__testcase_name;File creation}}, queued...
-[1552902533.87][CONN][INF] found KV pair in stream: {{__testcase_name;Directory iteration}}, queued...
-[1552902533.91][CONN][INF] found KV pair in stream: {{__testcase_name;Directory failures}}, queued...
-[1552902533.95][CONN][INF] found KV pair in stream: {{__testcase_name;Nested directories}}, queued...
-[1552902534.00][CONN][INF] found KV pair in stream: {{__testcase_name;Multi-block directory}}, queued...
-[1552902534.04][CONN][INF] found KV pair in stream: {{__testcase_name;Directory remove}}, queued...
-[1552902534.08][CONN][INF] found KV pair in stream: {{__testcase_name;Directory rename}}, queued...
-[1552902534.09][CONN][RXD] 
-[1552902534.13][CONN][RXD] >>> Running case #1: 'Directory tests'...
-[1552902534.16][CONN][INF] found KV pair in stream: {{__testcase_start;Directory tests}}, queued...
-[1552902534.29][CONN][RXD] init card = 1

-[1552902534.35][CONN][RXD] CSD is 40 0E 00 5A 5B 59 00 00 74 B7 7F 80 0A 40 00 00 

-[1552902534.38][CONN][RXD] SDHC/SDXC Card: hc_c_size: 29879

-[1552902534.41][CONN][RXD] Sectors: 0x1d2e000 : 30597120

-[1552902534.44][CONN][RXD] Capacity: 14940 MB

-[1552902534.74][CONN][INF] found KV pair in stream: {{__testcase_finish;Directory tests;1;0}}, queued...
-[1552902534.79][CONN][RXD] >>> 'Directory tests': 1 passed, 0 failed
-[1552902534.79][CONN][RXD] 
-[1552902534.83][CONN][RXD] >>> Running case #2: 'Root directory'...
-[1552902534.87][CONN][INF] found KV pair in stream: {{__testcase_start;Root directory}}, queued...
-[1552902534.91][CONN][INF] found KV pair in stream: {{__testcase_finish;Root directory;1;0}}, queued...
-[1552902534.96][CONN][RXD] >>> 'Root directory': 1 passed, 0 failed
-[1552902534.96][CONN][RXD] 
-[1552902535.00][CONN][RXD] >>> Running case #3: 'Directory creation'...
-[1552902535.04][CONN][INF] found KV pair in stream: {{__testcase_start;Directory creation}}, queued...
-[1552902535.10][CONN][INF] found KV pair in stream: {{__testcase_finish;Directory creation;1;0}}, queued...
-[1552902535.14][CONN][RXD] >>> 'Directory creation': 1 passed, 0 failed
-[1552902535.15][CONN][RXD] 
-[1552902535.20][CONN][RXD] >>> Running case #4: 'File creation'...
-[1552902535.23][CONN][INF] found KV pair in stream: {{__testcase_start;File creation}}, queued...
-[1552902535.27][CONN][INF] found KV pair in stream: {{__testcase_finish;File creation;1;0}}, queued...
-[1552902535.31][CONN][RXD] >>> 'File creation': 1 passed, 0 failed
-[1552902535.31][CONN][RXD] 
-[1552902535.37][CONN][RXD] >>> Running case #5: 'Directory iteration'...
-[1552902535.41][CONN][INF] found KV pair in stream: {{__testcase_start;Directory iteration}}, queued...
-[1552902535.45][CONN][INF] found KV pair in stream: {{__testcase_finish;Directory iteration;1;0}}, queued...
-[1552902535.51][CONN][RXD] >>> 'Directory iteration': 1 passed, 0 failed
-[1552902535.51][CONN][RXD] 
-[1552902535.55][CONN][RXD] >>> Running case #6: 'Directory failures'...
-[1552902535.59][CONN][INF] found KV pair in stream: {{__testcase_start;Directory failures}}, queued...
-[1552902535.64][CONN][INF] found KV pair in stream: {{__testcase_finish;Directory failures;1;0}}, queued...
-[1552902535.69][CONN][RXD] >>> 'Directory failures': 1 passed, 0 failed
-[1552902535.69][CONN][RXD] 
-[1552902535.74][CONN][RXD] >>> Running case #7: 'Nested directories'...
-[1552902535.79][CONN][INF] found KV pair in stream: {{__testcase_start;Nested directories}}, queued...
-[1552902535.87][CONN][INF] found KV pair in stream: {{__testcase_finish;Nested directories;1;0}}, queued...
-[1552902535.91][CONN][RXD] >>> 'Nested directories': 1 passed, 0 failed
-[1552902535.91][CONN][RXD] 
-[1552902535.96][CONN][RXD] >>> Running case #8: 'Multi-block directory'...
-[1552902536.01][CONN][INF] found KV pair in stream: {{__testcase_start;Multi-block directory}}, queued...
-[1552902538.53][CONN][INF] found KV pair in stream: {{__testcase_finish;Multi-block directory;1;0}}, queued...
-[1552902538.59][CONN][RXD] >>> 'Multi-block directory': 1 passed, 0 failed
-[1552902538.59][CONN][RXD] 
-[1552902538.63][CONN][RXD] >>> Running case #9: 'Directory remove'...
-[1552902538.67][CONN][INF] found KV pair in stream: {{__testcase_start;Directory remove}}, queued...
-[1552902538.74][CONN][INF] found KV pair in stream: {{__testcase_finish;Directory remove;1;0}}, queued...
-[1552902538.79][CONN][RXD] >>> 'Directory remove': 1 passed, 0 failed
-[1552902538.79][CONN][RXD] 
-[1552902538.84][CONN][RXD] >>> Running case #10: 'Directory rename'...
-[1552902538.88][CONN][INF] found KV pair in stream: {{__testcase_start;Directory rename}}, queued...
-[1552902539.06][CONN][INF] found KV pair in stream: {{__testcase_finish;Directory rename;1;0}}, queued...
-[1552902539.11][CONN][RXD] >>> 'Directory rename': 1 passed, 0 failed
-[1552902539.11][CONN][RXD] 
-[1552902539.15][CONN][RXD] >>> Test cases: 10 passed, 0 failed
-[1552902539.18][CONN][INF] found KV pair in stream: {{__testcase_summary;10;0}}, queued...
-[1552902539.19][CONN][INF] found KV pair in stream: {{end;success}}, queued...
-[1552902539.20][HTST][INF] __notify_complete(True)
-[1552902539.20][HTST][INF] __exit_event_queue received
-[1552902539.20][HTST][INF] test suite run finished after 5.60 sec...
-[1552902539.21][CONN][INF] found KV pair in stream: {{__exit;0}}, queued...
-[1552902539.21][CONN][INF] received special event '__host_test_finished' value='True', finishing
-[1552902539.22][HTST][INF] CONN exited with code: 0
-[1552902539.22][HTST][INF] Some events in queue
-[1552902539.22][HTST][INF] stopped consuming events
-[1552902539.22][HTST][INF] host test result() call skipped, received: True
-[1552902539.22][HTST][WRN] missing __exit event from DUT
-[1552902539.22][HTST][INF] calling blocking teardown()
-[1552902539.22][HTST][INF] teardown() finished
-[1552902539.22][HTST][INF] {{result;success}}
-
--- a/SD_files(ARM).log	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-[1552902322.04][HTST][INF] host test executor ver. 0.0.1
-[1552902322.04][HTST][INF] copy image onto target... SKIPPED!
-[1552902322.04][HTST][INF] starting host test process...
-[1552902322.72][CONN][INF] starting connection process...
-[1552902322.72][CONN][INF] notify event queue about extra 60 sec timeout for serial port pooling
-[1552902322.72][CONN][INF] initializing serial port listener... 
-[1552902322.72][SERI][INF] serial(port=COM27, baudrate=9600, read_timeout=0.01, write_timeout=5)
-[1552902322.72][SERI][TXD] mbedmbedmbedmbedmbedmbedmbedmbedmbedmbed
-[1552902322.73][CONN][INF] sending up to 2 __sync packets (specified with --sync=2)
-[1552902322.73][CONN][INF] sending preamble '14eb128e-b7f4-43fb-a6ba-f9ee48bbe45a'
-[1552902322.74][HTST][INF] setting timeout to: 60 sec
-[1552902322.77][SERI][TXD] {{__sync;14eb128e-b7f4-43fb-a6ba-f9ee48bbe45a}}
-[1552902322.86][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed

-[1552902322.90][CONN][INF] found SYNC in stream: {{__sync;14eb128e-b7f4-43fb-a6ba-f9ee48bbe45a}} it is #0 sent, queued...
-[1552902322.91][HTST][INF] sync KV found, uuid=14eb128e-b7f4-43fb-a6ba-f9ee48bbe45a, timestamp=1552902322.905000
-[1552902322.94][CONN][INF] found KV pair in stream: {{__version;1.3.0}}, queued...
-[1552902322.94][HTST][INF] DUT greentea-client version: 1.3.0
-[1552902322.95][CONN][INF] found KV pair in stream: {{__timeout;120}}, queued...
-[1552902322.95][HTST][INF] setting timeout to: 120 sec
-[1552902322.99][CONN][INF] found KV pair in stream: {{__host_test_name;default_auto}}, queued...
-[1552902322.99][HTST][INF] host test class: '<class 'mbed_os_tools.test.host_tests.default_auto.DefaultAuto'>'
-[1552902322.99][HTST][INF] host test setup() call...
-[1552902322.99][HTST][INF] CALLBACKs updated
-[1552902322.99][HTST][INF] host test detected: default_auto
-[1552902323.02][CONN][RXD] >>> Running 9 test cases...
-[1552902323.05][CONN][INF] found KV pair in stream: {{__testcase_name;File tests}}, queued...
-[1552902323.10][CONN][INF] found KV pair in stream: {{__testcase_name;Simple file test}}, queued...
-[1552902323.13][CONN][INF] found KV pair in stream: {{__testcase_name;Small file test}}, queued...
-[1552902323.17][CONN][INF] found KV pair in stream: {{__testcase_name;Medium file test}}, queued...
-[1552902323.21][CONN][INF] found KV pair in stream: {{__testcase_name;Large file test}}, queued...
-[1552902323.25][CONN][INF] found KV pair in stream: {{__testcase_name;Block Size file test}}, queued...
-[1552902323.30][CONN][INF] found KV pair in stream: {{__testcase_name;Multiple block size file test}}, queued...
-[1552902323.34][CONN][INF] found KV pair in stream: {{__testcase_name;Non-overlap check}}, queued...
-[1552902323.38][CONN][RXD] 
-[1552902323.38][CONN][INF] found KV pair in stream: {{__testcase_name;Dir check}}, queued...
-[1552902323.42][CONN][RXD] >>> Running case #1: 'File tests'...
-[1552902323.45][CONN][INF] found KV pair in stream: {{__testcase_start;File tests}}, queued...
-[1552902323.57][CONN][RXD] init card = 1

-[1552902323.64][CONN][RXD] CSD is 40 0E 00 5A 5B 59 00 00 74 B7 7F 80 0A 40 00 00 

-[1552902323.67][CONN][RXD] SDHC/SDXC Card: hc_c_size: 29879

-[1552902323.70][CONN][RXD] Sectors: 0x1d2e000 : 30597120

-[1552902323.72][CONN][RXD] Capacity: 14940 MB

-[1552902324.03][CONN][INF] found KV pair in stream: {{__testcase_finish;File tests;1;0}}, queued...
-[1552902324.07][CONN][RXD] >>> 'File tests': 1 passed, 0 failed
-[1552902324.07][CONN][RXD] 
-[1552902324.11][CONN][RXD] >>> Running case #2: 'Simple file test'...
-[1552902324.15][CONN][INF] found KV pair in stream: {{__testcase_start;Simple file test}}, queued...
-[1552902324.20][CONN][INF] found KV pair in stream: {{__testcase_finish;Simple file test;1;0}}, queued...
-[1552902324.25][CONN][RXD] >>> 'Simple file test': 1 passed, 0 failed
-[1552902324.25][CONN][RXD] 
-[1552902324.30][CONN][RXD] >>> Running case #3: 'Small file test'...
-[1552902324.34][CONN][INF] found KV pair in stream: {{__testcase_start;Small file test}}, queued...
-[1552902324.39][CONN][INF] found KV pair in stream: {{__testcase_finish;Small file test;1;0}}, queued...
-[1552902324.43][CONN][RXD] >>> 'Small file test': 1 passed, 0 failed
-[1552902324.43][CONN][RXD] 
-[1552902324.48][CONN][RXD] >>> Running case #4: 'Medium file test'...
-[1552902324.52][CONN][INF] found KV pair in stream: {{__testcase_start;Medium file test}}, queued...
-[1552902324.62][CONN][INF] found KV pair in stream: {{__testcase_finish;Medium file test;1;0}}, queued...
-[1552902324.66][CONN][RXD] >>> 'Medium file test': 1 passed, 0 failed
-[1552902324.66][CONN][RXD] 
-[1552902324.70][CONN][RXD] >>> Running case #5: 'Large file test'...
-[1552902324.75][CONN][INF] found KV pair in stream: {{__testcase_start;Large file test}}, queued...
-[1552902326.09][CONN][INF] found KV pair in stream: {{__testcase_finish;Large file test;1;0}}, queued...
-[1552902326.13][CONN][RXD] >>> 'Large file test': 1 passed, 0 failed
-[1552902326.13][CONN][RXD] 
-[1552902326.19][CONN][RXD] >>> Running case #6: 'Block Size file test'...
-[1552902326.23][CONN][INF] found KV pair in stream: {{__testcase_start;Block Size file test}}, queued...
-[1552902326.35][CONN][INF] found KV pair in stream: {{__testcase_finish;Block Size file test;1;0}}, queued...
-[1552902326.40][CONN][RXD] >>> 'Block Size file test': 1 passed, 0 failed
-[1552902326.40][CONN][RXD] 
-[1552902326.46][CONN][RXD] >>> Running case #7: 'Multiple block size file test'...
-[1552902326.52][CONN][INF] found KV pair in stream: {{__testcase_start;Multiple block size file test}}, queued...
-[1552902326.61][CONN][INF] found KV pair in stream: {{__testcase_finish;Multiple block size file test;1;0}}, queued...
-[1552902326.67][CONN][RXD] >>> 'Multiple block size file test': 1 passed, 0 failed
-[1552902326.67][CONN][RXD] 
-[1552902326.72][CONN][RXD] >>> Running case #8: 'Non-overlap check'...
-[1552902326.76][CONN][INF] found KV pair in stream: {{__testcase_start;Non-overlap check}}, queued...
-[1552902327.10][CONN][INF] found KV pair in stream: {{__testcase_finish;Non-overlap check;1;0}}, queued...
-[1552902327.14][CONN][RXD] >>> 'Non-overlap check': 1 passed, 0 failed
-[1552902327.14][CONN][RXD] 
-[1552902327.18][CONN][RXD] >>> Running case #9: 'Dir check'...
-[1552902327.21][CONN][INF] found KV pair in stream: {{__testcase_start;Dir check}}, queued...
-[1552902327.25][CONN][INF] found KV pair in stream: {{__testcase_finish;Dir check;1;0}}, queued...
-[1552902327.29][CONN][RXD] >>> 'Dir check': 1 passed, 0 failed
-[1552902327.29][CONN][RXD] 
-[1552902327.33][CONN][RXD] >>> Test cases: 9 passed, 0 failed
-[1552902327.36][CONN][INF] found KV pair in stream: {{__testcase_summary;9;0}}, queued...
-[1552902327.37][CONN][INF] found KV pair in stream: {{end;success}}, queued...
-[1552902327.37][HTST][INF] __notify_complete(True)
-[1552902327.38][HTST][INF] __exit_event_queue received
-[1552902327.38][HTST][INF] test suite run finished after 4.43 sec...
-[1552902327.38][CONN][INF] received special event '__host_test_finished' value='True', finishing
-[1552902327.38][HTST][INF] CONN exited with code: 0
-[1552902327.38][HTST][INF] No events in queue
-[1552902327.38][HTST][INF] stopped consuming events
-[1552902327.38][HTST][INF] host test result() call skipped, received: True
-[1552902327.38][HTST][WRN] missing __exit event from DUT
-[1552902327.38][HTST][INF] calling blocking teardown()
-[1552902327.38][HTST][INF] teardown() finished
-[1552902327.38][HTST][INF] {{result;success}}
-
--- a/SD_fopen(ARM).log	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-[1552903233.10][HTST][INF] host test executor ver. 0.0.1
-[1552903233.10][HTST][INF] copy image onto target... SKIPPED!
-[1552903233.11][HTST][INF] starting host test process...
-[1552903233.81][CONN][INF] starting connection process...
-[1552903233.81][CONN][INF] notify event queue about extra 60 sec timeout for serial port pooling
-[1552903233.81][CONN][INF] initializing serial port listener... 
-[1552903233.81][SERI][INF] serial(port=COM27, baudrate=9600, read_timeout=0.01, write_timeout=5)
-[1552903233.82][SERI][TXD] mbedmbedmbedmbedmbedmbedmbedmbedmbedmbed
-[1552903233.82][CONN][INF] sending up to 2 __sync packets (specified with --sync=2)
-[1552903233.82][CONN][INF] sending preamble '5b118ab0-efab-4c9e-87f4-d4c32f818d65'
-[1552903233.82][HTST][INF] setting timeout to: 60 sec
-[1552903233.86][SERI][TXD] {{__sync;5b118ab0-efab-4c9e-87f4-d4c32f818d65}}
-[1552903233.92][CONN][RXD] nit card = 1

-[1552903233.95][CONN][RXD] CSD is 40 0E 00 5A 5B 59 00 00 74 B7 7F 80 0A 40 0mbedmbedmbedmbedmbedmbedmbedmbed

-[1552903234.00][CONN][INF] found SYNC in stream: {{__sync;5b118ab0-efab-4c9e-87f4-d4c32f818d65}} it is #0 sent, queued...
-[1552903234.00][HTST][INF] sync KV found, uuid=5b118ab0-efab-4c9e-87f4-d4c32f818d65, timestamp=1552903234.000000
-[1552903234.02][CONN][INF] found KV pair in stream: {{__version;1.3.0}}, queued...
-[1552903234.02][HTST][INF] DUT greentea-client version: 1.3.0
-[1552903234.04][CONN][INF] found KV pair in stream: {{__timeout;1000}}, queued...
-[1552903234.05][HTST][INF] setting timeout to: 1000 sec
-[1552903234.08][CONN][INF] found KV pair in stream: {{__host_test_name;default_auto}}, queued...
-[1552903234.08][HTST][INF] host test class: '<class 'mbed_os_tools.test.host_tests.default_auto.DefaultAuto'>'
-[1552903234.08][HTST][INF] host test setup() call...
-[1552903234.08][HTST][INF] CALLBACKs updated
-[1552903234.08][HTST][INF] host test detected: default_auto
-[1552903234.11][CONN][INF] found KV pair in stream: {{__testcase_count;16}}, queued...
-[1552903234.13][CONN][RXD] >>> Running 16 test cases...
-[1552903234.20][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_00: format sd card to FAT FS.}}, queued...
-[1552903234.32][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath.}}, queued...
-[1552903234.41][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.}}, queued...
-[1552903234.49][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.}}, queued...
-[1552903234.60][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.}}, queued...
-[1552903234.68][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).}}, queued...
-[1552903234.75][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_07: fopen()/errno handling.}}, queued...
-[1552903234.83][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.}}, queued...
-[1552903234.90][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_09: ftell() handling.}}, queued...
-[1552903234.95][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_10: remove() test.}}, queued...
-[1552903235.00][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_11: rename().}}, queued...
-[1552903235.10][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.}}, queued...
-[1552903235.15][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_13: mkdir() test.}}, queued...
-[1552903235.21][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_14: stat() test.}}, queued...
-[1552903235.27][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_15: format() test.}}, queued...
-[1552903235.35][CONN][RXD] 
-[1552903235.35][CONN][INF] found KV pair in stream: {{__testcase_name;FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.}}, queued...
-[1552903235.42][CONN][RXD] >>> Running case #1: 'FSFAT_FOPEN_TEST_00: format sd card to FAT FS.'...
-[1552903235.49][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_00: format sd card to FAT FS.}}, queued...
-[1552903235.86][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_00: format sd card to FAT FS.;1;0}}, queued...
-[1552903235.93][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_00: format sd card to FAT FS.': 1 passed, 0 failed
-[1552903235.93][CONN][RXD] 
-[1552903236.05][CONN][RXD] >>> Running case #2: 'FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath.'...
-[1552903236.16][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath.}}, queued...
-[1552903236.40][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath.;1;0}}, queued...
-[1552903236.51][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath.': 1 passed, 0 failed
-[1552903236.51][CONN][RXD] 
-[1552903236.61][CONN][RXD] >>> Running case #3: 'FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.'...
-[1552903236.70][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.}}, queued...
-[1552903236.80][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.;1;0}}, queued...
-[1552903236.89][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.': 1 passed, 0 failed
-[1552903236.90][CONN][RXD] 
-[1552903237.00][CONN][RXD] >>> Running case #4: 'FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.'...
-[1552903237.09][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.}}, queued...
-[1552903237.21][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.;1;0}}, queued...
-[1552903237.31][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.': 1 passed, 0 failed
-[1552903237.31][CONN][RXD] 
-[1552903237.41][CONN][RXD] >>> Running case #5: 'FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.'...
-[1552903237.52][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.}}, queued...
-[1552903237.62][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.;1;0}}, queued...
-[1552903237.73][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.': 1 passed, 0 failed
-[1552903237.73][CONN][RXD] 
-[1552903237.81][CONN][RXD] >>> Running case #6: 'FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).'...
-[1552903237.89][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).}}, queued...
-[1552903237.99][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).;1;0}}, queued...
-[1552903238.08][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).': 1 passed, 0 failed
-[1552903238.08][CONN][RXD] 
-[1552903238.15][CONN][RXD] >>> Running case #7: 'FSFAT_FOPEN_TEST_07: fopen()/errno handling.'...
-[1552903238.22][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_07: fopen()/errno handling.}}, queued...
-[1552903238.30][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_07: fopen()/errno handling.;1;0}}, queued...
-[1552903238.37][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_07: fopen()/errno handling.': 1 passed, 0 failed
-[1552903238.37][CONN][RXD] 
-[1552903238.46][CONN][RXD] >>> Running case #8: 'FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.'...
-[1552903238.54][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.}}, queued...
-[1552903238.62][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.;1;0}}, queued...
-[1552903238.72][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.': 1 passed, 0 failed
-[1552903238.72][CONN][RXD] 
-[1552903238.78][CONN][RXD] >>> Running case #9: 'FSFAT_FOPEN_TEST_09: ftell() handling.'...
-[1552903238.84][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_09: ftell() handling.}}, queued...
-[1552903238.92][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_09: ftell() handling.;1;0}}, queued...
-[1552903238.99][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_09: ftell() handling.': 1 passed, 0 failed
-[1552903238.99][CONN][RXD] 
-[1552903239.05][CONN][RXD] >>> Running case #10: 'FSFAT_FOPEN_TEST_10: remove() test.'...
-[1552903239.12][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_10: remove() test.}}, queued...
-[1552903239.22][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_10: remove() test.;1;0}}, queued...
-[1552903239.28][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_10: remove() test.': 1 passed, 0 failed
-[1552903239.28][CONN][RXD] 
-[1552903239.35][CONN][RXD] >>> Running case #11: 'FSFAT_FOPEN_TEST_11: rename().'...
-[1552903239.40][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_11: rename().}}, queued...
-[1552903239.50][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_11: rename().;1;0}}, queued...
-[1552903239.56][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_11: rename().': 1 passed, 0 failed
-[1552903239.56][CONN][RXD] 
-[1552903239.64][CONN][RXD] >>> Running case #12: 'FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.'...
-[1552903239.73][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.}}, queued...
-[1552903239.82][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.;1;0}}, queued...
-[1552903239.92][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.': 1 passed, 0 failed
-[1552903239.92][CONN][RXD] 
-[1552903239.98][CONN][RXD] >>> Running case #13: 'FSFAT_FOPEN_TEST_13: mkdir() test.'...
-[1552903240.04][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_13: mkdir() test.}}, queued...
-[1552903240.26][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_13: mkdir() test.;1;0}}, queued...
-[1552903240.33][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_13: mkdir() test.': 1 passed, 0 failed
-[1552903240.33][CONN][RXD] 
-[1552903240.39][CONN][RXD] >>> Running case #14: 'FSFAT_FOPEN_TEST_14: stat() test.'...
-[1552903240.45][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_14: stat() test.}}, queued...
-[1552903240.52][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_14: stat() test.;1;0}}, queued...
-[1552903240.58][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_14: stat() test.': 1 passed, 0 failed
-[1552903240.58][CONN][RXD] 
-[1552903240.64][CONN][RXD] >>> Running case #15: 'FSFAT_FOPEN_TEST_15: format() test.'...
-[1552903240.70][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_15: format() test.}}, queued...
-[1552903241.00][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_15: format() test.;1;0}}, queued...
-[1552903241.07][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_15: format() test.': 1 passed, 0 failed
-[1552903241.07][CONN][RXD] 
-[1552903241.15][CONN][RXD] >>> Running case #16: 'FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.'...
-[1552903241.23][CONN][INF] found KV pair in stream: {{__testcase_start;FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.}}, queued...
-[1552903245.07][CONN][INF] found KV pair in stream: {{__testcase_finish;FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.;1;0}}, queued...
-[1552903245.15][CONN][RXD] >>> 'FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.': 1 passed, 0 failed
-[1552903245.15][CONN][RXD] 
-[1552903245.19][CONN][RXD] >>> Test cases: 16 passed, 0 failed
-[1552903245.22][CONN][INF] found KV pair in stream: {{__testcase_summary;16;0}}, queued...
-[1552903245.25][CONN][INF] found KV pair in stream: {{end;success}}, queued...
-[1552903245.25][HTST][INF] __notify_complete(True)
-[1552903245.26][HTST][INF] __exit_event_queue received
-[1552903245.26][HTST][INF] test suite run finished after 11.20 sec...
-[1552903245.26][CONN][INF] found KV pair in stream: {{__exit;0}}, queued...
-[1552903245.26][CONN][INF] received special event '__host_test_finished' value='True', finishing
-[1552903245.27][HTST][INF] CONN exited with code: 0
-[1552903245.27][HTST][INF] Some events in queue
-[1552903245.27][HTST][INF] stopped consuming events
-[1552903245.27][HTST][INF] host test result() call skipped, received: True
-[1552903245.27][HTST][WRN] missing __exit event from DUT
-[1552903245.27][HTST][INF] calling blocking teardown()
-[1552903245.27][HTST][INF] teardown() finished
-[1552903245.27][HTST][INF] {{result;success}}
-
--- a/SD_paralel(ARM).log	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-[1552903415.89][HTST][INF] host test executor ver. 0.0.1
-[1552903415.90][HTST][INF] copy image onto target... SKIPPED!
-[1552903415.91][HTST][INF] starting host test process...
-[1552903416.68][CONN][INF] starting connection process...
-[1552903416.68][CONN][INF] notify event queue about extra 60 sec timeout for serial port pooling
-[1552903416.68][CONN][INF] initializing serial port listener... 
-[1552903416.68][SERI][INF] serial(port=COM27, baudrate=9600, read_timeout=0.01, write_timeout=5)
-[1552903416.68][SERI][TXD] mbedmbedmbedmbedmbedmbedmbedmbedmbedmbed
-[1552903416.68][CONN][INF] sending up to 2 __sync packets (specified with --sync=2)
-[1552903416.68][CONN][INF] sending preamble 'a16d2d32-d657-4722-a025-ced87722193e'
-[1552903416.69][HTST][INF] setting timeout to: 60 sec
-[1552903416.73][SERI][TXD] {{__sync;a16d2d32-d657-4722-a025-ced87722193e}}
-[1552903416.82][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed

-[1552903416.87][CONN][INF] found SYNC in stream: {{__sync;a16d2d32-d657-4722-a025-ced87722193e}} it is #0 sent, queued...
-[1552903416.88][HTST][INF] sync KV found, uuid=a16d2d32-d657-4722-a025-ced87722193e, timestamp=1552903416.870000
-[1552903416.89][CONN][INF] found KV pair in stream: {{__version;1.3.0}}, queued...
-[1552903416.90][HTST][INF] DUT greentea-client version: 1.3.0
-[1552903416.91][CONN][INF] found KV pair in stream: {{__timeout;120}}, queued...
-[1552903416.91][HTST][INF] setting timeout to: 120 sec
-[1552903416.94][CONN][INF] found KV pair in stream: {{__host_test_name;default_auto}}, queued...
-[1552903416.95][HTST][INF] host test class: '<class 'mbed_os_tools.test.host_tests.default_auto.DefaultAuto'>'
-[1552903416.95][HTST][INF] host test setup() call...
-[1552903416.95][HTST][INF] CALLBACKs updated
-[1552903416.95][HTST][INF] host test detected: default_auto
-[1552903416.98][CONN][RXD] >>> Running 2 test cases...
-[1552903417.01][CONN][INF] found KV pair in stream: {{__testcase_name;File tests}}, queued...
-[1552903417.07][CONN][RXD] 
-[1552903417.07][CONN][INF] found KV pair in stream: {{__testcase_name;Filesystem access from multiple threads}}, queued...
-[1552903417.11][CONN][RXD] >>> Running case #1: 'File tests'...
-[1552903417.14][CONN][INF] found KV pair in stream: {{__testcase_start;File tests}}, queued...
-[1552903417.27][CONN][RXD] init card = 1

-[1552903417.33][CONN][RXD] CSD is 40 0E 00 5A 5B 59 00 00 74 B7 7F 80 0A 40 00 00 

-[1552903417.37][CONN][RXD] SDHC/SDXC Card: hc_c_size: 29879

-[1552903417.40][CONN][RXD] Sectors: 0x1d2e000 : 30597120

-[1552903417.42][CONN][RXD] Capacity: 14940 MB

-[1552903417.85][CONN][INF] found KV pair in stream: {{__testcase_finish;File tests;1;0}}, queued...
-[1552903417.88][CONN][RXD] >>> 'File tests': 1 passed, 0 failed
-[1552903417.89][CONN][RXD] 
-[1552903417.95][CONN][RXD] >>> Running case #2: 'Filesystem access from multiple threads'...
-[1552903418.02][CONN][INF] found KV pair in stream: {{__testcase_start;Filesystem access from multiple threads}}, queued...
-[1552903418.17][CONN][INF] found KV pair in stream: {{__testcase_finish;Filesystem access from multiple threads;1;0}}, queued...
-[1552903418.25][CONN][RXD] >>> 'Filesystem access from multiple threads': 1 passed, 0 failed
-[1552903418.25][CONN][RXD] 
-[1552903418.28][CONN][RXD] >>> Test cases: 2 passed, 0 failed
-[1552903418.31][CONN][INF] found KV pair in stream: {{__testcase_summary;2;0}}, queued...
-[1552903418.33][CONN][INF] found KV pair in stream: {{end;success}}, queued...
-[1552903418.34][HTST][INF] __notify_complete(True)
-[1552903418.35][HTST][INF] __exit_event_queue received
-[1552903418.35][HTST][INF] test suite run finished after 1.43 sec...
-[1552903418.35][CONN][INF] found KV pair in stream: {{__exit;0}}, queued...
-[1552903418.36][CONN][INF] received special event '__host_test_finished' value='True', finishing
-[1552903418.36][HTST][INF] CONN exited with code: 0
-[1552903418.36][HTST][INF] Some events in queue
-[1552903418.36][HTST][INF] stopped consuming events
-[1552903418.36][HTST][INF] host test result() call skipped, received: True
-[1552903418.36][HTST][WRN] missing __exit event from DUT
-[1552903418.36][HTST][INF] calling blocking teardown()
-[1552903418.36][HTST][INF] teardown() finished
-[1552903418.36][HTST][INF] {{result;success}}
-
--- a/SD_seek(ARM).log	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-[1552903540.93][HTST][INF] host test executor ver. 0.0.1
-[1552903540.93][HTST][INF] copy image onto target... SKIPPED!
-[1552903540.94][HTST][INF] starting host test process...
-[1552903541.65][CONN][INF] starting connection process...
-[1552903541.65][CONN][INF] notify event queue about extra 60 sec timeout for serial port pooling
-[1552903541.65][CONN][INF] initializing serial port listener... 
-[1552903541.65][SERI][INF] serial(port=COM27, baudrate=9600, read_timeout=0.01, write_timeout=5)
-[1552903541.66][SERI][TXD] mbedmbedmbedmbedmbedmbedmbedmbedmbedmbed
-[1552903541.66][CONN][INF] sending up to 2 __sync packets (specified with --sync=2)
-[1552903541.66][CONN][INF] sending preamble '6346031d-5e4a-470b-b3a1-567ed5d74623'
-[1552903541.67][HTST][INF] setting timeout to: 60 sec
-[1552903541.70][SERI][TXD] {{__sync;6346031d-5e4a-470b-b3a1-567ed5d74623}}
-[1552903541.79][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed

-[1552903541.85][CONN][INF] found SYNC in stream: {{__sync;6346031d-5e4a-470b-b3a1-567ed5d74623}} it is #0 sent, queued...
-[1552903541.85][HTST][INF] sync KV found, uuid=6346031d-5e4a-470b-b3a1-567ed5d74623, timestamp=1552903541.846000
-[1552903541.87][CONN][INF] found KV pair in stream: {{__version;1.3.0}}, queued...
-[1552903541.87][HTST][INF] DUT greentea-client version: 1.3.0
-[1552903541.89][CONN][INF] found KV pair in stream: {{__timeout;120}}, queued...
-[1552903541.89][HTST][INF] setting timeout to: 120 sec
-[1552903541.92][CONN][INF] found KV pair in stream: {{__host_test_name;default_auto}}, queued...
-[1552903541.93][HTST][INF] host test class: '<class 'mbed_os_tools.test.host_tests.default_auto.DefaultAuto'>'
-[1552903541.93][HTST][INF] host test setup() call...
-[1552903541.93][HTST][INF] CALLBACKs updated
-[1552903541.93][HTST][INF] host test detected: default_auto
-[1552903541.95][CONN][RXD] >>> Running 9 test cases...
-[1552903541.98][CONN][INF] found KV pair in stream: {{__testcase_name;Seek tests}}, queued...
-[1552903542.03][CONN][INF] found KV pair in stream: {{__testcase_name;Simple dir seek}}, queued...
-[1552903542.06][CONN][INF] found KV pair in stream: {{__testcase_name;Large dir seek}}, queued...
-[1552903542.10][CONN][INF] found KV pair in stream: {{__testcase_name;Simple file seek}}, queued...
-[1552903542.14][CONN][INF] found KV pair in stream: {{__testcase_name;Large file seek}}, queued...
-[1552903542.18][CONN][INF] found KV pair in stream: {{__testcase_name;Simple file seek and write}}, queued...
-[1552903542.24][CONN][INF] found KV pair in stream: {{__testcase_name;Large file seek and write}}, queued...
-[1552903542.28][CONN][INF] found KV pair in stream: {{__testcase_name;Boundary seek and write}}, queued...
-[1552903542.32][CONN][RXD] 
-[1552903542.32][CONN][INF] found KV pair in stream: {{__testcase_name;Out-of-bounds seek}}, queued...
-[1552903542.36][CONN][RXD] >>> Running case #1: 'Seek tests'...
-[1552903542.39][CONN][INF] found KV pair in stream: {{__testcase_start;Seek tests}}, queued...
-[1552903542.53][CONN][RXD] init card = 1

-[1552903542.58][CONN][RXD] CSD is 40 0E 00 5A 5B 59 00 00 74 B7 7F 80 0A 40 00 00 

-[1552903542.62][CONN][RXD] SDHC/SDXC Card: hc_c_size: 29879

-[1552903542.65][CONN][RXD] Sectors: 0x1d2e000 : 30597120

-[1552903542.67][CONN][RXD] Capacity: 14940 MB

-[1552903545.45][CONN][INF] found KV pair in stream: {{__testcase_finish;Seek tests;1;0}}, queued...
-[1552903545.48][CONN][RXD] >>> 'Seek tests': 1 passed, 0 failed
-[1552903545.48][CONN][RXD] 
-[1552903545.53][CONN][RXD] >>> Running case #2: 'Simple dir seek'...
-[1552903545.57][CONN][INF] found KV pair in stream: {{__testcase_start;Simple dir seek}}, queued...
-[1552903545.62][CONN][INF] found KV pair in stream: {{__testcase_finish;Simple dir seek;1;0}}, queued...
-[1552903545.66][CONN][RXD] >>> 'Simple dir seek': 1 passed, 0 failed
-[1552903545.66][CONN][RXD] 
-[1552903545.70][CONN][RXD] >>> Running case #3: 'Large dir seek'...
-[1552903545.75][CONN][INF] found KV pair in stream: {{__testcase_start;Large dir seek}}, queued...
-[1552903545.80][CONN][INF] found KV pair in stream: {{__testcase_finish;Large dir seek;1;0}}, queued...
-[1552903545.84][CONN][RXD] >>> 'Large dir seek': 1 passed, 0 failed
-[1552903545.84][CONN][RXD] 
-[1552903545.88][CONN][RXD] >>> Running case #4: 'Simple file seek'...
-[1552903545.93][CONN][INF] found KV pair in stream: {{__testcase_start;Simple file seek}}, queued...
-[1552903545.97][CONN][INF] found KV pair in stream: {{__testcase_finish;Simple file seek;1;0}}, queued...
-[1552903546.01][CONN][RXD] >>> 'Simple file seek': 1 passed, 0 failed
-[1552903546.02][CONN][RXD] 
-[1552903546.07][CONN][RXD] >>> Running case #5: 'Large file seek'...
-[1552903546.10][CONN][INF] found KV pair in stream: {{__testcase_start;Large file seek}}, queued...
-[1552903546.15][CONN][INF] found KV pair in stream: {{__testcase_finish;Large file seek;1;0}}, queued...
-[1552903546.19][CONN][RXD] >>> 'Large file seek': 1 passed, 0 failed
-[1552903546.19][CONN][RXD] 
-[1552903546.24][CONN][RXD] >>> Running case #6: 'Simple file seek and write'...
-[1552903546.30][CONN][INF] found KV pair in stream: {{__testcase_start;Simple file seek and write}}, queued...
-[1552903546.36][CONN][INF] found KV pair in stream: {{__testcase_finish;Simple file seek and write;1;0}}, queued...
-[1552903546.42][CONN][RXD] >>> 'Simple file seek and write': 1 passed, 0 failed
-[1552903546.42][CONN][RXD] 
-[1552903546.47][CONN][RXD] >>> Running case #7: 'Large file seek and write'...
-[1552903546.52][CONN][INF] found KV pair in stream: {{__testcase_start;Large file seek and write}}, queued...
-[1552903546.59][CONN][INF] found KV pair in stream: {{__testcase_finish;Large file seek and write;1;0}}, queued...
-[1552903546.64][CONN][RXD] >>> 'Large file seek and write': 1 passed, 0 failed
-[1552903546.64][CONN][RXD] 
-[1552903546.69][CONN][RXD] >>> Running case #8: 'Boundary seek and write'...
-[1552903546.73][CONN][INF] found KV pair in stream: {{__testcase_start;Boundary seek and write}}, queued...
-[1552903546.83][CONN][INF] found KV pair in stream: {{__testcase_finish;Boundary seek and write;1;0}}, queued...
-[1552903546.88][CONN][RXD] >>> 'Boundary seek and write': 1 passed, 0 failed
-[1552903546.88][CONN][RXD] 
-[1552903546.93][CONN][RXD] >>> Running case #9: 'Out-of-bounds seek'...
-[1552903546.98][CONN][INF] found KV pair in stream: {{__testcase_start;Out-of-bounds seek}}, queued...
-[1552903547.03][CONN][INF] found KV pair in stream: {{__testcase_finish;Out-of-bounds seek;1;0}}, queued...
-[1552903547.07][CONN][RXD] >>> 'Out-of-bounds seek': 1 passed, 0 failed
-[1552903547.07][CONN][RXD] 
-[1552903547.12][CONN][RXD] >>> Test cases: 9 passed, 0 failed
-[1552903547.14][CONN][INF] found KV pair in stream: {{__testcase_summary;9;0}}, queued...
-[1552903547.16][CONN][INF] found KV pair in stream: {{end;success}}, queued...
-[1552903547.16][HTST][INF] __notify_complete(True)
-[1552903547.16][HTST][INF] __exit_event_queue received
-[1552903547.16][HTST][INF] test suite run finished after 5.27 sec...
-[1552903547.17][CONN][INF] found KV pair in stream: {{__exit;0}}, queued...
-[1552903547.17][CONN][INF] received special event '__host_test_finished' value='True', finishing
-[1552903547.18][HTST][INF] CONN exited with code: 0
-[1552903547.18][HTST][INF] Some events in queue
-[1552903547.18][HTST][INF] stopped consuming events
-[1552903547.18][HTST][INF] host test result() call skipped, received: True
-[1552903547.18][HTST][WRN] missing __exit event from DUT
-[1552903547.18][HTST][INF] calling blocking teardown()
-[1552903547.18][HTST][INF] teardown() finished
-[1552903547.18][HTST][INF] {{result;success}}
-
--- a/SYNC_FAIL.log	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-Image: BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_SD/TESTS/filesystem/dirs/dirs.bin
-
-Memory map breakdown for built projects (values in Bytes):
-| name | target    | toolchain | static_ram | total_flash |
-|------|-----------|-----------|------------|-------------|
-| dirs | VK_RZ_A1H | ARM       |     136558 |      186042 |
-
-
-Build successes:
-  * VK_RZ_A1H::ARM::MBED-BUILD
-  * VK_RZ_A1H::ARM::MBED-OS-COMPONENTS-STORAGE-BLOCKDEVICE-COMPONENT_SD-TESTS-FILESYSTEM-DIRS
-[mbed] Exec "mbedgt --test-spec D:\Projects\kitVK-RZ_A1H\mbed\mbed_Demo_II\mbed-os-program\BUILD\tests\VK_RZ_A1H\ARM\test_spec.json -n mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs -V" in D:\Projects\kitVK-RZ_A1H\mbed\mbed_Demo_II\mbed-os-program
-mbedgt: greentea test automation tool ver. 1.3.2
-mbedgt: test specification file 'D:\Projects\kitVK-RZ_A1H\mbed\mbed_Demo_II\mbed-os-program\BUILD\tests\VK_RZ_A1H\ARM\test_spec.json' (specified with --test-spec option)
-mbedgt: using 'D:\Projects\kitVK-RZ_A1H\mbed\mbed_Demo_II\mbed-os-program\BUILD\tests\VK_RZ_A1H\ARM\test_spec.json' from current directory!
-mbedgt: detecting connected mbed-enabled devices...
-[1552901555.10][mbedls.lstools_base]Call to deprecated function list_mbeds_ext. Functionality has been moved into 'list_mbeds'. Please use list_mbeds with 'unique_names=True' and 'read_details_txt=True'
-mbedgt: detected 1 device
-        +---------------+----------------------+-------------+-------------+--------------------------+
-        | platform_name | platform_name_unique | serial_port | mount_point | target_id                |
-        +---------------+----------------------+-------------+-------------+--------------------------+
-        | VK_RZ_A1H     | VK_RZ_A1H[0]         | COM8        | G:          | C00202240f150f66f2ce309c |
-        +---------------+----------------------+-------------+-------------+--------------------------+
-mbedgt: processing target 'VK_RZ_A1H' toolchain 'ARM' compatible platforms... (note: switch set to --parallel 1)
-        +---------------+----------------------+-------------+-------------+--------------------------+
-        | platform_name | platform_name_unique | serial_port | mount_point | target_id                |
-        +---------------+----------------------+-------------+-------------+--------------------------+
-        | VK_RZ_A1H     | VK_RZ_A1H[0]         | COM8:9600   | G:          | C00202240f150f66f2ce309c |
-        +---------------+----------------------+-------------+-------------+--------------------------+
-mbedgt: test case filter (specified with -n option)
-        test filtered in 'mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs'
-mbedgt: running 1 test for platform 'VK_RZ_A1H' and toolchain 'ARM'
-        use 1 instance of execution threads for testing
-mbedgt: checking for 'host_tests' directory above image directory structure
-        'host_tests' directory not found: two directory levels above image path checked
-mbedgt: selecting test case observer...
-        calling mbedhtrun: mbedhtrun -m VK_RZ_A1H -p COM8:9600 -f "BUILD/tests/VK_RZ_A1H/ARM/mbed-os/components/storage/blockdevice/COMPONENT_SD/TESTS/filesystem/dirs/dirs.bin" -d G: -C 2 -c default -t C00202240f150f66f2ce309c -r default --sync 5
-mbedgt: mbed-host-test-runner: started
-[1552901556.70][HTST][INF] host test executor ver. 0.0.1
-[1552901556.70][HTST][INF] copy image onto target...
-[1552901556.70][COPY][INF] Waiting up to 60 sec for 'C00202240f150f66f2ce309c' mount point (current is 'G:')...
-        1 file(s) copied.
-[1552901568.08][mbedls.lstools_base]MBED with target id 'C00202240f150f66f2ce309c' is connected, but not mounted. Use the '-u' flag to include it in the list.
-[1552901568.60][mbedls.lstools_base]MBED with target id 'C00202240f150f66f2ce309c' is connected, but not mounted. Use the '-u' flag to include it in the list.
-[1552901569.12][mbedls.lstools_base]MBED with target id 'C00202240f150f66f2ce309c' is connected, but not mounted. Use the '-u' flag to include it in the list.
-[1552901570.83][HTST][INF] starting host test process...
-[1552901571.51][CONN][INF] starting connection process...
-[1552901571.51][CONN][INF] notify event queue about extra 60 sec timeout for serial port pooling
-[1552901571.51][CONN][INF] initializing serial port listener...
-[1552901571.51][PLGN][INF] Waiting up to 60 sec for 'C00202240f150f66f2ce309c' serial port (current is 'COM8')...
-[1552901571.52][HTST][INF] setting timeout to: 60 sec
-[1552901571.54][SERI][INF] serial(port=COM8, baudrate=9600, read_timeout=0.01, write_timeout=5)
-[1552901571.54][SERI][INF] reset device using 'default' plugin...
-[1552901571.79][SERI][INF] waiting 1.00 sec after reset
-[1552901572.79][SERI][INF] wait for it...
-[1552901572.79][SERI][TXD] mbedmbedmbedmbedmbedmbedmbedmbedmbedmbed
-[1552901572.79][CONN][INF] sending up to 5 __sync packets (specified with --sync=5)
-[1552901572.79][CONN][INF] sending preamble '410d2433-f70a-40ae-af37-611227ffd2e4'
-[1552901572.79][SERI][TXD] {{__sync;410d2433-f70a-40ae-af37-611227ffd2e4}}
-[1552901572.91][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901572.94][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901572.98][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.01][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.04][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.09][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.12][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.15][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.19][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.22][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.26][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.30][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.33][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.36][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.40][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.43][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.47][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.51][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.54][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.57][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.61][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.65][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.68][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.72][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.75][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.79][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.83][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.86][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.90][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.93][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901573.96][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.01][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.04][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.07][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.11][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.14][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.18][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.21][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.25][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.29][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.32][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.36][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.39][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.42][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.46][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.50][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.54][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.57][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.60][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.64][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.67][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.71][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.75][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.78][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.81][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.86][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.89][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.92][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.96][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901574.99][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.03][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.07][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.10][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.13][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.18][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.21][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.24][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.28][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.32][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.35][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.38][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.42][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.45][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.49][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.53][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.56][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.60][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.63][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.66][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.71][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.74][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.77][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.81][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.84][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.88][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.92][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.95][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901575.98][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.02][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.06][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.09][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.13][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.16][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.19][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.24][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.27][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.30][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.34][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.37][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.42][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.45][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.48][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.51][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.56][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.59][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.62][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.66][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.69][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.72][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.77][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.80][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.84][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.87][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.90][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.95][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901576.98][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.01][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.05][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.08][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.12][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.16][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.19][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.23][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.26][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.29][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.34][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.37][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.40][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.44][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.47][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.51][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.54][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.58][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.61][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.65][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.69][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.72][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.76][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.79][CONN][RXD] mbedmbedmbedmbedmbedmbedmbedmbed
-[1552901577.80][CONN][INF] Reset the part and send in new preamble...
-[1552901577.80][SERI][INF] reset device using 'default' plugin...
-[1552901578.05][SERI][INF] waiting 1.00 sec after reset
-[1552901579.05][SERI][INF] wait for it...
-[1552901579.05][CONN][INF] resending new preamble '68f24dd4-9bcd-4878-97e6-5c31cd0695f6' after 5.01 sec
-[1552901579.05][SERI][TXD] {{__sync;68f24dd4-9bcd-4878-97e6-5c31cd0695f6}}
-[1552901579.07][CONN][WRN] UnicodeDecodeError encountered!
-[1552901584.07][CONN][INF] Reset the part and send in new preamble...
-[1552901584.07][SERI][INF] reset device using 'default' plugin...
-[1552901584.32][SERI][INF] waiting 1.00 sec after reset
-[1552901585.32][SERI][INF] wait for it...
-[1552901585.32][CONN][INF] resending new preamble 'ca0de71e-818f-4529-aae3-625316babc82' after 5.01 sec
-[1552901585.32][SERI][TXD] {{__sync;ca0de71e-818f-4529-aae3-625316babc82}}
-[1552901590.32][CONN][INF] Reset the part and send in new preamble...
-[1552901590.32][SERI][INF] reset device using 'default' plugin...
-[1552901590.57][SERI][INF] waiting 1.00 sec after reset
-[1552901591.57][SERI][INF] wait for it...
-[1552901591.57][CONN][INF] resending new preamble '103567f0-7bec-46e2-9bec-9c459e82612a' after 5.00 sec
-[1552901591.57][SERI][TXD] {{__sync;103567f0-7bec-46e2-9bec-9c459e82612a}}
-[1552901596.57][CONN][INF] Reset the part and send in new preamble...
-[1552901596.57][SERI][INF] reset device using 'default' plugin...
-[1552901596.83][SERI][INF] waiting 1.00 sec after reset
-[1552901597.83][SERI][INF] wait for it...
-[1552901597.83][CONN][INF] resending new preamble '4aeb2ee6-9abb-4238-a908-70f160d1b76b' after 5.00 sec
-[1552901597.83][SERI][TXD] {{__sync;4aeb2ee6-9abb-4238-a908-70f160d1b76b}}
-[1552901597.84][HTST][ERR] None
-[1552901597.84][HTST][WRN] stopped to consume events due to __notify_sync_failed event
-[1552901597.84][HTST][INF] __exit_event_queue received
-[1552901597.84][HTST][INF] test suite run finished after 26.33 sec...
-[1552901597.85][HTST][INF] CONN exited with code: 0
-[1552901597.85][HTST][INF] No events in queue
-[1552901597.85][HTST][INF] host test result() call skipped, received: sync_failed
-[1552901597.85][HTST][WRN] missing __exit event from DUT
-[1552901597.85][HTST][INF] calling blocking teardown()
-[1552901597.85][HTST][INF] teardown() finished
-[1552901597.85][HTST][INF] {{result;sync_failed}}
-mbedgt: checking for GCOV data...
-mbedgt: mbed-host-test-runner: stopped and returned 'SYNC_FAILED'
-mbedgt: test case summary event not found
-        no test case report present, assuming test suite to be a single test case!
-        test suite: mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs
-        test case: mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs
-mbedgt: test on hardware with target id: C00202240f150f66f2ce309c
-mbedgt: test suite 'mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs' ....... SYNC_FAILED in 41.91 sec
-        test case: 'mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs' ....... ERROR in 41.91 sec
-mbedgt: test case summary: 0 passes, 1 failure
-mbedgt: all tests finished!
-mbedgt: shuffle seed: 0.0953579810
-mbedgt: test suite report:
-+---------------+---------------+---------------------------------------------------------------------------+-------------+--------------------+-------------+
-| target        | platform_name | test suite                                                                | result      | elapsed_time (sec) | copy_method |
-+---------------+---------------+---------------------------------------------------------------------------+-------------+--------------------+-------------+
-| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs | SYNC_FAILED | 41.91              | default     |
-+---------------+---------------+---------------------------------------------------------------------------+-------------+--------------------+-------------+
-mbedgt: test suite results: 1 SYNC_FAILED
-mbedgt: test case report:
-+---------------+---------------+---------------------------------------------------------------------------+---------------------------------------------------------------------------+--------+--------+--------+--------------------+
-| target        | platform_name | test suite                                                                | test case                                                                 | passed | failed | result | elapsed_time (sec) |
-+---------------+---------------+---------------------------------------------------------------------------+---------------------------------------------------------------------------+--------+--------+--------+--------------------+
-| VK_RZ_A1H-ARM | VK_RZ_A1H     | mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs | mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs | 0      | 1      | ERROR  | 41.91              |
-+---------------+---------------+---------------------------------------------------------------------------+---------------------------------------------------------------------------+--------+--------+--------+--------------------+
-mbedgt: test case results: 1 ERROR
-mbedgt: completed in 42.79 sec
-mbedgt: exited with code 1
-[mbed] ERROR: "mbedgt" returned error code 1.
-[mbed] ERROR: Command "mbedgt --test-spec D:\Projects\kitVK-RZ_A1H\mbed\mbed_Demo_II\mbed-os-program\BUILD\tests\VK_RZ_A1H\ARM\test_spec.json -n mbed-os-components-storage-blockdevice-component_sd-tests-filesystem-dirs -V" in "D:\Projects\kitVK-RZ_A1H\mbed\mbed_Demo_II\mbed-os-program"
----
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/COMMON/fsfat_debug.h	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,104 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/** @file fsfat_debug.h
+ *
+ * component debug header file.
+ */
+
+
+#ifndef __FSFAT_DEBUG
+#define __FSFAT_DEBUG
+
+#include <stdint.h>
+#include <assert.h>
+#include <stdio.h>
+
+
+/* Debug Support */
+
+#define FSFAT_LOG_NONE        0
+#define FSFAT_LOG_ERR         1
+#define FSFAT_LOG_WARN        2
+#define FSFAT_LOG_NOTICE      3
+#define FSFAT_LOG_INFO        4
+#define FSFAT_LOG_DEBUG       5
+#define FSFAT_LOG_FENTRY      6
+
+#define FSFAT_LOG(_fmt, ...)                          \
+  do                                                    \
+  {                                                     \
+        printf(_fmt, __VA_ARGS__);                      \
+  }while(0);
+
+#define noFSFAT_DEBUG
+#ifdef FSFAT_DEBUG
+
+extern uint32_t fsfat_optDebug_g;
+extern uint32_t fsfat_optLogLevel_g;
+
+
+/* uncomment for asserts to work */
+/* #undef NDEBUG */
+// todo: port to mbedOSV3++ #include <core-util/assert.h>
+
+#define FSFAT_INLINE
+// todo: port to mbedOSV3++ #define FSFAT_ASSERT  CORE_UTIL_ASSERT
+#define FSFAT_ASSERT(...)
+
+#define FSFAT_DBGLOG(_fmt, ...)                       \
+  do                                                    \
+  {                                                     \
+    if(fsfat_optDebug_g && (fsfat_optLogLevel_g >= FSFAT_LOG_DEBUG))  \
+    {                                                   \
+        printf(_fmt, __VA_ARGS__);                      \
+    }                                                   \
+  }while(0);
+
+
+#define FSFAT_ERRLOG(_fmt, ...)                       \
+  do                                                    \
+  {                                                     \
+    if(fsfat_optDebug_g && (fsfat_optLogLevel_g >= FSFAT_LOG_ERR))  \
+    {                                                   \
+        printf(_fmt, __VA_ARGS__);                      \
+    }                                                   \
+  }while(0);
+
+
+#define FSFAT_FENTRYLOG(_fmt, ...)                       \
+  do                                                    \
+  {                                                     \
+    if(fsfat_optDebug_g && (fsfat_optLogLevel_g >= FSFAT_LOG_FENTRY))  \
+    {                                                   \
+        printf(_fmt, __VA_ARGS__);                      \
+    }                                                   \
+  }while(0);
+
+
+
+
+
+#else
+#define FSFAT_ASSERT(_x)                   do { } while(0)
+#define FSFAT_INLINE                       inline
+#define FSFAT_DBGLOG(_fmt, ...)            do { } while(0)
+#define FSFAT_ERRLOG(_fmt, ...)            do { } while(0)
+#define FSFAT_FENTRYLOG(_fmt, ...)         do { } while(0)
+#endif /* FSFAT_DEBUG */
+
+
+#endif /*__FSFAT_DEBUG*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/COMMON/fsfat_test.c	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,116 @@
+/* @file fsfat_test.c
+ *
+ * mbed Microcontroller Library
+ * Copyright (c) 2006-2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * test support code implementation file.
+ */
+
+#include "fsfat_debug.h"
+#include "fsfat_test.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <inttypes.h>
+#include <ctype.h>
+
+
+#ifdef FSFAT_DEBUG
+uint32_t fsfat_optDebug_g = 1;
+uint32_t fsfat_optLogLevel_g = FSFAT_LOG_NONE; /*FSFAT_LOG_NONE|FSFAT_LOG_ERR|FSFAT_LOG_DEBUG|FSFAT_LOG_FENTRY; */
+#endif
+
+/* ruler for measuring text strings */
+/*                                                                                                    1         1         1         1         1         1         1         1         1         1         2         2         2 */
+/* 0        1         2         3         4         5         6         7         8         9         0         1         2         3         4         5         6         7         8         9         0         1         2 */
+/* 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 */
+
+const uint8_t fsfat_test_byte_data_table[FSFAT_TEST_BYTE_DATA_TABLE_SIZE] = {
+    0x2d, 0xf3, 0x31, 0x4c, 0x11, 0x4f, 0xde, 0x0d, 0xbd, 0xbc, 0xa6, 0x78, 0x36, 0x5c, 0x1d, 0x28,
+    0x5f, 0xa9, 0x10, 0x65, 0x54, 0x45, 0x21, 0x1a, 0x88, 0xfe, 0x76, 0x45, 0xb9, 0xac, 0x65, 0x9a,
+    0x34, 0x9d, 0x73, 0x10, 0xb4, 0xa9, 0x2e, 0x90, 0x95, 0x68, 0xac, 0xfe, 0xc5, 0x2d, 0x15, 0x03,
+    0x34, 0x70, 0xf1, 0x1d, 0x48, 0xa1, 0xa0, 0xed, 0x5c, 0x2f, 0xf5, 0x2b, 0xb9, 0x84, 0xbb, 0x45,
+    0x32, 0xdd, 0xb1, 0x33, 0x95, 0x2a, 0xbc, 0x26, 0xf0, 0x89, 0xba, 0xf4, 0xbd, 0xf9, 0x5d, 0x2e,
+    0x6e, 0x11, 0xc6, 0xa7, 0x78, 0xfc, 0xc9, 0x0e, 0x6b, 0x38, 0xba, 0x14, 0x1b, 0xab, 0x4c, 0x20,
+    0x91, 0xe4, 0xb0, 0xf1, 0x2b, 0x14, 0x07, 0x6b, 0xb5, 0xcd, 0xe3, 0x49, 0x75, 0xac, 0xe8, 0x98,
+    0xf1, 0x58, 0x8f, 0xd9, 0xc4, 0x8f, 0x00, 0x17, 0xb5, 0x06, 0x6a, 0x33, 0xbd, 0xa7, 0x40, 0x5a,
+    0xbf, 0x49, 0xf7, 0x27, 0x1b, 0x4c, 0x3e, 0x6f, 0xe3, 0x08, 0x1f, 0xfd, 0xa6, 0xd4, 0xc7, 0x5f,
+    0xa4, 0xa6, 0x82, 0xad, 0x19, 0xd5, 0x5c, 0xd8, 0x3a, 0x49, 0x85, 0xc9, 0x21, 0x83, 0xf6, 0xc6,
+    0x84, 0xf9, 0x76, 0x89, 0xf3, 0x2d, 0x17, 0x50, 0x97, 0x38, 0x48, 0x9a, 0xe1, 0x82, 0xcd, 0xac,
+    0xa8, 0x1d, 0xd7, 0x96, 0x5e, 0xb3, 0x08, 0xa8, 0x3a, 0xc7, 0x2b, 0x05, 0xaf, 0xdc, 0x16, 0xdf,
+    0x48, 0x0f, 0x2a, 0x7e, 0x3a, 0x82, 0xd7, 0x80, 0xd6, 0x49, 0x27, 0x5d, 0xe3, 0x07, 0x62, 0xb3,
+    0xc3, 0x6c, 0xba, 0xb2, 0xaa, 0x9f, 0xd9, 0x03, 0x0d, 0x27, 0xa8, 0xe0, 0xd6, 0xee, 0x79, 0x4b,
+    0xd6, 0x97, 0x99, 0xb7, 0x11, 0xd6, 0x0d, 0x34, 0xae, 0x99, 0x4a, 0x93, 0x95, 0xd0, 0x5a, 0x34,
+    0x19, 0xa2, 0x69, 0x57, 0xcf, 0x7c, 0x3d, 0x98, 0x88, 0x5d, 0x04, 0xf2, 0xd7, 0xac, 0xa5, 0x63
+};
+
+
+/* @brief  test utility function to delete the file identified by filename
+ */
+int32_t fsfat_test_delete(const char *filename)
+{
+    FSFAT_FENTRYLOG("%s:entered.\r\n", __func__);
+    return remove(filename);
+}
+
+
+/* @brief   test utility function to create a file
+ *
+ * @param   filename    name of the file including path
+ * @param   data        data to store in file
+ * @param   len         number of bytes of data present in the data buffer.
+ */
+int32_t fsfat_test_create(const char *filename, const char *data, size_t len)
+{
+    int32_t ret = -1;
+    FILE *fp = NULL;
+
+    FSFAT_FENTRYLOG("%s:entered (filename=%s, len=%d).\n", __func__, filename, (int) len);
+    fp = fopen(filename, "w+");
+    if (fp == NULL) {
+        return ret;
+    }
+    ret = fwrite((const void *) data, len, 1, fp);
+    if (ret < 0) {
+        fclose(fp);
+        return ret;
+    }
+    fclose(fp);
+    return ret;
+}
+
+
+/* @brief   support function for generating a kv_name
+ * @param   name    buffer to hold kv name
+ * @param   len     length of kv name to generate
+ *
+ */
+int32_t fsfat_test_filename_gen(char *name, const size_t len)
+{
+    size_t i;
+    uint32_t pos = 0;
+
+    const char *buf = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!$-_@";
+    const int buf_len = strlen(buf);
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    for (i = 0; i < len; i++) {
+        pos = rand() % (buf_len);
+        name[i] = buf[pos];
+    }
+    return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/COMMON/fsfat_test.h	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,74 @@
+/** @file fsfat_test.h
+ *
+ * mbed Microcontroller Library
+ * Copyright (c) 2006-2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Header file for test support data structures and function API.
+ */
+#ifndef __FSFAT_TEST_H
+#define __FSFAT_TEST_H
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Defines */
+//#define FSFAT_INIT_1_TABLE_HEAD                 { "a", ""}
+#define FSFAT_INIT_1_TABLE_MID_NODE             { "/sd/01234567.txt", "abcdefghijklmnopqrstuvwxyz"}
+//#define FSFAT_INIT_1_TABLE_TAIL                 { "/sd/fopentst/hello/world/animal/wobbly/dog/foot/backrght.txt", "present"}
+#define FSFAT_TEST_RW_TABLE_SENTINEL            0xffffffff
+#define FSFAT_TEST_BYTE_DATA_TABLE_SIZE         256
+#define FSFAT_UTEST_MSG_BUF_SIZE                256
+#define FSFAT_UTEST_DEFAULT_TIMEOUT_MS          10000
+#define FSFAT_MBED_HOSTTEST_TIMEOUT             60
+#define FSFAT_MAX_FILE_BASENAME                 8
+#define FSFAT_MAX_FILE_EXTNAME                  3
+#define FSFAT_BUF_MAX_LENGTH                    64
+#define FSFAT_FILENAME_MAX_LENGTH               255
+
+
+/* support macro for make string for utest _MESSAGE macros, which dont support formatted output */
+#define FSFAT_TEST_UTEST_MESSAGE(_buf, _max_len, _fmt, ...)   \
+  do                                                            \
+  {                                                             \
+      snprintf((_buf), (_max_len), (_fmt), __VA_ARGS__);        \
+  }while(0);
+
+
+/*
+ * Structures
+ */
+
+/* kv data for test */
+typedef struct fsfat_kv_data_t {
+    const char *filename;
+    const char *value;
+} fsfat_kv_data_t;
+
+
+extern const uint8_t fsfat_test_byte_data_table[FSFAT_TEST_BYTE_DATA_TABLE_SIZE];
+
+int32_t fsfat_test_create(const char *filename, const char *data, size_t len);
+int32_t fsfat_test_delete(const char *key_name);
+int32_t fsfat_test_filename_gen(char *name, const size_t len);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __FSFAT_TEST_H */
--- a/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/Same as TESTS in COMPONENT_SD.txt	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/dirs/main.cpp	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,494 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed.h"
+#include "greentea-client/test_env.h"
+#include "unity.h"
+#include "utest.h"
+#include <stdlib.h>
+#include <errno.h>
+
+using namespace utest::v1;
+
+// test configuration
+#ifndef MBED_TEST_FILESYSTEM
+#define MBED_TEST_FILESYSTEM FATFileSystem
+#endif
+
+#ifndef MBED_TEST_FILESYSTEM_DECL
+#define MBED_TEST_FILESYSTEM_DECL MBED_TEST_FILESYSTEM fs("fs")
+#endif
+
+#ifndef MBED_TEST_BLOCKDEVICE
+#define MBED_TEST_BLOCKDEVICE RZ_SDHIBlockDevice
+#define MBED_TEST_BLOCKDEVICE_DECL SDHIBlockDevice bd(MBED_CONF_RZ_SDHI_CH);
+#endif
+
+#ifndef MBED_TEST_BLOCKDEVICE_DECL
+#define MBED_TEST_BLOCKDEVICE_DECL MBED_TEST_BLOCKDEVICE bd
+#endif
+
+#ifndef MBED_TEST_FILES
+#define MBED_TEST_FILES 4
+#endif
+
+#ifndef MBED_TEST_DIRS
+#define MBED_TEST_DIRS 4
+#endif
+
+#ifndef MBED_TEST_TIMEOUT
+#define MBED_TEST_TIMEOUT 120
+#endif
+
+
+// declarations
+#define STRINGIZE(x) STRINGIZE2(x)
+#define STRINGIZE2(x) #x
+#define INCLUDE(x, ext) STRINGIZE(x.ext)
+
+#include INCLUDE(MBED_TEST_FILESYSTEM, h)
+#include INCLUDE(MBED_TEST_BLOCKDEVICE, hpp)
+
+MBED_TEST_FILESYSTEM_DECL;
+MBED_TEST_BLOCKDEVICE_DECL;
+
+Dir dir[MBED_TEST_DIRS];
+File file[MBED_TEST_FILES];
+DIR *dd[MBED_TEST_DIRS];
+FILE *fd[MBED_TEST_FILES];
+struct dirent ent;
+struct dirent *ed;
+size_t size;
+uint8_t buffer[MBED_CONF_RZ_SDHI_TEST_BUFFER];
+
+
+// tests
+
+void test_directory_tests()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = MBED_TEST_FILESYSTEM::format(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_root_directory()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "/");
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_directory_creation()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("potato", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_file_creation()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "burito", O_CREAT | O_WRONLY);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void dir_file_check(char *list[], uint32_t elements)
+{
+    int res;
+    while (1) {
+        res = dir[0].read(&ent);
+        if (0 == res) {
+            break;
+        }
+        for (int i = 0; i < elements ; i++) {
+            res = strcmp(ent.d_name, list[i]);
+            if (0 == res) {
+                res = ent.d_type;
+                if ((DT_DIR != res) && (DT_REG != res)) {
+                    TEST_ASSERT(1);
+                }
+                break;
+            } else if (i == elements) {
+                TEST_ASSERT_EQUAL(0, res);
+            }
+        }
+    }
+}
+
+void test_directory_iteration()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    res = fs.mount(&bd);
+    TEST_ASSERT_EQUAL(0, res);
+    res = dir[0].open(&fs, "/");
+    TEST_ASSERT_EQUAL(0, res);
+    char *dir_list[] = {"potato", "burito", ".", ".."};
+
+    dir_file_check(dir_list, (sizeof(dir_list) / sizeof(dir_list[0])));
+
+    res = dir[0].close();
+    TEST_ASSERT_EQUAL(0, res);
+    res = fs.unmount();
+    TEST_ASSERT_EQUAL(0, res);
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_directory_failures()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("potato", 0777);
+        TEST_ASSERT_EQUAL(-EEXIST, res);
+        res = dir[0].open(&fs, "tomato");
+        TEST_ASSERT_EQUAL(-ENOTDIR, res);
+        res = dir[0].open(&fs, "burito");
+        TEST_ASSERT_NOT_EQUAL(0, res);
+        res = file[0].open(&fs, "tomato", O_RDONLY);
+        TEST_ASSERT_EQUAL(-ENOENT, res);
+        res = file[0].open(&fs, "potato", O_RDONLY);
+        TEST_ASSERT_NOT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_nested_directories()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("potato/baked", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("potato/sweet", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("potato/fried", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "/");
+        TEST_ASSERT_EQUAL(0, res);
+        char *dir_list[] = {"potato", "baked", "sweet", "fried", ".", ".."};
+        dir_file_check(dir_list, (sizeof(dir_list) / sizeof(dir_list[0])));
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_multi_block_directory()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("cactus", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        for (int i = 0; i < 128; i++) {
+            sprintf((char *)buffer, "cactus/test%d", i);
+            res = fs.mkdir((char *)buffer, 0777);
+            TEST_ASSERT_EQUAL(0, res);
+        }
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "cactus");
+        TEST_ASSERT_EQUAL(0, res);
+
+#if (MBED_TEST_FILESYSTEM != FATFileSystem)
+        char *dir_list[] = {".", ".."};
+        dir_file_check(dir_list, (sizeof(dir_list) / sizeof(dir_list[0])));
+#endif
+
+        for (int i = 0; i < 128; i++) {
+            sprintf((char *)buffer, "test%d", i);
+            res = dir[0].read(&ent);
+            TEST_ASSERT_EQUAL(1, res);
+            res = strcmp(ent.d_name, (char *)buffer);
+            TEST_ASSERT_EQUAL(0, res);
+        }
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_directory_remove()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.remove("potato");
+        TEST_ASSERT_NOT_EQUAL(0, res);
+        res = fs.remove("potato/sweet");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.remove("potato/baked");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.remove("potato/fried");
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "potato");
+        TEST_ASSERT_EQUAL(0, res);
+
+#if (MBED_TEST_FILESYSTEM != FATFileSystem)
+        char *dir_list[] = {".", ".."};
+        dir_file_check(dir_list, (sizeof(dir_list) / sizeof(dir_list[0])));
+#endif
+
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.remove("potato");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "/");
+        TEST_ASSERT_EQUAL(0, res);
+        char *dir_list[] = {"burito", "cactus", ".", ".."};
+        dir_file_check(dir_list, (sizeof(dir_list) / sizeof(dir_list[0])));
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_directory_rename()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("coldpotato", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("coldpotato/baked", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("coldpotato/sweet", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("coldpotato/fried", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.rename("coldpotato", "hotpotato");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "hotpotato");
+        TEST_ASSERT_EQUAL(0, res);
+        char *dir_list[] = {"baked", "sweet", "fried", ".", ".."};
+        dir_file_check(dir_list, (sizeof(dir_list) / sizeof(dir_list[0])));
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("warmpotato", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("warmpotato/mushy", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.rename("hotpotato", "warmpotato");
+        TEST_ASSERT_NOT_EQUAL(0, res);
+        res = fs.remove("warmpotato/mushy");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.remove("warmpotato");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.rename("hotpotato", "warmpotato");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "warmpotato");
+        TEST_ASSERT_EQUAL(0, res);
+        char *dir_list[] = {"baked", "sweet", "fried", ".", ".."};
+        dir_file_check(dir_list, (sizeof(dir_list) / sizeof(dir_list[0])));
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("coldpotato", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.rename("warmpotato/baked", "coldpotato/baked");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.rename("warmpotato/sweet", "coldpotato/sweet");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.rename("warmpotato/fried", "coldpotato/fried");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.remove("coldpotato");
+        TEST_ASSERT_NOT_EQUAL(0, res);
+        res = fs.remove("warmpotato");
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "coldpotato");
+        TEST_ASSERT_EQUAL(0, res);
+        char *dir_list[] = {"baked", "sweet", "fried", ".", ".."};
+        dir_file_check(dir_list, (sizeof(dir_list) / sizeof(dir_list[0])));
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+
+
+// test setup
+utest::v1::status_t test_setup(const size_t number_of_cases)
+{
+    GREENTEA_SETUP(MBED_TEST_TIMEOUT, "default_auto");
+    return verbose_test_setup_handler(number_of_cases);
+}
+
+Case cases[] = {
+    Case("Directory tests", test_directory_tests),
+    Case("Root directory", test_root_directory),
+    Case("Directory creation", test_directory_creation),
+    Case("File creation", test_file_creation),
+    Case("Directory iteration", test_directory_iteration),
+    Case("Directory failures", test_directory_failures),
+    Case("Nested directories", test_nested_directories),
+    Case("Multi-block directory", test_multi_block_directory),
+    Case("Directory remove", test_directory_remove),
+    Case("Directory rename", test_directory_rename),
+};
+
+Specification specification(test_setup, cases);
+
+int main()
+{
+    return !Harness::run(specification);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/files/main.cpp	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,337 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed.h"
+#include "greentea-client/test_env.h"
+#include "unity.h"
+#include "utest.h"
+#include <stdlib.h>
+#include <errno.h>
+
+using namespace utest::v1;
+
+// test configuration
+#ifndef MBED_TEST_FILESYSTEM
+#define MBED_TEST_FILESYSTEM FATFileSystem
+#endif
+
+#ifndef MBED_TEST_FILESYSTEM_DECL
+#define MBED_TEST_FILESYSTEM_DECL MBED_TEST_FILESYSTEM fs("fs")
+#endif
+
+#ifndef MBED_TEST_BLOCKDEVICE
+#define MBED_TEST_BLOCKDEVICE RZ_SDHIBlockDevice
+#define MBED_TEST_BLOCKDEVICE_DECL SDHIBlockDevice bd(MBED_CONF_RZ_SDHI_CH);
+#endif
+
+#ifndef MBED_TEST_BLOCKDEVICE_DECL
+#define MBED_TEST_BLOCKDEVICE_DECL MBED_TEST_BLOCKDEVICE bd
+#endif
+
+#ifndef MBED_TEST_FILES
+#define MBED_TEST_FILES 4
+#endif
+
+#ifndef MBED_TEST_DIRS
+#define MBED_TEST_DIRS 4
+#endif
+
+#ifndef MBED_TEST_BUFFER
+#define MBED_TEST_BUFFER 8192
+#endif
+
+#ifndef MBED_TEST_TIMEOUT
+#define MBED_TEST_TIMEOUT 120
+#endif
+
+
+// declarations
+#define STRINGIZE(x) STRINGIZE2(x)
+#define STRINGIZE2(x) #x
+#define INCLUDE(x, ext) STRINGIZE(x.ext)
+
+#include INCLUDE(MBED_TEST_FILESYSTEM, h)
+#include INCLUDE(MBED_TEST_BLOCKDEVICE, hpp)
+
+MBED_TEST_FILESYSTEM_DECL;
+MBED_TEST_BLOCKDEVICE_DECL;
+
+Dir dir[MBED_TEST_DIRS];
+File file[MBED_TEST_FILES];
+DIR *dd[MBED_TEST_DIRS];
+FILE *fd[MBED_TEST_FILES];
+struct dirent ent;
+struct dirent *ed;
+uint8_t buffer[MBED_TEST_BUFFER];
+uint8_t rbuffer[MBED_TEST_BUFFER];
+uint8_t wbuffer[MBED_TEST_BUFFER];
+
+static char file_counter = 0;
+const char *filenames[] = {"smallavacado", "mediumavacado", "largeavacado",
+                           "blockfile", "bigblockfile", "hello", ".", ".."
+                          };
+
+// tests
+
+void test_file_tests()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = MBED_TEST_FILESYSTEM::format(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_simple_file_test()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size;
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "hello", O_WRONLY | O_CREAT);
+        TEST_ASSERT_EQUAL(0, res);
+        size = strlen("Hello World!\n");
+        memcpy(wbuffer, "Hello World!\n", size);
+        res = file[0].write(wbuffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "hello", O_RDONLY);
+        TEST_ASSERT_EQUAL(0, res);
+        size = strlen("Hello World!\n");
+        res = file[0].read(rbuffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(rbuffer, wbuffer, size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+template <int file_size, int write_size, int read_size>
+void test_write_file_test()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size = file_size;
+        size_t chunk = write_size;
+        srand(0);
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, filenames[file_counter], O_WRONLY | O_CREAT);
+        TEST_ASSERT_EQUAL(0, res);
+        for (size_t i = 0; i < size; i += chunk) {
+            chunk = (chunk < size - i) ? chunk : size - i;
+            for (size_t b = 0; b < chunk; b++) {
+                buffer[b] = rand() & 0xff;
+            }
+            res = file[0].write(buffer, chunk);
+            TEST_ASSERT_EQUAL(chunk, res);
+        }
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        size_t size = file_size;
+        size_t chunk = read_size;
+        srand(0);
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, filenames[file_counter], O_RDONLY);
+        TEST_ASSERT_EQUAL(0, res);
+        for (size_t i = 0; i < size; i += chunk) {
+            chunk = (chunk < size - i) ? chunk : size - i;
+            res = file[0].read(buffer, chunk);
+            TEST_ASSERT_EQUAL(chunk, res);
+            for (size_t b = 0; b < chunk && i + b < size; b++) {
+                res = buffer[b];
+                TEST_ASSERT_EQUAL(rand() & 0xff, res);
+            }
+        }
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    file_counter++;
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_non_overlap_check()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size = 32;
+        size_t chunk = 29;
+        srand(0);
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "smallavacado", O_RDONLY);
+        TEST_ASSERT_EQUAL(0, res);
+        for (size_t i = 0; i < size; i += chunk) {
+            chunk = (chunk < size - i) ? chunk : size - i;
+            res = file[0].read(buffer, chunk);
+            TEST_ASSERT_EQUAL(chunk, res);
+            for (size_t b = 0; b < chunk && i + b < size; b++) {
+                res = buffer[b];
+                TEST_ASSERT_EQUAL(rand() & 0xff, res);
+            }
+        }
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        size_t size = 8192;
+        size_t chunk = 29;
+        srand(0);
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "mediumavacado", O_RDONLY);
+        TEST_ASSERT_EQUAL(0, res);
+        for (size_t i = 0; i < size; i += chunk) {
+            chunk = (chunk < size - i) ? chunk : size - i;
+            res = file[0].read(buffer, chunk);
+            TEST_ASSERT_EQUAL(chunk, res);
+            for (size_t b = 0; b < chunk && i + b < size; b++) {
+                res = buffer[b];
+                TEST_ASSERT_EQUAL(rand() & 0xff, res);
+            }
+        }
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    {
+        size_t size = 262144;
+        size_t chunk = 29;
+        srand(0);
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "largeavacado", O_RDONLY);
+        TEST_ASSERT_EQUAL(0, res);
+        for (size_t i = 0; i < size; i += chunk) {
+            chunk = (chunk < size - i) ? chunk : size - i;
+            res = file[0].read(buffer, chunk);
+            TEST_ASSERT_EQUAL(chunk, res);
+            for (size_t b = 0; b < chunk && i + b < size; b++) {
+                res = buffer[b];
+                TEST_ASSERT_EQUAL(rand() & 0xff, res);
+            }
+        }
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_dir_check()
+{
+
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "/");
+        TEST_ASSERT_EQUAL(0, res);
+        int numFiles = sizeof(filenames) / sizeof(filenames[0]);
+        // Check the filenames in directory
+        while (1) {
+            res = dir[0].read(&ent);
+            if (0 == res) {
+                break;
+            }
+            for (int i = 0; i < numFiles ; i++) {
+                res = strcmp(ent.d_name, filenames[i]);
+                if (0 == res) {
+                    res = ent.d_type;
+                    if ((DT_REG != res) && (DT_DIR != res)) {
+                        TEST_ASSERT(1);
+                    }
+                    break;
+                } else if (i == numFiles) {
+                    TEST_ASSERT_EQUAL(0, res);
+                }
+            }
+        }
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+
+// test setup
+utest::v1::status_t test_setup(const size_t number_of_cases)
+{
+    GREENTEA_SETUP(MBED_TEST_TIMEOUT, "default_auto");
+    return verbose_test_setup_handler(number_of_cases);
+}
+
+Case cases[] = {
+    Case("File tests", test_file_tests),
+    Case("Simple file test", test_simple_file_test),
+    Case("Small file test", test_write_file_test<32, 31, 29>),
+    Case("Medium file test", test_write_file_test<8192, 31, 29>),
+    Case("Large file test", test_write_file_test<262144, 31, 29>),
+    Case("Block Size file test", test_write_file_test<9000, 512, 512>),
+    Case("Multiple block size file test", test_write_file_test<26215, MBED_TEST_BUFFER, MBED_TEST_BUFFER>),
+    Case("Non-overlap check", test_non_overlap_check),
+    Case("Dir check", test_dir_check),
+};
+
+Specification specification(test_setup, cases);
+
+int main()
+{
+    return !Harness::run(specification);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/fopen/fopen.cpp	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,1643 @@
+/*
+ * mbed Microcontroller Library
+ * Copyright (c) 2006-2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/** @file fopen.cpp Test cases to POSIX file fopen() interface.
+ *
+ * Please consult the documentation under the test-case functions for
+ * a description of the individual test case.
+ */
+
+#include "mbed.h"
+#include "mbed_config.h"
+#include "RZ_SDHIBlockDevice.hpp"
+#include "FATFileSystem.h"
+#include "fsfat_debug.h"
+#include "fsfat_test.h"
+#include "utest/utest.h"
+#include "unity/unity.h"
+#include "greentea-client/test_env.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>     /*rand()*/
+#include <inttypes.h>
+#include <errno.h>
+/* mbed_retarget.h is included after errno.h so symbols are mapped to
+ * consistent values for all toolchains */
+#include "platform/mbed_retarget.h"
+
+using namespace utest::v1;
+
+/// @cond FSFAT_DOXYGEN_DISABLE
+#ifdef FSFAT_DEBUG
+#define FSFAT_FOPEN_GREENTEA_TIMEOUT_S     3000
+#else
+#define FSFAT_FOPEN_GREENTEA_TIMEOUT_S     1000
+#endif
+/// @endcond
+
+
+/* DEVICE_SPI
+ *  This symbol is defined in targets.json if the target has a SPI interface, which is required for SDCard support.
+ *
+ * MBED_CONF_APP_FSFAT_SDCARD_INSTALLED
+ *  For testing purposes, an SDCard must be installed on the target for the test cases in this file to succeed.
+ *  If the target has an SD card installed then the MBED_CONF_APP_FSFAT_SDCARD_INSTALLED will be generated
+ *  from the mbed_app.json, which includes the line
+ *    {
+ *    "config": {
+ *        "UART_RX": "D0",
+ *        <<< lines removed >>>
+ *        "DEVICE_SPI": 1,
+ *        "FSFAT_SDCARD_INSTALLED": 1
+ *      },
+ *      <<< lines removed >>>
+ */
+
+#if DEVICE_SPI && ( defined(MBED_CONF_APP_FSFAT_SDCARD_INSTALLED) || (MBED_CONF_SD_FSFAT_SDCARD_INSTALLED))
+static char fsfat_fopen_utest_msg_g[FSFAT_UTEST_MSG_BUF_SIZE];
+#define FSFAT_FOPEN_TEST_MOUNT_PT_NAME      "sd"
+#define FSFAT_FOPEN_TEST_MOUNT_PT_PATH      "/" FSFAT_FOPEN_TEST_MOUNT_PT_NAME
+#define FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1    64
+#define FSFAT_FOPEN_TEST_FILEPATH_MAX_DEPTH 20
+static const char *sd_badfile_path = "/sd/badfile.txt";
+static const char *sd_testfile_path = "/sd/test.txt";
+
+SDHIBlockDevice sd(MBED_CONF_RZ_SDHI_CH);
+FATFileSystem fs("sd", &sd);
+
+#define FSFAT_FOPEN_TEST_00      fsfat_fopen_test_00
+#define FSFAT_FOPEN_TEST_01      fsfat_fopen_test_01
+#define FSFAT_FOPEN_TEST_02      fsfat_fopen_test_02
+#define FSFAT_FOPEN_TEST_03      fsfat_fopen_test_03
+#define FSFAT_FOPEN_TEST_04      fsfat_fopen_test_04
+#define FSFAT_FOPEN_TEST_05      fsfat_fopen_test_05
+#define FSFAT_FOPEN_TEST_06      fsfat_fopen_test_06
+#define FSFAT_FOPEN_TEST_07      fsfat_fopen_test_07
+#define FSFAT_FOPEN_TEST_08      fsfat_fopen_test_08
+#define FSFAT_FOPEN_TEST_09      fsfat_fopen_test_09
+#define FSFAT_FOPEN_TEST_10      fsfat_fopen_test_10
+#define FSFAT_FOPEN_TEST_11      fsfat_fopen_test_11
+#define FSFAT_FOPEN_TEST_12      fsfat_fopen_test_12
+#define FSFAT_FOPEN_TEST_13      fsfat_fopen_test_13
+#define FSFAT_FOPEN_TEST_14      fsfat_fopen_test_14
+#define FSFAT_FOPEN_TEST_15      fsfat_fopen_test_15
+#define FSFAT_FOPEN_TEST_16      fsfat_fopen_test_16
+#define FSFAT_FOPEN_TEST_17      fsfat_fopen_test_17
+#define FSFAT_FOPEN_TEST_18      fsfat_fopen_test_18
+#define FSFAT_FOPEN_TEST_19      fsfat_fopen_test_19
+#define FSFAT_FOPEN_TEST_20      fsfat_fopen_test_20
+#define FSFAT_FOPEN_TEST_21      fsfat_fopen_test_21
+#define FSFAT_FOPEN_TEST_22      fsfat_fopen_test_22
+#define FSFAT_FOPEN_TEST_23      fsfat_fopen_test_23
+#define FSFAT_FOPEN_TEST_24      fsfat_fopen_test_24
+#define FSFAT_FOPEN_TEST_25      fsfat_fopen_test_25
+#define FSFAT_FOPEN_TEST_26      fsfat_fopen_test_26
+#define FSFAT_FOPEN_TEST_27      fsfat_fopen_test_27
+#define FSFAT_FOPEN_TEST_28      fsfat_fopen_test_28
+#define FSFAT_FOPEN_TEST_29      fsfat_fopen_test_29
+#define FSFAT_FOPEN_TEST_30      fsfat_fopen_test_30
+
+
+/* support functions */
+
+/*
+ * open tests that focus on testing fopen()
+ * fsfat_handle_t fopen(const char* filename, char* data, size_t* len, fsfat_key_desc_t* kdesc)
+ */
+
+/* file data for test_01 */
+static fsfat_kv_data_t fsfat_fopen_test_01_kv_data[] = {
+    { "/sd/fopentst/hello/world/animal/wobbly/dog/foot/frontlft.txt", "missing"},
+    { NULL, NULL},
+};
+
+
+/** @brief
+ * Split a file path into its component parts, setting '/' characters to '\0', and returning
+ * pointers to the file path components in the parts array. For example, if
+ * filepath = "/sd/fopentst/hello/world/animal/wobbly/dog/foot/frontlft.txt" then
+ *  *parts[0] = "sd"
+ *  *parts[1] = "fopentst"
+ *  *parts[2] = "hello"
+ *  *parts[3] = "world"
+ *  *parts[4] = "animal"
+ *  *parts[5] = "wobbly"
+ *  *parts[6] = "dog"
+ *  *parts[7] = "foot"
+ *  *parts[8] = "frontlft.txt"
+ *   parts[9] = NULL
+ *
+ * ARGUMENTS
+ *  @param  filepath     IN file path string to split into component parts. Expected to start with '/'
+ *  @param  parts        IN OUT array to hold pointers to parts
+ *  @param  num          IN number of components available in parts
+ *
+ * @return  On success, this returns the number of components in the filepath Returns number of compoee
+ */
+static int32_t fsfat_filepath_split(char *filepath, char *parts[], uint32_t num)
+{
+    uint32_t i = 0;
+    int32_t ret = -1;
+    char *z = filepath;
+
+    while (i < num && *z != '\0') {
+        if (*z == '/') {
+            *z = '\0';
+            parts[i] = ++z;
+            i++;
+        } else {
+            z++;
+        }
+    }
+    if (*z == '\0' && i > 0) {
+        ret = (int32_t) i;
+    }
+    return ret;
+}
+
+
+/** @brief
+ * remove all directories and file in the given filepath
+ *
+ * ARGUMENTS
+ *  @param  filepath     IN file path string to split into component parts. Expected to start with '/'
+ *
+ * @return  On success, this returns 0, otherwise < 0 is returned;
+ */
+int32_t fsfat_filepath_remove_all(char *filepath)
+{
+    int32_t ret = -1;
+    int32_t len = 0;
+    char *fpathbuf = NULL;
+    char *pos = NULL;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    len = strlen(filepath);
+    fpathbuf = (char *) malloc(len + 1);
+    if (fpathbuf == NULL) {
+        FSFAT_DBGLOG("%s: failed to duplicate string (out of memory)\n", __func__);
+        return ret;
+    }
+    memset(fpathbuf, 0, len + 1);
+    memcpy(fpathbuf, filepath, len);
+
+    /* delete the leaf node first, and then successively parent directories. */
+    pos = fpathbuf + strlen(fpathbuf);
+    while (pos != fpathbuf) {
+        /* If the remaining file path is the mount point path then finish as the mount point cannot be removed */
+        if (strlen(fpathbuf) == strlen(FSFAT_FOPEN_TEST_MOUNT_PT_PATH)) {
+            if (strncmp(fpathbuf, FSFAT_FOPEN_TEST_MOUNT_PT_PATH, strlen(fpathbuf)) == 0) {
+                break;
+            }
+        }
+        ret = remove(fpathbuf);
+        pos = strrchr(fpathbuf, '/');
+        *pos = '\0';
+    }
+    if (fpathbuf) {
+        free(fpathbuf);
+    }
+    return ret;
+}
+
+
+/** @brief
+ * make all directories in the given filepath. Do not create the file if present at end of filepath
+ *
+ * ARGUMENTS
+ *  @param  filepath     IN file path containing directories and file
+ *  @param  do_asserts   IN set to true if function should assert on errors
+ *
+ * @return  On success, this returns 0, otherwise < 0 is returned;
+ */
+static int32_t fsfat_filepath_make_dirs(char *filepath, bool do_asserts)
+{
+    int32_t i = 0;
+    int32_t num_parts = 0;
+    int32_t len = 0;
+    int32_t ret = -1;
+    char *fpathbuf = NULL;
+    char *buf = NULL;
+    int pos = 0;
+    char *parts[FSFAT_FOPEN_TEST_FILEPATH_MAX_DEPTH];
+
+    FSFAT_DBGLOG("%s:entered\n", __func__);
+    /* find the dirs to create*/
+    memset(parts, 0, sizeof(parts));
+    len = strlen(filepath);
+    fpathbuf = (char *) malloc(len + 1);
+    if (fpathbuf == NULL) {
+        FSFAT_DBGLOG("%s: failed to duplicate string (out of memory)\n", __func__);
+        return ret;
+    }
+    memset(fpathbuf, 0, len + 1);
+    memcpy(fpathbuf, filepath, len);
+    num_parts = fsfat_filepath_split(fpathbuf, parts, FSFAT_FOPEN_TEST_FILEPATH_MAX_DEPTH);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to split filepath (filename=\"%s\", num_parts=%d)\n", __func__, filepath, (int) num_parts);
+    TEST_ASSERT_MESSAGE(num_parts > 0, fsfat_fopen_utest_msg_g);
+
+    /* Now create the directories on the directory path.
+     * Skip creating dir for "/sd" which must be present */
+    buf = (char *) malloc(strlen(filepath) + 1);
+    memset(buf, 0, strlen(filepath) + 1);
+    pos = sprintf(buf, "/%s", parts[0]);
+    for (i = 1; i < num_parts - 1; i++) {
+        pos += sprintf(buf + pos, "/%s", parts[i]);
+        FSFAT_DBGLOG("mkdir(%s)\n", buf);
+        ret = mkdir(buf, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+        if (do_asserts == true) {
+            FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                     "%s:Error: failed to create directory (filepath2=\"%s\", ret=%d, errno=%d)\n", __func__, buf, (int) ret, errno);
+            TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+        }
+    }
+
+    if (buf) {
+        free(buf);
+    }
+    if (fpathbuf) {
+        free(fpathbuf);
+    }
+    return ret;
+}
+
+/** @brief
+ * First and last test must format the SD card to FAT FS format:
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_00(const size_t call_count)
+{
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+    int32_t ret = -1;
+
+    fs.unmount();
+    ret = fs.format(&sd);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to format sdcard (ret=%d)\n", __func__, (int) ret);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+    fs.mount(&sd);
+
+    return CaseNext;
+}
+
+
+/* FIX ME: errno not set correctly when error occurs. This indicates a problem with the implementation. */
+
+/** @brief
+ * Basic fopen test which does the following:
+ * - creates file and writes some data to the value blob.
+ * - closes the newly created file.
+ * - opens the file (r-only)
+ * - reads the file data and checks its the same as the previously created data.
+ * - closes the opened file
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+static control_t fsfat_fopen_test_01(const size_t call_count)
+{
+    char *read_buf;
+    int32_t ret = 0;
+    size_t len = 0;
+    fsfat_kv_data_t *node;
+    FILE *fp = NULL;
+
+    FSFAT_DBGLOG("%s:entered\n", __func__);
+    (void) call_count;
+    node = fsfat_fopen_test_01_kv_data;
+
+    /* remove file and directory from a previous failed test run, if present */
+    fsfat_filepath_remove_all((char *) node->filename);
+
+    /* create dirs */
+    ret = fsfat_filepath_make_dirs((char *) node->filename, true);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create dirs for filename (filename=\"%s\")(ret=%d)\n", __func__, node->filename, (int) ret);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    FSFAT_DBGLOG("%s:About to create new file (filename=\"%s\", data=\"%s\")\n", __func__, node->filename, node->value);
+    fp = fopen(node->filename, "w+");
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create file (filename=\"%s\", data=\"%s\")(ret=%d, errno=%d)\n", __func__, node->filename,
+                             node->value, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(fp != NULL, fsfat_fopen_utest_msg_g);
+
+    FSFAT_DBGLOG("%s:length of file=%d (filename=\"%s\", data=\"%s\")\n", __func__, (int) len, node->filename, node->value);
+    len = strlen(node->value);
+    ret = fwrite((const void *) node->value, len, 1, fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to write file (filename=\"%s\", data=\"%s\")(ret=%d)\n", __func__, node->filename, node->value,
+                             (int) ret);
+    TEST_ASSERT_MESSAGE(ret == 1, fsfat_fopen_utest_msg_g);
+
+    FSFAT_DBGLOG("Created file successfully (filename=\"%s\", data=\"%s\")\n", node->filename, node->value);
+    ret = fclose(fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to close file (ret=%d, errno=%d)\n", __func__, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    /* now open the newly created key */
+    fp = NULL;
+    fp = fopen(node->filename, "r");
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to open file for reading (filename=\"%s\", data=\"%s\")(ret=%d)\n", __func__, node->filename,
+                             node->value, (int) ret);
+    TEST_ASSERT_MESSAGE(fp != NULL, fsfat_fopen_utest_msg_g);
+
+    len = strlen(node->value) + 1;
+    read_buf = (char *) malloc(len);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to allocated read buffer \n", __func__);
+    TEST_ASSERT_MESSAGE(read_buf != NULL, fsfat_fopen_utest_msg_g);
+
+    FSFAT_DBGLOG("Opened file successfully (filename=\"%s\", data=\"%s\")\n", node->filename, node->value);
+    memset(read_buf, 0, len);
+    ret = fread((void *) read_buf, len, 1, fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to read file (filename=\"%s\", data=\"%s\", read_buf=\"%s\", ret=%d)\n", __func__, node->filename,
+                             node->value, read_buf, (int) ret);
+    /* FIX ME: fread should return the number of items read, not 0 when an item is read successfully.
+     * This indicates a problem with the implementation, as the correct data is read. The correct assert should be:
+     *   TEST_ASSERT_MESSAGE(ret == 1, fsfat_fopen_utest_msg_g);
+     * The following assert is curerntly used until the implementation is fixed
+     */
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    /* check read data is as expected */
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: read value data (%s) != expected value data (filename=\"%s\", data=\"%s\", read_buf=\"%s\", ret=%d)\n",
+                             __func__, read_buf, node->filename, node->value, read_buf, (int) ret);
+    TEST_ASSERT_MESSAGE(strncmp(read_buf, node->value, strlen(node->value)) == 0, fsfat_fopen_utest_msg_g);
+
+    if (read_buf) {
+        free(read_buf);
+    }
+    ret = fclose(fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: fclose() call failed (ret=%d, errno=%d).\n", __func__, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+    return CaseNext;
+}
+
+static fsfat_kv_data_t fsfat_fopen_test_02_data[] = {
+    FSFAT_INIT_1_TABLE_MID_NODE,
+    { NULL, NULL},
+};
+
+/**
+ * @brief   test to fopen() a pre-existing key and try to write it, which should fail
+ *          as by default pre-existing keys are opened read-only
+ *
+ * Basic open test which does the following:
+ * - creates file with default rw perms and writes some data to the value blob.
+ * - closes the newly created file.
+ * - opens the file with the default permissions (read-only)
+ * - tries to write the file data which should fail because file was not opened with write flag set.
+ * - closes the opened key
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_02(const size_t call_count)
+{
+    int32_t ret = -1;
+    size_t len = 0;
+    FILE *fp = NULL;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+    len = strlen(fsfat_fopen_test_02_data[0].value);
+    ret = fsfat_test_create(fsfat_fopen_test_02_data[0].filename, (char *) fsfat_fopen_test_02_data[0].value, len);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create file (ret=%d).\n", __func__, (int) ret);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+
+    /* by default, owner of key opens with read-only permissions*/
+    fp = fopen(fsfat_fopen_test_02_data[0].filename, "r");
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to open file (filename=\"%s\", ret=%d)\n", __func__, fsfat_fopen_test_02_data[0].filename, (int) ret);
+    TEST_ASSERT_MESSAGE(fp != NULL, fsfat_fopen_utest_msg_g);
+
+    len = strlen(fsfat_fopen_test_02_data[0].value);
+    ret = fwrite((const void *) fsfat_fopen_test_02_data[0].value, len, 1, fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: call to fwrite() succeeded when should have failed for read-only file (filename=\"%s\")(ret=%d).\n",
+                             __func__, fsfat_fopen_test_02_data[0].filename, (int) ret);
+    TEST_ASSERT_MESSAGE(ret <= 0, fsfat_fopen_utest_msg_g);
+
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE, "%s:Error: fclose() call failed.\n",
+                             __func__);
+    TEST_ASSERT_MESSAGE(fclose(fp) == 0, fsfat_fopen_utest_msg_g);
+
+    return CaseNext;
+}
+
+
+/**
+ * @brief   test to fopen() a pre-existing file and try to write it, which should succeed
+ *          because the key was opened read-write permissions explicitly
+ *
+ * Basic open test which does the following:
+ * - creates file with default rw perms and writes some data to the value blob.
+ * - closes the newly created file.
+ * - opens the file with the rw permissions (non default)
+ * - tries to write the file data which should succeeds because file was opened with write flag set.
+ * - closes the opened key
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_03(const size_t call_count)
+{
+    int32_t ret = -1;
+    size_t len = 0;
+    FILE *fp = NULL;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+    len = strlen(fsfat_fopen_test_02_data[0].value);
+    ret = fsfat_test_create(fsfat_fopen_test_02_data[0].filename, (char *) fsfat_fopen_test_02_data[0].value, len);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create file in store (ret=%d).\n", __func__, (int) ret);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+
+    /* opens with read-write permissions*/
+    fp = fopen(fsfat_fopen_test_02_data[0].filename, "w+");
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to open file (filename=\"%s\")(ret=%d)\n", __func__, fsfat_fopen_test_02_data[0].filename, (int) ret);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+
+    len = strlen(fsfat_fopen_test_02_data[0].value);
+    ret = fwrite((const void *) fsfat_fopen_test_02_data[0].value, len, 1, fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: call to fwrite() failed when should have succeeded (filename=\"%s\", ret=%d).\n", __func__,
+                             fsfat_fopen_test_02_data[0].filename, (int) ret);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE, "%s:Error: fclose() call failed.\n",
+                             __func__);
+    TEST_ASSERT_MESSAGE(fclose(fp) >= 0, fsfat_fopen_utest_msg_g);
+
+    /* clean-up */
+    ret = remove(fsfat_fopen_test_02_data[0].filename);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: unable to delete file (filename=%s, ret=%d) .\n", __func__, fsfat_fopen_test_02_data[0].filename, (int) ret);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+
+    return CaseNext;
+}
+
+
+/** @brief  test to call fopen() with a filename string that exceeds the maximum length
+ * - chanFS supports the exFAT format which should support 255 char filenames
+ * - check that filenames of this length can be created
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_04(const size_t call_count)
+{
+    char filename_good[FSFAT_FILENAME_MAX_LENGTH + 1];
+    char filename_bad[FSFAT_FILENAME_MAX_LENGTH + 2];
+    int32_t ret = -1;
+    size_t len = 0;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    memset(filename_good, 0, FSFAT_FILENAME_MAX_LENGTH + 1);
+    memset(filename_bad, 0, FSFAT_FILENAME_MAX_LENGTH + 2);
+    ret = fsfat_test_filename_gen(filename_good, FSFAT_FILENAME_MAX_LENGTH);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: unable to generate filename_good.\n", __func__);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: filename_good is not the correct length (filename_good=%s, len=%d, expected=%d).\n", __func__, filename_good,
+                             (int) strlen(filename_good), (int) FSFAT_FILENAME_MAX_LENGTH);
+    TEST_ASSERT_MESSAGE(strlen(filename_good) == FSFAT_FILENAME_MAX_LENGTH, fsfat_fopen_utest_msg_g);
+
+    ret = fsfat_test_filename_gen(filename_bad, FSFAT_FILENAME_MAX_LENGTH + 1);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: unable to generate filename_bad.\n", __func__);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: filename_bad is not the correct length (len=%d, expected=%d).\n", __func__, (int) strlen(filename_bad),
+                             (int) FSFAT_FILENAME_MAX_LENGTH + 1);
+    TEST_ASSERT_MESSAGE(strlen(filename_bad) == FSFAT_FILENAME_MAX_LENGTH + 1, fsfat_fopen_utest_msg_g);
+
+    len = strlen(filename_good);
+    ret = fsfat_test_create(filename_good, filename_good, len);
+    /* FIXME:
+     * The current implementation can create file with a filename with 9 chars (more than the 8 restriction of FAT32 Short File Names).
+     * However, the exFAT 255 char filesnames is not supported and hence the following is commented out. Find out what is
+     * the supported max filename length and change this testcase according.
+     *
+     *  FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE, "%s:Error: failed to create file (filename=%s, ret=%d).\n", __func__, filename_good, (int) ret);
+     *  TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+     */
+
+    len = strlen(filename_bad);
+    ret = fsfat_test_create(filename_bad, filename_bad, len);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: created file in store for filename_bad when should have failed (filename=%s, ret=%d).\n", __func__,
+                             filename_bad, (int) ret);
+    TEST_ASSERT_MESSAGE(ret < 0, fsfat_fopen_utest_msg_g);
+    return CaseNext;
+}
+
+
+/// @cond FSFAT_DOXYGEN_DISABLE
+typedef struct fsfat_fopen_kv_name_ascii_node {
+    uint32_t code;
+    uint32_t f_allowed : 1;
+} fsfat_fopen_kv_name_ascii_node;
+/// @endcond
+
+static const uint32_t fsfat_fopen_kv_name_ascii_table_code_sentinel_g = 256;
+
+/*@brief    table recording ascii character codes permitted in kv names */
+static fsfat_fopen_kv_name_ascii_node fsfat_fopen_kv_name_ascii_table[] = {
+    {0, true},          /* code 0-33 allowed*/
+    {34, false},        /* '"' not allowed */
+    {35, true},         /* allowed */
+    {42, false},        /* '*' not allowed */
+    {43, true},         /* allowed */
+    {47, false},        /* '/' not allowed */
+    {48, true},         /* allowed */
+    {58, false},        /* ':' not allowed */
+    {59, true},         /* allowed */
+    {60, false},        /* '<' not allowed */
+    {61, true},         /* allowed */
+    {62, false},        /* '?', '>' not allowed */
+    {64, true},         /* allowed */
+    {92, false},        /* '\' not allowed */
+    {93, true},         /* allowed */
+    {124, false},        /* '!' not allowed */
+    {125, true},         /* allowed */
+    {127, false},        /* DEL not allowed */
+    {128, true},         /* allowed */
+    {fsfat_fopen_kv_name_ascii_table_code_sentinel_g, false},       /* sentinel */
+};
+
+
+/// @cond FSFAT_DOXYGEN_DISABLE
+enum fsfat_fopen_kv_name_pos {
+    fsfat_fopen_kv_name_pos_start = 0x0,
+    fsfat_fopen_kv_name_pos_mid,
+    fsfat_fopen_kv_name_pos_end,
+    fsfat_fopen_kv_name_pos_max
+};
+/// @endcond
+
+/** @brief  test to call fopen() with filename that in includes illegal characters
+ *          - the character(s) can be at the beginning of the filename
+ *          - the character(s) can be at the end of the filename
+ *          - the character(s) can be somewhere within the filename string
+ *          - a max-length string of random characters (legal and illegal)
+ *          - a max-length string of random illegal characters only
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_05(const size_t call_count)
+{
+    bool f_allowed = false;
+    const char *mnt_pt = FSFAT_FOPEN_TEST_MOUNT_PT_PATH;
+    const char *basename = "goodfile";
+    const char *extname = "txt";
+    const size_t basename_len = strlen(basename);
+    const size_t filename_len = strlen(mnt_pt) + strlen(basename) + strlen(extname) +
+                                2; /* extra 2 chars for '/' and '.' in "/sd/goodfile.txt" */
+    char filename[FSFAT_BUF_MAX_LENGTH];
+    size_t len = 0;
+    uint32_t j = 0;
+    int32_t ret = 0;
+    fsfat_fopen_kv_name_ascii_node *node = NULL;
+    uint32_t pos;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+#ifdef FSFAT_DEBUG
+    /* symbol only used why debug is enabled */
+    const char *pos_str = NULL;
+#endif
+
+    /* create bad keyname strings with invalid character code at start of keyname */
+    node = fsfat_fopen_kv_name_ascii_table;
+    memset(filename, 0, FSFAT_BUF_MAX_LENGTH);
+    while (node->code !=  fsfat_fopen_kv_name_ascii_table_code_sentinel_g) {
+        /* loop over range */
+        for (j = node->code; j < (node + 1)->code; j++) {
+            if ((j >= 48 && j <= 57) || (j >= 65 && j <= 90) || (j >= 97 && j <= 122)) {
+                FSFAT_DBGLOG("%s: skipping alpha-numeric ascii character code %d (%c).\n", __func__, (int) j, (char) j);
+                continue;
+            }
+
+            /* set the start, mid, last character of the name to the test char code */
+            for (pos = (uint32_t) fsfat_fopen_kv_name_pos_start; pos < (uint32_t) fsfat_fopen_kv_name_pos_max; pos++) {
+                len = snprintf(filename, filename_len + 1, "%s/%s.%s", mnt_pt, basename, extname);
+                /* overwrite a char at the pos start, mid, end of the filename with an ascii char code (both illegal and legal)*/
+                switch (pos) {
+                    case fsfat_fopen_kv_name_pos_start:
+                        filename[5] = (char) j; /* 5 so at to write the second basename char (bad chars as first char not accepted)*/
+                        break;
+                    case fsfat_fopen_kv_name_pos_mid:
+                        /* create bad keyname strings with invalid character code in the middle of keyname */
+                        filename[5 + basename_len / 2] = (char) j;
+                        break;
+                    case fsfat_fopen_kv_name_pos_end:
+                        /* create bad keyname strings with invalid character code at end of keyname */
+                        filename[5 + basename_len - 1] = (char) j;
+                        break;
+                    default:
+                        FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                                 "%s:Error: unexpected value of pos (pos=%d).\n", __func__, (int) pos);
+                        TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+                        break;
+                }
+
+#ifdef FSFAT_DEBUG
+                /* processing only required when debug trace enabled */
+                switch (pos) {
+                    case fsfat_fopen_kv_name_pos_start:
+                        pos_str = "start";
+                        break;
+                    case fsfat_fopen_kv_name_pos_mid:
+                        pos_str = "middle";
+                        break;
+                    case fsfat_fopen_kv_name_pos_end:
+                        pos_str = "end";
+                        break;
+                    default:
+                        break;
+                }
+#endif
+                ret = fsfat_test_create(filename, (const char *) filename, len);
+
+                /* special cases */
+                switch (j) {
+                    //case 0 :
+                    //case 46 :
+                    //    switch(pos)
+                    //    {
+                    //    /* for code = 0 (null terminator). permitted at mid and end of string */
+                    //    /* for code = 46 ('.'). permitted at mid and end of string but not at start */
+                    //    case fsfat_fopen_kv_name_pos_start:
+                    //        f_allowed = false;
+                    //        break;
+                    //    case fsfat_fopen_kv_name_pos_mid:
+                    //    case fsfat_fopen_kv_name_pos_end:
+                    //    default:
+                    //        f_allowed = true;
+                    //        break;
+                    //    }
+                    //    break;
+                    default:
+                        f_allowed = node->f_allowed;
+                        break;
+                }
+                if (f_allowed == true) {
+                    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                             "%s:Error: failed to create file in store when filename contains valid characters (code=%d, ret=%d).\n", __func__,
+                                             (int) j, (int) ret);
+                    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+                    /* revert FSFAT_LOG for more trace */
+                    FSFAT_DBGLOG("Successfully created a file with valid keyname containing ascii character code %d (%c) at the %s of the keyname.\n",
+                                 (int) j, (int) j, pos_str);
+                    FSFAT_LOG("%c", '.');
+
+                    ret = fsfat_test_delete(filename);
+                    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                             "%s:Error: failed to delete file previously created (code=%d, ret=%d).\n", __func__, (int) j, (int) ret);
+                    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+                } else {
+                    /*node->f_allowed == false => not allowed to create kv name with ascii code */
+                    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                             "%s:Error: created file in store when filename contains an invalid character (code=%d, ret=%d).\n", __func__, (int) j,
+                                             (int) ret);
+                    TEST_ASSERT_MESSAGE(ret < 0, fsfat_fopen_utest_msg_g);
+                    /* revert FSFAT_LOG for more trace */
+                    FSFAT_DBGLOG("Successfully failed to create a file with an invalid keyname containing ascii character code %d at the %s of the keyname.\n",
+                                 (int) j, pos_str);
+                    FSFAT_LOG("%c", '.');
+                }
+            }
+        }
+        node++;
+    }
+
+    FSFAT_LOG("%c", '\n');
+    return CaseNext;
+}
+
+
+static const char fsfat_fopen_ascii_illegal_buf_g[] = "\"�'*+,./:;<=>?[\\]|";
+
+/** @brief  test to call fopen() with filename that in includes
+ *          illegal characters
+ *          - a max-length string of random illegal characters only
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_06(const size_t call_count)
+{
+    const char *mnt_pt = FSFAT_FOPEN_TEST_MOUNT_PT_PATH;
+    const char *extname = "txt";
+    const size_t filename_len = strlen(mnt_pt) + FSFAT_MAX_FILE_BASENAME + strlen(extname) +
+                                2; /* extra 2 chars for '/' and '.' in "/sd/goodfile.txt" */
+    char filename[FSFAT_BUF_MAX_LENGTH];
+    int32_t i = 0;
+    int32_t j = 0;
+    uint32_t pos = 0;
+    uint32_t len = 0;
+    int32_t ret = -1;
+    size_t buf_data_max = 0;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    memset(filename, 0, FSFAT_BUF_MAX_LENGTH);
+    /* create bad keyname strings with invalid character code at start of keyname */
+    buf_data_max = strlen(fsfat_fopen_ascii_illegal_buf_g);
+
+    /* generate a number of illegal filenames */
+    for (j = 0; i < FSFAT_MAX_FILE_BASENAME; j++) {
+        /* generate a kv name of illegal chars*/
+        len = snprintf(filename, filename_len + 1, "%s/", mnt_pt);
+        for (i = 0; i < FSFAT_MAX_FILE_BASENAME; i++) {
+            pos = rand() % (buf_data_max + 1);
+            len += snprintf(filename + len, filename_len + 1, "%c", fsfat_fopen_ascii_illegal_buf_g[pos]);
+
+        }
+        len += snprintf(filename + len, filename_len + 1, ".%s", extname);
+        ret = fsfat_test_create(filename, filename, len);
+        FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                 "%s:Error: created file when filename contains invalid characters (filename=%s, ret=%d).\n", __func__, filename,
+                                 (int) ret);
+        TEST_ASSERT_MESSAGE(ret < 0, fsfat_fopen_utest_msg_g);
+    }
+    return CaseNext;
+}
+
+
+/** @brief  test for errno reporting on a failed fopen()call
+ *
+ *  This test does the following:
+ *  - tries to open a file that does not exist for reading, and checks that a NULL pointer is returned.
+ *  - checks that errno is not 0 as there is an error.
+ *  - checks that ferror() returns 1 indicating an error exists.
+ *
+ * Note: see NOTE_1 below.
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_07(const size_t call_count)
+{
+    FILE *f = NULL;
+    int ret = -1;
+    int errno_val = 0;
+    const char *filename = sd_badfile_path;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    errno = 0;
+    /* this is expect to fail as the file doesnt exist */
+    f = fopen(filename, "r");
+
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: opened non-existent file for reading (filename=%s, f=%p).\n", __func__, filename, f);
+    TEST_ASSERT_MESSAGE(f == NULL, fsfat_fopen_utest_msg_g);
+
+    /* check errno is set correctly */
+#if ! defined(__ARMCC_VERSION) && defined(__GNUC__)
+    /* Store errno so the current value set  is not changed by new function call */
+    errno_val = errno;
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: errno has unexpected value (errno != 0 expected) (filename=%s, errno=%d).\n", __func__, filename, errno);
+    TEST_ASSERT_MESSAGE(errno_val != 0, fsfat_fopen_utest_msg_g);
+#endif  /* ! defined(__ARMCC_VERSION) && defined(__GNUC__) */
+    return CaseNext;
+}
+
+
+/** @brief  test for operation of clearerr() and ferror()
+ *
+ *  The test does the following:
+ *  - opens and then closes a file, but keeps a copy of the FILE pointer fp.
+ *  - set errno to 0.
+ *  - write to the close file with fwrite(fp) which should return 0 (no writes) and set the errno.
+ *  - check the error condition is set with ferror().
+ *  - clear the error with clearerr().
+ *  - check the error condition is reset with ferror().
+ *
+ * NOTE_1: GCC/ARMCC support for setting errno
+ *  - Documentation (e.g. fwrite() man page) does not explicity say fwrite() sets errno
+ *    (e.g. for an fwrite() on a read-only file).
+ *  - GCC libc fwrite() appears to set errno as expected.
+ *  - ARMCC & IAR libc fwrite() appears not to set errno.
+ *
+ * The following ARMCC documents are silent on whether fwrite() sets errno:
+ * - "ARM C and C++ Libraries and Floating-Point Support".
+ * - "RL-ARM User Guide fwrite() section".
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_08(const size_t call_count)
+{
+    FILE *fp = NULL;
+    int ret = -1;
+    int ret_ferror = -1;
+    const char *filename = sd_testfile_path;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    errno = 0;
+    fp = fopen(filename, "w+");
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to open file (filename=%s, f=%p).\n", __func__, filename, fp);
+    TEST_ASSERT_MESSAGE(fp != NULL, fsfat_fopen_utest_msg_g);
+
+    /* close the fp but then try to read or write it */
+    ret = fclose(fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to close file (ret=%d, errno=%d)\n", __func__, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    /* open file  */
+    errno = 0;
+    fp = fopen(filename, "r");
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to open file for reading (filename=\"%s\", ret=%d)\n", __func__, filename, (int) ret);
+    TEST_ASSERT_MESSAGE(fp != NULL, fsfat_fopen_utest_msg_g);
+
+    /* Perform fwrite() operation that will fail. */
+    errno = 0;
+    ret = fwrite("42!", 4, 1, fp);
+
+    ret_ferror = ferror(fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: ferror() failed to report error (filename=%s, ret_ferror=%d).\n", __func__, filename, (int) ret_ferror);
+    TEST_ASSERT_MESSAGE(ret_ferror != 0, fsfat_fopen_utest_msg_g);
+
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: fwrite successfully wrote to read-only file (filename=%s, ret=%d).\n", __func__, filename, (int) ret);
+    /* the fwrite() should fail and return 0. */
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+#if ! defined(__ARMCC_VERSION) && defined(__GNUC__)
+    /* check that errno is set. ARMCC appears not to set errno for fwrite() failure. */
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: unexpected zero value for errno (filename=%s, ret=%d, errno=%d).\n", __func__, filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(errno != 0, fsfat_fopen_utest_msg_g);
+
+    /* check that errno is set to the expected value (this may change differ for different libc's) */
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: errno != EBADF (filename=%s, ret=%d, errno=%d).\n", __func__, filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(errno == EBADF, fsfat_fopen_utest_msg_g);
+#endif  /* ! defined(__ARMCC_VERSION) && defined(__GNUC__) */
+
+    /* check clearerr() return clears the error */
+    clearerr(fp);
+    ret = ferror(fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: ferror() did not return zero value when error has been cleared (filename=%s, ret=%d).\n", __func__, filename,
+                             (int) ret);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    fclose(fp);
+    return CaseNext;
+}
+
+
+/** @brief  test for operation of ftell()
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_09(const size_t call_count)
+{
+    FILE *fp = NULL;
+    int ret = -1;
+    int32_t len = 0;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    /* create a file of a certain length */
+    len = strlen(fsfat_fopen_test_02_data[0].value);
+    ret = fsfat_test_create(fsfat_fopen_test_02_data[0].filename, (char *) fsfat_fopen_test_02_data[0].value, len);
+
+    errno = 0;
+    /* Open the file for reading so the file is not truncated to 0 length. */
+    fp = fopen(fsfat_fopen_test_02_data[0].filename, "r");
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to open file (filename=%s, fp=%p, errno=%d).\n", __func__, fsfat_fopen_test_02_data[0].filename, fp,
+                             errno);
+    TEST_ASSERT_MESSAGE(fp != NULL, fsfat_fopen_utest_msg_g);
+
+    errno = 0;
+    ret = fseek(fp, 0, SEEK_END);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: fseek() failed to SEEK_END (filename=%s, ret=%d, errno=%d).\n", __func__,
+                             fsfat_fopen_test_02_data[0].filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    errno = 0;
+    ret = ftell(fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: ftell() failed to report correct offset value (filename=%s, ret=%d, errno=%d).\n", __func__,
+                             fsfat_fopen_test_02_data[0].filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == len, fsfat_fopen_utest_msg_g);
+
+    errno = 0;
+    ret = fclose(fp);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to close file (ret=%d, errno=%d)\n", __func__, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    return CaseNext;
+}
+
+
+/* file data for test_10 */
+static fsfat_kv_data_t fsfat_fopen_test_10_kv_data[] = {
+    { "/sd/test_10/testfile.txt", "test_data"},
+    { NULL, NULL},
+};
+
+/** @brief  test for operation of remove()
+ *
+ * Performs the following tests:
+ *  1. test remove() on a file that exists. This should succeed.
+ *  2. test remove() on a dir that exists. This should succeed.
+ *  3. test remove() on a file that doesnt exist. This should fail. check errno set.
+ *  4. test remove() on a dir that doesnt exist. This should fail. check errno set.
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_10(const size_t call_count)
+{
+    char buf[FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1];
+    char *pos = NULL;
+    int32_t ret = -1;
+    size_t len = 0;
+    fsfat_kv_data_t *node = fsfat_fopen_test_10_kv_data;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    TEST_ASSERT(strlen(node->filename) < FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1);
+
+    /* start from a known state i.e. directory to be created in not present */
+    fsfat_filepath_remove_all((char *) node->filename);
+
+    /* (1) */
+    errno = 0;
+    ret = fsfat_filepath_make_dirs((char *) node->filename, false);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create dir (dirname=%s, ret=%d, errno=%d)\n", __func__, node->filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    len = strlen(node->value);
+    ret = fsfat_test_create(node->filename, (char *) node->value, len);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create file (ret=%d).\n", __func__, (int) ret);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+
+    ret = remove(node->filename);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: delete file operation failed (filename=%s, ret=%d) .\n", __func__, node->filename, (int) ret);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    /* (3) */
+    ret = remove(node->filename);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: deleted a file that doesn't exist (filename=%s, ret=%d, errno=%d) .\n", __func__, node->filename, (int) ret,
+                             errno);
+    TEST_ASSERT_MESSAGE(ret != 0, fsfat_fopen_utest_msg_g);
+
+    /* (2) */
+    memset(buf, 0, FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1);
+    memcpy(buf, node->filename, strlen(node->filename));
+    pos = strrchr(buf, '/');
+    *pos = '\0';
+    ret = remove(buf);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: delete directory operation failed (directory name=%s, ret=%d, errno=%d).\n", __func__, buf, (int) ret,
+                             errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    /* (4) */
+    ret = remove(buf);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: deleted a directory that doesn't exist (directory name=%s, ret=%d, errno=%d).\n", __func__, buf, (int) ret,
+                             errno);
+    TEST_ASSERT_MESSAGE(ret != 0, fsfat_fopen_utest_msg_g);
+
+    return CaseNext;
+}
+
+
+/* file data for test_11 */
+static fsfat_kv_data_t fsfat_fopen_test_11_kv_data[] = {
+    { "/sd/test_11/step0.txt", "test_data"},
+    { "/sd/test_11/step1.txt", "test_data"},
+    { "/sd/test_11/subdir/step3.txt", "test_data"},
+    { NULL, NULL},
+};
+
+/** @brief  test for operation of rename()
+ *
+ * This test does the following:
+ *  1) test rename() on a file that exists to a new filename within the same directory.
+ *  2) test rename() on a file that exists to a new filename within a different directory.
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_11(const size_t call_count)
+{
+    int32_t ret = -1;
+    size_t len = 0;
+    fsfat_kv_data_t *node = fsfat_fopen_test_11_kv_data;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    TEST_ASSERT(strlen(node->filename) < FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1);
+
+    /* start from a known state i.e. directory to be created in not present, files not present */
+    while (node->filename != NULL) {
+        fsfat_filepath_remove_all((char *) node->filename);
+        node++;
+    }
+
+    /* create file and directories ready for rename() tests */
+    errno = 0;
+    node = fsfat_fopen_test_11_kv_data;
+    ret = fsfat_filepath_make_dirs((char *) node->filename, false);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create dir (dirname=%s, ret=%d, errno=%d)\n", __func__, node->filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    len = strlen(node->value);
+    ret = fsfat_test_create(node->filename, (char *) node->value, len);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create file (ret=%d).\n", __func__, (int) ret);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+
+    errno = 0;
+    node = &fsfat_fopen_test_11_kv_data[2];
+    ret = fsfat_filepath_make_dirs((char *) node->filename, false);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create dir (dirname=%s, ret=%d, errno=%d)\n", __func__, node->filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    /* (1) */
+    ret = rename(fsfat_fopen_test_11_kv_data[0].filename, fsfat_fopen_test_11_kv_data[1].filename);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: unable to rename file from (%s) to (%s) (ret=%d, errno=%d).\n", __func__,
+                             fsfat_fopen_test_11_kv_data[0].filename, fsfat_fopen_test_11_kv_data[1].filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    /* (2) */
+    ret = rename(fsfat_fopen_test_11_kv_data[1].filename, fsfat_fopen_test_11_kv_data[2].filename);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: unable to rename file from (%s) to (%s) (ret=%d, errno=%d).\n", __func__,
+                             fsfat_fopen_test_11_kv_data[1].filename, fsfat_fopen_test_11_kv_data[2].filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    return CaseNext;
+}
+
+
+/* file data for test_12 */
+static fsfat_kv_data_t fsfat_fopen_test_12_kv_data[] = {
+    { "/sd/test_12/subdir/testfil1.txt", "testfil1.txt"},
+    { "/sd/test_12/testfil2.txt", "testfil2.txt"},
+    { "/sd/test_12/testfil3.txt", "testfil3.txt"},
+    { "/sd/test_12/testfil4.txt", "testfil4.txt"},
+    { "/sd/test_12/testfil5.txt", "testfil5.txt"},
+    { NULL, NULL},
+};
+
+/** @brief  test for operation of readdir().
+ *
+ * Note, rewinddir(), telldir() and seekdir() dont appear to work reliably.
+ * opendir() not available on ARM/IAR toolchains.
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_12(const size_t call_count)
+{
+    char buf[FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1];
+    char *pos = NULL;
+    int32_t count = 0;
+    int32_t ret = -1;
+    size_t len = 0;
+    DIR *dir;
+    struct dirent *dp;
+    fsfat_kv_data_t *node = fsfat_fopen_test_12_kv_data;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+#if ! defined(__ARMCC_VERSION) && defined(__GNUC__)
+
+    /* start from a known state i.e. directory to be created in not present */
+    while (node->filename != NULL) {
+        fsfat_filepath_remove_all((char *) node->filename);
+        node++;
+    }
+
+    /* create a file */
+    node = fsfat_fopen_test_12_kv_data;
+    errno = 0;
+    ret = fsfat_filepath_make_dirs((char *) node->filename, false);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create dir (dirname=%s, ret=%d, errno=%d)\n", __func__, node->filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    node = fsfat_fopen_test_12_kv_data;
+    while (node->filename != NULL) {
+        len = strlen(node->value);
+        ret = fsfat_test_create(node->filename, (char *) node->value, len);
+        FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                 "%s:Error: failed to create file (ret=%d).\n", __func__, (int) ret);
+        TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+        node++;
+    }
+
+    node = fsfat_fopen_test_12_kv_data;
+    memset(buf, 0, FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1);
+    memcpy(buf, node->filename, strlen(node->filename));
+    pos = strrchr(buf, '/');
+    *pos = '\0';
+    dir = opendir(buf);
+
+    while ((dp = readdir(dir)) != NULL) {
+        FSFAT_DBGLOG("%s: filename: \"%s\"\n", __func__, dp->d_name);
+        TEST_ASSERT_MESSAGE(dp != 0, "Error: readdir() failed\n");
+        FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                 "%s:Error: unexpected object name (name=%s, expected=%s).\n", __func__, dp->d_name,
+                                 fsfat_fopen_test_12_kv_data[count].value);
+        TEST_ASSERT_MESSAGE(strncmp(dp->d_name, fsfat_fopen_test_12_kv_data[count].value,
+                                    strlen(fsfat_fopen_test_12_kv_data[count].value)) == 0, fsfat_fopen_utest_msg_g);
+        count++;
+    }
+    closedir(dir);
+
+    /* cleanup */
+    node = fsfat_fopen_test_12_kv_data;
+    while (node->filename != NULL) {
+        fsfat_filepath_remove_all((char *) node->filename);
+        node++;
+    }
+#endif  /* ! defined(__ARMCC_VERSION) && defined(__GNUC__) */
+    return CaseNext;
+}
+
+
+/* file data for test_13 */
+static fsfat_kv_data_t fsfat_fopen_test_13_kv_data[] = {
+    /* a file is included in the filepath even though its not created by the test,
+     * as the fsfat_filepath_make_dirs() works with it present. */
+    { "/sd/test_13/dummy.txt", "testdir"},
+    { NULL, NULL},
+};
+/** @brief  test for operation of mkdir()/remove()
+ *
+ * This test checks that:
+ * - The mkdir() function successfully creates a directory that is not already present.
+ * - The mkdir() function returns EEXIST when trying to create a directory thats already present.
+ * - The remove() function successfully removes a directory that is present.
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_13(const size_t call_count)
+{
+    int32_t ret = 0;
+
+    FSFAT_DBGLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    /* start from a known state i.e. directory to be created in not present */
+    fsfat_filepath_remove_all((char *) fsfat_fopen_test_13_kv_data[0].filename);
+
+    errno = 0;
+    ret = fsfat_filepath_make_dirs((char *) fsfat_fopen_test_13_kv_data[0].filename, false);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create dir (dirname=%s, ret=%d, errno=%d)\n", __func__, fsfat_fopen_test_13_kv_data[0].filename,
+                             (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    /* check that get a suitable error when try to create it again.*/
+    errno = 0;
+    ret = fsfat_filepath_make_dirs((char *) fsfat_fopen_test_13_kv_data[0].filename, false);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: permitted to create directory when already exists (dirname=%s, ret=%d, errno=%d)\n", __func__,
+                             fsfat_fopen_test_13_kv_data[0].filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret != 0, fsfat_fopen_utest_msg_g);
+
+    /* check errno is as expected */
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: errno != EEXIST (dirname=%s, ret=%d, errno=%d)\n", __func__, fsfat_fopen_test_13_kv_data[0].filename,
+                             (int) ret, errno);
+    TEST_ASSERT_MESSAGE(errno == EEXIST, fsfat_fopen_utest_msg_g);
+
+    ret = fsfat_filepath_remove_all((char *) fsfat_fopen_test_13_kv_data[0].filename);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to remove directory (dirname=%s, ret=%d, errno=%d)\n", __func__,
+                             fsfat_fopen_test_13_kv_data[0].filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    return CaseNext;
+}
+
+/* file data for test_14 */
+static fsfat_kv_data_t fsfat_fopen_test_14_kv_data[] = {
+    /* a file is included in the filepath even though its not created by the test,
+     * as the fsfat_filepath_make_dirs() works with it present. */
+    { "/sd/test_14/testfile.txt", "testdata"},
+    { NULL, NULL},
+};
+
+/** @brief  test for operation of stat()
+ *
+ * stat() is currently no supported by ARMCC and IAR toolchains libc.
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_14(const size_t call_count)
+{
+#if ! defined(__ARMCC_VERSION) && defined(__GNUC__)
+
+    char buf[FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1];
+    char *pos = NULL;
+    int32_t ret = -1;
+    size_t len = 0;
+    struct stat file_stat;
+    fsfat_kv_data_t *node = fsfat_fopen_test_14_kv_data;
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    TEST_ASSERT(strlen(node->filename) < FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1);
+
+    /* start from a known state i.e. directory to be created in not present */
+    fsfat_filepath_remove_all((char *) node->filename);
+
+    /* Create file in a directory. */
+    errno = 0;
+    ret = fsfat_filepath_make_dirs((char *) node->filename, false);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create dir (dirname=%s, ret=%d, errno=%d)\n", __func__, node->filename, (int) ret, errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    len = strlen(node->value);
+    ret = fsfat_test_create(node->filename, (char *) node->value, len);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to create file (ret=%d).\n", __func__, (int) ret);
+    TEST_ASSERT_MESSAGE(ret >= 0, fsfat_fopen_utest_msg_g);
+
+    /* Test stat() on the file returns the correct attribute set */
+    memset(&file_stat, 0, sizeof(file_stat));
+    ret = stat(node->filename, &file_stat);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: stat() operation on file failed (filename=%s, ret=%d, errno=%d).\n", __func__, node->filename, (int) ret,
+                             errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: expected st_mode S_IFREG flag not set (filename=%s).\n", __func__, node->filename);
+    TEST_ASSERT_MESSAGE((file_stat.st_mode & S_IFREG) == S_IFREG, fsfat_fopen_utest_msg_g);
+
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: unexpected st_mode S_IFDIR flag set (filename=%s).\n", __func__, node->filename);
+    TEST_ASSERT_MESSAGE((file_stat.st_mode & S_IFDIR) != S_IFDIR, fsfat_fopen_utest_msg_g);
+
+    /* Test stat() on the directory returns the correct attribute set */
+    memset(&file_stat, 0, sizeof(file_stat));
+    memset(buf, 0, FSFAT_FOPEN_TEST_WORK_BUF_SIZE_1);
+    memcpy(buf, node->filename, strlen(node->filename));
+    pos = strrchr(buf, '/');
+    *pos = '\0';
+    ret = stat(buf, &file_stat);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: stat() operation on directory failed (directory name=%s, ret=%d, errno=%d).\n", __func__, buf, (int) ret,
+                             errno);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: unexpected st_mode S_IFREG flag set (directory name=%s).\n", __func__, buf);
+    TEST_ASSERT_MESSAGE((file_stat.st_mode & S_IFREG) != S_IFREG, fsfat_fopen_utest_msg_g);
+
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: expected st_mode S_IFDIR flag not set (directory name=%s).\n", __func__, buf);
+    TEST_ASSERT_MESSAGE((file_stat.st_mode & S_IFDIR) == S_IFDIR, fsfat_fopen_utest_msg_g);
+
+    /* clean up after successful test */
+    fsfat_filepath_remove_all((char *) node->filename);
+
+#endif /* ! defined(__ARMCC_VERSION) && defined(__GNUC__) */
+    return CaseNext;
+}
+
+/** @brief  test for operation of SDFileSystem::format()
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_15(const size_t call_count)
+{
+
+    FSFAT_FENTRYLOG("%s:entered\n", __func__);
+    (void) call_count;
+    int32_t ret = -1;
+
+    /* the allocation_unit of 0 means chanFS will use the default for the card (varies according to capacity). */
+    fs.unmount();
+    ret = fs.format(&sd);
+    FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                             "%s:Error: failed to format sdcard (ret=%d)\n", __func__, (int) ret);
+    TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+    fs.mount(&sd);
+    return CaseNext;
+}
+
+
+/* @brief   test utility function to create a file of a given size.
+ *
+ * A reference data table is used of so that the data file can be later be
+ * checked with fsfat_test_check_data_file().
+ *
+ * @param   filename    name of the file including path
+ * @param   data        data to store in file
+ * @param   len         number of bytes of data present in the data buffer.
+ */
+int32_t fsfat_test_create_data_file(const char *filename, size_t len)
+{
+    int32_t ret = -1;
+    FILE *fp = NULL;
+    size_t write_len = 0;
+    size_t written_len = 0;
+    int32_t exp = 0;
+    const int32_t exp_max = 8;      /* so as not to exceed FSFAT_TEST_BYTE_DATA_TABLE_SIZE/2 */
+
+    FSFAT_FENTRYLOG("%s:entered (filename=%s, len=%d).\n", __func__, filename, (int) len);
+    TEST_ASSERT(len % FSFAT_TEST_BYTE_DATA_TABLE_SIZE == 0);
+    fp = fopen(filename, "a");
+    if (fp == NULL) {
+        return ret;
+    }
+
+    while (written_len < len) {
+        /* write fsfat_test_byte_data_table or part thereof, in 9 writes of sizes
+         * 1, 2, 4, 8, 16, 32, 64, 128, 1, totalling 256 bytes len permitting. */
+        for (exp = 0; (exp <= exp_max) && (written_len < len); exp++) {
+            write_len = 0x1 << (exp % exp_max);
+            write_len = len - written_len  > write_len ? write_len : len - written_len;
+            ret = fwrite((const void *) &fsfat_test_byte_data_table[written_len % FSFAT_TEST_BYTE_DATA_TABLE_SIZE], write_len, 1,
+                         fp);
+            written_len += write_len;
+            if (ret != 1) {
+                FSFAT_DBGLOG("%s:Error: fwrite() failed (ret=%d)\n", __func__, (int) ret);
+                ret = -1;
+                goto out0;
+            }
+        }
+    }
+    if (written_len == len) {
+        ret = 0;
+    } else {
+        ret = -1;
+    }
+out0:
+    fclose(fp);
+    return ret;
+}
+
+
+/* @brief   test utility function to check the data in the specified file is correct.
+ *
+ * The data read from the file is check that it agrees with the data written by
+ * fsfat_test_create_data_file().
+ *
+ * @param   filename    name of the file including path
+ * @param   data        data to store in file
+ * @param   len         number of bytes of data present in the data buffer.
+ */
+int32_t fsfat_test_check_data_file(const char *filename, size_t len)
+{
+    int32_t ret = -1;
+    FILE *fp = NULL;
+    size_t read_len = 0;
+    uint8_t buf[FSFAT_TEST_BYTE_DATA_TABLE_SIZE];
+
+    FSFAT_FENTRYLOG("%s:entered (filename=%s, len=%d).\n", __func__, filename, (int) len);
+    TEST_ASSERT(len % FSFAT_TEST_BYTE_DATA_TABLE_SIZE == 0);
+    fp = fopen(filename, "r");
+    if (fp == NULL) {
+        return ret;
+    }
+
+    while (read_len < len) {
+        ret = fread((void *) buf, FSFAT_TEST_BYTE_DATA_TABLE_SIZE, 1, fp);
+        read_len += FSFAT_TEST_BYTE_DATA_TABLE_SIZE;
+        if (ret == 0) {
+            /* end of read*/
+            FSFAT_DBGLOG("%s:unable to read data\n", __func__);
+            break;
+        }
+        if (memcmp(buf, fsfat_test_byte_data_table, FSFAT_TEST_BYTE_DATA_TABLE_SIZE) != 0) {
+            FSFAT_DBGLOG("%s:Error: read data not as expected (0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x, 0x%2x\n",
+                         __func__,
+                         buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13],
+                         buf[14], buf[15]);
+            ret = -1;
+            goto out0;
+        }
+    }
+    if (read_len == len) {
+        ret = 0;
+    }
+out0:
+    fclose(fp);
+    return ret;
+}
+
+/* file data for test_16 */
+static fsfat_kv_data_t fsfat_fopen_test_16_kv_data[] = {
+    { "/sd/tst16_0/testfil0.txt", "dummy_data"},
+    { "/sd/tst16_1/subdir0/testfil0.txt", "dummy_data"},
+    { "/sd/tst16_2/subdir0/subdir1/testfil0.txt", "dummy_data"},
+    { "/sd/tst16_3/subdir0/subdir1/subdir2/subdir3/testfil0.txt", "dummy_data"},
+    { "/sd/tst16_4/subdir0/subdir1/subdir2/subdir3/subdir4/testfil0.txt", "dummy_data"},
+    { "/sd/tst16_5/subdir0/subdir1/subdir2/subdir3/subdir4/subdir5/testfil0.txt", "dummy_data"},
+    { "/sd/tst16_6/subdir0/subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/testfil0.txt", "dummy_data"},
+    { "/sd/tst16_7/subdir0/subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/subdir7/testfil0.txt", "dummy_data"},
+    { "/sd/tst16_8/subdir0/subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/subdir7/subdir8/testfil0.txt", "dummy_data"},
+    { "/sd/tst16_9/subdir0/subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/subdir7/subdir8/subdir9/testfil0.txt", "dummy_data"},
+    { NULL, NULL},
+};
+
+
+/** @brief  stress test to write data to fs
+ *
+ * @return on success returns CaseNext to continue to next test case, otherwise will assert on errors.
+ */
+control_t fsfat_fopen_test_16(const size_t call_count)
+{
+    int32_t ret = 0;
+    fsfat_kv_data_t *node = fsfat_fopen_test_16_kv_data;
+    const int32_t num_blocks = 100; /* each file ~25kB */
+
+    FSFAT_DBGLOG("%s:entered\n", __func__);
+    (void) call_count;
+
+    /* remove file and directory from a previous failed test run, if present */
+    while (node->filename != NULL) {
+        fsfat_filepath_remove_all((char *) node->filename);
+        node++;
+    }
+
+    /* create dirs */
+    node = fsfat_fopen_test_16_kv_data;
+    while (node->filename != NULL) {
+        ret = fsfat_filepath_make_dirs((char *) node->filename, true);
+        FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                 "%s:Error: failed to create dirs for filename (filename=\"%s\")(ret=%d)\n", __func__, node->filename, (int) ret);
+        TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+        node++;
+    }
+
+    /* create the data files */
+    node = fsfat_fopen_test_16_kv_data;
+    while (node->filename != NULL) {
+        ret = fsfat_test_create_data_file(node->filename, num_blocks * FSFAT_TEST_BYTE_DATA_TABLE_SIZE);
+        FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                 "%s:Error: failed to create data file (filename=\"%s\")(ret=%d)\n", __func__, node->filename, (int) ret);
+        TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+        node++;
+    }
+
+    /* read the data back and check its as expected */
+    node = fsfat_fopen_test_16_kv_data;
+    while (node->filename != NULL) {
+        ret = fsfat_test_check_data_file(node->filename, num_blocks * FSFAT_TEST_BYTE_DATA_TABLE_SIZE);
+        FSFAT_TEST_UTEST_MESSAGE(fsfat_fopen_utest_msg_g, FSFAT_UTEST_MSG_BUF_SIZE,
+                                 "%s:Error: failed to check data file (filename=\"%s\")(ret=%d)\n", __func__, node->filename, (int) ret);
+        TEST_ASSERT_MESSAGE(ret == 0, fsfat_fopen_utest_msg_g);
+        node++;
+    }
+
+    /* clean up */
+    node = fsfat_fopen_test_16_kv_data;
+    while (node->filename != NULL) {
+        fsfat_filepath_remove_all((char *) node->filename);
+        node++;
+    }
+    return CaseNext;
+}
+
+
+#else
+
+#define FSFAT_FOPEN_TEST_00      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_01      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_02      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_03      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_04      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_05      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_06      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_07      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_08      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_09      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_10      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_11      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_12      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_13      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_14      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_15      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_16      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_17      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_18      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_19      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_20      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_21      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_22      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_23      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_24      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_25      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_26      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_27      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_28      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_29      fsfat_fopen_test_dummy
+#define FSFAT_FOPEN_TEST_30      fsfat_fopen_test_dummy
+
+/** @brief  fsfat_fopen_test_dummy    Dummy test case for testing when platform doesnt have an SDCard installed.
+ *
+ * @return success always
+ */
+static control_t fsfat_fopen_test_dummy()
+{
+    printf("Null test\n");
+    return CaseNext;
+}
+
+#endif
+
+
+/// @cond FSFAT_DOXYGEN_DISABLE
+utest::v1::status_t greentea_setup(const size_t number_of_cases)
+{
+    GREENTEA_SETUP(FSFAT_FOPEN_GREENTEA_TIMEOUT_S, "default_auto");
+    return greentea_test_setup_handler(number_of_cases);
+}
+
+Case cases[] = {
+    /*          1         2         3         4         5         6        7  */
+    /* 1234567890123456789012345678901234567890123456789012345678901234567890 */
+    Case("FSFAT_FOPEN_TEST_00: format sd card to FAT FS.", FSFAT_FOPEN_TEST_00),
+    Case("FSFAT_FOPEN_TEST_01: fopen()/fwrite()/fclose() directories/file in multi-dir filepath.", FSFAT_FOPEN_TEST_01),
+    Case("FSFAT_FOPEN_TEST_02: fopen(r) pre-existing file try to write it.", FSFAT_FOPEN_TEST_02),
+    Case("FSFAT_FOPEN_TEST_03: fopen(w+) pre-existing file try to write it.", FSFAT_FOPEN_TEST_03),
+    Case("FSFAT_FOPEN_TEST_04: fopen() with a filename exceeding the maximum length.", FSFAT_FOPEN_TEST_04),
+#ifdef FOPEN_EXTENDED_TESTING
+    Case("FSFAT_FOPEN_TEST_05: fopen() with bad filenames (extended).", FSFAT_FOPEN_TEST_05),
+#endif
+    Case("FSFAT_FOPEN_TEST_06: fopen() with bad filenames (minimal).", FSFAT_FOPEN_TEST_06),
+    Case("FSFAT_FOPEN_TEST_07: fopen()/errno handling.", FSFAT_FOPEN_TEST_07),
+    Case("FSFAT_FOPEN_TEST_08: ferror()/clearerr()/errno handling.", FSFAT_FOPEN_TEST_08),
+    Case("FSFAT_FOPEN_TEST_09: ftell() handling.", FSFAT_FOPEN_TEST_09),
+    Case("FSFAT_FOPEN_TEST_10: remove() test.", FSFAT_FOPEN_TEST_10),
+    Case("FSFAT_FOPEN_TEST_11: rename().", FSFAT_FOPEN_TEST_11),
+    Case("FSFAT_FOPEN_TEST_12: opendir(), readdir(), closedir() test.", FSFAT_FOPEN_TEST_12),
+    Case("FSFAT_FOPEN_TEST_13: mkdir() test.", FSFAT_FOPEN_TEST_13),
+    Case("FSFAT_FOPEN_TEST_14: stat() test.", FSFAT_FOPEN_TEST_14),
+    Case("FSFAT_FOPEN_TEST_15: format() test.", FSFAT_FOPEN_TEST_15),
+    Case("FSFAT_FOPEN_TEST_16: write/check n x 25kB data files.", FSFAT_FOPEN_TEST_16),
+};
+
+
+/* Declare your test specification with a custom setup handler */
+Specification specification(greentea_setup, cases);
+
+int main()
+{
+    return !Harness::run(specification);
+}
+/// @endcond
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/parallel/main.cpp	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,209 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed.h"
+#include "greentea-client/test_env.h"
+#include "unity.h"
+#include "utest.h"
+#include <stdlib.h>
+#include <errno.h>
+
+using namespace utest::v1;
+
+// test configuration
+#ifndef MBED_TEST_FILESYSTEM
+#define MBED_TEST_FILESYSTEM FATFileSystem
+#endif
+
+#ifndef MBED_TEST_FILESYSTEM_DECL
+#define MBED_TEST_FILESYSTEM_DECL MBED_TEST_FILESYSTEM fs("fs")
+#endif
+
+#ifndef MBED_TEST_BLOCKDEVICE
+#define MBED_TEST_BLOCKDEVICE RZ_SDHIBlockDevice
+#define MBED_TEST_BLOCKDEVICE_DECL SDHIBlockDevice bd(MBED_CONF_RZ_SDHI_CH);
+#endif
+
+#ifndef MBED_TEST_BLOCKDEVICE_DECL
+#define MBED_TEST_BLOCKDEVICE_DECL MBED_TEST_BLOCKDEVICE bd
+#endif
+
+#ifndef MBED_TEST_FILES
+#define MBED_TEST_FILES 4
+#endif
+
+#ifndef MBED_TEST_DIRS
+#define MBED_TEST_DIRS 4
+#endif
+
+#ifndef MBED_TEST_BUFFER
+#define MBED_TEST_BUFFER 512
+#endif
+
+#ifndef MBED_TEST_TIMEOUT
+#define MBED_TEST_TIMEOUT 120
+#endif
+
+#ifndef MBED_THREAD_COUNT
+#define MBED_THREAD_COUNT    MBED_TEST_FILES
+#endif
+
+// declarations
+#define STRINGIZE(x) STRINGIZE2(x)
+#define STRINGIZE2(x) #x
+#define INCLUDE(x, ext) STRINGIZE(x.ext)
+
+#include INCLUDE(MBED_TEST_FILESYSTEM, h)
+#include INCLUDE(MBED_TEST_BLOCKDEVICE, hpp)
+
+MBED_TEST_FILESYSTEM_DECL;
+MBED_TEST_BLOCKDEVICE_DECL;
+
+Dir dir[MBED_TEST_DIRS];
+File file[MBED_TEST_FILES];
+DIR *dd[MBED_TEST_DIRS];
+FILE *fd[MBED_TEST_FILES];
+struct dirent ent;
+struct dirent *ed;
+
+volatile bool count_done = 0;
+
+// tests
+
+void test_file_tests()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = MBED_TEST_FILESYSTEM::format(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void write_file_data(char count)
+{
+
+    char filename[10];
+    uint8_t wbuffer[MBED_TEST_BUFFER];
+    int res;
+
+    sprintf(filename, "%s%d", "data", count);
+    res = file[count].open(&fs, filename, O_WRONLY | O_CREAT);
+    TEST_ASSERT_EQUAL(0, res);
+
+    char letter = 'A' + count;
+    for (uint32_t i = 0; i < MBED_TEST_BUFFER; i++) {
+        wbuffer[i] = letter++;
+        if ('z' == letter) {
+            letter = 'A' + count;
+        }
+    }
+
+    for (uint32_t i = 0; i < 5; i++) {
+        res = file[count].write(wbuffer, MBED_TEST_BUFFER);
+        TEST_ASSERT_EQUAL(MBED_TEST_BUFFER, res);
+    }
+
+    res = file[count].close();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void read_file_data(char count)
+{
+    char filename[10];
+    uint8_t rbuffer[MBED_TEST_BUFFER];
+    int res;
+
+    sprintf(filename, "%s%d", "data", count);
+    res = file[count].open(&fs, filename, O_RDONLY);
+    TEST_ASSERT_EQUAL(0, res);
+
+    for (uint32_t i = 0; i < 5; i++) {
+        res = file[count].read(rbuffer, MBED_TEST_BUFFER);
+        TEST_ASSERT_EQUAL(MBED_TEST_BUFFER, res);
+        char letter = 'A' + count;
+        for (uint32_t i = 0; i < MBED_TEST_BUFFER; i++) {
+            res = rbuffer[i];
+            TEST_ASSERT_EQUAL(letter++, res);
+            if ('z' == letter) {
+                letter = 'A' + count;
+            }
+        }
+    }
+
+    res = file[count].close();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_thread_access_test()
+{
+    char *dummy = new (std::nothrow) char[OS_STACK_SIZE * MBED_THREAD_COUNT];
+    delete[] dummy;
+    TEST_SKIP_UNLESS_MESSAGE(dummy, "Not enough memory to run test");
+
+    Thread *data[MBED_THREAD_COUNT];
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+    res = fs.mount(&bd);
+    TEST_ASSERT_EQUAL(0, res);
+
+    // Write threads in parallel
+    for (char thread_count = 0; thread_count < MBED_THREAD_COUNT; thread_count++) {
+        data[thread_count] = new Thread(osPriorityNormal);
+        data[thread_count]->start(callback((void(*)(void *))write_file_data, (void *)thread_count));
+    }
+
+    // Wait for write thread to join before creating read thread
+    for (char thread_count = 0; thread_count < MBED_THREAD_COUNT; thread_count++) {
+        data[thread_count]->join();
+        delete data[thread_count];
+        data[thread_count] = new Thread(osPriorityNormal);
+        data[thread_count]->start(callback((void(*)(void *))read_file_data, (void *)thread_count));
+    }
+
+    // Wait for read threads to join
+    for (char thread_count = 0; thread_count < MBED_THREAD_COUNT; thread_count++) {
+        data[thread_count]->join();
+        delete data[thread_count];
+    }
+    res = fs.unmount();
+    TEST_ASSERT_EQUAL(0, res);
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+// test setup
+utest::v1::status_t test_setup(const size_t number_of_cases)
+{
+    GREENTEA_SETUP(MBED_TEST_TIMEOUT, "default_auto");
+    return verbose_test_setup_handler(number_of_cases);
+}
+
+Case cases[] = {
+    Case("File tests", test_file_tests),
+    Case("Filesystem access from multiple threads", test_thread_access_test),
+};
+
+Specification specification(test_setup, cases);
+
+int main()
+{
+    return !Harness::run(specification);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/TESTS/filesystem/seek/main.cpp	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,656 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed.h"
+#include "greentea-client/test_env.h"
+#include "unity.h"
+#include "utest.h"
+#include <stdlib.h>
+#include <errno.h>
+
+using namespace utest::v1;
+
+// test configuration
+#ifndef MBED_TEST_FILESYSTEM
+#define MBED_TEST_FILESYSTEM FATFileSystem
+#endif
+
+#ifndef MBED_TEST_FILESYSTEM_DECL
+#define MBED_TEST_FILESYSTEM_DECL MBED_TEST_FILESYSTEM fs("fs")
+#endif
+
+#ifndef MBED_TEST_BLOCKDEVICE
+#define MBED_TEST_BLOCKDEVICE RZ_SDHIBlockDevice
+#define MBED_TEST_BLOCKDEVICE_DECL SDHIBlockDevice bd(MBED_CONF_RZ_SDHI_CH);
+#endif
+
+#ifndef MBED_TEST_BLOCKDEVICE_DECL
+#define MBED_TEST_BLOCKDEVICE_DECL MBED_TEST_BLOCKDEVICE bd
+#endif
+
+#ifndef MBED_TEST_FILES
+#define MBED_TEST_FILES 4
+#endif
+
+#ifndef MBED_TEST_DIRS
+#define MBED_TEST_DIRS 4
+#endif
+
+#ifndef MBED_TEST_TIMEOUT
+#define MBED_TEST_TIMEOUT 120
+#endif
+
+
+// declarations
+#define STRINGIZE(x) STRINGIZE2(x)
+#define STRINGIZE2(x) #x
+#define INCLUDE(x, ext) STRINGIZE(x.ext)
+
+#include INCLUDE(MBED_TEST_FILESYSTEM, h)
+#include INCLUDE(MBED_TEST_BLOCKDEVICE, hpp)
+
+MBED_TEST_FILESYSTEM_DECL;
+MBED_TEST_BLOCKDEVICE_DECL;
+
+Dir dir[MBED_TEST_DIRS];
+File file[MBED_TEST_FILES];
+DIR *dd[MBED_TEST_DIRS];
+FILE *fd[MBED_TEST_FILES];
+struct dirent ent;
+struct dirent *ed;
+uint8_t buffer[MBED_CONF_RZ_SDHI_TEST_BUFFER];
+
+
+// tests
+
+void test_seek_tests()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size;
+        res = MBED_TEST_FILESYSTEM::format(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.mkdir("hello", 0777);
+        TEST_ASSERT_EQUAL(0, res);
+        for (int i = 0; i < 132; i++) {
+            sprintf((char *)buffer, "hello/kitty%d", i);
+            res = file[0].open(&fs, (char *)buffer,
+                               O_WRONLY | O_CREAT | O_APPEND);
+            TEST_ASSERT_EQUAL(0, res);
+
+            size = strlen("kittycatcat");
+            memcpy(buffer, "kittycatcat", size);
+            for (int j = 0; j < 132; j++) {
+                file[0].write(buffer, size);
+            }
+            res = file[0].close();
+            TEST_ASSERT_EQUAL(0, res);
+        }
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_simple_dir_seek()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "hello");
+        TEST_ASSERT_EQUAL(0, res);
+#if (MBED_TEST_FILESYSTEM != FATFileSystem)
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, ".");
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, "..");
+        TEST_ASSERT_EQUAL(0, res);
+#endif
+
+        off_t pos;
+        int i;
+        for (i = 0; i < 4; i++) {
+            sprintf((char *)buffer, "kitty%d", i);
+            res = dir[0].read(&ent);
+            TEST_ASSERT_EQUAL(1, res);
+            res = strcmp(ent.d_name, (char *)buffer);
+            TEST_ASSERT_EQUAL(0, res);
+            pos = dir[0].tell();
+        }
+        res = pos >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+
+        dir[0].seek(pos);
+        sprintf((char *)buffer, "kitty%d", i);
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, (char *)buffer);
+        TEST_ASSERT_EQUAL(0, res);
+
+        dir[0].rewind();
+        sprintf((char *)buffer, "kitty%d", 0);
+#if (MBED_TEST_FILESYSTEM != FATFileSystem)
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, ".");
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, "..");
+        TEST_ASSERT_EQUAL(0, res);
+#endif
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, (char *)buffer);
+        TEST_ASSERT_EQUAL(0, res);
+
+        dir[0].seek(pos);
+        sprintf((char *)buffer, "kitty%d", i);
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, (char *)buffer);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_large_dir_seek()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].open(&fs, "hello");
+        TEST_ASSERT_EQUAL(0, res);
+#if (MBED_TEST_FILESYSTEM != FATFileSystem)
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, ".");
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, "..");
+        TEST_ASSERT_EQUAL(0, res);
+#endif
+
+        off_t pos;
+        int i;
+        for (i = 0; i < 128; i++) {
+            sprintf((char *)buffer, "kitty%d", i);
+            res = dir[0].read(&ent);
+            TEST_ASSERT_EQUAL(1, res);
+            res = strcmp(ent.d_name, (char *)buffer);
+            TEST_ASSERT_EQUAL(0, res);
+            pos = dir[0].tell();
+        }
+        res = pos >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+
+        dir[0].seek(pos);
+        sprintf((char *)buffer, "kitty%d", i);
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, (char *)buffer);
+        TEST_ASSERT_EQUAL(0, res);
+
+        dir[0].rewind();
+        sprintf((char *)buffer, "kitty%d", 0);
+#if (MBED_TEST_FILESYSTEM != FATFileSystem)
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, ".");
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, "..");
+        TEST_ASSERT_EQUAL(0, res);
+#endif
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, (char *)buffer);
+        TEST_ASSERT_EQUAL(0, res);
+
+        dir[0].seek(pos);
+        sprintf((char *)buffer, "kitty%d", i);
+        res = dir[0].read(&ent);
+        TEST_ASSERT_EQUAL(1, res);
+        res = strcmp(ent.d_name, (char *)buffer);
+        TEST_ASSERT_EQUAL(0, res);
+        res = dir[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_simple_file_seek()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size;
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "hello/kitty42", O_RDONLY);
+        TEST_ASSERT_EQUAL(0, res);
+
+        off_t pos;
+        size = strlen("kittycatcat");
+        for (int i = 0; i < 4; i++) {
+            res = file[0].read(buffer, size);
+            TEST_ASSERT_EQUAL(size, res);
+            res = memcmp(buffer, "kittycatcat", size);
+            TEST_ASSERT_EQUAL(0, res);
+            pos = file[0].tell();
+        }
+        res = pos >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+
+        file[0].rewind();
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(-size, SEEK_CUR);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(-size, SEEK_END) >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+
+        size = file[0].size();
+        res = file[0].seek(0, SEEK_CUR);
+        TEST_ASSERT_EQUAL(size, res);
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_large_file_seek()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size;
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "hello/kitty42", O_RDONLY);
+        TEST_ASSERT_EQUAL(0, res);
+
+        off_t pos;
+        size = strlen("kittycatcat");
+        for (int i = 0; i < 128; i++) {
+            res = file[0].read(buffer, size);
+            TEST_ASSERT_EQUAL(size, res);
+            res = memcmp(buffer, "kittycatcat", size);
+            TEST_ASSERT_EQUAL(0, res);
+            pos = file[0].tell();
+        }
+        res = pos >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+
+        file[0].rewind();
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(-size, SEEK_CUR);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(-size, SEEK_END) >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+
+        size = file[0].size();
+        res = file[0].seek(0, SEEK_CUR);
+        TEST_ASSERT_EQUAL(size, res);
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_simple_file_seek_and_write()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size;
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "hello/kitty42", O_RDWR);
+        TEST_ASSERT_EQUAL(0, res);
+
+        off_t pos;
+        size = strlen("kittycatcat");
+        for (int i = 0; i < 4; i++) {
+            res = file[0].read(buffer, size);
+            TEST_ASSERT_EQUAL(size, res);
+            res = memcmp(buffer, "kittycatcat", size);
+            TEST_ASSERT_EQUAL(0, res);
+            pos = file[0].tell();
+        }
+        res = pos >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+
+        memcpy(buffer, "doggodogdog", size);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].write(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "doggodogdog", size);
+        TEST_ASSERT_EQUAL(0, res);
+
+        file[0].rewind();
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "doggodogdog", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(-size, SEEK_END) >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+
+        size = file[0].size();
+        res = file[0].seek(0, SEEK_CUR);
+        TEST_ASSERT_EQUAL(size, res);
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_large_file_seek_and_write()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size;
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "hello/kitty42", O_RDWR);
+        TEST_ASSERT_EQUAL(0, res);
+
+        off_t pos;
+        size = strlen("kittycatcat");
+        for (int i = 0; i < 128; i++) {
+            res = file[0].read(buffer, size);
+            TEST_ASSERT_EQUAL(size, res);
+            if (i != 4) {
+                res = memcmp(buffer, "kittycatcat", size);
+                TEST_ASSERT_EQUAL(0, res);
+            }
+            pos = file[0].tell();
+        }
+        res = pos >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+
+        memcpy(buffer, "doggodogdog", size);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].write(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "doggodogdog", size);
+        TEST_ASSERT_EQUAL(0, res);
+
+        file[0].rewind();
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(pos, SEEK_SET);
+        TEST_ASSERT_EQUAL(pos, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "doggodogdog", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(-size, SEEK_END) >= 0;
+        TEST_ASSERT_EQUAL(1, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "kittycatcat", size);
+        TEST_ASSERT_EQUAL(0, res);
+
+        size = file[0].size();
+        res = file[0].seek(0, SEEK_CUR);
+        TEST_ASSERT_EQUAL(size, res);
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_boundary_seek_and_write()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size;
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "hello/kitty42", O_RDWR);
+        TEST_ASSERT_EQUAL(0, res);
+
+        size = strlen("hedgehoghog");
+        const off_t offsets[] = {512, 1020, 513, 1021, 511, 1019};
+
+        for (int i = 0; i < sizeof(offsets) / sizeof(offsets[0]); i++) {
+            off_t off = offsets[i];
+            memcpy(buffer, "hedgehoghog", size);
+            res = file[0].seek(off, SEEK_SET);
+            TEST_ASSERT_EQUAL(off, res);
+            res = file[0].write(buffer, size);
+            TEST_ASSERT_EQUAL(size, res);
+            res = file[0].seek(off, SEEK_SET);
+            TEST_ASSERT_EQUAL(off, res);
+            res = file[0].read(buffer, size);
+            TEST_ASSERT_EQUAL(size, res);
+            res = memcmp(buffer, "hedgehoghog", size);
+            TEST_ASSERT_EQUAL(0, res);
+            res = file[0].seek(0, SEEK_SET);
+            TEST_ASSERT_EQUAL(0, res);
+            res = file[0].read(buffer, size);
+            TEST_ASSERT_EQUAL(size, res);
+            res = memcmp(buffer, "kittycatcat", size);
+            TEST_ASSERT_EQUAL(0, res);
+            res = file[0].sync();
+            TEST_ASSERT_EQUAL(0, res);
+        }
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+void test_out_of_bounds_seek()
+{
+    int res = bd.init();
+    TEST_ASSERT_EQUAL(0, res);
+
+    {
+        size_t size;
+        res = fs.mount(&bd);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].open(&fs, "hello/kitty42", O_RDWR);
+        TEST_ASSERT_EQUAL(0, res);
+
+        size = strlen("kittycatcat");
+        res = file[0].size();
+        TEST_ASSERT_EQUAL(132 * size, res);
+        res = file[0].seek((132 + 4) * size,
+                           SEEK_SET);
+        TEST_ASSERT_EQUAL((132 + 4)*size, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(0, res);
+
+        memcpy(buffer, "porcupineee", size);
+        res = file[0].write(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = file[0].seek((132 + 4) * size,
+                           SEEK_SET);
+        TEST_ASSERT_EQUAL((132 + 4)*size, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+        res = memcmp(buffer, "porcupineee", size);
+        TEST_ASSERT_EQUAL(0, res);
+        res = file[0].seek(132 * size,
+                           SEEK_SET);
+        TEST_ASSERT_EQUAL(132 * size, res);
+        res = file[0].read(buffer, size);
+        TEST_ASSERT_EQUAL(size, res);
+#if (MBED_TEST_FILESYSTEM != FATFileSystem)
+        // FatFs does not guarantee empty expanded buffer
+        res = memcmp(buffer, "\0\0\0\0\0\0\0\0\0\0\0", size);
+        TEST_ASSERT_EQUAL(0, res);
+#endif
+        res = file[0].close();
+        TEST_ASSERT_EQUAL(0, res);
+        res = fs.unmount();
+        TEST_ASSERT_EQUAL(0, res);
+    }
+
+    res = bd.deinit();
+    TEST_ASSERT_EQUAL(0, res);
+}
+
+
+
+// test setup
+utest::v1::status_t test_setup(const size_t number_of_cases)
+{
+    GREENTEA_SETUP(MBED_TEST_TIMEOUT, "default_auto");
+    return verbose_test_setup_handler(number_of_cases);
+}
+
+Case cases[] = {
+    Case("Seek tests", test_seek_tests),
+    Case("Simple dir seek", test_simple_dir_seek),
+    Case("Large dir seek", test_large_dir_seek),
+    Case("Simple file seek", test_simple_file_seek),
+    Case("Large file seek", test_large_file_seek),
+    Case("Simple file seek and write", test_simple_file_seek_and_write),
+    Case("Large file seek and write", test_large_file_seek_and_write),
+    Case("Boundary seek and write", test_boundary_seek_and_write),
+    Case("Out-of-bounds seek", test_out_of_bounds_seek),
+};
+
+Specification specification(test_setup, cases);
+
+int main()
+{
+    return !Harness::run(specification);
+}
Binary file mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/TOOLCHAIN_ARM_STD/lib_RZ_A1H_sd_driver.ar has changed
Binary file mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/TOOLCHAIN_GCC_ARM/lib_RZ_A1H_sd_driver.a has changed
Binary file mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/TOOLCHAIN_IAR/lib_RZ_A1H_sd_driver.a has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/sd_cfg.h	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,371 @@
+/******************************************************************************
+*   DISCLAIMER
+*
+*   This software is supplied by Renesas Electronics Corporation and is only 
+*   intended for use with Renesas products. No other uses are authorized.
+*
+*   This software is owned by Renesas Electronics Corporation and is protected under 
+*   all applicable laws, including copyright laws.
+*
+*   THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES 
+*   REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, 
+*   INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
+*   PARTICULAR PURPOSE AND NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY 
+*   DISCLAIMED.
+*
+*   TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS 
+*   ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE 
+*   FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES 
+*   FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS
+*   AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+*
+*   Renesas reserves the right, without notice, to make changes to this 
+*   software and to discontinue the availability of this software.
+*   By using this software, you agree to the additional terms and 
+*   conditions found by accessing the following link: 
+*   http://www.renesas.com/disclaimer
+********************************************************************************
+* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. 
+**************************** Technical reference data **************************
+*   System Name : SD Driver Sample Program
+*   File Name   : sd_cfg.h
+*   Abstract    : SD Memory card driver configration
+*   Version     : 4.00.00
+*   Device      : Aragon
+*   Tool-Chain  : DS-5 Ver 5.13
+*                 ARM Complier 
+*   OS          : None
+*   H/W Platform: 
+*   Description : 
+********************************************************************************
+*   History     : 2013.05.30 Ver.4.00.00
+*******************************************************************************/
+#ifndef _SD_CFG_H_
+#define _SD_CFG_H_
+
+/* ------------------------------------------------------
+  Set SDHI Base Address
+--------------------------------------------------------*/
+#define SDCFG_IP0_BASE         0xE804E000
+#define SDCFG_IP1_BASE         0xE804E800
+
+/* ------------------------------------------------------
+  Set the method of check SD Status
+--------------------------------------------------------*/
+#define SDCFG_HWINT
+//#define SDCFG_POLL
+
+/* ------------------------------------------------------
+  Set the method of data transfer
+--------------------------------------------------------*/
+//#define SDCFG_TRNS_DMA
+#define SDCFG_TRNS_SW
+
+    #ifdef SDCFG_TRNS_DMA
+#define SDCFG_TRANS_DMA_64
+    #endif
+
+/* ------------------------------------------------------
+  Set the card type to support
+--------------------------------------------------------*/
+#define SDCFG_MEM
+//#define SDCFG_IO
+
+/* ------------------------------------------------------
+  Set the speed to support
+--------------------------------------------------------*/
+//#define SDCFG_DS
+#define SDCFG_HS
+
+/* ------------------------------------------------------
+  Set the version to support
+--------------------------------------------------------*/
+//#define SDCFG_VER1X            /* Version 1.1 */
+#define SDCFG_VER2X            /* Version 2.x */
+
+/* ------------------------------------------------------
+  Set the method to detect card
+--------------------------------------------------------*/
+//#define SDCFG_CD_INT
+
+#ifdef SDCFG_CD_INT
+    #ifndef SDCFG_HWINT
+        #error    please define SDCFG_HWINT
+    #endif
+#endif
+
+/* ------------------------------------------------------
+  Set the SD bus width
+--------------------------------------------------------*/
+//#define SDCFG_SDMODE_1BIT
+
+
+
+
+/* ==== end of the setting ==== */
+
+                                            #if    defined(SDCFG_SDMODE_1BIT)
+#if    defined(SDCFG_HWINT)
+    #if    defined(SDCFG_TRNS_DMA)
+        #if    defined(SDCFG_IO)
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #endif
+        #else
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #endif
+        #endif
+    #else
+        #if    defined(SDCFG_IO)
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #endif
+        #else
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #endif
+        #endif
+    #endif
+#else
+    #if    defined(SDCFG_TRNS_DMA)
+        #if    defined(SDCFG_IO)
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #endif
+        #else
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #endif
+        #endif
+    #else
+        #if    defined(SDCFG_IO)
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #endif
+        #else
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
+                #endif
+            #endif
+        #endif
+    #endif
+#endif    
+                                            #else
+#if    defined(SDCFG_HWINT)
+    #if    defined(SDCFG_TRNS_DMA)
+        #if    defined(SDCFG_IO)
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X)
+                #endif
+            #endif
+        #else
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X)
+                #endif
+            #endif
+        #endif
+    #else
+        #if    defined(SDCFG_IO)
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X)
+                #endif
+            #endif
+        #else
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X)
+                #endif
+            #endif
+        #endif
+    #endif
+#else
+    #if    defined(SDCFG_TRNS_DMA)
+        #if    defined(SDCFG_IO)
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X)
+                #endif
+            #endif
+        #else
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X)
+                #endif
+            #endif
+        #endif
+    #else
+        #if    defined(SDCFG_IO)
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X)
+                #endif
+            #endif
+        #else
+            #if    defined(SDCFG_HS)
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X)
+                #endif
+            #else
+                #if    defined(SDCFG_VER2X)
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X)
+                #else
+                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X)
+                #endif
+            #endif
+        #endif
+    #endif
+#endif    
+                                                #endif
+
+    #ifdef SDCFG_TRANS_DMA_64
+#define SDCFG_DRIVER_MODE    (SDCFG_DRIVER_MODE2 | SD_MODE_DMA_64)
+    #else
+#define SDCFG_DRIVER_MODE    SDCFG_DRIVER_MODE2
+    #endif
+
+
+#endif /* _SD_CFG_H_    */
+
+/* End of File */
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/sdhi_low.c	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,1113 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+*
+* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name    : sd_dev_low.c
+* $Rev: $
+* $Date::                           $
+* Device(s)    : RZ/A1H
+* Tool-Chain   : DS-5 Ver 5.8
+*              : ARM Complier
+* OS           : 
+* H/W Platform : RZ/A1H CPU Board
+* Description  : RZ/A1H SD Driver Sample Program
+* Operation    : 
+* Limitations  : 
+*******************************************************************************/
+
+
+/******************************************************************************
+Includes   <System Includes> , "Project Includes"
+******************************************************************************/
+#include <stdio.h>
+#include <string.h>
+#include "r_typedefs.h"
+#include "iodefine.h"
+#include "rza_io_regrw.h"
+/*#include "devdrv_intc.h"*/
+#include "sdif.h"
+#include "sd_cfg.h"
+/*#include "sd_dev_dmacdrv.h"*/
+#include "us_ticker_api.h"
+#include "cmsis_os2.h"
+#include "mbed_assert.h"
+#include "pinmap.h"
+
+
+/******************************************************************************
+Typedef definitions
+******************************************************************************/
+
+
+/******************************************************************************
+Macro definitions
+******************************************************************************/
+//#define MTU_TIMER_CNT      32    /* P-phy = 32MHz         */
+#define INT_LEVEL_SDHI     10    /* SDHI interrupt level  */
+#define SDHI_PINS_COMMON	2
+#define SDHI_PINS_SERIAL	3
+#define SDHI_PINS_PARALLEL	6
+
+#if defined(SDCFG_SDMODE_1BIT)
+# define SDHI_PORT_MODE	SD_PORT_SERIAL
+#else
+# define SDHI_PORT_MODE	SD_PORT_PARALLEL
+#endif
+
+/******************************************************************************
+Imported global variables and functions (from other files)
+******************************************************************************/
+
+
+/******************************************************************************
+Exported global variables and functions (to be accessed by other files)
+******************************************************************************/
+
+
+/******************************************************************************
+Private global variables and functions
+******************************************************************************/
+#if 0
+static uint8_t g_sdhi_priority_backup;
+#endif
+
+
+
+static const PinName SDHIpin_Common[SDHI_COUNT][SDHI_PINS_COMMON] = { /* WP & CD */
+#if defined(TARGET_VK_RZ_A1H)
+		{P4_8, P4_9},
+		{P3_8, P3_9}
+#elif defined(TARGET_VK_RZ_A1LU)
+		{P3_6, P3_7},
+		{P7_1, P7_0}
+#else
+ #error RZ_SDHI driver does not support this TARGET
+#endif
+};
+
+static const PinName SDHIpin_serial[SDHI_COUNT][SDHI_PINS_SERIAL] = { /* CLK CMD D0 */
+#if defined(TARGET_VK_RZ_A1H)
+		{P4_11, P4_12, P4_13},
+		{P3_11, P3_12, P3_13}
+#elif defined(TARGET_VK_RZ_A1LU)
+		{P3_3, P3_2, P3_4},
+		{P7_4, P7_5, P7_3}
+#else
+#error RZ_SDHI driver does not support this TARGET
+#endif
+};
+
+static const PinName SDHIpin_parallel[SDHI_COUNT][SDHI_PINS_PARALLEL] = { /* CLK CMD D0-D3 */
+#if defined(TARGET_VK_RZ_A1H)
+		{P4_10, P4_11, P4_12, P4_13, P4_14, P4_15},
+		{P3_10, P3_11, P3_12, P3_13, P3_14, P3_15}
+#elif defined(TARGET_VK_RZ_A1LU)
+		{P3_3, P3_2, P3_4, P3_5, P3_0, P3_1},
+		{P7_4, P7_5, P7_3, P7_2, P7_7, P7_6}
+#else
+#error RZ_SDHI driver does not support this TARGET
+#endif
+};
+
+
+static const PinMap PinMap_SDHI_PIN[] = {
+                /* pin | periph| func */
+#if defined(TARGET_VK_RZ_A1H)
+		{P4_8  , SDHI_0, 3}, 	/* SD_CD_0  */
+		{P4_9  , SDHI_0, 3},	/* SD_WP_0  */
+		{P4_10 , SDHI_0, 3},	/* SD_D1_0  */
+		{P4_11 , SDHI_0, 3},	/* SD_D0_0  */
+		{P4_12 , SDHI_0, 3},	/* SD_CLK_0 */
+		{P4_13 , SDHI_0, 3},	/* SD_CMD_0 */
+		{P4_14 , SDHI_0, 3},    /* SD_D3_0  */
+		{P4_15 , SDHI_0, 3},	/* SD_D2_0  */
+		/*----------------*/
+		{P3_8  , SDHI_1, 7},	/* SD_CD_1  */
+		{P3_9  , SDHI_1, 7},	/* SD_WP_1  */
+		{P3_10 , SDHI_1, 7},	/* SD_D1_1  */
+		{P3_11 , SDHI_1, 7},	/* SD_D0_1  */
+		{P3_12 , SDHI_1, 7},	/* SD_CLK_1 */
+		{P3_13 , SDHI_1, 7},	/* SD_CMD_1 */
+		{P3_14 , SDHI_1, 7},	/* SD_D3_1  */
+		{P3_15 , SDHI_1, 7},	/* SD_D2_1  */
+		{NC    , NC    , 0}
+#elif defined(TARGET_VK_RZ_A1LU)
+		//{P3_7  , SDHI_0, 2}, 	/* SD_CD_0  can be used if SDRAM is not soldered */
+		//{P3_6  , SDHI_0, 2},	/* SD_WP_0  can be used if SDRAM is not soldered */
+		//{P3_5  , SDHI_0, 2},	/* SD_D1_0  can be used if SDRAM is not soldered */
+		//{P3_4  , SDHI_0, 2},	/* SD_D0_0  can be used if SDRAM is not soldered */
+		//{P3_3  , SDHI_0, 2},	/* SD_CLK_0 can be used if SDRAM is not soldered */
+		//{P3_2  , SDHI_0, 2},	/* SD_CMD_0 can be used if SDRAM is not soldered */
+		//{P3_1  , SDHI_0, 2},  /* SD_D3_0  can be used if SDRAM is not soldered */
+		//{P3_0  , SDHI_0, 2},	/* SD_D2_0  can be used if SDRAM is not soldered */
+		/*----------------*/
+		{P7_0  , SDHI_1, 3},	/* SD_CD_1  */
+		{P7_1  , SDHI_1, 3},	/* SD_WP_1  */
+		{P7_2  , SDHI_1, 3},	/* SD_D1_1  */
+		{P7_3  , SDHI_1, 3},	/* SD_D0_1  */
+		{P7_4  , SDHI_1, 3},	/* SD_CLK_1 */
+		{P7_5  , SDHI_1, 3},	/* SD_CMD_1 */
+		{P7_6  , SDHI_1, 3},	/* SD_D3_1  */
+		{P7_7  , SDHI_1, 3},	/* SD_D2_1  */
+		{NC    , NC    , 0}
+#else
+#error RZ_SDHI driver does not support this TARGET
+#endif
+};
+
+
+
+static unsigned long _ulStart = 0;
+static unsigned long _ulDelta = 0;
+static const ticker_data_t *_ticker;
+
+//static int sddev_init_0(void);
+//static int sddev_init_1(void);
+//static int sddev_set_port_0(int mode);
+//static int sddev_set_port_1(int mode);
+
+static int sddev_init_dma_0(unsigned long buff,unsigned long reg,long cnt,int dir);
+static int sddev_init_dma_1(unsigned long buff,unsigned long reg,long cnt,int dir);
+
+static int sddev_wait_dma_end_0(long cnt);
+static int sddev_wait_dma_end_1(long cnt);
+
+static int sddev_disable_dma_0(void);
+static int sddev_disable_dma_1(void);
+
+static void sddev_sd_int_handler_0(uint32_t int_sense);
+static void sddev_sd_int_handler_1(uint32_t int_sense);
+static void sddev_sdio_int_handler_0(uint32_t int_sense);
+static void sddev_sdio_int_handler_1(uint32_t int_sense);
+static void sddev_start_timer(int msec);
+static void sddev_end_timer(void);
+static int  sddev_check_timer(void);
+
+/******************************************************************************
+* Function Name: int sddev_cmd0_sdio_mount(int sd_port);
+* Description  : Select to issue CMD0 before SDIO Mount
+* Arguments    : none
+* Return Value : SD_OK  : issue CMD0
+*              : SD_ERR : not issue CMD0
+******************************************************************************/
+int sddev_cmd0_sdio_mount(int sd_port)
+{
+#ifdef SDCFG_IO
+    return SD_ERR;
+#else
+    return SD_ERR;
+#endif
+}
+
+/******************************************************************************
+* Function Name: int sddev_cmd8_sdio_mount(int sd_port);
+* Description  : Select to issue CMD8 before SDIO Mount
+* Arguments    : none
+* Return Value : SD_OK  : issue CMD8
+*              : SD_ERR : not issue CMD8
+******************************************************************************/
+int sddev_cmd8_sdio_mount(int sd_port)
+{
+#ifdef SDCFG_IO
+    return SD_OK;
+#else
+    return SD_ERR;
+#endif
+}
+
+
+
+/******************************************************************************
+* Function Name: int sddev_init(void);
+* Description  : Initialize H/W to use SDHI
+* Arguments    : none
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_init(int sd_port)
+{
+	if ( sd_port >= SDHI_COUNT )
+		return SD_ERR;
+
+
+    volatile uint8_t dummy_buf;
+
+    CPG.STBCR12 = 0xF0u;        /* [1], [1], [1], [1], SDHI00, SDHI01, SDHI10, SDHI11           */
+    dummy_buf   = CPG.STBCR12;  /* (Dummy read)                                                 */
+
+
+    for( uint32_t no=0; no < SDHI_PINS_COMMON; no++ )
+    {
+    	if ( pinmap_peripheral(SDHIpin_Common[sd_port][no], PinMap_SDHI_PIN ) != sd_port)
+    	{
+    		return SD_ERR;
+    	}
+    	pinmap_pinout(SDHIpin_Common[sd_port][no], PinMap_SDHI_PIN);
+    }
+
+    sddev_set_port(sd_port, SDHI_PORT_MODE);
+
+#ifdef    SDCFG_HWINT
+	if ( sd_port == (uint32_t)SDHI_0 )
+	{
+	    InterruptHandlerRegister(SDHI0_0_IRQn, sddev_sd_int_handler_0);
+	    GIC_SetPriority(SDHI0_0_IRQn, INT_LEVEL_SDHI);
+	    GIC_EnableIRQ(SDHI0_0_IRQn);
+
+	    InterruptHandlerRegister(SDHI0_3_IRQn, sddev_sd_int_handler_0);
+	    GIC_SetPriority(SDHI0_3_IRQn, INT_LEVEL_SDHI);
+	    GIC_EnableIRQ(SDHI0_3_IRQn);
+
+	    InterruptHandlerRegister(SDHI0_1_IRQn, sddev_sdio_int_handler_0);
+	    GIC_SetPriority(SDHI0_1_IRQn, INT_LEVEL_SDHI);
+	    GIC_EnableIRQ(SDHI0_1_IRQn);
+	}
+	else if ( sd_port == (uint32_t)SDHI_1 )
+	{
+	    InterruptHandlerRegister(SDHI1_0_IRQn, sddev_sd_int_handler_1);
+	    GIC_SetPriority(SDHI1_0_IRQn, INT_LEVEL_SDHI);
+	    GIC_EnableIRQ(SDHI1_0_IRQn);
+
+	    InterruptHandlerRegister(SDHI1_3_IRQn, sddev_sd_int_handler_1);
+	    GIC_SetPriority(SDHI1_3_IRQn, INT_LEVEL_SDHI);
+	    GIC_EnableIRQ(SDHI1_3_IRQn);
+
+	    InterruptHandlerRegister(SDHI1_1_IRQn, sddev_sdio_int_handler_1);
+	    GIC_SetPriority(SDHI1_1_IRQn, INT_LEVEL_SDHI);
+	    GIC_EnableIRQ(SDHI1_1_IRQn);
+	}
+#endif
+
+    /* ---- wait card detect ---- */
+    osDelay(100);	/* wait 100ms */
+
+    return SD_OK;
+}
+
+
+/******************************************************************************
+* Function Name: int sddev_power_on(int sd_port);
+* Description  : Power-on H/W to use SDHI
+* Arguments    : none
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_power_on(int sd_port)
+{
+    /* ---Power On SD ---- */
+
+    /* ---- Wait for  SD Wake up ---- */
+	osDelay(100);            /* wait 100ms */
+
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: int sddev_power_off(int sd_port);
+* Description  : Power-off H/W to use SDHI
+* Arguments    : none
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_power_off(int sd_port)
+{
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: int sddev_read_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num);
+* Description  : read from SDHI buffer FIFO
+* Arguments    : unsigned char *buff    : buffer addrees to store reading datas
+*              : unsigned long reg_addr : SDIP FIFO address
+*              : long num               : counts to read(unit:byte)
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+#ifdef __CC_ARM
+ #pragma push
+ #pragma Ospace
+#elif defined(__ICCARM__)
+ #pragma optimize=size
+#elif (defined( __GNUC__ ) && !defined( __CC_ARM ))
+ #pragma GCC push_options
+ #pragma GCC optimize ("Os")
+#endif
+int sddev_read_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num)
+{
+    long i;
+    long cnt;
+    unsigned long *reg;
+    unsigned long *ptr_l;
+    unsigned char *ptr_c;
+    unsigned long tmp;
+
+    reg = (unsigned long *)(reg_addr);
+
+    cnt = (num / 4);
+    if(((unsigned long)buff & 0x3) != 0)
+    {
+        ptr_c = (unsigned char *)buff;
+        for(i = cnt; i > 0 ; i--)
+        {
+            tmp = *reg;
+            *ptr_c++ = (unsigned char)(tmp);
+            *ptr_c++ = (unsigned char)(tmp >> 8);
+            *ptr_c++ = (unsigned char)(tmp >> 16);
+            *ptr_c++ = (unsigned char)(tmp >> 24);
+        }
+
+        cnt = (num % 4);
+        if( cnt != 0 )
+        {
+            tmp = *reg;
+            for(i = cnt; i > 0 ; i--)
+            {
+                *ptr_c++ = (unsigned char)(tmp);
+                tmp >>= 8;
+            }
+        }
+    }
+    else
+    {
+        ptr_l = (unsigned long *)buff;
+        for(i = cnt; i > 0 ; i--)
+        {
+            *ptr_l++ = *reg;
+        }
+
+        cnt = (num % 4);
+        if( cnt != 0 )
+        {
+            ptr_c = (unsigned char *)ptr_l;
+            tmp = *reg;
+            for(i = cnt; i > 0 ; i--)
+            {
+                *ptr_c++ = (unsigned char)(tmp);
+                tmp >>= 8;
+            }
+        }
+    }
+
+    return SD_OK;
+}
+#ifdef __CC_ARM
+ #pragma pop
+#elif (defined( __GNUC__ ) && !defined( __CC_ARM ))
+ #pragma GCC pop_options
+#endif
+
+/******************************************************************************
+* Function Name: int sddev_write_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num);
+* Description  : write to SDHI buffer FIFO
+* Arguments    : unsigned char *buff    : buffer addrees to store writting datas
+*              : unsigned long reg_addr : SDIP FIFO address
+*              : long num               : counts to write(unit:byte)
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_write_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num)
+{
+    long i;
+    unsigned long *reg = (unsigned long *)(reg_addr);
+    unsigned long *ptr = (unsigned long *)buff;
+    unsigned long tmp;
+
+    /* dont care non 4byte allignment data */
+    num += 3;
+    num /= 4;
+    if(((unsigned long)buff & 0x3) != 0)
+    {
+        for(i = num; i > 0 ; i--)
+        {
+            tmp  = *buff++ ;
+            tmp |= *buff++ << 8;
+            tmp |= *buff++ << 16;
+            tmp |= *buff++ << 24;
+            *reg = tmp;
+        }
+    }
+    else
+    {
+        for(i = num; i > 0 ; i--)
+        {
+            *reg = *ptr++;
+        }
+    }
+
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: unsigned int sddev_get_clockdiv(int sd_port, int clock);
+* Description  : write to SDHI buffer FIFO
+* Arguments    : int clock : request clock frequency
+*              :   SD_CLK_50MHz
+*              :   SD_CLK_25MHz
+*              :   SD_CLK_20MHz
+*              :   SD_CLK_10MHz
+*              :   SD_CLK_5MHz
+*              :   SD_CLK_1MHz
+*              :   SD_CLK_400kHz
+* Return Value : clock div value
+*              :   SD_DIV_2 : 1/2   clock
+*              :   SD_DIV_2 : 1/4   clock
+*              :   SD_DIV_2 : 1/8   clock
+*              :   SD_DIV_2 : 1/16  clock
+*              :   SD_DIV_2 : 1/128 clock
+*              :   SD_DIV_2 : 1/256 clock
+******************************************************************************/
+unsigned int sddev_get_clockdiv(int sd_port, int clock)
+{
+    unsigned int div;
+
+    switch(clock)
+    {
+    case SD_CLK_50MHz:
+        div = SD_DIV_2;        /* 64MHz/2 = 32MHz */
+        break;
+    case SD_CLK_25MHz:
+        div = SD_DIV_4;        /* 64MHz/4 = 16MHz */
+        break;
+    case SD_CLK_20MHz:
+        div = SD_DIV_4;        /* 64MHz/4 = 16MHz */
+        break;
+    case SD_CLK_10MHz:
+        div = SD_DIV_8;        /* 64MHz/8 = 8MHz */
+        break;
+    case SD_CLK_5MHz:
+        div = SD_DIV_16;       /* 64MHz/16 = 4MHz */
+        break;
+    case SD_CLK_1MHz:
+        div = SD_DIV_128;      /* 64MHz/128 = 512kHz */
+        break;
+    case SD_CLK_400kHz:
+        div = SD_DIV_256;      /* 64MHz/256 = 256kHz */
+        break;
+    default:
+        div = SD_DIV_256;
+        break;
+    }
+
+    return div;
+}
+
+/******************************************************************************
+* Function Name: int sddev_set_port(int sd_port, int mode);
+* Description  : setting ports to use MMCHI
+* Arguments    : int mode : SD_PORT_PARALLEL : 4bit mode
+*                         : SD_PORT_SERIAL   : 1bit mode
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_set_port(int sd_port, int mode)
+{
+	if ( sd_port >= SDHI_COUNT)
+		return SD_ERR;
+
+    if(mode == SD_PORT_SERIAL)
+    {
+        for( uint32_t no=0; no < SDHI_PINS_SERIAL; no++ )
+        {
+        	if ( pinmap_peripheral(SDHIpin_serial[sd_port][no], PinMap_SDHI_PIN ) != sd_port)
+        	{
+        		return SD_ERR;
+        	}
+        	pinmap_pinout(SDHIpin_serial[sd_port][no], PinMap_SDHI_PIN);
+        }
+    }
+    else if( mode == SD_PORT_PARALLEL )
+    {
+        for( uint32_t no=0; no < SDHI_PINS_PARALLEL; no++ )
+        {
+        	if ( pinmap_peripheral(SDHIpin_parallel[sd_port][no], PinMap_SDHI_PIN ) != sd_port)
+        	{
+        		return SD_ERR;
+        	}
+        	pinmap_pinout(SDHIpin_parallel[sd_port][no], PinMap_SDHI_PIN);
+        }
+    }
+    else
+    {
+    	return SD_ERR;
+    }
+
+    return SD_OK;
+}
+
+
+/******************************************************************************
+* Function Name: int sddev_int_wait(int sd_port, int time);
+* Description  : Waitting for SDHI Interrupt
+* Arguments    : int time : time out value to wait interrupt
+* Return Value : get interrupt : SD_OK
+*              : time out      : SD_ERR
+******************************************************************************/
+int sddev_int_wait(int sd_port, int time)
+{
+    sddev_start_timer(time);
+    while( sddev_check_timer() == SD_OK )
+    {
+        /* interrupt generated? */
+        if(sd_check_int(sd_port) == SD_OK)
+        {
+            sddev_end_timer();
+            return SD_OK;
+        }
+    }
+
+    sddev_end_timer();
+
+    return SD_ERR;
+}
+
+/******************************************************************************
+* Function Name: int sddev_init_dma(unsigned long buff,unsigned long reg,long cnt,int dir);
+* Description  : Initialize DMAC to transfer data from SDHI FIFO
+* Arguments    : unsigned long buff : buffer addrees to transfer datas
+*              : unsigned long reg  : SDIP FIFO address
+*              : long cnt           : counts to transfer(unit:byte)
+*              : int dir            : direction to transfer
+*              :                    :   0 : FIFO -> buffer
+*              :                    :   1 : buffer -> FIFO
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_init_dma(int sd_port, unsigned long buff,unsigned long reg,long cnt,int dir)
+{
+    int ret;
+
+    if( sd_port == 0 )
+    {
+        ret = sddev_init_dma_0(buff, reg, cnt, dir);
+    }
+    else if( sd_port == 1 )
+    {
+        ret = sddev_init_dma_1(buff, reg, cnt, dir);
+    }
+
+    return ret;
+}
+
+/******************************************************************************
+* Function Name: static int sddev_init_dma_0(unsigned long buff,unsigned long reg,long cnt,int dir);
+* Description  : Initialize DMAC to transfer data from SDHI FIFO
+* Arguments    : unsigned long buff : buffer addrees to transfer datas
+*              : unsigned long reg  : SDIP FIFO address
+*              : long cnt           : counts to transfer(unit:byte)
+*              : int dir            : direction to transfer
+*              :                    :   0 : FIFO -> buffer
+*              :                    :   1 : buffer -> FIFO
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+static int sddev_init_dma_0(unsigned long buff,unsigned long reg,long cnt,int dir)
+{
+#ifdef    SDCFG_TRNS_DMA
+    dmac_transinfo_t    trans_info;
+    uint32_t            request_factor;
+    int32_t             ret;
+
+    trans_info.count     = (uint32_t)cnt;
+    #ifdef SDCFG_TRANS_DMA_64
+    if( (cnt % 64) != 0 )
+    {
+        trans_info.src_size  = DMAC_TRANS_SIZE_32;
+        trans_info.dst_size  = DMAC_TRANS_SIZE_32;
+        if( reg & 0x0000003f )
+        {
+            trans_info.src_size  = DMAC_TRANS_SIZE_32;
+            trans_info.dst_size  = DMAC_TRANS_SIZE_32;
+        }
+    }
+    else
+    {
+        trans_info.src_size  = DMAC_TRANS_SIZE_512;
+        trans_info.dst_size  = DMAC_TRANS_SIZE_512;
+    }
+    #else
+    trans_info.src_size  = DMAC_TRANS_SIZE_32;
+    trans_info.dst_size  = DMAC_TRANS_SIZE_32;
+    #endif
+
+    if( dir == 0 )
+    {
+        request_factor       = DMAC_REQ_SDHI_0_RX;
+        trans_info.src_addr  = (uint32_t)reg;
+        trans_info.dst_addr  = (uint32_t)buff;
+        trans_info.saddr_dir = DMAC_TRANS_ADR_NO_INC;
+        trans_info.daddr_dir = DMAC_TRANS_ADR_INC;
+    }
+    else if( dir == 1 )
+    {
+        request_factor       = DMAC_REQ_SDHI_0_TX;
+        trans_info.src_addr  = (uint32_t)buff;
+        trans_info.dst_addr  = (uint32_t)reg;
+        trans_info.saddr_dir = DMAC_TRANS_ADR_INC;
+        trans_info.daddr_dir = DMAC_TRANS_ADR_NO_INC;
+    }
+
+    sd_DMAC1_PeriReqInit(    (const dmac_transinfo_t *)&trans_info,
+                            DMAC_MODE_REGISTER,
+                            DMAC_SAMPLE_SINGLE,
+                            request_factor,
+                            0    );        /* Dont care DMAC_REQ_REQD is setting in usb0_host_DMAC1_PeriReqInit() */
+
+    ret = sd_DMAC1_Open(DMAC_REQ_MODE_PERI);
+    if( ret != 0 )
+    {
+        printf("DMAC1 Open error!!\n");
+        return SD_ERR;
+    }
+#endif
+
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: static int sddev_init_dma_1(unsigned long buff,unsigned long reg,long cnt,int dir);
+* Description  : Initialize DMAC to transfer data from SDHI FIFO
+* Arguments    : unsigned long buff : buffer address to transfer datas
+*              : unsigned long reg  : SDIP FIFO address
+*              : long cnt           : counts to transfer(unit:byte)
+*              : int dir            : direction to transfer
+*              :                    :   0 : FIFO -> buffer
+*              :                    :   1 : buffer -> FIFO
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+static int sddev_init_dma_1(unsigned long buff,unsigned long reg,long cnt,int dir)
+{
+#ifdef    SDCFG_TRNS_DMA
+    dmac_transinfo_t    trans_info;
+    uint32_t            request_factor;
+    int32_t             ret;
+
+    trans_info.count     = (uint32_t)cnt;
+    #ifdef SDCFG_TRANS_DMA_64
+    if( (cnt % 64) != 0 )
+    {
+        trans_info.src_size  = DMAC_TRANS_SIZE_32;
+        trans_info.dst_size  = DMAC_TRANS_SIZE_32;
+        if( reg & 0x0000003f )
+        {
+            trans_info.src_size  = DMAC_TRANS_SIZE_32;
+            trans_info.dst_size  = DMAC_TRANS_SIZE_32;
+        }
+    }
+    else
+    {
+        trans_info.src_size  = DMAC_TRANS_SIZE_512;
+        trans_info.dst_size  = DMAC_TRANS_SIZE_512;
+    }
+    #else
+    trans_info.src_size  = DMAC_TRANS_SIZE_32;
+    trans_info.dst_size  = DMAC_TRANS_SIZE_32;
+    #endif
+
+    if( dir == 0 )
+    {
+        request_factor       = DMAC_REQ_SDHI_1_RX;
+        trans_info.src_addr  = (uint32_t)reg;
+        trans_info.dst_addr  = (uint32_t)buff;
+        trans_info.saddr_dir = DMAC_TRANS_ADR_NO_INC;
+        trans_info.daddr_dir = DMAC_TRANS_ADR_INC;
+    }
+    else if( dir == 1 )
+    {
+        request_factor       = DMAC_REQ_SDHI_1_TX;
+        trans_info.src_addr  = (uint32_t)buff;
+        trans_info.dst_addr  = (uint32_t)reg;
+        trans_info.saddr_dir = DMAC_TRANS_ADR_INC;
+        trans_info.daddr_dir = DMAC_TRANS_ADR_NO_INC;
+    }
+
+    sd_DMAC2_PeriReqInit(    (const dmac_transinfo_t *)&trans_info,
+                            DMAC_MODE_REGISTER,
+                            DMAC_SAMPLE_SINGLE,
+                            request_factor,
+                            0    );        /* Dont care DMAC_REQ_REQD is setting in usb0_host_DMAC1_PeriReqInit() */
+
+    ret = sd_DMAC2_Open(DMAC_REQ_MODE_PERI);
+    if( ret != 0 )
+    {
+        printf("DMAC1 Open error!!\n");
+        return SD_ERR;
+    }
+#endif
+
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: int sddev_wait_dma_end(int sd_port, long cnt);
+* Description  : Wait to complete DMAC transfer
+* Arguments    : long cnt           : counts to transfer(unit:byte)
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_wait_dma_end(int sd_port, long cnt)
+{
+    int ret;
+
+    if( sd_port == 0 )
+    {
+        ret = sddev_wait_dma_end_0(cnt);
+    }
+    else if( sd_port == 1 )
+    {
+        ret = sddev_wait_dma_end_1(cnt);
+    }
+
+    return ret;
+}
+
+/******************************************************************************
+* Function Name: static int sddev_wait_dma_end_0(long cnt);
+* Description  : Wait to complete DMAC transfer
+* Arguments    : long cnt           : counts to transfer(unit:byte)
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+static int sddev_wait_dma_end_0(long cnt)
+{
+#ifdef    SDCFG_TRNS_DMA
+    int loop;
+    int time;
+
+    time = (cnt / 512);
+    time = ((time * 1000) / 1024);
+    if(time < 1000)
+    {
+        time = 1000;
+    }
+
+    if(time > (0x0000ffff / MTU_TIMER_CNT))
+    {
+        /* @1000ms */
+        loop = (time / 1000);
+        if( (time % 1000) != 0 )
+        {
+            loop++;
+        }
+        time = 1000;
+    }
+    else
+    {
+        loop = 1;
+    }
+
+    do{
+        sddev_start_timer(time);
+
+        while(1)
+        {
+            /* get end flag? */
+            if( sd_DMAC1_Get_Endflag() == 1 )
+            {
+                sddev_end_timer();
+                return SD_OK;
+            }
+            /* detect timeout? */
+            if(sddev_check_timer() == SD_ERR)
+            {
+                break;
+            }
+        }
+
+        loop--;
+        if( loop <= 0 )
+        {
+            break;
+        }
+
+    } while(1);
+
+    sddev_end_timer();
+
+    return SD_ERR;
+#else
+    return SD_OK;
+
+#endif
+}
+
+/******************************************************************************
+* Function Name: static int sddev_wait_dma_end_1(long cnt);
+* Description  : Wait to complete DMAC transfer
+* Arguments    : long cnt           : counts to transfer(unit:byte)
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+static int sddev_wait_dma_end_1(long cnt)
+{
+#ifdef    SDCFG_TRNS_DMA
+    int loop;
+    int time;
+
+    time = (cnt / 512);
+    time = ((time * 1000) / 1024);
+    if(time < 1000)
+    {
+        time = 1000;
+    }
+
+    if(time > (0x0000ffff / MTU_TIMER_CNT))
+    {
+        /* @1000ms */
+        loop = (time / 1000);
+        if( (time % 1000) != 0 )
+        {
+            loop++;
+        }
+        time = 1000;
+    }
+    else
+    {
+        loop = 1;
+    }
+
+    do{
+        sddev_start_timer(time);
+
+        while(1)
+        {
+            /* get end flag? */
+            if( sd_DMAC2_Get_Endflag() == 1 )
+            {
+                sddev_end_timer();
+                return SD_OK;
+            }
+            /* detect timeout? */
+            if(sddev_check_timer() == SD_ERR)
+            {
+                break;
+            }
+        }
+
+        loop--;
+        if( loop <= 0 )
+        {
+            break;
+        }
+
+    } while(1);
+
+    sddev_end_timer();
+
+    return SD_ERR;
+#else
+    return SD_OK;
+
+#endif
+}
+
+/******************************************************************************
+* Function Name: int sddev_disable_dma(int sd_port);
+* Description  : Disable DMAC transfer
+* Arguments    : none
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_disable_dma(int sd_port)
+{
+    int ret;
+
+    if( sd_port == 0 )
+    {
+        ret = sddev_disable_dma_0();
+    }
+    else
+    {
+        ret = sddev_disable_dma_1();
+    }
+    return ret;
+}
+
+/******************************************************************************
+* Function Name: static int sddev_disable_dma_0(void);
+* Description  : Disable DMAC transfer
+* Arguments    : none
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+static int sddev_disable_dma_0(void)
+{
+#ifdef    SDCFG_TRNS_DMA
+    uint32_t    remain;
+
+    sd_DMAC1_Close(&remain);
+#endif
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: staticint sddev_disable_dma_1(void);
+* Description  : Disable DMAC transfer
+* Arguments    : none
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+static int sddev_disable_dma_1(void)
+{
+#ifdef    SDCFG_TRNS_DMA
+    uint32_t    remain;
+
+    sd_DMAC2_Close(&remain);
+#endif
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: int sddev_loc_cpu(int sd_port);
+* Description  : lock cpu to disable interrupt
+* Arguments    : none
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_loc_cpu(int sd_port)
+{
+#if 0
+    R_INTC_GetMaskLevel(&g_sdhi_priority_backup);
+    R_INTC_SetMaskLevel(0);
+    core_util_critical_section_enter();
+#endif
+
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: int sddev_unl_cpu(int sd_port);
+* Description  : unlock cpu to enable interrupt
+* Arguments    : none
+* Return Value : success : SD_OK
+*              : fail    : SD_ERR
+******************************************************************************/
+int sddev_unl_cpu(int sd_port)
+{
+#if 0
+    R_INTC_SetMaskLevel(g_sdhi_priority_backup);
+    core_util_critical_section_exit();
+#endif
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: int sddev_finalize(int sd_port);
+* Description  : finalize SDHI
+* Arguments    : none
+* Return Value : none
+******************************************************************************/
+int sddev_finalize(int sd_port)
+{
+    return SD_OK;
+}
+
+/******************************************************************************
+* Function Name: static void sddev_sd_int_handler_0(uint32_t int_sense);
+* Description  : Setting Interrupt function for SDHI(INTC_ID_SDHI0_0,INTC_ID_SDHI0_3)
+* Arguments    : Interrupt mode
+* Return Value : none
+******************************************************************************/
+static void sddev_sd_int_handler_0(uint32_t int_sense)
+{
+    sd_int_handler(0);
+}
+
+/******************************************************************************
+* Function Name: static void sddev_sd_int_handler_1(uint32_t int_sense);
+* Description  : Setting Interrupt function for SDHI(INTC_ID_SDHI0_0,INTC_ID_SDHI0_3)
+* Arguments    : Interrupt mode
+* Return Value : none
+******************************************************************************/
+static void sddev_sd_int_handler_1(uint32_t int_sense)
+{
+    sd_int_handler(1);
+}
+
+/******************************************************************************
+* Function Name: static void sddev_sdio_int_handler_0(uint32_t int_sense);
+* Description  : Setting Interrupt function for SDHI(INTC_ID_SDHI0_1)
+* Arguments    : Interrupt mode
+* Return Value : none
+******************************************************************************/
+static void sddev_sdio_int_handler_0(uint32_t int_sense)
+{
+    sdio_int_handler(0);
+}
+
+/******************************************************************************
+* Function Name: static void sddev_sdio_int_handler_1(uint32_t int_sense);
+* Description  : Setting Interrupt function for SDHI(INTC_ID_SDHI1_1)
+* Arguments    : Interrupt mode
+* Return Value : none
+******************************************************************************/
+static void sddev_sdio_int_handler_1(uint32_t int_sense)
+{
+    sdio_int_handler(1);
+}
+
+/******************************************************************************
+* Function Name: static void sddev_start_timer(int msec);
+* Description  : start timer
+* Arguments    : 
+* Return Value : none
+******************************************************************************/
+static void sddev_start_timer(int msec)
+{
+	_ticker = get_us_ticker_data();
+    _ulStart = ticker_read(_ticker);
+    _ulDelta = msec*1000ul;
+}
+
+/******************************************************************************
+* Function Name: static void sddev_end_timer(void);
+* Description  : end timer
+* Arguments    : 
+* Return Value : none
+******************************************************************************/
+static void sddev_end_timer(void)
+{
+    _ulStart = 0ul;
+    _ulDelta = 0ul;
+}
+
+/******************************************************************************
+* Function Name: static int sddev_check_timer(void);
+* Description  : check
+* Arguments    : 
+* Return Value : t
+******************************************************************************/
+static int sddev_check_timer(void)
+{
+	if ( _ulStart && _ulDelta )
+	{
+		return ((ticker_read(_ticker)-_ulStart) < _ulDelta) ? SD_OK : SD_ERR;
+	}
+	else
+	{
+		return SD_ERR;
+	}
+}
+
+/* End of File */
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/driver/sdif.h	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,329 @@
+/******************************************************************************
+*   DISCLAIMER
+*
+*   This software is supplied by Renesas Electronics Corporation and is only 
+*   intended for use with Renesas products. No other uses are authorized.
+*
+*   This software is owned by Renesas Electronics Corporation and is protected under 
+*   all applicable laws, including copyright laws.
+*
+*   THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES 
+*   REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, 
+*   INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
+*   PARTICULAR PURPOSE AND NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY 
+*   DISCLAIMED.
+*
+*   TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS 
+*   ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE 
+*   FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES 
+*   FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS
+*   AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+*
+*   Renesas reserves the right, without notice, to make changes to this 
+*   software and to discontinue the availability of this software.
+*   By using this software, you agree to the additional terms and 
+*   conditions found by accessing the following link: 
+*   http://www.renesas.com/disclaimer
+********************************************************************************
+* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. 
+**************************** Technical reference data **************************
+*   System Name : SD Driver Sample Program
+*   File Name   : sdif.h
+*   Abstract    : SD Memory card driver configration
+*   Version     : 4.00.00
+*   Device      : Aragon
+*   Tool-Chain  : DS-5 Ver 5.13
+*                 ARM Complier 
+*   OS          : None
+*   H/W Platform: 
+*   Description : 
+********************************************************************************
+*   History     : 2013.07.12 Ver.4.00.00
+*******************************************************************************/
+#ifndef _SDDRV_H_
+#define _SDDRV_H_
+
+#ifdef    __cplusplus
+extern "C" {
+#endif    /* __cplusplus    */
+
+/* ==== define  ==== */
+/* ---- SD Driver work buffer ---- */
+#define SD_SIZE_OF_INIT           800
+
+/* ---- error code ---- */
+#define SD_OK_LOCKED_CARD         1                  /* OK but card is locked status */
+#define SD_OK                     0                  /* OK */
+#define SD_ERR                    -1                 /* general error */
+#define SD_ERR_WP                 -2                 /* write protect error */
+#define SD_ERR_RO                 -3                 /* read only error */
+#define SD_ERR_RES_TOE            -4                 /* response time out error */
+#define SD_ERR_CARD_TOE           -5                 /* card time out error */
+#define SD_ERR_END_BIT            -6                 /* end bit error */
+#define SD_ERR_CRC                -7                 /* CRC error */
+#define SD_ERR_CARD_RES           -8                 /* card response error */
+#define SD_ERR_HOST_TOE           -9                 /* host time out error */
+#define SD_ERR_CARD_ERASE         -10                /* card erase error */
+#define SD_ERR_CARD_LOCK          -11                /* card lock error */
+#define SD_ERR_CARD_UNLOCK        -12                /* card unlock error */
+#define SD_ERR_HOST_CRC           -13                /* host CRC error */
+#define SD_ERR_CARD_ECC           -14                /* card internal ECC error */
+#define SD_ERR_CARD_CC            -15                /* card internal error */
+#define SD_ERR_CARD_ERROR         -16                /* unknown card error */
+#define SD_ERR_CARD_TYPE          -17                /* non support card type */
+#define SD_ERR_NO_CARD            -18                /* no card */
+#define SD_ERR_ILL_READ           -19                /* illegal buffer read */
+#define SD_ERR_ILL_WRITE          -20                /* illegal buffer write */
+#define SD_ERR_AKE_SEQ            -21                /* the sequence of authentication process */
+#define SD_ERR_OVERWRITE          -22                /* CID/CSD overwrite error */
+/* 23-29 */
+#define SD_ERR_CPU_IF             -30                /* target CPU interface function error  */
+#define SD_ERR_STOP               -31                /* user stop */
+/* 32-49 */
+#define SD_ERR_CSD_VER            -50                /* CSD register version error */
+#define SD_ERR_SCR_VER            -51                /* SCR register version error */
+#define SD_ERR_FILE_FORMAT        -52                /* CSD register file format error  */
+#define SD_ERR_NOTSUP_CMD         -53                /* not supported command  */
+/* 54-59 */
+#define SD_ERR_ILL_FUNC           -60                /* invalid function request error */
+#define SD_ERR_IO_VERIFY          -61                /* direct write verify error */
+#define SD_ERR_IO_CAPAB           -62                /* IO capability error */
+/* 63-69 */
+#define SD_ERR_IFCOND_VER         -70                /* Interface condition version error */
+#define SD_ERR_IFCOND_VOLT        -71                /* Interface condition voltage error */
+#define SD_ERR_IFCOND_ECHO        -72                /* Interface condition echo back pattern error */
+/* 73-79 */
+#define SD_ERR_OUT_OF_RANGE       -80                /* the argument was out of range */
+#define SD_ERR_ADDRESS_ERROR      -81                /* misassigned address */
+#define SD_ERR_BLOCK_LEN_ERROR    -82                /* transfered block length is not allowed */
+#define SD_ERR_ILLEGAL_COMMAND    -83                /* Command not legal  */
+#define SD_ERR_RESERVED_ERROR18   -84                /* Reserved bit 18 Error */
+#define SD_ERR_RESERVED_ERROR17   -85                /* Reserved bit 17 Error */
+#define SD_ERR_CMD_ERROR          -86                /* SD_INFO2 bit  0 CMD error */
+#define SD_ERR_CBSY_ERROR         -87                /* SD_INFO2 bit 14 CMD Type Reg Busy error */
+#define SD_ERR_NO_RESP_ERROR      -88                /* SD_INFO1 bit  0 No Response error */
+/* 89 */
+/* 90-95 */
+#define SD_ERR_ERROR              -96                /* SDIO ERROR */
+#define SD_ERR_FUNCTION_NUMBER    -97                /* SDIO FUNCTION NUMBER ERROR */
+#define SD_ERR_COM_CRC_ERROR      -98                /* SDIO CRC ERROR */
+#define SD_ERR_INTERNAL           -99                /* driver software internal error */
+
+/* ---- driver mode ---- */
+#define SD_MODE_POLL              0x0000ul           /* status check mode is software polling */
+#define SD_MODE_HWINT             0x0001ul           /* status check mode is hardware interrupt */
+#define SD_MODE_SW                0x0000ul           /* data transfer mode is software */
+#define SD_MODE_DMA               0x0002ul           /* data transfer mode is DMA */
+#define SD_MODE_DMA_64            0x0004ul           /* data transfer mode is DMA with 64 byte burst mode */
+
+/* ---- support mode ---- */
+#define SD_MODE_MEM               0x0000ul           /* memory cards only are supported */
+#define SD_MODE_IO                0x0010ul           /* memory and io cards are supported */
+#define SD_MODE_COMBO             0x0030ul           /* memory ,io and combo cards are supported */
+#define SD_MODE_DS                0x0000ul           /* only default speed mode is supported */
+#define SD_MODE_HS                0x0040ul           /* high speed mode is also supported */
+#define SD_MODE_VER1X             0x0000ul           /* ver1.1 host */
+#define SD_MODE_VER2X             0x0080ul           /* ver2.x host (high capacity and dual voltage) */
+#define SD_MODE_1BIT              0x0100ul           /* SD Mode 1bit only is supported */
+#define SD_MODE_4BIT              0x0000ul           /* SD Mode 1bit and 4bit is supported */
+
+/* ---- media voltage ---- */
+#define SD_VOLT_1_7               0x00000010ul       /* low voltage card minimum */
+#define SD_VOLT_1_8               0x00000020ul
+#define SD_VOLT_1_9               0x00000040ul
+#define SD_VOLT_2_0               0x00000080ul
+#define SD_VOLT_2_1               0x00000100ul       /* basic communication minimum */
+#define SD_VOLT_2_2               0x00000200ul
+#define SD_VOLT_2_3               0x00000400ul
+#define SD_VOLT_2_4               0x00000800ul
+#define SD_VOLT_2_5               0x00001000ul
+#define SD_VOLT_2_6               0x00002000ul
+#define SD_VOLT_2_7               0x00004000ul
+#define SD_VOLT_2_8               0x00008000ul       /* memory access minimum */
+#define SD_VOLT_2_9               0x00010000ul
+#define SD_VOLT_3_0               0x00020000ul
+#define SD_VOLT_3_1               0x00040000ul
+#define SD_VOLT_3_2               0x00080000ul
+#define SD_VOLT_3_3               0x00100000ul
+#define SD_VOLT_3_4               0x00200000ul
+#define SD_VOLT_3_5               0x00400000ul
+#define SD_VOLT_3_6               0x00800000ul
+
+/* ---- memory card write mode ---- */
+#define SD_WRITE_WITH_PREERASE    0x0000u            /* pre-erease write */
+#define SD_WRITE_OVERWRITE        0x0001u            /* overwrite  */
+
+/* ---- io register write mode ---- */
+#define SD_IO_SIMPLE_WRITE        0x0000u            /* just write */
+#define SD_IO_VERIFY_WRITE        0x0001u            /* read after write */
+
+/* ---- io operation code ---- */
+#define SD_IO_FIXED_ADDR          0x0000u            /* R/W fixed address */
+#define SD_IO_INCREMENT_ADDR      0x0001u            /* R/W increment address */
+#define SD_IO_FORCE_BYTE          0x0010u            /* byte access only  */
+
+ /* ---- media type ---- */
+#define SD_MEDIA_UNKNOWN          0x0000u            /* unknown media */
+#define SD_MEDIA_MMC              0x0010u            /* MMC card */
+#define SD_MEDIA_SD               0x0020u            /* SD Memory card */
+#define SD_MEDIA_IO               0x0001u            /* SD IO card */
+#define SD_MEDIA_MEM              0x0030u            /* Memory card */
+#define SD_MEDIA_COMBO            0x0021u            /* SD COMBO card */
+#define SD_MEDIA_EMBEDDED         0x8000u            /* embedded media */
+
+/* ---- write protect info --- */
+#define SD_WP_OFF                 0x0000u            /* card is not write protect */
+#define SD_WP_HW                  0x0001u            /* card is H/W write protect */
+#define SD_WP_TEMP                0x0002u            /* card is TEMP_WRITE_PROTECT */
+#define SD_WP_PERM                0x0004u            /* card is PERM_WRITE_PROTECT */
+#define SD_WP_ROM                 0x0010u            /* card is SD-ROM */
+
+/* ---- SD clock div ---- */    /* IMCLK is host controller clock */
+#define SD_DIV_512                0x0080u            /* SDCLOCK = IMCLK/512 */
+#define SD_DIV_256                0x0040u            /* SDCLOCK = IMCLK/256 */
+#define SD_DIV_128                0x0020u            /* SDCLOCK = IMCLK/128 */
+#define SD_DIV_64                 0x0010u            /* SDCLOCK = IMCLK/64 */
+#define SD_DIV_32                 0x0008u            /* SDCLOCK = IMCLK/32 */
+#define SD_DIV_16                 0x0004u            /* SDCLOCK = IMCLK/16 */
+#define SD_DIV_8                  0x0002u            /* SDCLOCK = IMCLK/8 */
+#define SD_DIV_4                  0x0001u            /* SDCLOCK = IMCLK/4 */
+#define SD_DIV_2                  0x0000u            /* SDCLOCK = IMCLK/2 */
+#define SD_DIV_1                  0x00FFu            /* SDCLOCK = IMCLK (option) */
+
+/* ---- SD clock define ---- */    /* max frequency */
+#define SD_CLK_400kHz             0x0000u            /* 400kHz */
+#define SD_CLK_1MHz               0x0001u            /* 1MHz */
+#define SD_CLK_5MHz               0x0002u            /* 5MHz */
+#define SD_CLK_10MHz              0x0003u            /* 10MHz */
+#define SD_CLK_20MHz              0x0004u            /* 20MHz */
+#define SD_CLK_25MHz              0x0005u            /* 25MHz */
+#define SD_CLK_50MHz              0x0006u            /* 50MHz (phys spec ver1.10) */
+
+/* ---- speed class ---- */
+#define SD_SPEED_CLASS_0          0x00u              /* not defined, or less than ver2.0 */
+#define SD_SPEED_CLASS_2          0x01u              /* 2MB/sec */
+#define SD_SPEED_CLASS_4          0x02u              /* 4MB/sec */
+#define SD_SPEED_CLASS_6          0x03u              /* 6MB/sec */
+
+/* ---- IO initialize flags define ---- */    /* add for IO */
+#define SD_IO_INT_ENAB            0x10u              /* interrupt enable */
+#define SD_IO_POWER_INIT          0x04u              /* power on initialized */
+#define SD_IO_MEM_INIT            0x02u              /* memory initialized */
+#define SD_IO_FUNC_INIT           0x01u              /* io func initialized */
+
+/* ---- IO function's information ---- */    /* add for IO */
+#define SD_IO_FUNC_READY          0x80u              /* io redy */
+#define SD_IO_FUNC_NUM            0x70u              /* number of io func */
+#define SD_IO_FUNC_EXISTS         0x04u              /* memory present */
+
+/* ---- SD port mode ---- */
+#define SD_PORT_SERIAL            0x0000u            /* 1bit mode */
+#define SD_PORT_PARALLEL          0x0001u            /* 4bits mode */
+
+/* ---- SD Card detect port ---- */
+#define SD_CD_SOCKET              0x0000u            /* CD pin */
+#define SD_CD_DAT3                0x0001u            /* DAT3 pin */
+
+/* ---- SD Card detect interrupt ---- */
+#define SD_CD_INT_DISABLE         0x0000u            /* card detect interrupt disable */
+#define SD_CD_INT_ENABLE          0x0001u            /* card detect interrupt enable */
+
+/* ---- format mode ---- */
+#define SD_FORMAT_QUICK           0x0000u            /* quick format */
+#define SD_FORMAT_FULL            0x0001u            /* full format */
+
+/* ---- lock/unlock mode ---- */
+#define SD_FORCE_ERASE            0x08
+#define SD_LOCK_CARD              0x04
+#define SD_UNLOCK_CARD            0x00
+#define SD_CLR_PWD                0x02
+#define SD_SET_PWD                0x01
+
+/* ==== API prototype ===== */
+/* ---- access library I/F ---- */
+int sd_init(int sd_port, unsigned long base, void *workarea, int cd_port);
+int sd_cd_int(int sd_port, int enable,int (*callback)(int, int));
+int sd_check_media(int sd_port);
+int sd_format(int sd_port, int mode,int (*callback)(unsigned long,unsigned long));
+int sd_format2(int sd_port, int mode,unsigned long volserial,int (*callback)(unsigned long,unsigned long));
+int sd_mount(int sd_port, unsigned long mode,unsigned long voltage);
+int sd_read_sect(int sd_port, unsigned char *buff,unsigned long psn,long cnt);
+int sd_write_sect(int sd_port, unsigned char *buff,unsigned long psn,long cnt,int writemode);
+int sd_get_type(int sd_port, unsigned char *type,unsigned char *speed,unsigned char *capa);
+int sd_get_size(int sd_port, unsigned long *user,unsigned long *protect);
+int sd_iswp(int sd_port);
+int sd_unmount(int sd_port);
+void sd_stop(int sd_port);
+int sd_set_intcallback(int sd_port, int (*callback)(int, int));
+void sd_int_handler(int sd_port);
+int sd_get_error(int sd_port);
+int sd_check_int(int sd_port);
+int sd_get_reg(int sd_port, unsigned char *ocr,unsigned char *cid,unsigned char *csd, unsigned char *dsr,unsigned char *scr);
+int sd_get_rca(int sd_port, unsigned char *rca);
+int sd_get_sdstatus(int sd_port, unsigned char *sdstatus);
+int sd_get_speed(int sd_port, unsigned char *clss,unsigned char *move);
+int sd_finalize(int sd_port);
+int sd_set_seccnt(int sd_port, short sectors);
+int sd_get_seccnt(int sd_port);
+int sd_get_ver(int sd_port, unsigned short *sdhi_ver,char *sddrv_ver);
+int sd_set_cdtime(int sd_port, unsigned short cdtime);
+int sd_set_responsetime(int sd_port, unsigned short responsetime);
+int sd_set_buffer(int sd_port, void *buff,unsigned long size);
+int sd_inactive(int sd_port);
+int sd_set_softwp(int sd_port, int is_set,unsigned long data);
+int sd_set_tmpwp(int sd_port, int is_set);
+int sd_lock_unlock(int sd_port, unsigned char code,unsigned char *pwd,unsigned char len);
+
+int esd_get_partition_id(int sd_port, int *id);
+int esd_select_partition(int sd_port, int id);
+int esd_query_partition(int sd_port, int sub, unsigned char *data);
+
+int sdio_read_direct(int sd_port, unsigned char *buff,unsigned long func,unsigned long adr);
+int sdio_write_direct(int sd_port, unsigned char *buff,unsigned long func,unsigned long adr,unsigned long raw_flag);
+int sdio_check_int(int sd_port);
+void sdio_int_handler(int sd_port);
+int sdio_set_intcallback(int sd_port, int (*callback)(int));
+int sdio_enable_int(int sd_port);
+int sdio_disable_int(int sd_port);
+int sdio_read(int sd_port, unsigned char *buff,unsigned long func,unsigned long adr,long cnt,unsigned long op_code);
+int sdio_write(int sd_port, unsigned char *buff,unsigned long func,unsigned long adr,long cnt,unsigned long op_code);
+int sdio_reset(int sd_port);
+int sdio_get_ioocr(int sd_port, unsigned long *ioocr);
+int sdio_get_ioinfo(int sd_port, unsigned char *ioinfo);
+int sdio_get_cia(int sd_port, unsigned char *reg, unsigned char *cis, unsigned long func_num, long cnt);
+int sdio_set_enable(int sd_port, unsigned char func_bit);
+int sdio_get_ready(int sd_port, unsigned char *func_bit);
+int sdio_set_int(int sd_port, unsigned char func_bit,int enab);
+int sdio_get_int(int sd_port, unsigned char *func_bit,int *enab);
+int sdio_set_blocklen(int sd_port, unsigned short len, unsigned long func_num);
+int sdio_get_blocklen(int sd_port, unsigned short *len, unsigned long func_num);
+void sdio_abort(int sd_port, unsigned long func_num);
+int sdio_set_blkcnt(int sd_port, short blocks);
+int sdio_get_blkcnt(int sd_port);
+
+/* ---- target CPU I/F ---- */
+int sddev_init(int sd_port);
+int sddev_power_on(int sd_port);
+int sddev_power_off(int sd_port);
+int sddev_read_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num);
+int sddev_write_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num);
+unsigned int sddev_get_clockdiv(int sd_port, int clock);
+int sddev_set_port(int sd_port, int mode);
+int sddev_int_wait(int sd_port, int msec);
+int sddev_init_dma(int sd_port, unsigned long buffadr,unsigned long regadr,long cnt,int dir);
+int sddev_wait_dma_end(int sd_port, long cnt);
+int sddev_disable_dma(int sd_port);
+int sddev_finalize(int sd_port);
+int sddev_loc_cpu(int sd_port);
+int sddev_unl_cpu(int sd_port);
+int sddev_cmd0_sdio_mount(int sd_port);
+int sddev_cmd8_sdio_mount(int sd_port);
+
+#ifdef    __cplusplus
+}
+#endif    /* __cplusplus    */
+
+#endif    /* _SDDRV_H_ */
+
+/* End of File */
+
--- a/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/mbed_lib.json	Mon Mar 18 12:48:38 2019 +0000
+++ b/mbed-os-program/mbed-os/components/storage/blockdevice/COMPONENT_RZ_SDHI/mbed_lib.json	Fri Mar 29 19:47:34 2019 +0200
@@ -1,20 +1,15 @@
 {
-    "name": "sd",
+    "name": "rz_sdhi",
     "config": {
-        "SDHI_CH": "SDHI_CH",
-        "FSFAT_SDCARD_INSTALLED": 1,
-        "CMD_TIMEOUT": 10000,
-        "CMD0_IDLE_STATE_RETRIES": 5,
-        "INIT_FREQUENCY": 100000,
-        "CRC_ENABLED": 1,
+        "CH": "CH",
         "TEST_BUFFER": 8192
     },
     "target_overrides": {
         "VK_RZ_A1H": {
-             "SDHI_CH": 0
+            "CH": 0
         },
         "VK_RZ_A1LU": {
-             "SDHI_CH": 1
+            "CH": 1
         }
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/features/storage/kvstore/conf/kv_config.cpp	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,1167 @@
+/*
+ * Copyright (c) 2018 ARM Limited. All rights reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "kv_config.h"
+#include "KVStore.h"
+#include "KVMap.h"
+#include "BlockDevice.h"
+#include "FileSystem.h"
+#include "FileSystemStore.h"
+#include "SlicingBlockDevice.h"
+#include "FATFileSystem.h"
+#include "LittleFileSystem.h"
+#include "TDBStore.h"
+#include "mbed_error.h"
+#include "FlashIAP.h"
+#include "FlashSimBlockDevice.h"
+#include "mbed_trace.h"
+#include "SecureStore.h"
+#define TRACE_GROUP "KVCFG"
+
+#if COMPONENT_FLASHIAP
+#include "FlashIAPBlockDevice.h"
+#endif
+
+#if COMPONENT_QSPIF
+#include "QSPIFBlockDevice.h"
+#endif
+
+#if COMPONENT_SPIF
+#include "SPIFBlockDevice.h"
+#endif
+
+#if COMPONENT_DATAFLASH
+#include "DataFlashBlockDevice.h"
+#endif
+
+#if COMPONENT_SD
+#include "SDBlockDevice.h"
+#endif
+
+#if COMPONENT_RZ_SDHI
+#include "RZ_SDHIBlockDevice.hpp"
+#endif
+
+/**
+ * @brief This function initializes internal memory secure storage
+ *        This includes a TDBStore instance with a FlashIAPBlockdevice
+ *        as the supported storage.
+ *        The following is a list of configuration parameter
+ *        MBED_CONF_STORAGE_TDB_INTERNAL_SIZE - The size of the underlying FlashIAPBlockdevice
+ *        MBED_CONF_STORAGE_TDB_INTERNAL_BASE_ADDRESS - The start address of the underlying FlashIAPBlockdevice
+ * @returns 0 on success or negative value on failure.
+ */
+int _storage_config_TDB_INTERNAL();
+
+/**
+ * @brief This function initialize external memory secure storage
+ *        This includes a SecureStore class with TDBStore over FlashIAPBlockdevice
+ *        and an external TDBStore over a default blockdevice unless configured differently.
+ *        The following is a list of configuration parameter:
+ *        MBED_CONF_STORAGE_TDB_EXTERNAL_RBP_INTERNAL_SIZE - Size of the internal FlashIAPBlockDevice and by
+ *                                                           default is set to from start address to the end of the flash.
+ *                                                           If start address is 0 the start address will be set to end of
+ *                                                           flash - rbp_internal_size.
+ *        MBED_CONF_STORAGE_TDB_EXTERNAL_INTERNAL_BASE_ADDRESS - The satrt address of the internal FlashIAPBlockDevice.
+ *        MBED_CONF_STORAGE_TDB_EXTERNAL_EXTERNAL_SIZE - Size of the external blockdevice in bytes or NULL for
+ *                                                       max possible size.
+ *        MBED_CONF_STORAGE_TDB_EXTERNAL_EXTERNAL_BASE_ADDRESS - The block device start address.
+ *        MBED_CONF_STORAGE_TDB_EXTERNAL_EXTERNAL_BLOCK_DEVICE - Alowed vlaues are: default, SPIF, DATAFASH, QSPIF or SD
+ * @returns 0 on success or negative value on failure.
+ */
+int _storage_config_TDB_EXTERNAL();
+
+/**
+ * @brief This function initialize a external memory secure storage
+ *        This includes a SecureStore class with external TDBStore over a blockdevice or,
+ *        if no blockdevice was set the default blockdevice will be used.
+ *        The following is a list of configuration parameter:
+ *        MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_EXTERNAL_SIZE - Size of the external blockdevice in bytes
+ *                                                              or NULL for max possible size.
+ *        MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_EXTERNAL_BASE_ADDRESS - The block device start address
+ *        MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_EXTERNAL_BLOCK_DEVICE - Alowed vlaues are: default, SPIF, DATAFASH, QSPIF or SD
+ * @returns 0 on success or negative value on failure.
+ */
+int _storage_config_TDB_EXTERNAL_NO_RBP();
+
+/**
+ * @brief This function initialize a FILESYSTEM memory secure storage
+ *        This includes a SecureStore class with TDBStore over FlashIAPBlockdevice
+ *        in the internal memory and an external FileSysteStore. If blockdevice and filesystem not set,
+ *        the system will use the default block device and default filesystem
+ *        The following is a list of configuration parameter:
+ *        MBED_CONF_STORAGE_FILESYSTEM_RBP_INTERNAL_SIZE - Size of the internal FlashIAPBlockDevice and by
+ *                                                         default is set to from start address to the end of the flash.
+ *                                                         If start address is 0 the start address will be set to end of
+ *                                                         flash - rbp_internal_size.
+ *        MBED_CONF_STORAGE_FILESYSTEM_INTERNAL_BASE_ADDRESS - The satrt address of the internal FlashIAPBlockDevice.
+ *        MBED_CONF_STORAGE_FILESYSTEM_FILESYSTEM - Allowed values are: default, FAT or LITTLE
+ *        MBED_CONF_STORAGE_FILESYSTEM_BLOCKDEVICE - Allowed values are: default, SPIF, DATAFASH, QSPIF or SD
+ *        MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_SIZE - External Blockdevice size in bytes or NULL for max possible size.
+ *        MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_BASE_ADDRESS - The block device start address.
+ *        MBED_CONF_STORAGE_FILESYSTEM_MOUNT_POINT - Where to mount the filesystem
+ *        MBED_CONF_STORAGE_FILESYSTEM_FOLDER_PATH - The working folder paths
+ *
+ * @returns 0 on success or negative value on failure.
+ */
+int _storage_config_FILESYSTEM();
+
+/**
+ * @brief This function initialize a FILESYSTEM_NO_RBP memory secure storage with no
+ *        rollback protection. This includes a SecureStore class an external FileSysteStore over a default
+ *        filesystem with default blockdevice unless differently configured.
+ *        The following is a list of configuration parameter:
+ *        MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_FILESYSTEM - Allowed values are: default, FAT or LITTLE
+ *        MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_BLOCKDEVICE - Allowed values are: default, SPIF, DATAFASH, QSPIF or SD
+ *        MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_EXTERNAL_SIZE - Blockdevice size in bytes. or NULL for max possible size.
+ *        MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_EXTERNAL_BASE_ADDRESS - The block device start address.
+ *        MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_MOUNT_POINT - Where to mount the filesystem
+ *        MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_FOLDER_PATH - The working folder paths
+ *
+ * @returns 0 on success or negative value on failure.
+ */
+int _storage_config_FILESYSTEM_NO_RBP();
+
+int _storage_config_tdb_external_common();
+int _storage_config_filesystem_common();
+
+static const char *filesystemstore_folder_path = NULL;
+
+using namespace mbed;
+
+
+static SingletonPtr<PlatformMutex> mutex;
+static bool is_kv_config_initialize = false;
+static kvstore_config_t kvstore_config;
+
+#define INTERNAL_BLOCKDEVICE_NAME FLASHIAP
+
+#define STR_EXPAND(tok) #tok
+#define STR(tok) STR_EXPAND(tok)
+
+#define _GET_FILESYSTEM_concat(dev, ...) _get_filesystem_##dev(__VA_ARGS__)
+#define GET_FILESYSTEM(dev, ...) _GET_FILESYSTEM_concat(dev, __VA_ARGS__)
+
+#define _GET_BLOCKDEVICE_concat(dev, ...) _get_blockdevice_##dev(__VA_ARGS__)
+#define GET_BLOCKDEVICE(dev, ...) _GET_BLOCKDEVICE_concat(dev, __VA_ARGS__)
+
+static inline uint32_t align_up(uint64_t val, uint64_t size)
+{
+    return (((val - 1) / size) + 1) * size;
+}
+
+static inline uint32_t align_down(uint64_t val, uint64_t size)
+{
+    return (((val) / size)) * size;
+}
+
+int _calculate_blocksize_match_tdbstore(BlockDevice *bd)
+{
+    bd_size_t size = bd->size();
+    bd_size_t erase_size = bd->get_erase_size();
+    bd_size_t number_of_sector = size / erase_size;
+
+    if (number_of_sector < 2) {
+        tr_warning("KV Config: There are less than two sectors - TDBStore will not work.");
+        return -1;
+    }
+
+
+    if (number_of_sector % 2 != 0) {
+        tr_warning("KV Config: Number of sectors is not an even number. Consider changing the BlockDevice size");
+    }
+
+    return MBED_SUCCESS;
+}
+
+int _get_addresses(BlockDevice *bd, bd_addr_t start_address, bd_size_t size, bd_addr_t *out_start_addr,
+                   bd_addr_t *out_end_addr)
+{
+    bd_addr_t aligned_end_address;
+    bd_addr_t end_address;
+    bd_addr_t aligned_start_address;
+
+    aligned_start_address = align_down(start_address, bd->get_erase_size(start_address));
+    if (aligned_start_address != start_address) {
+        tr_error("KV Config: Start address is not aligned. Better use %02llx", aligned_start_address);
+        return -1;
+    }
+
+    if (size == 0) {
+        (*out_start_addr) = aligned_start_address;
+        (*out_end_addr) = bd->size();
+        return 0;
+    }
+
+    end_address = start_address + size;
+    aligned_end_address = align_up(end_address, bd->get_erase_size(end_address));
+    if (aligned_end_address != end_address) {
+        tr_error("KV Config: End address is not aligned. Consider changing the size parameter.");
+        return -1;
+    }
+
+    if (aligned_end_address > bd->size()) {
+        tr_error("KV Config: End address is out of boundaries");
+        return -1;
+    }
+
+    (*out_start_addr) = aligned_start_address;
+    (*out_end_addr) = aligned_end_address;
+    return 0;
+}
+
+FileSystem *_get_filesystem_FAT(const char *mount)
+{
+    static FATFileSystem sdcard(mount);
+    return &sdcard;
+
+}
+
+FileSystem *_get_filesystem_LITTLE(const char *mount)
+{
+    static LittleFileSystem flash(mount);
+    return &flash;
+}
+
+FileSystemStore *_get_file_system_store(FileSystem *fs)
+{
+    static FileSystemStore fss(fs);
+    return &fss;
+}
+
+FileSystem *_get_filesystem_default(const char *mount)
+{
+#if COMPONENT_QSPIF || COMPONENT_SPIF || COMPONENT_DATAFLASH
+    return _get_filesystem_LITTLE(mount);
+#elif (COMPONENT_SD || COMPONENT_RZ_SDHI)
+    return _get_filesystem_FAT(mount);
+#else
+    return NULL;
+#endif
+}
+
+//Calculates the start address of FLASHIAP block device for TDB_INTERNAL profile.
+//If possible, the address will start 2 sectors after the end of code sector allowing
+//some space for an application update.
+int _get_flashiap_bd_default_addresses_tdb_internal(bd_addr_t *start_address, bd_size_t *size)
+{
+#if COMPONENT_FLASHIAP
+
+    FlashIAP flash;
+
+    if (*start_address != 0 || *size != 0) {
+        return MBED_ERROR_INVALID_ARGUMENT;
+    }
+
+    //If default values are set, we should get the maximum available size of internal bd.
+    if (flash.init() != 0) {
+        return MBED_ERROR_FAILED_OPERATION;
+    }
+
+    *start_address = align_up(FLASHIAP_APP_ROM_END_ADDR, flash.get_sector_size(FLASHIAP_APP_ROM_END_ADDR));
+
+    // Give the application a couple of spare sectors to grow (if there are such)
+    bd_size_t spare_size_for_app = 0;
+    bd_addr_t curr_addr = *start_address;
+    bd_addr_t flash_end_address = flash.get_flash_start() + flash.get_flash_size();
+
+    int spare_sectors_for_app = 2;
+    int min_sectors_for_storage = 2;
+    for (int i = 0; i < spare_sectors_for_app + min_sectors_for_storage - 1; i++) {
+        bd_size_t sector_size = flash.get_sector_size(curr_addr);
+        curr_addr += sector_size;
+        if (curr_addr >= flash_end_address) {
+            spare_size_for_app = 0;
+            break;
+        }
+
+        if (i < spare_sectors_for_app) {
+            spare_size_for_app += sector_size;
+        }
+    }
+    *start_address += spare_size_for_app;
+
+    flash.deinit();
+
+#endif
+
+    return MBED_SUCCESS;
+}
+
+//Calculates address and size for FLASHIAP block device in TDB_EXTERNAL and FILESYSTEM profiles.
+//The size of the block device will be 2 sectors at the ends of the internal flash for
+//the use of the rbp internal TDBStore.
+int _get_flashiap_bd_default_addresses_rbp(bd_addr_t *start_address, bd_size_t *size)
+{
+#if COMPONENT_FLASHIAP
+
+    bd_addr_t flash_end_address;
+    bd_addr_t flash_start_address;
+    bd_addr_t aligned_start_address;
+    bd_addr_t flash_first_writable_sector_address;
+    FlashIAP flash;
+
+    if (*start_address != 0 || *size != 0) {
+        return MBED_ERROR_INVALID_ARGUMENT;
+    }
+
+    int ret = flash.init();
+    if (ret != 0) {
+        return MBED_ERROR_INITIALIZATION_FAILED;
+    }
+
+    flash_first_writable_sector_address = align_up(FLASHIAP_APP_ROM_END_ADDR, flash.get_sector_size(FLASHIAP_APP_ROM_END_ADDR));
+    flash_start_address = flash.get_flash_start();
+    flash_end_address = flash_start_address + flash.get_flash_size();;
+    *start_address = flash_end_address - 1;
+    aligned_start_address = align_down(*start_address, flash.get_sector_size(*start_address));
+    *size = (flash_end_address - aligned_start_address) * 2;
+    *start_address = (flash_end_address - *size);
+    aligned_start_address = align_down(*start_address, flash.get_sector_size(*start_address));
+
+    flash.deinit();
+
+    if (aligned_start_address < flash_first_writable_sector_address) {
+        tr_error("KV Config: Internal block device start address overlapped ROM address ");
+        return MBED_ERROR_INITIALIZATION_FAILED;
+    }
+
+#endif
+
+    return MBED_SUCCESS;
+
+}
+
+BlockDevice *_get_blockdevice_FLASHIAP(bd_addr_t start_address, bd_size_t size)
+{
+#if COMPONENT_FLASHIAP
+
+    bd_addr_t flash_end_address;
+    bd_addr_t flash_start_address;
+    bd_addr_t flash_first_writable_sector_address;
+    bd_addr_t aligned_start_address;
+    bd_addr_t aligned_end_address;
+    bd_addr_t end_address;
+    FlashIAP flash;
+
+    int ret = flash.init();
+    if (ret != 0) {
+        return NULL;
+    }
+
+    //Get flash parameters before starting
+    flash_first_writable_sector_address = align_up(FLASHIAP_APP_ROM_END_ADDR, flash.get_sector_size(FLASHIAP_APP_ROM_END_ADDR));
+    flash_start_address = flash.get_flash_start();
+    flash_end_address = flash_start_address + flash.get_flash_size();;
+
+    //Non default configuration
+    if (start_address != 0) {
+
+        aligned_start_address = align_down(start_address, flash.get_sector_size(start_address));
+        if (start_address != aligned_start_address) {
+            tr_error("KV Config: Internal block device start address is not aligned. Better use %02llx", aligned_start_address);
+            flash.deinit();
+            return NULL;
+        }
+
+        if (size == 0) {
+            //The block device will have all space form start address to the end of the flash
+            size = (flash_end_address - start_address);
+
+            static FlashIAPBlockDevice bd(start_address, size);
+            flash.deinit();
+            return &bd;
+        }
+
+        if (size != 0) {
+            end_address = start_address + size;
+            if (end_address > flash_end_address) {
+                tr_error("KV Config: Internal block device end address is out of boundaries");
+                flash.deinit();
+                return NULL;
+            }
+
+            aligned_end_address = align_up(end_address, flash.get_sector_size(end_address - 1));
+            if (end_address != aligned_end_address) {
+                tr_error("KV Config: Internal block device start address is not aligned. Consider changing the size parameter");
+                flash.deinit();
+                return NULL;
+            }
+
+            static FlashIAPBlockDevice bd(start_address, size);
+            flash.deinit();
+            return &bd;
+        }
+    }
+
+    //Non default configuration start_address = 0
+    start_address = flash_end_address - size;
+    aligned_start_address = align_down(start_address, flash.get_sector_size(start_address));
+    if (start_address != aligned_start_address) {
+        tr_error("KV Config: Internal block device start address is not aligned. Consider changing the size parameter");
+        flash.deinit();
+        return NULL;
+    }
+
+    flash.deinit();
+
+    if (aligned_start_address < flash_first_writable_sector_address) {
+        tr_error("KV Config: Internal block device start address overlapped ROM address ");
+        return NULL;
+    }
+    static FlashIAPBlockDevice bd(aligned_start_address, size);
+    return &bd;
+
+#else
+    return NULL;
+#endif
+}
+
+BlockDevice *_get_blockdevice_SPIF(bd_addr_t start_address, bd_size_t size)
+{
+#if COMPONENT_SPIF
+
+    bd_addr_t aligned_end_address;
+    bd_addr_t aligned_start_address;
+
+    static SPIFBlockDevice bd(
+        MBED_CONF_SPIF_DRIVER_SPI_MOSI,
+        MBED_CONF_SPIF_DRIVER_SPI_MISO,
+        MBED_CONF_SPIF_DRIVER_SPI_CLK,
+        MBED_CONF_SPIF_DRIVER_SPI_CS,
+        MBED_CONF_SPIF_DRIVER_SPI_FREQ
+    );
+
+    if (bd.init() != MBED_SUCCESS) {
+        tr_error("KV Config: SPIFBlockDevice init fail");
+        return NULL;
+    }
+
+    if (start_address == 0 && size == 0) {
+        return &bd;
+    }
+
+    //If address and size were specified use SlicingBlockDevice to get the correct block device size and start address.
+    if (_get_addresses(&bd, start_address, size, &aligned_start_address, &aligned_end_address) != 0) {
+        tr_error("KV Config: Fail to get addresses for SlicingBlockDevice.");
+        return NULL;
+    }
+
+    static SlicingBlockDevice sbd(&bd, aligned_start_address, aligned_end_address);
+    return &sbd;
+
+#else
+    return NULL;
+#endif
+}
+
+BlockDevice *_get_blockdevice_QSPIF(bd_addr_t start_address, bd_size_t size)
+{
+#if COMPONENT_QSPIF
+
+    bd_addr_t aligned_end_address;
+    bd_addr_t aligned_start_address;
+
+    static QSPIFBlockDevice bd(
+        QSPI_FLASH1_IO0,
+        QSPI_FLASH1_IO1,
+        QSPI_FLASH1_IO2,
+        QSPI_FLASH1_IO3,
+        QSPI_FLASH1_SCK,
+        QSPI_FLASH1_CSN,
+        QSPIF_POLARITY_MODE_0,
+        MBED_CONF_QSPIF_QSPI_FREQ
+    );
+
+    if (bd.init() != MBED_SUCCESS) {
+        tr_error("KV Config: QSPIFBlockDevice init fail");
+        return NULL;
+    }
+
+    if (start_address == 0 && size == 0) {
+        return &bd;
+    }
+
+    //If address and size were specified use SlicingBlockDevice to get the correct block device size and start address.
+    if (_get_addresses(&bd, start_address, size, &aligned_start_address, &aligned_end_address) != 0) {
+        tr_error("KV Config: Fail to get addresses for SlicingBlockDevice.");
+        return NULL;
+    }
+
+    static SlicingBlockDevice sbd(&bd, aligned_start_address, aligned_end_address);
+    return &sbd;
+
+#else
+    return NULL;
+#endif
+}
+
+BlockDevice *_get_blockdevice_DATAFLASH(bd_addr_t start_address, bd_size_t size)
+{
+#if COMPONENT_DATAFLASH
+
+    bd_addr_t aligned_end_address;
+    bd_addr_t aligned_start_address;
+
+    static DataFlashBlockDevice bd(
+        MBED_CONF_DATAFLASH_SPI_MOSI,
+        MBED_CONF_DATAFLASH_SPI_MISO,
+        MBED_CONF_DATAFLASH_SPI_CLK,
+        MBED_CONF_DATAFLASH_SPI_CS
+    );
+
+    if (bd.init() != MBED_SUCCESS) {
+        tr_error("KV Config: DataFlashBlockDevice init fail");
+        return NULL;
+    }
+
+    if (start_address == 0 && size == 0) {
+        return &bd;
+    }
+
+    //If address and size were specified use SlicingBlockDevice to get the correct block device size and start address.
+    if (_get_addresses(&bd, start_address, size, &aligned_start_address, &aligned_end_address) != 0) {
+        tr_error("KV Config: Fail to get addresses for SlicingBlockDevice.");
+        return NULL;
+    }
+
+    static SlicingBlockDevice sbd(&bd, aligned_start_address, aligned_end_address);
+    return &sbd;
+
+
+#else
+    return NULL;
+#endif
+}
+
+BlockDevice *_get_blockdevice_SD(bd_addr_t start_address, bd_size_t size)
+{
+#if COMPONENT_SD
+
+    bd_addr_t aligned_end_address;
+    bd_addr_t aligned_start_address;
+
+    static SDBlockDevice bd(
+        MBED_CONF_SD_SPI_MOSI,
+        MBED_CONF_SD_SPI_MISO,
+        MBED_CONF_SD_SPI_CLK,
+        MBED_CONF_SD_SPI_CS
+    );
+
+    if (bd.init() != MBED_SUCCESS) {
+        tr_error("KV Config: SDBlockDevice init fail");
+        return NULL;
+    }
+
+    if (strcmp(STR(MBED_CONF_STORAGE_STORAGE_TYPE), "TDB_EXTERNAL_NO_RBP") == 0 ||
+            strcmp(STR(MBED_CONF_STORAGE_STORAGE_TYPE), "TDB_EXTERNAL") == 0) {
+        //In TDBStore profile, we have a constraint of 4GByte
+        if (start_address == 0 && size == 0  && bd.size() < (uint32_t)(-1)) {
+            return &bd;
+        }
+
+        //If the size of external storage is bigger than 4G we need to slice it.
+        size = size != 0 ? size : align_down(bd.size(), bd.get_erase_size(bd.size() - 1));
+
+        if (_get_addresses(&bd, start_address, size, &aligned_start_address, &aligned_end_address) != 0) {
+            tr_error("KV Config: Fail to get addresses for SlicingBlockDevice.");
+            return NULL;
+        }
+
+        if (aligned_end_address - aligned_start_address != (uint32_t)(aligned_end_address - aligned_start_address)) {
+            aligned_end_address = aligned_start_address + (uint32_t)(-1);//Support up to 4G only
+        }
+    } else {
+        //For all other KVStore profiles beside TDBStore we take the entire external memory space.
+        if (start_address == 0 && size == 0) {
+            return &bd;
+        }
+
+        if (_get_addresses(&bd, start_address, size, &aligned_start_address, &aligned_end_address) != 0) {
+            tr_error("KV Config: Fail to get addresses for SlicingBlockDevice.");
+            return NULL;
+        }
+    }
+
+    aligned_end_address = align_down(aligned_end_address, bd.get_erase_size(aligned_end_address));
+    static SlicingBlockDevice sbd(&bd, aligned_start_address, aligned_end_address);
+    return &sbd;
+
+#else
+    return NULL;
+#endif
+}
+
+BlockDevice *_get_blockdevice_RZ_SDHI(bd_addr_t start_address, bd_size_t size)
+{
+#if COMPONENT_RZ_SDHI
+
+    bd_addr_t aligned_end_address;
+    bd_addr_t aligned_start_address;
+
+    static SDHIBlockDevice bd(MBED_CONF_RZ_SDHI_CH);
+
+    if (bd.init() != MBED_SUCCESS) {
+        tr_error("KV Config: SDBlockDevice init fail");
+        return NULL;
+    }
+
+    if (strcmp(STR(MBED_CONF_STORAGE_STORAGE_TYPE), "TDB_EXTERNAL_NO_RBP") == 0 ||
+            strcmp(STR(MBED_CONF_STORAGE_STORAGE_TYPE), "TDB_EXTERNAL") == 0) {
+        //In TDBStore profile, we have a constraint of 4GByte
+        if (start_address == 0 && size == 0  && bd.size() < (uint32_t)(-1)) {
+            return &bd;
+        }
+
+        //If the size of external storage is bigger than 4G we need to slice it.
+        size = size != 0 ? size : align_down(bd.size(), bd.get_erase_size(bd.size() - 1));
+
+        if (_get_addresses(&bd, start_address, size, &aligned_start_address, &aligned_end_address) != 0) {
+            tr_error("KV Config: Fail to get addresses for SlicingBlockDevice.");
+            return NULL;
+        }
+
+        if (aligned_end_address - aligned_start_address != (uint32_t)(aligned_end_address - aligned_start_address)) {
+            aligned_end_address = aligned_start_address + (uint32_t)(-1);//Support up to 4G only
+        }
+    } else {
+        //For all other KVStore profiles beside TDBStore we take the entire external memory space.
+        if (start_address == 0 && size == 0) {
+            return &bd;
+        }
+
+        if (_get_addresses(&bd, start_address, size, &aligned_start_address, &aligned_end_address) != 0) {
+            tr_error("KV Config: Fail to get addresses for SlicingBlockDevice.");
+            return NULL;
+        }
+    }
+
+    aligned_end_address = align_down(aligned_end_address, bd.get_erase_size(aligned_end_address));
+    static SlicingBlockDevice sbd(&bd, aligned_start_address, aligned_end_address);
+    return &sbd;
+
+#else
+    return NULL;
+#endif
+}
+
+BlockDevice *_get_blockdevice_default(bd_addr_t start_address, bd_size_t size)
+{
+#if COMPONENT_QSPIF
+    return _get_blockdevice_QSPIF(start_address, size);
+#elif COMPONENT_SPIF
+    return _get_blockdevice_SPIF(start_address, size);
+#elif COMPONENT_DATAFLASH
+    return _get_blockdevice_DATAFLASH(start_address, size);
+#elif COMPONENT_SD
+    return _get_blockdevice_SD(start_address, size);
+#elif COMPONENT_RZ_SDHI
+    return _get_blockdevice_RZ_SDHI(start_address, size);
+#else
+    tr_error("KV Config: No default component define in target.json for this target.");
+    return NULL;
+#endif
+}
+
+int _storage_config_TDB_INTERNAL()
+{
+#if COMPONENT_FLASHIAP
+    bd_size_t internal_size = MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE;
+    bd_addr_t internal_start_address = MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_BASE_ADDRESS;
+
+    if (internal_size == 0 && internal_start_address == 0) {
+        //Calculate the block device size and start address in case default values are used.
+        if (_get_flashiap_bd_default_addresses_tdb_internal(&internal_start_address, &internal_size) != MBED_SUCCESS) {
+            return MBED_ERROR_FAILED_OPERATION;
+        }
+    }
+
+    //Get internal memory FLASHIAP block device.
+    kvstore_config.internal_bd = GET_BLOCKDEVICE(INTERNAL_BLOCKDEVICE_NAME, internal_start_address, internal_size);
+    if (kvstore_config.internal_bd == NULL) {
+        tr_error("KV Config: Fail to get internal BlockDevice.");
+        return MBED_ERROR_FAILED_OPERATION;
+    }
+
+
+    int ret = kvstore_config.internal_bd->init();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to init internal BlockDevice.");
+        return MBED_ERROR_FAILED_OPERATION;
+    }
+
+    //Check that internal flash has 2 or more sectors
+    if (_calculate_blocksize_match_tdbstore(kvstore_config.internal_bd) != MBED_SUCCESS) {
+        tr_error("KV Config: Can not create TDBStore with less then 2 sector.");
+        return MBED_ERROR_INVALID_ARGUMENT;
+    }
+
+    //Deinitialize internal block device and TDB will reinitialize and take control on it.
+    ret = kvstore_config.internal_bd->deinit();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to deinit internal BlockDevice.");
+        return MBED_ERROR_FAILED_OPERATION;
+    }
+
+    //Create a TDBStore in the internal FLASHIAP block device.
+    static TDBStore tdb_internal(kvstore_config.internal_bd);
+    kvstore_config.internal_store = &tdb_internal;
+
+    ret = kvstore_config.internal_store->init();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to init internal TDBStore.");
+        return ret;
+    }
+    kvstore_config.kvstore_main_instance =
+        kvstore_config.internal_store;
+
+    //Masking flag - Actually used to remove any KVStore flag which is not supported
+    //in the chosen KVStore profile.
+    kvstore_config.flags_mask = ~(KVStore::REQUIRE_CONFIDENTIALITY_FLAG |
+                                  KVStore::REQUIRE_REPLAY_PROTECTION_FLAG);
+
+    //Initialize kv_map and add the configuration struct to KVStore map.
+    KVMap &kv_map = KVMap::get_instance();
+    ret = kv_map.init();
+    if (MBED_SUCCESS != ret) {
+        tr_error("KV Config: Fail to init KVStore global API.");
+        return ret;
+    }
+
+    ret = kv_map.attach(STR(MBED_CONF_STORAGE_DEFAULT_KV), &kvstore_config);
+    if (MBED_SUCCESS != ret) {
+        tr_error("KV Config: Fail to attach KVStore main instance to KVStore global API.");
+        return ret;
+    }
+    return MBED_SUCCESS;
+#else
+    return MBED_ERROR_UNSUPPORTED;
+#endif
+
+}
+
+int _storage_config_TDB_EXTERNAL()
+{
+#if !SECURESTORE_ENABLED
+    return MBED_ERROR_UNSUPPORTED;
+#endif
+
+    bd_size_t internal_rbp_size = MBED_CONF_STORAGE_TDB_EXTERNAL_RBP_INTERNAL_SIZE;
+    bd_addr_t internal_start_address = MBED_CONF_STORAGE_TDB_EXTERNAL_INTERNAL_BASE_ADDRESS;
+
+    //Get the default address and size for internal rbp TDBStore
+    if (internal_rbp_size == 0 && internal_start_address == 0) {
+        //Calculate the block device size and start address in case default values are used.
+        if (_get_flashiap_bd_default_addresses_rbp(&internal_start_address, &internal_rbp_size) != MBED_SUCCESS) {
+            return MBED_ERROR_FAILED_OPERATION;
+        }
+    }
+
+    //Create internal FLASHIAP block device
+    kvstore_config.internal_bd = GET_BLOCKDEVICE(INTERNAL_BLOCKDEVICE_NAME, internal_start_address, internal_rbp_size);
+    if (kvstore_config.internal_bd == NULL) {
+        tr_error("KV Config: Fail to get internal BlockDevice.");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    int ret = kvstore_config.internal_bd->init();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to init internal BlockDevice.");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    //Check if TDBStore has at least 2 sector.
+    if (_calculate_blocksize_match_tdbstore(kvstore_config.internal_bd) != MBED_SUCCESS) {
+        tr_error("KV Config: Can not create TDBStore with less then 2 sector.");
+        return MBED_ERROR_INVALID_ARGUMENT;
+    }
+
+    //Create internal TDBStore
+    static TDBStore tdb_internal(kvstore_config.internal_bd);
+    kvstore_config.internal_store = &tdb_internal;
+
+    ret = kvstore_config.internal_store->init();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to init internal TDBStore.");
+        return ret;
+    }
+
+    bd_size_t size = MBED_CONF_STORAGE_TDB_EXTERNAL_EXTERNAL_SIZE;
+    bd_addr_t address = MBED_CONF_STORAGE_TDB_EXTERNAL_EXTERNAL_BASE_ADDRESS;
+
+    //Get external BlockDevice for TDBStore
+    BlockDevice *bd = GET_BLOCKDEVICE(MBED_CONF_STORAGE_TDB_EXTERNAL_BLOCKDEVICE, address, size);
+    if (bd == NULL) {
+        tr_error("KV Config: Fail to get external BlockDevice.");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    //TDBStore needs a block device base on flash. so if this is SD block device or the default block device is SD
+    //add FlashSimBlockDevice on top of the SDBlockDevice
+#if defined(COMPONENT_SD) || defined(COMPONENT_RZ_SDHI)
+    if (strcmp(STR(MBED_CONF_STORAGE_TDB_EXTERNAL_BLOCKDEVICE), "SD") == 0
+#if (defined(COMPONENT_SD) || defined(COMPONENT_RZ_SDHI))&&  !defined(COMPONENT_SPIF) && !defined(COMPONENT_QSPIF) && !defined(COMPONENT_DATAFLASH)
+            ||  strcmp(STR(MBED_CONF_STORAGE_TDB_EXTERNAL_BLOCKDEVICE), "default") == 0) {
+#else
+       ) {
+
+#endif
+        //TDBStore need FlashSimBlockDevice when working with SD block device
+        if (bd->init() != MBED_SUCCESS) {
+            tr_error("KV Config: Fail to init external BlockDevice.");
+            return MBED_ERROR_FAILED_OPERATION ;
+        }
+
+        static FlashSimBlockDevice flash_bd(bd);
+        kvstore_config.external_bd = &flash_bd;
+    } else {
+        kvstore_config.external_bd = bd;
+    }
+#else
+    kvstore_config.external_bd = bd;
+#endif
+
+    kvstore_config.flags_mask = ~(0);
+
+    return _storage_config_tdb_external_common();
+}
+
+int _storage_config_TDB_EXTERNAL_NO_RBP()
+{
+#if !SECURESTORE_ENABLED
+    return MBED_ERROR_UNSUPPORTED;
+#endif
+    bd_size_t size = MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_EXTERNAL_SIZE;
+    bd_addr_t address = MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_EXTERNAL_BASE_ADDRESS;
+
+    //Get external block device
+    BlockDevice *bd = GET_BLOCKDEVICE(MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_BLOCKDEVICE, address, size);
+    if (bd == NULL) {
+        tr_error("KV Config: Fail to get external BlockDevice.");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    //TDBStore needs a block device base on flash. so if this is SD block device or the default block device is SD
+    //add FlashSimBlockDevice on top of the SDBlockDevice
+#if defined(COMPONENT_SD) || defined(COMPONENT_RZ_SDHI)
+    if (strcmp(STR(MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_BLOCKDEVICE), "SD") == 0
+#if (defined(COMPONENT_SD) || defined(COMPONENT_RZ_SDHI)) &&  !defined(COMPONENT_SPIF) && !defined(COMPONENT_QSPIF) && !defined(COMPONENT_DATAFLASH)
+            ||  strcmp(STR(MBED_CONF_STORAGE_TDB_EXTERNAL_NO_RBP_BLOCKDEVICE), "default") == 0) {
+#else
+       ) {
+
+#endif
+        //TDBStore need FlashSimBlockDevice when working with SD block device
+        if (bd->init() != MBED_SUCCESS) {
+            tr_error("KV Config: Fail to init external BlockDevice.");
+            return MBED_ERROR_FAILED_OPERATION ;
+        }
+
+        static FlashSimBlockDevice flash_bd(bd);
+        kvstore_config.external_bd = &flash_bd;
+    } else {
+        kvstore_config.external_bd = bd;
+    }
+#else
+    kvstore_config.external_bd = bd;
+#endif
+
+    //Masking flag - Actually used to remove any KVStore flag which is not supported
+    //in the chosen KVStore profile.
+    kvstore_config.flags_mask = ~(KVStore::REQUIRE_REPLAY_PROTECTION_FLAG);
+
+    return _storage_config_tdb_external_common();
+}
+
+int _storage_config_tdb_external_common()
+{
+#if SECURESTORE_ENABLED
+    //Initialize external block device
+    int ret = kvstore_config.external_bd->init();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to init external BlockDevice.");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    //Check that there is at least 2 sector for the external TDBStore
+    if (_calculate_blocksize_match_tdbstore(kvstore_config.external_bd) != MBED_SUCCESS) {
+        tr_error("KV Config: Can not create TDBStore with less then 2 sector.");
+        return MBED_ERROR_INVALID_SIZE;
+    }
+
+    //Create external TDBStore
+    static TDBStore tdb_external(kvstore_config.external_bd);
+    kvstore_config.external_store = &tdb_external;
+
+    //Create SecureStore and initialize it
+    static SecureStore secst(kvstore_config.external_store, kvstore_config.internal_store);
+
+    ret = secst.init();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to init SecureStore.");
+        return ret ;
+    }
+
+    kvstore_config.kvstore_main_instance = &secst;
+
+    //Init kv_map and add the configuration struct to KVStore map.
+    KVMap &kv_map = KVMap::get_instance();
+    ret = kv_map.init();
+    if (MBED_SUCCESS != ret) {
+        tr_error("KV Config: Fail to init KVStore global API");
+        return ret;
+    }
+
+    ret = kv_map.attach(STR(MBED_CONF_STORAGE_DEFAULT_KV), &kvstore_config);
+    if (MBED_SUCCESS != ret) {
+        tr_error("KV Config: Fail to attach KvStore main instance to KVStore global API");
+        return ret;
+    }
+
+    return MBED_SUCCESS;
+#else
+    return MBED_ERROR_UNSUPPORTED;
+#endif
+}
+
+int _storage_config_FILESYSTEM()
+{
+#if !SECURESTORE_ENABLED
+    return MBED_ERROR_UNSUPPORTED;
+#endif
+
+    filesystemstore_folder_path = STR(MBED_CONF_STORAGE_FILESYSTEM_FOLDER_PATH);
+
+    bd_size_t internal_rbp_size = MBED_CONF_STORAGE_FILESYSTEM_RBP_INTERNAL_SIZE;
+    bd_addr_t internal_start_address = MBED_CONF_STORAGE_FILESYSTEM_INTERNAL_BASE_ADDRESS;
+
+    //Get the default address and size for internal rbp TDBStore
+    if (internal_rbp_size == 0 && internal_start_address == 0) {
+        //Calculate the block device size and start address in case default values are used.
+        if (_get_flashiap_bd_default_addresses_rbp(&internal_start_address, &internal_rbp_size) != MBED_SUCCESS) {
+            return MBED_ERROR_FAILED_OPERATION;
+        }
+    }
+
+    //Get internal FLASHIAP block device
+    kvstore_config.internal_bd = GET_BLOCKDEVICE(INTERNAL_BLOCKDEVICE_NAME, internal_start_address, internal_rbp_size);
+    if (kvstore_config.internal_bd == NULL) {
+        tr_error("KV Config: Fail to get internal BlockDevice ");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    int ret = kvstore_config.internal_bd->init();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to init internal BlockDevice ");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    //Check that internal flash has 2 or more sectors
+    if (_calculate_blocksize_match_tdbstore(kvstore_config.internal_bd) != MBED_SUCCESS) {
+        tr_error("KV Config: Can not create TDBStore with less then 2 sector.");
+        return MBED_ERROR_INVALID_ARGUMENT;
+    }
+
+    //Deinitialize internal block device and TDB will reinitialize and take control on it.
+    ret = kvstore_config.internal_bd->deinit();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to deinit internal BlockDevice.");
+        return MBED_ERROR_FAILED_OPERATION;
+    }
+
+    //Create internal TDBStore for rbp
+    static TDBStore tdb_internal(kvstore_config.internal_bd);
+    kvstore_config.internal_store = &tdb_internal;
+
+    ret = kvstore_config.internal_store->init();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to init internal TDBStore");
+        return ret;
+    }
+
+    bd_size_t size = MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_SIZE;
+    bd_addr_t address = MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_BASE_ADDRESS;
+    const char *mount_point = STR(MBED_CONF_STORAGE_FILESYSTEM_MOUNT_POINT);
+
+    //Get external block device for FileSystem.
+    kvstore_config.external_bd = GET_BLOCKDEVICE(MBED_CONF_STORAGE_FILESYSTEM_BLOCKDEVICE, address, size);
+    if (kvstore_config.external_bd == NULL) {
+        tr_error("KV Config: Fail to get external BlockDevice ");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    ret = kvstore_config.external_bd->init();
+    if (MBED_SUCCESS != ret) {
+        tr_error("KV Config: Fail to init external BlockDevice ");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    //Get FileSystem. Can be FAT, LITTLE or default. in case of default, the type will be decided base on the default
+    //component block device configured in the system. The priority is:
+    //QSPI -> SPI -> DATAFLASH == LITTLE
+    //SD == FAT
+    kvstore_config.external_fs = GET_FILESYSTEM(MBED_CONF_STORAGE_FILESYSTEM_FILESYSTEM, mount_point);
+    if (kvstore_config.external_fs == NULL) {
+        tr_error("KV Config: Fail to get FileSystem");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    kvstore_config.flags_mask = ~(0);
+
+    return _storage_config_filesystem_common();
+}
+
+int _storage_config_FILESYSTEM_NO_RBP()
+{
+#if !SECURESTORE_ENABLED
+    return MBED_ERROR_UNSUPPORTED;
+#endif
+
+    filesystemstore_folder_path = STR(MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_FOLDER_PATH);
+
+    bd_size_t size = MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_EXTERNAL_SIZE;
+    bd_addr_t address = MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_EXTERNAL_BASE_ADDRESS;
+    const char *mount_point = STR(MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_MOUNT_POINT);
+
+    //Get external block device for FileSystem.
+    kvstore_config.external_bd = GET_BLOCKDEVICE(MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_BLOCKDEVICE, address, size);
+    if (kvstore_config.external_bd == NULL) {
+        tr_error("KV Config: Fail to get external BlockDevice ");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    int ret = kvstore_config.external_bd->init();
+    if (MBED_SUCCESS != ret) {
+        tr_error("KV Config: Fail to init external BlockDevice ");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    //Get FileSystem. Can be FAT, LITTLE or default. in case of default, the type will be decided base on the default
+    //component block device configured in the system. The priority is:
+    //QSPI -> SPI -> DATAFLASH == LITTLE
+    //SD == FAT
+    kvstore_config.external_fs = GET_FILESYSTEM(MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_FILESYSTEM, mount_point);
+    if (kvstore_config.external_fs == NULL) {
+        tr_error("KV Config: Fail to get FileSystem");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    //Masking flag - Actually used to remove any KVStore flag which is not supported
+    //in the chosen KVStore profile.
+    kvstore_config.flags_mask = ~(KVStore::REQUIRE_REPLAY_PROTECTION_FLAG);
+
+    return _storage_config_filesystem_common();
+}
+
+int _storage_config_filesystem_common()
+{
+#if SECURESTORE_ENABLED
+
+    //Mount file system. if it fails, try to reformat
+    int ret = kvstore_config.external_fs->mount(kvstore_config.external_bd);
+    if (ret != MBED_SUCCESS) {
+        ret = kvstore_config.external_fs->reformat(kvstore_config.external_bd);
+        if (ret != MBED_SUCCESS) {
+            tr_error("KV Config: Fail to mount FileSystem to %s",
+                     STR(MBED_CONF_STORAGE_FILESYSTEM_NO_RBP_MOUNT_POINT));
+            return MBED_ERROR_FAILED_OPERATION ;
+        }
+    }
+
+    //Create FileSystemStore
+    kvstore_config.external_store = _get_file_system_store(kvstore_config.external_fs);
+    if (kvstore_config.external_store == NULL) {
+        tr_error("KV Config: Fail to get FileSystemStore");
+        return MBED_ERROR_FAILED_OPERATION ;
+    }
+
+    //Create SecureStore and set it as main KVStore
+    static SecureStore secst(kvstore_config.external_store, kvstore_config.internal_store);
+
+    ret = secst.init();
+    if (ret != MBED_SUCCESS) {
+        tr_error("KV Config: Fail to init SecureStore.");
+        return ret; ;
+    }
+
+    kvstore_config.kvstore_main_instance = &secst;
+
+    //Init kv_map and add the configuration struct to KVStore map.
+    KVMap &kv_map = KVMap::get_instance();
+    ret = kv_map.init();
+    if (MBED_SUCCESS != ret) {
+        tr_error("KV Config: Fail to init KVStore global API");
+        return ret;
+    }
+
+    ret = kv_map.attach(STR(MBED_CONF_STORAGE_DEFAULT_KV), &kvstore_config);
+    if (MBED_SUCCESS != ret) {
+        tr_error("KV Config: Fail to attach KvStore main instance to KVStore global API");
+        return ret;
+    }
+
+    return MBED_SUCCESS;
+#else
+    return MBED_ERROR_UNSUPPORTED;
+#endif
+}
+
+int _storage_config_default()
+{
+#if COMPONENT_QSPIF || COMPONENT_SPIF || COMPONENT_DATAFLASH
+    return _storage_config_TDB_EXTERNAL();
+#elif (COMPONENT_SD || COMPONENT_RZ_SDHI)
+    return _storage_config_FILESYSTEM();
+#elif COMPONENT_FLASHIAP
+    return _storage_config_TDB_INTERNAL();
+#else
+    return MBED_ERROR_UNSUPPORTED;
+#endif
+}
+
+const char *get_filesystemstore_folder_path()
+{
+    return filesystemstore_folder_path;
+}
+
+MBED_WEAK int kv_init_storage_config()
+{
+
+    int ret = MBED_SUCCESS;
+
+    // We currently have no supported configuration without internal storage
+#ifndef COMPONENT_FLASHIAP
+    return MBED_ERROR_UNSUPPORTED;
+#endif
+
+    mutex->lock();
+
+    if (is_kv_config_initialize) {
+        goto exit;
+    }
+
+    memset(&kvstore_config, 0, sizeof(kvstore_config_t));
+
+    ret = _STORAGE_CONFIG(MBED_CONF_STORAGE_STORAGE_TYPE);
+
+    if (ret == MBED_SUCCESS) {
+        is_kv_config_initialize = true;
+    }
+
+exit:
+    mutex->unlock();
+    return ret;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/features/storage/system_storage/SystemStorage.cpp	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,210 @@
+/*
+ * Copyright (c) 2018 ARM Limited. All rights reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "SystemStorage.h"
+#include "BlockDevice.h"
+#include "FileSystem.h"
+#include "FATFileSystem.h"
+#include "LittleFileSystem.h"
+#include "mbed_error.h"
+
+
+#if COMPONENT_SPIF
+#include "SPIFBlockDevice.h"
+#endif
+
+#if COMPONENT_QSPIF
+#include "QSPIFBlockDevice.h"
+#endif
+
+#if COMPONENT_DATAFLASH
+#include "DataFlashBlockDevice.h"
+#endif
+
+#if COMPONENT_SD
+#include "SDBlockDevice.h"
+#endif
+
+#if COMPONENT_RZ_SDHI
+#include "RZ_SDHIBlockDevice.hpp"
+#endif
+
+#if COMPONENT_FLASHIAP
+#include "FlashIAPBlockDevice.h"
+#endif
+
+using namespace mbed;
+
+
+
+MBED_WEAK int avoid_conflict_nvstore_tdbstore(owner_type_e in_mem_owner)
+{
+    int status = MBED_SUCCESS;
+    static PlatformMutex _mutex;
+    static owner_type_e internal_memory_owner = NONE;
+
+    _mutex.lock();
+
+    if (internal_memory_owner != NONE &&
+            internal_memory_owner != in_mem_owner) {
+
+        status = MBED_ERROR_ALREADY_INITIALIZED;
+
+    } else {
+
+        internal_memory_owner = in_mem_owner;
+    }
+
+    _mutex.unlock();
+
+    return status;
+}
+
+// Align a value to a specified size.
+// Parameters :
+// val           - [IN]   Value.
+// size          - [IN]   Size.
+// Return        : Aligned value.
+static inline uint32_t align_up(uint32_t val, uint32_t size)
+{
+    return (((val - 1) / size) + 1) * size;
+}
+
+MBED_WEAK BlockDevice *BlockDevice::get_default_instance()
+{
+#if COMPONENT_SPIF
+
+    static SPIFBlockDevice default_bd(
+        MBED_CONF_SPIF_DRIVER_SPI_MOSI,
+        MBED_CONF_SPIF_DRIVER_SPI_MISO,
+        MBED_CONF_SPIF_DRIVER_SPI_CLK,
+        MBED_CONF_SPIF_DRIVER_SPI_CS,
+        MBED_CONF_SPIF_DRIVER_SPI_FREQ
+    );
+
+    return &default_bd;
+
+#elif COMPONENT_QSPIF
+
+    static QSPIFBlockDevice default_bd(
+        MBED_CONF_QSPIF_QSPI_IO0,
+        MBED_CONF_QSPIF_QSPI_IO1,
+        MBED_CONF_QSPIF_QSPI_IO2,
+        MBED_CONF_QSPIF_QSPI_IO3,
+        MBED_CONF_QSPIF_QSPI_SCK,
+        MBED_CONF_QSPIF_QSPI_CSN,
+        MBED_CONF_QSPIF_QSPI_POLARITY_MODE,
+        MBED_CONF_QSPIF_QSPI_FREQ
+    );
+
+    return &default_bd;
+
+#elif COMPONENT_DATAFLASH
+
+    static DataFlashBlockDevice default_bd(
+        MBED_CONF_DATAFLASH_SPI_MOSI,
+        MBED_CONF_DATAFLASH_SPI_MISO,
+        MBED_CONF_DATAFLASH_SPI_CLK,
+        MBED_CONF_DATAFLASH_SPI_CS
+    );
+
+    return &default_bd;
+
+#elif COMPONENT_SD
+
+    static SDBlockDevice default_bd(
+        MBED_CONF_SD_SPI_MOSI,
+        MBED_CONF_SD_SPI_MISO,
+        MBED_CONF_SD_SPI_CLK,
+        MBED_CONF_SD_SPI_CS
+    );
+
+    return &default_bd;
+
+#elif COMPONENT_RZ_SDHI
+
+    static SDHIBlockDevice default_bd(MBED_CONF_RZ_SDHI_CH);
+
+    return &default_bd;
+
+#elif COMPONENT_FLASHIAP
+
+#if (MBED_CONF_FLASHIAP_BLOCK_DEVICE_SIZE == 0) && (MBED_CONF_FLASHIAP_BLOCK_DEVICE_BASE_ADDRESS == 0xFFFFFFFF)
+
+    size_t flash_size;
+    uint32_t start_address;
+    uint32_t bottom_address;
+    FlashIAP flash;
+
+    int ret = flash.init();
+    if (ret != 0) {
+        return 0;
+    }
+
+    //Find the start of first sector after text area
+    bottom_address = align_up(FLASHIAP_APP_ROM_END_ADDR, flash.get_sector_size(FLASHIAP_APP_ROM_END_ADDR));
+    start_address = flash.get_flash_start();
+    flash_size = flash.get_flash_size();
+
+    ret = flash.deinit();
+
+    static FlashIAPBlockDevice default_bd(bottom_address, start_address + flash_size - bottom_address);
+
+#else
+
+    static FlashIAPBlockDevice default_bd;
+
+#endif
+
+    return &default_bd;
+
+#else
+
+    return NULL;
+
+#endif
+
+}
+
+MBED_WEAK FileSystem *FileSystem::get_default_instance()
+{
+#if COMPONENT_SPIF || COMPONENT_QSPIF || COMPONENT_DATAFLASH
+
+    static LittleFileSystem flash("flash", BlockDevice::get_default_instance());
+    flash.set_as_default();
+
+    return &flash;
+
+#elif (COMPONENT_SD || COMPONENT_RZ_SDHI)
+
+    static FATFileSystem sdcard("sd", BlockDevice::get_default_instance());
+    sdcard.set_as_default();
+
+    return &sdcard;
+
+#elif COMPONENT_FLASHIAP
+
+    static LittleFileSystem flash("flash", BlockDevice::get_default_instance());
+    flash.set_as_default();
+
+    return &flash;
+
+#else
+
+    return NULL;
+
+#endif
+
+}
Binary file mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/TOOLCHAIN_ARM_STD/lib_RZ_A1H_sd_driver.ar has changed
Binary file mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/TOOLCHAIN_GCC_ARM/lib_RZ_A1H_sd_driver.a has changed
Binary file mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/TOOLCHAIN_IAR/lib_RZ_A1H_sd_driver.a has changed
--- a/mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/sd_cfg.h	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,371 +0,0 @@
-/******************************************************************************
-*   DISCLAIMER
-*
-*   This software is supplied by Renesas Electronics Corporation and is only 
-*   intended for use with Renesas products. No other uses are authorized.
-*
-*   This software is owned by Renesas Electronics Corporation and is protected under 
-*   all applicable laws, including copyright laws.
-*
-*   THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES 
-*   REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, 
-*   INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
-*   PARTICULAR PURPOSE AND NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY 
-*   DISCLAIMED.
-*
-*   TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS 
-*   ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE 
-*   FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES 
-*   FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS
-*   AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-*
-*   Renesas reserves the right, without notice, to make changes to this 
-*   software and to discontinue the availability of this software.
-*   By using this software, you agree to the additional terms and 
-*   conditions found by accessing the following link: 
-*   http://www.renesas.com/disclaimer
-********************************************************************************
-* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. 
-**************************** Technical reference data **************************
-*   System Name : SD Driver Sample Program
-*   File Name   : sd_cfg.h
-*   Abstract    : SD Memory card driver configration
-*   Version     : 4.00.00
-*   Device      : Aragon
-*   Tool-Chain  : DS-5 Ver 5.13
-*                 ARM Complier 
-*   OS          : None
-*   H/W Platform: 
-*   Description : 
-********************************************************************************
-*   History     : 2013.05.30 Ver.4.00.00
-*******************************************************************************/
-#ifndef _SD_CFG_H_
-#define _SD_CFG_H_
-
-/* ------------------------------------------------------
-  Set SDHI Base Address
---------------------------------------------------------*/
-#define SDCFG_IP0_BASE         0xE804E000
-#define SDCFG_IP1_BASE         0xE804E800
-
-/* ------------------------------------------------------
-  Set the method of check SD Status
---------------------------------------------------------*/
-#define SDCFG_HWINT
-//#define SDCFG_POLL
-
-/* ------------------------------------------------------
-  Set the method of data transfer
---------------------------------------------------------*/
-//#define SDCFG_TRNS_DMA
-#define SDCFG_TRNS_SW
-
-    #ifdef SDCFG_TRNS_DMA
-#define SDCFG_TRANS_DMA_64
-    #endif
-
-/* ------------------------------------------------------
-  Set the card type to support
---------------------------------------------------------*/
-#define SDCFG_MEM
-//#define SDCFG_IO
-
-/* ------------------------------------------------------
-  Set the speed to support
---------------------------------------------------------*/
-//#define SDCFG_DS
-#define SDCFG_HS
-
-/* ------------------------------------------------------
-  Set the version to support
---------------------------------------------------------*/
-//#define SDCFG_VER1X            /* Version 1.1 */
-#define SDCFG_VER2X            /* Version 2.x */
-
-/* ------------------------------------------------------
-  Set the method to detect card
---------------------------------------------------------*/
-//#define SDCFG_CD_INT
-
-#ifdef SDCFG_CD_INT
-    #ifndef SDCFG_HWINT
-        #error    please define SDCFG_HWINT
-    #endif
-#endif
-
-/* ------------------------------------------------------
-  Set the SD bus width
---------------------------------------------------------*/
-//#define SDCFG_SDMODE_1BIT
-
-
-
-
-/* ==== end of the setting ==== */
-
-                                            #if    defined(SDCFG_SDMODE_1BIT)
-#if    defined(SDCFG_HWINT)
-    #if    defined(SDCFG_TRNS_DMA)
-        #if    defined(SDCFG_IO)
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #endif
-        #else
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #endif
-        #endif
-    #else
-        #if    defined(SDCFG_IO)
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #endif
-        #else
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #endif
-        #endif
-    #endif
-#else
-    #if    defined(SDCFG_TRNS_DMA)
-        #if    defined(SDCFG_IO)
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #endif
-        #else
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #endif
-        #endif
-    #else
-        #if    defined(SDCFG_IO)
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #endif
-        #else
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X|SD_MODE_1BIT)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X|SD_MODE_1BIT)
-                #endif
-            #endif
-        #endif
-    #endif
-#endif    
-                                            #else
-#if    defined(SDCFG_HWINT)
-    #if    defined(SDCFG_TRNS_DMA)
-        #if    defined(SDCFG_IO)
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X)
-                #endif
-            #endif
-        #else
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X)
-                #endif
-            #endif
-        #endif
-    #else
-        #if    defined(SDCFG_IO)
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X)
-                #endif
-            #endif
-        #else
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_HWINT|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X)
-                #endif
-            #endif
-        #endif
-    #endif
-#else
-    #if    defined(SDCFG_TRNS_DMA)
-        #if    defined(SDCFG_IO)
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X)
-                #endif
-            #endif
-        #else
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_DMA|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X)
-                #endif
-            #endif
-        #endif
-    #else
-        #if    defined(SDCFG_IO)
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_HS|SD_MODE_VER1X)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_IO|SD_MODE_DS|SD_MODE_VER1X)
-                #endif
-            #endif
-        #else
-            #if    defined(SDCFG_HS)
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_HS|SD_MODE_VER1X)
-                #endif
-            #else
-                #if    defined(SDCFG_VER2X)
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER2X)
-                #else
-                    #define SDCFG_DRIVER_MODE2     (SD_MODE_POLL|SD_MODE_SW|SD_MODE_MEM|SD_MODE_DS|SD_MODE_VER1X)
-                #endif
-            #endif
-        #endif
-    #endif
-#endif    
-                                                #endif
-
-    #ifdef SDCFG_TRANS_DMA_64
-#define SDCFG_DRIVER_MODE    (SDCFG_DRIVER_MODE2 | SD_MODE_DMA_64)
-    #else
-#define SDCFG_DRIVER_MODE    SDCFG_DRIVER_MODE2
-    #endif
-
-
-#endif /* _SD_CFG_H_    */
-
-/* End of File */
-
--- a/mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/sdhi_low.c	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1055 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-*
-* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : sd_dev_low.c
-* $Rev: $
-* $Date::                           $
-* Device(s)    : RZ/A1H
-* Tool-Chain   : DS-5 Ver 5.8
-*              : ARM Complier
-* OS           : 
-* H/W Platform : RZ/A1H CPU Board
-* Description  : RZ/A1H SD Driver Sample Program
-* Operation    : 
-* Limitations  : 
-*******************************************************************************/
-
-
-/******************************************************************************
-Includes   <System Includes> , "Project Includes"
-******************************************************************************/
-#include <stdio.h>
-#include <string.h>
-#include "r_typedefs.h"
-#include "iodefine.h"
-#include "rza_io_regrw.h"
-/*#include "devdrv_intc.h"*/
-#include "sdif.h"
-#include "sd_cfg.h"
-/*#include "sd_dev_dmacdrv.h"*/
-#include "us_ticker_api.h"
-#include  "cmsis_os2.h"
-#include    "mbed_assert.h"
-#include    "pinmap.h"
-
-
-/******************************************************************************
-Typedef definitions
-******************************************************************************/
-
-
-/******************************************************************************
-Macro definitions
-******************************************************************************/
-//#define MTU_TIMER_CNT      32    /* P-phy = 32MHz         */
-#define INT_LEVEL_SDHI     10    /* SDHI interrupt level  */
-#define SDHI_PINS_COMMON	2
-#define SDHI_PINS_SERIAL	3
-#define SDHI_PINS_PARALLEL	6
-
-#if defined(SDCFG_SDMODE_1BIT)
-# define SDHI_PORT_MODE	SD_PORT_SERIAL
-#else
-# define SDHI_PORT_MODE	SD_PORT_PARALLEL
-#endif
-
-/******************************************************************************
-Imported global variables and functions (from other files)
-******************************************************************************/
-
-
-/******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-******************************************************************************/
-
-
-/******************************************************************************
-Private global variables and functions
-******************************************************************************/
-#if 0
-static uint8_t g_sdhi_priority_backup;
-#endif
-
-
-
-static const PinName SDHIpin_Common[SDHI_COUNT][SDHI_PINS_COMMON] = { /* WP & CD */
-		{P4_8, P4_9},
-		{P3_8, P3_9}
-};
-
-static const PinName SDHIpin_serial[SDHI_COUNT][SDHI_PINS_SERIAL] = { /* CLK CMD D0 */
-		{P4_11, P4_12, P4_13},
-		{P3_11, P3_12, P3_13}
-};
-
-static const PinName SDHIpin_parallel[SDHI_COUNT][SDHI_PINS_PARALLEL] = { /* CLK CMD D0-D3 */
-		{P4_10, P4_11, P4_12, P4_13, P4_14, P4_15},
-		{P3_10, P3_11, P3_12, P3_13, P3_14, P3_15}
-};
-
-
-static const PinMap PinMap_SDHI_PIN[] = {
-      /*  pin  | periph| func  */
-		{P4_8  , SDHI_0, 3}, 	/* SD_CD_0  */
-		{P4_9  , SDHI_0, 3},	/* SD_WP_0  */
-		{P4_10 , SDHI_0, 3},	/* SD_D1_0  */
-		{P4_11 , SDHI_0, 3},	/* SD_D0_0  */
-		{P4_12 , SDHI_0, 3},	/* SD_CLK_0 */
-		{P4_13 , SDHI_0, 3},	/* SD_CMD_0 */
-		{P4_14 , SDHI_0, 3},    /* SD_D3_0  */
-		{P4_15 , SDHI_0, 3},	/* SD_D2_0  */
-		/*----------------*/
-		{P3_8  , SDHI_1, 7},	/* SD_CD_1  */
-		{P3_9  , SDHI_1, 7},	/* SD_WP_1  */
-		{P3_10 , SDHI_1, 7},	/* SD_D1_1  */
-		{P3_11 , SDHI_1, 7},	/* SD_D0_1  */
-		{P3_12 , SDHI_1, 7},	/* SD_CLK_1 */
-		{P3_13 , SDHI_1, 7},	/* SD_CMD_1 */
-		{P3_14 , SDHI_1, 7},	/* SD_D3_1  */
-		{P3_15 , SDHI_1, 7},	/* SD_D2_1  */
-		{NC    , NC    , 0}
-};
-
-
-
-static unsigned long _ulStart = 0;
-static unsigned long _ulDelta = 0;
-static const ticker_data_t *_ticker;
-
-//static int sddev_init_0(void);
-//static int sddev_init_1(void);
-//static int sddev_set_port_0(int mode);
-//static int sddev_set_port_1(int mode);
-
-static int sddev_init_dma_0(unsigned long buff,unsigned long reg,long cnt,int dir);
-static int sddev_init_dma_1(unsigned long buff,unsigned long reg,long cnt,int dir);
-
-static int sddev_wait_dma_end_0(long cnt);
-static int sddev_wait_dma_end_1(long cnt);
-
-static int sddev_disable_dma_0(void);
-static int sddev_disable_dma_1(void);
-
-static void sddev_sd_int_handler_0(uint32_t int_sense);
-static void sddev_sd_int_handler_1(uint32_t int_sense);
-static void sddev_sdio_int_handler_0(uint32_t int_sense);
-static void sddev_sdio_int_handler_1(uint32_t int_sense);
-static void sddev_start_timer(int msec);
-static void sddev_end_timer(void);
-static int  sddev_check_timer(void);
-
-/******************************************************************************
-* Function Name: int sddev_cmd0_sdio_mount(int sd_port);
-* Description  : Select to issue CMD0 before SDIO Mount
-* Arguments    : none
-* Return Value : SD_OK  : issue CMD0
-*              : SD_ERR : not issue CMD0
-******************************************************************************/
-int sddev_cmd0_sdio_mount(int sd_port)
-{
-#ifdef SDCFG_IO
-    return SD_ERR;
-#else
-    return SD_ERR;
-#endif
-}
-
-/******************************************************************************
-* Function Name: int sddev_cmd8_sdio_mount(int sd_port);
-* Description  : Select to issue CMD8 before SDIO Mount
-* Arguments    : none
-* Return Value : SD_OK  : issue CMD8
-*              : SD_ERR : not issue CMD8
-******************************************************************************/
-int sddev_cmd8_sdio_mount(int sd_port)
-{
-#ifdef SDCFG_IO
-    return SD_OK;
-#else
-    return SD_ERR;
-#endif
-}
-
-
-
-/******************************************************************************
-* Function Name: int sddev_init(void);
-* Description  : Initialize H/W to use SDHI
-* Arguments    : none
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_init(int sd_port)
-{
-	if ( sd_port >= SDHI_COUNT )
-		return SD_ERR;
-
-
-    volatile uint8_t dummy_buf;
-
-    CPG.STBCR12 = 0xF0u;        /* [1], [1], [1], [1], SDHI00, SDHI01, SDHI10, SDHI11           */
-    dummy_buf   = CPG.STBCR12;  /* (Dummy read)                                                 */
-
-
-    for( uint32_t no=0; no < SDHI_PINS_COMMON; no++ )
-    {
-    	if ( pinmap_peripheral(SDHIpin_Common[sd_port][no], PinMap_SDHI_PIN ) != sd_port)
-    	{
-    		return SD_ERR;
-    	}
-    	pinmap_pinout(SDHIpin_Common[sd_port][no], PinMap_SDHI_PIN);
-    }
-
-    sddev_set_port(sd_port, SDHI_PORT_MODE);
-
-#ifdef    SDCFG_HWINT
-	if ( sd_port == (uint32_t)SDHI_0 )
-	{
-	    InterruptHandlerRegister(SDHI0_0_IRQn, sddev_sd_int_handler_0);
-	    GIC_SetPriority(SDHI0_0_IRQn, INT_LEVEL_SDHI);
-	    GIC_EnableIRQ(SDHI0_0_IRQn);
-
-	    InterruptHandlerRegister(SDHI0_3_IRQn, sddev_sd_int_handler_0);
-	    GIC_SetPriority(SDHI0_3_IRQn, INT_LEVEL_SDHI);
-	    GIC_EnableIRQ(SDHI0_3_IRQn);
-
-	    InterruptHandlerRegister(SDHI0_1_IRQn, sddev_sdio_int_handler_0);
-	    GIC_SetPriority(SDHI0_1_IRQn, INT_LEVEL_SDHI);
-	    GIC_EnableIRQ(SDHI0_1_IRQn);
-	}
-	else if ( sd_port == (uint32_t)SDHI_1 )
-	{
-	    InterruptHandlerRegister(SDHI1_0_IRQn, sddev_sd_int_handler_1);
-	    GIC_SetPriority(SDHI1_0_IRQn, INT_LEVEL_SDHI);
-	    GIC_EnableIRQ(SDHI1_0_IRQn);
-
-	    InterruptHandlerRegister(SDHI1_3_IRQn, sddev_sd_int_handler_1);
-	    GIC_SetPriority(SDHI1_3_IRQn, INT_LEVEL_SDHI);
-	    GIC_EnableIRQ(SDHI1_3_IRQn);
-
-	    InterruptHandlerRegister(SDHI1_1_IRQn, sddev_sdio_int_handler_1);
-	    GIC_SetPriority(SDHI1_1_IRQn, INT_LEVEL_SDHI);
-	    GIC_EnableIRQ(SDHI1_1_IRQn);
-	}
-#endif
-
-    /* ---- wait card detect ---- */
-    osDelay(1000);			/* wait 1s */
-
-    return SD_OK;
-}
-
-
-/******************************************************************************
-* Function Name: int sddev_power_on(int sd_port);
-* Description  : Power-on H/W to use SDHI
-* Arguments    : none
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_power_on(int sd_port)
-{
-    /* ---Power On SD ---- */
-
-    /* ---- Wait for  SD Wake up ---- */
-	osDelay(100);            /* wait 100ms */
-
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: int sddev_power_off(int sd_port);
-* Description  : Power-off H/W to use SDHI
-* Arguments    : none
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_power_off(int sd_port)
-{
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: int sddev_read_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num);
-* Description  : read from SDHI buffer FIFO
-* Arguments    : unsigned char *buff    : buffer addrees to store reading datas
-*              : unsigned long reg_addr : SDIP FIFO address
-*              : long num               : counts to read(unit:byte)
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_read_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num)
-{
-    long i;
-    long cnt;
-    unsigned long *reg;
-    unsigned long *ptr_l;
-    unsigned char *ptr_c;
-    unsigned long tmp;
-
-    reg = (unsigned long *)(reg_addr);
-
-    cnt = (num / 4);
-    if(((unsigned long)buff & 0x3) != 0)
-    {
-        ptr_c = (unsigned char *)buff;
-        for(i = cnt; i > 0 ; i--)
-        {
-            tmp = *reg;
-            *ptr_c++ = (unsigned char)(tmp);
-            *ptr_c++ = (unsigned char)(tmp >> 8);
-            *ptr_c++ = (unsigned char)(tmp >> 16);
-            *ptr_c++ = (unsigned char)(tmp >> 24);
-        }
-
-        cnt = (num % 4);
-        if( cnt != 0 )
-        {
-            tmp = *reg;
-            for(i = cnt; i > 0 ; i--)
-            {
-                *ptr_c++ = (unsigned char)(tmp);
-                tmp >>= 8;
-            }
-        }
-    }
-    else
-    {
-        ptr_l = (unsigned long *)buff;
-        for(i = cnt; i > 0 ; i--)
-        {
-            *ptr_l++ = *reg;
-        }
-
-        cnt = (num % 4);
-        if( cnt != 0 )
-        {
-            ptr_c = (unsigned char *)ptr_l;
-            tmp = *reg;
-            for(i = cnt; i > 0 ; i--)
-            {
-                *ptr_c++ = (unsigned char)(tmp);
-                tmp >>= 8;
-            }
-        }
-    }
-
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: int sddev_write_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num);
-* Description  : write to SDHI buffer FIFO
-* Arguments    : unsigned char *buff    : buffer addrees to store writting datas
-*              : unsigned long reg_addr : SDIP FIFO address
-*              : long num               : counts to write(unit:byte)
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_write_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num)
-{
-    long i;
-    unsigned long *reg = (unsigned long *)(reg_addr);
-    unsigned long *ptr = (unsigned long *)buff;
-    unsigned long tmp;
-
-    /* dont care non 4byte allignment data */
-    num += 3;
-    num /= 4;
-    if(((unsigned long)buff & 0x3) != 0)
-    {
-        for(i = num; i > 0 ; i--)
-        {
-            tmp  = *buff++ ;
-            tmp |= *buff++ << 8;
-            tmp |= *buff++ << 16;
-            tmp |= *buff++ << 24;
-            *reg = tmp;
-        }
-    }
-    else
-    {
-        for(i = num; i > 0 ; i--)
-        {
-            *reg = *ptr++;
-        }
-    }
-
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: unsigned int sddev_get_clockdiv(int sd_port, int clock);
-* Description  : write to SDHI buffer FIFO
-* Arguments    : int clock : request clock frequency
-*              :   SD_CLK_50MHz
-*              :   SD_CLK_25MHz
-*              :   SD_CLK_20MHz
-*              :   SD_CLK_10MHz
-*              :   SD_CLK_5MHz
-*              :   SD_CLK_1MHz
-*              :   SD_CLK_400kHz
-* Return Value : clock div value
-*              :   SD_DIV_2 : 1/2   clock
-*              :   SD_DIV_2 : 1/4   clock
-*              :   SD_DIV_2 : 1/8   clock
-*              :   SD_DIV_2 : 1/16  clock
-*              :   SD_DIV_2 : 1/128 clock
-*              :   SD_DIV_2 : 1/256 clock
-******************************************************************************/
-unsigned int sddev_get_clockdiv(int sd_port, int clock)
-{
-    unsigned int div;
-
-    switch(clock)
-    {
-    case SD_CLK_50MHz:
-        div = SD_DIV_2;        /* 64MHz/2 = 32MHz */
-        break;
-    case SD_CLK_25MHz:
-        div = SD_DIV_4;        /* 64MHz/4 = 16MHz */
-        break;
-    case SD_CLK_20MHz:
-        div = SD_DIV_4;        /* 64MHz/4 = 16MHz */
-        break;
-    case SD_CLK_10MHz:
-        div = SD_DIV_8;        /* 64MHz/8 = 8MHz */
-        break;
-    case SD_CLK_5MHz:
-        div = SD_DIV_16;       /* 64MHz/16 = 4MHz */
-        break;
-    case SD_CLK_1MHz:
-        div = SD_DIV_128;      /* 64MHz/128 = 512kHz */
-        break;
-    case SD_CLK_400kHz:
-        div = SD_DIV_256;      /* 64MHz/256 = 256kHz */
-        break;
-    default:
-        div = SD_DIV_256;
-        break;
-    }
-
-    return div;
-}
-
-/******************************************************************************
-* Function Name: int sddev_set_port(int sd_port, int mode);
-* Description  : setting ports to use MMCHI
-* Arguments    : int mode : SD_PORT_PARALLEL : 4bit mode
-*                         : SD_PORT_SERIAL   : 1bit mode
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_set_port(int sd_port, int mode)
-{
-	if ( sd_port >= SDHI_COUNT)
-		return SD_ERR;
-
-    if(mode == SD_PORT_SERIAL)
-    {
-        for( uint32_t no=0; no < SDHI_PINS_SERIAL; no++ )
-        {
-        	if ( pinmap_peripheral(SDHIpin_serial[sd_port][no], PinMap_SDHI_PIN ) != sd_port)
-        	{
-        		return SD_ERR;
-        	}
-        	pinmap_pinout(SDHIpin_serial[sd_port][no], PinMap_SDHI_PIN);
-        }
-    }
-    else if( mode == SD_PORT_PARALLEL )
-    {
-        for( uint32_t no=0; no < SDHI_PINS_PARALLEL; no++ )
-        {
-        	if ( pinmap_peripheral(SDHIpin_parallel[sd_port][no], PinMap_SDHI_PIN ) != sd_port)
-        	{
-        		return SD_ERR;
-        	}
-        	pinmap_pinout(SDHIpin_parallel[sd_port][no], PinMap_SDHI_PIN);
-        }
-    }
-    else
-    {
-    	return SD_ERR;
-    }
-
-    return SD_OK;
-}
-
-
-/******************************************************************************
-* Function Name: int sddev_int_wait(int sd_port, int time);
-* Description  : Waitting for SDHI Interrupt
-* Arguments    : int time : time out value to wait interrupt
-* Return Value : get interrupt : SD_OK
-*              : time out      : SD_ERR
-******************************************************************************/
-int sddev_int_wait(int sd_port, int time)
-{
-    sddev_start_timer(time);
-    while( sddev_check_timer() == SD_OK )
-    {
-        /* interrupt generated? */
-        if(sd_check_int(sd_port) == SD_OK)
-        {
-            sddev_end_timer();
-            return SD_OK;
-        }
-    }
-
-    sddev_end_timer();
-
-    return SD_ERR;
-}
-
-/******************************************************************************
-* Function Name: int sddev_init_dma(unsigned long buff,unsigned long reg,long cnt,int dir);
-* Description  : Initialize DMAC to transfer data from SDHI FIFO
-* Arguments    : unsigned long buff : buffer addrees to transfer datas
-*              : unsigned long reg  : SDIP FIFO address
-*              : long cnt           : counts to transfer(unit:byte)
-*              : int dir            : direction to transfer
-*              :                    :   0 : FIFO -> buffer
-*              :                    :   1 : buffer -> FIFO
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_init_dma(int sd_port, unsigned long buff,unsigned long reg,long cnt,int dir)
-{
-    int ret;
-
-    if( sd_port == 0 )
-    {
-        ret = sddev_init_dma_0(buff, reg, cnt, dir);
-    }
-    else if( sd_port == 1 )
-    {
-        ret = sddev_init_dma_1(buff, reg, cnt, dir);
-    }
-
-    return ret;
-}
-
-/******************************************************************************
-* Function Name: static int sddev_init_dma_0(unsigned long buff,unsigned long reg,long cnt,int dir);
-* Description  : Initialize DMAC to transfer data from SDHI FIFO
-* Arguments    : unsigned long buff : buffer addrees to transfer datas
-*              : unsigned long reg  : SDIP FIFO address
-*              : long cnt           : counts to transfer(unit:byte)
-*              : int dir            : direction to transfer
-*              :                    :   0 : FIFO -> buffer
-*              :                    :   1 : buffer -> FIFO
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-static int sddev_init_dma_0(unsigned long buff,unsigned long reg,long cnt,int dir)
-{
-#ifdef    SDCFG_TRNS_DMA
-    dmac_transinfo_t    trans_info;
-    uint32_t            request_factor;
-    int32_t             ret;
-
-    trans_info.count     = (uint32_t)cnt;
-    #ifdef SDCFG_TRANS_DMA_64
-    if( (cnt % 64) != 0 )
-    {
-        trans_info.src_size  = DMAC_TRANS_SIZE_32;
-        trans_info.dst_size  = DMAC_TRANS_SIZE_32;
-        if( reg & 0x0000003f )
-        {
-            trans_info.src_size  = DMAC_TRANS_SIZE_32;
-            trans_info.dst_size  = DMAC_TRANS_SIZE_32;
-        }
-    }
-    else
-    {
-        trans_info.src_size  = DMAC_TRANS_SIZE_512;
-        trans_info.dst_size  = DMAC_TRANS_SIZE_512;
-    }
-    #else
-    trans_info.src_size  = DMAC_TRANS_SIZE_32;
-    trans_info.dst_size  = DMAC_TRANS_SIZE_32;
-    #endif
-
-    if( dir == 0 )
-    {
-        request_factor       = DMAC_REQ_SDHI_0_RX;
-        trans_info.src_addr  = (uint32_t)reg;
-        trans_info.dst_addr  = (uint32_t)buff;
-        trans_info.saddr_dir = DMAC_TRANS_ADR_NO_INC;
-        trans_info.daddr_dir = DMAC_TRANS_ADR_INC;
-    }
-    else if( dir == 1 )
-    {
-        request_factor       = DMAC_REQ_SDHI_0_TX;
-        trans_info.src_addr  = (uint32_t)buff;
-        trans_info.dst_addr  = (uint32_t)reg;
-        trans_info.saddr_dir = DMAC_TRANS_ADR_INC;
-        trans_info.daddr_dir = DMAC_TRANS_ADR_NO_INC;
-    }
-
-    sd_DMAC1_PeriReqInit(    (const dmac_transinfo_t *)&trans_info,
-                            DMAC_MODE_REGISTER,
-                            DMAC_SAMPLE_SINGLE,
-                            request_factor,
-                            0    );        /* Dont care DMAC_REQ_REQD is setting in usb0_host_DMAC1_PeriReqInit() */
-
-    ret = sd_DMAC1_Open(DMAC_REQ_MODE_PERI);
-    if( ret != 0 )
-    {
-        printf("DMAC1 Open error!!\n");
-        return SD_ERR;
-    }
-#endif
-
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: static int sddev_init_dma_1(unsigned long buff,unsigned long reg,long cnt,int dir);
-* Description  : Initialize DMAC to transfer data from SDHI FIFO
-* Arguments    : unsigned long buff : buffer address to transfer datas
-*              : unsigned long reg  : SDIP FIFO address
-*              : long cnt           : counts to transfer(unit:byte)
-*              : int dir            : direction to transfer
-*              :                    :   0 : FIFO -> buffer
-*              :                    :   1 : buffer -> FIFO
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-static int sddev_init_dma_1(unsigned long buff,unsigned long reg,long cnt,int dir)
-{
-#ifdef    SDCFG_TRNS_DMA
-    dmac_transinfo_t    trans_info;
-    uint32_t            request_factor;
-    int32_t             ret;
-
-    trans_info.count     = (uint32_t)cnt;
-    #ifdef SDCFG_TRANS_DMA_64
-    if( (cnt % 64) != 0 )
-    {
-        trans_info.src_size  = DMAC_TRANS_SIZE_32;
-        trans_info.dst_size  = DMAC_TRANS_SIZE_32;
-        if( reg & 0x0000003f )
-        {
-            trans_info.src_size  = DMAC_TRANS_SIZE_32;
-            trans_info.dst_size  = DMAC_TRANS_SIZE_32;
-        }
-    }
-    else
-    {
-        trans_info.src_size  = DMAC_TRANS_SIZE_512;
-        trans_info.dst_size  = DMAC_TRANS_SIZE_512;
-    }
-    #else
-    trans_info.src_size  = DMAC_TRANS_SIZE_32;
-    trans_info.dst_size  = DMAC_TRANS_SIZE_32;
-    #endif
-
-    if( dir == 0 )
-    {
-        request_factor       = DMAC_REQ_SDHI_1_RX;
-        trans_info.src_addr  = (uint32_t)reg;
-        trans_info.dst_addr  = (uint32_t)buff;
-        trans_info.saddr_dir = DMAC_TRANS_ADR_NO_INC;
-        trans_info.daddr_dir = DMAC_TRANS_ADR_INC;
-    }
-    else if( dir == 1 )
-    {
-        request_factor       = DMAC_REQ_SDHI_1_TX;
-        trans_info.src_addr  = (uint32_t)buff;
-        trans_info.dst_addr  = (uint32_t)reg;
-        trans_info.saddr_dir = DMAC_TRANS_ADR_INC;
-        trans_info.daddr_dir = DMAC_TRANS_ADR_NO_INC;
-    }
-
-    sd_DMAC2_PeriReqInit(    (const dmac_transinfo_t *)&trans_info,
-                            DMAC_MODE_REGISTER,
-                            DMAC_SAMPLE_SINGLE,
-                            request_factor,
-                            0    );        /* Dont care DMAC_REQ_REQD is setting in usb0_host_DMAC1_PeriReqInit() */
-
-    ret = sd_DMAC2_Open(DMAC_REQ_MODE_PERI);
-    if( ret != 0 )
-    {
-        printf("DMAC1 Open error!!\n");
-        return SD_ERR;
-    }
-#endif
-
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: int sddev_wait_dma_end(int sd_port, long cnt);
-* Description  : Wait to complete DMAC transfer
-* Arguments    : long cnt           : counts to transfer(unit:byte)
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_wait_dma_end(int sd_port, long cnt)
-{
-    int ret;
-
-    if( sd_port == 0 )
-    {
-        ret = sddev_wait_dma_end_0(cnt);
-    }
-    else if( sd_port == 1 )
-    {
-        ret = sddev_wait_dma_end_1(cnt);
-    }
-
-    return ret;
-}
-
-/******************************************************************************
-* Function Name: static int sddev_wait_dma_end_0(long cnt);
-* Description  : Wait to complete DMAC transfer
-* Arguments    : long cnt           : counts to transfer(unit:byte)
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-static int sddev_wait_dma_end_0(long cnt)
-{
-#ifdef    SDCFG_TRNS_DMA
-    int loop;
-    int time;
-
-    time = (cnt / 512);
-    time = ((time * 1000) / 1024);
-    if(time < 1000)
-    {
-        time = 1000;
-    }
-
-    if(time > (0x0000ffff / MTU_TIMER_CNT))
-    {
-        /* @1000ms */
-        loop = (time / 1000);
-        if( (time % 1000) != 0 )
-        {
-            loop++;
-        }
-        time = 1000;
-    }
-    else
-    {
-        loop = 1;
-    }
-
-    do{
-        sddev_start_timer(time);
-
-        while(1)
-        {
-            /* get end flag? */
-            if( sd_DMAC1_Get_Endflag() == 1 )
-            {
-                sddev_end_timer();
-                return SD_OK;
-            }
-            /* detect timeout? */
-            if(sddev_check_timer() == SD_ERR)
-            {
-                break;
-            }
-        }
-
-        loop--;
-        if( loop <= 0 )
-        {
-            break;
-        }
-
-    } while(1);
-
-    sddev_end_timer();
-
-    return SD_ERR;
-#else
-    return SD_OK;
-
-#endif
-}
-
-/******************************************************************************
-* Function Name: static int sddev_wait_dma_end_1(long cnt);
-* Description  : Wait to complete DMAC transfer
-* Arguments    : long cnt           : counts to transfer(unit:byte)
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-static int sddev_wait_dma_end_1(long cnt)
-{
-#ifdef    SDCFG_TRNS_DMA
-    int loop;
-    int time;
-
-    time = (cnt / 512);
-    time = ((time * 1000) / 1024);
-    if(time < 1000)
-    {
-        time = 1000;
-    }
-
-    if(time > (0x0000ffff / MTU_TIMER_CNT))
-    {
-        /* @1000ms */
-        loop = (time / 1000);
-        if( (time % 1000) != 0 )
-        {
-            loop++;
-        }
-        time = 1000;
-    }
-    else
-    {
-        loop = 1;
-    }
-
-    do{
-        sddev_start_timer(time);
-
-        while(1)
-        {
-            /* get end flag? */
-            if( sd_DMAC2_Get_Endflag() == 1 )
-            {
-                sddev_end_timer();
-                return SD_OK;
-            }
-            /* detect timeout? */
-            if(sddev_check_timer() == SD_ERR)
-            {
-                break;
-            }
-        }
-
-        loop--;
-        if( loop <= 0 )
-        {
-            break;
-        }
-
-    } while(1);
-
-    sddev_end_timer();
-
-    return SD_ERR;
-#else
-    return SD_OK;
-
-#endif
-}
-
-/******************************************************************************
-* Function Name: int sddev_disable_dma(int sd_port);
-* Description  : Disable DMAC transfer
-* Arguments    : none
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_disable_dma(int sd_port)
-{
-    int ret;
-
-    if( sd_port == 0 )
-    {
-        ret = sddev_disable_dma_0();
-    }
-    else
-    {
-        ret = sddev_disable_dma_1();
-    }
-    return ret;
-}
-
-/******************************************************************************
-* Function Name: static int sddev_disable_dma_0(void);
-* Description  : Disable DMAC transfer
-* Arguments    : none
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-static int sddev_disable_dma_0(void)
-{
-#ifdef    SDCFG_TRNS_DMA
-    uint32_t    remain;
-
-    sd_DMAC1_Close(&remain);
-#endif
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: staticint sddev_disable_dma_1(void);
-* Description  : Disable DMAC transfer
-* Arguments    : none
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-static int sddev_disable_dma_1(void)
-{
-#ifdef    SDCFG_TRNS_DMA
-    uint32_t    remain;
-
-    sd_DMAC2_Close(&remain);
-#endif
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: int sddev_loc_cpu(int sd_port);
-* Description  : lock cpu to disable interrupt
-* Arguments    : none
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_loc_cpu(int sd_port)
-{
-#if 0
-    R_INTC_GetMaskLevel(&g_sdhi_priority_backup);
-    R_INTC_SetMaskLevel(0);
-    core_util_critical_section_enter();
-#endif
-
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: int sddev_unl_cpu(int sd_port);
-* Description  : unlock cpu to enable interrupt
-* Arguments    : none
-* Return Value : success : SD_OK
-*              : fail    : SD_ERR
-******************************************************************************/
-int sddev_unl_cpu(int sd_port)
-{
-#if 0
-    R_INTC_SetMaskLevel(g_sdhi_priority_backup);
-    core_util_critical_section_exit();
-#endif
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: int sddev_finalize(int sd_port);
-* Description  : finalize SDHI
-* Arguments    : none
-* Return Value : none
-******************************************************************************/
-int sddev_finalize(int sd_port)
-{
-    return SD_OK;
-}
-
-/******************************************************************************
-* Function Name: static void sddev_sd_int_handler_0(uint32_t int_sense);
-* Description  : Setting Interrupt function for SDHI(INTC_ID_SDHI0_0,INTC_ID_SDHI0_3)
-* Arguments    : Interrupt mode
-* Return Value : none
-******************************************************************************/
-static void sddev_sd_int_handler_0(uint32_t int_sense)
-{
-    sd_int_handler(0);
-}
-
-/******************************************************************************
-* Function Name: static void sddev_sd_int_handler_1(uint32_t int_sense);
-* Description  : Setting Interrupt function for SDHI(INTC_ID_SDHI0_0,INTC_ID_SDHI0_3)
-* Arguments    : Interrupt mode
-* Return Value : none
-******************************************************************************/
-static void sddev_sd_int_handler_1(uint32_t int_sense)
-{
-    sd_int_handler(1);
-}
-
-/******************************************************************************
-* Function Name: static void sddev_sdio_int_handler_0(uint32_t int_sense);
-* Description  : Setting Interrupt function for SDHI(INTC_ID_SDHI0_1)
-* Arguments    : Interrupt mode
-* Return Value : none
-******************************************************************************/
-static void sddev_sdio_int_handler_0(uint32_t int_sense)
-{
-    sdio_int_handler(0);
-}
-
-/******************************************************************************
-* Function Name: static void sddev_sdio_int_handler_1(uint32_t int_sense);
-* Description  : Setting Interrupt function for SDHI(INTC_ID_SDHI1_1)
-* Arguments    : Interrupt mode
-* Return Value : none
-******************************************************************************/
-static void sddev_sdio_int_handler_1(uint32_t int_sense)
-{
-    sdio_int_handler(1);
-}
-
-/******************************************************************************
-* Function Name: static void sddev_start_timer(int msec);
-* Description  : start timer
-* Arguments    : 
-* Return Value : none
-******************************************************************************/
-static void sddev_start_timer(int msec)
-{
-	_ticker = get_us_ticker_data();
-    _ulStart = ticker_read(_ticker);
-    _ulDelta = msec*1000ul;
-}
-
-/******************************************************************************
-* Function Name: static void sddev_end_timer(void);
-* Description  : end timer
-* Arguments    : 
-* Return Value : none
-******************************************************************************/
-static void sddev_end_timer(void)
-{
-    _ulStart = 0ul;
-    _ulDelta = 0ul;
-}
-
-/******************************************************************************
-* Function Name: static int sddev_check_timer(void);
-* Description  : check
-* Arguments    : 
-* Return Value : t
-******************************************************************************/
-static int sddev_check_timer(void)
-{
-	if ( _ulStart && _ulDelta )
-	{
-		return ((ticker_read(_ticker)-_ulStart) < _ulDelta) ? SD_OK : SD_ERR;
-	}
-	else
-	{
-		return SD_ERR;
-	}
-}
-
-/* End of File */
-
--- a/mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/SDHI_driver/sdif.h	Mon Mar 18 12:48:38 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/******************************************************************************
-*   DISCLAIMER
-*
-*   This software is supplied by Renesas Electronics Corporation and is only 
-*   intended for use with Renesas products. No other uses are authorized.
-*
-*   This software is owned by Renesas Electronics Corporation and is protected under 
-*   all applicable laws, including copyright laws.
-*
-*   THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES 
-*   REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, 
-*   INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
-*   PARTICULAR PURPOSE AND NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY 
-*   DISCLAIMED.
-*
-*   TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS 
-*   ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE 
-*   FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES 
-*   FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS
-*   AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-*
-*   Renesas reserves the right, without notice, to make changes to this 
-*   software and to discontinue the availability of this software.
-*   By using this software, you agree to the additional terms and 
-*   conditions found by accessing the following link: 
-*   http://www.renesas.com/disclaimer
-********************************************************************************
-* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. 
-**************************** Technical reference data **************************
-*   System Name : SD Driver Sample Program
-*   File Name   : sdif.h
-*   Abstract    : SD Memory card driver configration
-*   Version     : 4.00.00
-*   Device      : Aragon
-*   Tool-Chain  : DS-5 Ver 5.13
-*                 ARM Complier 
-*   OS          : None
-*   H/W Platform: 
-*   Description : 
-********************************************************************************
-*   History     : 2013.07.12 Ver.4.00.00
-*******************************************************************************/
-#ifndef _SDDRV_H_
-#define _SDDRV_H_
-
-#ifdef    __cplusplus
-extern "C" {
-#endif    /* __cplusplus    */
-
-/* ==== define  ==== */
-/* ---- SD Driver work buffer ---- */
-#define SD_SIZE_OF_INIT           800
-
-/* ---- error code ---- */
-#define SD_OK_LOCKED_CARD         1                  /* OK but card is locked status */
-#define SD_OK                     0                  /* OK */
-#define SD_ERR                    -1                 /* general error */
-#define SD_ERR_WP                 -2                 /* write protect error */
-#define SD_ERR_RO                 -3                 /* read only error */
-#define SD_ERR_RES_TOE            -4                 /* response time out error */
-#define SD_ERR_CARD_TOE           -5                 /* card time out error */
-#define SD_ERR_END_BIT            -6                 /* end bit error */
-#define SD_ERR_CRC                -7                 /* CRC error */
-#define SD_ERR_CARD_RES           -8                 /* card response error */
-#define SD_ERR_HOST_TOE           -9                 /* host time out error */
-#define SD_ERR_CARD_ERASE         -10                /* card erase error */
-#define SD_ERR_CARD_LOCK          -11                /* card lock error */
-#define SD_ERR_CARD_UNLOCK        -12                /* card unlock error */
-#define SD_ERR_HOST_CRC           -13                /* host CRC error */
-#define SD_ERR_CARD_ECC           -14                /* card internal ECC error */
-#define SD_ERR_CARD_CC            -15                /* card internal error */
-#define SD_ERR_CARD_ERROR         -16                /* unknown card error */
-#define SD_ERR_CARD_TYPE          -17                /* non support card type */
-#define SD_ERR_NO_CARD            -18                /* no card */
-#define SD_ERR_ILL_READ           -19                /* illegal buffer read */
-#define SD_ERR_ILL_WRITE          -20                /* illegal buffer write */
-#define SD_ERR_AKE_SEQ            -21                /* the sequence of authentication process */
-#define SD_ERR_OVERWRITE          -22                /* CID/CSD overwrite error */
-/* 23-29 */
-#define SD_ERR_CPU_IF             -30                /* target CPU interface function error  */
-#define SD_ERR_STOP               -31                /* user stop */
-/* 32-49 */
-#define SD_ERR_CSD_VER            -50                /* CSD register version error */
-#define SD_ERR_SCR_VER            -51                /* SCR register version error */
-#define SD_ERR_FILE_FORMAT        -52                /* CSD register file format error  */
-#define SD_ERR_NOTSUP_CMD         -53                /* not supported command  */
-/* 54-59 */
-#define SD_ERR_ILL_FUNC           -60                /* invalid function request error */
-#define SD_ERR_IO_VERIFY          -61                /* direct write verify error */
-#define SD_ERR_IO_CAPAB           -62                /* IO capability error */
-/* 63-69 */
-#define SD_ERR_IFCOND_VER         -70                /* Interface condition version error */
-#define SD_ERR_IFCOND_VOLT        -71                /* Interface condition voltage error */
-#define SD_ERR_IFCOND_ECHO        -72                /* Interface condition echo back pattern error */
-/* 73-79 */
-#define SD_ERR_OUT_OF_RANGE       -80                /* the argument was out of range */
-#define SD_ERR_ADDRESS_ERROR      -81                /* misassigned address */
-#define SD_ERR_BLOCK_LEN_ERROR    -82                /* transfered block length is not allowed */
-#define SD_ERR_ILLEGAL_COMMAND    -83                /* Command not legal  */
-#define SD_ERR_RESERVED_ERROR18   -84                /* Reserved bit 18 Error */
-#define SD_ERR_RESERVED_ERROR17   -85                /* Reserved bit 17 Error */
-#define SD_ERR_CMD_ERROR          -86                /* SD_INFO2 bit  0 CMD error */
-#define SD_ERR_CBSY_ERROR         -87                /* SD_INFO2 bit 14 CMD Type Reg Busy error */
-#define SD_ERR_NO_RESP_ERROR      -88                /* SD_INFO1 bit  0 No Response error */
-/* 89 */
-/* 90-95 */
-#define SD_ERR_ERROR              -96                /* SDIO ERROR */
-#define SD_ERR_FUNCTION_NUMBER    -97                /* SDIO FUNCTION NUMBER ERROR */
-#define SD_ERR_COM_CRC_ERROR      -98                /* SDIO CRC ERROR */
-#define SD_ERR_INTERNAL           -99                /* driver software internal error */
-
-/* ---- driver mode ---- */
-#define SD_MODE_POLL              0x0000ul           /* status check mode is software polling */
-#define SD_MODE_HWINT             0x0001ul           /* status check mode is hardware interrupt */
-#define SD_MODE_SW                0x0000ul           /* data transfer mode is software */
-#define SD_MODE_DMA               0x0002ul           /* data transfer mode is DMA */
-#define SD_MODE_DMA_64            0x0004ul           /* data transfer mode is DMA with 64 byte burst mode */
-
-/* ---- support mode ---- */
-#define SD_MODE_MEM               0x0000ul           /* memory cards only are supported */
-#define SD_MODE_IO                0x0010ul           /* memory and io cards are supported */
-#define SD_MODE_COMBO             0x0030ul           /* memory ,io and combo cards are supported */
-#define SD_MODE_DS                0x0000ul           /* only default speed mode is supported */
-#define SD_MODE_HS                0x0040ul           /* high speed mode is also supported */
-#define SD_MODE_VER1X             0x0000ul           /* ver1.1 host */
-#define SD_MODE_VER2X             0x0080ul           /* ver2.x host (high capacity and dual voltage) */
-#define SD_MODE_1BIT              0x0100ul           /* SD Mode 1bit only is supported */
-#define SD_MODE_4BIT              0x0000ul           /* SD Mode 1bit and 4bit is supported */
-
-/* ---- media voltage ---- */
-#define SD_VOLT_1_7               0x00000010ul       /* low voltage card minimum */
-#define SD_VOLT_1_8               0x00000020ul
-#define SD_VOLT_1_9               0x00000040ul
-#define SD_VOLT_2_0               0x00000080ul
-#define SD_VOLT_2_1               0x00000100ul       /* basic communication minimum */
-#define SD_VOLT_2_2               0x00000200ul
-#define SD_VOLT_2_3               0x00000400ul
-#define SD_VOLT_2_4               0x00000800ul
-#define SD_VOLT_2_5               0x00001000ul
-#define SD_VOLT_2_6               0x00002000ul
-#define SD_VOLT_2_7               0x00004000ul
-#define SD_VOLT_2_8               0x00008000ul       /* memory access minimum */
-#define SD_VOLT_2_9               0x00010000ul
-#define SD_VOLT_3_0               0x00020000ul
-#define SD_VOLT_3_1               0x00040000ul
-#define SD_VOLT_3_2               0x00080000ul
-#define SD_VOLT_3_3               0x00100000ul
-#define SD_VOLT_3_4               0x00200000ul
-#define SD_VOLT_3_5               0x00400000ul
-#define SD_VOLT_3_6               0x00800000ul
-
-/* ---- memory card write mode ---- */
-#define SD_WRITE_WITH_PREERASE    0x0000u            /* pre-erease write */
-#define SD_WRITE_OVERWRITE        0x0001u            /* overwrite  */
-
-/* ---- io register write mode ---- */
-#define SD_IO_SIMPLE_WRITE        0x0000u            /* just write */
-#define SD_IO_VERIFY_WRITE        0x0001u            /* read after write */
-
-/* ---- io operation code ---- */
-#define SD_IO_FIXED_ADDR          0x0000u            /* R/W fixed address */
-#define SD_IO_INCREMENT_ADDR      0x0001u            /* R/W increment address */
-#define SD_IO_FORCE_BYTE          0x0010u            /* byte access only  */
-
- /* ---- media type ---- */
-#define SD_MEDIA_UNKNOWN          0x0000u            /* unknown media */
-#define SD_MEDIA_MMC              0x0010u            /* MMC card */
-#define SD_MEDIA_SD               0x0020u            /* SD Memory card */
-#define SD_MEDIA_IO               0x0001u            /* SD IO card */
-#define SD_MEDIA_MEM              0x0030u            /* Memory card */
-#define SD_MEDIA_COMBO            0x0021u            /* SD COMBO card */
-#define SD_MEDIA_EMBEDDED         0x8000u            /* embedded media */
-
-/* ---- write protect info --- */
-#define SD_WP_OFF                 0x0000u            /* card is not write protect */
-#define SD_WP_HW                  0x0001u            /* card is H/W write protect */
-#define SD_WP_TEMP                0x0002u            /* card is TEMP_WRITE_PROTECT */
-#define SD_WP_PERM                0x0004u            /* card is PERM_WRITE_PROTECT */
-#define SD_WP_ROM                 0x0010u            /* card is SD-ROM */
-
-/* ---- SD clock div ---- */    /* IMCLK is host controller clock */
-#define SD_DIV_512                0x0080u            /* SDCLOCK = IMCLK/512 */
-#define SD_DIV_256                0x0040u            /* SDCLOCK = IMCLK/256 */
-#define SD_DIV_128                0x0020u            /* SDCLOCK = IMCLK/128 */
-#define SD_DIV_64                 0x0010u            /* SDCLOCK = IMCLK/64 */
-#define SD_DIV_32                 0x0008u            /* SDCLOCK = IMCLK/32 */
-#define SD_DIV_16                 0x0004u            /* SDCLOCK = IMCLK/16 */
-#define SD_DIV_8                  0x0002u            /* SDCLOCK = IMCLK/8 */
-#define SD_DIV_4                  0x0001u            /* SDCLOCK = IMCLK/4 */
-#define SD_DIV_2                  0x0000u            /* SDCLOCK = IMCLK/2 */
-#define SD_DIV_1                  0x00FFu            /* SDCLOCK = IMCLK (option) */
-
-/* ---- SD clock define ---- */    /* max frequency */
-#define SD_CLK_400kHz             0x0000u            /* 400kHz */
-#define SD_CLK_1MHz               0x0001u            /* 1MHz */
-#define SD_CLK_5MHz               0x0002u            /* 5MHz */
-#define SD_CLK_10MHz              0x0003u            /* 10MHz */
-#define SD_CLK_20MHz              0x0004u            /* 20MHz */
-#define SD_CLK_25MHz              0x0005u            /* 25MHz */
-#define SD_CLK_50MHz              0x0006u            /* 50MHz (phys spec ver1.10) */
-
-/* ---- speed class ---- */
-#define SD_SPEED_CLASS_0          0x00u              /* not defined, or less than ver2.0 */
-#define SD_SPEED_CLASS_2          0x01u              /* 2MB/sec */
-#define SD_SPEED_CLASS_4          0x02u              /* 4MB/sec */
-#define SD_SPEED_CLASS_6          0x03u              /* 6MB/sec */
-
-/* ---- IO initialize flags define ---- */    /* add for IO */
-#define SD_IO_INT_ENAB            0x10u              /* interrupt enable */
-#define SD_IO_POWER_INIT          0x04u              /* power on initialized */
-#define SD_IO_MEM_INIT            0x02u              /* memory initialized */
-#define SD_IO_FUNC_INIT           0x01u              /* io func initialized */
-
-/* ---- IO function's information ---- */    /* add for IO */
-#define SD_IO_FUNC_READY          0x80u              /* io redy */
-#define SD_IO_FUNC_NUM            0x70u              /* number of io func */
-#define SD_IO_FUNC_EXISTS         0x04u              /* memory present */
-
-/* ---- SD port mode ---- */
-#define SD_PORT_SERIAL            0x0000u            /* 1bit mode */
-#define SD_PORT_PARALLEL          0x0001u            /* 4bits mode */
-
-/* ---- SD Card detect port ---- */
-#define SD_CD_SOCKET              0x0000u            /* CD pin */
-#define SD_CD_DAT3                0x0001u            /* DAT3 pin */
-
-/* ---- SD Card detect interrupt ---- */
-#define SD_CD_INT_DISABLE         0x0000u            /* card detect interrupt disable */
-#define SD_CD_INT_ENABLE          0x0001u            /* card detect interrupt enable */
-
-/* ---- format mode ---- */
-#define SD_FORMAT_QUICK           0x0000u            /* quick format */
-#define SD_FORMAT_FULL            0x0001u            /* full format */
-
-/* ---- lock/unlock mode ---- */
-#define SD_FORCE_ERASE            0x08
-#define SD_LOCK_CARD              0x04
-#define SD_UNLOCK_CARD            0x00
-#define SD_CLR_PWD                0x02
-#define SD_SET_PWD                0x01
-
-/* ==== API prototype ===== */
-/* ---- access library I/F ---- */
-int sd_init(int sd_port, unsigned long base, void *workarea, int cd_port);
-int sd_cd_int(int sd_port, int enable,int (*callback)(int, int));
-int sd_check_media(int sd_port);
-int sd_format(int sd_port, int mode,int (*callback)(unsigned long,unsigned long));
-int sd_format2(int sd_port, int mode,unsigned long volserial,int (*callback)(unsigned long,unsigned long));
-int sd_mount(int sd_port, unsigned long mode,unsigned long voltage);
-int sd_read_sect(int sd_port, unsigned char *buff,unsigned long psn,long cnt);
-int sd_write_sect(int sd_port, unsigned char *buff,unsigned long psn,long cnt,int writemode);
-int sd_get_type(int sd_port, unsigned char *type,unsigned char *speed,unsigned char *capa);
-int sd_get_size(int sd_port, unsigned long *user,unsigned long *protect);
-int sd_iswp(int sd_port);
-int sd_unmount(int sd_port);
-void sd_stop(int sd_port);
-int sd_set_intcallback(int sd_port, int (*callback)(int, int));
-void sd_int_handler(int sd_port);
-int sd_get_error(int sd_port);
-int sd_check_int(int sd_port);
-int sd_get_reg(int sd_port, unsigned char *ocr,unsigned char *cid,unsigned char *csd, unsigned char *dsr,unsigned char *scr);
-int sd_get_rca(int sd_port, unsigned char *rca);
-int sd_get_sdstatus(int sd_port, unsigned char *sdstatus);
-int sd_get_speed(int sd_port, unsigned char *clss,unsigned char *move);
-int sd_finalize(int sd_port);
-int sd_set_seccnt(int sd_port, short sectors);
-int sd_get_seccnt(int sd_port);
-int sd_get_ver(int sd_port, unsigned short *sdhi_ver,char *sddrv_ver);
-int sd_set_cdtime(int sd_port, unsigned short cdtime);
-int sd_set_responsetime(int sd_port, unsigned short responsetime);
-int sd_set_buffer(int sd_port, void *buff,unsigned long size);
-int sd_inactive(int sd_port);
-int sd_set_softwp(int sd_port, int is_set,unsigned long data);
-int sd_set_tmpwp(int sd_port, int is_set);
-int sd_lock_unlock(int sd_port, unsigned char code,unsigned char *pwd,unsigned char len);
-
-int esd_get_partition_id(int sd_port, int *id);
-int esd_select_partition(int sd_port, int id);
-int esd_query_partition(int sd_port, int sub, unsigned char *data);
-
-int sdio_read_direct(int sd_port, unsigned char *buff,unsigned long func,unsigned long adr);
-int sdio_write_direct(int sd_port, unsigned char *buff,unsigned long func,unsigned long adr,unsigned long raw_flag);
-int sdio_check_int(int sd_port);
-void sdio_int_handler(int sd_port);
-int sdio_set_intcallback(int sd_port, int (*callback)(int));
-int sdio_enable_int(int sd_port);
-int sdio_disable_int(int sd_port);
-int sdio_read(int sd_port, unsigned char *buff,unsigned long func,unsigned long adr,long cnt,unsigned long op_code);
-int sdio_write(int sd_port, unsigned char *buff,unsigned long func,unsigned long adr,long cnt,unsigned long op_code);
-int sdio_reset(int sd_port);
-int sdio_get_ioocr(int sd_port, unsigned long *ioocr);
-int sdio_get_ioinfo(int sd_port, unsigned char *ioinfo);
-int sdio_get_cia(int sd_port, unsigned char *reg, unsigned char *cis, unsigned long func_num, long cnt);
-int sdio_set_enable(int sd_port, unsigned char func_bit);
-int sdio_get_ready(int sd_port, unsigned char *func_bit);
-int sdio_set_int(int sd_port, unsigned char func_bit,int enab);
-int sdio_get_int(int sd_port, unsigned char *func_bit,int *enab);
-int sdio_set_blocklen(int sd_port, unsigned short len, unsigned long func_num);
-int sdio_get_blocklen(int sd_port, unsigned short *len, unsigned long func_num);
-void sdio_abort(int sd_port, unsigned long func_num);
-int sdio_set_blkcnt(int sd_port, short blocks);
-int sdio_get_blkcnt(int sd_port);
-
-/* ---- target CPU I/F ---- */
-int sddev_init(int sd_port);
-int sddev_power_on(int sd_port);
-int sddev_power_off(int sd_port);
-int sddev_read_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num);
-int sddev_write_data(int sd_port, unsigned char *buff,unsigned long reg_addr,long num);
-unsigned int sddev_get_clockdiv(int sd_port, int clock);
-int sddev_set_port(int sd_port, int mode);
-int sddev_int_wait(int sd_port, int msec);
-int sddev_init_dma(int sd_port, unsigned long buffadr,unsigned long regadr,long cnt,int dir);
-int sddev_wait_dma_end(int sd_port, long cnt);
-int sddev_disable_dma(int sd_port);
-int sddev_finalize(int sd_port);
-int sddev_loc_cpu(int sd_port);
-int sddev_unl_cpu(int sd_port);
-int sddev_cmd0_sdio_mount(int sd_port);
-int sddev_cmd8_sdio_mount(int sd_port);
-
-#ifdef    __cplusplus
-}
-#endif    /* __cplusplus    */
-
-#endif    /* _SDDRV_H_ */
-
-/* End of File */
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/device/inc/iodefines/sdhi_iodefine.h	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,153 @@
+/*******************************************************************************
+* DISCLAIMER
+*******************************************************************************/
+/*******************************************************************************
+* File Name : sdhi_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1
+******************************************************************************/
+#ifndef SDHI_IODEFINE_H
+#define SDHI_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define SDHI0 (*(struct st_sdhi  *)0xE804E000uL) /* SDHI0 */
+#define SDHI1 (*(struct st_sdhi  *)0xE804E800uL) /* SDHI1 */
+
+
+/* Start of channel array defines of SDHI */
+
+/* Channel array defines of SDHI */
+/*(Sample) value = SDHI[ channel ]->SD_CMD; */
+#define SDHI_COUNT  (2)
+#define SDHI_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SDHI0 \
+    &SDHI1 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of SDHI */
+
+
+#define SD_CMD_0           (SDHI0.SD_CMD)
+#define SD_ARG0_0          (SDHI0.SD_ARG0)
+#define SD_ARG1_0          (SDHI0.SD_ARG1)
+#define SD_STOP_0          (SDHI0.SD_STOP)
+#define SD_SECCNT_0        (SDHI0.SD_SECCNT)
+#define SD_RSP00_0         (SDHI0.SD_RSP00)
+#define SD_RSP01_0         (SDHI0.SD_RSP01)
+#define SD_RSP02_0         (SDHI0.SD_RSP02)
+#define SD_RSP03_0         (SDHI0.SD_RSP03)
+#define SD_RSP04_0         (SDHI0.SD_RSP04)
+#define SD_RSP05_0         (SDHI0.SD_RSP05)
+#define SD_RSP06_0         (SDHI0.SD_RSP06)
+#define SD_RSP07_0         (SDHI0.SD_RSP07)
+#define SD_INFO1_0         (SDHI0.SD_INFO1)
+#define SD_INFO2_0         (SDHI0.SD_INFO2)
+#define SD_INFO1_MASK_0    (SDHI0.SD_INFO1_MASK)
+#define SD_INFO2_MASK_0    (SDHI0.SD_INFO2_MASK)
+#define SD_CLK_CTRL_0      (SDHI0.SD_CLK_CTRL)
+#define SD_SIZE_0          (SDHI0.SD_SIZE)
+#define SD_OPTION_0        (SDHI0.SD_OPTION)
+#define SD_ERR_STS1_0      (SDHI0.SD_ERR_STS1)
+#define SD_ERR_STS2_0      (SDHI0.SD_ERR_STS2)
+#define SD_BUF0_0          (SDHI0.SD_BUF0)
+#define SDIO_MODE_0        (SDHI0.SDIO_MODE)
+#define SDIO_INFO1_0       (SDHI0.SDIO_INFO1)
+#define SDIO_INFO1_MASK_0  (SDHI0.SDIO_INFO1_MASK)
+#define CC_EXT_MODE_0      (SDHI0.CC_EXT_MODE)
+#define SOFT_RST_0         (SDHI0.SOFT_RST)
+#define VERSION_0          (SDHI0.VERSION)
+#define EXT_SWAP_0         (SDHI0.EXT_SWAP)
+
+#define SD_CMD_1           (SDHI1.SD_CMD)
+#define SD_ARG0_1          (SDHI1.SD_ARG0)
+#define SD_ARG1_1          (SDHI1.SD_ARG1)
+#define SD_STOP_1          (SDHI1.SD_STOP)
+#define SD_SECCNT_1        (SDHI1.SD_SECCNT)
+#define SD_RSP00_1         (SDHI1.SD_RSP00)
+#define SD_RSP01_1         (SDHI1.SD_RSP01)
+#define SD_RSP02_1         (SDHI1.SD_RSP02)
+#define SD_RSP03_1         (SDHI1.SD_RSP03)
+#define SD_RSP04_1         (SDHI1.SD_RSP04)
+#define SD_RSP05_1         (SDHI1.SD_RSP05)
+#define SD_RSP06_1         (SDHI1.SD_RSP06)
+#define SD_RSP07_1         (SDHI1.SD_RSP07)
+#define SD_INFO1_1         (SDHI1.SD_INFO1)
+#define SD_INFO2_1         (SDHI1.SD_INFO2)
+#define SD_INFO1_MASK_1    (SDHI1.SD_INFO1_MASK)
+#define SD_INFO2_MASK_1    (SDHI1.SD_INFO2_MASK)
+#define SD_CLK_CTRL_1      (SDHI1.SD_CLK_CTRL)
+#define SD_SIZE_1          (SDHI1.SD_SIZE)
+#define SD_OPTION_1        (SDHI1.SD_OPTION)
+#define SD_ERR_STS1_1      (SDHI1.SD_ERR_STS1)
+#define SD_ERR_STS2_1      (SDHI1.SD_ERR_STS2)
+#define SD_BUF0_1          (SDHI1.SD_BUF0)
+#define SDIO_MODE_1        (SDHI1.SDIO_MODE)
+#define SDIO_INFO1_1       (SDHI1.SDIO_INFO1)
+#define SDIO_INFO1_MASK_1  (SDHI1.SDIO_INFO1_MASK)
+#define CC_EXT_MODE_1      (SDHI1.CC_EXT_MODE)
+#define SOFT_RST_1         (SDHI1.SOFT_RST)
+#define VERSION_1          (SDHI1.VERSION)
+#define EXT_SWAP_1         (SDHI1.EXT_SWAP)
+
+typedef struct st_sdhi
+{
+                                                               /* SDHI             */
+    volatile uint16_t  SD_CMD;                                 /*  SD_CMD          */
+    volatile uint8_t   dummy1[2];                              /*                  */
+    volatile uint16_t  SD_ARG0;                                /*  SSLDR           */
+    volatile uint16_t  SD_ARG1;                                /*  SSLDR           */
+    volatile uint16_t  SD_STOP;                                /*  SPBCR           */
+    volatile uint16_t  SD_SECCNT;                              /*  SPBCR           */
+    volatile uint16_t  SD_RSP00;                               /*  SPBCR           */
+    volatile uint16_t  SD_RSP01;                               /*  SPBCR           */
+    volatile uint16_t  SD_RSP02;                               /*  SPBCR           */
+    volatile uint16_t  SD_RSP03;                               /*  SPBCR           */
+    volatile uint16_t  SD_RSP04;                               /*  SPBCR           */
+    volatile uint16_t  SD_RSP05;                               /*  SPBCR           */
+    volatile uint16_t  SD_RSP06;                               /*  SPBCR           */
+    volatile uint16_t  SD_RSP07;                               /*  SPBCR           */
+    volatile uint16_t  SD_INFO1;                               /*  SPBCR           */
+    volatile uint16_t  SD_INFO2;                               /*  SPBCR           */
+    volatile uint16_t  SD_INFO1_MASK;                          /*  SPBCR           */
+    volatile uint16_t  SD_INFO2_MASK;                          /*  SPBCR           */
+    volatile uint16_t  SD_CLK_CTRL;                            /*  SPBCR           */
+    volatile uint16_t  SD_SIZE;                                /*  SPBCR           */
+    volatile uint16_t  SD_OPTION;                              /*  SPBCR           */
+    volatile uint8_t   dummy2[2];                              /*                  */
+    volatile uint16_t  SD_ERR_STS1;                            /*  SPBCR           */
+    volatile uint16_t  SD_ERR_STS2;                            /*  SPBCR           */
+    volatile uint32_t  SD_BUF0;                                /*  DRCR            */
+    volatile uint16_t  SDIO_MODE;                              /*  DRCMR           */
+    volatile uint16_t  SDIO_INFO1;                             /*  DREAR           */
+    volatile uint16_t  SDIO_INFO1_MASK;                        /*  DROPR           */
+    volatile uint8_t   dummy3[158];                            /*                  */
+    volatile uint16_t  CC_EXT_MODE;                            /*  DRENR           */
+    volatile uint8_t   dummy4[6];                              /*                  */
+    volatile uint16_t  SOFT_RST;                               /*  SMCR            */
+    volatile uint16_t  VERSION;                                /*  SMCMR           */
+    volatile uint8_t   dummy5[12];                             /*                  */
+    volatile uint16_t  EXT_SWAP;                               /*  SMADR           */
+} r_io_sdhi_t;
+
+
+/* Channel array defines of SDHI (2)*/
+#ifdef  DECLARE_SDHI_CHANNELS
+volatile struct st_sdhi*  SDHI[ SDHI_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SDHI_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SPIBSC_CHANNELS */
+/* End of channel array defines of SDHI (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-program/mbed-os/targets/targets.json	Fri Mar 29 19:47:34 2019 +0200
@@ -0,0 +1,8275 @@
+{
+    "Target": {
+        "core": null,
+        "default_toolchain": "ARM",
+        "supported_toolchains": null,
+        "extra_labels": [],
+        "components": ["PSA_SRV_IMPL", "PSA_SRV_EMUL", "NSPE"],
+        "is_disk_virtual": false,
+        "macros": [],
+        "device_has": [],
+        "features": [],
+        "detect_code": [],
+        "public": false,
+        "default_lib": "std",
+        "bootloader_supported": false,
+        "static_memory_defines": true,
+        "config": {
+            "console-uart-flow-control": {
+                "help": "Console hardware flow control. Options: null, RTS, CTS, RTSCTS.",
+                "value": null
+            },
+            "network-default-interface-type": {
+                "help": "Default network interface type. Typical options: null, ETHERNET, WIFI, CELLULAR, MESH",
+                "value": null
+            },
+            "deep-sleep-latency": {
+                "help": "Time in ms required to go to and wake up from deep sleep (max 10)",
+                "value": 0
+            },
+            "boot-stack-size": {
+                "help": "Define the boot stack size in bytes. This value must be a multiple of 8",
+                "value": "0x1000"
+            },
+            "mpu-rom-end": {
+                "help": "Last address of ROM protected by the MPU",
+                "value": "0x0fffffff"
+            }
+        }
+    },
+    "PSA_Target": {
+        "public": false,
+        "config": {
+            "secure-rom-start": {
+                "help": "Starting address of Secure ROM",
+                "value": null,
+                "macro_name": "PSA_SECURE_ROM_START",
+                "conflicts": ["target.mbed_rom_start"]
+            },
+            "secure-rom-size": {
+                "help": "Size in bytes of Secure ROM",
+                "value": null,
+                "macro_name": "PSA_SECURE_ROM_SIZE",
+                "conflicts": ["target.mbed_rom_size"]
+            },
+            "non-secure-rom-start": {
+                "help": "Starting address of Non-secure ROM",
+                "value": null,
+                "macro_name": "PSA_NON_SECURE_ROM_START",
+                "conflicts": ["target.mbed_rom_start"]
+            },
+            "non-secure-rom-size": {
+                "help": "Size in bytes of Non-secure ROM",
+                "value": null,
+                "macro_name": "PSA_NON_SECURE_ROM_SIZE",
+                "conflicts": ["target.mbed_rom_size"]
+            },
+            "secure-ram-start": {
+                "help": "Starting address of Secure RAM",
+                "value": null,
+                "macro_name": "PSA_SECURE_RAM_START",
+                "conflicts": ["target.mbed_ram_start"]
+            },
+            "secure-ram-size": {
+                "help": "Size in bytes of Secure RAM",
+                "value": null,
+                "macro_name": "PSA_SECURE_RAM_SIZE",
+                "conflicts": ["target.mbed_ram_size"]
+            },
+            "non-secure-ram-start": {
+                "help": "Starting address of Non-secure RAM",
+                "value": null,
+                "macro_name": "PSA_NON_SECURE_RAM_START",
+                "conflicts": ["target.mbed_ram_start"]
+            },
+            "non-secure-ram-size": {
+                "help": "Size in bytes of Non-secure RAM",
+                "value": null,
+                "macro_name": "PSA_NON_SECURE_RAM_SIZE",
+                "conflicts": ["target.mbed_ram_size"]
+            },
+            "shared-ram-start": {
+                "help": "Starting address of Shared RAM between Secure and Non-secure worlds",
+                "value": null,
+                "macro_name": "PSA_SHARED_RAM_START"
+            },
+            "shared-ram-size": {
+                "help": "Size in bytes of Shared RAM between Secure and Non-secure worlds",
+                "value": null,
+                "macro_name": "PSA_SHARED_RAM_SIZE"
+            }
+        }
+    },
+    "NSPE_Target": {
+        "inherits": ["PSA_Target"],
+        "components": ["PSA_SRV_IPC", "NSPE"],
+        "device_has_add": ["TRNG"],
+        "public": false
+    },
+    "SPE_Target": {
+        "inherits": ["PSA_Target"],
+        "components": ["PSA_SRV_IMPL", "PSA_SRV_IPC", "SPE"],
+        "public": false
+    },
+    "CM4_UARM": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4",
+        "default_toolchain": "uARM",
+        "public": false,
+        "supported_toolchains": ["uARM"],
+        "default_lib": "small"
+    },
+    "CM4_ARM": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4",
+        "public": false,
+        "supported_toolchains": ["ARM"]
+    },
+    "CM4F_UARM": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "default_toolchain": "uARM",
+        "public": false,
+        "supported_toolchains": ["uARM"],
+        "default_lib": "small"
+    },
+    "CM4F_ARM": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "public": false,
+        "supported_toolchains": ["ARM"]
+    },
+    "LPCTarget": {
+        "inherits": ["Target"],
+        "post_binary_hook": { "function": "LPCTargetCode.lpc_patch" },
+        "public": false
+    },
+    "LPC11C24": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "extra_labels": ["NXP", "LPC11XX_11CXX", "LPC11CXX"],
+        "OUTPUT_EXT": "hex",
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "CAN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "device_name": "LPC11C24FBD48/301"
+    },
+    "LPC1114": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11XX_11CXX", "LPC11XX"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC1114FN28/102"
+    },
+    "LPC11U24": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11UXX", "LPC11U24_401"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "detect_code": ["1040"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "LOCALFILESYSTEM",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC11U24FBD48/401"
+    },
+    "OC_MBUINO": {
+        "inherits": ["LPC11U24"],
+        "macros": [
+            "TARGET_LPC11U24",
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "extra_labels": ["NXP", "LPC11UXX"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2"]
+    },
+    "LPC11U24_301": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "extra_labels": ["NXP", "LPC11UXX"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "LOCALFILESYSTEM",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "device_name": "LPC11U24FHI33/301"
+    },
+    "LPC11U34_421": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11UXX"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "device_name": "LPC11U34FBD48/311"
+    },
+    "MICRONFCBOARD": {
+        "inherits": ["LPC11U34_421"],
+        "macros_add": ["LPC11U34_421", "APPNEARME_MICRONFCBOARD"],
+        "extra_labels_add": ["APPNEARME_MICRONFCBOARD"],
+        "release_versions": ["2"],
+        "device_name": "LPC11U34FBD48/311"
+    },
+    "LPC11U35_401": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11UXX"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC11U35FBD48/401"
+    },
+    "LPC11U35_501": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC11U35FHI33/501"
+    },
+    "LPC11U35_501_IBDAP": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "device_name": "LPC11U35FHI33/501"
+    },
+    "XADOW_M0": {
+        "inherits": ["LPC11U35_501"]
+    },
+    "LPC11U35_Y5_MBUG": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "device_name": "LPC11U35FHI33/501"
+    },
+    "LPC11U37_501": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11UXX"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "default_lib": "small",
+        "device_name": "LPC11U37FBD64/501"
+    },
+    "LPCCAPPUCCINO": {
+        "inherits": ["LPC11U37_501"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "device_name": "LPC11U37FBD64/501"
+    },
+    "ARCH_GPRS": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11UXX", "LPC11U37_501"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "inherits": ["LPCTarget"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC11U37FBD64/501"
+    },
+    "LPC11U68": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11U6X"],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "inherits": ["LPCTarget"],
+        "detect_code": ["1168"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC11U68JBD100"
+    },
+    "LPC1347": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M3",
+        "extra_labels": ["NXP", "LPC13XX"],
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2"],
+        "device_name": "LPC1347FBD48"
+    },
+    "LPC1549": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M3",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC15XX"],
+        "supported_toolchains": ["uARM", "GCC_ARM", "IAR"],
+        "inherits": ["LPCTarget"],
+        "detect_code": ["1549"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "CAN",
+            "I2C",
+            "INTERRUPTIN",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC1549JBD64"
+    },
+    "LPC1768": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M3",
+        "extra_labels": ["NXP", "LPC176X", "MBED_LPC1768", "NXP_EMAC"],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "detect_code": ["1010"],
+        "device_has": [
+            "RTC",
+            "USTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "CAN",
+            "DEBUG_AWARENESS",
+            "EMAC",
+            "ETHERNET",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "LOCALFILESYSTEM",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "LPC1768",
+        "bootloader_supported": true,
+        "config": {
+            "us-ticker-timer": {
+                "help": "Chooses which timer (0-3) to use for us_ticker.c",
+                "value": 3
+            }
+        },
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "LPC1769": {
+        "inherits": ["LPC1768"],
+        "device_name": "LPC1769"
+    },
+    "ARCH_PRO": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M3",
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "extra_labels": ["NXP", "LPC176X", "NXP_EMAC"],
+        "macros": ["TARGET_LPC1768"],
+        "inherits": ["LPCTarget"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "CAN",
+            "DEBUG_AWARENESS",
+            "EMAC",
+            "ETHERNET",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "LPC1768",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "UBLOX_C027": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M3",
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "extra_labels": ["NXP", "LPC176X", "NXP_EMAC"],
+        "config": {
+            "modem_is_on_board": {
+                "help": "Value: Tells the build system that the modem is on-board as oppose to a plug-in shield/module.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD"
+            },
+            "modem_data_connection_type": {
+                "help": "Value: Defines how the modem is wired up to the MCU, e.g., data connection can be a UART or USB and so forth.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD_UART"
+            }
+        },
+        "macros": ["TARGET_LPC1768"],
+        "inherits": ["LPCTarget"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "CAN",
+            "DEBUG_AWARENESS",
+            "EMAC",
+            "ETHERNET",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "LPC1768",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "CELLULAR"
+        }
+    },
+    "XBED_LPC1768": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M3",
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "extra_labels": ["NXP", "LPC176X", "XBED_LPC1768"],
+        "macros": ["TARGET_LPC1768"],
+        "detect_code": ["1010"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "CAN",
+            "DEBUG_AWARENESS",
+            "ETHERNET",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "LOCALFILESYSTEM",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "FLASH",
+            "MPU"
+        ],
+        "device_name": "LPC1768"
+    },
+    "LPC810": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0+",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC81X"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["uARM", "IAR", "GCC_ARM"],
+        "device_has": [
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "device_name": "LPC810M021FN8"
+    },
+    "LPC812": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC81X"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["uARM", "IAR", "GCC_ARM"],
+        "inherits": ["LPCTarget"],
+        "detect_code": ["1050"],
+        "device_has": [
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC812M101JDH20"
+    },
+    "LPC824": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC82X"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["uARM", "GCC_ARM", "IAR"],
+        "inherits": ["LPCTarget"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC824M201JDH20"
+    },
+    "SSCI824": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0+",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC82X"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["uARM", "GCC_ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"]
+    },
+    "MCU_LPC4088": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M4F",
+        "extra_labels": ["NXP", "LPC408X", "NXP_EMAC"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "post_binary_hook": {
+            "function": "LPC4088Code.binary_hook"
+        },
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "CAN",
+            "DEBUG_AWARENESS",
+            "EMAC",
+            "ETHERNET",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "MPU"
+        ],
+        "device_name": "LPC4088FBD144",
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "LPC4088": {
+        "inherits": ["MCU_LPC4088"],
+        "release_versions": ["2", "5"]
+    },
+    "LPC4088_DM": {
+        "inherits": ["MCU_LPC4088"],
+        "release_versions": ["2", "5"]
+    },
+    "LPC4330_M4": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M4F",
+        "extra_labels": ["NXP", "LPC43XX", "LPC4330"],
+        "supported_toolchains": ["ARM", "IAR", "GCC_ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "DEBUG_AWARENESS",
+            "ETHERNET",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "MPU"
+        ],
+        "device_name": "LPC4330"
+    },
+    "LPC4330_M0": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M0",
+        "extra_labels": ["NXP", "LPC43XX", "LPC4330"],
+        "supported_toolchains": ["ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "DEBUG_AWARENESS",
+            "ETHERNET",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ]
+    },
+    "LPC4337": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M4F",
+        "extra_labels": ["NXP", "LPC43XX", "LPC4337"],
+        "supported_toolchains": ["ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "DEBUG_AWARENESS",
+            "ETHERNET",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "MPU"
+        ],
+        "release_versions": ["2"],
+        "device_name": "LPC4337"
+    },
+    "LPC1800": {
+        "inherits": ["LPCTarget"],
+        "core": "Cortex-M3",
+        "extra_labels": ["NXP", "LPC43XX"],
+        "public": false,
+        "supported_toolchains": ["ARM", "IAR"]
+    },
+    "LPC11U37H_401": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC11UXX"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"],
+        "inherits": ["LPCTarget"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "LPC11U37HFBD64/401"
+    },
+    "ELEKTOR_COCORICO": {
+        "core": "Cortex-M0+",
+        "default_toolchain": "uARM",
+        "extra_labels": ["NXP", "LPC81X"],
+        "supported_toolchains": ["uARM", "GCC_ARM", "IAR"],
+        "inherits": ["LPCTarget"],
+        "is_disk_virtual": true,
+        "detect_code": ["C000"],
+        "default_lib": "small",
+        "device_name": "LPC812M101JDH16"
+    },
+    "KL05Z": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "default_toolchain": "uARM",
+        "extra_labels": ["Freescale", "KLXX"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "inherits": ["Target"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "MKL05Z32xxx4"
+    },
+    "KL25Z": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "extra_labels": ["Freescale", "KLXX"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "inherits": ["Target"],
+        "detect_code": ["0200"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "MKL25Z128xxx4"
+    },
+    "KL26Z": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "extra_labels": ["Freescale", "KLXX"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "inherits": ["Target"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "device_name": "MKL26Z128xxx4"
+    },
+    "KL46Z": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "extra_labels": ["Freescale", "KLXX", "FLASH_CMSIS_ALGO"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "inherits": ["Target"],
+        "detect_code": ["0220"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "FLASH"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "MKL46Z256xxx4",
+        "bootloader_supported": true
+    },
+    "K20D50M": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4",
+        "extra_labels": ["Freescale", "K20XX"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "detect_code": ["0230"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2"],
+        "device_name": "MK20DX128xxx5"
+    },
+    "TEENSY3_1": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4",
+        "extra_labels": ["Freescale", "K20XX", "K20DX256"],
+        "OUTPUT_EXT": "hex",
+        "is_disk_virtual": true,
+        "supported_toolchains": ["GCC_ARM", "ARM"],
+        "post_binary_hook": {
+            "function": "TEENSY3_1Code.binary_hook",
+            "toolchains": ["ARM_STD", "ARM_MICRO", "GCC_ARM"]
+        },
+        "detect_code": ["0230"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2"],
+        "device_name": "MK20DX256xxx7"
+    },
+    "MCU_K22F512": {
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels": [
+            "Freescale",
+            "MCUXpresso_MCUS",
+            "KSDK2_MCUS",
+            "MCU_K22F",
+            "MCU_K22F512",
+            "FRDM",
+            "KPSDK_MCUS",
+            "KPSDK_CODE"
+        ],
+        "is_disk_virtual": true,
+        "public": false,
+        "macros": ["CPU_MK22FN512VLH12", "FSL_RTOS_MBED"],
+        "inherits": ["Target"],
+        "detect_code": ["0231"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "FLASH"
+        ],
+        "device_name": "MK22DN512xxx5"
+    },
+    "K22F": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_K22F512"],
+        "release_versions": ["2", "5"],
+        "extra_labels_add": ["FRDM"]
+    },
+    "KL27Z": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0+",
+        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
+        "macros": ["CPU_MKL27Z64VLH4", "FSL_RTOS_MBED"],
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "supported_form_factors": ["ARDUINO"],
+        "is_disk_virtual": true,
+        "default_toolchain": "ARM",
+        "detect_code": ["0261"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "default_lib": "std",
+        "release_versions": ["2"],
+        "device_name": "MKL27Z64xxx4"
+    },
+    "KL43Z": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
+        "macros": ["CPU_MKL43Z256VLH4", "FSL_RTOS_MBED"],
+        "is_disk_virtual": true,
+        "inherits": ["Target"],
+        "detect_code": ["0262"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "FLASH"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "MKL43Z256xxx4"
+    },
+    "KL82Z": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
+        "macros": ["CPU_MKL82Z128VLK7", "FSL_RTOS_MBED"],
+        "is_disk_virtual": true,
+        "inherits": ["Target"],
+        "detect_code": ["0218"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SEMIHOST",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "FLASH",
+            "QSPI"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "MKL82Z128xxx7"
+    },
+    "USENSE": {
+        "inherits": ["KL82Z"],
+        "extra_labels_remove": ["FRDM"],
+        "device_has_remove": ["QSPI"],
+        "supported_form_factors": []
+    },
+    "KW24D": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
+        "is_disk_virtual": true,
+        "macros": ["CPU_MKW24D512VHA5", "FSL_RTOS_MBED"],
+        "inherits": ["Target"],
+        "detect_code": ["0250"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "FLASH",
+            "802_15_4_PHY"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "MKW24D512xxx5",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "MESH"
+        }
+    },
+    "KW41Z": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0+",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM", "FRAMEWORK_5_3_3", "NXP"],
+        "is_disk_virtual": true,
+        "macros": ["CPU_MKW41Z512VHT4", "FSL_RTOS_MBED"],
+        "inherits": ["Target"],
+        "detect_code": ["0201"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "TRNG",
+            "STDIO_MESSAGES",
+            "FLASH",
+            "802_15_4_PHY"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "MKW41Z512xxx4",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "MESH"
+        }
+    },
+    "MCU_K24F1M": {
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels": [
+            "Freescale",
+            "MCUXpresso_MCUS",
+            "KSDK2_MCUS",
+            "MCU_K24F",
+            "KPSDK_MCUS",
+            "KPSDK_CODE"
+        ],
+        "is_disk_virtual": true,
+        "public": false,
+        "macros": ["CPU_MK24FN1M0VDC12", "FSL_RTOS_MBED"],
+        "inherits": ["Target"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "FLASH"
+        ],
+        "device_name": "MK24FN1M0xxx12"
+    },
+    "RO359B": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_K24F1M"],
+        "detect_code": ["1022"],
+        "release_versions": ["2", "5"]
+    },
+    "K64F": {
+        "supported_form_factors": ["ARDUINO"],
+        "components_add": ["SD", "FLASHIAP"],
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels": [
+            "Freescale",
+            "MCUXpresso_MCUS",
+            "KSDK2_MCUS",
+            "FRDM",
+            "KPSDK_MCUS",
+            "KPSDK_CODE",
+            "MCU_K64F",
+            "Freescale_EMAC",
+            "PSA"
+        ],
+        "is_disk_virtual": true,
+        "macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "MBEDTLS_PSA_CRYPTO_C"],
+        "inherits": ["Target"],
+        "detect_code": ["0240"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "CRC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "EMAC",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "STORAGE",
+            "TRNG",
+            "FLASH"
+        ],
+        "features": ["STORAGE"],
+        "release_versions": ["2", "5"],
+        "device_name": "MK64FN1M0xxx12",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "SDT64B": {
+        "inherits": ["K64F"],
+        "extra_labels_add": ["K64F"],
+        "extra_labels_remove": ["FRDM"],
+        "components_remove": ["SD"],
+        "supported_form_factors": [],
+        "detect_code": ["3105"]
+    },
+    "EV_COG_AD4050LZ": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "macros": ["__ADUCM4050__", "EV_COG_AD4050LZ"],
+        "extra_labels": [
+            "Analog_Devices",
+            "ADUCM4X50",
+            "ADUCM4050",
+            "EV_COG_AD4050LZ",
+            "FLASH_CMSIS_ALGO"
+        ],
+        "device_has": [
+            "FLASH",
+            "USTICKER",
+            "RTC",
+            "SERIAL",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "SLEEP",
+            "INTERRUPTIN",
+            "SPI",
+            "I2C",
+            "ANALOGIN",
+            "MPU"
+        ],
+        "device_name": "ADuCM4050",
+        "detect_code": ["0603"],
+        "release_versions": ["5"],
+        "bootloader_supported": true
+    },
+    "EV_COG_AD3029LZ": {
+        "inherits": ["Target"],
+        "core": "Cortex-M3",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "macros": ["__ADUCM3029__", "EV_COG_AD3029LZ"],
+        "extra_labels": [
+            "Analog_Devices",
+            "ADUCM302X",
+            "ADUCM3029",
+            "EV_COG_AD3029LZ",
+            "FLASH_CMSIS_ALGO"
+        ],
+        "device_has": [
+            "FLASH",
+            "USTICKER",
+            "RTC",
+            "SERIAL",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "SLEEP",
+            "INTERRUPTIN",
+            "SPI",
+            "I2C",
+            "ANALOGIN",
+            "MPU"
+        ],
+        "device_name": "ADuCM3029",
+        "detect_code": ["0602"],
+        "release_versions": ["5"],
+        "bootloader_supported": true
+    },
+    "MTS_GAMBIT": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "GCC_ARM"],
+        "extra_labels": [
+            "Freescale",
+            "MCUXpresso_MCUS",
+            "KSDK2_MCUS",
+            "KPSDK_MCUS",
+            "KPSDK_CODE",
+            "MCU_K64F"
+        ],
+        "is_disk_virtual": true,
+        "macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "FLASH"
+        ],
+        "device_name": "MK64FN1M0xxx12"
+    },
+    "HEXIWEAR": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "extra_labels": [
+            "Freescale",
+            "MCUXpresso_MCUS",
+            "KSDK2_MCUS",
+            "MCU_K64F"
+        ],
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"],
+        "is_disk_virtual": true,
+        "default_toolchain": "ARM",
+        "detect_code": ["0214"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "FLASH"
+        ],
+        "default_lib": "std",
+        "release_versions": ["2", "5"],
+        "device_name": "MK64FN1M0xxx12",
+        "bootloader_supported": true
+    },
+    "RAPIDIOT": {
+        "inherits": ["Target"],
+        "public": false,
+        "core": "null",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "macros": ["FSL_RTOS_MBED", "USE_EXTERNAL_RTC"],
+        "default_toolchain": "ARM",
+        "default_lib": "std",
+        "forced_reset_timeout": 7,
+        "release_versions": ["2", "5"]
+    },
+    "RAPIDIOT_K64F": {
+        "inherits": ["RAPIDIOT"],
+        "core": "Cortex-M4F",
+        "extra_labels": [
+            "Freescale",
+            "MCUXpresso_MCUS",
+            "KSDK2_MCUS",
+            "MCU_K64F"
+        ],
+        "macros_add": ["CPU_MK64FN1M0VMD12", "TARGET_K64F"],
+        "is_disk_virtual": true,
+        "mbed_rom_start": "0x00014000",
+        "mbed_rom_size": "0xEC000",
+        "detect_code": ["0228"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "FLASH"
+        ],
+        "device_name": "MK64FN1M0xxx12",
+        "bootloader_supported": true
+    },
+    "RAPIDIOT_KW41Z": {
+        "inherits": ["RAPIDIOT"],
+        "core": "Cortex-M0+",
+        "extra_labels": [
+            "Freescale",
+            "MCUXpresso_MCUS",
+            "KSDK2_MCUS",
+            "KW41Z"
+        ],
+        "macros_add": ["CPU_MKW41Z512VHT4"],
+        "is_disk_virtual": true,
+        "mbed_rom_start": "0x00004000",
+        "mbed_rom_size": "0x7C000",
+        "detect_code": ["0234"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "TRNG",
+            "STDIO_MESSAGES",
+            "FLASH"
+        ],
+        "device_name": "MKW41Z512xxx4",
+        "bootloader_supported": true
+    },
+    "K66F": {
+        "supported_form_factors": ["ARDUINO"],
+        "components_add": ["SD", "FLASHIAP"],
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels": [
+            "Freescale",
+            "MCUXpresso_MCUS",
+            "KSDK2_MCUS",
+            "FRDM",
+            "Freescale_EMAC",
+            "PSA"
+        ],
+        "is_disk_virtual": true,
+        "macros": ["CPU_MK66FN2M0VMD18", "FSL_RTOS_MBED"],
+        "inherits": ["Target"],
+        "detect_code": ["0311"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "EMAC",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "FLASH"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "MK66FN2M0xxx18",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "K82F": {
+        "supported_form_factors": ["ARDUINO"],
+        "components_add": ["SPIF", "FLASHIAP"],
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
+        "is_disk_virtual": true,
+        "macros": ["CPU_MK82FN256VDC15", "FSL_RTOS_MBED"],
+        "inherits": ["Target"],
+        "detect_code": ["0217"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "FLASH",
+            "QSPI"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "MK82FN256xxx15"
+    },
+    "UBRIDGE": {
+        "inherits": ["K82F"],
+        "extra_labels_remove": ["FRDM"],
+        "components_remove": ["SPIF"],
+        "device_has_remove": ["QSPI"],
+        "supported_form_factors": []
+    },
+    "FAMILY_STM32": {
+        "inherits": ["Target"],
+        "public": false,
+        "extra_labels": ["STM"],
+        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
+        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
+        "config": {
+            "lse_available": {
+                "help": "Define if a Low Speed External xtal (LSE) is available on the board (0 = No, 1 = Yes). If Yes, the LSE will be used to clock the RTC, LPUART, ... otherwise the Low Speed Internal clock (LSI) will be used",
+                "value": "1"
+            },
+            "lpuart_clock_source": {
+                "help": "Define the LPUART clock source. Mask values: USE_LPUART_CLK_LSE, USE_LPUART_CLK_PCLK1, USE_LPUART_CLK_HSI",
+                "value": "USE_LPUART_CLK_LSE|USE_LPUART_CLK_PCLK1"
+            },
+            "stdio_uart_tx": {
+                "help": "default TX STDIO pins is defined in PinNames.h file, but it can be overridden"
+            },
+            "stdio_uart_rx": {
+                "help": "default RX STDIO pins is defined in PinNames.h file, but it can be overridden"
+            },
+            "lpticker_delay_ticks": {
+                "help": "https://os.mbed.com/docs/latest/porting/low-power-ticker.html",
+                "value": 1,
+                "macro_name": "LPTICKER_DELAY_TICKS"
+            },
+            "lpticker_lptim_clock": {
+                "help": "Default value for LPTIM clock (lpticker_lptim == 1). Value is the dividing factor. Choose 1, 2 or 4",
+                "value": 1
+            }
+        },
+        "overrides": {
+            "deep-sleep-latency": 3
+        },
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES"
+        ]
+    },
+    "MIMXRT1050_EVK": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M7FD",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels": ["NXP", "MCUXpresso_MCUS", "EVK", "MIMXRT1050", "IMX", "NXP_EMAC"],
+        "is_disk_virtual": true,
+        "macros": [
+            "CPU_MIMXRT1052DVL6B",
+            "FSL_RTOS_MBED",
+            "XIP_BOOT_HEADER_ENABLE=1",
+            "XIP_EXTERNAL_FLASH=1",
+            "XIP_BOOT_HEADER_DCD_ENABLE=1",
+            "SKIP_SYSCLK_INIT",
+            "FSL_FEATURE_PHYKSZ8081_USE_RMII50M_MODE",
+            "SDRAM_IS_SHAREABLE",
+            "MBED_MPU_CUSTOM"
+        ],
+        "inherits": ["Target"],
+        "detect_code": ["0227"],
+        "device_has": [
+            "RTC",
+            "SLEEP",
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "EMAC",
+            "I2C",
+            "I2CSLAVE",
+            "ERROR_RED",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2", "5"],
+        "features": ["LWIP"],
+        "device_name": "MIMXRT1052",
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "LPC54114": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "IAR", "GCC_ARM"],
+        "extra_labels": [
+            "NXP",
+            "MCUXpresso_MCUS",
+            "LPC54114_M4",
+            "LPCXpresso",
+            "LPC"
+        ],
+        "is_disk_virtual": true,
+        "macros": ["CPU_LPC54114J256BD64_cm4", "FSL_RTOS_MBED"],
+        "inherits": ["Target"],
+        "detect_code": ["1054"],
+        "device_has": [
+            "USTICKER",
+            "RTC",
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "post_binary_hook": { "function": "LPCTargetCode.lpc_patch" },
+        "device_name": "LPC54114J256BD64"
+    },
+    "MCU_LPC546XX": {
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "IAR", "GCC_ARM"],
+        "extra_labels": [
+            "NXP",
+            "MCUXpresso_MCUS",
+            "LPC",
+            "NXP_EMAC"
+        ],
+        "is_disk_virtual": true,
+        "public": false,
+        "macros": ["CPU_LPC54628J512ET180", "FSL_RTOS_MBED"],
+        "inherits": ["Target"],
+        "device_has": [
+            "USTICKER",
+            "RTC",
+            "ANALOGIN",
+            "EMAC",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES",
+            "FLASH",
+            "TRNG",
+            "QSPI",
+            "MPU"
+        ],
+        "device_name": "LPC54628J512ET180",
+        "post_binary_hook": { "function": "LPCTargetCode.lpc_patch" },
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "LPC546XX": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_LPC546XX"],
+        "extra_labels_add": ["LPCXpresso"],
+        "detect_code": ["1056"],
+        "release_versions": ["2", "5"],
+        "components_add": ["QSPIF"]        
+    },
+    "FF_LPC546XX": {
+        "inherits": ["MCU_LPC546XX"],
+        "detect_code": ["8081"],
+        "device_has_remove": ["QSPI"],
+        "release_versions": ["2", "5"]
+    },
+    "NUCLEO_F030R8": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M0",
+        "extra_labels_add": ["STM32F0", "STM32F030R8"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0725"],
+        "macros_add": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "device_has_add": ["CRC"],
+        "device_has_remove": ["LPTICKER"],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32F030R8"
+    },
+    "NUCLEO_F031K6": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels_add": ["STM32F0", "STM32F031K6"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0791"],
+        "overrides": { "lse_available": 0 },
+        "macros_add": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "device_has_add": ["CRC"],
+        "device_has_remove": ["LPTICKER"],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32F031K6"
+    },
+    "NUCLEO_F042K6": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M0",
+        "default_toolchain": "uARM",
+        "extra_labels_add": ["STM32F0", "STM32F042K6"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0785"],
+        "overrides": { "lse_available": 0 },
+        "macros_add": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "device_has_add": [
+            "CAN",
+            "CRC"
+        ],
+        "device_has_remove": ["LPTICKER"],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32F042K6"
+    },
+    "NUCLEO_F070RB": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M0",
+        "extra_labels_add": ["STM32F0", "STM32F070RB"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0755"],
+        "macros_add": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "device_has_add": [
+            "CRC",
+            "SERIAL_ASYNCH",
+            "FLASH"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F070RB"
+    },
+    "NUCLEO_F072RB": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M0",
+        "extra_labels_add": ["STM32F0", "STM32F072RB"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0730"],
+        "macros_add": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "FLASH"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F072RB"
+    },
+    "NUCLEO_F091RC": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M0",
+        "extra_labels_add": ["STM32F0", "STM32F091RC"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0750"],
+        "macros_add": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "FLASH"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F091RC"
+    },
+    "NUCLEO_F103RB": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M3",
+        "extra_labels_add": ["STM32F1", "STM32F103RB"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (SYSCLK=72 MHz) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI (SYSCLK=64 MHz)",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "clock_source_usb": {
+                "help": "In case of HSI clock source, to get 48 Mhz USB, SYSCLK has to be reduced from 64 to 48 MHz (set 0 for the max SYSCLK value)",
+                "value": "0",
+                "macro_name": "CLOCK_SOURCE_USB"
+            }
+        },
+        "detect_code": ["0700"],
+        "device_has_add": [
+            "CAN",
+            "SERIAL_ASYNCH",
+            "FLASH"
+        ],
+        "device_has_remove": ["LPTICKER"],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F103RB"
+    },
+    "NUCLEO_F207ZG": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M3",
+        "extra_labels_add": ["STM32F2", "STM32F207ZG", "STM_EMAC"],
+        "config": {
+            "d11_configuration": {
+                "help": "Value: PA_7 for the default board configuration, PB_5 in case of solder bridge update (SB121 off/ SB122 on)",
+                "value": "PA_7",
+                "macro_name": "STM32_D11_SPI_ETHERNET_PIN"
+            },
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0835"],
+        "macros_add": ["USBHOST_OTHER"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "EMAC",
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "TRNG",
+            "MPU"
+        ],
+        "device_has_remove": ["LPTICKER"],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F207ZG",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "NUCLEO_F302R8": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F3", "STM32F302x8", "STM32F302R8"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0705"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32F302R8"
+    },
+    "NUCLEO_F303K8": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F3", "STM32F303x8", "STM32F303K8"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "overrides": { "lse_available": 0 },
+        "detect_code": ["0775"],
+        "default_lib": "small",
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC"
+        ],
+        "release_versions": ["2"],
+        "device_name": "STM32F303K8"
+    },
+    "NUCLEO_F303RE": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F3", "STM32F303xE", "STM32F303RE"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0745"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "bootloader_supported": true,
+        "device_name": "STM32F303RE"
+    },
+    "NUCLEO_F303ZE": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F3", "STM32F303xE", "STM32F303ZE"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0747"],
+        "device_has_add": ["ANALOGOUT", "CAN", "CRC", "FLASH", "MPU"],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F303ZE"
+    },
+    "NUCLEO_F334R8": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F3", "STM32F334x8", "STM32F334R8"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0735"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32F334R8"
+    },
+    "NUCLEO_F401RE": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F401xE", "STM32F401RE"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0720"],
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER"],
+        "device_has_add": [
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F401RE"
+    },
+    "STEVAL_3DP001V1": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F401xE", "STM32F401VE"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_XTAL|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER", "HSE_VALUE=25000000"],
+        "device_has_add": [
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "MPU"
+        ],
+        "overrides": { "lse_available": 0 },
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F401VE"
+    },
+    "NUCLEO_F410RB": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F410RB",
+            "STM32F410xB",
+            "STM32F410Rx"
+        ],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS"
+        ],
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0744"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F410RB"
+    },
+    "NUCLEO_F411RE": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F411xE", "STM32F411RE", "PSA"],
+        "components_add": ["FLASHIAP"],
+        "detect_code": ["0740"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "clock_source_usb": {
+                "help": "As 48 Mhz clock is configured for USB, SYSCLK has to be reduced from 100 to 96 MHz (set 0 for the max SYSCLK value)",
+                "value": "0",
+                "macro_name": "CLOCK_SOURCE_USB"
+            }
+        },
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER"],
+        "device_has_add": [
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F411RE",
+        "bootloader_supported": true
+    },
+    "NUCLEO_F412ZG": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F412xG", "STM32F412ZG"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0826"],
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER"],
+        "device_has_add": [
+            "CAN",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F412ZG",
+        "bootloader_supported": true
+    },
+    "MTB_MXCHIP_EMW3166": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F412xG",
+            "STM32F412ZG",
+            "WICED",
+            "CYW43362"
+        ],
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER"],
+        "device_has_add": [
+            "CAN",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["5"],
+        "device_name": "STM32F412ZG",
+        "bootloader_supported": true,
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "overrides": {
+            "network-default-interface-type": "WIFI"
+        }
+    },
+    "USI_WM_BN_BM_22": {
+        "inherits": ["FAMILY_STM32"],
+        "components_add": ["SPIF", "FLASHIAP"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F412xG",
+            "STM32F412ZG",
+            "WICED",
+            "CYW4343X",
+            "CORDIO"
+        ],
+        "features": ["BLE", "STORAGE"],
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER"],
+        "device_has_add": [
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["5"],
+        "device_name": "STM32F412ZG",
+        "bootloader_supported": true,
+        "public": false,
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "overrides": {
+            "network-default-interface-type": "WIFI"
+        }
+    },
+    "MTB_USI_WM_BN_BM_22": {
+        "overrides": {
+            "lse_available": 0
+        },
+        "inherits": ["USI_WM_BN_BM_22"]
+    },
+    "MTB_ADV_WISE_1530": {
+        "inherits": ["USI_WM_BN_BM_22"],
+        "config": {
+            "led1": "PA_4",
+            "led2": "PC_12",
+            "led3": "NC"
+        },
+        "overrides": {
+            "stdio_uart_tx": "PB_10",
+            "stdio_uart_rx": "PC_11"
+        }
+    },
+    "DISCO_F413ZH": {
+        "components_add": ["QSPIF"],
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F413xx",
+            "STM32F413ZH",
+            "STM32F413xH"
+        ],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0743"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USB_STM_HAL",
+            "USBHOST_OTHER"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "QSPI",
+            "MPU"
+        ],
+        "bootloader_supported": true,
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F413ZH"
+    },
+    "NUCLEO_F413ZH": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F413xx",
+            "STM32F413ZH",
+            "STM32F413xH"
+        ],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0743"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USB_STM_HAL",
+            "USBHOST_OTHER"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "bootloader_supported": true,
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F413ZH"
+    },
+    "ELMO_F411RE": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "default_toolchain": "uARM",
+        "extra_labels_add": ["STM32F4", "STM32F411xE", "STM32F411RE"],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"],
+        "detect_code": ["----"],
+        "device_has_add": ["MPU"],
+        "device_has_remove": ["SERIAL_FC"],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32F411RE"
+    },
+    "NUCLEO_F429ZI": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "config": {
+            "d11_configuration": {
+                "help": "Value: PA_7 for the default board configuration, PB_5 in case of solder bridge update (SB121 off/ SB122 on)",
+                "value": "PA_7",
+                "macro_name": "STM32_D11_SPI_ETHERNET_PIN"
+            },
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "clock_source_usb": {
+                "help": "As 48 Mhz clock is configured for USB, SYSCLK has to be reduced from 180 to 168 MHz (set 0 for the max SYSCLK value)",
+                "value": "1",
+                "macro_name": "CLOCK_SOURCE_USB"
+            }
+        },
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F429",
+            "STM32F429ZI",
+            "STM32F429xx",
+            "STM32F429xI",
+            "STM_EMAC",
+            "PSA"
+        ],
+        "components_add": ["FLASHIAP"],
+        "macros_add": [
+            "USB_STM_HAL",
+            "USBHOST_OTHER"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "EMAC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "detect_code": ["0796"],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F429ZI",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "NUCLEO_F439ZI": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "config": {
+            "d11_configuration": {
+                "help": "Value: PA_7 for the default board configuration, PB_5 in case of solder bridge update (SB121 off/ SB122 on)",
+                "value": "PA_7",
+                "macro_name": "STM32_D11_SPI_ETHERNET_PIN"
+            },
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "clock_source_usb": {
+                "help": "As 48 Mhz clock is configured for USB, SYSCLK has to be reduced from 180 to 168 MHz (set 0 for the max SYSCLK value)",
+                "value": "1",
+                "macro_name": "CLOCK_SOURCE_USB"
+            }
+        },
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F439",
+            "STM32F439ZI",
+            "STM32F439xx",
+            "STM32F439xI",
+            "STM_EMAC"
+        ],
+        "macros_add": [
+            "MBEDTLS_CONFIG_HW_SUPPORT",
+            "USB_STM_HAL",
+            "USBHOST_OTHER"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "EMAC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "detect_code": ["0797"],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F439ZI",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "NUCLEO_F446RE": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F446xE", "STM32F446RE"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0777"],
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F446RE",
+        "bootloader_supported": true
+    },
+    "NUCLEO_F446ZE": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F446xE", "STM32F446ZE"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0778"],
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F446ZE"
+    },
+    "B96B_F446VE": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F446xE", "STM32F446VE"],
+        "detect_code": ["0840"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F446VE"
+    },
+    "NUCLEO_F746ZG": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M7F",
+        "extra_labels_add": [
+            "STM32F7",
+            "STM32F746",
+            "STM32F746xG",
+            "STM32F746ZG",
+            "STM_EMAC"
+        ],
+        "config": {
+            "d11_configuration": {
+                "help": "Value: PA_7 for the default board configuration, PB_5 in case of solder bridge update (SB121 off/ SB122 on)",
+                "value": "PA_7",
+                "macro_name": "STM32_D11_SPI_ETHERNET_PIN"
+            },
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USBHOST_OTHER"
+        ],
+        "supported_form_factors": ["ARDUINO"],
+        "detect_code": ["0816"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "EMAC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F746ZG",
+        "bootloader_supported": true,
+        "overrides": {
+            "lpticker_delay_ticks": 4,
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "NUCLEO_F756ZG": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M7F",
+        "extra_labels_add": [
+            "STM32F7",
+            "STM32F756",
+            "STM32F756xG",
+            "STM32F756ZG",
+            "STM_EMAC"
+        ],
+        "config": {
+            "d11_configuration": {
+                "help": "Value: PA_7 for the default board configuration, PB_5 in case of solder bridge update (SB121 off/ SB122 on)",
+                "value": "PA_7",
+                "macro_name": "STM32_D11_SPI_ETHERNET_PIN"
+            },
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USBHOST_OTHER",
+            "MBEDTLS_CONFIG_HW_SUPPORT"
+        ],
+        "supported_form_factors": ["ARDUINO"],
+        "detect_code": ["0819"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "EMAC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F756ZG",
+        "overrides": {
+            "lpticker_delay_ticks": 4,
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "NUCLEO_F767ZI": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M7FD",
+        "extra_labels_add": [
+            "STM32F7",
+            "STM32F767",
+            "STM32F767xI",
+            "STM32F767ZI",
+            "STM_EMAC"
+        ],
+        "config": {
+            "flash_dual_bank": {
+                "help": "Default board configuration is Single Bank Flash. If you enable Dual Bank with ST Link Utility, set value to 1",
+                "value": "0"
+            },
+            "d11_configuration": {
+                "help": "Value: PA_7 for the default board configuration, PB_5 in case of solder bridge update (SB121 off/ SB122 on)",
+                "value": "PA_7",
+                "macro_name": "STM32_D11_SPI_ETHERNET_PIN"
+            },
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "supported_form_factors": ["ARDUINO"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USBHOST_OTHER"
+        ],
+        "detect_code": ["0818"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "EMAC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F767ZI",
+        "bootloader_supported": true,
+        "overrides": {
+            "lpticker_delay_ticks": 4,
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "NUCLEO_H743ZI": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M7FD",
+        "extra_labels_add": [
+            "STM32H7",
+            "STM32H743",
+            "STM32H743xI",
+            "STM32H743ZI"
+        ],
+        "config": {
+            "d11_configuration": {
+                "help": "Value: PA_7 for the default board configuration, PB_5 in case of solder bridge update (SB121 off/ SB122 on)",
+                "value": "PA_7",
+                "macro_name": "STM32_D11_SPI_ETHERNET_PIN"
+            },
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            },
+            "hse_value": {
+                "help": "HSE default value is 25MHz in HAL",
+                "value": "8000000",
+                "macro_name": "HSE_VALUE"
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS"
+        ],
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "supported_form_factors": ["ARDUINO"],
+        "detect_code": ["0813"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32H743ZI",
+        "bootloader_supported": true
+    },
+    "NUCLEO_L011K4": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M0+",
+        "extra_labels_add": ["STM32L0", "STM32L011K4"],
+        "supported_toolchains": ["uARM"],
+        "default_toolchain": "uARM",
+        "supported_form_factors": ["ARDUINO"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0780"],
+        "device_has_add": [
+            "CRC",
+            "FLASH"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32L011K4"
+    },
+    "NUCLEO_L031K6": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M0+",
+        "extra_labels_add": ["STM32L0", "STM32L031K6"],
+        "default_toolchain": "uARM",
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0790"],
+        "device_has_add": [
+            "CRC",
+            "FLASH"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32L031K6"
+    },
+    "NUCLEO_L053R8": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M0+",
+        "extra_labels_add": ["STM32L0", "STM32L053x8", "STM32L053R8"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0715"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "MPU"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32L053R8"
+    },
+    "NUCLEO_L073RZ": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M0+",
+        "extra_labels_add": ["STM32L0", "STM32L073RZ", "STM32L073xx"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS"
+        ],
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0760"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L073RZ"
+    },
+    "NUCLEO_L152RE": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M3",
+        "extra_labels_add": ["STM32L1", "STM32L152RE"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0710"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "SERIAL_ASYNCH",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L152RE"
+    },
+    "NUCLEO_L432KC": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L432xC", "STM32L432KC"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS"
+        ],
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0770"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "CAN",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L432KC",
+        "bootloader_supported": true
+    },
+    "NUCLEO_L433RC_P": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L433xC", "STM32L433RC"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS"
+        ],
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0779"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "CAN",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L433RC",
+        "bootloader_supported": true
+    },
+    "MTB_ADV_WISE_1510": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L443xC", "STM32L443RC"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "overrides": { "lse_available": 0 },
+        "release_versions": ["5"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "CAN",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "device_has_remove": ["LPTICKER"],
+        "macros_add": ["MBEDTLS_CONFIG_HW_SUPPORT"],
+        "device_name": "STM32L443RC",
+        "detect_code": ["0458"],
+        "bootloader_supported": true
+    },
+    "NUCLEO_L476RG": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L476RG", "STM32L476xG"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0765"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USBHOST_OTHER",
+            "TWO_RAM_REGIONS"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L476RG",
+        "bootloader_supported": true
+    },
+    "SILICA_SENSOR_NODE": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "default_toolchain": "GCC_ARM",
+        "extra_labels_add": ["STM32L4", "STM32L476xG", "STM32L476JG"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0766"],
+        "macros_add": ["USBHOST_OTHER", "TWO_RAM_REGIONS"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["5"],
+        "device_name": "STM32L476JG"
+    },
+    "NUCLEO_L486RG": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L486RG", "STM32L486xG"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0827"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USBHOST_OTHER",
+            "MBEDTLS_CONFIG_HW_SUPPORT",
+            "TWO_RAM_REGIONS"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L486RG"
+    },
+    "MTB_ADV_WISE_1570": {
+        "components_add": ["FLASHIAP"],
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32L4",
+            "STM32L486RG",
+            "STM32L486xG",
+            "WISE_1570"
+        ],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_HSE_XTAL",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "overrides": { "lpuart_clock_source": "USE_LPUART_CLK_HSI" },
+        "detect_code": ["0460"],
+        "macros_add": [
+            "MBEDTLS_CONFIG_HW_SUPPORT",
+            "WISE_1570",
+            "TWO_RAM_REGIONS"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "device_has_remove": ["LPTICKER"],
+        "release_versions": ["5"],
+        "device_name": "STM32L486RG",
+        "bootloader_supported": true,
+        "OUTPUT_EXT": "hex"
+    },
+    "ARCH_MAX": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "program_cycle_s": 2,
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F407",
+            "STM32F407xG",
+            "STM32F407VG",
+            "STM_EMAC"
+        ],
+        "device_has_add": ["ANALOGOUT", "TRNG", "FLASH", "EMAC", "MPU"],
+        "device_has_remove": [
+            "LPTICKER",
+            "SERIAL_FC"
+        ],
+        "macros_add": ["USB_STM_HAL"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_HSE_XTAL",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "release_versions": ["2", "5"],
+        "overrides": {"lse_available": 0},
+        "device_name": "STM32F407VG",
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "WIO_3G": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_XTAL|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "clock_source_usb": {
+                "help": "As 48 Mhz clock is configured for USB, SYSCLK has to be reduced from 180 to 168 MHz (set 0 for the max SYSCLK value)",
+                "value": "1",
+                "macro_name": "CLOCK_SOURCE_USB"
+            },
+            "modem_is_on_board": {
+                "help": "Value: Tells the build system that the modem is on-board as oppose to a plug-in shield/module.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD"
+            },
+            "modem_data_connection_type": {
+                "help": "Value: Defines how the modem is wired up to the MCU, e.g., data connection can be a UART or USB and so forth.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD_UART"
+            }
+        },
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F439",
+            "STM32F439VI",
+            "STM32F439xx",
+            "STM32F439xI"
+        ],
+        "macros_add": [
+            "MBEDTLS_CONFIG_HW_SUPPORT",
+            "USB_STM_HAL",
+            "USBHOST_OTHER"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "detect_code": ["9014"],
+        "release_versions": ["2", "5"],
+        "device_name" : "STM32F439VI",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "CELLULAR"
+        }
+    },
+    "WIO_BG96": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_XTAL|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "clock_source_usb": {
+                "help": "As 48 Mhz clock is configured for USB, SYSCLK has to be reduced from 180 to 168 MHz (set 0 for the max SYSCLK value)",
+                "value": "0",
+                "macro_name": "CLOCK_SOURCE_USB"
+            },
+            "modem_is_on_board": {
+                "help": "Value: Tells the build system that the modem is on-board as oppose to a plug-in shield/module.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD"
+            },
+            "modem_data_connection_type": {
+                "help": "Value: Defines how the modem is wired up to the MCU, e.g., data connection can be a UART or USB and so forth.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD_UART"
+            }
+        },
+        "extra_labels_add": ["STM32F4", "STM32F439", "STM32F439VI", "STM32F439xx", "STM32F439xI"],
+        "macros_add": ["MBEDTLS_CONFIG_HW_SUPPORT"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "detect_code": ["9015"],
+        "release_versions": ["2", "5"],
+        "device_name" : "STM32F439VI",
+        "components_add": ["SD"],
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "CELLULAR"
+        }
+    },
+    "DISCO_F051R8": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M0",
+        "extra_labels_add": ["STM32F0", "STM32F051", "STM32F051R8"],
+        "supported_toolchains": ["GCC_ARM"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "macros_add": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "device_has_add": [
+            "CRC",
+            "MPU"
+        ],
+        "device_has_remove": ["LPTICKER"],
+        "device_name": "STM32F051R8"
+    },
+    "DISCO_F100RB": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M3",
+        "extra_labels_add": ["STM32F1", "STM32F100RB"],
+        "supported_toolchains": ["GCC_ARM"],
+        "device_has_add": [],
+        "device_has_remove": ["LPTICKER"],
+        "device_name": "STM32F100RB"
+    },
+    "DISCO_F303VC": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F3",
+            "STM32F303",
+            "STM32F303xC",
+            "STM32F303VC"
+        ],
+        "overrides": { "lse_available": 0 },
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "MPU"
+        ],
+        "device_name": "STM32F303VC"
+    },
+    "DISCO_F334C8": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F3", "STM32F334x8", "STM32F334C8"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "overrides": { "lse_available": 0 },
+        "detect_code": ["0810"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CRC",
+            "SERIAL_ASYNCH"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32F334C8"
+    },
+    "DISCO_F407VG": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F407",
+            "STM32F407xG",
+            "STM32F407VG"
+        ],
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_XTAL|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "macros_add": ["USB_STM_HAL"],
+        "overrides": { "lse_available": 0 },
+        "device_has_add": ["ANALOGOUT", "TRNG", "FLASH", "MPU"],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F407VG"
+    },
+    "DISCO_F429ZI": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F429",
+            "STM32F429ZI",
+            "STM32F429xI",
+            "STM32F429xx"
+        ],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_XTAL|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "clock_source_usb": {
+                "help": "As 48 Mhz clock is configured for USB, SYSCLK has to be reduced from 180 to 168 MHz (set 0 for the max SYSCLK value)",
+                "value": "1",
+                "macro_name": "CLOCK_SOURCE_USB"
+            }
+        },
+        "overrides": { "lse_available": 0 },
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F429ZI",
+        "bootloader_supported": true
+    },
+    "DISCO_F469NI": {
+        "components_add": ["QSPIF"],
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F469",
+            "STM32F469NI",
+            "STM32F469xI",
+            "STM32F469xx"
+        ],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_XTAL|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "detect_code": ["0788"],
+        "macros_add": ["USB_STM_HAL", "USBHOST_OTHER"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "TRNG",
+            "FLASH",
+            "QSPI",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F469NI",
+        "bootloader_supported": true
+    },
+    "DISCO_L053C8": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M0+",
+        "extra_labels_add": ["STM32L0", "STM32L053x8", "STM32L053C8"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": {
+            "lse_available": 0,
+            "lpticker_delay_ticks": 4
+        },
+        "device_has_add": [
+            "ANALOGOUT",
+            "CRC",
+            "FLASH",
+            "MPU"
+        ],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "STM32L053C8"
+    },
+    "DISCO_L072CZ_LRWAN1": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M0+",
+        "extra_labels_add": [
+            "STM32L0",
+            "STM32L072CZ",
+            "STM32L072xZ",
+            "STM32L072xx"
+        ],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS"
+        ],
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0833"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L072CZ"
+    },
+    "MTB_MURATA_ABZ": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M0+",
+        "extra_labels_add": [
+            "STM32L0",
+            "STM32L0x2xZ",
+            "STM32L082CZ",
+            "STM32L082xx"
+        ],
+        "detect_code": ["0456"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "device_has_remove": ["LPTICKER"],
+        "release_versions": ["5"],
+        "device_name": "STM32L082CZ"
+    },
+    "DISCO_F746NG": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M7F",
+        "extra_labels_add": [
+            "STM32F7",
+            "STM32F746",
+            "STM32F746xG",
+            "STM32F746NG",
+            "STM_EMAC"
+        ],
+        "components_add": ["QSPIF"],
+        "supported_form_factors": ["ARDUINO"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_XTAL|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "usb_speed": {
+                "help": "Select the USB speed/connector (0=FullSpeed, 1=HighSpeed)",
+                "value": "1"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "detect_code": ["0815"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USB_STM_HAL",
+            "USBHOST_OTHER"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "EMAC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "QSPI",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F746NG",
+        "bootloader_supported": true,
+        "overrides": {
+            "lpticker_delay_ticks": 4,
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "DISCO_F769NI": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M7FD",
+        "extra_labels_add": [
+            "STM32F7",
+            "STM32F769",
+            "STM32F769xI",
+            "STM32F769NI",
+            "STM_EMAC"
+        ],
+        "components_add": ["QSPIF"],
+        "supported_form_factors": ["ARDUINO"],
+        "config": {
+            "flash_dual_bank": {
+                "help": "Default board configuration is Single Bank Flash. If you enable Dual Bank with ST Link Utility, set value to 1",
+                "value": "0"
+            },
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL | USE_PLL_HSI",
+                "value": "USE_PLL_HSE_EXTC|USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "detect_code": ["0817"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USB_STM_HAL",
+            "USBHOST_OTHER"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "EMAC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU",
+            "QSPI"
+        ],
+        "bootloader_supported": true,
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F769NI",
+        "overrides": {
+            "lpticker_delay_ticks": 4,
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "DISCO_L475VG_IOT01A": {
+        "components_add": ["QSPIF", "FLASHIAP"],
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L475xG", "STM32L475VG"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "supported_form_factors": ["ARDUINO"],
+        "detect_code": ["0764"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USBHOST_OTHER",
+            "TWO_RAM_REGIONS"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "TRNG",
+            "FLASH",
+            "QSPI",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L475VG",
+        "bootloader_supported": true
+    },
+    "MTB_STM_L475": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L475xG", "STM32L475VG"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (8MHz) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_HSE_XTAL",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 0
+            }
+        },
+        "detect_code": ["0468"],
+        "macros_add": ["USBHOST_OTHER", "TWO_RAM_REGIONS"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "SERIAL_FC",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["5"],
+        "device_name": "STM32L475VG",
+        "bootloader_supported": true
+    },
+    "DISCO_L476VG": {
+        "components_add": ["QSPIF", "FLASHIAP"],
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L476xG", "STM32L476VG"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0820"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USBHOST_OTHER",
+            "TWO_RAM_REGIONS"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "TRNG",
+            "FLASH",
+            "QSPI",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L476VG",
+        "bootloader_supported": true
+    },
+	"RHOMBIO_L476DMW1K": {
+        "components_add": ["FLASHIAP"],
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L476xG", "STM32L476VG"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["1500"],
+        "macros_add": [
+            "MBED_TICKLESS",
+            "USBHOST_OTHER",
+            "TWO_RAM_REGIONS"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "SERIAL_FC",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L476VG",
+        "bootloader_supported": true
+    },	
+    "MTS_MDOT_F405RG": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F405RG"],
+        "is_disk_virtual": true,
+        "macros_add": ["HSE_VALUE=26000000"],
+        "device_has_add": ["ANALOGOUT", "MPU"],
+        "release_versions": ["2"],
+        "device_name": "STM32F405RG"
+    },
+    "MTS_MDOT_F411RE": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F411RE"],
+        "macros_add": [
+            "HSE_VALUE=26000000",
+            "USE_PLL_HSE_EXTC=0",
+            "VECT_TAB_OFFSET=0x00010000"
+        ],
+        "post_binary_hook": {
+            "function": "MTSCode.combine_bins_mts_dot",
+            "toolchains": ["GCC_ARM", "ARM_STD", "ARM_MICRO", "IAR"]
+        },
+        "device_has_add": ["MPU"],
+        "device_has_remove": [
+            "SERIAL_FC"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F411RE"
+    },
+    "MTS_DRAGONFLY_F411RE": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F411RE"],
+        "config": {
+            "modem_is_on_board": {
+                "help": "Value: Tells the build system that the modem is on-board as oppose to a plug-in shield/module.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD"
+            },
+            "modem_data_connection_type": {
+                "help": "Value: Defines how an on-board modem is wired up to the MCU, e.g., data connection can be a UART or USB and so forth.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD_UART"
+            }
+        },
+        "overrides": { "lse_available": 0 },
+        "macros_add": ["HSE_VALUE=26000000", "VECT_TAB_OFFSET=0x08010000"],
+        "post_binary_hook": {
+            "function": "MTSCode.combine_bins_mts_dragonfly",
+            "toolchains": ["GCC_ARM", "ARM_STD", "ARM_MICRO", "IAR"]
+        },
+        "device_has_add": ["MPU"],
+        "device_has_remove": [
+            "SERIAL_FC"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F411RE"
+    },
+    "MTS_DRAGONFLY_L471QG": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32L4",
+            "STM32L471QG",
+            "STM32L471xG",
+            "STM32L471xx"
+        ],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "modem_is_on_board": {
+                "help": "Value: Tells the build system that the modem is on-board as oppose to a plug-in shield/module.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD"
+            },
+            "modem_data_connection_type": {
+                "help": "Value: Defines how an on-board modem is wired up to the MCU, e.g., data connection can be a UART or USB and so forth.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD_UART"
+            }
+        },
+        "macros_add": ["TWO_RAM_REGIONS"],
+        "detect_code": ["0312"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L471QG",
+        "bootloader_supported": true
+    },
+    "MTB_MTS_DRAGONFLY": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F411RE"],
+        "config": {
+            "modem_is_on_board": {
+                "help": "Value: Tells the build system that the modem is on-board as oppose to a plug-in shield/module.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD"
+            },
+            "modem_data_connection_type": {
+                "help": "Value: Defines how an on-board modem is wired up to the MCU, e.g., data connection can be a UART or USB and so forth.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD_UART"
+            }
+        },
+        "overrides": {
+            "lse_available": 0
+        },
+        "macros_add": ["HSE_VALUE=26000000", "VECT_TAB_OFFSET=0x08010000"],
+        "device_has_add": ["MPU"],
+        "device_has_remove": [
+            "SERIAL_FC"
+        ],
+        "post_binary_hook": {
+            "function": "MTSCode.combine_bins_mtb_mts_dragonfly",
+            "toolchains": ["GCC_ARM", "ARM_STD", "ARM_MICRO", "IAR"]
+        },
+        "release_versions": ["2", "5"],
+        "device_name": "STM32F411RE",
+        "bootloader_supported": true
+    },
+    "XDOT_L151CC": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M3",
+        "default_toolchain": "ARM",
+        "extra_labels_add": ["STM32L1", "STM32L151CC"],
+        "config": {
+            "hse_value": {
+                "value": "24000000",
+                "macro_name": "HSE_VALUE"
+            }
+        },
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "device_has_add": ["ANALOGOUT", "FLASH", "MPU"],
+        "device_has_remove": [
+            "SERIAL_FC"
+        ],
+        "release_versions": ["5"],
+        "device_name": "STM32L151CC",
+        "bootloader_supported": true
+    },
+    "FF1705_L151CC": {
+        "inherits": ["XDOT_L151CC"],
+        "detect_code": ["8080"]
+    },
+    "MTB_MTS_XDOT": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M3",
+        "default_toolchain": "ARM",
+        "extra_labels_add": ["STM32L1", "STM32L151CC"],
+        "config": {
+            "hse_value": {
+                "value": "24000000",
+                "macro_name": "HSE_VALUE"
+            }
+        },
+        "overrides": {
+            "stdio_uart_tx": "PA_2",
+            "stdio_uart_rx": "PA_3"
+        },
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "device_has_add": ["ANALOGOUT", "FLASH", "MPU"],
+        "device_has_remove": [
+            "SERIAL_FC"
+        ],
+        "release_versions": ["5"],
+        "device_name": "STM32L151CC",
+        "bootloader_supported": true
+    },
+    "MTB_RAK811": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M3",
+        "default_toolchain": "ARM",
+        "extra_labels_add": ["STM32L1", "STM32L151xBA", "STM32L151CBA"],
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "device_has_add": ["ANALOGOUT", "MPU"],
+        "device_has_remove": [
+            "SERIAL_FC"
+        ],
+        "release_versions": ["5"],
+        "device_name": "STM32L151CBxxA",
+        "bootloader_supported": true
+    },
+    "MOTE_L152RC": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M3",
+        "default_toolchain": "ARM",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels_add": ["STM32L1", "STM32L152RC"],
+        "detect_code": ["4100"],
+        "device_has_add": ["ANALOGOUT", "SERIAL_ASYNCH", "FLASH", "MPU"],
+        "device_has_remove": ["SERIAL_FC"],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L152RC"
+    },
+    "DISCO_F401VC": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "default_toolchain": "GCC_ARM",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F401",
+            "STM32F401xC",
+            "STM32F401VC"
+        ],
+        "supported_toolchains": ["GCC_ARM"],
+        "device_has_add": ["MPU"],
+        "device_name": "STM32F401VC"
+    },
+    "MODULE_UBLOX_ODIN_W2": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F439",
+            "STM32F439ZI",
+            "STM32F439xx",
+            "STM32F439xI",
+            "STM_EMAC",
+            "CORDIO",
+            "CORDIO_ODIN_W2"
+        ],
+        "macros": [
+            "MBEDTLS_CONFIG_HW_SUPPORT",
+            "HSE_VALUE=24000000",
+            "HSE_STARTUP_TIMEOUT=5000",
+            "CB_INTERFACE_SDIO",
+            "CB_CHIP_WL18XX",
+            "SUPPORT_80211D_ALWAYS",
+            "WLAN_ENABLED",
+            "CB_FEATURE_802DOT11W",
+            "CB_FEATURE_802DOT11R",
+            "MBEDTLS_ARC4_C",
+            "MBEDTLS_DES_C",
+            "MBEDTLS_MD4_C",
+            "MBEDTLS_MD5_C",
+            "MBEDTLS_SHA1_C",
+            "MBED_MPU_CUSTOM"
+        ],
+        "device_has_add": [
+            "CAN",
+            "EMAC",
+            "TRNG",
+            "FLASH",
+            "WIFI",
+            "SERIAL"
+        ],
+        "features": ["BLE"],
+        "device_has_remove": [],
+        "device_name": "STM32F439ZI",
+        "public": false,
+        "bootloader_supported": true,
+        "config": {
+            "BLE_STACK_UBX": {
+                "help": "It should be set to true to enable ublox ODIN own stack/driver rather than CORDIO",
+                "value": false,
+                "macro_name": "BLE_STACK_UBX"
+            }
+        },
+        "overrides": {
+            "network-default-interface-type": "WIFI"
+        }
+    },
+    "UBLOX_EVK_ODIN_W2": {
+        "inherits": ["MODULE_UBLOX_ODIN_W2"],
+        "supported_form_factors": ["ARDUINO"],
+        "release_versions": ["5"],
+        "device_has_remove": [],
+        "extra_labels_add": ["PSA"],
+        "components_add": ["FLASHIAP"],
+        "config": {
+            "stdio_uart_tx_help": {
+                "help": "Value: D8(default) or D1"
+            },
+            "stdio_uart_rx_help": {
+                "help": "Value: D2(default) or D0"
+            }
+        },
+        "overrides": {
+            "stdio_uart_tx": "D8",
+            "stdio_uart_rx": "D2"
+        }
+    },
+    "MBED_CONNECT_ODIN": {
+        "inherits": ["MODULE_UBLOX_ODIN_W2"],
+        "release_versions": ["5"],
+        "config": {
+            "stdio_uart_tx_help": {
+                "help": "Value: PA_9(default) or PD_8"
+            },
+            "stdio_uart_rx_help": {
+                "help": "Value: PA_10(default) or PD_9"
+            }
+        },
+        "overrides": {
+            "stdio_uart_tx": "PA_9",
+            "stdio_uart_rx": "PA_10"
+        }
+    },
+    "MTB_UBLOX_ODIN_W2": {
+        "inherits": ["MODULE_UBLOX_ODIN_W2"],
+        "device_has_add": [],
+        "overrides": {"lse_available": 0},
+        "release_versions": ["5"]
+    },
+    "UBLOX_C030": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "extra_labels_add": [
+            "STM32F4",
+            "STM32F437",
+            "STM32F437VG",
+            "STM32F437xx",
+            "STM32F437xG",
+            "STM_EMAC"
+        ],
+        "config": {
+            "modem_is_on_board": {
+                "help": "Value: Tells the build system that the modem is on-board as oppose to a plug-in shield/module.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD"
+            },
+            "modem_data_connection_type": {
+                "help": "Value: Defines how the modem is wired up to the MCU, e.g., data connection can be a UART or USB and so forth.",
+                "value": 1,
+                "macro_name": "MODEM_ON_BOARD_UART"
+            }
+        },
+        "macros_add": [
+            "MBEDTLS_CONFIG_HW_SUPPORT",
+            "HSE_VALUE=12000000",
+            "GNSSBAUD=9600"
+        ],
+        "device_has_add": [
+            "ANALOGOUT",
+            "EMAC",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "public": false,
+        "device_name": "STM32F437VG",
+        "bootloader_supported": true,
+        "overrides": {
+            "lse_available": 0,
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "UBLOX_C030_U201": {
+        "inherits": ["UBLOX_C030"],
+        "release_versions": ["5"]
+    },
+    "UBLOX_C030_N211": {
+        "inherits": ["UBLOX_C030"],
+        "release_versions": ["5"]
+    },
+    "UBLOX_C030_R41XM": {
+        "inherits": ["UBLOX_C030"],
+        "release_versions": ["5"]
+    },
+    "UBLOX_C030_R410M": {
+        "inherits": ["UBLOX_C030_R41XM"],
+        "release_versions": ["5"]
+    },
+    "UBLOX_C030_R412M": {
+        "inherits": ["UBLOX_C030_R41XM"],
+        "release_versions": ["5"]
+    },
+    "NZ32_SC151": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M3",
+        "default_toolchain": "uARM",
+        "program_cycle_s": 1.5,
+        "extra_labels_add": ["STM32L1", "STM32L151RC"],
+        "overrides": { "lse_available": 0 },
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"],
+        "device_has_add": ["ANALOGOUT", "MPU"],
+        "default_lib": "small",
+        "device_name": "STM32L151RC"
+    },
+    "MCU_NRF51": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0",
+        "OVERRIDE_BOOTLOADER_FILENAME": "nrf51822_bootloader.hex",
+        "macros": [
+            "NRF51",
+            "NRF5x",
+            "TARGET_NRF51822",
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "MERGE_BOOTLOADER": false,
+        "extra_labels": ["NORDIC", "MCU_NRF51", "MCU_NRF51822"],
+        "OUTPUT_EXT": "hex",
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "GCC_ARM"],
+        "public": false,
+        "MERGE_SOFT_DEVICE": true,
+        "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [
+            {
+                "boot": "s130_nrf51_1.0.0_bootloader.hex",
+                "name": "s130_nrf51_1.0.0_softdevice.hex",
+                "offset": 114688
+            },
+            {
+                "boot": "s110_nrf51822_8.0.0_bootloader.hex",
+                "name": "s110_nrf51822_8.0.0_softdevice.hex",
+                "offset": 98304
+            },
+            {
+                "boot": "s110_nrf51822_7.1.0_bootloader.hex",
+                "name": "s110_nrf51822_7.1.0_softdevice.hex",
+                "offset": 90112
+            },
+            {
+                "boot": "s110_nrf51822_7.0.0_bootloader.hex",
+                "name": "s110_nrf51822_7.0.0_softdevice.hex",
+                "offset": 90112
+            },
+            {
+                "boot": "s110_nrf51822_6.0.0_bootloader.hex",
+                "name": "s110_nrf51822_6.0.0_softdevice.hex",
+                "offset": 81920
+            }
+        ],
+        "detect_code": ["1070"],
+        "post_binary_hook": {
+            "function": "MCU_NRF51Code.binary_hook",
+            "toolchains": ["ARM_STD", "GCC_ARM"]
+        },
+        "program_cycle_s": 6,
+        "features": ["BLE"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ]
+    },
+    "MCU_NRF51_16K_BASE": {
+        "inherits": ["MCU_NRF51"],
+        "extra_labels_add": ["MCU_NORDIC_16K", "MCU_NRF51_16K"],
+        "macros_add": ["TARGET_MCU_NORDIC_16K", "TARGET_MCU_NRF51_16K"],
+        "public": false,
+        "default_lib": "small"
+    },
+    "MCU_NRF51_16K_BOOT_BASE": {
+        "inherits": ["MCU_NRF51_16K_BASE"],
+        "MERGE_BOOTLOADER": true,
+        "extra_labels_add": ["MCU_NRF51_16K_BOOT"],
+        "macros_add": ["TARGET_MCU_NRF51_16K_BOOT", "TARGET_OTA_ENABLED"],
+        "public": false
+    },
+    "MCU_NRF51_16K_OTA_BASE": {
+        "inherits": ["MCU_NRF51_16K_BASE"],
+        "public": false,
+        "extra_labels_add": ["MCU_NRF51_16K_OTA"],
+        "macros_add": ["TARGET_MCU_NRF51_16K_OTA", "TARGET_OTA_ENABLED"],
+        "MERGE_SOFT_DEVICE": false
+    },
+    "MCU_NRF51_16K": {
+        "inherits": ["MCU_NRF51_16K_BASE"],
+        "extra_labels_add": ["MCU_NRF51_16K_S130"],
+        "macros_add": ["TARGET_MCU_NRF51_16K_S130"],
+        "public": false
+    },
+    "MCU_NRF51_S110": {
+        "extra_labels_add": ["MCU_NRF51_16K_S110"],
+        "macros_add": ["TARGET_MCU_NRF51_16K_S110"],
+        "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [
+            {
+                "name": "s110_nrf51822_8.0.0_softdevice.hex",
+                "boot": "s110_nrf51822_8.0.0_bootloader.hex",
+                "offset": 98304
+            },
+            {
+                "name": "s110_nrf51822_7.1.0_softdevice.hex",
+                "boot": "s110_nrf51822_7.1.0_bootloader.hex",
+                "offset": 90112
+            }
+        ],
+        "public": false
+    },
+    "MCU_NRF51_16K_S110": {
+        "inherits": ["MCU_NRF51_S110", "MCU_NRF51_16K_BASE"],
+        "public": false
+    },
+    "MCU_NRF51_16K_BOOT": {
+        "inherits": ["MCU_NRF51_16K_BOOT_BASE"],
+        "extra_labels_add": ["MCU_NRF51_16K_S130"],
+        "macros_add": ["TARGET_MCU_NRF51_16K_S130"],
+        "public": false
+    },
+    "MCU_NRF51_16K_BOOT_S110": {
+        "inherits": ["MCU_NRF51_S110", "MCU_NRF51_16K_BOOT_BASE"],
+        "public": false
+    },
+    "MCU_NRF51_16K_OTA": {
+        "inherits": ["MCU_NRF51_16K_OTA_BASE"],
+        "extra_labels_add": ["MCU_NRF51_16K_S130"],
+        "macros_add": ["TARGET_MCU_NRF51_16K_S130"],
+        "public": false
+    },
+    "MCU_NRF51_16K_OTA_S110": {
+        "inherits": ["MCU_NRF51_S110", "MCU_NRF51_16K_OTA_BASE"],
+        "public": false
+    },
+    "MCU_NRF51_32K": {
+        "inherits": ["MCU_NRF51"],
+        "extra_labels_add": ["MCU_NORDIC_32K", "MCU_NRF51_32K"],
+        "macros_add": ["TARGET_MCU_NORDIC_32K", "TARGET_MCU_NRF51_32K"],
+        "public": false
+    },
+    "MCU_NRF51_32K_BOOT": {
+        "inherits": ["MCU_NRF51_32K"],
+        "MERGE_BOOTLOADER": true,
+        "extra_labels_add": ["MCU_NRF51_32K_BOOT"],
+        "macros_add": ["TARGET_MCU_NRF51_32K_BOOT", "TARGET_OTA_ENABLED"],
+        "public": false
+    },
+    "MCU_NRF51_32K_OTA": {
+        "inherits": ["MCU_NRF51_32K"],
+        "public": false,
+        "extra_labels_add": ["MCU_NRF51_32K_OTA"],
+        "macros_add": ["TARGET_MCU_NRF51_32K_OTA", "TARGET_OTA_ENABLED"],
+        "MERGE_SOFT_DEVICE": false
+    },
+    "NRF51822": {
+        "inherits": ["MCU_NRF51_16K"],
+        "extra_labels_add": ["NRF51822", "NRF51822_MKIT"],
+        "macros_add": ["TARGET_NRF51822_MKIT"],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "NRF51822_BOOT": {
+        "inherits": ["MCU_NRF51_16K_BOOT"],
+        "extra_labels_add": ["NRF51822", "NRF51822_MKIT"],
+        "macros_add": ["TARGET_NRF51822_MKIT"]
+    },
+    "NRF51822_OTA": {
+        "inherits": ["MCU_NRF51_16K_OTA"],
+        "extra_labels_add": ["NRF51822", "NRF51822_MKIT"],
+        "macros_add": ["TARGET_NRF51822_MKIT"]
+    },
+    "ARCH_BLE": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_16K"],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "ARCH_BLE_BOOT": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_16K_BOOT"],
+        "extra_labels_add": ["ARCH_BLE"],
+        "macros_add": ["TARGET_ARCH_BLE"]
+    },
+    "ARCH_BLE_OTA": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_16K_OTA"],
+        "extra_labels_add": ["ARCH_BLE"],
+        "macros_add": ["TARGET_ARCH_BLE"]
+    },
+    "ARCH_LINK": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_16K"],
+        "extra_labels_add": ["ARCH_BLE"],
+        "macros_add": ["TARGET_ARCH_BLE"]
+    },
+    "ARCH_LINK_BOOT": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_16K_BOOT"],
+        "extra_labels_add": ["ARCH_BLE", "ARCH_LINK"],
+        "macros_add": ["TARGET_ARCH_BLE", "TARGET_ARCH_LINK"]
+    },
+    "ARCH_LINK_OTA": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_16K_OTA"],
+        "extra_labels_add": ["ARCH_BLE", "ARCH_LINK"],
+        "macros_add": ["TARGET_ARCH_BLE", "TARGET_ARCH_LINK"]
+    },
+    "SEEED_TINY_BLE": {
+        "inherits": ["MCU_NRF51_16K"],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "SEEED_TINY_BLE_BOOT": {
+        "inherits": ["MCU_NRF51_16K_BOOT"],
+        "extra_labels_add": ["SEEED_TINY_BLE"],
+        "macros_add": ["TARGET_SEEED_TINY_BLE"]
+    },
+    "SEEED_TINY_BLE_OTA": {
+        "inherits": ["MCU_NRF51_16K_OTA"],
+        "extra_labels_add": ["SEEED_TINY_BLE"],
+        "macros_add": ["TARGET_SEEED_TINY_BLE"]
+    },
+    "HRM1017": {
+        "inherits": ["MCU_NRF51_16K"],
+        "macros_add": ["TARGET_NRF_LFCLK_RC"],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "HRM1017_BOOT": {
+        "inherits": ["MCU_NRF51_16K_BOOT"],
+        "extra_labels_add": ["HRM1017"],
+        "macros_add": ["TARGET_HRM1017", "TARGET_NRF_LFCLK_RC"]
+    },
+    "HRM1017_OTA": {
+        "inherits": ["MCU_NRF51_16K_OTA"],
+        "extra_labels_add": ["HRM1017"],
+        "macros_add": ["TARGET_HRM1017", "TARGET_NRF_LFCLK_RC"]
+    },
+    "RBLAB_NRF51822": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_16K"],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "RBLAB_NRF51822_BOOT": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_16K_BOOT"],
+        "extra_labels_add": ["RBLAB_NRF51822"],
+        "macros_add": ["TARGET_RBLAB_NRF51822"]
+    },
+    "RBLAB_NRF51822_OTA": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_16K_OTA"],
+        "extra_labels_add": ["RBLAB_NRF51822"],
+        "macros_add": ["TARGET_RBLAB_NRF51822"]
+    },
+    "RBLAB_BLENANO": {
+        "inherits": ["MCU_NRF51_16K"],
+        "release_versions": ["2"]
+    },
+    "RBLAB_BLENANO_BOOT": {
+        "inherits": ["MCU_NRF51_16K_BOOT"],
+        "extra_labels_add": ["RBLAB_BLENANO"],
+        "macros_add": ["TARGET_RBLAB_BLENANO"]
+    },
+    "RBLAB_BLENANO_OTA": {
+        "inherits": ["MCU_NRF51_16K_OTA"],
+        "extra_labels_add": ["RBLAB_BLENANO"],
+        "macros_add": ["TARGET_RBLAB_BLENANO"]
+    },
+    "RBLAB_BLENANO2": {
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA"
+    },
+    "NRF51822_Y5_MBUG": {
+        "inherits": ["MCU_NRF51_16K"]
+    },
+    "WALLBOT_BLE": {
+        "inherits": ["MCU_NRF51_16K"],
+        "release_versions": ["2"]
+    },
+    "WALLBOT_BLE_BOOT": {
+        "inherits": ["MCU_NRF51_16K_BOOT"],
+        "extra_labels_add": ["WALLBOT_BLE"],
+        "macros_add": ["TARGET_WALLBOT_BLE"]
+    },
+    "WALLBOT_BLE_OTA": {
+        "inherits": ["MCU_NRF51_16K_OTA"],
+        "extra_labels_add": ["WALLBOT_BLE"],
+        "macros_add": ["TARGET_WALLBOT_BLE"]
+    },
+    "DELTA_DFCM_NNN40": {
+        "inherits": ["MCU_NRF51_32K"],
+        "program_cycle_s": 10,
+        "macros_add": ["TARGET_NRF_LFCLK_RC"],
+        "device_has": [
+            "ANALOGIN",
+            "DEBUG_AWARENESS",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "DELTA_DFCM_NNN40_BOOT": {
+        "inherits": ["MCU_NRF51_32K_BOOT"],
+        "program_cycle_s": 10,
+        "extra_labels_add": ["DELTA_DFCM_NNN40"],
+        "macros_add": ["TARGET_DELTA_DFCM_NNN40", "TARGET_NRF_LFCLK_RC"]
+    },
+    "DELTA_DFCM_NNN40_OTA": {
+        "inherits": ["MCU_NRF51_32K_OTA"],
+        "program_cycle_s": 10,
+        "extra_labels_add": ["DELTA_DFCM_NNN40"],
+        "macros_add": ["TARGET_DELTA_DFCM_NNN40", "TARGET_NRF_LFCLK_RC"]
+    },
+    "DELTA_DFCM_NNN50": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K_UNIFIED"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE"
+        ],
+        "device_name": "nRF51822_xxAC"
+    },
+    "DELTA_DFCM_NNN50_BOOT": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K_BOOT"],
+        "extra_labels_add": ["DELTA_DFCM_NNN50"],
+        "macros_add": ["TARGET_DELTA_DFCM_NNN50"]
+    },
+    "DELTA_DFCM_NNN50_OTA": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K_OTA"],
+        "extra_labels_add": ["DELTA_DFCM_NNN50"],
+        "macros_add": ["TARGET_DELTA_DFCM_NNN50"]
+    },
+    "NRF51_DK_LEGACY": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K"],
+        "extra_labels_add": ["NRF51_DK"]
+    },
+    "NRF51_DK_BOOT": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K_BOOT"],
+        "extra_labels_add": ["NRF51_DK"],
+        "macros_add": ["TARGET_NRF51_DK"]
+    },
+    "NRF51_DK_OTA": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K_OTA"],
+        "extra_labels_add": ["NRF51_DK"],
+        "macros_add": ["TARGET_NRF51_DK"]
+    },
+    "NRF51_DONGLE_LEGACY": {
+        "inherits": ["MCU_NRF51_32K"],
+        "extra_labels_add": ["NRF51_DONGLE"],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "NRF51_DONGLE_BOOT": {
+        "inherits": ["MCU_NRF51_32K_BOOT"],
+        "extra_labels_add": ["NRF51_DONGLE"],
+        "macros_add": ["TARGET_NRF51_DONGLE"]
+    },
+    "NRF51_DONGLE_OTA": {
+        "inherits": ["MCU_NRF51_32K_OTA"],
+        "extra_labels_add": ["NRF51_DONGLE"],
+        "macros_add": ["TARGET_NRF51_DONGLE"]
+    },
+    "NRF51_MICROBIT": {
+        "inherits": ["MCU_NRF51_16K_S110"],
+        "macros_add": ["TARGET_NRF_LFCLK_RC"],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "NRF51_MICROBIT_BOOT": {
+        "inherits": ["MCU_NRF51_16K_BOOT_S110"],
+        "extra_labels_add": ["NRF51_MICROBIT"],
+        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"]
+    },
+    "NRF51_MICROBIT_OTA": {
+        "inherits": ["MCU_NRF51_16K_OTA_S110"],
+        "extra_labels_add": ["NRF51_MICROBIT"],
+        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"]
+    },
+    "NRF51_MICROBIT_B": {
+        "inherits": ["MCU_NRF51_16K"],
+        "extra_labels_add": ["NRF51_MICROBIT"],
+        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"],
+        "release_versions": ["2"]
+    },
+    "NRF51_MICROBIT_B_BOOT": {
+        "inherits": ["MCU_NRF51_16K_BOOT"],
+        "extra_labels_add": ["NRF51_MICROBIT"],
+        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"]
+    },
+    "NRF51_MICROBIT_B_OTA": {
+        "inherits": ["MCU_NRF51_16K_OTA"],
+        "extra_labels_add": ["NRF51_MICROBIT"],
+        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"]
+    },
+    "MTM_MTCONNECT04S": {
+        "inherits": ["MCU_NRF51_32K"],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "MTM_MTCONNECT04S_BOOT": {
+        "inherits": ["MCU_NRF51_32K_BOOT"],
+        "extra_labels_add": ["MTM_CONNECT04S"],
+        "macros_add": ["TARGET_MTM_CONNECT04S"]
+    },
+    "MTM_MTCONNECT04S_OTA": {
+        "inherits": ["MCU_NRF51_32K_OTA"],
+        "extra_labels_add": ["MTM_CONNECT04S"],
+        "macros_add": ["TARGET_MTM_CONNECT04S"]
+    },
+    "MTB_LAIRD_BL600": {
+        "inherits": ["MCU_NRF51_32K_UNIFIED"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE"
+        ],
+        "device_name": "nRF51822_xxAA",
+        "release_versions": ["5"],
+        "extra_labels_add": ["MTB_LAIRD_BL600"],
+        "config": {
+            "usb_tx": {
+                "help": "Value SIO_21",
+                "value": "SIO_21"
+            },
+            "usb_rx": {
+                "help": "Value SIO_22",
+                "value": "SIO_22"
+            },
+            "stdio_uart": {
+                "help": "Value: UART_0",
+                "value": "UART_0",
+                "macro_name": "STDIO_UART"
+            }
+        },
+        "overrides": {
+            "uart_hwfc": 0
+        }
+    },
+    "TY51822R3": {
+        "inherits": ["MCU_NRF51_32K_UNIFIED"],
+        "macros_add": ["TARGET_NRF_32MHZ_XTAL"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE"
+        ],
+        "detect_code": ["1019"],
+        "release_versions": ["2", "5"],
+        "overrides": { "uart_hwfc": 0 },
+        "device_name": "nRF51822_xxAA"
+    },
+    "TY51822R3_BOOT": {
+        "inherits": ["MCU_NRF51_32K_BOOT"],
+        "extra_labels_add": ["TY51822R3"],
+        "macros_add": ["TARGET_TY51822R3", "TARGET_NRF_32MHZ_XTAL"]
+    },
+    "TY51822R3_OTA": {
+        "inherits": ["MCU_NRF51_32K_OTA"],
+        "extra_labels_add": ["NRF51_DK"],
+        "macros_add": ["TARGET_TY51822R3", "TARGET_NRF_32MHZ_XTAL"]
+    },
+    "ARM_MPS2_Target": {
+        "inherits": ["Target"],
+        "public": false,
+        "device_has": [
+            "AACI",
+            "ANALOGIN",
+            "CLCD",
+            "ETHERNET",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SPI",
+            "SPISLAVE",
+            "TSC"
+        ]
+    },
+    "ARM_MPS2_M0": {
+        "inherits": ["ARM_MPS2_Target"],
+        "core": "Cortex-M0",
+        "supported_toolchains": ["ARM"],
+        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M0"],
+        "macros": [
+            "CMSDK_CM0",
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "device_has": [
+            "AACI",
+            "ANALOGIN",
+            "CLCD",
+            "ETHERNET",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "TSC",
+            "MPU"
+        ],
+        "release_versions": ["2"]
+    },
+    "ARM_MPS2_M0P": {
+        "inherits": ["ARM_MPS2_Target"],
+        "core": "Cortex-M0+",
+        "supported_toolchains": ["ARM"],
+        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M0P"],
+        "macros": ["CMSDK_CM0plus"],
+        "device_has": [
+            "AACI",
+            "ANALOGIN",
+            "CLCD",
+            "ETHERNET",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "TSC",
+            "MPU"
+        ],
+        "release_versions": ["2"]
+    },
+    "ARM_MPS2_M3": {
+        "inherits": ["ARM_MPS2_Target"],
+        "core": "Cortex-M3",
+        "supported_toolchains": ["ARM"],
+        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M3"],
+        "macros": ["CMSDK_CM3"],
+        "device_has": [
+            "AACI",
+            "ANALOGIN",
+            "CLCD",
+            "ETHERNET",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "TSC",
+            "MPU"
+        ],
+        "release_versions": ["2"]
+    },
+    "ARM_MPS2_M4": {
+        "inherits": ["ARM_MPS2_Target"],
+        "core": "Cortex-M4F",
+        "supported_toolchains": ["ARM"],
+        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M4"],
+        "macros": ["CMSDK_CM4"],
+        "device_has": [
+            "AACI",
+            "ANALOGIN",
+            "CLCD",
+            "ETHERNET",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "TSC",
+            "MPU"
+        ],
+        "release_versions": ["2"]
+    },
+    "ARM_MPS2_M7": {
+        "inherits": ["ARM_MPS2_Target"],
+        "core": "Cortex-M7",
+        "supported_toolchains": ["ARM"],
+        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M7"],
+        "macros": ["CMSDK_CM7"],
+        "device_has": [
+            "AACI",
+            "ANALOGIN",
+            "CLCD",
+            "ETHERNET",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "TSC",
+            "MPU"
+        ],
+        "release_versions": ["2"]
+    },
+    "ARM_IOTSS_Target": {
+        "inherits": ["Target"],
+        "public": false,
+        "device_has": [
+            "AACI",
+            "ANALOGIN",
+            "CLCD",
+            "ETHERNET",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "TSC",
+            "MPU"
+        ]
+    },
+    "ARM_IOTSS_BEID": {
+        "inherits": ["ARM_IOTSS_Target"],
+        "core": "Cortex-M3",
+        "supported_toolchains": ["ARM"],
+        "extra_labels": ["ARM_SSG", "IOTSS", "IOTSS_BEID"],
+        "macros": ["CMSDK_BEID"],
+        "device_has": [
+            "AACI",
+            "ANALOGIN",
+            "CLCD",
+            "ETHERNET",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "TSC",
+            "MPU"
+        ],
+        "release_versions": ["2"]
+    },
+    "ARM_CM3DS_MPS2": {
+        "inherits": ["ARM_IOTSS_Target"],
+        "core": "Cortex-M3",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "components_add": ["SMSC9220"],
+        "extra_labels": ["ARM_SSG", "CM3DS_MPS2"],
+        "OUTPUT_EXT": "elf",
+        "macros": ["CMSDK_CM3DS"],
+        "device_has": [
+            "ANALOGIN",
+            "EMAC",
+            "FLASH",
+            "I2C",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "RTC",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "TRNG",
+            "USTICKER",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "copy_method": "mps2",
+        "reset_method": "reboot.txt",
+        "overrides": {
+            "target.network-default-interface-type": "ETHERNET"
+        }
+    },
+    "ARM_BEETLE_SOC": {
+        "inherits": ["ARM_IOTSS_Target"],
+        "core": "Cortex-M3",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "default_toolchain": "ARM",
+        "extra_labels": ["ARM_SSG", "BEETLE"],
+        "macros": [
+            "CMSDK_BEETLE",
+            "WSF_MS_PER_TICK=20",
+            "WSF_TOKEN_ENABLED=FALSE",
+            "WSF_TRACE_ENABLED=TRUE",
+            "WSF_ASSERT_ENABLED=FALSE",
+            "WSF_PRINTF_MAX_LEN=128",
+            "ASIC",
+            "CONFIG_HOST_REV=0x20",
+            "CONFIG_ALLOW_DEEP_SLEEP=FALSE",
+            "HCI_VS_TARGET",
+            "CONFIG_ALLOW_SETTING_WRITE=TRUE",
+            "WSF_MAX_HANDLERS=20",
+            "NO_LEDS"
+        ],
+        "device_has": [
+            "ANALOGIN",
+            "CLCD",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "MPU"
+        ],
+        "features": ["BLE"],
+        "release_versions": ["2", "5"]
+    },
+    "RZ_A1XX": {
+        "inherits": ["Target"],
+        "core": "Cortex-A9",
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "extra_labels": ["RENESAS", "RZ_A1XX"],
+        "device_has": [
+            "SLEEP",
+            "USTICKER",
+            "RTC",
+            "ANALOGIN",
+            "CAN",
+            "ETHERNET",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES"
+        ],
+        "program_cycle_s": 2,
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "RZ_A1H": {
+        "inherits": ["RZ_A1XX"],
+        "supported_form_factors": ["ARDUINO"],
+        "extra_labels_add": ["RZA1H", "MBRZA1H", "RZ_A1_EMAC"],
+        "components_add": ["SD"],
+        "device_has_add": ["EMAC", "FLASH", "LPTICKER"],
+        "release_versions": ["2", "5"],
+        "device_name": "R7S72100",
+        "bootloader_supported": true
+    },
+    "VK_RZ_A1H": {
+        "inherits": ["RZ_A1XX"],
+        "extra_labels_add": ["RZA1H", "VKRZA1H", "RZ_A1_EMAC"],
+        "components_add": ["RZ_SDHI"],
+        "device_has_add": ["EMAC"],
+        "release_versions": ["2", "5"]
+    },
+    "GR_LYCHEE": {
+        "inherits": ["RZ_A1XX"],
+        "supported_form_factors": ["ARDUINO"],
+        "extra_labels_add": ["RZA1UL", "MBRZA1LU"],
+        "components_add": ["SD"],
+        "device_has_add": ["TRNG", "FLASH", "LPTICKER"],
+        "device_has_remove": ["ETHERNET"],
+        "release_versions": ["2", "5"],
+        "device_name": "R7S72103",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": null
+        }
+    },
+    "MAXWSNENV": {
+        "inherits": ["Target"],
+        "core": "Cortex-M3",
+        "macros": ["__SYSTEM_HFX=24000000"],
+        "extra_labels": ["Maxim", "MAX32610"],
+        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "STDIO_MESSAGES"
+        ],
+        "features": ["BLE"],
+        "release_versions": []
+    },
+    "MAX32600MBED": {
+        "inherits": ["Target"],
+        "core": "Cortex-M3",
+        "macros": ["__SYSTEM_HFX=24000000"],
+        "extra_labels": ["Maxim", "MAX32600"],
+        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2", "5"]
+    },
+    "MAX32620HSP": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "extra_labels": ["Maxim", "MAX32620"],
+        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES"
+        ],
+        "features": ["BLE"],
+        "release_versions": []
+    },
+    "MAX32620FTHR": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "macros": [
+            "__SYSTEM_HFX=96000000",
+            "TARGET=MAX32620",
+            "TARGET_REV=0x4332",
+            "OPEN_DRAIN_LEDS"
+        ],
+        "extra_labels": ["Maxim", "MAX32620C"],
+        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "FLASH",
+            "I2C",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "STDIO_MESSAGES",
+            "USTICKER"
+        ],
+        "release_versions": ["2", "5"]
+    },
+    "SDT32620B": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "macros": [
+            "__SYSTEM_HFX=96000000",
+            "TARGET=MAX32620",
+            "TARGET_REV=0x4332",
+            "OPEN_DRAIN_LEDS"
+        ],
+        "detect_code": ["3101"],
+        "extra_labels": ["Maxim", "MAX32620C"],
+        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "FLASH",
+            "I2C",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "STDIO_MESSAGES",
+            "USTICKER"
+        ],
+        "release_versions": ["2", "5"]
+    },
+    "MAX32625_BASE": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "macros": ["TARGET=MAX32625", "TARGET_REV=0x4132", "OPEN_DRAIN_LEDS"],
+        "extra_labels": ["Maxim", "MAX32625"],
+        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "RTC",
+            "SERIAL",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "STDIO_MESSAGES",
+            "USTICKER"
+        ],
+        "device_name": "MAX32625",
+        "release_versions": ["2", "5"],
+        "public": false
+    },
+    "MAX32625MBED": {
+        "inherits": ["MAX32625_BASE"],
+        "extra_labels_add": ["MAX32625_NO_BOOT"]
+    },
+    "SDT32625B": {
+        "inherits": ["MAX32625_BASE"],
+        "extra_labels_add": ["MAX32625_NO_BOOT"],
+        "detect_code": ["3102"]
+    },
+    "MAX32625PICO": {
+        "inherits": ["MAX32625_BASE"],
+        "extra_labels_add": ["MAX32625_BOOT"],
+        "bootloader_supported": true
+    },
+    "MAX32625NEXPAQ": {
+        "inherits": ["MAX32625_BASE"]
+    },
+    "MAX32630FTHR": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "macros": [
+            "__SYSTEM_HFX=96000000",
+            "TARGET=MAX32630",
+            "TARGET_REV=0x4132",
+            "BLE_HCI_UART",
+            "OPEN_DRAIN_LEDS"
+        ],
+        "extra_labels": ["Maxim", "MAX32630"],
+        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SPI",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "MPU"
+        ],
+        "features": ["BLE"],
+        "release_versions": ["2", "5"]
+    },
+    "EFM32": {
+        "inherits": ["Target"],
+        "extra_labels": ["Silicon_Labs", "EFM32"],
+        "macros": [
+            "MBEDTLS_CONFIG_HW_SUPPORT",
+            "MBED_TICKLESS",
+            "EM_MSC_RUN_FROM_FLASH"
+        ],
+        "public": false
+    },
+    "EFM32GG990F1024": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": ["EFM32GG", "1024K", "SL_AES"],
+        "core": "Cortex-M3",
+        "macros_add": ["EFM32GG990F1024", "TRANSACTION_QUEUE_SIZE_SPI=4"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "device_name": "EFM32GG990F1024",
+        "public": false,
+        "bootloader_supported": true
+    },
+    "EFM32GG_STK3700": {
+        "inherits": ["EFM32GG990F1024"],
+        "progen": { "target": "efm32gg-stk" },
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "RTC",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "FLASH",
+            "ITM",
+            "MPU"
+        ],
+        "forced_reset_timeout": 2,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "48000000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "21000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            },
+            "board_controller_enable": {
+                "help": "Pin to pull high for enabling the USB serial port",
+                "value": "PF7",
+                "macro_name": "EFM_BC_EN"
+            }
+        }
+    },
+    "EFM32LG990F256": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": ["EFM32LG", "256K", "SL_AES"],
+        "core": "Cortex-M3",
+        "macros_add": ["EFM32LG990F256", "TRANSACTION_QUEUE_SIZE_SPI=4"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "device_name": "EFM32LG990F256",
+        "public": false,
+        "bootloader_supported": true
+    },
+    "EFM32LG_STK3600": {
+        "inherits": ["EFM32LG990F256"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "RTC",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "FLASH",
+            "MPU"
+        ],
+        "forced_reset_timeout": 2,
+        "device_name": "EFM32LG990F256",
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "48000000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "21000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            },
+            "board_controller_enable": {
+                "help": "Pin to pull high for enabling the USB serial port",
+                "value": "PF7",
+                "macro_name": "EFM_BC_EN"
+            }
+        }
+    },
+    "EFM32WG990F256": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": ["EFM32WG", "256K", "SL_AES"],
+        "core": "Cortex-M4F",
+        "macros_add": ["EFM32WG990F256", "TRANSACTION_QUEUE_SIZE_SPI=4"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "device_name": "EFM32WG990F256",
+        "public": false,
+        "bootloader_supported": true
+    },
+    "EFM32WG_STK3800": {
+        "inherits": ["EFM32WG990F256"],
+        "progen": { "target": "efm32wg-stk" },
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "RTC",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "FLASH",
+            "MPU"
+        ],
+        "forced_reset_timeout": 2,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "48000000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "21000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            },
+            "board_controller_enable": {
+                "help": "Pin to pull high for enabling the USB serial port",
+                "value": "PF7",
+                "macro_name": "EFM_BC_EN"
+            }
+        }
+    },
+    "EFM32ZG222F32": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": ["EFM32ZG", "32K", "SL_AES"],
+        "core": "Cortex-M0+",
+        "default_toolchain": "uARM",
+        "macros_add": ["EFM32ZG222F32", "TRANSACTION_QUEUE_SIZE_SPI=0"],
+        "supported_toolchains": ["GCC_ARM", "uARM", "IAR"],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "EFM32ZG222F32",
+        "public": false
+    },
+    "EFM32ZG_STK3200": {
+        "inherits": ["EFM32ZG222F32"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER"
+        ],
+        "forced_reset_timeout": 2,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "24000000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "21000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            },
+            "board_controller_enable": {
+                "help": "Pin to pull high for enabling the USB serial port",
+                "value": "PA9",
+                "macro_name": "EFM_BC_EN"
+            }
+        }
+    },
+    "EFM32HG322F64": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": ["EFM32HG", "64K", "SL_AES"],
+        "core": "Cortex-M0+",
+        "default_toolchain": "uARM",
+        "macros_add": ["EFM32HG322F64", "TRANSACTION_QUEUE_SIZE_SPI=0"],
+        "supported_toolchains": ["GCC_ARM", "uARM", "IAR"],
+        "default_lib": "small",
+        "release_versions": ["2"],
+        "device_name": "EFM32HG322F64",
+        "public": false
+    },
+    "EFM32HG_STK3400": {
+        "inherits": ["EFM32HG322F64"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER"
+        ],
+        "forced_reset_timeout": 2,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "24000000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "21000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            },
+            "board_controller_enable": {
+                "help": "Pin to pull high for enabling the USB serial port",
+                "value": "PA9",
+                "macro_name": "EFM_BC_EN"
+            }
+        }
+    },
+    "EFM32PG1B100F256GM32": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": ["EFM32PG", "256K", "SL_CRYPTO"],
+        "core": "Cortex-M4F",
+        "macros_add": ["EFM32PG1B100F256GM32", "TRANSACTION_QUEUE_SIZE_SPI=4"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "device_name": "EFM32PG1B100F256GM32",
+        "public": false,
+        "bootloader_supported": true
+    },
+    "EFM32PG_STK3401": {
+        "inherits": ["EFM32PG1B100F256GM32"],
+        "device_has": [
+            "ANALOGIN",
+            "CRC",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "RTC",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "FLASH",
+            "MPU"
+        ],
+        "forced_reset_timeout": 2,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "40000000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "32000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "cmuHFRCOFreq_32M0Hz",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            },
+            "board_controller_enable": {
+                "help": "Pin to pull high for enabling the USB serial port",
+                "value": "PA5",
+                "macro_name": "EFM_BC_EN"
+            }
+        }
+    },
+    "EFR32MG1P132F256GM48": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": [
+            "EFR32MG1",
+            "EFR32_1",
+            "256K",
+            "SL_RAIL",
+            "SL_CRYPTO"
+        ],
+        "core": "Cortex-M4F",
+        "macros_add": ["EFR32MG1P132F256GM48", "TRANSACTION_QUEUE_SIZE_SPI=4"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "device_name": "EFR32MG1P132F256GM48",
+        "public": false,
+        "bootloader_supported": true
+    },
+    "EFR32MG1P233F256GM48": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": [
+            "EFR32MG1",
+            "EFR32_1",
+            "256K",
+            "SL_RAIL",
+            "SL_CRYPTO"
+        ],
+        "core": "Cortex-M4F",
+        "macros_add": ["EFR32MG1P233F256GM48", "TRANSACTION_QUEUE_SIZE_SPI=4"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "public": false,
+        "bootloader_supported": true
+    },
+    "EFR32MG1_BRD4150": {
+        "inherits": ["EFR32MG1P132F256GM48"],
+        "device_has": [
+            "802_15_4_PHY",
+            "ANALOGIN",
+            "CRC",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "RTC",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "FLASH",
+            "MPU"
+        ],
+        "forced_reset_timeout": 2,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "38400000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "32000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "cmuHFRCOFreq_32M0Hz",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            },
+            "board_controller_enable": {
+                "help": "Pin to pull high for enabling the USB serial port",
+                "value": "PA5",
+                "macro_name": "EFM_BC_EN"
+            }
+        },
+        "overrides": {
+            "network-default-interface-type": "MESH"
+        },
+        "public": false
+    },
+    "TB_SENSE_1": {
+        "inherits": ["EFR32MG1P233F256GM48"],
+        "device_has": [
+            "802_15_4_PHY",
+            "ANALOGIN",
+            "CRC",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "RTC",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "FLASH",
+            "MPU"
+        ],
+        "forced_reset_timeout": 5,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "38400000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "32000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "cmuHFRCOFreq_32M0Hz",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            }
+        },
+        "overrides": {
+            "network-default-interface-type": "MESH"
+        }
+    },
+    "EFM32PG12B500F1024GL125": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": ["EFM32PG12", "1024K", "SL_CRYPTO"],
+        "core": "Cortex-M4F",
+        "macros_add": [
+            "EFM32PG12B500F1024GL125",
+            "TRANSACTION_QUEUE_SIZE_SPI=4"
+        ],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "device_name": "EFM32PG12B500F1024GL125",
+        "public": false,
+        "bootloader_supported": true
+    },
+    "EFM32PG12_STK3402": {
+        "inherits": ["EFM32PG12B500F1024GL125"],
+        "device_has": [
+            "ANALOGIN",
+            "CRC",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "RTC",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "forced_reset_timeout": 2,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "40000000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "32000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "cmuHFRCOFreq_32M0Hz",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            },
+            "board_controller_enable": {
+                "help": "Pin to pull high for enabling the USB serial port",
+                "value": "PA5",
+                "macro_name": "EFM_BC_EN"
+            }
+        }
+    },
+    "EFR32MG12P332F1024GL125": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": [
+            "EFR32MG12",
+            "EFR32_12",
+            "1024K",
+            "SL_RAIL",
+            "SL_CRYPTO"
+        ],
+        "core": "Cortex-M4F",
+        "macros_add": [
+            "EFR32MG12P332F1024GL125",
+            "TRANSACTION_QUEUE_SIZE_SPI=4"
+        ],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "device_name": "EFR32MG12P332F1024GL125",
+        "public": false,
+        "bootloader_supported": true
+    },
+    "TB_SENSE_12": {
+        "inherits": ["EFR32MG12P332F1024GL125"],
+        "device_name": "EFR32MG12P332F1024GL125",
+        "device_has": [
+            "802_15_4_PHY",
+            "ANALOGIN",
+            "CRC",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "RTC",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "forced_reset_timeout": 5,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "38400000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "32000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "cmuHFRCOFreq_32M0Hz",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            }
+        },
+        "overrides": {
+            "network-default-interface-type": "MESH"
+        }
+    },
+    "EFM32GG11B820F2048GL192": {
+        "inherits": ["EFM32"],
+        "extra_labels_add": ["EFM32GG11", "2048K", "SL_CRYPTO"],
+        "core": "Cortex-M4F",
+        "macros_add": [
+            "EFM32GG11B820F2048GL192",
+            "TRANSACTION_QUEUE_SIZE_SPI=4"
+        ],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
+        "release_versions": ["2", "5"],
+        "device_name": "EFM32GG11B820F2048GL192",
+        "public": false,
+        "bootloader_supported": true
+    },
+    "EFM32GG11_STK3701": {
+        "inherits": ["EFM32GG11B820F2048GL192"],
+        "device_name": "EFM32GG11B820F2048GL192",
+        "device_has": [
+            "ANALOGIN",
+            "CRC",
+            "EMAC",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "QSPI",
+            "RTC",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "USTICKER",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "forced_reset_timeout": 5,
+        "config": {
+            "hf_clock_src": {
+                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
+                "value": "HFXO",
+                "macro_name": "CORE_CLOCK_SOURCE"
+            },
+            "hfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "50000000",
+                "macro_name": "HFXO_FREQUENCY"
+            },
+            "lf_clock_src": {
+                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
+                "value": "LFXO",
+                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
+            },
+            "lfxo_clock_freq": {
+                "help": "Value: External crystal frequency in hertz",
+                "value": "32768",
+                "macro_name": "LFXO_FREQUENCY"
+            },
+            "hfrco_clock_freq": {
+                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
+                "value": "32000000",
+                "macro_name": "HFRCO_FREQUENCY"
+            },
+            "hfrco_band_select": {
+                "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
+                "value": "cmuHFRCOFreq_32M0Hz",
+                "macro_name": "HFRCO_FREQUENCY_ENUM"
+            },
+            "board_controller_enable": {
+                "help": "Pin to pull high for enabling the USB serial port",
+                "value": "PE1",
+                "macro_name": "EFM_BC_EN"
+            },
+            "qspi_flash_enable": {
+                "help": "Pin to pull high for enabling the on-board QSPI flash",
+                "value": "PG13",
+                "macro_name": "QSPI_FLASH_EN"
+            }
+        },
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "WIZWIKI_W7500": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0",
+        "extra_labels": ["WIZNET", "W7500x", "WIZwiki_W7500"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["uARM", "ARM", "GCC_ARM", "IAR"],
+        "inherits": ["Target"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2", "5"]
+    },
+    "WIZWIKI_W7500P": {
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M0",
+        "extra_labels": ["WIZNET", "W7500x", "WIZwiki_W7500P"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["uARM", "ARM", "GCC_ARM", "IAR"],
+        "inherits": ["Target"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2", "5"]
+    },
+    "WIZWIKI_W7500ECO": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0",
+        "extra_labels": ["WIZNET", "W7500x", "WIZwiki_W7500ECO"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["uARM", "ARM", "GCC_ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "STDIO_MESSAGES"
+        ],
+        "release_versions": ["2", "5"]
+    },
+    "SAMR21G18A": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0+",
+        "macros": [
+            "__SAMR21G18A__",
+            "I2C_MASTER_CALLBACK_MODE=true",
+            "EXTINT_CALLBACK_MODE=true",
+            "USART_CALLBACK_MODE=true",
+            "TC_ASYNC=true"
+        ],
+        "extra_labels": ["Atmel", "SAM_CortexM0P", "SAMR21"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH"
+        ],
+        "release_versions": ["2"],
+        "device_name": "ATSAMR21G18A"
+    },
+    "SAMD21J18A": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0+",
+        "macros": [
+            "__SAMD21J18A__",
+            "I2C_MASTER_CALLBACK_MODE=true",
+            "EXTINT_CALLBACK_MODE=true",
+            "USART_CALLBACK_MODE=true",
+            "TC_ASYNC=true"
+        ],
+        "extra_labels": ["Atmel", "SAM_CortexM0P", "SAMD21"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH"
+        ],
+        "release_versions": ["2"],
+        "device_name": "ATSAMD21J18A"
+    },
+    "SAMD21G18A": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0+",
+        "macros": [
+            "__SAMD21G18A__",
+            "I2C_MASTER_CALLBACK_MODE=true",
+            "EXTINT_CALLBACK_MODE=true",
+            "USART_CALLBACK_MODE=true",
+            "TC_ASYNC=true"
+        ],
+        "extra_labels": ["Atmel", "SAM_CortexM0P", "SAMD21"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH"
+        ],
+        "release_versions": ["2"],
+        "device_name": "ATSAMD21G18A"
+    },
+    "SAML21J18A": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0+",
+        "macros": [
+            "__SAML21J18A__",
+            "I2C_MASTER_CALLBACK_MODE=true",
+            "EXTINT_CALLBACK_MODE=true",
+            "USART_CALLBACK_MODE=true",
+            "TC_ASYNC=true"
+        ],
+        "extra_labels": ["Atmel", "SAM_CortexM0P", "SAML21"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH"
+        ],
+        "device_name": "ATSAML21J18A"
+    },
+    "SAMG55J19": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4",
+        "extra_labels": ["Atmel", "SAM_CortexM4", "SAMG55"],
+        "macros": [
+            "__SAMG55J19__",
+            "BOARD=75",
+            "I2C_MASTER_CALLBACK_MODE=true",
+            "EXTINT_CALLBACK_MODE=true",
+            "USART_CALLBACK_MODE=true",
+            "TC_ASYNC=true"
+        ],
+        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
+        "default_toolchain": "ARM",
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "MPU"
+        ],
+        "default_lib": "std",
+        "device_name": "ATSAMG55J19"
+    },
+    "MCU_NRF51_UNIFIED": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0",
+        "OVERRIDE_BOOTLOADER_FILENAME": "nrf51822_bootloader.hex",
+        "macros": [
+            "BOARD_PCA10028",
+            "NRF51",
+            "TARGET_NRF51822",
+            "BLE_STACK_SUPPORT_REQD",
+            "SOFTDEVICE_PRESENT",
+            "S130",
+            "TARGET_MCU_NRF51822",
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\"",
+            "NO_SYSTICK",
+            "MBED_TICKLESS"
+        ],
+        "MERGE_BOOTLOADER": false,
+        "extra_labels": [
+            "NORDIC",
+            "MCU_NRF51",
+            "MCU_NRF51822_UNIFIED",
+            "NRF5x",
+            "NRF51",
+            "SDK_11",
+            "NORDIC_SOFTDEVICE"
+        ],
+        "OUTPUT_EXT": "hex",
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "public": false,
+        "MERGE_SOFT_DEVICE": true,
+        "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [
+            {
+                "boot": "",
+                "name": "s130_nrf51_2.0.0_softdevice.hex",
+                "offset": 110592
+            }
+        ],
+        "detect_code": ["1070"],
+        "post_binary_hook": {
+            "function": "MCU_NRF51Code.binary_hook",
+            "toolchains": ["ARM_STD", "GCC_ARM", "IAR"]
+        },
+        "program_cycle_s": 6,
+        "features": ["BLE"],
+        "config": {
+            "lf_clock_src": {
+                "value": "NRF_LF_SRC_XTAL",
+                "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC"
+            },
+            "uart_hwfc": {
+                "help": "Value: 1 for enable, 0 for disable",
+                "value": 1,
+                "macro_name": "MBED_CONF_NORDIC_UART_HWFC"
+            }
+        },
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ]
+    },
+    "MCU_NRF51_16K_UNIFIED_S130": {
+        "inherits": ["MCU_NRF51_UNIFIED"],
+        "extra_labels_add": [
+            "MCU_NORDIC_16K",
+            "MCU_NRF51_16K_S130",
+            "MCU_NRF51_16K"
+        ],
+        "macros_add": [
+            "TARGET_MCU_NORDIC_16K",
+            "TARGET_MCU_NRF51_16K_S130",
+            "TARGET_MCU_NRF51_16K"
+        ],
+        "public": false
+    },
+    "MCU_NRF51_32K_UNIFIED": {
+        "inherits": ["MCU_NRF51_UNIFIED"],
+        "extra_labels_add": ["MCU_NORDIC_32K", "MCU_NRF51_32K"],
+        "macros_add": ["TARGET_MCU_NORDIC_32K", "TARGET_MCU_NRF51_32K"],
+        "public": false
+    },
+    "NRF51_DK": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K_UNIFIED"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "SDT51822B": {
+        "inherits": ["MCU_NRF51_32K_UNIFIED"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE"
+        ],
+        "detect_code": ["3103"],
+        "release_versions": ["2", "5"],
+        "device_name": "nRF51822_xxAA"
+    },
+    "NRF51_DONGLE": {
+        "inherits": ["MCU_NRF51_32K_UNIFIED"],
+        "progen": { "target": "nrf51-dongle" },
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE"
+        ],
+        "release_versions": ["2", "5"]
+    },
+    "OSHCHIP": {
+        "inherits": ["MCU_NRF51_32K_UNIFIED"],
+        "overrides": { "lf_clock_src": "NRF_LF_SRC_RC" },
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE"
+        ],
+        "device_name": "nRF51822_xxAC"
+    },
+    "MCU_NRF52832": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "static_memory_defines": false,
+        "macros": [
+            "BOARD_PCA10040",
+            "NRF52",
+            "TARGET_NRF52832",
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\"",
+            "MBED_TICKLESS",
+            "MBED_MPU_CUSTOM"
+        ],
+        "device_has": [
+            "ANALOGIN",
+            "FLASH",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "ITM",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SYSTICK_CLK_OFF_DURING_SLEEP",
+            "TRNG",
+            "USTICKER"
+        ],
+        "extra_labels": [
+            "NORDIC",
+            "NRF5x",
+            "NRF52",
+            "SDK_14_2",
+            "NORDIC_SOFTDEVICE",
+            "SOFTDEVICE_COMMON",
+            "SOFTDEVICE_S132_FULL"
+        ],
+        "config": {
+            "lf_clock_src": {
+                "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC",
+                "help": "Select Low Frequency clock source. Options: NRF_LF_SRC_XTAL, NRF_LF_SRC_SYNTH, and NRF_LF_SRC_RC",
+                "value": "NRF_LF_SRC_XTAL"
+            },
+            "lf_clock_rc_calib_timer_interval": {
+                "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_TIMER_INTERVAL",
+                "value": 16
+            },
+            "lf_clock_rc_calib_mode_config": {
+                "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_MODE_CONFIG",
+                "value": 0
+            }
+        },
+        "OUTPUT_EXT": "hex",
+        "is_disk_virtual": true,
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "public": false,
+        "detect_code": ["1101"],
+        "program_cycle_s": 6,
+        "bootloader_supported": true
+    },
+    "NRF52_DK": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA",
+        "macros_add": [
+            "WSF_MAX_HANDLERS=10"
+        ],
+        "device_has_remove": ["ITM"]
+    },
+    "SDT52832B": {
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "detect_code": ["3104"],
+        "device_name": "nRF52832_xxAA"
+    },
+    "UBLOX_EVA_NINA": {
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA"
+    },
+    "UBLOX_EVK_NINA_B1": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA"
+    },
+    "MTB_UBLOX_NINA_B1": {
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA"
+    },
+    "MTB_LAIRD_BL652": {
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA"
+    },
+    "MTB_MURATA_WSM_BL241": {
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA",
+        "detect_code": ["0466"]
+    },
+    "MTB_ACONNO_ACN52832": {
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA"
+    },
+    "DELTA_DFBM_NQ620": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA",
+        "device_has_remove": ["ITM"]
+    },
+    "MCU_NRF52840": {
+        "inherits": ["Target"],
+        "components_add": ["QSPIF"],
+        "core": "Cortex-M4F",
+        "static_memory_defines": false,
+        "macros": [
+            "BOARD_PCA10056",
+            "NRF52840_XXAA",
+            "TARGET_NRF52840",
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\"",
+            "MBED_TICKLESS",
+            "MBEDTLS_CONFIG_HW_SUPPORT",
+            "WSF_MAX_HANDLERS=10",
+            "MBED_MPU_CUSTOM"
+        ],
+        "features": ["CRYPTOCELL310"],
+        "device_has": [
+            "ANALOGIN",
+            "FLASH",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "ITM",
+            "LPTICKER",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SYSTICK_CLK_OFF_DURING_SLEEP",
+            "TRNG",
+            "USTICKER",
+            "QSPI"
+        ],
+        "extra_labels": [
+            "NORDIC",
+            "NRF5x",
+            "NRF52",
+            "SDK_14_2",
+            "NORDIC_SOFTDEVICE",
+            "SOFTDEVICE_COMMON",
+            "SOFTDEVICE_S140_FULL"
+        ],
+        "config": {
+            "lf_clock_src": {
+                "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC",
+                "help": "Select Low Frequency clock source. Options: NRF_LF_SRC_XTAL, NRF_LF_SRC_SYNTH, and NRF_LF_SRC_RC",
+                "value": "NRF_LF_SRC_XTAL"
+            },
+            "lf_clock_rc_calib_timer_interval": {
+                "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_TIMER_INTERVAL",
+                "value": 16
+            },
+            "lf_clock_rc_calib_mode_config": {
+                "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_MODE_CONFIG",
+                "value": 0
+            }
+        },
+        "overrides": {
+            "mpu-rom-end": "0x1fffffff"
+        },
+        "OUTPUT_EXT": "hex",
+        "is_disk_virtual": true,
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "public": false,
+        "detect_code": ["1101"],
+        "program_cycle_s": 6,
+        "bootloader_supported": true
+    },
+    "NRF52840_DK": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF52840"],
+        "release_versions": ["5"],
+        "device_name": "nRF52840_xxAA"
+    },
+    "MTB_LAIRD_BL654": {
+        "inherits": ["MCU_NRF52840"],
+        "release_versions": ["5"],
+        "device_name": "nRF52840_xxAA",
+        "detect_code": ["0465"],
+        "features_remove": ["CRYPTOCELL310"],
+        "macros_remove": ["MBEDTLS_CONFIG_HW_SUPPORT"],
+        "overrides": {
+            "lf_clock_src": "NRF_LF_SRC_RC"
+        }
+    },
+    "BLUEPILL_F103C8": {
+        "inherits": ["FAMILY_STM32"],
+        "core": "Cortex-M3",
+        "default_toolchain": "GCC_ARM",
+        "extra_labels_add": ["STM32F1", "STM32F103C8"],
+        "supported_toolchains": ["GCC_ARM"],
+        "device_has_add": [
+            "CAN",
+            "SERIAL_ASYNCH",
+            "FLASH"
+        ],
+        "device_has_remove": ["STDIO_MESSAGES", "LPTICKER"]
+    },
+    "NUMAKER_PFM_NUC472": {
+        "core": "Cortex-M4F",
+        "default_toolchain": "ARM",
+        "extra_labels": [
+            "NUVOTON",
+            "NUC472",
+            "NU_XRAM_SUPPORTED",
+            "FLASH_CMSIS_ALGO",
+            "NUVOTON_EMAC"
+        ],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "config": {
+            "gpio-irq-debounce-enable": {
+                "help": "Enable GPIO IRQ debounce",
+                "value": 0
+            },
+            "gpio-irq-debounce-enable-list": {
+                "help": "Comma separated pin list to enable GPIO IRQ debounce",
+                "value": "NC"
+            },
+            "gpio-irq-debounce-clock-source": {
+                "help": "Select GPIO IRQ debounce clock source: GPIO_DBCTL_DBCLKSRC_HCLK or GPIO_DBCTL_DBCLKSRC_IRC10K",
+                "value": "GPIO_DBCTL_DBCLKSRC_IRC10K"
+            },
+            "gpio-irq-debounce-sample-rate": {
+                "help": "Select GPIO IRQ debounce sample rate: GPIO_DBCTL_DBCLKSEL_1, GPIO_DBCTL_DBCLKSEL_2, GPIO_DBCTL_DBCLKSEL_4, ..., or GPIO_DBCTL_DBCLKSEL_32768",
+                "value": "GPIO_DBCTL_DBCLKSEL_16"
+            }
+        },
+        "inherits": ["Target"],
+        "macros_add": ["MBEDTLS_CONFIG_HW_SUPPORT", "LPTICKER_DELAY_TICKS=3"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "STDIO_MESSAGES",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "TRNG",
+            "CAN",
+            "FLASH",
+            "EMAC",
+            "MPU"
+        ],
+        "release_versions": ["5"],
+        "device_name": "NUC472HI8AE",
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "NCS36510": {
+        "inherits": ["Target"],
+        "core": "Cortex-M3",
+        "extra_labels": ["ONSEMI"],
+        "config": {
+            "mac-addr-low": {
+                "help": "Lower 32 bits of the MAC extended address. All FFs indicates that factory programmed MAC address shall be used. In order to override the factory programmed MAC address this value needs to be changed from 0xFFFFFFFF to any chosen value.",
+                "value": "0xFFFFFFFF"
+            },
+            "mac-addr-high": {
+                "help": "Higher 32 bits of the MAC extended address. All FFs indicates that factory programmed MAC address shall be used. In order to override the factory programmed MAC address this value needs to be changed from 0xFFFFFFFF to any chosen value.",
+                "value": "0xFFFFFFFF"
+            },
+            "32KHz-clk-trim": {
+                "help": "32KHz clock trim",
+                "value": "0x39"
+            },
+            "32MHz-clk-trim": {
+                "help": "32MHz clock trim",
+                "value": "0x17"
+            },
+            "rssi-trim": {
+                "help": "RSSI trim",
+                "value": "0x3D"
+            },
+            "txtune-trim": {
+                "help": "TX tune trim",
+                "value": "0xFFFFFFFF"
+            }
+        },
+        "OUTPUT_EXT": "hex",
+        "post_binary_hook": {
+            "function": "NCS36510TargetCode.ncs36510_addfib"
+        },
+        "macros": [
+            "CM3",
+            "CPU_NCS36510",
+            "TARGET_NCS36510",
+            "LOAD_ADDRESS=0x3000"
+        ],
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "SERIAL",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "TRNG",
+            "SPISLAVE",
+            "802_15_4_PHY",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"]
+    },
+    "NUMAKER_PFM_M453": {
+        "core": "Cortex-M4F",
+        "default_toolchain": "ARM",
+        "extra_labels": [
+            "NUVOTON",
+            "M451",
+            "NUMAKER_PFM_M453",
+            "FLASH_CMSIS_ALGO"
+        ],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "config": {
+            "gpio-irq-debounce-enable": {
+                "help": "Enable GPIO IRQ debounce",
+                "value": 0
+            },
+            "gpio-irq-debounce-enable-list": {
+                "help": "Comma separated pin list to enable GPIO IRQ debounce",
+                "value": "NC"
+            },
+            "gpio-irq-debounce-clock-source": {
+                "help": "Select GPIO IRQ debounce clock source: GPIO_DBCTL_DBCLKSRC_HCLK or GPIO_DBCTL_DBCLKSRC_LIRC",
+                "value": "GPIO_DBCTL_DBCLKSRC_LIRC"
+            },
+            "gpio-irq-debounce-sample-rate": {
+                "help": "Select GPIO IRQ debounce sample rate: GPIO_DBCTL_DBCLKSEL_1, GPIO_DBCTL_DBCLKSEL_2, GPIO_DBCTL_DBCLKSEL_4, ..., or GPIO_DBCTL_DBCLKSEL_32768",
+                "value": "GPIO_DBCTL_DBCLKSEL_16"
+            }
+        },
+        "inherits": ["Target"],
+        "macros_add": ["LPTICKER_DELAY_TICKS=3"],
+        "progen": { "target": "numaker-pfm-m453" },
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "STDIO_MESSAGES",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "CAN",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "M453VG6AE",
+        "bootloader_supported": true
+    },
+    "NUMAKER_PFM_NANO130": {
+        "core": "Cortex-M0",
+        "default_toolchain": "ARM",
+        "extra_labels": ["NUVOTON", "NANO100", "NANO130KE3BN"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "config": {
+            "gpio-irq-debounce-enable": {
+                "help": "Enable GPIO IRQ debounce",
+                "value": 0
+            },
+            "gpio-irq-debounce-enable-list": {
+                "help": "Comma separated pin list to enable GPIO IRQ debounce",
+                "value": "NC"
+            },
+            "gpio-irq-debounce-clock-source": {
+                "help": "Select GPIO IRQ debounce clock source: GPIO_DBCLKSRC_HCLK or GPIO_DBCLKSRC_IRC10K",
+                "value": "GPIO_DBCLKSRC_IRC10K"
+            },
+            "gpio-irq-debounce-sample-rate": {
+                "help": "Select GPIO IRQ debounce sample rate: GPIO_DBCLKSEL_1, GPIO_DBCLKSEL_2, GPIO_DBCLKSEL_4, ..., or GPIO_DBCLKSEL_32768",
+                "value": "GPIO_DBCLKSEL_16"
+            },
+            "clock-pll": {
+                "help": "Choose clock source to clock PLL: NU_HXT_PLL or NU_HIRC_PLL",
+                "macro_name": "NU_CLOCK_PLL",
+                "value": "NU_HIRC_PLL"
+            }
+        },
+        "inherits": ["Target"],
+        "macros": [
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\"",
+            "MBED_FAULT_HANDLER_DISABLED",
+            "LPTICKER_DELAY_TICKS=3"
+        ],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "STDIO_MESSAGES",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH"
+        ],
+        "release_versions": ["5"],
+        "device_name": "NANO130KE3BN"
+    },
+    "HI2110": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0",
+        "default_toolchain": "GCC_ARM",
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "extra_labels": ["ublox"],
+        "macros": [
+            "TARGET_PROCESSOR_FAMILY_BOUDICA",
+            "BOUDICA_SARA",
+            "NDEBUG=1",
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "public": false,
+        "target_overrides": {
+            "*": {
+                "core.stdio-flush-at-exit": false
+            }
+        },
+        "device_has": [
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SLEEP",
+            "STDIO_MESSAGES"
+        ],
+        "default_lib": "std",
+        "release_versions": []
+    },
+    "SARA_NBIOT": {
+        "inherits": ["HI2110"],
+        "extra_labels": ["ublox", "HI2110"],
+        "public": false
+    },
+    "SARA_NBIOT_EVK": {
+        "inherits": ["SARA_NBIOT"],
+        "extra_labels": ["ublox", "HI2110", "SARA_NBIOT"]
+    },
+    "MCU_RTL8195A": {
+        "core": "Cortex-M3",
+        "default_toolchain": "GCC_ARM",
+        "macros": [
+            "__RTL8195A__",
+            "CONFIG_PLATFORM_8195A",
+            "CONFIG_MBED_ENABLED",
+            "PLATFORM_CMSIS_RTOS",
+            "MBED_FAULT_HANDLER_DISABLED",
+            "MBED_MPU_CUSTOM"
+        ],
+        "inherits": ["Target"],
+        "extra_labels": ["Realtek", "AMEBA", "RTW_EMAC"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SPI",
+            "TRNG",
+            "FLASH"
+        ],
+        "public": false,
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "post_binary_hook": {
+            "function": "RTL8195ACode.binary_hook",
+            "toolchains": ["ARM_STD", "GCC_ARM", "IAR"]
+        },
+        "release_versions": ["5"],
+        "overrides": {
+            "network-default-interface-type": "WIFI"
+        }
+    },
+    "REALTEK_RTL8195AM": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_RTL8195A"],
+        "detect_code": ["4600"],
+        "extra_labels_add": ["RTL8195A"]
+    },
+    "VBLUNO51_LEGACY": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K"],
+        "detect_code": ["C006"],
+        "overrides": { "uart_hwfc": 0 },
+        "extra_labels_add": ["VBLUNO51"]
+    },
+    "VBLUNO51_BOOT": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K_BOOT"],
+        "detect_code": ["C006"],
+        "overrides": { "uart_hwfc": 0 },
+        "extra_labels_add": ["VBLUNO51"],
+        "macros_add": ["TARGET_VBLUNO51"]
+    },
+    "VBLUNO51_OTA": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K_OTA"],
+        "detect_code": ["C006"],
+        "overrides": { "uart_hwfc": 0 },
+        "extra_labels_add": ["VBLUNO51"],
+        "macros_add": ["TARGET_VBLUNO51"]
+    },
+    "VBLUNO51": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF51_32K_UNIFIED"],
+        "detect_code": ["C006"],
+        "overrides": { "uart_hwfc": 0 },
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "ANALOGIN",
+            "I2C",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "SLEEP",
+            "SPI",
+            "SPI_ASYNCH",
+            "SPISLAVE"
+        ],
+        "release_versions": ["2"],
+        "device_name": "nRF51822_xxAC"
+    },
+    "DISCO_L496AG": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L496AG", "STM32L496xG"],
+        "components_add": ["QSPIF"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS"
+        ],
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0822"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU",
+            "QSPI"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L496AG",
+        "bootloader_supported": true
+    },
+    "NUCLEO_L496ZG": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L496ZG", "STM32L496xG"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS"
+        ],
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0823"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L496ZG",
+        "bootloader_supported": true
+    },
+    "NUCLEO_L496ZG_P": {
+        "inherits": ["NUCLEO_L496ZG"],
+        "detect_code": ["0828"]
+    },
+    "NUCLEO_L4R5ZI": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": ["ARDUINO", "MORPHO"],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32L4", "STM32L4R5ZI", "STM32L4R5xI"],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC (need HW patch) | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI | USE_PLL_MSI",
+                "value": "USE_PLL_MSI",
+                "macro_name": "CLOCK_SOURCE"
+            },
+            "lpticker_lptim": {
+                "help": "This target supports LPTIM. Set value 1 to use LPTIM for LPTICKER, or 0 to use RTC wakeup timer",
+                "value": 1
+            }
+        },
+        "macros_add": [
+            "MBED_TICKLESS"
+        ],
+        "overrides": { "lpticker_delay_ticks": 4 },
+        "detect_code": ["0776"],
+        "device_has_add": [
+            "ANALOGOUT",
+            "CAN",
+            "CRC",
+            "SERIAL_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "release_versions": ["2", "5"],
+        "device_name": "STM32L4R5ZI",
+        "bootloader_supported": true
+    },
+    "NUCLEO_L4R5ZI_P": {
+        "inherits": ["NUCLEO_L4R5ZI"],
+        "detect_code": ["0781"]
+    },
+    "VBLUNO52": {
+        "supported_form_factors": ["ARDUINO"],
+        "inherits": ["MCU_NRF52832"],
+        "release_versions": ["5"],
+        "device_name": "nRF52832_xxAA"
+    },
+    "MCU_M480": {
+        "core": "Cortex-M4F",
+        "default_toolchain": "ARM",
+        "public": false,
+        "extra_labels": ["NUVOTON", "M480", "FLASH_CMSIS_ALGO", "NUVOTON_EMAC"],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
+        "config": {
+            "gpio-irq-debounce-enable": {
+                "help": "Enable GPIO IRQ debounce",
+                "value": 0
+            },
+            "gpio-irq-debounce-enable-list": {
+                "help": "Comma separated pin list to enable GPIO IRQ debounce",
+                "value": "NC"
+            },
+            "gpio-irq-debounce-clock-source": {
+                "help": "Select GPIO IRQ debounce clock source: GPIO_DBCTL_DBCLKSRC_HCLK or GPIO_DBCTL_DBCLKSRC_LIRC",
+                "value": "GPIO_DBCTL_DBCLKSRC_LIRC"
+            },
+            "gpio-irq-debounce-sample-rate": {
+                "help": "Select GPIO IRQ debounce sample rate: GPIO_DBCTL_DBCLKSEL_1, GPIO_DBCTL_DBCLKSEL_2, GPIO_DBCTL_DBCLKSEL_4, ..., or GPIO_DBCTL_DBCLKSEL_32768",
+                "value": "GPIO_DBCTL_DBCLKSEL_16"
+            },
+            "usb-device-hsusbd": {
+                "help": "Select high-speed USB device or not",
+                "value": 1
+            },
+            "ctrl01-enable": {
+                "help": "Enable control_01",
+                "value": 0
+            }
+        },
+        "inherits": ["Target"],
+        "macros_add": ["MBEDTLS_CONFIG_HW_SUPPORT", "LPTICKER_DELAY_TICKS=3"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "STDIO_MESSAGES",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "CAN",
+            "EMAC",
+            "MPU"
+        ],
+        "release_versions": ["5"],
+        "bootloader_supported": true,
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "NUMAKER_PFM_M487": {
+        "inherits": ["MCU_M480"],
+        "device_name": "M487JIDAE"
+    },
+    "NUMAKER_IOT_M487": {
+        "inherits": ["MCU_M480"],
+        "device_name": "M487JIDAE"
+    },
+    "TMPM066": {
+        "inherits": ["Target"],
+        "core": "Cortex-M0",
+        "is_disk_virtual": true,
+        "extra_labels": ["TOSHIBA"],
+        "macros": [
+            "__TMPM066__",
+            "CMSIS_VECTAB_VIRTUAL",
+            "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\""
+        ],
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SLEEP",
+            "I2C",
+            "I2CSLAVE",
+            "STDIO_MESSAGES",
+            "PWMOUT"
+        ],
+        "device_name": "TMPM066FWUG",
+        "detect_code": ["7011"],
+        "release_versions": ["5"]
+    },
+    "SAKURAIO_EVB_01": {
+        "inherits": ["FAMILY_STM32"],
+        "supported_form_factors": [],
+        "core": "Cortex-M4F",
+        "extra_labels_add": ["STM32F4", "STM32F411xE", "STM32F411RE"],
+        "device_has": [
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "MPU"
+        ],
+        "config": {
+            "clock_source": {
+                "help": "Mask value : USE_PLL_HSE_EXTC | USE_PLL_HSE_XTAL (need HW patch) | USE_PLL_HSI",
+                "value": "USE_PLL_HSI",
+                "macro_name": "CLOCK_SOURCE"
+            }
+        },
+        "device_has_add": [
+            "SERIAL_ASYNCH",
+            "FLASH"
+        ],
+        "release_versions": ["2"],
+        "device_name": "STM32F411RE"
+    },
+    "TMPM46B": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4",
+        "is_disk_virtual": true,
+        "extra_labels": ["TOSHIBA"],
+        "macros": ["__TMPM46B__"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_FC",
+            "SPI",
+            "I2C",
+            "STDIO_MESSAGES",
+            "TRNG",
+            "FLASH",
+            "SLEEP"
+        ],
+        "device_name": "TMPM46BF10FG",
+        "detect_code": ["7013"],
+        "release_versions": ["5"],
+        "bootloader_supported": true
+    },
+    "ARM_FM": {
+        "inherits": ["Target"],
+        "public": false,
+        "macros": ["__ARM_FM"],
+        "extra_labels": ["ARM_FM"]
+    },
+    "FVP_MPS2": {
+        "inherits": ["ARM_FM"],
+        "public": false,
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "OUTPUT_EXT": "elf",
+        "device_has": [
+            "AACI",
+            "ANALOGIN",
+            "CLCD",
+            "EMAC",
+            "FLASH",
+            "I2C",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "SERIAL",
+            "SPI",
+            "SPISLAVE",
+            "TSC",
+            "USTICKER"
+        ],
+        "release_versions": ["5"],
+        "components_add": ["LAN91C111"],
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "FVP_MPS2_M0": {
+        "inherits": ["FVP_MPS2"],
+        "core": "Cortex-M0",
+        "macros_add": ["CMSDK_CM0"]
+    },
+    "FVP_MPS2_M0P": {
+        "inherits": ["FVP_MPS2"],
+        "core": "Cortex-M0+",
+        "macros_add": ["CMSDK_CM0plus"],
+        "device_has_add": ["MPU"]
+    },
+    "FVP_MPS2_M3": {
+        "inherits": ["FVP_MPS2"],
+        "core": "Cortex-M3",
+        "macros_add": ["CMSDK_CM3"],
+        "device_has_add": ["MPU"]
+    },
+    "FVP_MPS2_M4": {
+        "inherits": ["FVP_MPS2"],
+        "core": "Cortex-M4",
+        "macros_add": ["CMSDK_CM4"],
+        "device_has_add": ["MPU"]
+    },
+    "FVP_MPS2_M7": {
+        "inherits": ["FVP_MPS2"],
+        "core": "Cortex-M7",
+        "macros_add": ["CMSDK_CM7"],
+        "device_has_add": ["MPU"]
+    },
+    "NUMAKER_PFM_M2351": {
+        "core": "Cortex-M23-NS",
+        "default_toolchain": "ARMC6",
+        "extra_labels": [
+            "NUVOTON",
+            "M2351",
+            "M2351KIAAEES",
+            "FLASH_CMSIS_ALGO"
+        ],
+        "OUTPUT_EXT": "hex",
+        "macros": [
+            "MBED_FAULT_HANDLER_DISABLED",
+            "MBED_TZ_DEFAULT_ACCESS=1",
+            "LPTICKER_DELAY_TICKS=3"
+        ],
+        "is_disk_virtual": true,
+        "supported_toolchains": ["ARMC6"],
+        "config": {
+            "gpio-irq-debounce-enable": {
+                "help": "Enable GPIO IRQ debounce",
+                "value": 0
+            },
+            "gpio-irq-debounce-enable-list": {
+                "help": "Comma separated pin list to enable GPIO IRQ debounce",
+                "value": "NC"
+            },
+            "gpio-irq-debounce-clock-source": {
+                "help": "Select GPIO IRQ debounce clock source: GPIO_DBCTL_DBCLKSRC_HCLK or GPIO_DBCTL_DBCLKSRC_LIRC",
+                "value": "GPIO_DBCTL_DBCLKSRC_LIRC"
+            },
+            "gpio-irq-debounce-sample-rate": {
+                "help": "Select GPIO IRQ debounce sample rate: GPIO_DBCTL_DBCLKSEL_1, GPIO_DBCTL_DBCLKSEL_2, GPIO_DBCTL_DBCLKSEL_4, ..., or GPIO_DBCTL_DBCLKSEL_32768",
+                "value": "GPIO_DBCTL_DBCLKSEL_16"
+            }
+        },
+        "overrides": {
+            "mpu-rom-end": "0x1fffffff"
+        },
+        "inherits": ["Target"],
+        "device_has": [
+            "USTICKER",
+            "LPTICKER",
+            "RTC",
+            "ANALOGIN",
+            "I2C",
+            "I2CSLAVE",
+            "I2C_ASYNCH",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "STDIO_MESSAGES",
+            "SLEEP",
+            "SPI",
+            "SPISLAVE",
+            "SPI_ASYNCH",
+            "TRNG",
+            "FLASH",
+            "MPU"
+        ],
+        "detect_code": ["1305"],
+        "release_versions": ["5"],
+        "device_name": "M2351KIAAEES",
+        "bootloader_supported": true
+    },
+    "TMPM3H6": {
+        "inherits": ["Target"],
+        "core": "Cortex-M3",
+        "is_disk_virtual": true,
+        "extra_labels": ["TOSHIBA"],
+        "macros": ["__TMPM3H6__"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "I2C",
+            "I2CSLAVE",
+            "STDIO_MESSAGES",
+            "MPU"
+        ],
+        "device_name": "TMPM3H6FWFG",
+        "detect_code": ["7012"],
+        "release_versions": ["5"]
+    },
+    "TMPM4G9": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4",
+        "is_disk_virtual": true,
+        "extra_labels": ["TOSHIBA"],
+        "macros": ["__TMPM4G9__"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "ANALOGOUT",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SPI",
+            "I2C",
+            "I2CSLAVE",
+            "STDIO_MESSAGES",
+            "FLASH",
+            "SLEEP",
+            "USTICKER",
+            "MPU"
+        ],
+        "device_name": "TMPM4G9F15FG",
+        "detect_code": ["7015"],
+        "release_versions": ["5"],
+        "bootloader_supported": true
+    },
+    "MCU_PSOC6": {
+        "inherits": ["Target"],
+        "macros": ["MBED_MPU_CUSTOM"],
+        "default_toolchain": "GCC_ARM",
+        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
+        "core": "Cortex-M4F",
+        "OUTPUT_EXT": "hex",
+        "device_has": [
+            "USTICKER",
+            "INTERRUPTIN",
+            "SERIAL",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "PORTIN",
+            "PORTOUT",
+            "PORTINOUT",
+            "RTC",
+            "PWMOUT",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "I2C",
+            "I2C_ASYNCH",
+            "SPI",
+            "SPI_ASYNCH",
+            "STDIO_MESSAGES",
+            "LPTICKER",
+            "SLEEP",
+            "FLASH",
+            "TRNG",
+            "CRC"
+        ],
+        "release_versions": ["5"],
+        "extra_labels": ["Cypress", "PSOC6"],
+        "public": false
+    },
+    "MCU_PSOC6_M0": {
+        "inherits": ["MCU_PSOC6"],
+        "core": "Cortex-M0+",
+        "macros_add": ["MCU_PSOC6_M0"],
+        "public": false
+    },
+    "MCU_PSOC6_M4": {
+        "inherits": ["MCU_PSOC6"],
+        "macros_add": ["MCU_PSOC6_M4"],
+        "public": false
+    },
+    "CY8CKIT_062_WIFI_BT": {
+        "inherits": ["MCU_PSOC6_M4"],
+        "features": ["BLE"],
+        "supported_form_factors": ["ARDUINO"],
+        "extra_labels_add": ["PSOC6_01", "WICED", "CYW43XXX", "CYW4343X", "CORDIO"],
+        "macros_add": ["CY8C6247BZI_D54", "PSOC6_DYNSRM_DISABLE=1"],
+        "detect_code": ["1900"],
+        "hex_filename": "psoc6_01_cm0p_sleep.hex",
+        "post_binary_hook": {
+            "function": "PSOC6Code.complete"
+        },
+        "overrides": {
+            "network-default-interface-type": "WIFI"
+        }
+    },
+    "CY8CMOD_062_4343W": {
+        "inherits": ["MCU_PSOC6_M4"],
+        "features": ["BLE"],
+        "device_has_remove": ["ANALOGOUT"],
+        "extra_labels_add": ["PSOC6_02", "WICED", "CYW43XXX", "CYW4343X", "CORDIO"],
+        "macros_add": ["CY8C624ABZI_D44", "PSOC6_DYNSRM_DISABLE=1"],
+        "public": false,
+        "overrides": {
+            "network-default-interface-type": "WIFI"
+        }
+    },
+    "CY8CPROTO_062_4343W": {
+        "inherits": ["CY8CMOD_062_4343W"],
+        "detect_code": ["1901"],
+        "hex_filename": "psoc6_02_cm0p_sleep.hex",
+        "post_binary_hook": {
+            "function": "PSOC6Code.complete"
+        }
+    },
+    "CY8CKIT_062_BLE": {
+        "inherits": ["MCU_PSOC6_M4"],
+        "supported_form_factors": ["ARDUINO"],
+        "extra_labels_add": ["PSOC6_01"],
+        "macros_add": ["CY8C6347BZI_BLD53", "PSOC6_DYNSRM_DISABLE=1"],
+        "detect_code": ["1902"],
+        "hex_filename": "psoc6_01_cm0p_sleep.hex",
+        "post_binary_hook": {
+            "function": "PSOC6Code.complete"
+        }
+    },
+    "CY8CKIT_062_4343W": {
+        "inherits": ["MCU_PSOC6_M4"],
+        "features": ["BLE"],
+        "supported_form_factors": ["ARDUINO"],
+        "device_has_remove": ["ANALOGOUT"],
+        "extra_labels_add": ["PSOC6_02", "WICED", "CYW43XXX", "CYW4343X", "CORDIO"],
+        "macros_add": ["CY8C624ABZI_D44", "PSOC6_DYNSRM_DISABLE=1"],
+        "detect_code": ["1905"],
+        "hex_filename": "psoc6_02_cm0p_sleep.hex",
+        "post_binary_hook": {
+            "function": "PSOC6Code.complete"
+        },
+        "overrides": {
+            "network-default-interface-type": "WIFI"
+        }
+    },
+    "CYW943012P6EVB_01": {
+        "inherits": ["MCU_PSOC6_M4"],
+        "features": ["BLE"],
+        "extra_labels_add": ["PSOC6_01", "WICED", "CYW43XXX", "CYW43012", "CORDIO"],
+        "macros_add": ["CY8C6247BZI_D54", "PSOC6_DYNSRM_DISABLE=1"],
+        "detect_code": ["1906"],
+        "hex_filename": "psoc6_01_cm0p_sleep.hex",
+        "post_binary_hook": {
+            "function": "PSOC6Code.complete"
+        },
+        "overrides": {
+            "network-default-interface-type": "WIFI"
+        }
+    },
+    "FUTURE_SEQUANA_M0": {
+        "inherits": ["MCU_PSOC6_M0"],
+        "supported_form_factors": ["ARDUINO"],
+        "extra_labels_add": ["PSOC6_FUTURE", "CY8C63XX", "FUTURE_SEQUANA"],
+        "extra_labels_remove": ["PSOC6"],
+        "device_has_remove": ["TRNG", "CRC"],
+        "macros_add": ["CY8C6347BZI_BLD53"],
+        "detect_code": ["6000"],
+        "post_binary_hook": {
+            "function": "PSOC6Code.complete"
+        },
+        "config": {
+            "system-clock": {
+                "help": "Desired frequency of main clock (Hz)",
+                "value": "100000000UL",
+                "macro_name": "CY_CLK_HFCLK0_FREQ_HZ"
+            },
+            "peri-clock": {
+                "help": "Desired frequency of peripheral clock (Hz)",
+                "value": "50000000UL",
+                "macro_name": "CY_CLK_PERICLK_FREQ_HZ"
+            },
+            "m0-clock": {
+                "help": "Desired frequency of M0+ core clock (Hz)",
+                "value": "50000000UL",
+                "macro_name": "CY_CLK_SLOWCLK_FREQ_HZ"
+            }
+        }
+    },
+    "FUTURE_SEQUANA": {
+        "inherits": ["MCU_PSOC6_M4"],
+        "supported_form_factors": ["ARDUINO"],
+        "extra_labels_add": ["PSOC6_FUTURE", "CY8C63XX", "CORDIO"],
+        "extra_labels_remove": ["PSOC6"],
+        "device_has_remove": ["TRNG", "CRC"],
+        "macros_add": ["CY8C6347BZI_BLD53"],
+        "detect_code": ["6000"],
+        "hex_filename": "psoc63_m0_default_1.03.hex",
+        "post_binary_hook": {
+            "function": "PSOC6Code.complete"
+        },
+        "config": {
+            "system-clock": {
+                "help": "Desired frequency of main clock (Hz)",
+                "value": "100000000UL",
+                "macro_name": "CY_CLK_HFCLK0_FREQ_HZ"
+            },
+            "peri-clock": {
+                "help": "Desired frequency of peripheral clock (Hz)",
+                "value": "50000000UL",
+                "macro_name": "CY_CLK_PERICLK_FREQ_HZ"
+            },
+            "m0-clock": {
+                "help": "Desired frequency of M0+ core clock (Hz)",
+                "value": "50000000UL",
+                "macro_name": "CY_CLK_SLOWCLK_FREQ_HZ"
+            }
+        }
+    },
+    "FUTURE_SEQUANA_M0_PSA": {
+        "inherits": ["SPE_Target", "FUTURE_SEQUANA_M0"],
+        "components_add": ["SPM_MAILBOX", "FLASHIAP"],
+        "extra_labels_add": ["PSA"],
+        "macros_add": [
+            "PSOC6_DYNSRM_DISABLE=1",
+            "MBEDTLS_PSA_CRYPTO_SPM",
+            "MBEDTLS_PSA_CRYPTO_C",
+            "MBEDTLS_ENTROPY_NV_SEED",
+            "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO=mbed_default_seed_read",
+            "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO=mbed_default_seed_write"
+        ],
+        "deliver_to_target": "FUTURE_SEQUANA_PSA",
+        "overrides": {
+            "secure-rom-start": "0x10000000",
+            "secure-rom-size": "0x80000",
+            "non-secure-rom-start": "0x10080000",
+            "non-secure-rom-size": "0x78000",
+            "secure-ram-start": "0x08000000",
+            "secure-ram-size": "0x10000",
+            "non-secure-ram-start": "0x08010000",
+            "non-secure-ram-size": "0x37700",
+            "shared-ram-start": "0x08047700",
+            "shared-ram-size": "0x100"
+        }
+    },
+    "FUTURE_SEQUANA_PSA": {
+        "inherits": ["NSPE_Target", "FUTURE_SEQUANA"],
+        "extra_labels_add": ["PSA"],
+        "extra_labels_remove": ["CORDIO"],
+        "components_add": ["SPM_MAILBOX"],
+        "macros_add": ["PSOC6_DYNSRM_DISABLE=1", "MBEDTLS_PSA_CRYPTO_C"],
+        "hex_filename": "psa_release_1.0.hex",
+        "overrides": {
+            "secure-rom-start": "0x10000000",
+            "secure-rom-size": "0x80000",
+            "non-secure-rom-start": "0x10080000",
+            "non-secure-rom-size": "0x78000",
+            "secure-ram-start": "0x08000000",
+            "secure-ram-size": "0x10000",
+            "non-secure-ram-start": "0x08010000",
+            "non-secure-ram-size": "0x37700",
+            "shared-ram-start": "0x08047700",
+            "shared-ram-size": "0x100"
+        }
+    },
+    "TMPM3HQ": {
+        "inherits": ["Target"],
+        "core": "Cortex-M3",
+        "is_disk_virtual": true,
+        "extra_labels": ["TOSHIBA"],
+        "macros": ["__TMPM3HQ__"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "ANALOGOUT",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "I2C",
+            "I2CSLAVE",
+            "STDIO_MESSAGES",
+            "MPU"
+        ],
+        "device_name": "TMPM3HQFDFG",
+        "detect_code": ["7014"],
+        "release_versions": ["5"]
+    },
+    "RDA5981X": {
+        "inherits": ["Target"],
+        "core": "Cortex-M4F",
+        "public": true,
+        "extra_labels": ["RDA", "UNO_91H", "FLASH_CMSIS_ALGO", "RDA_EMAC"],
+        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
+        "macros": ["TWO_RAM_REGIONS", "CMSIS_NVIC_VIRTUAL", "CMSIS_NVIC_VIRTUAL_HEADER_FILE=\"RDA5981_nvic_virtual.h\""],
+        "device_has": [
+            "USTICKER",
+            "PORTIN",
+            "PORTOUT",
+            "PORTINOUT",
+            "INTERRUPTIN",
+            "EMAC",
+            "SERIAL",
+            "STDIO_MESSAGES",
+            "PWMOUT",
+            "SPI",
+            "SLEEP",
+            "ANALOGIN",
+            "FLASH",
+            "TRNG"
+        ],
+        "release_versions": ["2", "5"]
+    },
+    "UNO_91H": {
+        "inherits": ["RDA5981X"],
+        "detect_code": ["8001"],
+        "overrides": {
+            "network-default-interface-type" : "WIFI"
+        }
+    },
+    "GD32_Target": {
+        "inherits": ["Target"],
+        "public": false,
+        "extra_labels": ["GigaDevice"],
+        "supported_toolchains": ["ARM", "IAR", "GCC_ARM"],
+        "device_has": [
+            "USTICKER",
+            "ANALOGIN",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL"
+        ]
+    },
+    "GD32_F307VG": {
+        "inherits": ["GD32_Target"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4",
+        "extra_labels_add": ["GD32F30X", "GD32F307VG", "GD_EMAC"],
+        "device_has_add": [
+            "RTC",
+            "I2C",
+            "CAN",
+            "I2CSLAVE",
+            "ANALOGOUT",
+            "SPI",
+            "SPISLAVE",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "EMAC",
+            "FLASH",
+            "SLEEP",
+            "MPU"
+        ],
+        "detect_code": ["1701"],
+        "macros_add": ["GD32F30X_CL"],
+        "release_versions": ["5"],
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+      "TT_M3HQ": {
+        "inherits": ["Target"],
+        "core": "Cortex-M3",
+        "is_disk_virtual": true,
+        "extra_labels": ["TT"],
+        "macros": ["__TT_M3HQ__"],
+        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
+        "device_has": [
+            "ANALOGIN",
+            "USTICKER",
+            "ANALOGOUT",
+            "INTERRUPTIN",
+            "PORTIN",
+            "PORTINOUT",
+            "PORTOUT",
+            "PWMOUT",
+            "SERIAL",
+            "SLEEP",
+            "SPI",
+            "I2C",
+            "I2CSLAVE",
+            "STDIO_MESSAGES",
+            "MPU"
+        ],
+        "device_name": "TMPM3HQFDFG",
+        "detect_code": ["8012"],
+        "release_versions": ["5"]
+    },
+    "GD32_F450ZI": {
+        "inherits": ["GD32_Target"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4",
+        "extra_labels_add": ["GD32F4XX", "GD32F450ZI", "GD_EMAC"],
+        "device_has_add": [
+            "RTC",
+            "I2C",
+            "CAN",
+            "I2CSLAVE",
+            "ANALOGOUT",
+            "SPI",
+            "SPISLAVE",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "EMAC",
+            "FLASH",
+            "SLEEP",
+            "MPU",
+            "TRNG"
+        ],
+        "device_name": "GD32F450ZI",
+        "detect_code": ["1702"],
+        "macros_add": ["GD32F450"],
+        "release_versions": ["5"],
+        "overrides": {
+            "network-default-interface-type": "ETHERNET"
+        }
+    },
+    "GD32_E103VB": {
+        "inherits": ["GD32_Target"],
+        "supported_form_factors": ["ARDUINO"],
+        "core": "Cortex-M4",
+        "extra_labels_add": ["GD32E10X", "GD32E103VB"],
+        "device_has_add": [
+            "RTC",
+            "I2C",
+            "CAN",
+            "I2CSLAVE",
+            "ANALOGOUT",
+            "SPI",
+            "SPISLAVE",
+            "SERIAL_ASYNCH",
+            "SERIAL_FC",
+            "FLASH",
+            "SLEEP"
+        ],
+        "detect_code": ["1703"],
+        "macros_add": ["GD32E10X"],
+        "release_versions": ["5"]
+    }
+}
+