and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

...
 
Commits (4)
...@@ -41,6 +41,7 @@ push ...@@ -41,6 +41,7 @@ push
tocheck* tocheck*
*.html *.html
!www/template.html !www/template.html
!www/template.homepage.html
/www/news/index.md /www/news/index.md
/www/feed.xml /www/feed.xml
/www/news/feed.xml /www/news/feed.xml
---
title: Do not use CH341A!
...
NOR flashes on all current osboot and libreboot systems run on 3.3v logic.
The ch341a has SPI flashing capabilities and it has 3.3v by default for the
VCC line but data lines (e.g. MISO/MOSI) are 5v. This can very easily damage
your SPI flash; it may still work afterwards, and you can use your machine,
but the reliability of it is now tainted.
These ch341a programmers are unfortunately very popular. DO NOT use it unless
you have fixed the issue. You CAN fix it so that the data lines are 3.3v, if
you follow the notes here:
<https://www.eevblog.com/forum/repair/ch341a-serial-memory-programmer-power-supply-fix/>
A much nicer tool to use is an STM32 Blue Pill (basically similar to an
arduino but with an STM32 microcontroller), with stm32-vserprog installed.
Information about this will be available at a later date.
In practise, most people will not fix their ch341a and instead just risk it,
so no documentation will be provided for ch341a on this website. It is best
to discourage use of that device.
In case it's not clear:
Please do not buy the ch341a! It is incorrectly engineered for the purpose of
ROM flashing on systems with 3.3v SPI (which is most coreboot systems). DO NOT
USE IT!
...@@ -33,6 +33,7 @@ Setting up programmers, for external SPI flashing ...@@ -33,6 +33,7 @@ Setting up programmers, for external SPI flashing
- [BeagleBone Black Setup](bbb_setup.md) - [BeagleBone Black Setup](bbb_setup.md)
- [Raspberry Pi Setup](rpi_setup.md) - [Raspberry Pi Setup](rpi_setup.md)
- [DO NOT USE CH341A](ch341a_setup.md)
Flashing via hardware methods, on system: Flashing via hardware methods, on system:
----------------------------------------- -----------------------------------------
......
...@@ -12,6 +12,35 @@ Is the Libreboot project still active? ...@@ -12,6 +12,35 @@ Is the Libreboot project still active?
Yes! The [git repository](https://notabug.org/libreboot/libreboot) shows all of Yes! The [git repository](https://notabug.org/libreboot/libreboot) shows all of
the work that we're currently doing. Libreboot is quite active. the work that we're currently doing. Libreboot is quite active.
Do not use CH341A!
------------------
NOR flashes on all current osboot and libreboot systems run on 3.3v logic.
The ch341a has SPI flashing capabilities and it has 3.3v by default for the
VCC line but data lines (e.g. MISO/MOSI) are 5v. This can very easily damage
your SPI flash; it may still work afterwards, and you can use your machine,
but the reliability of it is now tainted.
These ch341a programmers are unfortunately very popular. DO NOT use it unless
you have fixed the issue. You CAN fix it so that the data lines are 3.3v, if
you follow the notes here:
<https://www.eevblog.com/forum/repair/ch341a-serial-memory-programmer-power-supply-fix/>
A much nicer tool to use is an STM32 Blue Pill (basically similar to an
arduino but with an STM32 microcontroller), with stm32-vserprog installed.
Information about this will be available at a later date.
In practise, most people will not fix their ch341a and instead just risk it,
so no documentation will be provided for ch341a on this website. It is best
to discourage use of that device.
In case it's not clear:
Please do not buy the ch341a! It is incorrectly engineered for the purpose of
ROM flashing on systems with 3.3v SPI (which is most coreboot systems). DO NOT
USE IT!
So when is the next version of Libreboot coming out? So when is the next version of Libreboot coming out?
------------------------------------------------------- -------------------------------------------------------
......
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Copyright (C) 2017,2021 Leah Rowe <info@minifree.org>
# Copyright (C) 2017 Alyssa Rosenzweig <alyssa@rosenzweig.io> # Copyright (C) 2017 Alyssa Rosenzweig <alyssa@rosenzweig.io>
# Copyright (C) 2017 Leah Rowe <info@minifree.org>
# Copyright (C) 2017 Michael Reed <michael@michaelreed.io> # Copyright (C) 2017 Michael Reed <michael@michaelreed.io>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
...@@ -28,8 +28,10 @@ cat "$1" > "$TMPFILE" ...@@ -28,8 +28,10 @@ cat "$1" > "$TMPFILE"
OPTS="-T Libreboot" OPTS="-T Libreboot"
if [[ $FILE == "index" || $FILE == "./index" ]]; then if [[ $FILE == "index" || $FILE == "./index" ]]; then
TEMPLATE="template.homepage.html"
OPTS="--css /headercenter.css" OPTS="--css /headercenter.css"
else else
TEMPLATE="template.html"
if [[ $FILE == *suppliers ]] if [[ $FILE == *suppliers ]]
then then
RETURN="" RETURN=""
...@@ -41,15 +43,11 @@ else ...@@ -41,15 +43,11 @@ else
DEST="./" DEST="./"
fi fi
RETURN="<strong><a href='/git.html#editing-the-website-and-documentation-wiki-style'>Edit this page</a></strong> -- <a href='$DEST'>Back to previous index</a>" RETURN=""
OPTS="-T Libreboot" OPTS="-T Libreboot"
fi fi
fi fi
if [[ $FILE = *suppliers ]]; then
printf '\n%s\n' "<strong><a href=\"/git.html#editing-the-website-and-documentation-wiki-style\">Edit this page</a></strong> -- <a href=\"../\">Back to previous page</a>" >> "$TMPFILE"
fi
if [[ $FILE != "./docs/fdl-1.3" && $FILE != "docs/fdl-1.3" && if [[ $FILE != "./docs/fdl-1.3" && $FILE != "docs/fdl-1.3" &&
$FILE != "./conduct" && $FILE != "conduct" ]]; then $FILE != "./conduct" && $FILE != "conduct" ]]; then
cat footer.md >> "$TMPFILE" cat footer.md >> "$TMPFILE"
...@@ -62,14 +60,14 @@ sed -i -e 's/\.md\(#[a-zA-Z0-9_-]*\)\?\([])]*\)/.html\1\2/g' "$TMPFILE" ...@@ -62,14 +60,14 @@ sed -i -e 's/\.md\(#[a-zA-Z0-9_-]*\)\?\([])]*\)/.html\1\2/g' "$TMPFILE"
TOC=$(grep -q "^x-toc-enable: true$" "$TMPFILE" && printf '%s\n' "--toc --toc-depth=2") || TOC="" TOC=$(grep -q "^x-toc-enable: true$" "$TMPFILE" && printf '%s\n' "--toc --toc-depth=2") || TOC=""
# work around heterogenous pandoc versions # work around heterogenous pandoc versions
SMART=$(pandoc -v | grep -q '2\.0' || printf '%s\n' "--smart") || SMART="" SMART=$(pandoc -v | grep -q '2\.0' || printf '%s\n' "-f markdown+smart -t html") || SMART=""
# chuck through pandoc # chuck through pandoc
# #
# $OPTS must not be quoted, otherwise pandoc interprets '--css /headercenter.css' # $OPTS must not be quoted, otherwise pandoc interprets '--css /headercenter.css'
# as one argument, when it is actually two. # as one argument, when it is actually two.
pandoc $TOC $SMART "$TMPFILE" -s --css /global.css $OPTS \ pandoc $TOC $SMART "$TMPFILE" -s --css /global.css $OPTS \
--template template.html --metadata return="$RETURN" > "$FILE.html" --template ${TEMPLATE} --metadata return="$RETURN" > "$FILE.html"
# generate section title anchors as [link] # generate section title anchors as [link]
sed -i -e 's_^<h\([123]\) id="\(.*\)">\(.*\)</h\1>_<div class="h"><h\1 id="\2">\3</h\1><a aria-hidden="true" href="#\2">[link]</a></div>_' "$FILE.html" sed -i -e 's_^<h\([123]\) id="\(.*\)">\(.*\)</h\1>_<div class="h"><h\1 id="\2">\3</h\1><a aria-hidden="true" href="#\2">[link]</a></div>_' "$FILE.html"
......
<!DOCTYPE html>
<html$if(lang)$ lang="$lang$"$endif$$if(dir)$ dir="$dir$"$endif$>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
$for(author-meta)$
<meta name="author" content="$author-meta$">
$endfor$
$if(date-meta)$
<meta name="dcterms.date" content="$date-meta$">
$endif$
$if(keywords)$
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$">
$endif$
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
$if(quotes)$
<style type="text/css">q { quotes: "“" "”" "‘" "’"; }</style>
$endif$
$if(highlighting-css)$
<style type="text/css">
$highlighting-css$
</style>
$endif$
$for(css)$
<link rel="stylesheet" href="$css$">
$endfor$
$if(math)$
$math$
$endif$
$for(header-includes)$
$header-includes$
$endfor$
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="/feed.xml"/>
</head>
<body>
$for(include-before)$
$include-before$
$endfor$
$if(title)$
<header>
<h1 class="title">$title$</h1>
$if(subtitle)$
<p class="subtitle">$subtitle$</p>
$endif$
$for(author)$
<p class="author">$author$</p>
$endfor$
$if(date)$
<p class="date">$date$</p>
$endif$
</header>
$endif$
$if(return)$
$return$
$endif$
$if(toc)$
<nav id="$idprefix$TOC">
$toc$
</nav>
$endif$
$body$
$for(include-after)$
$include-after$
$endfor$
</body>
</html>
...@@ -49,6 +49,10 @@ $endfor$ ...@@ -49,6 +49,10 @@ $endfor$
$if(date)$ $if(date)$
<p class="date">$date$</p> <p class="date">$date$</p>
$endif$ $endif$
<p>
<strong><a href="/git.html#editing-the-website-and-documentation-wiki-style">Edit this page</a></strong> --
<a href="../index.html">Back to previous index</a>
</p>
</header> </header>
$endif$ $endif$
$if(return)$ $if(return)$
......