diff options
| -rw-r--r-- | machxo2/bitstream.cc | 37 | 
1 files changed, 37 insertions, 0 deletions
diff --git a/machxo2/bitstream.cc b/machxo2/bitstream.cc index 6e1dbb11..eec07cb1 100644 --- a/machxo2/bitstream.cc +++ b/machxo2/bitstream.cc @@ -18,15 +18,52 @@   *   */ +#include <fstream> +  #include "bitstream.h"  #include "config.h"  NEXTPNR_NAMESPACE_BEGIN +// These seem simple enough to do inline for now. +namespace BaseConfigs { +    void config_empty_lcmxo2_1200hc(ChipConfig &cc) +    { +        cc.chip_name = "LCMXO2-1200HC"; + +        cc.tiles["EBR_R6C11:EBR1"].add_unknown(0, 12); +        cc.tiles["EBR_R6C15:EBR1"].add_unknown(0, 12); +        cc.tiles["EBR_R6C18:EBR1"].add_unknown(0, 12); +        cc.tiles["EBR_R6C21:EBR1"].add_unknown(0, 12); +        cc.tiles["EBR_R6C2:EBR1"].add_unknown(0, 12); +        cc.tiles["EBR_R6C5:EBR1"].add_unknown(0, 12); +        cc.tiles["EBR_R6C8:EBR1"].add_unknown(0, 12); + +        cc.tiles["PT4:CFG0"].add_unknown(5, 30); +        cc.tiles["PT4:CFG0"].add_unknown(5, 32); +        cc.tiles["PT4:CFG0"].add_unknown(5, 36); + +        cc.tiles["PT7:CFG3"].add_unknown(5, 18); +    } +} // namespace BaseConfigs +  void write_bitstream(Context *ctx, std::string text_config_file)  {      ChipConfig cc; +    switch (ctx->args.type) { +    case ArchArgs::LCMXO2_1200HC: +        BaseConfigs::config_empty_lcmxo2_1200hc(cc); +        break; +    default: +        NPNR_ASSERT_FALSE("Unsupported device type"); +    } + +    // Configure chip +    if (!text_config_file.empty()) { +        std::ofstream out_config(text_config_file); +        out_config << cc; +    }  }  NEXTPNR_NAMESPACE_END  | 
