summaryrefslogtreecommitdiffstats
path: root/_ont/ont-huawei-ma5671a-ymodem.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--_ont/ont-huawei-ma5671a-ymodem.md202
1 files changed, 7 insertions, 195 deletions
diff --git a/_ont/ont-huawei-ma5671a-ymodem.md b/_ont/ont-huawei-ma5671a-ymodem.md
index 9756dd0..803aea8 100644
--- a/_ont/ont-huawei-ma5671a-ymodem.md
+++ b/_ont/ont-huawei-ma5671a-ymodem.md
@@ -5,202 +5,14 @@ parent: Huawei MA5671A
layout: default
---
-<div class="modal" data-jtd-modal="flash-modal" data-jtd-modal-backdrop="static" id="flash-modal">
- <div class="modal-content">
- <div class="modal-header">
- <span class="close">&times;</span>
- <h2>Flash firmware</h2>
- </div>
- <form id="flash-form" class="p-4" novalidate>
- <div class="form-floating mb-3">
- <input type="file" class="form-control" placeholder="Flash MTD" name="flash-mtd" id="flash-mtd" required>
- <label for="flash-mtd">Flash MTD</label>
- </div>
- <div class="mb-3 form-check">
- <input type="checkbox" class="form-check-input" id="baud-rate-oc" name="baud-rate-oc">
- <label class="form-check-label" for="baud-rate-oc">230400 baud rate, do not enable unless told to do so</label>
- </div>
- <div class="form-check">
- <input class="form-check-input" type="radio" name="image" id="image0" value="image0">
- <label class="form-check-label" for="image0">
- Image 0
- </label>
- </div>
- <div class="form-check">
- <input class="form-check-input" type="radio" name="image" id="image1" value="image1">
- <label class="form-check-label" for="image1">
- Image 1
- </label>
- </div>
- <div class="mb-3">
- <input type="submit" class="btn btn-primary" value="Flash!">
- </div>
- <progress id="flash-progress" value="0" max="100"></progress>
- <p id="flash-text-step"></p>
- </form>
- </div>
-</div>
+This procedure flashes the firmware in the stick via serial. You have to get firmware to flash, some are listed on the [Huawei MA5671A page](/ont-huawei-ma5671a).
+{: .text-center .fs-6 }
<button id="flash-start-button" class="btn btn-blue" data-jtd-toogle="modal" data-jtd-target="#flash-modal">Start flash!</button>
-<script type="text/javascript" src="/assets/js/xymini.js"></script>
-<script type="text/javascript" src="/assets/js/rootLantiq.js"></script>
-<script type="text/javascript" src="/assets/js/serialUtil.js"></script>
-<script>
- const acontroller = new AbortController();
- const cs = acontroller.signal;
- let flashModal = document.getElementById("flash-modal");
- let flashForm = document.getElementById("flash-form");
- let flashProgress = document.getElementById("flash-progress");
- let flashTextStep = document.getElementById("flash-text-step");
- flashModal.addEventListener('modal-jtd-close', async function(event) {
- acontroller.abort();
- });
- flashModal.addEventListener('modal-jtd-open', async function(event) {
- flash({signal: cs});
- });
- function initTextStep() {
- flashTextStep.textContent = "";
- flashTextStep.classList.remove('success');
- flashTextStep.classList.remove('error');
- }
- function pause(message) {
- flashTextStep.textContent = message;
- }
- function loading(message) {
- flashTextStep.textContent = message;
- }
- function showError(message) {
- flashTextStep.textContent = message;
- flashTextStep.classList.add('error');
- flashTextStep.classList.remove('success');
- }
- function showSuccess(message) {
- flashTextStep.textContent = message;
- flashTextStep.classList.add('success');
- flashTextStep.classList.remove('error');
- }
- async function flash({ signal } = {}) {
- initTextStep();
- let port;
- try {
- port = await navigator.serial.requestPort();
- } catch (err) {
- showError(`Error: ${err.message}`);
- console.log(`Error: ${err.message}\n`);
- return;
- }
- if (!port) {
- showError('Error: port not open');
- console.log('Error: port not open\n');
- return;
- }
- flashForm.addEventListener('submit', async function(event) {
- [...flashForm.elements].map(function(e){return e.parentNode}).forEach(function(e){e.classList.toggle('was-validated', true)});
- if (!flashForm.checkValidity()) {
- event.preventDefault();
- } else {
- event.preventDefault();
- var fomrdata = new FormData(flashForm);
- var file = fomrdata.get('flash-mtd');
- var image = fomrdata.get('image');
- var data = new Uint8Array(await file.arrayBuffer());
- console.log(data);
+<div id="flash-browser-error" style="display:none">{% include alert.html content="This browser is not compatible with the web-root procedure. See the <a href='https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API#browser_compatibility'>Browser compatibility</a>" alert="Note" icon="svg-warning" color="red" %}</div>
+<noscript>
+{% include alert.html content="Your browser does not support JavaScript!" alert="Note" icon="svg-warning" color="red" %}
+</noscript>
- /* Unlock U-Boot if needed and stop booting */
- let result = await lantiqRootUboot(port, "Huawei MA5671A",
- (msg) => {
- loading(msg);
- console.log(msg);
- },
- (err) => {
- showError(err);
- console.log(err);
- }
- );
-
- if (!result) {
- return;
- }
-
- let baudrate = 115200;
- if(fomrdata.has('baud-rate-oc')) {
- let newBaudrate = 230400;
- loading(`Changing baudrate to: ${newBaudrate}`);
-
- result = await changeBaudrate(port, newBaudrate, baudrate,
- (err) => {
- showError(err);
- console.log(err);
- }
- );
-
- if (result) {
- baudrate = newBaudrate;
- } else {
- return;
- }
- }
-
- loading("Start sending image to the SFP...");
- result = await sendImageMtd(port, data, baudrate,
- (err) => {
- showError(err);
- console.log(err);
- },
- (byteTransfered) => {
- const perc = (byteTransfered/data.length) * 100;
- const percTrunc = Math.trunc(perc*100)/100; /* Two decimal trunc */
- flashProgress.value = perc;
- loading(`Image transfer: ${percTrunc}% complete`)
- }
- );
-
- if (!result) {
- return;
- }
-
- result = await waitEndImageLoad(port, baudrate,
- (err) => {
- showError(err);
- console.log(err);
- }
- );
-
- if (!result) {
- return;
- }
-
- if(fomrdata.has('baud-rate-oc')) {
- let newBaudrate = 115200;
- loading(`Restore baudrate to: ${newBaudrate}`);
-
- result = await changeBaudrate(port, newBaudrate, baudrate,
- (err) => {
- showError(err);
- console.log(err);
- }
- );
-
- if (result) {
- baudrate = newBaudrate;
- } else {
- return;
- }
- }
-
- loading("Transfer complete, image flash in progress. DO NOT REMOVE the SFP!");
- result = await flashImageMtd(port, image, baudrate,
- (err) => {
- showError(err);
- console.log(err);
- }
- );
-
- if (result) {
- showSuccess("Flash completed, now you can remove SFP");
- }
- }
- });
- };
-</script>
+{% include ymodem_lantiq.html modelName="Huawei MA5671A" %}