11# SPDX-License-Identifier: BSD-2-Clause
22
33import argparse
4- import importlib .metadata
54import inspect
65import json
76import logging
87import os
98import requests
109import subprocess
11- import sys
1210import time
1311
1412import dotenv
1513from amaranth import *
1614
1715from .. import ChipFlowError
18- from ..platforms import SiliconPlatform , top_interfaces
16+ from ..platforms import SiliconPlatform , top_interfaces , load_pinlock
1917
2018
2119logger = logging .getLogger (__name__ )
@@ -116,21 +114,6 @@ def submit(self, rtlil_path, *, dry_run=False, wait=False):
116114 if git_dirty :
117115 logging .warning ("Git tree is dirty, submitting anyway!" )
118116 submission_name += "-dirty"
119- dep_versions = {
120- "python" : sys .version .split ()[0 ]
121- }
122- for package in (
123- # Upstream packages
124- "yowasp-runtime" , "yowasp-yosys" ,
125- "amaranth" , "amaranth-stdio" , "amaranth-soc" ,
126- # ChipFlow packages
127- "chipflow-lib" ,
128- "amaranth-orchard" , "amaranth-vexriscv" ,
129- ):
130- try :
131- dep_versions [package ] = importlib .metadata .version (package )
132- except importlib .metadata .PackageNotFoundError :
133- dep_versions [package ] = None
134117
135118 data = {
136119 "projectId" : self .project_name ,
@@ -160,20 +143,12 @@ def submit(self, rtlil_path, *, dry_run=False, wait=False):
160143 f"dir={ port .direction } , width={ width } " )
161144 pads [padname ] = {'loc' : port .pins [0 ], 'type' : port .direction .value }
162145
163- # Use the Pydantic models to access configuration data
164- silicon_model = self .config_model .chipflow .silicon
165- config = {
166- "dependency_versions" : dep_versions ,
167- "silicon" : {
168- "process" : str (silicon_model .process ),
169- "pad_ring" : silicon_model .package ,
170- "pads" : pads ,
171- "power" : {k : {"type" : v .type , "loc" : v .loc } for k , v in silicon_model .power .items ()}
172- }
173- }
146+ pinlock = load_pinlock ()
147+ config = pinlock .model_dump_json (indent = 2 )
148+
174149 if dry_run :
175150 print (f"data=\n { json .dumps (data , indent = 2 )} " )
176- print (f"files['config']=\n { json . dumps ( config , indent = 2 ) } " )
151+ print (f"files['config']=\n { config } " )
177152 return
178153
179154 logger .info (f"Submitting { submission_name } for project { self .project_name } " )
@@ -188,7 +163,7 @@ def submit(self, rtlil_path, *, dry_run=False, wait=False):
188163 data = data ,
189164 files = {
190165 "rtlil" : open (rtlil_path , "rb" ),
191- "config" : json . dumps ( config ) ,
166+ "config" : config ,
192167 },
193168 allow_redirects = False
194169 )
0 commit comments