{"id":4081,"date":"2020-10-16T17:17:29","date_gmt":"2020-10-16T08:17:29","guid":{"rendered":"http:\/\/flogics.com\/wp\/?p=4081"},"modified":"2023-09-01T15:16:10","modified_gmt":"2023-09-01T06:16:10","slug":"polarfire-soc-boot-and-memory-structure","status":"publish","type":"post","link":"https:\/\/flogics.com\/wp\/2020\/10\/polarfire-soc-boot-and-memory-structure\/","title":{"rendered":"PolarFire SoC \u30d6\u30fc\u30c8\u306e\u4ed5\u7d44\u3068\u30e1\u30e2\u30ea\u69cb\u6210"},"content":{"rendered":"<p>Boot procedure and memory structure of PolarFire SoC<\/p>\n<p><a href=\"\/wp\/2020\/10\/running-polarfire-soc-icicle-kit-demo\/\">\u5148\u65e5<\/a>\u306f\u3001PolarFire SoC Icicle Kit \u306e\u96fb\u6e90\u3092\u5165\u308c\u3001Linux \u306e\u30d6\u30fc\u30c8\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002\u591a\u304f\u306e\u7686\u69d8\u306f\u65e2\u306b\u305d\u3053\u307e\u3067\u304a\u8a66\u3057\u306e\u3053\u3068\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u3053\u3053\u304b\u3089\u5148\u306b\u9032\u3080\u306b\u3042\u305f\u308a\u3001\u3069\u3053\u3067\u4f55\u3092\u8abf\u3079\u305f\u3089\u3044\u3044\u306e\u304b\u5446\u7136\u3068\u306a\u3055\u3063\u3066\u3044\u308b\u65b9\u3082\u3042\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>SoC \u30c7\u30d0\u30a4\u30b9\u81ea\u4f53\u306b\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b\u30d6\u30fc\u30c8\u306e\u4ed5\u7d44\uff08MSS boot\uff09\u306b\u3064\u3044\u3066\u306f<a href=\"\/wp\/2020\/10\/got-a-polarfire-soc-icicle-kit\/#mssboot\">\u5148\u65e5\u7c21\u5358\u306b\u8aac\u660e\u3057\u307e\u3057\u305f<\/a>\u304c\u3001\u4eca\u56de\u306f\u3001\u305d\u3053\u304b\u3089 Linux \u306e\u30d6\u30fc\u30c8\u307e\u3067\u306b\u81f3\u308b\u30d7\u30ed\u30bb\u30b9\u3092\u8aac\u660e\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u305d\u306e\u524d\u306b\u3001PolarFire SoC \u306e\u30e1\u30e2\u30ea\u69cb\u6210\u306b\u3064\u3044\u3066\u7c21\u5358\u306b\u8aac\u660e\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<h2>PolarFire SoC \u306e\u30e1\u30e2\u30ea\u69cb\u6210<\/h2>\n<p>PolarFire SoC \u3067\u5229\u7528\u3067\u304d\u308b\u30e1\u30e2\u30ea\u306f\u3001\u5927\u304d\u304f\u5206\u3051\u3066 3\u3064\u306e\u7a2e\u985e\u306b\u5206\u985e\u3067\u304d\u307e\u3059\u3002<\/p>\n<ul>\n<li>FPGA \u30d5\u30a1\u30d6\u30ea\u30c3\u30af\u306b\u542b\u307e\u308c\u308b\u30e1\u30e2\u30ea<\/li>\n<li>RISC-V MSS\uff08Microprocessor Sub-System\uff09\u306b\u542b\u307e\u308c\u308b\u30e1\u30e2\u30ea<\/li>\n<li>\u5916\u90e8\u30e1\u30e2\u30ea<\/li>\n<\/ul>\n<p>\u3055\u3089\u306b\u3001\u305d\u308c\u3089\u306e\u30e1\u30e2\u30ea\u304c\u3069\u306e\u3088\u3046\u306b <strong>MSS<\/strong> \u306e\u30e1\u30e2\u30ea\u30de\u30c3\u30d7\u306b\u914d\u7f6e\u3055\u308c\u308b\u304b\u3001\u3068\u3044\u3046\u8996\u70b9\u3082\u3042\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n<p>\u307e\u305a\u6700\u521d\u306b\u3001FPGA \u30d5\u30a1\u30d6\u30ea\u30c3\u30af\u306b\u542b\u307e\u308c\u308b\u30e1\u30e2\u30ea\u304b\u3089\u8aac\u660e\u3057\u307e\u3057\u3087\u3046\u3002\uff08\u79c1\u3082\u52c9\u5f37\u4e2d\u306a\u306e\u3067\u3001\u9593\u9055\u3063\u3066\u7406\u89e3\u3057\u3066\u3044\u305f\u3089\u3054\u3081\u3093\u306a\u3055\u3044\u3002\uff09<\/p>\n<h3>FPGA \u30d5\u30a1\u30d6\u30ea\u30c3\u30af\u306b\u542b\u307e\u308c\u308b\u30e1\u30e2\u30ea<\/h3>\n<p>FPGA \u5185\u90e8\u306b\u306f\u3001MSS \u306b\u95a2\u4fc2\u306a\u304f\u3001\u5f93\u6765\u306e\uff08MSS \u975e\u5185\u8535\uff09FPGA \u306b\u3082\u5b58\u5728\u3059\u308b embedded memory block \u3068\u3044\u3046\u3082\u306e\u304c\u3042\u308a\u307e\u3059\u3002PolarFire SoC \u306b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a memory block \u304c\u3042\u308a\u307e\u3059\u3002\uff08\u8a73\u7d30\u306f\u3001<a href=\"https:\/\/www.microsemi.com\/document-portal\/doc_download\/1244856-ug0912-polarfire-soc-fpga-fabric-user-guide\">Microsemi: UG0912 User Guide PolarFire SoC FPGA Fabric\uff08PDF\uff09<\/a>\u306e 4\u7bc0 Embedded Memory Blocks \u3092\u5fa1\u53c2\u7167\u304f\u3060\u3055\u3044\u3002\uff09<\/p>\n<ul>\n<li>LSRAM\uff08\u30e1\u30e2\u30ea\u30d6\u30ed\u30c3\u30af\u3068\u3057\u3066\u3001FPGA \u3067\u5408\u6210\u3055\u308c\u308b\u8ad6\u7406\u56de\u8def\u304b\u3089\u4f7f\u7528\u3067\u304d\u308b\u3082\u306e\uff09<\/li>\n<li>\u03bcSRAM\uff08\u7565\uff09<\/li>\n<li>\u03bcPROM\uff08LSRAM \u3084 \u03bcSRAM \u3092\u521d\u671f\u5316\u3059\u308b\u305f\u3081\u306e\u4e0d\u63ee\u767a\u30e1\u30e2\u30ea\uff09<\/li>\n<li>sNVM\uff08\u540c\u4e0a\uff09<\/li>\n<\/ul>\n<h3>MSS \u306b\u542b\u307e\u308c\u308b\u30e1\u30e2\u30ea<\/h3>\n<ul>\n<li>eNVM\uff08128K\u30d0\u30a4\u30c8\u3002\u4e3b\u306b\u3001E51 \u30b3\u30a2\u306e\u30d6\u30fc\u30c8\u30ed\u30fc\u30c0\u3092\u7f6e\u304f\u305f\u3081\u306e\u4e0d\u63ee\u767a\u30e1\u30e2\u30ea\uff09<\/li>\n<li>ITIM\uff0816\u3042\u308b\u3044\u306f 32K\u30d0\u30a4\u30c8\u3002\u5404\u30b3\u30a2\u306b\u542b\u307e\u308c\u308b\u547d\u4ee4\u30ad\u30e3\u30c3\u30b7\u30e5\u30e1\u30e2\u30ea\u3002\u30de\u30c3\u30d7\u30c8\u30e1\u30e2\u30ea\u3068\u3057\u3066\u3082\u4f7f\u3048\u308b\uff09<\/li>\n<li>dCache\uff0832\u30ad\u30ed\u30d0\u30a4\u30c8\u3002U54 \u30b3\u30a2\u306b\u542b\u307e\u308c\u308b\u30c7\u30fc\u30bf\u30ad\u30e3\u30c3\u30b7\u30e5\u30e1\u30e2\u30ea\uff09<\/li>\n<li>DTIM\uff088\u30ad\u30ed\u30d0\u30a4\u30c8\u3002E51 \u30b3\u30a2\u306b\u542b\u307e\u308c\u308b\u30c7\u30fc\u30bf\u30ad\u30e3\u30c3\u30b7\u30e5\u30e1\u30e2\u30ea\u3002\u30de\u30c3\u30d7\u30c8\u30e1\u30e2\u30ea\u3068\u3057\u3066\u3082\u4f7f\u3048\u308b\uff09<\/li>\n<li>L2-LIM\uff082M\u30d0\u30a4\u30c8\u3002\u30b3\u30a2\u9593\u3067\u5171\u6709\u3002L2 \u30ad\u30e3\u30c3\u30b7\u30e5\u3068\u3057\u3066\u3082\u30de\u30c3\u30d7\u30c8\u30e1\u30e2\u30ea\u3068\u3057\u3066\u3082\u4f7f\u3048\u308b\u3002ECC \u4ed8\u304d\uff09<\/li>\n<\/ul>\n<h3>\u5916\u90e8\u30e1\u30e2\u30ea\uff08Icicle Kit \u306e\u5834\u5408\uff09<\/h3>\n<ul>\n<li>SPI \u30d5\u30e9\u30c3\u30b7\u30e5\uff08128M\u30d0\u30a4\u30c8<del>\u3002FPGA \u30d5\u30a1\u30d6\u30ea\u30c3\u30af\u306e\u30b3\u30f3\u30d5\u30a3\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u7528<\/del>\uff09<\/li>\n<li>eMMC\uff088G\u30d0\u30a4\u30c8\u3002Linux \u306e\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u7f6e\u304f\u306a\u3069\uff09<\/li>\n<li>DDR-SDRAM\uff082G\u30d0\u30a4\u30c8\u3002\u30d7\u30ed\u30b0\u30e9\u30e0\u3084\u30c7\u30fc\u30bf\u3092\u7f6e\u304f\u305f\u3081\u306e\u5927\u304d\u306a RAM\uff09<\/li>\n<li>\u305d\u306e\u4ed6\u3001SD \u30ab\u30fc\u30c9\u3092\u5229\u7528\u3059\u308b\u305f\u3081\u306e QSPI \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3042\u308a<\/li>\n<\/ul>\n<blockquote><p><strong>\u8ffd\u8a18\uff0811\u67082\u65e5\uff09<\/strong>: Microsemi PolarFire SoC \u306e\u7279\u5fb4\u306f\u3001FPGA \u30d5\u30a1\u30d6\u30ea\u30c3\u30af\u306e\u69cb\u6210\u7528\u306b SRAM \u3084\u3001\u5916\u90e8\u306e\u30b3\u30f3\u30d5\u30a3\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u7528 ROM \u3092\u6301\u305f\u306a\u3044\u3053\u3068\u3060\u305d\u3046\u3067\u3059\u3002FPGA \u306e\u69cb\u6210\u306f\u3001\u7279\u6b8a\u306a\u534a\u5c0e\u4f53\u30d7\u30ed\u30bb\u30b9\uff08SONOS \u3068\u547c\u3076\u305d\u3046\u3067\u3059\uff09\u306e\u6280\u8853\u306b\u3088\u308a\u3001\u5404\u30ed\u30b8\u30c3\u30af\u30a8\u30ec\u30e1\u30f3\u30c8\u306e\u69cb\u6210\u3084\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u306f\u3001\u30aa\u30f3\u30c1\u30c3\u30d7\u306e\u3053\u306e\u4e0d\u63ee\u767a\u30d7\u30ed\u30bb\u30b9\u6280\u8853\u306b\u3088\u308a\u30d7\u30ed\u30b0\u30e9\u30e0\u3055\u308c\u308b\u3088\u3046\u3067\u3059\u3002\u8a73\u7d30\u306f\u3001\u307e\u305f\u52c9\u5f37\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p><\/blockquote>\n<h3>\u30d6\u30fc\u30c8\u306b\u95a2\u9023\u306e\u3042\u308b\u30e1\u30e2\u30ea<\/h3>\n<p>\u4e0a\u8a18\u306e\u4e2d\u3067\u3001MSS \u306e\u30d6\u30fc\u30c8\u6642\u306b\uff08\u30d7\u30ed\u30b0\u30e9\u30e0\u8aad\u307f\u51fa\u3057\u306e\uff09\u5bfe\u8c61\u3068\u306a\u308b\u306e\u306f\u3001eNVM\u3001eMMC \u3042\u308b\u3044\u306f SD\uff08MMC\uff09\u30ab\u30fc\u30c9\u3067\u3059\u3002<\/p>\n<h3>MSS \u3078\u306e\u30e1\u30e2\u30ea\u30de\u30c3\u30d7<\/h3>\n<p>MSS \u306b\u304a\u3051\u308b\u30e1\u30e2\u30ea\u30de\u30c3\u30d7\u306f\u3001<a href=\"https:\/\/www.microsemi.com\/document-portal\/doc_download\/1244570-ug0880-polarfire-soc-fpga-microprocessor-subsystem-mss-user-guide\">UG0880 User Guide PolarFire SoC FPGA Microprocessor Sub-System\uff08PDF\uff09<\/a>\u306e 11\u7bc0 MSS Memory Map \u304c\u8a73\u3057\u3044\u3067\u3059\u304c\u3001\u629c\u7c8b\u3057\u307e\u3059\u3068\u3001<\/p>\n<ul>\n<li><tt>0x0100_0000<\/tt>: E51 \u7528\u306e DTIM\uff08\u9ad8\u901f\u3060\u3051\u3069\u3001\u30b5\u30a4\u30ba\u306f\u5c0f\u3055\u3044\uff09<\/li>\n<li><tt>0x0800_0000<\/tt>: L2-LIM\uff08ITIM\u3001DTIM \u306b\u3064\u3044\u3067\u901f\u3044\u3002RTOS \u3060\u3051\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u3042\u308c\u3070\u3001\u3053\u3053\u306b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7f6e\u304f\u306e\u304c\u7c21\u5358\uff09<\/li>\n<li><tt>0x2022_0000<\/tt>: eNVM\uff08E51 \u306e\u30d6\u30fc\u30c8\u30ed\u30fc\u30c0\u3092\u7f6e\u304f\u305f\u3081\u306e\u4e0d\u63ee\u767a\u30e1\u30e2\u30ea\u3002\u524d\u8ff0\uff09<\/li>\n<li><tt>0x8000_0000<\/tt>: DDR\uff08\u30ad\u30e3\u30c3\u30b7\u30e5\u5bfe\u8c61\u3002\u5927\u304d\u306a\u30b7\u30b9\u30c6\u30e0\u3067\u3042\u308c\u3070\u3053\u3053\u306b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7f6e\u304f\uff09<\/li>\n<li><tt>0xC000_0000<\/tt>: DDR\uff08\u30ad\u30e3\u30c3\u30b7\u30e5\u975e\u5bfe\u8c61\u3002\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u901a\u3057\u305f\u304f\u306a\u3044\u3068\u304d\u306b\u4f7f\u3046\uff09<\/li>\n<\/ul>\n<h2>\u30d6\u30fc\u30c8\u306e\u4ed5\u7d44<\/h2>\n<p>\u304a\u5f85\u305f\u305b\u3057\u307e\u3057\u305f\u3002\u3088\u3046\u3084\u304f\u3001\u30d6\u30fc\u30c8\u306e\u4ed5\u7d44\u3092\u8aac\u660e\u3067\u304d\u307e\u3059\u3002<\/p>\n<h3>eNVM \u3068 HSS<\/h3>\n<p>MSS User Boot \u306b\u3064\u3044\u3066\u306f<a href=\"\/wp\/2020\/10\/got-a-polarfire-soc-icicle-kit\/#mssboot\">\u524d\u56de\u8aac\u660e\u3057\u307e\u3057\u305f<\/a>\u306e\u3067\u3001\u305d\u3053\u3067 Non-secure \u30d6\u30fc\u30c8\u304c\u9078\u629e\u3055\u308c\u305f\u3068\u3057\u307e\u3057\u3087\u3046\u3002\u3059\u308b\u3068\u3001E51 \u306f eNVM \u4e0a\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u30b8\u30e3\u30f3\u30d7\u3057\u5b9f\u884c\u958b\u59cb\u3057\u307e\u3059\u3002\uff08\u30a8\u30f3\u30c8\u30ea\u30dd\u30a4\u30f3\u30c8\u3092\u3069\u306e\u3088\u3046\u306b\u8a2d\u5b9a\u3059\u308b\u304b\u3001\u306a\u3069\u306f\u307e\u3060\u8abf\u3079\u3066\u3044\u307e\u305b\u3093\u3002\uff09<\/p>\n<blockquote><p><strong>\u4f59\u8ac7<\/strong>: eNVM \u306b\u306f\u3001Libero SoC \u3084 FlashPro Express \u3068\u3044\u3046\u30bd\u30d5\u30c8\u3067\u3082\u66f8\u304d\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3057\u304b\u3057\u79c1\u304c\u8a66\u3057\u305f\u3068\u3053\u308d\u3067\u306f\u3001\u3069\u3046\u3082\u30d6\u30fc\u30c8\u30e2\u30fc\u30c9\u307e\u3067\u306f\u6b63\u3057\u304f\u8a2d\u5b9a\u3055\u308c\u306a\u3044\u3088\u3046\u3067\u3001\u30d6\u30fc\u30c8\u30e2\u30fc\u30c9\u3092\u8a2d\u5b9a\u3059\u308b\u306b\u306f\u3001SoftConsole \u306b\u542b\u307e\u308c\u308b\uff08\u5f8c\u8ff0\u306e\uff09mpfs-program-bootmode.sh \u3068\u3044\u3046\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f7f\u308f\u306a\u3044\u3068\u3046\u307e\u304f\u3044\u304b\u306a\u3044\u3088\u3046\u3067\u3059\u3002\uff08Libero SoC 12.5 \u306b\u3066\u78ba\u8a8d\uff09<\/p><\/blockquote>\n<p>\u3053\u306e\u3088\u3046\u306b\u3057\u3066\u3001\u30b7\u30f3\u30b0\u30eb\u30b3\u30a2\u306e\u7c21\u5358\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304d\u8fbc\u3080\u3060\u3051\u3067\u3042\u308c\u3070\u3001eNVM \u306b\u76f4\u63a5\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7f6e\u304f\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u304c\u3001\u30b5\u30a4\u30ba\u304c 128K\u30d0\u30a4\u30c8\u3068\u5c0f\u3055\u3044\u3053\u3068\u3082\u3042\u308a\u3001\u901a\u5e38\u306f\u3053\u3053\u306b <a href=\"https:\/\/github.com\/polarfire-soc\/hart-software-services\">Hart Software Services\uff08HSS\uff09<\/a> \u3068\u3044\u3046\u4e00\u7a2e\u306e\u30d6\u30fc\u30c8\u30ed\u30fc\u30c0\u3092\u7f6e\u304f\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>HSS \u3092\u4e0a\u8a18 GitHub \u30ea\u30f3\u30af\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30d3\u30eb\u30c9\u3059\u308b\u3068\u3001Default \u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b hss.elf \u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002\u305d\u3046\u3057\u305f\u3089\u3001\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067 eNVM \u4e0a\u306b HSS \u3092\u66f8\u304d\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u2026\u3002<\/p>\n<p>\u3042\u3001\u305d\u306e\u524d\u306b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30c4\u30fc\u30eb\u306e\u8a71\u3092\u3057\u306a\u3044\u3068\u3002<\/p>\n<h3>\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30c4\u30fc\u30eb<\/h3>\n<p>PolarFire SoC \u306b\u30d3\u30c3\u30c8\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u66f8\u3044\u305f\u308a\u3001SoftConsole \u304b\u3089\u30c7\u30d0\u30c3\u30b0\u3057\u305f\u308a\u3059\u308b\u305f\u3081\u306b\u306f\u3001FlashPro \u3068\u3044\u3046 JTAG \u30d7\u30ed\u30b0\u30e9\u30de\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002<a href=\"\/wp\/2020\/10\/got-a-polarfire-soc-icicle-kit\/#flashpro5\">\u5148\u65e5\u8aac\u660e\u3057\u305f<\/a>\u3088\u3046\u306b\u3001\u73fe\u72b6\u3067\u306f Icicle Kit \u4e0a\u306e\u30aa\u30f3\u30dc\u30fc\u30c9 FlashPro \u306f\u5229\u7528\u3067\u304d\u305a\u3001\u5916\u90e8\u306e\u30d7\u30ed\u30b0\u30e9\u30de\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306f Libero SoC \u306b\u3082 SoftConsole \u306b\u3082\u542b\u307e\u308c\u305a\u3001<a href=\"https:\/\/www.microsemi.com\/product-directory\/programming\/4977-flashpro\">\u3053\u3053<\/a>\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3001\u5225\u9014\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u524d\u306f FlashPro \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3068\u3044\u3046\u3082\u306e\u304c\u3042\u3063\u305f\u3088\u3046\u3067\u3059\u304c\u3001\u73fe\u5728\u306f Programming and Debug Tools \u3068\u3044\u3046\u540d\u524d\u306e\u30c4\u30fc\u30eb\u306b\u53d6\u3063\u3066\u4ee3\u308f\u3089\u308c\u3001\u3053\u306e\u4e2d\u306b\u3042\u308b FlashPro Express \u3068\u3044\u3046\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3092\u4f7f\u3046\u3053\u3068\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u3001Libero SoC\u3001SoftConsole\u3001\u307e\u305f Programming and Debug Tools \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u3068\u3044\u3046\u524d\u63d0\u3067\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n<h3>HSS \u3092\u66f8\u304d\u8fbc\u3093\u3067\u307f\u308b<\/h3>\n<p>\u3053\u3053\u3067\u306f SoftConsole 6.4\u3001Libero SoC 12.5 \u3092\u4f7f\u3044\u307e\u3059\u3002\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u3001\u30d1\u30b9\u540d\u306f\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u3001\u30d6\u30fc\u30c8\u30e2\u30fc\u30c9\u304c 1\uff08non-secure boot\uff09\u306b\u8a2d\u5b9a\u3055\u308c\u3001hss.elf \u304c\u66f8\u304d\u8fbc\u307e\u308c\u307e\u3059\u3002\u30dd\u30a4\u30f3\u30c8\u306f\u3001<strong>hss.elf \u304c\u7f6e\u304b\u308c\u3066\u3044\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4e0a\u3067\u5b9f\u884c\u3057\u306a\u304f\u3066\u306f\u3044\u3051\u306a\u3044<\/strong>\u3001\u3068\u3044\u3046\u70b9\u3067\u3059\u3002<\/p>\n<pre>bash$ cd hart-software-services\/Default\r\nbash$ export SC_INSTALL_DIR=~\/Microchip\/SoftConsole-v6.4\r\nbash$ export FPGENPROG=\/usr\/local\/microsemi\/Libero_SoC_v12.5\/Libero\/bin64\/fpgenprog\r\nbash$ ~\/Microchip\/SoftConsole-v6.4\/extras\/mpfs\/mpfs-program-bootmode.sh --bootmode 1<\/pre>\n<p>USB-UART \u30d6\u30ea\u30c3\u30b8\u3092\u7d4c\u7531\u3067 UART\uff082\u756a\u76ee\u306e\u4eee\u60f3\u30dd\u30fc\u30c8\uff09\u3092\u8997\u304f\u3068\u3001\u66f8\u304d\u8fbc\u3093\u3060\uff08\u6700\u65b0\u7248\u306e\uff09HSS \u304c\u8d77\u52d5\u3057\u3066\u304f\u308b\u3053\u3068\u304c\u5206\u304b\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<h3>\u6ce8\u610f\u70b9<\/h3>\n<p>\u3044\u304f\u3064\u304b\u6ce8\u610f\u70b9\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u6700\u521d\u306b\u3001\u4e0a\u8a18\u3067\u306f HSS \u3092\u66f8\u304d\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u4ed6\u306b FPGA \u306e\u30b3\u30f3\u30d5\u30a3\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3082\u5b8c\u4e86\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u524d\u63d0\u3067\u3059\u3002FPGA \u304c\u69cb\u6210\u3055\u308c\u3066\u3044\u306a\u3044\u3068\u3001MSS \u306f\u52d5\u4f5c\u3057\u307e\u305b\u3093\u3002Icicle \u30ad\u30c3\u30c8\u7528\u306e\u6700\u65b0\u7248\u306e\u30b3\u30f3\u30d5\u30a3\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\uff08\u5408\u6210\u6e08\u307f\u306e\u30d3\u30c3\u30c8\u30b9\u30c8\u30ea\u30fc\u30e0\uff09\u306f\u3001<del>\u3053\u3061\u3089<\/del>\uff08\u30ea\u30f3\u30af\u5148\u304c\u7121\u304f\u306a\u308a\u307e\u3057\u305f\uff09\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002\u306a\u304a\u3001GitHub \u30b5\u30a4\u30c8\u3067\u306f\u8a73\u3057\u304f\u66f8\u304b\u308c\u3066\u3044\u307e\u305b\u3093\u304c\u3001Icicle-Kit-emmc-2020.10.zip \u306e\u4e2d\u306b\u3042\u308b .job \u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u306b\u306f\u3001FlashPro Express\uff08<tt>\/usr\/local\/microsemi\/Program_Debug_v12.5\/Program_Debug_Tool\/bin\/FPExpress<\/tt>\uff09\u3092\u8d77\u52d5\u3057\u3066\u3001\u305d\u3053\u304b\u3089\u5229\u7528\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>2\u3064\u3081\u306e\u6ce8\u610f\u70b9\u306f\u3001\u3082\u3057 PolarFire SoC \u306e MSS \u304c\u30d6\u30fc\u30c8\u30e2\u30fc\u30c9 0 \u306b\u306a\u3063\u3066\u3044\u308b\u5834\u5408\u3001FlashPro Express \u3067 .job \u30d5\u30a1\u30a4\u30eb\u3092\u51e6\u7406\u3057\u3066\u30d7\u30ed\u30b0\u30e9\u30e0\u3057\u3066\u3082\u3001HSS \u306f\u30d6\u30fc\u30c8\u3057\u306a\u3044\u3001\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002\u524d\u8ff0\u306e\u3088\u3046\u306b\u3001<tt>mpfs-program-bootmode.sh<\/tt> \u3092\u4f7f\u308f\u306a\u3044\u3068\u3001\u30d6\u30fc\u30c8\u30e2\u30fc\u30c9\u304c\u6b63\u3057\u304f\u8a2d\u5b9a\u3055\u308c\u306a\u3044\u306e\u3067\u306f\u306a\u3044\u304b\u3001\u3068\u60f3\u50cf\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p><strong>\u8ffd\u8a18\uff0810\u670819\u65e5\uff09<\/strong>: 3\u3064\u3081\u306e\u6ce8\u610f\u70b9\u3068\u3057\u3066\u3001eMMC \u7528\u306e Linux \u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u3068 SD \u30ab\u30fc\u30c9\u7528\u306e\u30a4\u30e1\u30fc\u30b8\u306f<strong>\u540c\u3058\u3067\u306a\u3044<\/strong>\u3001\u3068\u3044\u3046\u3082\u306e\u3067\u3059\u3002\u4e0a\u8a18 GitHub \u30b5\u30a4\u30c8\u304b\u3089\uff08.wic.gz \u3042\u308b\u3044\u306f .wic.zip \u30d5\u30a1\u30a4\u30eb\uff09\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u6642\u306b\u306f\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u4f8b\u3048\u3070\u3001eMMC \u7528\u306e\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u3067 SD \u30ab\u30fc\u30c9\u304b\u3089\u30d6\u30fc\u30c8\u3059\u308b\u3068\u3001<\/p>\n<pre>[ 0.805143] Waiting for root device \/dev\/mmcblk0p3...<\/pre>\n<p>\u306e\u3088\u3046\u306a\u30ab\u30fc\u30cd\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u51fa\u3057\u3066\u6b62\u307e\u3063\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u5177\u4f53\u7684\u306b\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u306e\u4f55\u304c\u9055\u3046\u304b\u3068\u3044\u3046\u3068\u3001\uff08.dts \u304b\u3089\u751f\u6210\u3055\u308c\u308b\uff09.dtb \u30d5\u30a1\u30a4\u30eb\u304c\u7570\u306a\u308a\u307e\u3059\u3002.dts \u306e\u5dee\u5206\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre>$ diff -cw icicle-kit-es\/icicle-kit-es.dts icicle-kit-es-sd\/icicle-kit-es-sd.dts \r\n*** icicle-kit-es\/icicle-kit-es.dts     Sun Oct 18 12:14:25 2020\r\n--- icicle-kit-es-sd\/icicle-kit-es-sd.dts       Sun Oct 18 12:14:25 2020\r\n***************\r\n*** 246,252 ****\r\n              clocks = &lt;&amp;clkcfg 11&gt;;\r\n              status = \"okay\";\r\n          };\r\n!         emmc: sdhc@20008000 {\r\n             compatible = \"cdns,sd4hc\";\r\n             reg = &lt;0x0 0x20008000 0x0 0x1000&gt;;\r\n             interrupt-parent = &lt;&amp;L1&gt;;\r\n--- 246,252 ----\r\n              clocks = &lt;&amp;clkcfg 11&gt;;\r\n              status = \"okay\";\r\n          };\r\n!         \/*emmc: sdhc@20008000 {\r\n             compatible = \"cdns,sd4hc\";\r\n             reg = &lt;0x0 0x20008000 0x0 0x1000&gt;;\r\n             interrupt-parent = &lt;&amp;L1&gt;;\r\n\uff08\u7565\uff09<\/pre>\n<p>\u5206\u304b\u308a\u307e\u3057\u305f\u306d?\u00a0 \u56de\u8def\u56f3\u3092\u898b\u3066\u3082\u5206\u304b\u308b\u306e\u3067\u3059\u304c\u3001eMMC \u3068 SD \u30ab\u30fc\u30c9\u3067\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306e\u4ed5\u69d8\u304c\u9055\u3046\u306e\u3067\u3059\u306d\u3002<\/p>\n<blockquote><p><strong>\u8ffd\u8a18\uff0810\u670822\u65e5\uff09<\/strong>: HSS\uff08Hart Software Services\uff09\u306e\u30d0\u30a4\u30ca\u30ea\u3082\u3001eMMC \u7248\u3068 SD \u30ab\u30fc\u30c9\u7248\u3067\u306f\u7570\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u4e00\u70b9\u76ee\u3067\u3059\u304c\u3001<span class=\"s1\">hart-software-services \u306e\u00a0<\/span><span class=\"s1\">boards\/icicle-kit-es\/ \u306b\u3042\u308b def_config \u3068 def_config.sdcard \u3092\u6bd4\u3079\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002SD \u30ab\u30fc\u30c9\u3092\u4f7f\u3046\u3068\u304d\u306f\u3001\u5f8c\u8005\u3092\uff08.config \u306b\u30b3\u30d4\u30fc\u3059\u308b\u306a\u3069\u3057\u3066\uff09\u4f7f\u3044\u307e\u3059\u3002<\/span><\/p>\n<p>\u4e8c\u70b9\u76ee\u3067\u3059\u304c\u3001<span class=\"s1\">boards\/icicle-kit-es\/soc_config \u306f eMMC \u7528\u306e XML \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002SD\u30ab\u30fc\u30c9\u3067\u4f7f\u3046\u3068\u304d\u306f\u3001SD \u30ab\u30fc\u30c9\u7528\u306e XML \u30d5\u30a1\u30a4\u30eb\u3067\u00a0boards\/icicle-kit-es\/soc_fpga_design\/xml\/ICICLE_MSS_0.xml \u3092\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002soc_config \u30d5\u30a1\u30a4\u30eb\u306f make \u306e\u9014\u4e2d\u3067\u4e0a\u66f8\u304d\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067\u3001soc_config \u3092\u5dee\u3057\u66ff\u3048\u3066\u3082\u30c0\u30e1\u3067\u3059\u3002<\/span><\/p><\/blockquote>\n<h3 id=\"hss_bootimage\">HSS \u3068 HSS \u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8<\/h3>\n<p>\u3055\u3066\u3002\u4e0a\u8a18\u307e\u3067\u3067 HSS \u304c\u7121\u4e8b\u306b\u8d77\u52d5\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u304c\u3001\u305d\u308c\u3060\u3051\u3067\u306f Linux \u3084 RTOS \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8d77\u52d5\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\u3082\u3061\u308d\u3093\u3001\u51fa\u8377\u6642\u306b\u306f eMMC \u306b HSS \u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u3068\u3057\u3066 U-Boot \u304c\u66f8\u304d\u8fbc\u307e\u308c\u3066\u3044\u307e\u3059\u304b\u3089\u3001\u305d\u306e\u307e\u307e Linux \u306e\u30d6\u30fc\u30c8\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u3059\u304c\u3001eMMC \u306e\u5185\u5bb9\u306f\u3069\u3046\u3084\u3063\u3066\u7528\u610f\u3057\u305f\u3089\u826f\u3044\u306e\u3067\u3057\u3087\u3046\u304b\u3002<\/p>\n<p>HSS \u306f\u3001\u81ea\u5206\u304c\u6b21\u306b\u30d6\u30fc\u30c8\u3059\u308b\uff082\u6b21\u30d6\u30fc\u30c8\uff09\u306e\u30a4\u30e1\u30fc\u30b8\u3092\u300cHSS boot image\u300d\u3068\u547c\u3093\u3067\u3044\u307e\u3059\u3002\u3053\u308c\u306f eNVM \u306b\u66f8\u304d\u8fbc\u3093\u3060 hss.elf \u3068\u306f\u5225\u7269\u3067\u3059\u306e\u3067\u6ce8\u610f\u3057\u307e\u3057\u3087\u3046\u3002\u3053\u306e HSS boot \u30a4\u30e1\u30fc\u30b8\u306f eMMC\uff08\u3042\u308b\u3044\u306f SD \u30ab\u30fc\u30c9\u3002\u4ee5\u4e0b\u7565\uff09\u306b\u7f6e\u304b\u308c\u307e\u3059\u3002\u5358\u7d14\u306b\u3001eMMC \u4e0a\u306e\u5148\u982d\u30bb\u30af\u30bf\u304b\u3089\u7f6e\u304f\u304b\u3068\u3044\u3046\u3068\u3001HSS \u306f\u51dd\u3063\u305f\u8a2d\u8a08\u306b\u306a\u3063\u3066\u304a\u308a\u3001\u307e\u305a eMMC \u304c\u00a0GUID Partition Table\uff08\u6700\u8fd1\u306e\u30cf\u30fc\u30c9\u30c7\u30a3\u30b9\u30af\u3084 SSD \u306e\u6a19\u6e96\u7684\u306a\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u69cb\u9020\u3002\u7565\u3057\u3066 GPT\uff09\u3067\u7ba1\u7406\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u524d\u63d0\u3068\u3057\u3066\u3044\u307e\u3059\u3002eMMC \u304c GPT \u3067\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3068\u3001\u6b21\u306b\u305d\u306e\u4e2d\u304b\u3089 BIOS boot partition \u3068\u3044\u3046\u3082\u306e\u3092\u63a2\u3057\u307e\u3059\u3002\u305d\u308c\u304c\u898b\u3064\u304b\u308b\u3068\u3001\u305d\u306e\u5148\u982d\u30bb\u30af\u30bf\u304b\u3089 HSS boot image \u3068\u3057\u3066\u53d6\u308a\u8fbc\u307f\u307e\u3059\u3002HSS boot image \u306e\u5148\u982d\u306b\u306f\u7279\u6b8a\u306a\u30de\u30b8\u30c3\u30af\u5024\uff08<tt>0xde, 0xc0, 0x07, 0xb0<\/tt>\uff09\u304c\u3042\u308b\u306e\u3067\u3001\u78ba\u304b\u306b\u305d\u308c\u304c HSS boot image \u3067\u3042\u308b\u3053\u3068\u304c\u5206\u304b\u308b\u8a33\u3067\u3059\u3002<\/p>\n<p>\u3055\u3066\u3001\u3088\u3046\u3084\u304f HSS boot image \u3092\u53d6\u5f97\u3067\u304d\u307e\u3057\u305f\u304c\u3001\u3053\u308c\u3082\u5358\u7d14\u306a ELF \u30d5\u30a1\u30a4\u30eb\u3067\u306f\u306a\u304f\u3001\u30de\u30eb\u30c1\u30b3\u30a2\u3092\u8003\u616e\u3057\u305f\u69cb\u9020\u30c7\u30fc\u30bf\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u8a73\u3057\u304f\u306f\u3001<a href=\"https:\/\/www.microsemi.com\/product-directory\/fpga-soc\/5210-mi-v-embedded-ecosystem#renode-webinar-series\">\u4ee5\u524d\u306e\u30a6\u30a7\u30d3\u30ca\u30fc\u30b7\u30ea\u30fc\u30ba<\/a>\u306e\u7b2c 13\u56de\u3067\u53d6\u308a\u4e0a\u3052\u3089\u308c\u3066\u3044\u308b\u306e\u3067\u3001\u53c2\u8003\u306b\u3057\u3066\u307f\u304f\u3060\u3055\u3044\u3002\u7c21\u5358\u306b\u8aac\u660e\u3059\u308b\u3068\u3001\u6b21\u306e\u3088\u3046\u306a\u69cb\u9020\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<ul>\n<li>\u30d8\u30c3\u30c0<\/li>\n<li>U54 \u30b3\u30a2 1 \u7528\u306e\u30d6\u30fc\u30c8\u30d6\u30ed\u30c3\u30af\n<ul>\n<li>\u30ed\u30fc\u30c9\u30a2\u30c9\u30ec\u30b9<\/li>\n<li>\u30a8\u30f3\u30c8\u30ea\u30dd\u30a4\u30f3\u30c8<\/li>\n<li>\u30b5\u30a4\u30ba<\/li>\n<li>CRC32<\/li>\n<\/ul>\n<\/li>\n<li>U54 \u30b3\u30a2 2 \u7528\u306e\u30d6\u30fc\u30c8\u30d6\u30ed\u30c3\u30af\uff08\u540c\u4e0a\uff09<\/li>\n<li>U54 \u30b3\u30a2 3 \u7528\u306e\u30d6\u30fc\u30c8\u30d6\u30ed\u30c3\u30af\uff08\u540c\u4e0a\uff09<\/li>\n<li>U54 \u30b3\u30a2 4 \u7528\u306e\u30d6\u30fc\u30c8\u30d6\u30ed\u30c3\u30af\uff08\u540c\u4e0a\uff09<\/li>\n<li>U54 \u30b3\u30a2 1 \u7528\u306e BSS\uff08\u30bc\u30ed\u521d\u671f\u5316\uff09\u7528\u60c5\u5831\n<ul>\n<li>\u958b\u59cb\u30a2\u30c9\u30ec\u30b9<\/li>\n<li>\u30b5\u30a4\u30ba<\/li>\n<\/ul>\n<\/li>\n<li>U54 \u30b3\u30a2 2 \u7528\u306e BSS\uff08\u30bc\u30ed\u521d\u671f\u5316\uff09\u7528\u60c5\u5831\uff08\u540c\u4e0a\uff09<\/li>\n<li>U54 \u30b3\u30a2 3 \u7528\u306e BSS\uff08\u30bc\u30ed\u521d\u671f\u5316\uff09\u7528\u60c5\u5831\uff08\u540c\u4e0a\uff09<\/li>\n<li>U54 \u30b3\u30a2 4 \u7528\u306e BSS\uff08\u30bc\u30ed\u521d\u671f\u5316\uff09\u7528\u60c5\u5831\uff08\u540c\u4e0a\uff09<\/li>\n<\/ul>\n<p>\u3082\u3061\u308d\u3093\u3001\u3053\u306e HSS boot image \u3092\u751f\u6210\u3057\u3066\u304f\u308c\u308b\u30c4\u30fc\u30eb\u304c\u3042\u308a\u3001\u305d\u308c\u304c HSS \u306e\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u306e\u4e2d\u306e\u3001tools\/bin2chunks \u3067\u3059\u3002\u4f8b\u3048\u3070\u3001<\/p>\n<pre>bash$ \uff08\u3069\u3053\u304b\u306e\uff09\/tools\/bin2chunks\/bin2chunks \\\r\n    0x80200000 0x80200000 0x80200000 0x80200000 \\\r\n    32768 payload.bin 1 1 \uff08\u3069\u3053\u304b\u306e\uff09\/u-boot.bin 0x80200000<\/pre>\n<p>\u306e\u3088\u3046\u306b\u4f7f\u3044\u307e\u3059\u3002\uff08\u3053\u308c\u306f\u3001Buildroot \u7528\u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u305f\u4f8b\u3067\u3001\u73fe\u5728\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b Yocto \u306e\u3082\u306e\u3068\u306f\u5c11\u3057\u9055\u3046\u304b\u3082\u77e5\u308c\u307e\u305b\u3093\u3002\uff09<\/p>\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u5404 U54 \u30b3\u30a2\u306e\u5b9f\u884c\u958b\u59cb\u30a2\u30c9\u30ec\u30b9\u306f 0x80200000 \u3067\u3042\u308a\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\uff08\u30d6\u30ed\u30c3\u30af\u306e\u5206\u5272\u30b5\u30a4\u30ba\u3002\u7279\u306b\u5909\u66f4\u305b\u305a\u3001\u3053\u3053\u307e\u307e\u306e\u5024\u3067\u826f\u3044\u307d\u3044\uff09\u304c 32768\u3001\u751f\u6210\u3059\u308b\u30d6\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u304c payload.bin\u3001\u30b3\u30a2 1 \u7528\u306e\u30a4\u30e1\u30fc\u30b8\u304c u-boot.bin \u3067\u3001\u30ed\u30fc\u30c9\u30a2\u30c9\u30ec\u30b9\u304c 0x80200000 \u3067\u3042\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u300c1 1\u300d\u3068\u3042\u308b\u306e\u306f\u3001\u521d\u3081\u306e 1 \u304c\u30b3\u30a2 ID \u3067\u3001\u6b21\u306e 1 \u306f\u3001\u5b9f\u884c\u30e2\u30fc\u30c9\u304c\u30b9\u30fc\u30d1\u30d0\u30a4\u30b6\u30e2\u30fc\u30c9\uff08RISC-V \u306e\u30de\u30cb\u30e5\u30a2\u30eb\u53c2\u7167\uff09\u3067\u3042\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2 id=\"yocto-partition\">Yocto\/OpenEmbedded \u306e\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u30c6\u30fc\u30d6\u30eb<\/h2>\n<p>\u4e0a\u8a18\u307e\u3067\u3092\u8aad\u3093\u3067\u3001U-Boot \u304c\u8d77\u52d5\u3059\u308b\u307e\u3067\u306e\u304a\u304a\u307e\u304b\u306a\u6d41\u308c\u306f\u304a\u5206\u304b\u308a\u306b\u306a\u3063\u305f\u304b\u3068\u601d\u3044\u307e\u3059\u3002\u6700\u5f8c\u306b\u3001eMMC \u4e0a\u306e\u4ed6\u306e\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u3092\u7c21\u5358\u306b\u8aac\u660e\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<p>\u4e0a\u8a18\u306e BIOS boot partition \u4ee5\u5916\u306b\u3001FAT \u306e\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u3068 ext4 \u306e\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u304c\u7528\u610f\u3055\u308c\u3066\u304a\u308a\u3001\u524d\u8005\u306b\u306f<\/p>\n<ul>\n<li>boot.scr.uimg: U-Boot \u7528\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30a1\u30a4\u30eb?<\/li>\n<li>fitImage: Linux \u30ab\u30fc\u30cd\u30eb\u3084 initramfs\u3001DTB \u30d5\u30a1\u30a4\u30eb\u3067\u69cb\u6210\u3055\u308c\u305f FIT \u30a4\u30e1\u30fc\u30b8<\/li>\n<li>payload.bin: \u306a\u305c\u304b\u3053\u3053\u306b\u3082 HSS boot image\uff08\u7528\u9014\u306f\u4e0d\u660e\uff09<\/li>\n<\/ul>\n<p>\u5f8c\u8005\u306b\u306f Linux \u306e root \u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u304c\u542b\u307e\u308c\u307e\u3059\u3002<\/p>\n<p>OpenEmbedded \u3084 Buildroot \u306b\u3064\u3044\u3066\u306f\u7686\u69d8\u306e\u307b\u3046\u304c\u304a\u8a73\u3057\u3044\u3068\u601d\u3044\u307e\u3059\u306e\u3067\u3001\u79c1\u306f\u6b21\u56de\u304b\u3089\u3001bare-matel \u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u305f\u7d44\u8fbc\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a55\u4fa1\u306e\u307b\u3046\u306b\u79fb\u3063\u3066\u3044\u304d\u305f\u3044\u3068\u8003\u3048\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2 id=\"vmware\">\u4eca\u56de\u3082\u304a\u307e\u3051\uff08VMware \u3068\u306e\u76f8\u6027\u306f?\uff09<\/h2>\n<p>\u79c1\u306f\u666e\u6bb5\u3001Linux \u74b0\u5883\u306f VMware \u306e\u30b2\u30b9\u30c8 OS \u3068\u3057\u3066\u7528\u610f\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\u3001\u305d\u3053\u3067\u00a0Programming and Debug Tools \u3084 OpenOCD \u3092\u52d5\u304b\u3059\u3068\u3001\u7570\u69d8\u306b\u52d5\u4f5c\u304c\u9045\u3044\u3053\u3068\u306b\u6c17\u3065\u304d\u307e\u3057\u305f\uff08VMware Fusion 12.0.0 \u3067\u78ba\u8a8d\uff09\u3002\u7279\u306b\u5f8c\u8005\u306f\u3001\u3042\u307e\u308a\u306b\u9045\u3059\u304e\u3066 OpenOCD \u3084 GDB \u304c\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3057\u3066\u3057\u307e\u3046\u307b\u3069\u3067\u3059\u3002\u5b9f\u74b0\u5883\u306e Linux \u3067\u52d5\u304b\u3057\u305f\u3089\u554f\u984c\u306f\u89e3\u6c7a\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u79c1\u306f\u5b9f\u74b0\u5883\u306e PC \u3092\u305f\u304f\u3055\u3093\u7528\u610f\u3059\u308b\u306e\u306f\u5acc\u3044\u306a\u306e\u3067\u56f0\u3063\u305f\u3053\u3068\u3067\u3059\u304c\u3001\u3084\u3080\u3092\u5f97\u305a\u3001\u4ee5\u524d\u4f7f\u3063\u3066\u3044\u305f MacMini \u3092\u6301\u3061\u51fa\u3057\u3001\u305d\u3053\u306b Ubuntu \u3092\u5165\u308c\u3066\u307f\u307e\u3057\u305f\u3002\u305d\u3053\u3067\u3082 Fusion Drive \u7d61\u307f\u3067\u4e00\u82e6\u52b4\u3042\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u305d\u308c\u306f\u3055\u3066\u304a\u304d\u3002<\/p>\n<p>\u5b9f\u74b0\u5883\u306e Linux \u306b Libero SoC \u3084 SoftConsole \u3092\u5165\u308c\u3066\u56f0\u308b\u306e\u306f\u3001\u673a\u306e\u4e0a\u306b\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u3084\u30ad\u30fc\u30dc\u30fc\u30c9\u3092\u65b0\u305f\u306b\u7528\u610f\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u3053\u3068\u3067\u3059\u3002\u305d\u3053\u3067 X11 \u30b5\u30fc\u30d0\u30fc\uff08XQuartz\uff09\u3084 VNC \u3092\u99c6\u4f7f\u3057\u3088\u3046\u3068\u3057\u305f\u306e\u3067\u3059\u304c\u3001\u3042\u3061\u3089\u3092\u7acb\u3066\u308c\u3070\u3053\u3061\u3089\u304c\u7acb\u305f\u305a\u72b6\u614b\u3067\u3001\u3053\u308c\u307e\u305f\u4e00\u82e6\u52b4\u3002\u7d50\u8ad6\u3068\u3057\u3066\u306f\u3001Libero SoC \u3084\u00a0Programming and Debug Tools \u306f X11 \u306b\u98db\u3070\u3059\u306e\u304c\u826f\u3055\u305d\u3046\u3067\u3059\u3002\u3088\u304f\u3042\u308b\u30d5\u30a9\u30f3\u30c8\u7d61\u307f\u306e\u554f\u984c\u3082\u3001\u4eca\u306e\u3068\u3053\u308d\u306a\u3055\u305d\u3046\u3002\u305f\u3060\u3057 SoftConsole \u306f X11 \u3060\u3068\u3046\u307e\u304f\u52d5\u4f5c\u305b\u305a\uff08\u7121\u7406\u3084\u308a\u8d77\u52d5\u3055\u305b\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u3057\u305f\u304c\u3001\u30bd\u30fc\u30b9\u7de8\u96c6\u753b\u9762\u304c\u3061\u3089\u3064\u3044\u305f\u308a\u3057\u3066\u5b9f\u7528\u306b\u306a\u3089\u305a\uff09\u3001\u304b\u3068\u3044\u3063\u3066 VNC \u3067\u306f\u30ec\u30b9\u30dd\u30f3\u30b9\u304c\u60aa\u3059\u304e\u3066\u3001\u3053\u308c\u307e\u305f\u5b9f\u7528\u306b\u306a\u308a\u307e\u305b\u3093\u3002<\/p>\n<p>\u4eca\u306e\u3068\u3053\u308d\u306e\u89e3\u6c7a\u7b56\u3068\u3057\u3066\u306f\u3001<\/p>\n<ul>\n<li>FPGA \u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u6642\u306f\u3001Libero SoC \u3084\u00a0Programming and Debug Tools \u3092 X11 \u7d4c\u7531\u3067\u4f7f\u3046\u3002<\/li>\n<li>Libero SoC \u4e0a\u3067\u306e\u8a2d\u8a08\u306f VMware \u4e0a\u3067\u884c\u3046\u3002<\/li>\n<li>\u30bd\u30d5\u30c8\u306e\u30c7\u30d0\u30c3\u30b0\u6642\u306f\u3001\u5b9f\u74b0\u5883 Linux \u4e0a\u306e\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067 OpenOCD \u3060\u3051\u7acb\u3061\u4e0a\u3052\u3001VMware \u4e0a\u306e SoftConsole \u304b\u3089\u30ea\u30e2\u30fc\u30c8\u3067 OpenOCD \u306b\u63a5\u7d9a\u3057\u3066\u4f7f\u3046\u3002<\/li>\n<\/ul>\n<p>\u3068\u3044\u3046\u306e\u304c\u73fe\u5b9f\u89e3\u306e\u3088\u3046\u3067\u3059\u3002\u3064\u307e\u308a\u3001\u5b9f\u74b0\u5883\u3068VMware \u4e0a\u3068\u4e21\u65b9\u306b\u30c4\u30fc\u30eb\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5fc5\u8981\u306a\u8a33\u3067\u3059\u306d\u3002<\/p>\n<p>\u305d\u308c\u306b\u3057\u3066\u3082 JTAG \u30a8\u30df\u30e5\u30ec\u30fc\u30bf\u3068 VMware \u306f\u3001\u3044\u3064\u3082\u76f8\u6027\u306e\u554f\u984c\u3067\u60a9\u307e\u3055\u308c\u307e\u3059\u3002\uff08TI \u306e\u304b\u3064\u3066\u306e XDS510 \u306f\u5168\u304f\u52d5\u304b\u305a\u3002XDS100 \u3082\u9045\u3044\u3002XDS560 \u306f\u5927\u4e08\u592b\u3002\uff09 \u3053\u308c\u306f\u3001JTAG \u30a8\u30df\u30e5\u30ec\u30fc\u30bf\u306b\u3088\u308b\u901a\u4fe1\u306f\u5c0f\u3055\u306a\u30c7\u30fc\u30bf\u3092\u53cc\u65b9\u5411\u306b\u9ad8\u983b\u5ea6\u3067\u3084\u308a\u3068\u308a\u3059\u308b\u3053\u3068\u304c\u591a\u304f\u3001VMware \u306b\u3088\u308b USB \u30a8\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u308f\u305a\u304b\u306e\u6027\u80fd\u52a3\u5316\u304c\u3001\u5927\u304d\u306a\u9045\u5ef6\uff08\u30ec\u30a4\u30c6\u30f3\u30b7\uff09\u306b\u7e4b\u304c\u308b\u305f\u3081\u3060\u3068\u601d\u3044\u307e\u3059\u3002\u30c7\u30d0\u30a4\u30b9\u30e1\u30fc\u30ab\u30fc\u3055\u3093\u306b\u306f\u3001\u305c\u3072\u3068\u3082 VMware \u306e\u3088\u3046\u306a\u4eee\u60f3\u74b0\u5883\u3067\u306e JTAG \u30a8\u30df\u30e5\u30ec\u30fc\u30bf\u306e\u4f7f\u3044\u52dd\u624b\u306b\u3001\u3082\u3046\u5c11\u3057\u914d\u616e\u3092\u304a\u9858\u3044\u3057\u305f\u3044\u3068\u3053\u308d\u3067\u3059\u3002\uff08\u8fd1\u5e74\u3001\u500b\u4eba\u7684\u306b\u306f VMware \u7121\u3057\u306e\u958b\u767a\u306f\u8003\u3048\u3089\u308c\u306a\u3044\u72b6\u6cc1\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\uff09<\/p>\n<p>\u4eca\u65e5\u306f\u3053\u3053\u307e\u3067\u3002<\/p>\n<h2>\u304a\u554f\u3044\u5408\u308f\u305b\u306f\u304a\u6c17\u8efd\u306b!<\/h2>\n<div class=\"wpforms-container wpforms-container-full\" id=\"wpforms-2662\"><form id=\"wpforms-form-2662\" class=\"wpforms-validate wpforms-form\" data-formid=\"2662\" method=\"post\" enctype=\"multipart\/form-data\" action=\"\/wp\/wp-json\/wp\/v2\/posts\/4081\" data-token=\"abebbe06ca17e1e5b59c28fbcf6183e1\"><noscript class=\"wpforms-error-noscript\">\u3053\u306e\u30d5\u30a9\u30fc\u30e0\u306b\u5165\u529b\u3059\u308b\u306b\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u30fc\u3067 JavaScript \u3092\u6709\u52b9\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/noscript><div class=\"wpforms-field-container\"><div id=\"wpforms-2662-field_0-container\" class=\"wpforms-field wpforms-field-name\" data-field-id=\"0\"><label class=\"wpforms-field-label\" for=\"wpforms-2662-field_0\">\u304a\u540d\u524d\uff08\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u53ef\uff09 <span class=\"wpforms-required-label\">*<\/span><\/label><input type=\"text\" id=\"wpforms-2662-field_0\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][0]\" required><div class=\"wpforms-field-description\">\u304a\u554f\u3044\u5408\u308f\u305b\u3092\u9802\u3044\u305f\u5f8c\u3001\u7d99\u7d9a\u3057\u3066\u55b6\u696d\u6d3b\u52d5\u3092\u3057\u305f\u308a\u3001\u30cb\u30e5\u30fc\u30b9\u30ec\u30bf\u30fc\u7b49\u3092\u304a\u9001\u308a\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u306f\u3054\u3056\u3044\u307e\u305b\u3093\u3002<\/div><\/div><div id=\"wpforms-2662-field_1-container\" class=\"wpforms-field wpforms-field-email\" data-field-id=\"1\"><label class=\"wpforms-field-label\" for=\"wpforms-2662-field_1\">\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 <span class=\"wpforms-required-label\">*<\/span><\/label><input type=\"email\" id=\"wpforms-2662-field_1\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][1]\" spellcheck=\"false\" required><div class=\"wpforms-field-description\">\u5fa1\u8fd4\u7b54\u306f 24\u6642\u9593\u4ee5\u5185\uff08\u55b6\u696d\u6642\u9593\u4e2d\uff09\u3068\u3055\u305b\u3066\u9802\u3044\u3066\u304a\u308a\u307e\u3059\u3002\u5fc5\u305a\u8fd4\u4fe1\u81f4\u3057\u307e\u3059\u304c\u3001\u6642\u3005\u30a2\u30c9\u30ec\u30b9\u8aa4\u308a\u3068\u601d\u308f\u308c\u308b\u8fd4\u4fe1\u30a8\u30e9\u30fc\u304c\u3054\u3056\u3044\u307e\u3059\u3002\u8fd4\u7b54\u304c\u5c4a\u304b\u306a\u3044\u5834\u5408\u3001\u5927\u5909\u304a\u624b\u6570\u3067\u306f\u3054\u3056\u3044\u307e\u3059\u304c\u5225\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u7763\u4fc3\u9802\u3051\u307e\u3059\u3068\u5e78\u3044\u3067\u3059\u3002<\/div><\/div><div id=\"wpforms-2662-field_5-container\" class=\"wpforms-field wpforms-field-checkbox\" data-field-id=\"5\"><label class=\"wpforms-field-label\" for=\"wpforms-2662-field_5\">\u3044\u304f\u3064\u3067\u3082\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/label><ul id=\"wpforms-2662-field_5\"><li class=\"choice-6 depth-1\"><input type=\"checkbox\" id=\"wpforms-2662-field_5_6\" name=\"wpforms[fields][5][]\" value=\"\u9762\u767d\u304b\u3063\u305f \/ \u53c2\u8003\u306b\u306a\u3063\u305f\"  ><label class=\"wpforms-field-label-inline\" for=\"wpforms-2662-field_5_6\">\u9762\u767d\u304b\u3063\u305f \/ \u53c2\u8003\u306b\u306a\u3063\u305f<\/label><\/li><li class=\"choice-4 depth-1\"><input type=\"checkbox\" id=\"wpforms-2662-field_5_4\" name=\"wpforms[fields][5][]\" value=\"\u79c1\u3082\u3084\u3063\u3066\u307f\u305f\u3044\"  ><label class=\"wpforms-field-label-inline\" for=\"wpforms-2662-field_5_4\">\u79c1\u3082\u3084\u3063\u3066\u307f\u305f\u3044<\/label><\/li><li class=\"choice-1 depth-1\"><input type=\"checkbox\" id=\"wpforms-2662-field_5_1\" name=\"wpforms[fields][5][]\" value=\"\u8a73\u3057\u3044\u8a71\u3092\u805e\u304d\u305f\u3044\"  ><label class=\"wpforms-field-label-inline\" for=\"wpforms-2662-field_5_1\">\u8a73\u3057\u3044\u8a71\u3092\u805e\u304d\u305f\u3044<\/label><\/li><li class=\"choice-3 depth-1\"><input type=\"checkbox\" id=\"wpforms-2662-field_5_3\" name=\"wpforms[fields][5][]\" value=\"\u30bb\u30df\u30ca\u30fc\u3092\u3084\u3063\u3066\u6b32\u3057\u3044\uff08\u76f8\u6a21\u539f\u5e02\u8fd1\u90ca\u3001\u3042\u308b\u3044\u306f\u30cd\u30c3\u30c8\u4f1a\u8b70\u306b\u3066\uff09\"  ><label class=\"wpforms-field-label-inline\" for=\"wpforms-2662-field_5_3\">\u30bb\u30df\u30ca\u30fc\u3092\u3084\u3063\u3066\u6b32\u3057\u3044\uff08\u76f8\u6a21\u539f\u5e02\u8fd1\u90ca\u3001\u3042\u308b\u3044\u306f\u30cd\u30c3\u30c8\u4f1a\u8b70\u306b\u3066\uff09<\/label><\/li><li class=\"choice-2 depth-1\"><input type=\"checkbox\" id=\"wpforms-2662-field_5_2\" name=\"wpforms[fields][5][]\" value=\"\u7d9a\u7de8\u306e\u8a18\u4e8b\u3092\u5e0c\u671b\"  ><label class=\"wpforms-field-label-inline\" for=\"wpforms-2662-field_5_2\">\u7d9a\u7de8\u306e\u8a18\u4e8b\u3092\u5e0c\u671b<\/label><\/li><\/ul><\/div><div id=\"wpforms-2662-field_2-container\" class=\"wpforms-field wpforms-field-textarea\" data-field-id=\"2\"><label class=\"wpforms-field-label\" for=\"wpforms-2662-field_2\">\u30e1\u30c3\u30bb\u30fc\u30b8 <span class=\"wpforms-required-label\">*<\/span><\/label><textarea id=\"wpforms-2662-field_2\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][2]\" required><\/textarea><\/div><\/div><!-- .wpforms-field-container --><div class=\"wpforms-field wpforms-field-hp\"><label for=\"wpforms-2662-field-hp\" class=\"wpforms-field-label\">Phone<\/label><input type=\"text\" name=\"wpforms[hp]\" id=\"wpforms-2662-field-hp\" class=\"wpforms-field-medium\"><\/div><input type=\"hidden\" name=\"wpforms[recaptcha]\" value=\"\"><div class=\"wpforms-submit-container\" ><input type=\"hidden\" name=\"wpforms[id]\" value=\"2662\"><input type=\"hidden\" name=\"wpforms[author]\" value=\"1\"><button type=\"submit\" name=\"wpforms[submit]\" id=\"wpforms-submit-2662\" class=\"wpforms-submit\" data-alt-text=\"\u9001\u4fe1\u4e2d...\" data-submit-text=\"\u9001\u4fe1\" aria-live=\"assertive\" value=\"wpforms-submit\">\u9001\u4fe1<\/button><\/div><\/form><\/div>  <!-- .wpforms-container -->\n","protected":false},"excerpt":{"rendered":"<p>Boot procedure and memory structure of PolarFire SoC \u5148\u65e5\u306f\u3001PolarFire SoC Icicle Kit \u306e\u96fb\u6e90\u3092\u5165\u308c\u3001Linux \u306e\u30d6\u30fc\u30c8\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002\u591a\u304f\u306e\u7686\u69d8\u306f\u65e2\u306b\u305d\u3053\u307e\u3067\u304a\u8a66\u3057\u306e\u3053\u3068\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u3053\u3053\u304b\u3089\u5148\u306b\u9032\u3080\u306b\u3042\u305f\u308a\u3001\u3069\u3053\u3067\u4f55\u3092\u8abf\u3079\u305f\u3089\u3044\u3044\u306e\u304b\u5446\u7136\u3068\u306a\u3055\u3063\u3066\u3044\u308b\u65b9\u3082\u3042\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002 SoC \u30c7\u30d0\u30a4\u30b9\u81ea\u4f53\u306b\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b\u30d6\u30fc\u30c8\u306e\u4ed5\u7d44\uff08MSS boot\uff09\u306b\u3064\u3044\u3066\u306f\u5148\u65e5\u7c21\u5358\u306b\u8aac\u660e\u3057\u307e\u3057\u305f\u304c\u3001\u4eca\u56de\u306f\u3001\u305d\u3053\u304b\u3089\u2026 <span class=\"read-more\"><a href=\"https:\/\/flogics.com\/wp\/2020\/10\/polarfire-soc-boot-and-memory-structure\/\">\u7d9a\u304d\u3092\u8aad\u3080 &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":4085,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[69,145,119],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/posts\/4081"}],"collection":[{"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/comments?post=4081"}],"version-history":[{"count":22,"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/posts\/4081\/revisions"}],"predecessor-version":[{"id":6772,"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/posts\/4081\/revisions\/6772"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/media\/4085"}],"wp:attachment":[{"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/media?parent=4081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/categories?post=4081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flogics.com\/wp\/wp-json\/wp\/v2\/tags?post=4081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}