{"id":7,"date":"2023-03-28T12:16:08","date_gmt":"2023-03-28T12:16:08","guid":{"rendered":"https:\/\/jasa.wiki\/?page_id=7"},"modified":"2023-03-28T12:18:10","modified_gmt":"2023-03-28T12:18:10","slug":"7-2","status":"publish","type":"page","link":"https:\/\/jasa.wiki\/","title":{"rendered":"JASA"},"content":{"rendered":"\n\n\n\n<title>RISC-V Linux in LiteX\/Rocket on FPGA Arty A7-100T<\/title>\n<meta http-equiv=\"Content-type\" content=\"text\/html;charset=UTF-8\">\n\n<style>\n\n\n \n\n\/* https:\/\/github.com\/microsoft\/vscode\/blob\/master\/extensions\/markdown-language-features\/media\/markdown.css *\/\n\/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*\/\n\nbody {\n\tfont-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"Ubuntu\", \"Droid Sans\", sans-serif);\n\tfont-size: var(--vscode-markdown-font-size, 14px);\n\tpadding: 0 26px;\n\tline-height: var(--vscode-markdown-line-height, 22px);\n\tword-wrap: break-word;\n}\n\n\n#code-csp-warning {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tcolor: white;\n\tmargin: 16px;\n\ttext-align: center;\n\tfont-size: 12px;\n\tfont-family: sans-serif;\n\tbackground-color:#444444;\n\tcursor: pointer;\n\tpadding: 6px;\n\tbox-shadow: 1px 1px 1px rgba(0,0,0,.25);\n}\n\n#code-csp-warning:hover {\n\ttext-decoration: none;\n\tbackground-color:#007acc;\n\tbox-shadow: 2px 2px 2px rgba(0,0,0,.25);\n}\n\nbody.scrollBeyondLastLine {\n\tmargin-bottom: calc(100vh - 22px);\n}\n\nbody.showEditorSelection .code-line {\n\tposition: relative;\n}\n\nbody.showEditorSelection .code-active-line:before,\nbody.showEditorSelection .code-line:hover:before {\n\tcontent: \"\";\n\tdisplay: block;\n\tposition: absolute;\n\ttop: 0;\n\tleft: -12px;\n\theight: 100%;\n}\n\nbody.showEditorSelection li.code-active-line:before,\nbody.showEditorSelection li.code-line:hover:before {\n\tleft: -30px;\n}\n\n.vscode-light.showEditorSelection .code-active-line:before {\n\tborder-left: 3px solid rgba(0, 0, 0, 0.15);\n}\n\n.vscode-light.showEditorSelection .code-line:hover:before {\n\tborder-left: 3px solid rgba(0, 0, 0, 0.40);\n}\n\n.vscode-light.showEditorSelection .code-line .code-line:hover:before {\n\tborder-left: none;\n}\n\n.vscode-dark.showEditorSelection .code-active-line:before {\n\tborder-left: 3px solid rgba(255, 255, 255, 0.4);\n}\n\n.vscode-dark.showEditorSelection .code-line:hover:before {\n\tborder-left: 3px solid rgba(255, 255, 255, 0.60);\n}\n\n.vscode-dark.showEditorSelection .code-line .code-line:hover:before {\n\tborder-left: none;\n}\n\n.vscode-high-contrast.showEditorSelection .code-active-line:before {\n\tborder-left: 3px solid rgba(255, 160, 0, 0.7);\n}\n\n.vscode-high-contrast.showEditorSelection .code-line:hover:before {\n\tborder-left: 3px solid rgba(255, 160, 0, 1);\n}\n\n.vscode-high-contrast.showEditorSelection .code-line .code-line:hover:before {\n\tborder-left: none;\n}\n\n.my_header {\n  padding: 10px;\n  text-align: center;\n  background: #0b2ba0;\n  color: #0b2ba0;\n}\n\nimg {\n\tmax-width: 100%;\n\tmax-height: 100%;\n}\n\na {\n\ttext-decoration: none;\n}\n\na:hover {\n\ttext-decoration: underline;\n}\n\na:focus,\ninput:focus,\nselect:focus,\ntextarea:focus {\n\toutline: 1px solid -webkit-focus-ring-color;\n\toutline-offset: -1px;\n}\n\nhr {\n\tborder: 0;\n\theight: 2px;\n\tborder-bottom: 2px solid;\n}\n\nh1 {\n\t\/*padding-bottom: 0.3em;*\/\n\tline-height: 1.2;\n\tborder-bottom-width: 1px;\n\t\/*border-bottom-style: solid;*\/\n}\n\nh1, h2, h3 {\n\tfont-weight: normal;\n}\n\ntable {\n\tborder-collapse: collapse;\n}\n\ntable > thead > tr > th {\n\ttext-align: left;\n\tborder-bottom: 1px solid;\n}\n\ntable > thead > tr > th,\ntable > thead > tr > td,\ntable > tbody > tr > th,\ntable > tbody > tr > td {\n\tpadding: 5px 10px;\n}\n\ntable > tbody > tr + tr > td {\n\tborder-top: 1px solid;\n}\n\nblockquote {\n\tmargin: 0 7px 0 5px;\n\tpadding: 0 16px 0 10px;\n\tborder-left-width: 5px;\n\tborder-left-style: solid;\n}\n\ncode {\n\tfont-family: Menlo, Monaco, Consolas, \"Droid Sans Mono\", \"Courier New\", monospace, \"Droid Sans Fallback\";\n\tfont-size: 1em;\n\tline-height: 1.357em;\n}\n\nbody.wordWrap pre {\n\twhite-space: pre-wrap;\n}\n\npre:not(.hljs),\npre.hljs code > div {\n\tpadding: 16px;\n\tborder-radius: 3px;\n\toverflow: auto;\n}\n\npre code {\n\tcolor: var(--vscode-editor-foreground);\n\ttab-size: 4;\n}\n\n\/** Theming *\/\n\n.vscode-light pre {\n\tbackground-color: rgba(220, 220, 220, 0.4);\n}\n\n.vscode-dark pre {\n\tbackground-color: rgba(10, 10, 10, 0.4);\n}\n\n.vscode-high-contrast pre {\n\tbackground-color: rgb(0, 0, 0);\n}\n\n.vscode-high-contrast h1 {\n\tborder-color: rgb(0, 0, 0);\n}\n\n.vscode-light table > thead > tr > th {\n\tborder-color: rgba(0, 0, 0, 0.69);\n}\n\n.vscode-dark table > thead > tr > th {\n\tborder-color: rgba(255, 255, 255, 0.69);\n}\n\n.vscode-light h1,\n.vscode-light hr,\n.vscode-light table > tbody > tr + tr > td {\n\tborder-color: rgba(0, 0, 0, 0.18);\n}\n\n.vscode-dark h1,\n.vscode-dark hr,\n.vscode-dark table > tbody > tr + tr > td {\n\tborder-color: rgba(255, 255, 255, 0.18);\n}\n\n<\/style>\n\n<style>\n\/* Tomorrow Theme *\/\n\/* http:\/\/jmblog.github.com\/color-themes-for-google-code-highlightjs *\/\n\/* Original theme - https:\/\/github.com\/chriskempson\/tomorrow-theme *\/\n\n\/* Tomorrow Comment *\/\n.hljs-comment,\n.hljs-quote {\n\tcolor: #8e908c;\n}\n\n\/* Tomorrow Red *\/\n.hljs-variable,\n.hljs-template-variable,\n.hljs-tag,\n.hljs-name,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-regexp,\n.hljs-deletion {\n\tcolor: #c82829;\n}\n\n\/* Tomorrow Orange *\/\n.hljs-number,\n.hljs-built_in,\n.hljs-builtin-name,\n.hljs-literal,\n.hljs-type,\n.hljs-params,\n.hljs-meta,\n.hljs-link {\n\tcolor: #f5871f;\n}\n\n\/* Tomorrow Yellow *\/\n.hljs-attribute {\n\tcolor: #eab700;\n}\n\n\/* Tomorrow Green *\/\n.hljs-string,\n.hljs-symbol,\n.hljs-bullet,\n.hljs-addition {\n\tcolor: #718c00;\n}\n\n\/* Tomorrow Blue *\/\n.hljs-title,\n.hljs-section {\n\tcolor: #4271ae;\n}\n\n\/* Tomorrow Purple *\/\n.hljs-keyword,\n.hljs-selector-tag {\n\tcolor: #8959a8;\n}\n\n.hljs {\n\tdisplay: block;\n\toverflow-x: auto;\n\tcolor: #4d4d4c;\n\tpadding: 0.5em;\n}\n\n.hljs-emphasis {\n\tfont-style: italic;\n}\n\n.hljs-strong {\n\tfont-weight: bold;\n}\n<\/style>\n\n<style>\n\/*\n * Markdown PDF CSS\n *\/\n\n body {\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"Ubuntu\", \"Droid Sans\", sans-serif, \"Meiryo\";\n\tpadding: 0 0px;\n}\n\npre {\n\tbackground-color: #f8f8f8;\n\tborder: 1px solid #cccccc;\n\tborder-radius: 3px;\n\toverflow-x: auto;\n\twhite-space: pre-wrap;\n\toverflow-wrap: break-word;\n}\n\npre:not(.hljs) {\n\tpadding: 23px;\n\tline-height: 19px;\n}\n\nblockquote {\n\tbackground: rgba(127, 127, 127, 0.1);\n\tborder-color: rgba(0, 122, 204, 0.5);\n}\n\n\n\ncode {\n\tfont-size: 14px;\n\tline-height: 19px;\n}\n\n\/* for inline code *\/\n:not(pre):not(.hljs) > code {\n\tcolor: #C9AE75; \/* Change the old color so it seems less like an error *\/\n\tfont-size: inherit;\n}\n\n\/* Page Break : use <div class=\"page\"\/> to insert page break\n-------------------------------------------------------- *\/\n.page {\n\tpage-break-after: always;\n}\n\n<\/style>\n\n<script src=\"https:\/\/unpkg.com\/mermaid\/dist\/mermaid.min.js\"><\/script>\n\n\n<link rel=\"dns-prefetch\" href=\"\/\/code.jquery.com\">\n<link rel=\"dns-prefetch\" href=\"\/\/s.w.org\">\n<link rel=\"stylesheet\" id=\"wp-block-library-css\" href=\"https:\/\/www.jasa.or.jp\/wp-includes\/css\/dist\/block-library\/style.min.css?ver=5.8.6\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"contact-form-7-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/plugins\/contact-form-7\/includes\/css\/styles.css?ver=5.1.9\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"wp-pagenavi-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/plugins\/wp-pagenavi\/pagenavi-css.css?ver=2.70\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"app-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/app.css?ver=20210512\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"slick-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/slick-1.8.1\/slick\/slick.css?ver=5.8.6\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"navigation-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/NAVX\/css\/navigation.min.css?ver=5.8.6\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"navigation-custom-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/NAVX\/css\/navigation-custom.css?ver=5.8.6\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"style-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/style.css?ver=5.8.6\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"simcal-qtip-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/plugins\/google-calendar-events\/assets\/css\/vendor\/jquery.qtip.min.css?ver=3.1.22\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"simcal-default-calendar-grid-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/plugins\/google-calendar-events\/assets\/css\/default-calendar-grid.min.css?ver=3.1.22\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"simcal-default-calendar-list-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/plugins\/google-calendar-events\/assets\/css\/default-calendar-list.min.css?ver=3.1.22\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"fullcalendar-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/plugins\/simple-calendar-fullcalendar\/assets\/css\/vendor\/fullcalendar.min.css?ver=3.1.22\" type=\"text\/css\" media=\"all\">\n<link rel=\"stylesheet\" id=\"simcal-fullcal-grid-css\" href=\"https:\/\/www.jasa.or.jp\/wp-content\/plugins\/simple-calendar-fullcalendar\/assets\/css\/fullcalendar-grid.min.css?ver=3.1.22\" type=\"text\/css\" media=\"all\">\n<script type=\"text\/javascript\" src=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/app.js?ver=5.8.6\" id=\"app-js\"><\/script>\n<script type=\"text\/javascript\" src=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/NAVX\/js\/navigation.js?ver=5.8.6\" id=\"navigation-js\"><\/script>\n<script type=\"text\/javascript\" src=\"https:\/\/code.jquery.com\/jquery-migrate-3.0.0.min.js?ver=5.8.6\" id=\"jquery-migrate-3.0.0-js\"><\/script>\n<link rel=\"https:\/\/api.w.org\/\" href=\"https:\/\/www.jasa.or.jp\/wp-json\/\"><link rel=\"alternate\" type=\"application\/json\" href=\"https:\/\/www.jasa.or.jp\/wp-json\/wp\/v2\/pages\/4796\"><link rel=\"EditURI\" type=\"application\/rsd+xml\" title=\"RSD\" href=\"https:\/\/www.jasa.or.jp\/xmlrpc.php?rsd\">\n<link rel=\"wlwmanifest\" type=\"application\/wlwmanifest+xml\" href=\"https:\/\/www.jasa.or.jp\/wp-includes\/wlwmanifest.xml\"> \n<meta name=\"generator\" content=\"WordPress 5.8.6\">\n<link rel=\"shortlink\" href=\"https:\/\/www.jasa.or.jp\/?p=4796\">\n<link rel=\"alternate\" type=\"application\/json+oembed\" href=\"https:\/\/www.jasa.or.jp\/wp-json\/oembed\/1.0\/embed?url=https%3A%2F%2Fwww.jasa.or.jp%2Ftech%2Frisc-vwg%2F\">\n<link rel=\"alternate\" type=\"text\/xml+oembed\" href=\"https:\/\/www.jasa.or.jp\/wp-json\/oembed\/1.0\/embed?url=https%3A%2F%2Fwww.jasa.or.jp%2Ftech%2Frisc-vwg%2F&amp;format=xml\">\n<!-- Global site tag (gtag.js) - Google Analytics -->\n<script async=\"\" src=\"https:\/\/www.googletagmanager.com\/gtag\/js?id=G-0FGXTWC9BN\"><\/script>\n\n<script>\n  window.dataLayer = window.dataLayer || [];\n  function gtag(){dataLayer.push(arguments);}\n  gtag('js', new Date());\n\n  gtag('config', 'G-0FGXTWC9BN');\n<\/script>\n\n\n\n\n\n  <script>\n    mermaid.initialize({\n      startOnLoad: true,\n      theme: document.body.classList.contains('vscode-dark') || document.body.classList.contains('vscode-high-contrast')\n          ? 'dark'\n          : 'default'\n    });\n  <\/script>\n\n<div class=\"p-1 bg-navy\"><\/div>\n\n<div class=\"container d-none d-lg-flex justify-content-between mt-2 mb-1\">\n    <h1 class=\"mb-0\">\n      <a href=\"https:\/\/www.jasa.or.jp\">\n        <img decoding=\"async\" class=\"logo\" src=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/img\/logo.png\" alt=\"JASA \u4e00\u822c\u793e\u56e3\u6cd5\u4eba \u7d44\u8fbc\u307f\u30b7\u30b9\u30c6\u30e0\u6280\u8853\u5354\u4f1a\">\n      <\/a>\n    <\/h1>\n    <div class=\"d-flex flex-wrap align-content-between\">\n      <div class=\"w-100 text-right text-secondary\">\n        <ul>\n          <li class=\"d-inline\">|<\/li>\n          <li class=\"d-inline\"><a href=\"https:\/\/www.jasa.or.jp\/data\/english\/\"><small>English<\/small><\/a><\/li>\n          <li class=\"d-inline\">|<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"w-100 text-right\">\n        <a href=\"https:\/\/www.jasa.or.jp\/inf\/access_map\/\">\n          <img decoding=\"async\" class=\"h-25px align-top\" src=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/img\/icon\/icon_map.png\">\n          <span class=\"display-4\"><strong>\u30a2\u30af\u30bb\u30b9<\/strong><\/span>\n        <\/a>\n        <a href=\"https:\/\/www.jasa.or.jp\/data\/\" class=\"ml-2\">\n          <img decoding=\"async\" class=\"h-25px align-top\" src=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/img\/icon\/icon_mail.png\">\n          <span class=\"display-4\"><strong>\u304a\u554f\u3044\u5408\u308f\u305b<\/strong><\/span>\n        <\/a>\n        <a href=\"https:\/\/www.jasa.or.jp\/inf\/application\/\" class=\"ml-2\">\n          <img decoding=\"async\" class=\"h-25px align-top\" src=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/img\/icon\/icon_join.svg\">\n          <span class=\"display-4\"><strong>\u5165\u4f1a\u6848\u5185<\/strong><\/span>\n        <\/a>\n        <a href=\"https:\/\/www.jasa.or.jp\/member_only\/\" class=\"ml-2\">\n          <img decoding=\"async\" class=\"h-25px align-top\" src=\"https:\/\/www.jasa.or.jp\/wp-content\/themes\/jasa\/dist\/img\/icon\/icon_member.svg\">\n          <span class=\"display-4\"><strong>\u4f1a\u54e1\u5411\u3051\u60c5\u5831<\/strong><\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n\n\n<div class=\"p-1 bg-navy\"><\/div>\n\n<div class=\"d-none d-sm-block pt-2 pb-3\"><\/div>\n\n<br>\n<br>\n<h1 align=\"center\">RISC-V Linux in LiteX\/Rocket on FPGA Arty A7-100T<\/h1>\n<br>\n<br>\n\n<div class=\"row justify-content-center\">\n    <!-- \u53f3\u30ab\u30e9\u30e0 -->\n    <div class=\"col-12 col-lg-9\">\n                      <div class=\"row\">\n          <div class=\"col-12 mb-3\">\n        <\/div><!-- \/.row -->\n\n        <div class=\"row\">\n          <div class=\"col-12 mainarticle\">\n            \n\n\n\n\n\n\n<h1 id=\"1-overview\">1. \u6982\u8981<\/h1>\n<p>Github\u306b\u3042\u308b64bit\u306eRocketChip CPU\u3092\u642d\u8f09\u3057\u305fLinux on LiteX\u3092\u30d9\u30fc\u30b9\u306b\u3001Xilinx\u793e\u306eFPGA\u30dc\u30fc\u30c9Arty A7-100T\u306bliteX\u3068RocketChip\u3092\u4f7f\u3063\u305fSoC\u3092\u4f5c\u308a\u300164bit Linux\u3092\u52d5\u4f5c\u3055\u305b\u307e\u3059\u3002<\/p>\n<h2 id=\"11-environment\">1.1. \u52d5\u4f5c\u74b0\u5883<\/h2>\n<ul>\n<li>OS\u306fUbuntu 20.04.5\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n<li>FPGA\u30dc\u30fc\u30c9\u306f\u3001Xilinx\u793e\u88fdArty A7-100T\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n<li>Micro SD\u30ab\u30fc\u30c9\u3068PMOD Micro SD\u30ab\u30fc\u30c9\u30ea\u30fc\u30c0\u30fc410-380\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<h2 id=\"12-procedure\">1.2. \u624b\u7d9a\u304d\u65b9\u6cd5<\/h2>\n<ul>\n<li>Step 1: <a href=\"#2-hardware-connection\">\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u3092\u63a5\u7d9a\u3057\u307e\u3059<\/a>.<\/li>\n<li>Step 2: <a href=\"#3-install-prerequisites\">\u524d\u63d0\u6761\u4ef6\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/a><\/li>\n<li>Step 3: <a href=\"#4-build-gateware\">\u30b2\u30fc\u30c8\u30a6\u30a7\u30a2\uff08Gateware\uff09\u306e\u69cb\u7bc9<\/a><\/li>\n<li>Step 4: <a href=\"#5-build-software\">\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u69cb\u7bc9<\/a><\/li>\n<li>Step 5: <a href=\"#6-starting-linux-on-litexrocket\">Litex+Rocket\u3067\u306eLinux\u306e\u8d77\u52d5<\/a><\/li>\n<\/ul>\n<h1 id=\"2-hardware-connection\">2. \u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u306e\u63a5\u7d9a<\/h1>\n<ul>\n<li>PmodMicroSD \u30e2\u30b8\u30e5\u30fc\u30eb\u3092 Arty A7-100T \u306e PMOD \u30b3\u30cd\u30af\u30bf <code>JD<\/code>  \u306b\u633f\u5165\u3057\u307e\u3059\u3002VCC\u3068GND\u30d4\u30f3\u304c\u6b63\u3057\u304f\u63a5\u7d9a\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/li>\n<li>Arty A7-100T (J9)\u3092LAN\u30b1\u30fc\u30d6\u30eb\u3067\u30b9\u30a4\u30c3\u30c1\/\u30eb\u30fc\u30bf\u30fc\uff08Switch\/Router\uff09\u306b\u63a5\u7d9a\u3057\u307e\u3059\u3002<\/li>\n<li>Arty A7-100T (J10) \u3092 MicroUSB \u30b1\u30fc\u30d6\u30eb\u3067 PC \u306b\u63a5\u7d9a\u3057\u307e\u3059 (\u96fb\u6e90\u3001\u30b3\u30f3\u30bd\u30fc\u30eb\u3001\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0) \u3002<\/li>\n<\/ul>\n<p align=\"left\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2144\" src=\"http:\/\/www.swhwc.info\/wp-content\/uploads\/2023\/03\/system.png\" alt=\"\" width=\"800\"><\/p>\n<p align=\"left\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2144\" src=\"http:\/\/www.swhwc.info\/wp-content\/uploads\/2023\/03\/system2.jpg\" alt=\"\" width=\"800\"><\/p>\n<h1 id=\"3-install-prerequisites\">3. \u524d\u63d0\u6761\u4ef6\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h1>\n<h2 id=\"31-install-support-packages\">3.1. \u30b5\u30dd\u30fc\u30c8\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<pre class=\"hljs\"><code><div>$ sudo apt update\n$ sudo apt upgrade\n$ sudo apt install openocd fakeroot verilator python3 meson gtkterm gawk texinfo git python3-pip bison device-tree-compiler autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev build-essential flex gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build\n<\/div><\/code><\/pre>\n<h2 id=\"32-install-the-litex-development-environment\">3.2. LiteX\u958b\u767a\u74b0\u5883\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\n$ mkdir litex\n$ <span class=\"hljs-built_in\">cd<\/span> litex\n$ wget https:\/\/raw.githubusercontent.com\/enjoy-digital\/litex\/master\/litex_setup.py\n$ chmod 777 litex_setup.py\n$ python3 .\/litex_setup.py --config=full --init --install --user\n<\/div><\/code><\/pre>\n<p>PATH\u306b\u8ffd\u52a0\u3059\u308b<\/p>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">echo<\/span> <span class=\"hljs-string\">'export PATH=$PATH:~\/.local\/bin'<\/span> &gt;&gt; ~\/.bashrc\n<\/div><\/code><\/pre>\n<h2 id=\"33installation-of-cross-compiler-toolchain-for-64bit-risc-v\">3.3. 64\u30d3\u30c3\u30c8RISC-V\u7528\u30af\u30ed\u30b9\u30b3\u30f3\u30d1\u30a4\u30e9\u30fb\u30c4\u30fc\u30eb\u30c1\u30a7\u30fc\u30f3\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\n$ git <span class=\"hljs-built_in\">clone<\/span> --recursive https:\/\/github.com\/riscv\/riscv-gnu-toolchain\n$ <span class=\"hljs-built_in\">pushd<\/span> riscv-gnu-toolchain\n$ .\/configure --prefix=<span class=\"hljs-variable\">$HOME<\/span>\/RISCV --<span class=\"hljs-built_in\">enable<\/span>-multilib\n$ make newlib linux -j8\n$ <span class=\"hljs-built_in\">popd<\/span>\n<\/div><\/code><\/pre>\n<p>PATH\u306b\u8ffd\u52a0\u3059\u308b<\/p>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">export<\/span> PATH=<span class=\"hljs-variable\">$PATH<\/span>:<span class=\"hljs-variable\">$HOME<\/span>\/RISCV\/bin\n$ <span class=\"hljs-built_in\">echo<\/span> <span class=\"hljs-string\">'export PATH=$PATH:$HOME\/RISCV\/bin'<\/span> &gt;&gt; ~\/.bashrc\n<\/div><\/code><\/pre>\n<h2 id=\"34-install-vivado\">3.4. Vivado\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>\u30b5\u30dd\u30fc\u30c8\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n<pre class=\"hljs\"><code><div>$ sudo apt install libtinfo-dev\n$ sudo ln -s \/lib\/x86_64-linux-gnu\/libtinfo.so.6 \/lib\/x86_64-linux-gnu\/libtinfo.so.5\n<\/div><\/code><\/pre>\n<p>\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9 <a href=\"https:\/\/www.xilinx.com\/member\/forms\/download\/xef.html?filename=Xilinx_Unified_2022.2_1014_8888_Lin64.bin\">Xilinx_Unified_2022.2_1014_8888_Lin64.bin<\/a>,  \u305d\u3057\u3066\u5b9f\u884c\u3057\u307e\u3059:<\/p>\n<pre class=\"hljs\"><code><div>$ sudo chmod +x .\/Xilinx_Unified_2022.2_1014_8888_Lin64.bin\n$ .\/Xilinx_Unified_2022.2_1014_8888_Lin64.bin\n<\/div><\/code><\/pre>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u3067Vivado\u3092 <code>\/tools<\/code> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<p align=\"left\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2144\" src=\"http:\/\/www.swhwc.info\/wp-content\/uploads\/2023\/03\/vivado.png\" alt=\"\" width=\"800\"><\/p>\n<p>PATH\u306bVivado\u3092\u8ffd\u52a0\u3059\u308b<\/p>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">echo<\/span> <span class=\"hljs-string\">'export PATH=$PATH:\/tools\/Xilinx\/Vivado\/2022.2\/bin'<\/span> &gt;&gt; ~\/.bashrc\n<\/div><\/code><\/pre>\n<h1 id=\"4-build-gateware\">4. \u30b2\u30fc\u30c8\u30a6\u30a7\u30a2\uff08Gateware\uff09\u306e\u69cb\u7bc9<\/h1>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\n$ litex-boards\/litex_boards\/targets\/digilent_arty.py --build --cpu-type rocket --cpu-variant linuxd --sys-clk-freq 50e6 --with-ethernet --with-sdcard --variant=a7-100\n<\/div><\/code><\/pre>\n<p>\u30d3\u30eb\u30c9\u3067\u306f\u3001\u30d3\u30c3\u30c8\u30b9\u30c8\u30ea\u30fc\u30e0\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059:<\/p>\n<pre class=\"hljs\"><code><div>$HOME\/litex\/build\/digilent_arty\/gateware\/digilent_arty.bit\n<\/div><\/code><\/pre>\n<p>\u30dc\u30fc\u30c9\u304c\u30d7\u30ed\u30b0\u30e9\u30e0\u3055\u308c\u308b\u305f\u3073\u306b (&#8211;load \u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u4e0e\u3048\u3089\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u30d3\u30eb\u30c0\u30fc\u304b\u3089\u76f4\u63a5\u3001\u307e\u305f\u306f openocd \u3092\u4f7f\u3063\u3066\u76f4\u63a5\u306b)\u3001\u305d\u3057\u3066\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3055\u308c\u305f\u30dc\u30fc\u30c9\u304c\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u308b\u305f\u3073\u306b\u3001\u30d3\u30c3\u30c8\u30b9\u30c8\u30ea\u30fc\u30e0\u306b\u542b\u307e\u308c\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30d5\u30a1\u30fc\u30e0\u30a6\u30a7\u30a2 \/ bare-metal firmware (BIOS) \u306f CPU\u3001RAM\u3001\u5468\u8fba\u6a5f\u5668\u3092\u521d\u671f\u5316\u3057\u3001<code>boot.bin<\/code> \u3092\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3057\u307e\u3059\u3002 \u6700\u521d\u306fmicroSD\u30ab\u30fc\u30c9\uff08msdos\/fat\u3068\u3057\u3066\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3055\u308c\u308b\u6700\u521d\u306e\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\uff09\u304b\u3089\u3001\u6b21\u306b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u7d4c\u7531\u306eTFTP\uff08192.168.1.0\/24\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u60f3\u5b9a\u3001LiteX+Rocket\u30b7\u30b9\u30c6\u30e0\u306fIP\u30a2\u30c9\u30ec\u30b9192.168.1.50\u3092\u4f7f\u3063\u3066\u304a\u308a\u3001TFTP\u7d4c\u7531\u3067192.168.1.100\u306e\u30b5\u30fc\u30d0\u30fc\uff09\u304b\u3089<code>boot.bin<\/code>\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3057\u307e\u3059\u3002<\/p>\n<p><strong>\u6ce8\u610f\u4e8b\u9805<\/strong><br>\n\u307e\u305f\u3001microSD\u30ab\u30fc\u30c9\u304b\u3089LiteX\u306e\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u3092\u30ed\u30fc\u30c9\u3067\u304d\u308b\u30b2\u30fc\u30c8\u30a6\u30a7\u30a2\u3092\u69cb\u7bc9\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3057\u305f\uff08\u30cd\u30c3\u30c8\u30d6\u30fc\u30c8\uff08netboot\uff09\u306f\u4e0d\u53ef\uff09:<\/p>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\n$ litex-boards\/litex_boards\/targets\/digilent_arty.py --build --cpu-type rocket --cpu-variant linuxd --sys-clk-freq 50e6 --with-sdcard --variant=a7-100\n<\/div><\/code><\/pre>\n<p>\u3042\u308b\u3044\u306f\u3001TFTP server\u304b\u3089\uff08sdcardboot\u306f\u4e0d\u53ef\uff09:<\/p>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\n$ litex-boards\/litex_boards\/targets\/digilent_arty.py --build --cpu-type rocket --cpu-variant linuxd --sys-clk-freq 50e6 --with-ethernet --variant=a7-100\n<\/div><\/code><\/pre>\n<h2 id=\"Build Gateware video\">4.1. \u30d3\u30eb\u30c9\u30b2\u30fc\u30c8\u30a6\u30a7\u30a2\uff08Build Gateware \uff09\u306e\u52d5\u753b<\/h2>\n<iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/JG3IBRdGp6c\" width=\"800\" height=\"420\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe>\n<h1 id=\"5-build-software\">5. \u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u69cb\u7bc9<\/h1>\n<h2 id=\"51-clone-the-linux-on-litex-rocket-repository\">5.1. linux-on-litex-rocket \u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u30af\u30ed\u30fc\u30f3\u3059\u308b<\/h2>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\n$ git <span class=\"hljs-built_in\">clone<\/span> https:\/\/github.com\/litex-hub\/linux-on-litex-rocket\n<\/div><\/code><\/pre>\n<h2 id=\"52-building-a-busybox\">5.2. \u30d3\u30b8\u30fc\u30dc\u30c3\u30af\u30b9\uff08BusyBox\uff09\u306e\u69cb\u7bc9<\/h2>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\/linux-on-litex-rocket\n$ curl https:\/\/busybox.net\/downloads\/busybox-1.33.2.tar.bz2 | tar xfj -\n$ sudo chmod 777 -R busybox-1.33.2\n$ cp conf\/busybox-1.33.2-rv64gc.config busybox-1.33.2\/.config\n$ <span class=\"hljs-built_in\">cd<\/span> busybox-1.33.2\n$ make CROSS_COMPILE=riscv64-unknown-linux-gnu-\n$ <span class=\"hljs-built_in\">cd<\/span> ..\n<\/div><\/code><\/pre>\n<h2 id=\"53-creating-a-kernel-root-ram-filesystem\">5.3. \u30ab\u30fc\u30cd\u30eb\u30eb\u30fc\u30c8RAM\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u306e\u4f5c\u6210 \/ Creating a Kernel Root RAM Filesystem<\/h2>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\/linux-on-litex-rocket\n$ mkdir initramfs\n$ <span class=\"hljs-built_in\">pushd<\/span> initramfs\n$ mkdir -p bin sbin lib etc dev home proc sys tmp mnt nfs root usr\/bin usr\/sbin usr\/lib\n$ cp ..\/busybox-1.33.2\/busybox bin\/\n$ ln -s bin\/busybox .\/init\n$ cat &gt; etc\/inittab &lt;&lt;- <span class=\"hljs-string\">\"EOT\"<\/span>\n::sysinit:\/bin\/busybox mount -t proc proc \/proc\n::sysinit:\/bin\/busybox mount -t devtmpfs devtmpfs \/dev\n::sysinit:\/bin\/busybox mount -t tmpfs tmpfs \/tmp\n::sysinit:\/bin\/busybox mount -t sysfs sysfs \/sys\n::sysinit:\/bin\/busybox --install -s\n\/dev\/console::sysinit:-\/bin\/ash\nEOT\n$ fakeroot &lt;&lt;- <span class=\"hljs-string\">\"EOT\"<\/span>\nfind . | cpio -H newc -o &gt; ..\/initramfs.cpio\nEOT\n$ <span class=\"hljs-built_in\">popd<\/span>\n<\/div><\/code><\/pre>\n<h2 id=\"54-building-the-kernel\">5.4. \u30ab\u30fc\u30cd\u30eb\u306e\u69cb\u7bc9<\/h2>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\/linux-on-litex-rocket\n$ git <span class=\"hljs-built_in\">clone<\/span> https:\/\/github.com\/litex-hub\/linux.git\n$ cp initramfs.cpio linux\/\n$ <span class=\"hljs-built_in\">pushd<\/span> linux\n$ git checkout litex-rebase\n<\/div><\/code><\/pre>\n<p>\u30ab\u30fc\u30cd\u30eb\u30b3\u30f3\u30d5\u30a3\u30b0\u3067CONFIG_RISCV_SBI_V01\u3092\u6709\u52b9\u5316\u3059\u308b\/ Enable CONFIG_RISCV_SBI_V01 in kernel config<\/p>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">echo<\/span> <span class=\"hljs-string\">\"CONFIG_RISCV_SBI_V01=y\"<\/span> &gt;&gt; .\/arch\/riscv\/configs\/litex_rocket_defconfig\n<\/div><\/code><\/pre>\n<p>\u30ab\u30fc\u30cd\u30eb\u3092\u30d3\u30eb\u30c9\u3059\u308b<\/p>\n<pre class=\"hljs\"><code><div>$ make clean\n$ make ARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu- litex_rocket_defconfig litex_rocket_initramfs.config\n$ make ARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu-\n$ <span class=\"hljs-built_in\">popd<\/span>\n<\/div><\/code><\/pre>\n<h2 id=\"55-update-dts-file\">5.5. DTS\u30d5\u30a1\u30a4\u30eb\u306e\u66f4\u65b0<\/h2>\n<p>UART\u306e\u30d9\u30fc\u30b9\u30a2\u30c9\u30ec\u30b9\u3092\u691c\u7d22\u3057\u307e\u3059:<\/p>\n<pre class=\"hljs\"><code><div>$ grep \"CSR_UART_BASE\" \"$HOME\/litex\/build\/digilent_arty\/software\/include\/generated\/csr.h\"\n<\/div><\/code><\/pre>\n<p>\u4f8b\uff09UART\u306e\u30d9\u30fc\u30b9\u30a2\u30c9\u30ec\u30b9\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b<code>0x12006800<\/code>\u3068\u306a\u308a\u307e\u3059\uff08<code>CSR_BASE<\/code> \u306f<code>0x12000000<\/code>\uff09:<\/p>\n<pre class=\"hljs\"><code><div>#define CSR_UART_BASE (CSR_BASE + 0x6800L)\n<\/div><\/code><\/pre>\n<p>DTS\u30d5\u30a1\u30a4\u30eb\u306eUART\u30d9\u30fc\u30b9\u30a2\u30c9\u30ec\u30b9\u3092\u5909\u66f4\u3057\u307e\u3059\uff08\u5fc5\u8981\u306a\u5834\u5408\uff09:<br>\n(DTS\u30d5\u30a1\u30a4\u30eb\u306e\u73fe\u5728\u306eUART\u30d9\u30fc\u30b9\u30fb\u30a2\u30c9\u30ec\u30b9\u306f<code>0x12004000<\/code>\u3067\u3059\u3002<code>0x12006800<\/code>\u306b\u5909\u66f4\u3055\u308c\u307e\u3059)<\/p>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\/linux-on-litex-rocket\n$ sed -i <span class=\"hljs-string\">'s\/12004000\/12006800\/g'<\/span> conf\/arty.dts\n<\/div><\/code><\/pre>\n<p>\u305d\u3046\u3059\u308b\u3068\u3001<code>arty.dts<\/code>\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059:<\/p>\n<pre class=\"hljs\"><code><div>...\n\t\tbootargs = \"console=liteuart earlycon=liteuart,0x12006800 swiotlb=noforce\";\n...\n\t\tliteuart0: serial@0x12006800 {\n\t\t\tcompatible = \"litex,liteuart\";\n\t\t\treg = &lt;0x12006800 0x100&gt;;\n\t\t\tinterrupt-parent = &lt;&amp;L1&gt;;\n\t\t\tinterrupts = &lt;1&gt;;\n\t\t};\n...\n<\/div><\/code><\/pre>\n<p>\u53c2\u8003:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\">Option in building gateware<\/th>\n<th style=\"text-align:center\">UART base address<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">&#8211;with-ethernet<\/td>\n<td style=\"text-align:center\">0x12004000<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:center\">&#8211;with-sdcard<\/td>\n<td style=\"text-align:center\">0x12005800<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:center\">&#8211;with-sdcard &#8211;with-pmod-gpio<\/td>\n<td style=\"text-align:center\">0x12006000<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:center\">&#8211;with-ethernet &#8211;with-sdcard<\/td>\n<td style=\"text-align:center\">0x12006800<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"56-building-a-litex-boot-image\">5.6. LiteX\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u306e\u69cb\u7bc9<\/h2>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\/linux-on-litex-rocket\n$ git <span class=\"hljs-built_in\">clone<\/span> https:\/\/github.com\/riscv\/riscv-pk\n$ mkdir riscv-pk\/build\n$ <span class=\"hljs-built_in\">pushd<\/span> riscv-pk\/build\n$ make clean\n$ rm -f *\n$ ..\/configure --host=riscv64-unknown-linux-gnu \\\n               --with-arch=rv64imac \\\n               --with-payload=..\/..\/linux\/vmlinux \\\n               --with-dts=..\/..\/conf\/arty.dts \\\n               --<span class=\"hljs-built_in\">enable<\/span>-logo\n$ make bbl\n$ riscv64-unknown-linux-gnu-objcopy -O binary bbl ..\/..\/boot.bin\n$ <span class=\"hljs-built_in\">popd<\/span>\n<\/div><\/code><\/pre>\n<p>\u51fa\u529b\u30d5\u30a1\u30a4\u30eb\uff08LiteX\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\uff09:<\/p>\n<pre class=\"hljs\"><code><div>~\/litex\/linux-on-litex-rocket\/boot.bin\n<\/div><\/code><\/pre>\n<h2 id=\"527-build-software-video\">5.7 \u30d3\u30eb\u30c9\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u52d5\u753b<\/h2>\n<iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/uzQms-jPl2Q\" width=\"800\" height=\"420\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe>\n<h1 id=\"6-starting-linux-on-litexrocket\">6. Litex+Rocket\u3067Linux\u3092\u8d77\u52d5\u3059\u308b<\/h1>\n<h2 id=\"61-prepare-the-litex-boot-image\">6.1 LiteX\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u306e\u6e96\u5099<\/h2>\n<h3 id=\"611-option-1-load-the-litex-boot-image-using-microsd-card\">6.1.1. OPTION 1: MicroSD\u30ab\u30fc\u30c9\u3092\u4f7f\u3063\u3066LiteX\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u3092\u30ed\u30fc\u30c9\u3059\u308b<\/h3>\n<ol>\n<li>microSD\u30ab\u30fc\u30c9\u306e\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\uff08\/dev\/sdX\u3092microSD\u30ab\u30fc\u30c9\u3068\u4eee\u5b9a\uff09:<\/li>\n<\/ol>\n<pre class=\"hljs\"><code><div>$ sudo fdisk \/dev\/sdX\n\t: o \/\/ \u65b0\u3057\u3044\u7a7a\u306eDOS\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b \/ Create a new empty DOS partition table\n\t: n \/\/ \u65b0\u3057\u3044\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3059\u308b \/ Create a new partition\n\t\t: p \/\/ \u30d7\u30e9\u30a4\u30de\u30ea\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3059\u308b \/ Create a primary partition\n\t\t: 1 \/\/ \u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u756a\u53f7\u3092\u6307\u5b9a\u3059\u308b \/ Specify partition number \n\t\t: (Enter) \/\/ \u7b2c1\u30bb\u30af\u30bf\u30fc\u3092\u6307\u5b9a\u3059\u308b\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\uff09Specify first sector (default)\n\t\t: +1GiB \/\/ \u6700\u5f8c\u306e\u30bb\u30af\u30bf\u3092\u6307\u5b9a\u3059\u308b \/ Specify last sector\n\t: t \/\/ \u9818\u57df\u306e\u30b7\u30b9\u30c6\u30e0 ID \u3092\u6307\u5b9a\u3059\u308b \/ Specify the system ID of the region\n\t\t: 6 \/\/ \u30b7\u30b9\u30c6\u30e0 ID \u3092 FAT16 \u306b\u8a2d\u5b9a\u3059\u308b \/ Set system ID to FAT16\n\t: p \/\/ \u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u30c6\u30fc\u30d6\u30eb\u3092\u8868\u793a\u3059\u308b \/ Show partition table\n\t: w \/\/ \u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u30c6\u30fc\u30d6\u30eb\u3092\u66f8\u304d\u8fbc\u3080 \/ Write partition table\n<\/div><\/code><\/pre>\n<p>\u5b9f\u884c\u3059\u308b\u3068\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059:<\/p>\n<pre class=\"hljs\"><code><div>$ sudo fdisk \/dev\/sdX\n\nWelcome to fdisk (util-linux 2.35.2).\nChanges will remain in memory only, until you decide to write them.\nBe careful before using the write command.\nCommand (m for help): p\nDisk \/dev\/sdX: 29.74 GiB, 31914983424 bytes, 62333952 sectors\nDisk model: SD\/MMC\nUnits: sectors of 1 * 512 = 512 bytes\nSector size (logical\/physical): 512 bytes \/ 512 bytes\nI\/O size (minimum\/optimal): 512 bytes \/ 512 bytes\nDisklabel type: dos\nDisk identifier: 0x67f480f9\n\nDevice     Boot   Start      End  Sectors  Size Id Type\n\/dev\/sdX1          2048  2099199  2097152    1G  6 FAT16\n...\n<\/div><\/code><\/pre>\n<ol start=\"2\">\n<li>\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u3092\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3057\u3066\u30de\u30a6\u30f3\u30c8\u3057\u3001<code>boot.bin<\/code>\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3059:<\/li>\n<\/ol>\n<pre class=\"hljs\"><code><div>$ cd ~\/litex\/linux-on-litex-rocket\n$ sudo su\n# mkdosfs \/dev\/sdX1\n# mount \/dev\/sdX1 \/mnt\n# cp boot.bin \/mnt\n# umount \/mnt\n# exit\n<\/div><\/code><\/pre>\n<h3 id=\"612-option-2-load-the-litex-boot-image-using-tftp-server\">6.1.2. OPTION 2: TFTP\u30b5\u30fc\u30d0\u30fc\u3092\u4f7f\u7528\u3057\u3066LiteX\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u3092\u30ed\u30fc\u30c9\u3059\u308b<\/h3>\n<p>\u30dc\u30fc\u30c9\u306e\u30a4\u30fc\u30b5\u30cd\u30c3\u30c8\u30dd\u30fc\u30c8\u3092\u30b9\u30a4\u30c3\u30c1\/\u30eb\u30fc\u30bf\u30fc\u30dd\u30fc\u30c8\u306b\u63a5\u7d9a\u3057\u3001TFTP\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u52d5\u4f5c\u3059\u308b\u30de\u30b7\u30f3\u3068\u540c\u3058\u30ec\u30a4\u30e4\u30fc2\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8\u30c9\u30e1\u30a4\u30f3\uff08\u3064\u307e\u308a\u3001\u540c\u3058LAN\u4e0a\uff09\u306b\u914d\u7f6e\u3057\u307e\u3059\u3002TFTP\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b <code>boot.bin<\/code>\u304c\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3001TFTP\u30b5\u30fc\u30d0\uff08systemd\u3092\u4f7f\u3046\u5834\u5408\u306f\u30bd\u30b1\u30c3\u30c8\uff09\u304c\u8d77\u52d5\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059:<\/p>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\/linux-on-litex-rocket\n$ sudo cp boot.bin \/var\/lib\/tftpboot\/\n$ sudo systemctl start tftp.socket\n<\/div><\/code><\/pre>\n<p>\u307e\u305f\u3001TFTP\u30b5\u30fc\u30d0\u30fc\u304cIP\u30a2\u30c9\u30ec\u30b9<code>192.168.1.100<\/code>\u306b\u9001\u3089\u308c\u305f\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u5fdc\u7b54\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<p>microSD\u30b9\u30ed\u30c3\u30c8\u304c\u7a7a\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\uff08\u30cf\u30fc\u30c9\u30b3\u30fc\u30c9\u3055\u308c\u305fBIOS\u306e\u8d77\u52d5\u9806\u3067\u30a4\u30fc\u30b5\u30cd\u30c3\u30c8\u3088\u308a\u512a\u5148\u3055\u308c\u308b\u305f\u3081\uff09\u3002<\/p>\n<h2 id=\"62-connecting-to-the-systems-console\">6.2. \u30b7\u30b9\u30c6\u30e0\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u63a5\u7d9a\u3059\u308b<\/h2>\n<p>\u30b7\u30b9\u30c6\u30e0\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u63a5\u7d9a\u3059\u308b\u306b\u306f\u3001<code>screen<\/code>\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u3092\u4f7f\u7528\u3057\u307e\u3059\uff08\u4ee5\u4e0b\u3001<code>\/dev\/ttyUSB1<\/code>\u304c\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u3068\u4eee\u5b9a\uff09:<\/p>\n<pre class=\"hljs\"><code><div>$ screen \/dev\/ttyUSB1 115200\n<\/div><\/code><\/pre>\n<h2 id=\"63-fpga-programming-and-booting\">6.3. FPGA\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3068\u30d6\u30fc\u30c8<\/h2>\n<p>\u30dc\u30fc\u30c9\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u3059\u308b\uff08<a href=\"#4-build-gateware\">Build Gateware<\/a>\u306b\u5185\u8535\u3055\u308c\u3066\u3044\u308bGateware\u3067\uff09:<\/p>\n<pre class=\"hljs\"><code><div>$ <span class=\"hljs-built_in\">cd<\/span> ~\/litex\n$ litex-boards\/litex_boards\/targets\/digilent_arty.py --load\n<\/div><\/code><\/pre>\n<p>microSD\u30ab\u30fc\u30c9\u307e\u305f\u306fTFTP\u3067 <code>boot.bin<\/code>\u3092\u30b3\u30d4\u30fc\u3057\u3001\u30b3\u30f3\u30bd\u30fc\u30eb\u3067BBL\u3001Linux\u3001BusyBox\u306e\u30b7\u30a7\u30eb\u306e\u9806\u3067\u8d77\u52d5\u3059\u308b\u4e88\u5b9a\u3067\u3059\u3002<\/p>\n<h3 id=\"631-sd-card\">6.3.1. SD Card:<\/h3>\n<p align=\"left\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2144\" src=\"http:\/\/www.swhwc.info\/wp-content\/uploads\/2023\/03\/bootup_6800.gif\" alt=\"\" width=\"800\"><\/p>\n<pre class=\"hljs\"><code><div>\n[1m        __   _ __      _  __[0m\n[1m       \/ \/  (_) \/____ | |\/_\/[0m\n[1m      \/ \/__\/ \/ __\/ -_)&gt;  &lt;[0m\n[1m     \/____\/_\/\\__\/\\__\/_\/|_|[0m\n[1m   Build your hardware, easily![0m\n\n (c) Copyright 2012-2022 Enjoy-Digital\n (c) Copyright 2007-2015 M-Labs\n\n BIOS built on Mar 11 2023 11:49:46\n BIOS CRC passed (c7f0f0fc)\n\n LiteX git sha1: e1f847ef\n\n--=============== [1mSoC[0m ==================--\n[1mCPU[0m:\t\tRocketRV64[imac] @ 50MHz\n[1mBUS[0m:\t\tWISHBONE 32-bit @ 4GiB\n[1mCSR[0m:\t\t32-bit data\n[1mROM[0m:\t\t128.0KiB\n[1mSRAM[0m:\t\t8.0KiB\n[1mSDRAM[0m:\t\t256.0MiB 16-bit @ 400MT\/s (CL-7 CWL-5)\n[1mMAIN-RAM[0m:\t256.0MiB\n\n--========== [1mInitialization[0m ============--\nEthernet init...\nInitializing SDRAM @0x80000000...\nSwitching SDRAM to software control.\nRead leveling:\n  m0, b00: |00000000000000000000000000000000| delays: -\n  m0, b01: |01111111111111111111111111111110| delays: 15+-14\n  m0, b02: |00000000000000000000000000000000| delays: -\n  m0, b03: |00000000000000000000000000000000| delays: -\n  m0, b04: |00000000000000000000000000000000| delays: -\n  m0, b05: |00000000000000000000000000000000| delays: -\n  m0, b06: |00000000000000000000000000000000| delays: -\n  m0, b07: |00000000000000000000000000000000| delays: -\n  best: m0, b01 delays: 15+-14\n  m1, b00: |00000000000000000000000000000000| delays: -\n  m1, b01: |01111111111111111111111111111110| delays: 15+-14\n  m1, b02: |00000000000000000000000000000000| delays: -\n  m1, b03: |00000000000000000000000000000000| delays: -\n  m1, b04: |00000000000000000000000000000000| delays: -\n  m1, b05: |00000000000000000000000000000000| delays: -\n  m1, b06: |00000000000000000000000000000000| delays: -\n  m1, b07: |00000000000000000000000000000000| delays: -\n  best: m1, b01 delays: 15+-14\nSwitching SDRAM to hardware control.\nMemtest at 0x80000000 (2.0MiB)...\n  Write: 0x80000000-0x80000000 0B   \n  Write: 0x80000000-0x80020000 128.0KiB   \n  Write: 0x80000000-0x80040000 256.0KiB   \n  Write: 0x80000000-0x80060000 384.0KiB   \n  Write: 0x80000000-0x80080000 512.0KiB   \n  Write: 0x80000000-0x800a0000 640.0KiB   \n  Write: 0x80000000-0x800c0000 768.0KiB   \n  Write: 0x80000000-0x800e0000 896.0KiB   \n  Write: 0x80000000-0x80100000 1.0MiB   \n  Write: 0x80000000-0x80120000 1.1MiB   \n  Write: 0x80000000-0x80140000 1.2MiB   \n  Write: 0x80000000-0x80160000 1.3MiB   \n  Write: 0x80000000-0x80180000 1.5MiB   \n  Write: 0x80000000-0x801a0000 1.6MiB   \n  Write: 0x80000000-0x801c0000 1.7MiB   \n  Write: 0x80000000-0x801e0000 1.8MiB   \n  Write: 0x80000000-0x80200000 2.0MiB   \n\n   Read: 0x80000000-0x80000000 0B   \n   Read: 0x80000000-0x80020000 128.0KiB   \n   Read: 0x80000000-0x80040000 256.0KiB   \n   Read: 0x80000000-0x80060000 384.0KiB   \n   Read: 0x80000000-0x80080000 512.0KiB   \n   Read: 0x80000000-0x800a0000 640.0KiB   \n   Read: 0x80000000-0x800c0000 768.0KiB   \n   Read: 0x80000000-0x800e0000 896.0KiB   \n   Read: 0x80000000-0x80100000 1.0MiB   \n   Read: 0x80000000-0x80120000 1.1MiB   \n   Read: 0x80000000-0x80140000 1.2MiB   \n   Read: 0x80000000-0x80160000 1.3MiB   \n   Read: 0x80000000-0x80180000 1.5MiB   \n   Read: 0x80000000-0x801a0000 1.6MiB   \n   Read: 0x80000000-0x801c0000 1.7MiB   \n   Read: 0x80000000-0x801e0000 1.8MiB   \n   Read: 0x80000000-0x80200000 2.0MiB   \n\nMemtest OK\nMemspeed at 0x80000000 (Sequential, 2.0MiB)...\n  Write speed: 37.9MiB\/s\n   Read speed: 54.3MiB\/s\n\n--============== [1mBoot[0m ==================--\nBooting from serial...\nPress Q or ESC to abort boot completely.\nsL5DdSMmkekro\nTimeout\nBooting from SDCard in SD-Mode...\nBooting from boot.json...\nboot.json file not found.\nBooting from boot.bin...\nCopying boot.bin to 0x80000000 (17922920 bytes)...\n[                                        ]\n[########################################\nExecuting booted program at 0x80000000\n\n--============= [1mLiftoff![0m ===============--\nbbl loader\n              vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n                  vvvvvvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrr       vvvvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrr      vvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrrrr    vvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrrrr    vvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrrrr    vvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrr      vvvvvvvvvvvvvvvvvvvvvv  \nrrrrrrrrrrrrr       vvvvvvvvvvvvvvvvvvvvvv    \nrr                vvvvvvvvvvvvvvvvvvvvvv      \nrr            vvvvvvvvvvvvvvvvvvvvvvvv      rr\nrrrr      vvvvvvvvvvvvvvvvvvvvvvvvvv      rrrr\nrrrrrr      vvvvvvvvvvvvvvvvvvvvvv      rrrrrr\nrrrrrrrr      vvvvvvvvvvvvvvvvvv      rrrrrrrr\nrrrrrrrrrr      vvvvvvvvvvvvvv      rrrrrrrrrr\nrrrrrrrrrrrr      vvvvvvvvvv      rrrrrrrrrrrr\nrrrrrrrrrrrrrr      vvvvvv      rrrrrrrrrrrrrr\nrrrrrrrrrrrrrrrr      vv      rrrrrrrrrrrrrrrr\nrrrrrrrrrrrrrrrrrr          rrrrrrrrrrrrrrrrrr\nrrrrrrrrrrrrrrrrrrrr      rrrrrrrrrrrrrrrrrrrr\nrrrrrrrrrrrrrrrrrrrrrr  rrrrrrrrrrrrrrrrrrrrrr\n\n\n       INSTRUCTION SETS WANT TO BE FREE\n[    0.000000] Linux version 6.2.0-rc6-314526-g4368aad2af2b-dirty (shc@ubuntu) (riscv64-unknown-linux-gnu-gcc (g2ee5e430018) 12.2.0, GNU ld (GNU Binutils) 2.39) #34 SMP Sun Mar  5 18:53:58 JST 2023\n[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000\n[    0.000000] Machine model: freechips,rocketchip-unknown\n[    0.000000] earlycon: liteuart0 at I\/O port 0x0 (options '')\n[    0.000000] Malformed early option 'console'\n[    0.000000] earlycon: liteuart0 at MMIO 0x0000000012006800 (options '')\n[    0.000000] printk: bootconsole [liteuart0] enabled\n[    0.000000] efi: UEFI not found.\n[    0.000000] Zone ranges:\n[    0.000000]   DMA32    [mem 0x0000000080200000-0x000000008fffffff]\n[    0.000000]   Normal   empty\n[    0.000000] Movable zone start for each node\n[    0.000000] Early memory node ranges\n[    0.000000]   node   0: [mem 0x0000000080200000-0x000000008fffffff]\n[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff]\n[    0.000000] SBI specification v0.1 detected\n[    0.000000] riscv: base ISA extensions acdfim\n[    0.000000] riscv: ELF capabilities acdfim\n[    0.000000] percpu: Embedded 14 pages\/cpu s25320 r0 d32024 u57344\n[    0.000000] pcpu-alloc: s25320 r0 d32024 u57344 alloc=14*4096\n[    0.000000] pcpu-alloc: [0] 0 \n[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64008\n[    0.000000] Kernel command line: console=liteuart earlycon=liteuart,0x12006800 swiotlb=noforce\n[    0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)\n[    0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)\n[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off\n[    0.000000] Memory: 239148K\/260096K available (4843K kernel code, 4015K rwdata, 2048K rodata, 2878K init, 366K bss, 20948K reserved, 0K cma-reserved)\n[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1\n[    0.000000] rcu: Hierarchical RCU implementation.\n[    0.000000] rcu: \tRCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=1.\n[    0.000000] \tTracing variant of Tasks RCU enabled.\n[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.\n[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1\n[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0\n[    0.000000] riscv-intc: 64 local interrupts mapped\n[    0.000000] plic: interrupt-controller@c000000: mapped 8 interrupts with 1 handlers for 2 contexts.\n[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.\n[    0.000000] riscv-timer: riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]\n[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 7052723233920 ns\n[    0.000044] sched_clock: 64 bits at 500kHz, resolution 2000ns, wraps every 4398046511000ns\n[    0.014086] Console: colour dummy device 128x32\n[    0.018384] Calibrating delay loop (skipped), value calculated using timer frequency.. 1.00 BogoMIPS (lpj=5000)\n[    0.028422] pid_max: default: 32768 minimum: 301\n[    0.036322] LSM: initializing lsm=capability,integrity\n[    0.046174] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)\n[    0.053262] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)\n[    0.150992] cblist_init_generic: Setting adjustable number of callback queues.\n[    0.157854] cblist_init_generic: Setting shift to 0 and lim to 1.\n[    0.169374] riscv: ELF compat mode unsupported\n[    0.169752] ASID allocator disabled (0 bits)\n[    0.184590] rcu: Hierarchical SRCU implementation.\n[    0.188386] rcu: \tMax phase no-delay instances is 1000.\n[    0.207128] EFI services will not be available.\n[    0.217412] smp: Bringing up secondary CPUs ...\n[    0.220950] smp: Brought up 1 node, 1 CPU\n[    0.241748] devtmpfs: initialized\n[    0.301642] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns\n[    0.311542] futex hash table entries: 256 (order: 2, 16384 bytes, linear)\n[    0.375634] NET: Registered PF_NETLINK\/PF_ROUTE protocol family\n[    0.387194] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations\n[    0.394154] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations\n[    0.524034] pps_core: LinuxPPS API ver. 1 registered\n[    0.528598] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>\n[    0.538040] PTP clock support registered\n[    0.575772] clocksource: Switched to clocksource riscv_clocksource\n[    0.996518] NET: Registered PF_INET protocol family\n[    1.009064] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)\n[    1.046762] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)\n[    1.055374] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)\n[    1.062640] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear)\n[    1.071804] TCP bind hash table entries: 2048 (order: 4, 65536 bytes, linear)\n[    1.084704] TCP: Hash tables configured (established 2048 bind 2048)\n[    1.093312] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)\n[    1.100190] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)\n[    1.111400] NET: Registered PF_UNIX\/PF_LOCAL protocol family\n[    1.315482] workingset: timestamp_bits=46 max_order=16 bucket_order=0\n[    1.441506] LiteX SoC Controller driver initialized\n[    5.033542] 12006800.serial: ttyLXU0 at MMIO 0x0 (irq = 0, base_baud = 0) is a liteuart\n[    5.046656] printk: console [liteuart0] enabled\n[    5.046656] printk: console [liteuart0] enabled\n[    5.055354] printk: bootconsole [liteuart0] disabled\n[    5.055354] printk: bootconsole [liteuart0] disabled\n[    5.305766] loop: module loaded\n[    5.890194] liteeth 12001000.mac eth0: irq 1 slots: tx 2 rx 2 size 2048\n[    5.916542] NET: Registered PF_INET6 protocol family\n[    5.970540] Segment Routing with IPv6\n[    5.977042] In-situ OAM (IOAM) with IPv6\n[    5.982838] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver\n[    6.016568] NET: Registered PF_PACKET protocol family\n[    6.776552] Warning: unable to open an initial console.\n[    6.887680] Freeing unused kernel image (initmem) memory: 2876K\n[    6.897770] Run \/init as init process\n[    6.900452]   with arguments:\n[    6.903404]     \/init\n[    6.906180]   with environment:\n[    6.908790]     HOME=\/\n[    6.911126]     TERM=linux\n# uname -a\nLinux litex 6.2.0-rc6-314526-g4368aad2af2b-dirty #34 SMP Sun Mar  5 18:53:58 JST 2023 riscv64 GNU\/Linux\n# df -h\nFilesystem                Size      Used Available Use% Mounted on\nrootfs                  116.8M      1.1M    115.7M   1% \/\ndevtmpfs                116.8M         0    116.8M   0% \/dev\ntmpfs                   118.2M         0    118.2M   0% \/tmp\n# ls -l\ndrwxr-xr-x    2 0        0             1120 Jan  1 00:00 bin\ndrwxr-xr-x    2 0        0            12400 Jan  1 00:00 dev\ndrwxr-xr-x    2 0        0               60 Mar  5  2023 etc\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 home\nlrwxrwxrwx    1 0        0               11 Mar  5  2023 init -&gt; bin\/busybox\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 lib\nlrwxrwxrwx    1 0        0               12 Jan  1 00:00 linuxrc -&gt; \/bin\/busybox\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 mnt\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 nfs\ndr-xr-xr-x   91 0        0                0 Jan  1 00:00 proc\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 root\ndrwxr-xr-x    2 0        0              620 Jan  1 00:00 sbin\ndr-xr-xr-x   11 0        0                0 Jan  1 00:00 sys\ndrwxrwxrwt    2 0        0               40 Jan  1 00:00 tmp\ndrwxr-xr-x    5 0        0              100 Mar  5  2023 usr\n# \n<\/giometti@linux.it><\/div><\/code><\/pre>\n<h3 id=\"632-netboot-tftp\">6.3.2. Netboot (TFTP):<\/h3>\n<p>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304b\u3089LiteX\u306e\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u3092\u8aad\u307f\u8fbc\u3080\u306e\u306b\u5c11\u3057\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059\u3002(1\u6642\u959330\u5206\u7a0b\u5ea6) <\/p>\n<p align=\"left\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2144\" src=\"http:\/\/www.swhwc.info\/wp-content\/uploads\/2023\/03\/bootup_net.gif\" alt=\"\" width=\"800\"><\/p>\n<pre class=\"hljs\"><code><div>\n[1m        __   _ __      _  __[0m\n[1m       \/ \/  (_) \/____ | |\/_\/[0m\n[1m      \/ \/__\/ \/ __\/ -_)&gt;  &lt;[0m\n[1m     \/____\/_\/\\__\/\\__\/_\/|_|[0m\n[1m   Build your hardware, easily![0m\n\n (c) Copyright 2012-2023 Enjoy-Digital\n (c) Copyright 2007-2015 M-Labs\n\n BIOS built on Mar 12 2023 15:26:52\n BIOS CRC passed (5a795c2d)\n\n LiteX git sha1: 67e8d774\n\n--=============== [1mSoC[0m ==================--\n[1mCPU[0m:\t\tRocketRV64[imac] @ 50MHz\n[1mBUS[0m:\t\tWISHBONE 32-bit @ 4GiB\n[1mCSR[0m:\t\t32-bit data\n[1mROM[0m:\t\t128.0KiB\n[1mSRAM[0m:\t\t8.0KiB\n[1mSDRAM[0m:\t\t256.0MiB 16-bit @ 400MT\/s (CL-7 CWL-5)\n[1mMAIN-RAM[0m:\t256.0MiB\n\n--========== [1mInitialization[0m ============--\nEthernet init...\nInitializing SDRAM @0x80000000...\nSwitching SDRAM to software control.\nRead leveling:\n  m0, b00: |00000000000000000000000000000000| delays: -\n  m0, b01: |01111111111111111111111111111100| delays: 15+-14\n  m0, b02: |00000000000000000000000000000000| delays: -\n  m0, b03: |00000000000000000000000000000000| delays: -\n  m0, b04: |00000000000000000000000000000000| delays: -\n  m0, b05: |00000000000000000000000000000000| delays: -\n  m0, b06: |00000000000000000000000000000000| delays: -\n  m0, b07: |00000000000000000000000000000000| delays: -\n  best: m0, b01 delays: 15+-14\n  m1, b00: |00000000000000000000000000000000| delays: -\n  m1, b01: |01111111111111111111111111111110| delays: 15+-14\n  m1, b02: |00000000000000000000000000000000| delays: -\n  m1, b03: |00000000000000000000000000000000| delays: -\n  m1, b04: |00000000000000000000000000000000| delays: -\n  m1, b05: |00000000000000000000000000000000| delays: -\n  m1, b06: |00000000000000000000000000000000| delays: -\n  m1, b07: |00000000000000000000000000000000| delays: -\n  best: m1, b01 delays: 15+-14\nSwitching SDRAM to hardware control.\nMemtest at 0x80000000 (2.0MiB)...\n  Write: 0x80000000-0x80000000 0B   \n  Write: 0x80000000-0x80020000 128.0KiB   \n  Write: 0x80000000-0x80040000 256.0KiB   \n  Write: 0x80000000-0x80060000 384.0KiB   \n  Write: 0x80000000-0x80080000 512.0KiB   \n  Write: 0x80000000-0x800a0000 640.0KiB   \n  Write: 0x80000000-0x800c0000 768.0KiB   \n  Write: 0x80000000-0x800e0000 896.0KiB   \n  Write: 0x80000000-0x80100000 1.0MiB   \n  Write: 0x80000000-0x80120000 1.1MiB   \n  Write: 0x80000000-0x80140000 1.2MiB   \n  Write: 0x80000000-0x80160000 1.3MiB   \n  Write: 0x80000000-0x80180000 1.5MiB   \n  Write: 0x80000000-0x801a0000 1.6MiB   \n  Write: 0x80000000-0x801c0000 1.7MiB   \n  Write: 0x80000000-0x801e0000 1.8MiB   \n  Write: 0x80000000-0x80200000 2.0MiB   \n\n   Read: 0x80000000-0x80000000 0B   \n   Read: 0x80000000-0x80020000 128.0KiB   \n   Read: 0x80000000-0x80040000 256.0KiB   \n   Read: 0x80000000-0x80060000 384.0KiB   \n   Read: 0x80000000-0x80080000 512.0KiB   \n   Read: 0x80000000-0x800a0000 640.0KiB   \n   Read: 0x80000000-0x800c0000 768.0KiB   \n   Read: 0x80000000-0x800e0000 896.0KiB   \n   Read: 0x80000000-0x80100000 1.0MiB   \n   Read: 0x80000000-0x80120000 1.1MiB   \n   Read: 0x80000000-0x80140000 1.2MiB   \n   Read: 0x80000000-0x80160000 1.3MiB   \n   Read: 0x80000000-0x80180000 1.5MiB   \n   Read: 0x80000000-0x801a0000 1.6MiB   \n   Read: 0x80000000-0x801c0000 1.7MiB   \n   Read: 0x80000000-0x801e0000 1.8MiB   \n   Read: 0x80000000-0x80200000 2.0MiB   \n\nMemtest OK\nMemspeed at 0x80000000 (Sequential, 2.0MiB)...\n  Write speed: 37.9MiB\/s\n   Read speed: 54.3MiB\/s\n\n--============== [1mBoot[0m ==================--\nBooting from serial...\nPress Q or ESC to abort boot completely.\nsL5DdSMmkekro\nTimeout\nBooting from SDCard in SD-Mode...\nBooting from boot.json...\nBooting from boot.bin...\nSDCard boot failed.\nBooting from network...\nLocal IP: 192.168.1.50\nRemote IP: 192.168.1.100\nBooting from boot.json...\nBooting from boot.bin...\nCopying boot.bin to 0x80000000... \\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|\/-\\|(17922920 bytes)\nExecuting booted program at 0x80000000\n\n--============= [1mLiftoff![0m ===============--\nbbl loader\n              vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n                  vvvvvvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrr       vvvvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrr      vvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrrrr    vvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrrrr    vvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrrrr    vvvvvvvvvvvvvvvvvvvvvvvv\nrrrrrrrrrrrrrrrr      vvvvvvvvvvvvvvvvvvvvvv  \nrrrrrrrrrrrrr       vvvvvvvvvvvvvvvvvvvvvv    \nrr                vvvvvvvvvvvvvvvvvvvvvv      \nrr            vvvvvvvvvvvvvvvvvvvvvvvv      rr\nrrrr      vvvvvvvvvvvvvvvvvvvvvvvvvv      rrrr\nrrrrrr      vvvvvvvvvvvvvvvvvvvvvv      rrrrrr\nrrrrrrrr      vvvvvvvvvvvvvvvvvv      rrrrrrrr\nrrrrrrrrrr      vvvvvvvvvvvvvv      rrrrrrrrrr\nrrrrrrrrrrrr      vvvvvvvvvv      rrrrrrrrrrrr\nrrrrrrrrrrrrrr      vvvvvv      rrrrrrrrrrrrrr\nrrrrrrrrrrrrrrrr      vv      rrrrrrrrrrrrrrrr\nrrrrrrrrrrrrrrrrrr          rrrrrrrrrrrrrrrrrr\nrrrrrrrrrrrrrrrrrrrr      rrrrrrrrrrrrrrrrrrrr\nrrrrrrrrrrrrrrrrrrrrrr  rrrrrrrrrrrrrrrrrrrrrr\n\n\n       INSTRUCTION SETS WANT TO BE FREE\n[    0.000000] Linux version 6.2.0-rc6-314526-g4368aad2af2b-dirty (shc@ubuntu) (riscv64-unknown-linux-gnu-gcc (g2ee5e430018) 12.2.0, GNU ld (GNU Binutils) 2.39) #34 SMP Sun Mar  5 18:53:58 JST 2023\n[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000\n[    0.000000] Machine model: freechips,rocketchip-unknown\n[    0.000000] earlycon: liteuart0 at I\/O port 0x0 (options '')\n[    0.000000] Malformed early option 'console'\n[    0.000000] earlycon: liteuart0 at MMIO 0x0000000012006800 (options '')\n[    0.000000] printk: bootconsole [liteuart0] enabled\n[    0.000000] efi: UEFI not found.\n[    0.000000] Zone ranges:\n[    0.000000]   DMA32    [mem 0x0000000080200000-0x000000008fffffff]\n[    0.000000]   Normal   empty\n[    0.000000] Movable zone start for each node\n[    0.000000] Early memory node ranges\n[    0.000000]   node   0: [mem 0x0000000080200000-0x000000008fffffff]\n[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff]\n[    0.000000] SBI specification v0.1 detected\n[    0.000000] riscv: base ISA extensions acdfim\n[    0.000000] riscv: ELF capabilities acdfim\n[    0.000000] percpu: Embedded 14 pages\/cpu s25320 r0 d32024 u57344\n[    0.000000] pcpu-alloc: s25320 r0 d32024 u57344 alloc=14*4096\n[    0.000000] pcpu-alloc: [0] 0 \n[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64008\n[    0.000000] Kernel command line: console=liteuart earlycon=liteuart,0x12006800 swiotlb=noforce\n[    0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)\n[    0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)\n[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off\n[    0.000000] Memory: 239148K\/260096K available (4843K kernel code, 4015K rwdata, 2048K rodata, 2878K init, 366K bss, 20948K reserved, 0K cma-reserved)\n[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1\n[    0.000000] rcu: Hierarchical RCU implementation.\n[    0.000000] rcu: \tRCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=1.\n[    0.000000] \tTracing variant of Tasks RCU enabled.\n[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.\n[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1\n[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0\n[    0.000000] riscv-intc: 64 local interrupts mapped\n[    0.000000] plic: interrupt-controller@c000000: mapped 8 interrupts with 1 handlers for 2 contexts.\n[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.\n[    0.000000] riscv-timer: riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]\n[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 7052723233920 ns\n[    0.000044] sched_clock: 64 bits at 500kHz, resolution 2000ns, wraps every 4398046511000ns\n[    0.014088] Console: colour dummy device 128x32\n[    0.018384] Calibrating delay loop (skipped), value calculated using timer frequency.. 1.00 BogoMIPS (lpj=5000)\n[    0.028424] pid_max: default: 32768 minimum: 301\n[    0.036322] LSM: initializing lsm=capability,integrity\n[    0.046174] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)\n[    0.053264] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)\n[    0.150898] cblist_init_generic: Setting adjustable number of callback queues.\n[    0.157760] cblist_init_generic: Setting shift to 0 and lim to 1.\n[    0.169280] riscv: ELF compat mode unsupported\n[    0.169658] ASID allocator disabled (0 bits)\n[    0.184496] rcu: Hierarchical SRCU implementation.\n[    0.188292] rcu: \tMax phase no-delay instances is 1000.\n[    0.207034] EFI services will not be available.\n[    0.217320] smp: Bringing up secondary CPUs ...\n[    0.220856] smp: Brought up 1 node, 1 CPU\n[    0.241718] devtmpfs: initialized\n[    0.301632] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns\n[    0.311528] futex hash table entries: 256 (order: 2, 16384 bytes, linear)\n[    0.375610] NET: Registered PF_NETLINK\/PF_ROUTE protocol family\n[    0.387162] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations\n[    0.394120] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations\n[    0.523988] pps_core: LinuxPPS API ver. 1 registered\n[    0.528552] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>\n[    0.537992] PTP clock support registered\n[    0.575732] clocksource: Switched to clocksource riscv_clocksource\n[    0.996586] NET: Registered PF_INET protocol family\n[    1.009126] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)\n[    1.046806] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)\n[    1.055400] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)\n[    1.062670] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear)\n[    1.071834] TCP bind hash table entries: 2048 (order: 4, 65536 bytes, linear)\n[    1.085306] TCP: Hash tables configured (established 2048 bind 2048)\n[    1.093336] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)\n[    1.100214] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)\n[    1.111424] NET: Registered PF_UNIX\/PF_LOCAL protocol family\n[    1.315472] workingset: timestamp_bits=46 max_order=16 bucket_order=0\n[    1.441522] LiteX SoC Controller driver initialized\n[    5.033496] 12006800.serial: ttyLXU0 at MMIO 0x0 (irq = 0, base_baud = 0) is a liteuart\n[    5.046610] printk: console [liteuart0] enabled\n[    5.046610] printk: console [liteuart0] enabled\n[    5.055304] printk: bootconsole [liteuart0] disabled\n[    5.055304] printk: bootconsole [liteuart0] disabled\n[    5.305662] loop: module loaded\n[    5.890132] liteeth 12001000.mac eth0: irq 1 slots: tx 2 rx 2 size 2048\n[    5.916484] NET: Registered PF_INET6 protocol family\n[    5.970470] Segment Routing with IPv6\n[    5.976972] In-situ OAM (IOAM) with IPv6\n[    5.982768] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver\n[    6.016506] NET: Registered PF_PACKET protocol family\n[    6.776514] Warning: unable to open an initial console.\n[    6.887650] Freeing unused kernel image (initmem) memory: 2876K\n[    6.897740] Run \/init as init process\n[    6.900422]   with arguments:\n[    6.903374]     \/init\n[    6.906142]   with environment:\n[    6.908760]     HOME=\/\n[    6.911096]     TERM=linux\n# unamme -a\n-\/bin\/ash: unamme: not found\n# uname -a\nLinux litex 6.2.0-rc6-314526-g4368aad2af2b-dirty #34 SMP Sun Mar  5 18:53:58 JST 2023 riscv64 GNU\/Linux\n# df -h\nFilesystem                Size      Used Available Use% Mounted on\nrootfs                  116.8M      1.1M    115.7M   1% \/\ndevtmpfs                116.8M         0    116.8M   0% \/dev\ntmpfs                   118.2M         0    118.2M   0% \/tmp\n# ls -l\ndrwxr-xr-x    2 0        0             1120 Jan  1 00:00 bin\ndrwxr-xr-x    2 0        0            12400 Jan  1 00:00 dev\ndrwxr-xr-x    2 0        0               60 Mar  5  2023 etc\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 home\nlrwxrwxrwx    1 0        0               11 Mar  5  2023 init -&gt; bin\/busybox\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 lib\nlrwxrwxrwx    1 0        0               12 Jan  1 00:00 linuxrc -&gt; \/bin\/busybox\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 mnt\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 nfs\ndr-xr-xr-x   90 0        0                0 Jan  1 00:00 proc\ndrwxr-xr-x    2 0        0               40 Mar  5  2023 root\ndrwxr-xr-x    2 0        0              620 Jan  1 00:00 sbin\ndr-xr-xr-x   11 0        0                0 Jan  1 00:00 sys\ndrwxrwxrwt    2 0        0               40 Jan  1 00:00 tmp\ndrwxr-xr-x    5 0        0              100 Mar  5  2023 usr\n# \n<\/giometti@linux.it><\/div><\/code><\/pre>\n<h2 id=\"64-Booting-up-litex-video\">6.4. FPGA Arty A7-100T \u306e LiteX\/Rocket \u3067 RISC-V Linux \u3092\u8d77\u52d5\u3059\u308b\u30d3\u30c7\u30aa<\/h2>\n<iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/I4VxMYdeEu0\" width=\"800\" height=\"420\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe>\n<br>\n\n\n\n\n\n\n\n          <\/div><!-- \/.col -->\n        <\/div><!-- \/.row -->\n          <\/div><!-- \/.col -->\n\n  <\/div>\n\n\n<br>\n<br>\n<br>\n<br>\n\n<div class=\"copyright bg-semi-black\">\n    <p class=\"m-0 p-3 text-white text-center\">\n      <small><font style=\"vertical-align: inherit;\"><font style=\"vertical-align: inherit;\">Copyright \u00a9 Japan Embedded Systems Technology Association All Rights Reserved.<\/font><\/font><\/small>\n    <\/p>\n  <\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>RISC-V Linux in LiteX\/Rocket on FPGA Arty A7-100T | English | \u30a2\u30af\u30bb\u30b9 \u304a\u554f\u3044\u5408\u308f\u305b \u5165\u4f1a\u6848\u5185 \u4f1a\u54e1\u5411\u3051\u60c5\u5831 RISC-V Linux in LiteX\/Rocket on FPGA Arty A7-100T 1. \u6982\u8981 Github\u306b\u3042\u308b64bit\u306eRocketChip CPU\u3092\u642d\u8f09\u3057\u305fLinux on LiteX\u3092\u30d9\u30fc\u30b9\u306b\u3001Xilinx\u793e\u306eFPGA\u30dc\u30fc\u30c9Arty A7-100T\u306bliteX\u3068RocketChip\u3092\u4f7f\u3063\u305fSoC\u3092\u4f5c\u308a\u300164bit Linux\u3092\u52d5\u4f5c\u3055\u305b\u307e\u3059\u3002 1.1. \u52d5\u4f5c\u74b0\u5883 OS\u306fUbuntu 20.04.5\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002 FPGA\u30dc\u30fc\u30c9\u306f\u3001Xilinx\u793e\u88fdArty A7-100T\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002 Micro SD\u30ab\u30fc\u30c9\u3068PMOD Micro SD\u30ab\u30fc\u30c9\u30ea\u30fc\u30c0\u30fc410-380\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 1.2. \u624b\u7d9a\u304d\u65b9\u6cd5 Step 1: \u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u3092\u63a5\u7d9a\u3057\u307e\u3059. Step 2: \u524d\u63d0\u6761\u4ef6\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb Step 3: \u30b2\u30fc\u30c8\u30a6\u30a7\u30a2\uff08Gateware\uff09\u306e\u69cb\u7bc9 Step 4: \u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u69cb\u7bc9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/jasa.wiki\/index.php?rest_route=\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasa.wiki\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jasa.wiki\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jasa.wiki\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasa.wiki\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7"}],"version-history":[{"count":2,"href":"https:\/\/jasa.wiki\/index.php?rest_route=\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":9,"href":"https:\/\/jasa.wiki\/index.php?rest_route=\/wp\/v2\/pages\/7\/revisions\/9"}],"wp:attachment":[{"href":"https:\/\/jasa.wiki\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}