Index: branches/v4/platforms/tsarv4_mono_mmu_ioc/top.cpp
===================================================================
--- branches/v4/platforms/tsarv4_mono_mmu_ioc/top.cpp	(revision 640)
+++ branches/v4/platforms/tsarv4_mono_mmu_ioc/top.cpp	(revision 641)
@@ -91,4 +91,5 @@
     char *dsk_path;
     bool dummy_boot;
+    bool framebuffer;
     bool trace_enabled;
     size_t trace_start_cycle;
@@ -97,7 +98,8 @@
 #define PARAM_INITIALIZER   \
 {                           \
-    .rom_path = NULL,      \
-    .dsk_path = NULL,        \
+    .rom_path = NULL,       \
+    .dsk_path = NULL,       \
     .dummy_boot = false,    \
+    .framebuffer = false,   \
     .trace_enabled = false, \
     .trace_start_cycle = 0  \
@@ -110,4 +112,5 @@
     std::cout << "  rom         = " << param.rom_path << std::endl;
     std::cout << "  dummy boot  = " << param.dummy_boot << std::endl;
+    std::cout << "  framebuffer = " << param.framebuffer << std::endl;
     std::cout << "  dsk         = " << param.dsk_path << std::endl;
     std::cout << "  trace       = " << param.trace_enabled << std::endl;
@@ -143,4 +146,10 @@
             n = n - 1;
         }
+        else if (strcmp(argv[n], "--framebuffer") == 0)
+        {
+            param.framebuffer = true;
+            /* we don't have an extra argument */
+            n = n - 1;
+        }
         else if ((strcmp(argv[n], "--trace") == 0) && ((n + 1) < argc))
         {
@@ -155,4 +164,5 @@
             std::cout << "--dsk pathname" << std::endl;
             std::cout << "[--dummy-boot]" << std::endl;
+            std::cout << "[--framebuffer]" << std::endl;
             std::cout << "[--trace trace_start_cycle]" << std::endl;
             exit(0);
@@ -270,6 +280,9 @@
             param.dsk_path); // mapped_file[, block_size=512, latency=0]
 
-    VciFrameBuffer<vci_param> fb("fb", IntTab(6), maptabd, FB_XSIZE, FB_YSIZE,
-            FbController::RGB_16);
+    VciFrameBuffer<vci_param> *fb = NULL;
+    if (param.framebuffer == true)
+        fb = new VciFrameBuffer<vci_param>("fb", IntTab(6), maptabd,
+                FB_XSIZE, FB_YSIZE,
+                FbController::RGB_16);
 
     VciVgmn<vci_param> vgmnd("vgmnd", maptabd,
@@ -372,7 +385,10 @@
     bd.p_irq(signal_bd_irq);
 
-    fb.p_clk(signal_clk);
-    fb.p_resetn(signal_resetn);
-    fb.p_vci(signal_vci_tgt_d_fb);
+    if (param.framebuffer == true)
+    {
+        fb->p_clk(signal_clk);
+        fb->p_resetn(signal_resetn);
+        fb->p_vci(signal_vci_tgt_d_fb);
+    }
 
     vgmnd.p_clk(signal_clk);
