X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fsoc%2Fdecoder%2Fpower_enums.py;h=79805527b980a6e43d4ec34f98768bd1a6d7fd89;hb=aeeb3eea30c13aec160a733caa6d5bdf9fcc6c77;hp=d1cad1211c556416321be0967cc6a6333f1eef9a;hpb=cb6afb3a2d7fada2f5756e762c1d016e8ce859ec;p=soc.git diff --git a/src/soc/decoder/power_enums.py b/src/soc/decoder/power_enums.py index d1cad121..79805527 100644 --- a/src/soc/decoder/power_enums.py +++ b/src/soc/decoder/power_enums.py @@ -1,24 +1,22 @@ from enum import Enum, unique import csv import os -import requests - - -def download_wiki_file(name, name_on_wiki=None): - if name_on_wiki is None: - name_on_wiki = name - file_dir = os.path.dirname(os.path.realpath(__file__)) - file_path = os.path.join(file_dir, name) - if not os.path.isfile(file_path): - url = 'https://libre-riscv.org/openpower/isatables/' + name_on_wiki - r = requests.get(url, allow_redirects=True) - with open(file_path, 'w') as outfile: - outfile.write(r.content.decode("utf-8")) +from os.path import dirname, join +from collections import namedtuple + +def find_wiki_file(name): + filedir = os.path.dirname(os.path.abspath(__file__)) + basedir = dirname(dirname(dirname(filedir))) + tabledir = join(basedir, 'libreriscv') + tabledir = join(tabledir, 'openpower') + tabledir = join(tabledir, 'isatables') + + file_path = join(tabledir, name) return file_path def get_csv(name): - file_path = download_wiki_file(name) + file_path = find_wiki_file(name) with open(file_path, 'r') as csvfile: reader = csv.DictReader(csvfile) return list(reader) @@ -223,5 +221,6 @@ class CryIn(Enum): # http://bugs.libre-riscv.org/show_bug.cgi?id=261 spr_csv = get_csv("sprs.csv") +spr_info = namedtuple('spr_info', 'SPR priv_mtspr priv_mfspr len') fields = [(row['SPR'], int(row['Idx'])) for row in spr_csv] SPR = Enum('SPR', fields)