blob: c562e600ff72bb501fa32a2f58f54c10ac49c993 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" class="no-js">
{{ partial "head.html" . }}
<body>
<svg style="width: 0; height: 0; position: absolute; opacity: 0;">
<defs>
<linearGradient id="a" x1="0%" x2="100%" y1="100%" y2="0%">
<stop offset="0%" stop-color="#4BC0C8" />
<stop offset="52.5%" stop-color="#C779D0" />
<stop offset="100%" stop-color="#FEAC5E" />
</linearGradient>
<path id="b" vector-effect="non-scaling-stroke"
d="M61 127v30h31v39c0 2-2 4-5 4h-5v15H3v-79h14v-5c0-2 2-4 5-4h39zm135 0c2 0 4 2 4 4v5h14v79h-79v-15h-4c-2 0-4-2-4-4v-39h30v-30h39zM57 161H38v19h19v-19zm122 0h-18v19h18v-19zm-35-87v69H75V74h69zm71-71v79h-15v5c0 3-2 5-4 5h-39V61h-30V22c0-3 2-5 4-5h5V3h79zM82 3v14h5c3 0 5 2 5 5v39H61v31H22c-3 0-5-2-5-5v-5H3V3h79zm79 54h19V38h-19v19zM57 57V38H38v19h19z" />
<path id="c" vector-effect="non-scaling-stroke"
d="M182 112v39h32c2 0 4 2 4 4v23c0 2-2 4-4 4h-32v32c0 2-2 4-4 4h-23c-2 0-4-2-4-4v-32h-39v-27c0-3 1-4 4-4h35v-35c0-3 1-4 4-4h27zm-119 0c2 0 4 1 4 3v36h35c3 0 4 1 4 3v28H67v32c0 2-2 4-4 4H40c-2 0-4-2-4-4v-32H4c-2 0-4-2-4-4v-23c0-2 2-4 4-4h32v-39h27zm77-34v62H78V78h62zM63 0c2 0 4 2 4 4v32h39v27c0 3-1 4-4 4H67v35c0 3-1 4-4 4H36V67H4c-2 0-4-2-4-4V40c0-2 2-4 4-4h32V4c0-2 2-4 4-4h23zm115 0c2 0 4 2 4 4v32h32c2 0 4 2 4 4v23c0 2-2 4-4 4h-32v39h-27c-2 0-4-1-4-3V67h-35c-3 0-4-1-4-3V36h39V4c0-2 2-4 4-4h23z" />
<path id="d" vector-effect="non-scaling-stroke"
d="M187 117v8h27c2 0 4 1 4 3v24c0 2-2 4-4 4h-27v31h-31v27c0 2-2 4-4 4h-24c-2 0-3-2-3-4v-27h-8v-27c0-2 2-4 4-4h35v-35c0-2 2-4 4-4h27zm-129 0c2 0 4 2 4 4v35h35c2 0 4 2 4 4v27h-8v27c0 2-1 4-3 4H66c-2 0-4-2-4-4v-27H31v-31H4c-2 0-4-2-4-4v-24c0-2 2-3 4-3h27v-8h27zm82-39v62H78V78h62zM90 0c2 0 3 2 3 4v27h8v27c0 2-2 4-4 4H62v35c0 2-2 4-4 4H31v-8H4c-2 0-4-1-4-3V66c0-2 2-4 4-4h27V31h31V4c0-2 2-4 4-4h24zm62 0c2 0 4 2 4 4v27h31v31h27c2 0 4 2 4 4v24c0 2-2 3-4 3h-27v8h-27c-2 0-4-2-4-4V62h-35c-2 0-4-2-4-4V31h8V4c0-2 1-4 3-4h24z" />
</defs>
</svg>
<a href="#main" class="skip-link">Skip to main content</a>
<header class="main-header">
<h1 class="logo">
<a href="/">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1068 200" aria-hidden="true" focusable="false">
<g fill="#FFF" fill-rule="evenodd">
<path
d="M932.8 60.2v3.2c-6.6-5.9-15.4-9.3-26.4-9.3-20.5 0-38 15.2-41 38h24.4c1.5 0 2.8-.8 3.3-2.2 3.1-7.8 10.1-12.7 18.9-12.7 11 0 20.8 9 20.8 22 0 13.2-9.8 22-20.8 22-8.8 0-15.8-4.8-18.9-12.7a3.6 3.6 0 00-3.3-2.2h-24.5a41.6 41.6 0 0067.5 28.6v3.3c0 2 1.6 3.5 3.6 3.5h20c2 0 3.5-1.6 3.5-3.5v-78c0-2-1.6-3.5-3.5-3.5h-20c-2 0-3.6 1.6-3.6 3.5zm-524-4a40.6 40.6 0 00-33.2 15.4v-9.9c0-2-1.6-3.5-3.5-3.5h-5.8c-2 0-3.5 1.6-3.5 3.5v30.4h11c1.6 0 3-1 3.4-2.5A31.2 31.2 0 01438 100c0 19.9-14 32.4-31.2 32.4a31.2 31.2 0 01-30-23.4 3.6 3.6 0 00-3.5-2.7h-10.5V167c0 2 1.5 3.5 3.5 3.5h5.8c2 0 3.5-1.6 3.5-3.5v-38.5a40.6 40.6 0 0033.2 15.4 42 42 0 0041.7-43.9 42 42 0 00-41.7-43.8zm658 33.3v48.7c0 2-1.6 3.5-3.6 3.5h-19.8c-2 0-3.6-1.6-3.6-3.5v-43c0-10-5.9-16.7-14.5-16.7-10.7 0-17.6 7.3-17.6 23.7v36c0 2-1.6 3.5-3.6 3.5h-20c-2 0-3.5-1.6-3.5-3.5v-78c0-2 1.5-3.5 3.5-3.5h20c2 0 3.6 1.6 3.6 3.5v4.6a35 35 0 0126-10.7c19.9 0 33 14 33 35.4zM859 135.2c.5 1.6-.3 3.4-1.8 4.1-5.8 2.9-12.2 5-20.6 5-21.1 0-33.8-11.6-33.8-34V78.3h-12c-1.9 0-3.5-1.6-3.5-3.6V60.2c0-2 1.6-3.5 3.6-3.5h11.9V35c0-2 1.5-3.5 3.5-3.5h20c2 0 3.6 1.6 3.6 3.5v21.6h21.5c2 0 3.5 1.6 3.5 3.5v14.4c0 2-1.6 3.6-3.5 3.6h-21.5v29.5c0 8.8 4.2 12.3 11.3 12.3 2.6 0 6-.7 8.9-1.8 2-.7 4 .4 4.6 2.4l4.3 14.6zm-112.3 3v-78c0-2 1.6-3.5 3.6-3.5h20c2 0 3.5 1.6 3.5 3.5v78c0 2-1.6 3.5-3.5 3.5h-20c-2 0-3.6-1.6-3.6-3.5zM776 31.6c0 8.6-6.6 15-15.7 15-9.2 0-15.6-6.4-15.6-15 0-8.3 6.4-15.4 15.6-15.4 9.1 0 15.7 7.1 15.7 15.4zm-42.8 103.6c.5 1.6-.3 3.4-1.8 4.1-5.8 2.9-12.2 5-20.6 5-21.1 0-33.8-11.6-33.8-34V78.3h-12c-1.9 0-3.5-1.6-3.5-3.6V60.2c0-2 1.6-3.5 3.6-3.5H677V35c0-2 1.5-3.5 3.5-3.5h20c2 0 3.6 1.6 3.6 3.5v21.6h21.5c2 0 3.5 1.6 3.5 3.5v14.4c0 2-1.6 3.6-3.5 3.6H704v29.5c0 8.8 4.2 12.3 11.3 12.3 2.6 0 6-.7 8.9-1.8 2-.7 4 .4 4.6 2.4l4.3 14.6zm-85.9-43.5v46.5c0 2-1.5 3.5-3.5 3.5H638c-2 0-3.5-1.6-3.5-3.5V94c0-15.6-9.3-26-23.2-26-17.5 0-29 11.8-29 33.5v36.6c0 2-1.6 3.5-3.5 3.5H573c-2 0-3.6-1.6-3.6-3.5V61.7c0-2 1.6-3.5 3.6-3.5h5.8c2 0 3.5 1.6 3.5 3.5v10.4a35.9 35.9 0 0131.5-16c20.2 0 33.5 14.5 33.5 35.6zM479.1 93h58.1c-2.4-16.4-14-25.4-28-25.4A30 30 0 00479.2 93zm71.1 9.7h-71.6c1.2 18.8 15.4 30 29.8 30 11.1 0 21.2-4 27.3-15.5a3.6 3.6 0 014-1.9l4.6 1.1c2.2.6 3.3 3 2.3 5a40 40 0 01-38.2 22.6 42.2 42.2 0 01-42.3-43.7c0-26.8 20.1-44 43.2-44 22.5 0 40.1 16.7 41 41.6v4.8zM331 99.9a31.2 31.2 0 00-31.5-32.2c-17.2 0-31.8 13-31.8 32.2a31.5 31.5 0 0031.8 32.5A31.4 31.4 0 00331 99.9zm12.7 0a43.1 43.1 0 01-44.2 43.8 43 43 0 01-44.3-43.8 42.8 42.8 0 0144.3-43.6c24.6 0 44.2 18 44.2 43.6zM170.6 106.6v7.1h24.8c2 0 3.6 1.7 3.6 3.6v21.3c0 1.9-1.7 3.5-3.6 3.5h-24.8v28.5H142v24.8c0 2-1.6 3.6-3.5 3.6h-21.3a3.6 3.6 0 01-3.6-3.6v-24.8h-7v-24.9c0-1.9 1.6-3.6 3.5-3.6h32v-32c0-1.8 1.6-3.5 3.5-3.5h24.9zm-117.3 0c1.8 0 3.4 1.6 3.6 3.4v32.2h32c1.8 0 3.4 1.5 3.5 3.3V170.6h-7.1v24.8c0 2-1.7 3.6-3.6 3.6H60.4a3.6 3.6 0 01-3.5-3.6v-24.8H28.4V142H3.6a3.6 3.6 0 01-3.6-3.5v-21.3c0-2 1.7-3.6 3.6-3.6h24.8v-7h24.9zm74.6-35.5v56.8H71.1V71.1h56.8zM81.7 0c2 0 3.6 1.7 3.6 3.6v24.8h7v24.9c0 1.9-1.6 3.6-3.5 3.6h-32v32c0 1.8-1.6 3.5-3.5 3.5H28.4v-7.1H3.6A3.6 3.6 0 010 81.7V60.4C0 58.5 1.7 57 3.6 57h24.8V28.4H57V3.6c0-2 1.6-3.6 3.5-3.6h21.3zm56.9 0c1.9 0 3.5 1.7 3.5 3.6v24.8h28.5V57h24.8c2 0 3.6 1.6 3.6 3.5v21.3c0 2-1.7 3.6-3.6 3.6h-24.8v7h-24.9a3.7 3.7 0 01-3.6-3.3V56.8h-32a3.7 3.7 0 01-3.5-3.3V28.4h7.1V3.6c0-2 1.7-3.6 3.6-3.6h21.3z" />
</g>
</svg>
<span class="sr-only">opentitan.org</span>
</a>
</h1>
<nav id="main-nav" class="main-nav" aria-label="Main">
<ul id="menu" class="main-nav__list">
<li class="main-nav__item">
<a href="https://docs.opentitan.org">Documentation</a>
</li>
<li class="main-nav__item">
<a href="#partners">Partners</a>
</li>
<li class="main-nav__item">
<a href="{{ .Site.Params.github_repo }}">Source</a>
</li>
<li class="main-nav__item">
<a href="{{ .Site.Params.one_year_url }}">Blog</a>
</li>
<li class="main-nav__item user-toggle">
<button class="[ toggle-button ] [ js-mode-toggle ]" aria-label="Switch light and dark theme">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="currentColor"
d="M12 2a10 10 0 01.3 20H12a10 10 0 110-20zm0 2a8 8 0 100 16v-3a5 5 0 010-10V4zm0 4v8a4 4 0 100-8z"
fill-rule="evenodd" />
</svg>
</button>
</li>
</ul>
</nav>
</header>
<main id="main" role="main">
<section id="intro" class="intro">
<div class="intro__content">
<div class="intro__logo">
<svg class="ani-logo" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 84 84">
<g fill="none" fill-rule="evenodd">
<rect class="center item" width="24" height="24" x="30" y="30" />
<path class="ul item" d="M19 19h27v10.5c0 .8-.7 1.5-1.5 1.5H31v13.5c0 .8-.7 1.5-1.5 1.5H19V19z" />
<path class="ll item" d="M19 65h27V54.5c0-.8-.7-1.5-1.5-1.5H31V39.5c0-.8-.7-1.5-1.5-1.5H19v27z" />
<path class="ur item" d="M65 19H38v10.5c0 .8.7 1.5 1.5 1.5H53v13.5c0 .8.7 1.5 1.5 1.5H65V19z" />
<path class="lr item" d="M65 65H38V54.5c0-.8.7-1.5 1.5-1.5H53V39.5c0-.8.7-1.5 1.5-1.5H65v27z" />
<path class="right item item--outer"
d="M82.5 48c.8 0 1.5.7 1.5 1.5v9c0 .8-.7 1.5-1.5 1.5H69V48h13.5zm0-24c.8 0 1.5.7 1.5 1.5v9c0 .8-.7 1.5-1.5 1.5H69V24h13.5z" />
<path class="left item item--outer"
d="M15 48v12H1.5C.7 60 0 59.3 0 58.5v-9c0-.8.7-1.5 1.5-1.5H15zm0-24v12H1.5C.7 36 0 35.3 0 34.5v-9c0-.8.7-1.5 1.5-1.5H15z" />
<path class="top item item--outer"
d="M34.5 0c.8 0 1.5.7 1.5 1.5V15H24V1.5c0-.8.7-1.5 1.5-1.5h9zm24 0c.8 0 1.5.7 1.5 1.5V15H48V1.5c0-.8.7-1.5 1.5-1.5h9z" />
<path class="bottom item item--outer"
d="M60 69v13.5c0 .8-.7 1.5-1.5 1.5h-9c-.8 0-1.5-.7-1.5-1.5V69h12zm-24 0v13.5c0 .8-.7 1.5-1.5 1.5h-9c-.8 0-1.5-.7-1.5-1.5V69h12z" />
</g>
</svg>
</div>
<p class="intro__body">
OpenTitan is the first open source project building a transparent, high-quality reference design and integration
guidelines for silicon root of trust (RoT) chips.
</p>
</div>
</section>
<section id="benefits" class="benefits light-bg">
<h2 class="sr-only">Benefits</h2>
<div class="benefit-list">
<div class="benefit">
<figure class="benefit__image" aria-hidden="true">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 218 218">
<use fill="url(#a)" xlink:href="#b" fill-rule="evenodd" />
</svg>
<svg class="benefit__decoration" aria-hidden="true" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="-4 -4 224 224">
<use fill="none" stroke-width="1" stroke="#23BDE3" xlink:href="#b" opacity="0.3" />
</svg>
</figure>
<div class="benefit__content">
<h3 class="benefit__headline h2">Transparent</h3>
<p class="benefit__body bodytext bodytext--large">
Anyone can inspect, evaluate, and contribute to OpenTitan's design
and documentation to help build a more transparent, trustworthy
silicon RoT for all.
</p>
</div>
</div>
<div class="benefit">
<figure class="benefit__image" aria-hidden="true">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 218 218">
<use fill="url(#a)" xlink:href="#c" />
</svg>
<svg class="benefit__decoration" aria-hidden="true" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="-4 -4 224 224">
<use fill="none" stroke-width="1" stroke="#23BDE3" xlink:href="#c" opacity="0.3" />
</svg>
</figure>
<div class="benefit__content">
<h3 class="benefit__headline h2">High quality</h3>
<p class="benefit__body bodytext bodytext--large">
OpenTitan's aim is to build and maintain a high-quality
logically-secure silicon design, including reference firmware,
verification collateral, and technical documentation.
</p>
</div>
</div>
<div class="benefit">
<figure class="benefit__image" aria-hidden="true">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 218 218">
<use fill="url(#a)" xlink:href="#d" />
</svg>
<svg class="benefit__decoration" aria-hidden="true" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="-4 -4 224 224">
<use fill="none" stroke-width="1" stroke="#23BDE3" xlink:href="#d" opacity="0.3" />
</svg>
</figure>
<div class="benefit__content">
<h3 class="benefit__headline h2">Flexible</h3>
<p class="benefit__body bodytext bodytext--large">
Adopters can reduce costs and reach more customers by using a
vendor- and platform-agnostic silicon RoT design that can be
integrated into data center servers, storage devices, peripherals and
other hardware.
</p>
</div>
</div>
</div>
</section>
<section id="learn-more" class="cta">
<h2 class="sr-only">Learn more</h2>
<p class="cta__body quote">
OpenTitan helps to make the silicon root of trust (RoT) more transparent,
trustworthy, and ultimately, secure.
</p>
<a href="{{ .Site.Params.announce_url }}" class="btn" aria-label="Learn more about OpenTitan">Learn more</a>
</section>
<section id="features" class="features light-bg">
<h2 class="h2">Features</h2>
<ol class="feature-list">
<li class="feature-list__item">
<h3 class="h3 feature__headline">Independently managed</h3>
<p class="bodytext feature__body">
OpenTitan is stewarded by
<a href="{{ .Site.Params.partner_lowrisc }}">lowRISC</a>, a
not-for-profit company that uses collaborative engineering to
develop and maintain open source silicon designs and tools for the
long term.
</p>
</li>
<li class="feature-list__item">
<h3 class="h3 feature__headline">Open source</h3>
<p class="bodytext feature__body">
OpenTitan is an open source project with leading not-for-profit,
academic, and commercial organizations committed to its development
and expansion.
</p>
</li>
<li class="feature-list__item">
<h3 class="h3 feature__headline">Security through transparency</h3>
<p class="bodytext feature__body">
As an open source project, OpenTitan enables the larger community
to proactively audit, evaluate, and improve the security properties
of the design.
</p>
</li>
<li class="feature-list__item">
<h3 class="h3 feature__headline">High-quality IP</h3>
<p class="bodytext feature__body">
OpenTitan is developed by engineers and researchers from ETH
Zürich, G+D Mobile Security, Google, lowRISC, Nuvoton Technology,
and Western Digital. Our community brings ideas and expertise from
a variety of perspectives.
</p>
</li>
<li class="feature-list__item">
<h3 class="h3 feature__headline">Modern architecture</h3>
<p class="bodytext feature__body">
OpenTitan is designed to serve as the system root of trust by
actively mediating access to the first-stage boot firmware. It is
built upon the quality constructs and security principles used to
create
<a href="{{ .Site.Params.announce_url }}">Google's Titan chips</a>.
</p>
</li>
<li class="feature-list__item">
<h3 class="h3 feature__headline">Vendor- and platform-agnostic</h3>
<p class="bodytext feature__body">
Because it is not proprietary to a specific vendor or platform,
OpenTitan can be integrated with data center servers, peripherals,
storage devices, and other hardware, helping you reduce costs and reach more
customers.
</p>
</li>
</ol>
</section>
<section id="integrate" class="cta">
<h2 class="sr-only">Contribute to OpenTitan</h2>
<p class="cta__body quote">
Interested in contributing to the OpenTitan project?
</p>
<a href="mailto:{{ .Site.Params.get_involved_email }}" class="btn">Contact us</a>
</section>
<section id="partners" class="partners light-bg">
<h2 class="h2">Partners</h2>
<div class="partner-list">
<a href="{{ .Site.Params.partner_lowrisc }}" class="partner" target="_blank">
<img src="https://static.opentitan.org/img/partners/lowrisc.svg" alt="lowRISC">
</a>
<a href="{{ .Site.Params.partner_ethzurich }}" class="partner" target="_blank">
<img src="https://static.opentitan.org/img/partners/eth-zurich.svg" alt="ETH Zurich">
</a>
<a href="{{ .Site.Params.partner_gd }}" class="partner" target="_blank">
<img src="https://static.opentitan.org/img/partners/giesecke.png" alt="Giesecke + Devrient Creating Confidence">
</a>
<a href="{{ .Site.Params.partner_google }}" class="partner" target="_blank">
<img src="https://static.opentitan.org/img/partners/google.svg" alt="Google">
</a>
<a href="{{ .Site.Params.partner_nuvoton }}" class="partner" target="_blank">
<img src="https://static.opentitan.org/img/partners/nuvoton.svg" alt="nuvoTon">
</a>
<a href="{{ .Site.Params.partner_wd }}" class="partner" target="_blank">
<img src="https://static.opentitan.org/img/partners/western-digital.svg" alt="Western Digital">
</a>
<a href="{{ .Site.Params.partner_seagate }}" class="partner" target="_blank">
<img src="https://static.opentitan.org/img/partners/seagate.svg" alt="Seagate">
</a>
<a href="{{ .Site.Params.partner_rivos }}" class="partner" target="_blank">
<img src="https://static.opentitan.org/img/partners/rivos.svg" alt="Rivos Inc.">
</a>
<a href="{{ .Site.Params.partner_winbond }}" class="partner" target="_blank">
<img src="https://static.opentitan.org/img/partners/winbond.svg" alt="Winbond Electronics Corporation">
</a>
</div>
<div class="partner-quote">
<ul class="js-partner-quotes">
{{ range $.Site.Data.partner_quotes }}
<li class="partner-quote__item">
<blockquote>
<p class="quote quote--small js-quote-text">{{ .quote }}</p>
<footer class="js-quote-partner">
{{ .partner }}
</footer>
</blockquote>
</li>
{{ end }}
</ul>
</div>
</section>
<section id="join-the-project" class="cta">
<h2 class="sr-only">Join the Project</h2>
<p class="cta__body quote">
Interested in participating in the project?
</p>
<a href="mailto:{{ .Site.Params.get_involved_email }}" class="btn">Let us know</a>
</section>
</main>
<footer id="footer" class="footer">
<svg class="ani-logo" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 84 84">
<g fill="none" fill-rule="evenodd">
<rect class="center item" width="24" height="24" x="30" y="30" />
<path class="ul item" d="M19 19h27v10.5c0 .8-.7 1.5-1.5 1.5H31v13.5c0 .8-.7 1.5-1.5 1.5H19V19z" />
<path class="ll item" d="M19 65h27V54.5c0-.8-.7-1.5-1.5-1.5H31V39.5c0-.8-.7-1.5-1.5-1.5H19v27z" />
<path class="ur item" d="M65 19H38v10.5c0 .8.7 1.5 1.5 1.5H53v13.5c0 .8.7 1.5 1.5 1.5H65V19z" />
<path class="lr item" d="M65 65H38V54.5c0-.8.7-1.5 1.5-1.5H53V39.5c0-.8.7-1.5 1.5-1.5H65v27z" />
<path class="right item item--outer"
d="M82.5 48c.8 0 1.5.7 1.5 1.5v9c0 .8-.7 1.5-1.5 1.5H69V48h13.5zm0-24c.8 0 1.5.7 1.5 1.5v9c0 .8-.7 1.5-1.5 1.5H69V24h13.5z" />
<path class="left item item--outer"
d="M15 48v12H1.5C.7 60 0 59.3 0 58.5v-9c0-.8.7-1.5 1.5-1.5H15zm0-24v12H1.5C.7 36 0 35.3 0 34.5v-9c0-.8.7-1.5 1.5-1.5H15z" />
<path class="top item item--outer"
d="M34.5 0c.8 0 1.5.7 1.5 1.5V15H24V1.5c0-.8.7-1.5 1.5-1.5h9zm24 0c.8 0 1.5.7 1.5 1.5V15H48V1.5c0-.8.7-1.5 1.5-1.5h9z" />
<path class="bottom item item--outer"
d="M60 69v13.5c0 .8-.7 1.5-1.5 1.5h-9c-.8 0-1.5-.7-1.5-1.5V69h12zm-24 0v13.5c0 .8-.7 1.5-1.5 1.5h-9c-.8 0-1.5-.7-1.5-1.5V69h12z" />
</g>
</svg>
<nav class="footer-nav" aria-label="Full">
<ul class="footer-nav__list">
<li class="footer-nav__item">
<a href="https://docs.opentitan.org">Documentation</a>
</li>
<li class="footer-nav__item">
<a href="#partners">Partners</a>
</li>
<li class="footer-nav__item">
<a href="{{ .Site.Params.github_repo }}">Source</a>
</li>
<li class="footer-nav__item">
<a href="{{ .Site.Params.one_year_url }}">Blog</a>
</li>
<li class="footer-nav__item footer-nav__item--icons">
<a href="{{ .Site.Params.github_repo }}" aria-label="View on Github">
<svg focusable="false" width="24" height="20" viewBox="0 0 24 20">
<path fill="currentColor" fill-rule="evenodd"
d="M11.4 1A9 9 0 002 10c0 4.2 2.7 7.7 6.5 9 .5 0 .7-.2.7-.5v-2.2s-2.7.5-3.3-1.2c0 0-.4-1-1-1.3 0 0-1-.6 0-.6 0 0 1 0 1.5 1 .8 1.4 2.2 1 2.8.7 0-.6.3-1 .6-1.2-2.1-.2-4.3-.5-4.3-4.1 0-1 .3-1.6.9-2.2C6.3 7 6 6 6.5 4.9c.8-.3 2.6 1 2.6 1a9.3 9.3 0 014.9 0s1.8-1.3 2.6-1c.6 1.2.2 2.2.1 2.5.6.6 1 1.2 1 2.2 0 3.6-2.2 3.9-4.4 4 .4.4.7 1 .7 1.8v3.1c0 .3.1.6.6.5a9.3 9.3 0 006.5-9c0-5-4.4-9-9.7-9z" />
</svg>
</a>
</li>
</ul>
</nav>
<p>© 2019 &ndash; {{ now.Format "2006" }} lowRISC contributors, <a href="/privacy-policy/">Privacy
Policy</a>, <a href="/usage-policy/">Usage Policy</a>.</p>
<p>The text content on this website is licensed under a
<a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons
Attribution 4.0 International License</a>, except where otherwise noted.</p>
<p>No license is granted for the OpenTitan logo or other trademarks. <a
href="/trademark-usage-policy/">Trademark Usage Policy</a>.</p>
</footer>
<script src="/js/tiny-slider.js"></script>
<script>
// Tiny Slider for Quotes
var slider = tns({
container: '.js-partner-quotes',
items: 1,
autoplay: false,
slideBy: 'page',
mouseDrag: true,
autoHeight: true,
nav: false,
swipeAngle: 30,
loop: false,
preventScrollOnTouch: 'auto',
controlsPosition: 'bottom',
controlsText: [
"<span class='sr-only'>prev</span><svg viewBox='0 0 40 40'><path fill='currentColor' fill-rule='evenodd' d='M16 20l9-6v12z' focusable='false'/></svg>",
"<span class='sr-only'>next</span><svg viewBox='0 0 40 40'><path fill='currentColor' fill-rule='evenodd' d='M24 20l-9-6v12z' focusable='false'/></svg>"]
});
if (document.fonts.ready) {
document.fonts.ready.then(() => {
slider.updateSliderHeight()
})
}
// Light and dark theme
document.documentElement.classList.remove('no-js');
const STORAGE_KEY = 'user-color-scheme';
const COLOR_MODE_KEY = '--color-mode';
const modeToggleButton = document.querySelector('.js-mode-toggle');
const getCSSCustomProp = propKey => {
let response = getComputedStyle(document.documentElement).getPropertyValue(propKey);
if (response.length) {
response = response.replace(/\"/g, '').trim();
}
return response;
};
const applySetting = passedSetting => {
let currentSetting = passedSetting || localStorage.getItem(STORAGE_KEY);
if (currentSetting) {
document.documentElement.setAttribute('data-user-color-scheme', currentSetting)
}
};
const toggleSetting = () => {
let currentSetting = localStorage.getItem(STORAGE_KEY);
switch (currentSetting) {
case null:
currentSetting = getCSSCustomProp(COLOR_MODE_KEY) === 'dark' ? 'light' : 'dark';
break;
case 'light':
currentSetting = 'dark';
break;
case 'dark':
currentSetting = 'light';
break;
}
localStorage.setItem(STORAGE_KEY, currentSetting);
return currentSetting;
};
modeToggleButton.addEventListener('click', evt => {
evt.preventDefault();
applySetting(toggleSetting());
});
applySetting();
// control animation on intro area
const intro = document.getElementById('intro');
intro.addEventListener('mouseenter', e => {
if (intro.classList.contains('animate')) {
return
}
else {
intro.classList.add('animate');
setTimeout(function () {
intro.classList.remove('animate');
}, 2200);
}
})
const partnerList = document.querySelector('.js-partner-quotes');
// fisher-yates shuffle
for (let i = partnerList.children.length; i >= 0; i--) {
partnerList.appendChild(partnerList.children[Math.random() * i | 0]);
}
</script>
</body>
</html>