diff --git a/tftf/framework/framework.mk b/tftf/framework/framework.mk
index 7d00704..9fdbb7c 100644
--- a/tftf/framework/framework.mk
+++ b/tftf/framework/framework.mk
@@ -94,21 +94,6 @@
 
 TFTF_DEFINES :=
 
-TEST_REPORTS ?= uart:raw
-$(info Selected reports: $(TEST_REPORTS))
-ifneq (,$(findstring uart:raw,$(TEST_REPORTS)))
-  TFTF_DEFINES += -DTEST_REPORT_UART_RAW
-endif
-ifneq (,$(findstring uart:junit,$(TEST_REPORTS)))
-  TFTF_DEFINES += -DTEST_REPORT_UART_JUNIT
-endif
-ifneq (,$(findstring semihosting:raw,$(TEST_REPORTS)))
-  TFTF_DEFINES += -DTEST_REPORT_SEMIHOSTING_RAW
-endif
-ifneq (,$(findstring semihosting:junit,$(TEST_REPORTS)))
-  TFTF_DEFINES += -DTEST_REPORT_SEMIHOSTING_JUNIT
-endif
-
 # Enable dynamic translation tables
 PLAT_XLAT_TABLES_DYNAMIC := 1
 $(eval $(call add_define,TFTF_DEFINES,PLAT_XLAT_TABLES_DYNAMIC))
diff --git a/tftf/framework/report.c b/tftf/framework/report.c
index 4b0a857..faae34b 100644
--- a/tftf/framework/report.c
+++ b/tftf/framework/report.c
@@ -7,51 +7,10 @@
 #include <assert.h>
 #include <debug.h>
 #include <platform_def.h>  /* For TESTCASE_OUTPUT_MAX_SIZE */
-#include <semihosting.h>
 #include <stdio.h>
 #include <string.h>
 #include <tftf.h>
 
-struct tftf_report_ops {
-	long (*open)(const char *fname);
-	void (*write)(long handle, const char *str);
-	void (*close)(long handle);
-};
-
-#define TEST_REPORT_JUNIT_FILENAME "tftf_report_junit.xml"
-#define TEST_REPORT_RAW_FILENAME "tftf_report_raw.txt"
-
-#if defined(TEST_REPORT_UART_RAW) || defined(TEST_REPORT_UART_JUNIT)
-static long tftf_report_uart_open(const char *fname)
-{
-	printf("********** %s **********\n", fname);
-	return 0;
-}
-
-static void tftf_report_uart_write(long handle, const char *str)
-{
-	(void)handle;
-	assert(str);
-	/* Not using printf to avoid doing two copies. */
-	while (*str) {
-		putchar(*str++);
-	}
-}
-
-static void tftf_report_uart_close(long handle)
-{
-	(void)handle;
-	printf("************************\n");
-}
-
-const struct tftf_report_ops tftf_report_uart_ops = {
-	.open = tftf_report_uart_open,
-	.write = tftf_report_uart_write,
-	.close = tftf_report_uart_close,
-};
-#endif /* defined(TEST_REPORT_UART_RAW) || defined(TEST_REPORT_UART_JUNIT) */
-
-#if defined(TEST_REPORT_UART_RAW) || defined(TEST_REPORT_SEMIHOSTING_RAW)
 static unsigned int total_tests;
 static unsigned int tests_stats[TEST_RESULT_MAX];
 
@@ -72,179 +31,45 @@
 	return test_result_strings[result];
 }
 
-static void tftf_report_generate_raw(const struct tftf_report_ops *rops,
-					const char *fname)
+void tftf_report_generate(void)
 {
-#define WRITE(str) rops->write(file_handle, str)
-#define BUFFER_SIZE 200
 	unsigned i, j;
-	long file_handle;
-	char buffer[BUFFER_SIZE];
 	const test_case_t *testcases;
 	TESTCASE_RESULT testcase_result;
 	char test_output[TESTCASE_OUTPUT_MAX_SIZE];
 	STATUS status;
 
-	file_handle = rops->open(fname);
-	if (file_handle == -1)
-		return;
-
 	/* Extract the result of all the testcases */
-	WRITE("========== TEST REPORT ==========\n");
+	printf("========== TEST REPORT ==========\n");
 	for (i = 0; testsuites[i].name != NULL; i++) {
-		snprintf(buffer, BUFFER_SIZE, "# Test suite '%s':\n", testsuites[i].name);
-		WRITE(buffer);
+		printf("# Test suite '%s':\n", testsuites[i].name);
 		testcases = testsuites[i].testcases;
 
 		for (j = 0; testcases[j].name != NULL; j++) {
 			status = tftf_testcase_get_result(&testcases[j], &testcase_result, test_output);
 			if (status != STATUS_SUCCESS) {
-				WRITE("Failed to get test result.\n");
+				printf("Failed to get test result.\n");
 				continue;
 			}
 
 			tftf_update_tests_statistics(testcase_result.result);
 			/* TODO: print test duration */
-			snprintf(buffer, BUFFER_SIZE, "\t - %s: %s\n", testcases[j].name,
+			printf("\t - %s: %s\n", testcases[j].name,
 				test_result_to_string(testcase_result.result));
-			WRITE(buffer);
 
 			if (strlen(test_output) != 0) {
-				WRITE("--- output ---\n");
-				snprintf(buffer, BUFFER_SIZE, "%s", test_output);
-				WRITE(buffer);
-				WRITE("--------------\n");
+				printf("--- output ---\n");
+				printf("%s", test_output);
+				printf("--------------\n");
 			}
 		}
 	}
-	WRITE("=================================\n");
+	printf("=================================\n");
 
 	for (i = TEST_RESULT_MIN; i < TEST_RESULT_MAX; i++) {
-		snprintf(buffer, BUFFER_SIZE, "Tests %-8s: %d\n",
+		printf("Tests %-8s: %d\n",
 			test_result_to_string(i), tests_stats[i]);
-		WRITE(buffer);
 	}
-	snprintf(buffer, BUFFER_SIZE, "%-14s: %d\n", "Total tests", total_tests);
-	WRITE(buffer);
-	WRITE("=================================\n");
-
-	rops->close(file_handle);
-#undef BUFFER_SIZE
-#undef WRITE
-}
-#endif /* defined(TEST_REPORT_UART_RAW) || defined(TEST_REPORT_SEMIHOSTING_RAW) */
-
-#if defined(TEST_REPORT_SEMIHOSTING_RAW) || defined(TEST_REPORT_SEMIHOSTING_JUNIT)
-static long tftf_report_semihosting_open(const char *fname)
-{
-	/* Create the report on the semihosting */
-	long handle = semihosting_file_open(fname, FOPEN_MODE_WPLUS);
-	if (handle == -1) {
-		ERROR("Failed to create test report file \"%s\" on semihosting"
-			" [status = %ld].\n", fname, handle);
-	}
-	NOTICE("Opened file \"%s\" on semihosting with handle %ld.\n", fname, handle);
-	return handle;
-}
-
-static void tftf_report_semihosting_write(long handle, const char *str)
-{
-	size_t length = strlen(str);
-	semihosting_file_write(handle, &length, (const uintptr_t) str);
-}
-
-static void tftf_report_semihosting_close(long handle)
-{
-	semihosting_file_close(handle);
-	NOTICE("Closing file with handle %ld on semihosting.\n", handle);
-}
-
-const struct tftf_report_ops tftf_report_semihosting_ops = {
-	.open = tftf_report_semihosting_open,
-	.write = tftf_report_semihosting_write,
-	.close = tftf_report_semihosting_close,
-};
-#endif /* defined(TEST_REPORT_SEMIHOSTING_RAW) || defined(TEST_REPORT_SEMIHOSTING_JUNIT) */
-
-
-#if defined(TEST_REPORT_UART_JUNIT) || defined(TEST_REPORT_SEMIHOSTING_JUNIT)
-static void tftf_report_generate_junit(const struct tftf_report_ops *rops,
-					const char *fname)
-{
-#define WRITE(str) rops->write(file_handle, str)
-#define BUFFER_SIZE 200
-
-	long file_handle;
-	unsigned i, j;
-	const test_case_t *testcases;
-	TESTCASE_RESULT result;
-	char buffer[BUFFER_SIZE];
-	char test_output[TESTCASE_OUTPUT_MAX_SIZE];
-
-	file_handle = rops->open(fname);
-
-	if (file_handle == -1) {
-		return;
-	}
-	WRITE("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
-	WRITE("<testsuites>\n");
-
-	/* Extract the result of all the testcases */
-	for (i = 0; testsuites[i].name != NULL; i++) {
-		snprintf(buffer, BUFFER_SIZE, "<testsuite name=\"%s\">\n",
-			testsuites[i].name);
-		WRITE(buffer);
-		testcases = testsuites[i].testcases;
-		for (j = 0; testcases[j].name != NULL; j++) {
-			tftf_testcase_get_result(&testcases[j], &result, test_output);
-
-			snprintf(buffer, BUFFER_SIZE, "  <testcase name=\"%s\" time=\"%llu\"",
-				testcases[j].name, result.duration);
-			WRITE(buffer);
-			if (result.result == TEST_RESULT_SUCCESS) {
-				WRITE("/>\n");
-			} else {
-				WRITE(">\n");
-				if (result.result == TEST_RESULT_SKIPPED) {
-					WRITE("    <skipped/>\n");
-				} else {
-					WRITE("    <error type=\"failed\">\n");
-					WRITE(test_output);
-					WRITE("    </error>\n");
-				}
-				WRITE("  </testcase>\n");
-			}
-		}
-		WRITE("</testsuite>\n");
-	}
-
-	WRITE("</testsuites>\n");
-	rops->close(file_handle);
-#undef BUFFER_SIZE
-#undef WRITE
-}
-#endif /* defined(TEST_REPORT_UART_JUNIT) || defined(TEST_REPORT_SEMIHOSTING_JUNIT) */
-
-void tftf_report_generate(void)
-{
-	int nb_reports = 0;
-#ifdef TEST_REPORT_UART_RAW
-	tftf_report_generate_raw(&tftf_report_uart_ops, "raw");
-	nb_reports++;
-#endif
-#ifdef TEST_REPORT_UART_JUNIT
-	tftf_report_generate_junit(&tftf_report_uart_ops, "junit");
-	nb_reports++;
-#endif
-#ifdef TEST_REPORT_SEMIHOSTING_RAW
-	tftf_report_generate_raw(&tftf_report_semihosting_ops,
-				TEST_REPORT_RAW_FILENAME);
-	nb_reports++;
-#endif
-#ifdef TEST_REPORT_SEMIHOSTING_JUNIT
-	tftf_report_generate_junit(&tftf_report_semihosting_ops,
-				TEST_REPORT_JUNIT_FILENAME);
-	nb_reports++;
-#endif
-	assert(nb_reports > 0);
+	printf("%-14s: %d\n", "Total tests", total_tests);
+	printf("=================================\n");
 }
