{"id":2685,"date":"2015-03-26T18:34:14","date_gmt":"2015-03-26T09:34:14","guid":{"rendered":"http:\/\/yasu2.prosou.nu\/blog\/index.php\/2015\/03\/26\/zybo_freebsd\/"},"modified":"2015-03-26T18:34:14","modified_gmt":"2015-03-26T09:34:14","slug":"zybo_freebsd","status":"publish","type":"post","link":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/2015\/03\/26\/2685\/","title":{"rendered":"ZYBO \u3067 FreeBSD \u304c\u52d5\u304f\u307e\u3067 (\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u7de8)"},"content":{"rendered":"<p>\u524d\u56de\u307e\u3067\u306e\u8a18\u4e8b\u3067\u306f Digilent \u304c\u63d0\u4f9b\u3057\u3066\u3044\u308b ZYBO Base Design \u3092\u305d\u306e\u307e\u307e\u4f7f\u3063\u3066 FreeBSD \u3092\u8d77\u52d5\u3059\u308b\u3001\u3068\u3044\u3046\u306e\u3092\u3084\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u3053\u306e Base Design \u306b\u306f HDMI \u306e\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u3084\u3089\u4f55\u3084\u3089\u304c\u8f09\u3063\u3066\u304a\u308a\u3001\u305d\u308c\u306a\u308a\u306b PL \u90e8\u306e\u30ea\u30bd\u30fc\u30b9\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002\u81ea\u5206\u3067 hack \u3059\u308b\u4ee5\u4e0a\u306f\u3001PL \u90e8\u306f\u307b\u3068\u3093\u3069\u304b\u3089\u3063\u307d\u3001\u3068\u3044\u3046\u72b6\u614b\u304b\u3089\u30b9\u30bf\u30fc\u30c8\u3057\u305f\u3044\u306e\u304c\u4eba\u60c5\u3067\u3059\u3002<br \/>\n\u3068\u3044\u3046\u308f\u3051\u3067\u3001\u81ea\u5206\u3067\u3084\u3063\u3066\u307f\u307e\u3057\u305f\u3002\u7d50\u679c\u304b\u3089\u3044\u3046\u3068\u7c21\u5358\u3067\u81ea\u660e\u306a\u7406\u7531\u306a\u306e\u3067\u3059\u304c\u3001\u5b9f\u306f\u3051\u3063\u3053\u3046\u306f\u307e\u308a\u307e\u3057\u305f\u306e\u3067\u3001\u8a18\u9332\u3068\u3057\u3066\u3053\u3053\u306b\u6b8b\u3057\u3066\u304a\u3053\u3046\u3068\u601d\u3044\u307e\u3059\u3002<br \/>\n\u4f5c\u696d\u3092\u59cb\u3081\u308b\u524d\u306b\u3001Digilent \u306e\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u304b\u3089 ZYBO_zynq_def.xml (ZYBO Board Definition File for configuring the Zynq Processing System core in Xilinx Platform Studio and Vivado IP Integrator) \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304a\u304f\u3068\u4fbf\u5229\u3067\u3059\u3002\u3053\u308c\u3092\u4f7f\u3046\u3068\u3001\u30af\u30ed\u30c3\u30af\u3084 MIO \u306e\u8a2d\u5b9a\u306a\u3069\u3092 ZYBO \u7528\u306b\u4e00\u62ec\u3067\u8a2d\u5b9a\u53ef\u80fd\u3067\u3059 (ZedBoard \u7528\u3082\u3042\u308a\u307e\u3059)\u3002<\/p>\n<ol>\n<li>Vivado \u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u308b (XC7Z010-CLG400-1)\n<li>Create Block Design \u3067\u65b0\u3057\u3044\u30d6\u30ed\u30c3\u30af\u30c7\u30b6\u30a4\u30f3\u3092\u958b\u304f\n<li>Add IP \u3067 Zynq7 Processing System \u3092\u52a0\u3048\u308b\n<li>\u73fe\u308c\u305f Zynq PS \u306e\u30d6\u30ed\u30c3\u30af\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u3066\u8a2d\u5b9a\u753b\u9762\u3092\u958b\u304f\n<\/ol>\n<p>\u3053\u308c\u3067\u3001&#8221;Import XPS Settings&#8221; \u304b\u3089\u3055\u304d\u307b\u3069\u306e ZYBO_zynq_def.xml \u3092\u8aad\u307f\u8fbc\u3080\u3068\u3001\u753b\u9762\u304c\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n<a href=\"http:\/\/yasu2.prosou.nu\/blog\/2015\/03\/26\/zynq-customize.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"zynq-customize.png\" src=\"http:\/\/yasu2.prosou.nu\/blog\/assets_c\/2015\/03\/zynq-customize-thumb-400xauto-1444.png\" width=\"400\" height=\"280\" class=\"mt-image-none\" style=\"\" \/><\/a><br \/>\nI2C \u3084 UART1, SD0, USB0, ENET0 \u306a\u3069\u306b\u30c1\u30a7\u30c3\u30af\u304c\u5165\u3063\u305f\u3089 PS \u306e\u8a2d\u5b9a\u306f OK \u3067\u3059\u3002Clock Configuration \u3084 DDR Configuration \u306a\u3069\u3082\u6b63\u3057\u304f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u306f\u305a\u3067\u3059\u3002\u3053\u306e\u3042\u3068\u3001PS \u5468\u8fba\u90e8\u306e\u8a2d\u5b9a\u3092\u3057\u3066\u3044\u304d\u307e\u3059\u3002<br \/>\n\u30dd\u30a4\u30f3\u30c8\u306f\u3001<\/p>\n<ul>\n<li>DDR \u3068 FIXED_IO \u306f Make External \u3059\u308b (\u3053\u308c\u306f\u81ea\u52d5\u3067\u3082\u3067\u304d\u308b)\n<li>IIC_0 (I2C\u306e\u3053\u3068) \u3082 Make External \u3059\u308b\n<li>SDIO0_WP \u306f Low \u306b\u843d\u3068\u3059\n<li>Master AXI GP port \u306e\u30af\u30ed\u30c3\u30af\u306f FCLK_CLK0 \u3092\u3064\u306a\u3044\u3067\u304a\u304f\n<\/ul>\n<p>\u3068\u3044\u3046\u3042\u305f\u308a\u3067\u3059\u3002<br \/>\nDDR (DDR SDRAM) \u3068\u3001FIXED_IO (\u56fa\u5b9a\u6a5f\u80fd\u30d4\u30f3) \u306f\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3066 &#8220;Make External&#8221; \u3059\u308c\u3070\u4e0b\u306e\u56f3\u306e\u3088\u3046\u306b\u30d6\u30ed\u30c3\u30af\u306e\u51fa\u529b\u30dd\u30fc\u30c8\u3068\u306a\u308a\u3001\u3053\u308c\u306f\u30d4\u30f3\u304c\u6c7a\u307e\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u306a\u306b\u3082\u3057\u306a\u304f\u3066\u3082\u914d\u7f6e\u914d\u7dda\u5f8c\u306b\u3061\u3083\u3093\u3068\u5916\u306b\u3067\u3066\u304f\u308c\u307e\u3059\u3002<br \/>\nIIC_0 (I2C) \u3082\u540c\u69d8\u306b Make External \u3057\u3066\u30d6\u30ed\u30c3\u30af\u306e\u5916\u306b\u51fa\u3057\u307e\u3059\u304c\u3001\u3053\u308c\u306f Zynq PS \u306e\u8a2d\u5b9a\u306e Peripheral I\/O Pins \u306e\u753b\u9762\u3067\u898b\u308b\u3068 &#8220;EMIO&#8221; \u3067\u306a\u3063\u3066\u304a\u308a\u3001PL \u90e8\u306e programmable fabric \u306b\u3064\u306a\u304c\u308b\u306e\u3067\u3001\u6700\u7d42\u7684\u306b\u3069\u3053\u306e\u30d4\u30f3\u306b\u3064\u306a\u304c\u308b\u304b\u3092\u81ea\u5206\u3067\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\nI2C\u3001\u4f55\u306b\u4f7f\u3046\u306e\u304b\u308f\u304b\u3089\u306a\u304f\u3066\u653e\u7f6e\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u3001\u5b9f\u306f ZYBO \u3067\u306f MAC \u30a2\u30c9\u30ec\u30b9\u304c I2C ROM \u306b\u8a18\u9332\u3055\u308c\u3066\u304a\u308a\u3001FSBL \u3092\u66f8\u304d\u63db\u3048\u308b\u3068\u3053\u308d\u306e\u30b3\u30fc\u30c9 (fsbl_hooks.c) \u3067\u306f\u3053\u306e ROM \u3092\u53c2\u7167\u3057\u306b\u3044\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u3068\u304d I2C \u304c\u914d\u7dda\u3055\u308c\u3066\u3044\u306a\u3044\u3068\u305d\u3053\u3067\u6b62\u307e\u3063\u3066\u3057\u307e\u3044\u3001OS \u306e\u8d77\u52d5\u307e\u3067\u305f\u3069\u308a\u7740\u3051\u306a\u3044\u306e\u3067\u6ce8\u610f\u3057\u307e\u3057\u3087\u3046\u3002<br \/>\n\u307e\u305f\u3001ZYBO \u306b\u306f Micro SD \u30ab\u30fc\u30c9\u30b9\u30ed\u30c3\u30c8\u304c\u8f09\u3063\u3066\u3044\u307e\u3059\u304c\u3001Micro SD \u306a\u306e\u3067 Write Protect \u306e\u691c\u51fa\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u3053\u308c\u3082 EMIO \u306b\u51fa\u3066\u3044\u308b\u30d4\u30f3\u3067\u3059\u306e\u3067\u3001Add IP \u3067 &#8220;Constant&#8221; \u3092\u547c\u3073\u51fa\u3057\u3066\u3001\u5024\u3092 0 \u306b\u3057\u3066 SDIO0_WP \u306b\u3064\u306a\u3044\u3067\u3057\u307e\u3044\u307e\u3057\u3087\u3046\u3002<br \/>\nMaster AXI \u30dd\u30fc\u30c8\u304c\u3072\u3068\u3064\u3042\u308a\u307e\u3059\u304c\u3001\u3044\u307e\u306e\u3068\u3053\u308d\u4f7f\u308f\u306a\u3044\u306e\u3067\u3001\u3053\u306e\u30af\u30ed\u30c3\u30af\u306f FCLK_CLK0 \u306b\u3064\u306a\u3044\u3067\u304a\u3051\u3070\u3088\u3044\u3067\u3057\u3087\u3046\u3002\u4f55\u3082\u3064\u306a\u304c\u306a\u3044\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u3067\u304d\u3042\u304c\u308a\u306e block design \u306f\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n<a href=\"http:\/\/yasu2.prosou.nu\/blog\/2015\/03\/26\/zynq-block.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"zynq-block.png\" src=\"http:\/\/yasu2.prosou.nu\/blog\/assets_c\/2015\/03\/zynq-block-thumb-400xauto-1442.png\" width=\"400\" height=\"347\" class=\"mt-image-none\" style=\"\" \/><\/a><br \/>\n\u3042\u3068\u306f\u3001<\/p>\n<ol>\n<li>Generate Block Design \u3059\u308b (Flow navigator \u3067)\n<li>Create HDL Wrapper \u3059\u308b (\u30c7\u30b6\u30a4\u30f3\u968e\u5c64\u3067\u30d6\u30ed\u30c3\u30af\u30c7\u30b6\u30a4\u30f3\u3092\u53f3\u30af\u30ea\u30c3\u30af)\n<li>I2C \u306e\u30d4\u30f3\u3092\u5236\u7d04\u306b\u8ffd\u52a0\u3057\u3066 bitstream \u751f\u6210\n<\/ol>\n<p>\u3059\u308c\u3070 OK \u3067\u3059\u3002<br \/>\n\u30c7\u30d5\u30a9\u30eb\u30c8\u3067 HDL Wrapper \u306b\u73fe\u308c\u308b I2C \u306a\u30dd\u30fc\u30c8\u306e\u540d\u524d\u306f iic_0_scl_io \u3068 iic_0_sda_io \u3060\u3068\u601d\u3044\u307e\u3059\u306e\u3067\u3001\u4ee5\u4e0b\u3092 XDC \u30d5\u30a1\u30a4\u30eb\u306b\u8ffd\u52a0\u3059\u308c\u3070 OK \u3067\u3059\u3002\u3053\u308c\u3092\u66f8\u304b\u305a\u306b\u3084\u308b\u3068\u3001I2C \u306e\u30d4\u30f3\u304c\u3069\u3053\u304b\u77e5\u3089\u306a\u3044\u3068\u3053\u308d\u3078\u884c\u3063\u3066\u3057\u307e\u3046\u306e\u3067\u6c17\u3092\u4ed8\u3051\u307e\u3057\u3087\u3046\u3002<br \/>\n[code:plain]<br \/>\nset_property PACKAGE_PIN N18 [get_ports iic_0_scl_io]<br \/>\nset_property IOSTANDARD LVCMOS33 [get_ports iic_0_scl_io]<br \/>\nset_property PACKAGE_PIN N17 [get_ports iic_0_sda_io]<br \/>\nset_property IOSTANDARD LVCMOS33 [get_ports iic_0_sda_io]<br \/>\n[\/code]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u56de\u307e\u3067\u306e\u8a18\u4e8b\u3067\u306f Digilent \u304c\u63d0\u4f9b\u3057\u3066\u3044\u308b ZYBO Base Design \u3092\u305d\u306e\u307e\u307e\u4f7f\u3063\u3066 FreeBSD \u3092\u8d77\u52d5\u3059\u308b\u3001\u3068\u3044\u3046\u306e\u3092\u3084\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u3053\u306e Base Design \u306b\u306f HDMI \u306e\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9 &hellip; <a href=\"https:\/\/yasu2.prosou.nu\/blog\/index.php\/2015\/03\/26\/2685\/\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;ZYBO \u3067 FreeBSD \u304c\u52d5\u304f\u307e\u3067 (\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u7de8)&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-2685","post","type-post","status-publish","format-standard","hentry","category-unix-"],"_links":{"self":[{"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/2685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=2685"}],"version-history":[{"count":0,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/2685\/revisions"}],"wp:attachment":[{"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=2685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=2685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=2685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}