diff --git a/.bazelrc b/.bazelrc
new file mode 100644
index 0000000..d34c052
--- /dev/null
+++ b/.bazelrc
@@ -0,0 +1,3 @@
+# Use our custom-configured c++ toolchain, using --crosstol_top or --cpu as a differentiator.
+build:kelvin_rvv_rv32_toolchain_config --crosstool_top=//toolchain:kelvin_rvv
+build:kelvin_rvv_rv32_toolchain_config --cpu=kelvin_rvv_rv32
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f31c400
--- /dev/null
+++ b/README.md
@@ -0,0 +1,27 @@
+# Bazel Kelcin Toolchain
+Repo containing RISC-V toochain configuration for Kelvin. 
+
+## Usage {: #usage}
+
+This is work in progress bazel repo: please reach out to me for additional questions and suggestions.
+
+## Build and try it yoursself
+
+1.  If you have not already done so, [download and install Bazel 6.2.1](https://bazel.build/install) or later.
+
+2. TBD for toolchain download instrcutions
+
+3. Run the build with the following command:
+
+    ```bash
+     bazel-6.2.1 run -s --config=kelvin_rvv_rv32_toolchain_config //examples:hello-world-add-floats
+    ```
+    You can also build rvv_add_intrinsic.
+
+4.  The above command builds hell-world-add-floats target with custom toolchain defined under toolcahins.
+    Note: TBD add instrcutions to build the toochain from sracth
+
+5.  Execute binary with mpact_sim
+    ```bash
+    {$PATH_TO_MPACT_SIM}/bazel-bin/riscv/rv32gv_sim   --semihost_arm=true  bazel-bin/hello-world-add-floats
+    ```
\ No newline at end of file
diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel
new file mode 100644
index 0000000..18c7661
--- /dev/null
+++ b/WORKSPACE.bazel
@@ -0,0 +1,2 @@
+load("//toolchain:repo.bzl", "crt_repos")
+crt_repos()
\ No newline at end of file
diff --git a/examples/BUILD b/examples/BUILD
new file mode 100644
index 0000000..5721335
--- /dev/null
+++ b/examples/BUILD
@@ -0,0 +1,9 @@
+cc_binary(
+    name = "hello-world-add-floats",
+    srcs = ["hello-world-add-floats.cc"],
+)
+
+cc_binary(
+    name = "rvv_add_intrinsic",
+    srcs = ["rvv_add_intrinsic.cc"],
+)
diff --git a/examples/hello-world-add-floats.cc b/examples/hello-world-add-floats.cc
new file mode 100644
index 0000000..b11cb21
--- /dev/null
+++ b/examples/hello-world-add-floats.cc
@@ -0,0 +1,17 @@
+#include <stdio.h>
+#include <string.h>
+
+int main() {
+  float input1[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
+  float input2[8] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
+  float output[8];
+
+  printf(" Added input1 and input 2 results are follwing\n ");
+  for (int i = 0; i < 8; i++) {
+    output[i] = input1[i] + input2[i];
+    printf(" %d ", static_cast<int>(output[i]));
+  }
+  // flush
+  printf("\n");
+  return 0;
+}
diff --git a/examples/rvv_add_intrinsic.cc b/examples/rvv_add_intrinsic.cc
new file mode 100644
index 0000000..e1b52a5
--- /dev/null
+++ b/examples/rvv_add_intrinsic.cc
@@ -0,0 +1,30 @@
+#include <riscv_vector.h>
+#include <stdio.h>
+#include <string.h>
+
+int8_t input_1[1024];
+int8_t input_2[1024];
+int16_t output[1024];
+
+int main() {
+  unsigned vlen = __riscv_vlenb();
+  memset(input_1, 1, 1024);
+  memset(input_2, 6, 1024);
+  const int8_t* input1_ptr = &input_1[0];
+  const int8_t* input2_ptr = &input_2[0];
+  int16_t* output_ptr = &output[0];
+
+  for (int idx = 0; (idx + 31) < 1024; idx += 32) {
+    vint8m4_t input_v2 = __riscv_vle8_v_i8m4(input2_ptr + idx, 32);
+    vint8m4_t input_v1 = __riscv_vle8_v_i8m4(input1_ptr + idx, 32);
+
+    vint16m8_t temp_sum = __riscv_vwadd_vv_i16m8(input_v1, input_v2, 32);
+    __riscv_vse16_v_i16m8(output_ptr + idx, temp_sum, 32);
+  }
+
+  printf("printing 1st 10 values of output");
+  for (int i = 0; i < 10; i++) {
+    printf(" %d ", output[i]);
+  }
+  return 0;
+}
diff --git a/toolchain/BUILD b/toolchain/BUILD
new file mode 100644
index 0000000..307e27c
--- /dev/null
+++ b/toolchain/BUILD
@@ -0,0 +1,35 @@
+package(default_visibility = ["//visibility:public"])
+
+load(":cc_toolchain_config.bzl", "cc_kelvin_rvv_rv32_toolchain_config")
+
+filegroup(
+    name="all_files_toolchain",
+    srcs = glob(["out/*/**"])
+)
+
+cc_kelvin_rvv_rv32_toolchain_config(
+   name = "kelvin_rvv_rv32_toolchain_config",
+)
+
+cc_toolchain_suite(
+    name="kelvin_rvv",
+    toolchains = {
+        "kelvin_rvv_rv32": ":kelvin_rvv_rv32_toolchain",
+    }
+
+)
+
+cc_toolchain(
+    name = "kelvin_rvv_rv32_toolchain",
+    toolchain_identifier = "kelvin_rvv_rv32-toolchain",
+    toolchain_config = ":kelvin_rvv_rv32_toolchain_config",
+    all_files = ":all_files_toolchain",
+    as_files = ":all_files_toolchain",
+    ar_files = ":all_files_toolchain",
+    compiler_files = ":all_files_toolchain",
+    dwp_files = ":all_files_toolchain",
+    linker_files = ":all_files_toolchain",
+    objcopy_files = ":all_files_toolchain",
+    strip_files = ":all_files_toolchain",
+    supports_param_files = 0,
+)
\ No newline at end of file
diff --git a/toolchain/cc_toolchain_config.bzl b/toolchain/cc_toolchain_config.bzl
new file mode 100644
index 0000000..7a2d1c1
--- /dev/null
+++ b/toolchain/cc_toolchain_config.bzl
@@ -0,0 +1,143 @@
+load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES")
+load(
+    "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl",
+    "tool_path",
+    "feature",
+    "feature_set",
+    "flag_group",
+    "flag_set",
+    )
+
+load(
+    "@crt//config:features.bzl",
+    "CPP_ALL_COMPILE_ACTIONS",
+    "C_ALL_COMPILE_ACTIONS",
+    "LD_ALL_ACTIONS",
+)
+
+
+def _impl(ctx):
+    tool_paths = [ # NEW
+        tool_path(
+            name = "gcc",
+            path = "out/bin/riscv32-unknown-elf-g++",
+        ),
+        tool_path(
+            name = "ld",
+            path = "out/bin/riscv32-unknown-elf-ld",
+        ),
+        tool_path(
+            name = "ar",
+            path = "out/bin/riscv32-unknown-elf-gcc-ar",
+        ),
+        tool_path(
+            name = "cpp",
+            path = "out/bin/riscv32-unknown-elf-c++",
+        ),
+        tool_path(
+            name = "gcov",
+            path = "/bin/false",
+        ),
+        tool_path(
+            name = "nm",
+            path = "/bin/false",
+        ),
+        tool_path(
+            name = "objdump",
+            path = "/bin/false",
+        ),
+        tool_path(
+            name = "strip",
+            path = "/bin/false",
+        ),
+    ]
+    includes_feature = feature(
+        name = "includes",
+        enabled = True,
+        flag_sets = [
+            flag_set(
+                actions = [
+                    ACTION_NAMES.assemble,
+                    ACTION_NAMES.preprocess_assemble,
+                    ACTION_NAMES.linkstamp_compile,
+                    ACTION_NAMES.c_compile,
+                    ACTION_NAMES.cpp_compile,
+                    ACTION_NAMES.cpp_header_parsing,
+                    ACTION_NAMES.cpp_module_compile,
+                    ACTION_NAMES.cpp_module_codegen,
+                    ACTION_NAMES.lto_backend,
+                    ACTION_NAMES.clif_match
+                ],
+                flag_groups = [
+                    flag_group(
+                        flags = [
+                            "-nostdinc",
+                            "-u", "_printf_float",
+                            "-lsemihosting",
+                            "-isystem", "toolchain/out/riscv32-unknown-elf/include",
+                            "-isystem", "toolchain/out/lib/gcc/riscv32-unknown-elf/15.0.1/include"
+                        ],
+                    ),
+                ],
+            ),
+        ],
+
+     )
+
+    sys_feature = feature(
+        name = "sys_spec",
+        enabled = True,
+        flag_sets = [
+            flag_set(
+                actions = CPP_ALL_COMPILE_ACTIONS,
+                flag_groups = [
+                    flag_group(
+                        flags = [
+                            "-march=rv32im_zve32x_zicsr",
+                            "-mabi=ilp32",
+                            "-mcmodel=medany",
+                        ],
+                    ),
+                ],
+            ),
+            flag_set(
+                actions = LD_ALL_ACTIONS,
+                flag_groups = [
+                    flag_group(
+                        flags = [
+                            "--specs=semihost.specs",
+                            "-lsemihost",
+                            "-lm",
+                            "-lc",
+                            "-lgcc",
+                        ],
+                    ),
+                ],
+            ),
+        ],
+    )
+
+    return cc_common.create_cc_toolchain_config_info(
+        ctx= ctx,
+        toolchain_identifier = "kelvin_rvv_rv32-toolchain",
+        host_system_name = "kelvin_v2",
+        target_system_name = "kelvin_rvv_rv32",
+        target_cpu = "kelvin_rvv_rv32",
+        target_libc = "newlib",
+        compiler = "clang",
+        abi_version = "ilp32 ",
+        abi_libc_version="ilp32",
+         features = [
+             includes_feature,
+             sys_feature,
+         ],
+        tool_paths = tool_paths,
+    )
+
+cc_kelvin_rvv_rv32_toolchain_config = rule(
+    implementation = _impl,
+    attrs = {},
+    provides = [CcToolchainConfigInfo],
+)
+
+
diff --git a/toolchain/repo.bzl b/toolchain/repo.bzl
new file mode 100644
index 0000000..0d2b537
--- /dev/null
+++ b/toolchain/repo.bzl
@@ -0,0 +1,17 @@
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+def crt_repos(local = None):
+    if local:
+        native.local_repository(
+            name = "crt",
+            path = local,
+        )
+    else:
+        maybe(
+            http_archive,
+            name = "crt",
+            url = "https://github.com/lowRISC/crt/archive/refs/tags/v0.3.4.tar.gz",
+            sha256 = "01a66778d1a0d5bbfb4ba30e72bd6876d0c20766d0b1921ab36ca3350cb48c60",
+            strip_prefix = "crt-0.3.4",
+        )
\ No newline at end of file
