From 71df0bfb0646247a48d307b97031d29eec1fec8d Mon Sep 17 00:00:00 2001 From: Edwin Joy Date: Wed, 27 Dec 2023 10:31:45 +0530 Subject: [PATCH 01/18] get_march_mabi initial commit --- riscv_config/isa_validator.py | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/riscv_config/isa_validator.py b/riscv_config/isa_validator.py index 5c7681e..efde84d 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -161,4 +161,43 @@ def get_extension_list(isa): return (extension_list, err, err_list) +def get_march_mabi (isa : str): + ''' + This function returns the corresponding march and mabi argument values + for RISC-V GCC + arguments: + isa: (string) this is the isa string in canonical order + + returns: + march: (string) this is the string to be passed to -march to gcc for a given isa + mabi: (string) this is the string to be passed to -mabi for given isa + ''' + + # march generation + + march = isa + # remove privilege modes + if 'SU' in march: + march = march.replace('SU', '') # remove supervisor + elif 'U'in march: + march = march.replace('U', '') # remove user mode + + march = march.lower() + + march = march.replace('smrnmi_', '') # remove smrnmi + march = march.replace('sdext_', '') # remove sdext + march = march.replace('zicntr_', '') # remove zicntr + march = march.replace('zihpm_', '') # remove zihpm + + # remove zbp and zbt if zbpbo is present + if 'zbpbo_' in march: + march = march.replace('zbp_', '') + march = march.replace('zbt_', '') + + # mabi generation + mabi = 'ilp32' + if 'rv64' in march: + mabi = 'ilp64d' + + return march, mabi From e4e9e4ed729ae62ab4c369af35a9554844549144 Mon Sep 17 00:00:00 2001 From: Edwin Joy Date: Wed, 27 Dec 2023 10:56:52 +0530 Subject: [PATCH 02/18] maintain separate list for invalid gcc extensions --- riscv_config/isa_validator.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/riscv_config/isa_validator.py b/riscv_config/isa_validator.py index efde84d..3552f27 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -185,10 +185,30 @@ def get_march_mabi (isa : str): march = march.lower() - march = march.replace('smrnmi_', '') # remove smrnmi - march = march.replace('sdext_', '') # remove sdext - march = march.replace('zicntr_', '') # remove zicntr - march = march.replace('zihpm_', '') # remove zihpm + # extensions to be nullified + null_ext = [ + # rnmi + 'smrnmi_', + + # debug mode + 'sdext_', + + # performance counter + 'zicntr_', + 'zihpm_', + + # unratified Zb* extensions + 'zbe_', + 'zbf_', + 'zbm_', + 'zbr_', + ] + + # nullify all extensions present in null_ext + for each in null_ext: + march = march.replace(each, '') + + # handle special cases here # remove zbp and zbt if zbpbo is present if 'zbpbo_' in march: From 12247090442f853035ac5c7766e8b25848ca7247 Mon Sep 17 00:00:00 2001 From: Edwin Joy Date: Wed, 27 Dec 2023 16:42:52 +0530 Subject: [PATCH 03/18] fixed mabi gen logic --- riscv_config/isa_validator.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/riscv_config/isa_validator.py b/riscv_config/isa_validator.py index 3552f27..8cebdfe 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -217,7 +217,12 @@ def get_march_mabi (isa : str): # mabi generation mabi = 'ilp32' + if 'FD' in isa: + mabi += 'd' + elif 'F' in isa: + mabi += 'f' + if 'rv64' in march: - mabi = 'ilp64d' + mabi = mabi.replace('ilp32', 'lp64') return march, mabi From f2dcda1ef2b116d34d8c0d60b11b66243acb2cc9 Mon Sep 17 00:00:00 2001 From: Edwin Joy Date: Wed, 27 Dec 2023 20:16:41 +0530 Subject: [PATCH 04/18] fix march construction logic; using isa_validator --- riscv_config/isa_validator.py | 45 +++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/riscv_config/isa_validator.py b/riscv_config/isa_validator.py index 8cebdfe..6bf6919 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -187,33 +187,42 @@ def get_march_mabi (isa : str): # extensions to be nullified null_ext = [ + # privilege modes + 'U', + 'S', + # rnmi - 'smrnmi_', + 'Smrnmi', # debug mode - 'sdext_', + 'Sdext', # performance counter - 'zicntr_', - 'zihpm_', + 'Zicntr', + 'Zihpm', # unratified Zb* extensions - 'zbe_', - 'zbf_', - 'zbm_', - 'zbr_', + 'Zbe', + 'Zbf', + 'Zbm', + 'Zbr', ] - # nullify all extensions present in null_ext - for each in null_ext: - march = march.replace(each, '') - - # handle special cases here - - # remove zbp and zbt if zbpbo is present - if 'zbpbo_' in march: - march = march.replace('zbp_', '') - march = march.replace('zbt_', '') + # add Zbp and Zbt to null_ext if Zbpbo is present + if 'Zbpbo' in ext_list: + null_ext += ['Zbp', 'Zbt'] + + # construct march + for ext in ext_list: + if ext not in null_ext: + if len(ext) == 1: + march += ext.lower() + else: + # suffix multiline extensions with '_' + march = march + ext.lower() + '_' + + # trim final underscore if exists + march = march[0:-1] if march[-1] == '_' else march # mabi generation mabi = 'ilp32' From fe2f02c1a3d770ff015bcc1510d78662e4f55688 Mon Sep 17 00:00:00 2001 From: Edwin Joy Date: Wed, 27 Dec 2023 20:17:18 +0530 Subject: [PATCH 05/18] added logic when isa_validation fails --- riscv_config/isa_validator.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/riscv_config/isa_validator.py b/riscv_config/isa_validator.py index 6bf6919..bffe2cc 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -172,18 +172,20 @@ def get_march_mabi (isa : str): returns: march: (string) this is the string to be passed to -march to gcc for a given isa mabi: (string) this is the string to be passed to -mabi for given isa + + None: if ISA validation throws error ''' # march generation - march = isa - # remove privilege modes - if 'SU' in march: - march = march.replace('SU', '') # remove supervisor - elif 'U'in march: - march = march.replace('U', '') # remove user mode + march = 'rv32' if '32' in isa else 'rv64' + + # get extension list + (ext_list, err, err_list) = get_extension_list(isa) - march = march.lower() + # if isa validation throws errors, return None + if err: + return None # extensions to be nullified null_ext = [ From e3873ff419b25d55213ecb757804b59ee5e23029 Mon Sep 17 00:00:00 2001 From: Edwin Joy Date: Wed, 27 Dec 2023 20:19:59 +0530 Subject: [PATCH 06/18] typo in comment --- riscv_config/isa_validator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/riscv_config/isa_validator.py b/riscv_config/isa_validator.py index bffe2cc..9cce96b 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -217,6 +217,7 @@ def get_march_mabi (isa : str): # construct march for ext in ext_list: if ext not in null_ext: + # suffix multicharacter extensions with '_' if len(ext) == 1: march += ext.lower() else: From fd38551dbdd6426d84914cda34dc55eb781a61f0 Mon Sep 17 00:00:00 2001 From: Neel Gala Date: Mon, 1 Jan 2024 11:40:40 +0530 Subject: [PATCH 07/18] return march as list --- riscv_config/isa_validator.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/riscv_config/isa_validator.py b/riscv_config/isa_validator.py index 9cce96b..65bf73f 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -179,6 +179,8 @@ def get_march_mabi (isa : str): # march generation march = 'rv32' if '32' in isa else 'rv64' + march_list = [] + march_list.append(march) # get extension list (ext_list, err, err_list) = get_extension_list(isa) @@ -213,28 +215,25 @@ def get_march_mabi (isa : str): # add Zbp and Zbt to null_ext if Zbpbo is present if 'Zbpbo' in ext_list: null_ext += ['Zbp', 'Zbt'] - # construct march for ext in ext_list: if ext not in null_ext: + march_list.append(ext.lower()) # suffix multicharacter extensions with '_' if len(ext) == 1: march += ext.lower() else: # suffix multiline extensions with '_' - march = march + ext.lower() + '_' - - # trim final underscore if exists - march = march[0:-1] if march[-1] == '_' else march + march = march + '_' + ext.lower() # mabi generation mabi = 'ilp32' - if 'FD' in isa: + if 'F' in ext_list and 'D' in ext_list: mabi += 'd' - elif 'F' in isa: + elif 'F' in ext_list: mabi += 'f' if 'rv64' in march: mabi = mabi.replace('ilp32', 'lp64') - return march, mabi + return (march, mabi, march_list) From 06dd3a3b07bbc8e1767e35d8086cfa33ca299228 Mon Sep 17 00:00:00 2001 From: Edwin Joy Date: Mon, 1 Jan 2024 13:31:40 +0530 Subject: [PATCH 08/18] =?UTF-8?q?Bump=20version:=203.14.3=20=E2=86=92=203.?= =?UTF-8?q?15.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- riscv_config/__init__.py | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/riscv_config/__init__.py b/riscv_config/__init__.py index e8dd3aa..b9924a8 100644 --- a/riscv_config/__init__.py +++ b/riscv_config/__init__.py @@ -1,4 +1,4 @@ from pkgutil import extend_path __path__ = extend_path(__path__, __name__) -__version__ = '3.14.3' +__version__ = '3.15.0' diff --git a/setup.cfg b/setup.cfg index 102806c..3cb111e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 3.14.3 +current_version = 3.15.0 commit = True tag = True From 5cfcab03204080f4ec4d34ca54e5f6e306a63597 Mon Sep 17 00:00:00 2001 From: Edwin Joy Date: Mon, 1 Jan 2024 13:34:25 +0530 Subject: [PATCH 09/18] added march_list to returns in function doc --- riscv_config/isa_validator.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/riscv_config/isa_validator.py b/riscv_config/isa_validator.py index 65bf73f..1e8d674 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -170,10 +170,10 @@ def get_march_mabi (isa : str): isa: (string) this is the isa string in canonical order returns: - march: (string) this is the string to be passed to -march to gcc for a given isa - mabi: (string) this is the string to be passed to -mabi for given isa - - None: if ISA validation throws error + march: (string) this is the string to be passed to -march to gcc for a given isa + mabi: (string) this is the string to be passed to -mabi for given isa + march_list: (list) gives march as a list of all extensions as elements + None: if ISA validation throws error ''' # march generation From b9d91474fcc5047fdc5e05d0cb4bef2a8ca61475 Mon Sep 17 00:00:00 2001 From: Edwin Joy Date: Mon, 1 Jan 2024 13:35:53 +0530 Subject: [PATCH 10/18] updated CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bb947c..43e9d86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.15.0] - 2024-01-01 + - Added function that returns the march and mabi for gcc from a given ISA ## [3.14.3] - 2023-12-01 - Add support for Zimop extension From 1a6e3d5fc36cc31963d5b67f587261756b37f7cd Mon Sep 17 00:00:00 2001 From: Neel Gala Date: Thu, 30 Nov 2023 21:44:29 +0530 Subject: [PATCH 11/18] improve logging --- riscv_config/checker.py | 48 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/riscv_config/checker.py b/riscv_config/checker.py index e7ce76a..2b7ff2c 100644 --- a/riscv_config/checker.py +++ b/riscv_config/checker.py @@ -1505,6 +1505,7 @@ def check_warl_legality(spec, logging = False): warlnodes = {} xlen = 64 if 64 in spec['supported_xlen'] else 32 for csrname, csrnode in spec.items(): + logger.debug(f'Checking legality of warl strings for csr: {csrname}') # don't perform any warl legality checks for uarch signal definitions. if csrname == 'uarch_signals': continue @@ -1723,9 +1724,6 @@ def check_debug_specs(debug_spec, isa_spec, and the second being the absolute path to the platform spec file. ''' - if logging: - logger.info('Input-Debug file') - foo1 = isa_spec foo = debug_spec schema = constants.debug_schema @@ -1735,24 +1733,24 @@ def check_debug_specs(debug_spec, isa_spec, """ # Load input YAML file if logging: - logger.info('Loading input file: ' + str(foo)) + logger.info('DebugCheck: Loading input Debug file: ' + str(foo)) master_inp_debug_yaml = utils.load_yaml(foo, no_anchors) # Load input YAML file if logging: - logger.info('Loading input isa file: ' + str(foo1)) + logger.info('DebugCheck: Loading input isa file for debug: ' + str(foo1)) master_inp_yaml = utils.load_yaml(foo1, no_anchors) isa_string = master_inp_yaml['hart0']['ISA'] # instantiate validator if logging: - logger.info('Load Schema ' + str(schema)) + logger.info('DebugCheck: Load Debug Schema ' + str(schema)) master_schema_yaml = utils.load_yaml(schema, no_anchors) outyaml = copy.deepcopy(master_inp_debug_yaml) for x in master_inp_debug_yaml['hart_ids']: if logging: - logger.info('Processing Hart: hart'+str(x)) + logger.info(f'DebugCheck: Processing Hart:{x}') inp_debug_yaml = master_inp_debug_yaml['hart'+str(x)] schema_yaml = add_debug_setters(master_schema_yaml['hart_schema']['schema']) #Extract xlen @@ -1765,13 +1763,13 @@ def check_debug_specs(debug_spec, isa_spec, # Perform Validation if logging: - logger.info('Initiating Validation') + logger.info(f'DebugCheck: Initiating Validation for hart:{x}') valid = validator.validate(normalized) # Print out errors if valid: if logging: - logger.info('No errors for Hart: '+str(x) + ' :)') + logger.info(f'DebugCheck: No errors for Hart:{x}') else: error_list = validator.errors raise ValidationError("Error in " + foo + ".", error_list) @@ -1779,7 +1777,7 @@ def check_debug_specs(debug_spec, isa_spec, normalized['ISA'] = isa_string if logging: - logger.info(f' Updating fields node for each CSR') + logger.info(f'DebugCheck: Updating fields node for each CSR in Hart:{x}') normalized = update_fields(normalized, logging) outyaml['hart'+str(x)] = trim(normalized) @@ -1790,7 +1788,7 @@ def check_debug_specs(debug_spec, isa_spec, dfile = output_filename outfile = open(output_filename, 'w') if logging: - logger.info('Dumping out Normalized Checked YAML: ' + output_filename) + logger.info('DebugCheck: Dumping out Normalized Checked YAML: ' + output_filename) utils.dump_yaml(outyaml, outfile, no_anchors ) return dfile @@ -1830,18 +1828,18 @@ def check_isa_specs(isa_spec, """ # Load input YAML file if logging: - logger.info('Loading input file: ' + str(foo)) + logger.info('ISACheck: Loading input file: ' + str(foo)) master_inp_yaml = utils.load_yaml(foo, no_anchors) # instantiate validator if logging: - logger.info('Load Schema ' + str(schema)) + logger.info('ISACheck: Load Schema ' + str(schema)) master_schema_yaml = utils.load_yaml(schema, no_anchors) outyaml = copy.deepcopy(master_inp_yaml) for x in master_inp_yaml['hart_ids']: if logging: - logger.info('Processing Hart: hart'+str(x)) + logger.info(f'ISACheck: Processing Hart:{x}') inp_yaml = master_inp_yaml['hart'+str(x)] schema_yaml = add_def_setters(master_schema_yaml['hart_schema']['schema']) schema_yaml = add_reset_setters(master_schema_yaml['hart_schema']['schema']) @@ -1855,18 +1853,18 @@ def check_isa_specs(isa_spec, # Perform Validation if logging: - logger.info('Initiating Validation') + logger.info(f'ISACheck: Initiating Validation for Hart:{x}') valid = validator.validate(normalized) # Print out errors if valid: if logging: - logger.info('No errors for Hart: '+str(x) + ' :)') + logger.info(f'ISACheck: No errors for Hart:{x}') else: error_list = validator.errors - raise ValidationError("Error in " + foo + ".", error_list) + raise ValidationError(f"ISACheck: Error in " + foo + ".", error_list) if logging: - logger.info(f' Updating fields node for each CSR') + logger.info(f'ISACheck: Updating fields node for each CSR in Hart:{x}') normalized = update_fields(normalized, logging) outyaml['hart'+str(x)] = trim(normalized) @@ -1877,7 +1875,7 @@ def check_isa_specs(isa_spec, ifile = output_filename outfile = open(output_filename, 'w') if logging: - logger.info('Dumping out Normalized Checked YAML: ' + output_filename) + logger.info('ISACheck: Dumping out Normalized Checked YAML: ' + output_filename) utils.dump_yaml(outyaml, outfile, no_anchors ) return ifile @@ -1911,7 +1909,7 @@ def check_custom_specs(custom_spec, # Load input YAML file if logging: - logger.info('Loading input file: ' + str(foo)) + logger.info('CustomCheck: Loading input file: ' + str(foo)) master_custom_yaml = utils.load_yaml(foo, no_anchors) schema_yaml = utils.load_yaml(constants.custom_schema, no_anchors) validator = schemaValidator(schema_yaml, xlen=[]) @@ -1921,12 +1919,12 @@ def check_custom_specs(custom_spec, normalized = {} for x in master_custom_yaml['hart_ids']: if logging: - logger.info('Processing Hart: hart'+str(x)) + logger.info(f'CustomCheck: Processing Hart:{x}') inp_yaml = master_custom_yaml['hart'+str(x)] valid = validator.validate(inp_yaml) if valid: if logging: - logger.info('No errors for Hart: '+str(x) + ' :)') + logger.info('CustomCheck: No errors for Hart:{x}') else: error_list = validator.errors raise ValidationError("Error in " + foo + ".", error_list) @@ -1942,7 +1940,7 @@ def check_custom_specs(custom_spec, cfile = output_filename outfile = open(output_filename, 'w') if logging: - logger.info('Dumping out Normalized Checked YAML: ' + output_filename) + logger.info('CustomCheck: Dumping out Normalized Checked YAML: ' + output_filename) utils.dump_yaml(outyaml, outfile, no_anchors ) return cfile @@ -2076,7 +2074,7 @@ def check_csr_specs(ispec=None, customspec=None, dspec=None, pspec=None, work_di for entry in hart_ids: csr_db = merged[entry] if logging: - logger.info("Initiating WARL legality checks.") + logger.info(f"Initiating WARL legality checks for hart:{entry}.") errors = check_warl_legality(csr_db, logging) if errors: raise ValidationError("Error in csr definitions", errors) @@ -2086,7 +2084,7 @@ def check_csr_specs(ispec=None, customspec=None, dspec=None, pspec=None, work_di raise ValidationError("Error in csr definitions", errors) if logging: - logger.info("Initiating post processing and reset value checks.") + logger.info(f"Initiating post processing and reset value checks for hart{entry}.") errors = check_reset(csr_db, logging) if errors: raise ValidationError("Error in csr definitions", errors) From b66e8f7041d259d3d177a58a326432ee257cea79 Mon Sep 17 00:00:00 2001 From: incorebot Date: Thu, 30 Nov 2023 21:45:14 +0530 Subject: [PATCH 12/18] update the fields node in the normalized custom yaml --- riscv_config/checker.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/riscv_config/checker.py b/riscv_config/checker.py index 2b7ff2c..e42e307 100644 --- a/riscv_config/checker.py +++ b/riscv_config/checker.py @@ -1916,7 +1916,6 @@ def check_custom_specs(custom_spec, validator.allow_unknown = True outyaml = copy.deepcopy(master_custom_yaml) - normalized = {} for x in master_custom_yaml['hart_ids']: if logging: logger.info(f'CustomCheck: Processing Hart:{x}') @@ -1927,8 +1926,12 @@ def check_custom_specs(custom_spec, logger.info('CustomCheck: No errors for Hart:{x}') else: error_list = validator.errors - raise ValidationError("Error in " + foo + ".", error_list) - normalized[f'hart{x}'] = validator.normalized(inp_yaml, schema_yaml) + raise ValidationError("CustomCheck: Error in " + foo + ".", error_list) + normalized = validator.normalized(inp_yaml, schema_yaml) + if logging: + logger.info(f'CustomCheck: Updating fields node for each CSR Hart:{x}') + normalized = update_fields(normalized, logging) + outyaml['hart'+str(x)] = trim(normalized) errors = check_fields(inp_yaml) if errors: raise ValidationError("Error in " + foo + ".", errors) From b76524723e142b38035655eb32d11ca87c4b7322 Mon Sep 17 00:00:00 2001 From: incorebot Date: Thu, 30 Nov 2023 21:45:37 +0530 Subject: [PATCH 13/18] using hartX naming scheme for merged dict --- riscv_config/checker.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/riscv_config/checker.py b/riscv_config/checker.py index e42e307..34bff9d 100644 --- a/riscv_config/checker.py +++ b/riscv_config/checker.py @@ -2061,21 +2061,21 @@ def check_csr_specs(ispec=None, customspec=None, dspec=None, pspec=None, work_di hart_ids = [] for entry in ispec_dict['hart_ids']: hart_ids.append(entry) - merged[entry] = {} - merged[entry].update(ispec_dict['hart'+str(entry)]) + merged[f'hart{entry}'] = {} + merged[f'hart{entry}'].update(ispec_dict['hart'+str(entry)]) if custom_file is not None: - merged[entry].update(customspec_dict['hart'+str(entry)]) + merged[f'hart{entry}'].update(customspec_dict['hart'+str(entry)]) if debug_file is not None: - merged[entry].update(dspec_dict['hart'+str(entry)]) + merged[f'hart{entry}'].update(dspec_dict['hart'+str(entry)]) try: - uarch_signals = merged[entry]['uarch_signals'] + uarch_signals = merged[f'hart{entry}']['uarch_signals'] except KeyError as e: - logger.info("No uarch signals found for hart"+str(entry)) + logger.info(f"No uarch signals found for hart:{entry}") uarch_signals = {} - + for entry in hart_ids: - csr_db = merged[entry] + csr_db = merged[f'hart{entry}'] if logging: logger.info(f"Initiating WARL legality checks for hart:{entry}.") errors = check_warl_legality(csr_db, logging) From 56aca248508e7f386f83d0a93799b8bb21c861f5 Mon Sep 17 00:00:00 2001 From: incorebot Date: Thu, 30 Nov 2023 21:46:40 +0530 Subject: [PATCH 14/18] update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43e9d86..72ebf47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [3.15.0] - 2024-01-01 - Added function that returns the march and mabi for gcc from a given ISA + +## [3.14.4] - 2023-11-20 + - use the "hartX" naming for the merged dict + - improve logging statements + - update the "fields" node of each csr in the normalized custom yaml + ## [3.14.3] - 2023-12-01 - Add support for Zimop extension From 112c93b332388b23da732a72ee6f47f551a5c358 Mon Sep 17 00:00:00 2001 From: Neel Gala Date: Wed, 27 Dec 2023 09:43:02 +0530 Subject: [PATCH 15/18] remove logger statement to reduce size of logs --- riscv_config/warl.py | 1 - 1 file changed, 1 deletion(-) diff --git a/riscv_config/warl.py b/riscv_config/warl.py index 2811a16..5ff9e2e 100644 --- a/riscv_config/warl.py +++ b/riscv_config/warl.py @@ -63,7 +63,6 @@ def __init__(self, node, csrname, f_msb, f_lsb, spec=None): else: self.uarch_signals = {} except KeyError: - logger.info(f'No uarch_signals found in spec.') self.uarch_signals = {} self.csrname = csrname if spec is not None: From 2f6509d82eefb4d6acd094385ba00d921e89d02f Mon Sep 17 00:00:00 2001 From: Neel Gala Date: Mon, 1 Jan 2024 08:08:24 +0530 Subject: [PATCH 16/18] fix logger --- riscv_config/checker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/riscv_config/checker.py b/riscv_config/checker.py index 34bff9d..059f023 100644 --- a/riscv_config/checker.py +++ b/riscv_config/checker.py @@ -1923,7 +1923,7 @@ def check_custom_specs(custom_spec, valid = validator.validate(inp_yaml) if valid: if logging: - logger.info('CustomCheck: No errors for Hart:{x}') + logger.info(f'CustomCheck: No errors for Hart:{x}') else: error_list = validator.errors raise ValidationError("CustomCheck: Error in " + foo + ".", error_list) From f7149ae9c3648b917c58d46cebed5564bc4f24c3 Mon Sep 17 00:00:00 2001 From: Neel Gala Date: Wed, 3 Jan 2024 18:06:01 +0530 Subject: [PATCH 17/18] update changelog entry --- CHANGELOG.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72ebf47..76569e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,15 +2,14 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [3.15.0] - 2024-01-01 - - Added function that returns the march and mabi for gcc from a given ISA - -## [3.14.4] - 2023-11-20 +## [3.16.0] - 2024-01-03 - use the "hartX" naming for the merged dict - improve logging statements - update the "fields" node of each csr in the normalized custom yaml - +## [3.15.0] - 2024-01-01 + - Added function that returns the march and mabi for gcc from a given ISA + ## [3.14.3] - 2023-12-01 - Add support for Zimop extension From 6c4a0ddb83313b2e930d488ad0cc7e3a65027bcc Mon Sep 17 00:00:00 2001 From: Neel Gala Date: Wed, 3 Jan 2024 18:07:35 +0530 Subject: [PATCH 18/18] =?UTF-8?q?Bump=20version:=203.15.0=20=E2=86=92=203.?= =?UTF-8?q?16.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- riscv_config/__init__.py | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/riscv_config/__init__.py b/riscv_config/__init__.py index b9924a8..dfbbd6a 100644 --- a/riscv_config/__init__.py +++ b/riscv_config/__init__.py @@ -1,4 +1,4 @@ from pkgutil import extend_path __path__ = extend_path(__path__, __name__) -__version__ = '3.15.0' +__version__ = '3.16.0' diff --git a/setup.cfg b/setup.cfg index 3cb111e..24483d1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 3.15.0 +current_version = 3.16.0 commit = True tag = True