4d5dae27419a6883484d0a051c653888d2042bca
Specifications:
- SoC: AR9341
- RAM: 64M
- Flash: 16M
- Ethernet: 1 * FE port
- WiFi: ar934x-wmac
- Sound: WM8918 DAC
1 * 3.5mm headphone jack
2 * RCA connectors for speakers
1 * SPDIF out
- USB: 1 * USB2.0 port
Flash instruction:
Upload generated factory image via vendor's web interface.
Notes:
A. Audio stuff:
1. Since AR934x, all pins for peripheral blocks can be mapped to
any available GPIOs. We currently don't have a PCM/I2S driver
for AR934x so pinmux for i2s and SPDIF are bound to i2c gpio
node. This should be moved into I2S node when a PCM/I2S driver
is available.
2. The i2c-gpio node is for WM8918. DT binding for it can't be added
currently due to a missing clock from I2S PLL.
B. Factory image:
Image contains a image header and a tar.gz archive.
1. Header: A 288 byte header that has nothing to do with appended
tarball. Format:
0x0-0x7 and 0x18-0x1F: magic values
0x20: Model number string
0xFC: Action string. It's either "update" or "backup"
0x11C: A 1 byte checksum. It's XOR result of 0x8-0x11B
Firmware doesn't care about the rest of the header as long as
checksum result is correct.
The same header is used for backup and update routines so the
magic values and model number can be obtained by generating a
backup bin and grab values from it.
2. Tarball: It contains two files named uImage and rootfs, which
will be flashed into corresponding mtd partition.
Writing a special utility that can only output a fixed binary
blob is overkill so factory image header is placed under
image/bin instead.
C. LED
The wifi led has "Wi-Fi" marked on the case but vendor's firmware
used it as system status indicator. I did the same in this device
support patch.
D. Firmware
Factory u-boot is built without 'savenv' support so it's impossible
to change kernel offset. A 2MB kernel partition won't be enough in
the future. OKLI loader is used here to migrate this problem:
1. add OKLI image magic support into uImage parser.
2. build an OKLI loader, compress it with lzma and add a normal
uImage header.
3. flash the loader to where the original kernel supposed to be.
4. create a uImage firmware using OKLI loader.
5. flash the created firmware to where rootfs supposed to be.
By doing so, u-boot will start OKLI loader, which will then load
the actual kernel at 0x20000.
The kernel partition is 2MB, which is too much for our loader.
To save this space, "mtd-concat" is used here:
1. create a 64K (1 erase block) partition for OKLI loader and
create another partition with the left space.
2. concatenate rootfs and this partition into a virtual flash.
3. use the virtual flash for firmware partition.
Currently OKLI loader is flashed with factory image only.
sysupgrade won't replace it. Since it only has one function
and it works for several years, its unlikely to have some bugs
that requires a replacement.
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
This is the buildsystem for the OpenWrt Linux distribution.
To build your own firmware you need a Linux, BSD or MacOSX system (case
sensitive filesystem required). Cygwin is unsupported because of the lack
of a case sensitive file system.
You need gcc, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
unzip, gawk, getopt, subversion, libz-dev and libc headers installed.
1. Run "./scripts/feeds update -a" to obtain all the latest package definitions
defined in feeds.conf / feeds.conf.default
2. Run "./scripts/feeds install -a" to install symlinks for all obtained
packages into package/feeds/
3. Run "make menuconfig" to select your preferred configuration for the
toolchain, target system & firmware packages.
4. Run "make" to build your firmware. This will download all sources, build
the cross-compile toolchain and then cross-compile the Linux kernel & all
chosen applications for your target system.
Sunshine!
Your OpenWrt Community
http://www.openwrt.org
Description
This repository is a mirror of https://git.openwrt.org/openwrt/openwrt.git It is for reference only and is not active for check-ins. We will continue to accept Pull Requests here. They will be merged via staging trees then into openwrt.git.
Languages
C
61.7%
Makefile
18.7%
Shell
6.8%
Roff
6.5%
Perl
2.4%
Other
3.7%