blob: 8c68bc36427c2f596da51d6baa11b68d1f0b777a [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
{{ partial "head.html" . }}
{{ $options := (dict "targetPath" "css/landing.css" "outputStyle" "compressed" "enableSourceMap" true) }}
{{ $style := resources.Get "scss/landing.scss" | resources.ToCSS $options }}
<link rel="stylesheet" href="{{ $style.Permalink }}">
</head>
<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>
{{ partial "header.html" . }}
<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>
{{ partial "footer.html" . }}
<script src="/js/tiny-slider.js"></script>
<script src="/js/theme-changer.js"></script>
<script>
// Enable JS features
document.documentElement.classList.remove('no-js');
// 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()
})
}
// 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>