aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--machxo2/bitstream.cc37
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