add lpc mapping interface and stubs

Add an lpc mapping interface to allow for multiple mapping
implementations, such as one for Aspeed and one for Nuvoton.

Add empty implementations for Aspeed and Nuvoton.
Add configuration options to enable aspeed or nuvoton lpc.

Change-Id: I3fd2b1e437db6366c7656f294d138224c25d4e81
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/main.cpp b/main.cpp
index 8d94dca..0a43b96 100644
--- a/main.cpp
+++ b/main.cpp
@@ -18,7 +18,17 @@
 {
 HashFileHandler hashHandler;
 StaticLayoutHandler staticLayoutHandler(STATIC_HANDLER_STAGED_NAME);
-LpcDataHandler lpcDataHandler;
+
+#ifdef ENABLE_LPC_BRIDGE
+#if defined(ASPEED_LPC)
+LpcDataHandler lpcDataHandler(LpcMapperAspeed::createAspeedMapper());
+#elif defined(NUVOTON_LPC)
+LpcDataHandler lpcDataHandler(LpcMapperNuvoton::createNuvotonMapper());
+#else
+#error "You must specify a hardware implementation."
+#endif
+#endif
+
 PciDataHandler pciDataHandler(PCI_PHYSICAL_ADDRESS);
 
 std::vector<HandlerPack> supportedFirmware = {