This works around a bootloader issue where every device
has the same lan/wan-mac 00:04:9f:ef:01:01 - with this patch
we read the macs from config-partition during initial network
setup. We have 9 valid macs stored in the partition, the
1st two are used for the radios, 3 and 4 are now used for WAN/LAN.
on an already setup / running device we can get the real macs with
. /lib/functions.sh
. /lib/functions/system.sh
echo "LAN = $(mtd_get_mac_binary config 338)"
echo "WAN = $(mtd_get_mac_binary config 344)"
see:
https://dev.openwrt.org/ticket/14714
from the ticket / user klondike:
U-Boot passed this commit ecd1a09b81http://u-boot.10912.n7.nabble.com/U-Boot-PATCH-mpc83xx-remove-hardcoded-network-addresses-from-config-files-td44372.html
I suppose to prevent this particular issue, but the WDR4900 may be using an old bootloader still affected.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I have been checking the contents of the dtb on the flash, this particular bit is quite revealing:
ethernet@b0000 {
#address-cells = <0x1>;
#size-cells = <0x1>;
device_type = "network";
model = "eTSEC";
compatible = "fsl,etsec2";
fsl,num_rx_queues = <0x8>;
fsl,num_tx_queues = <0x8>;
local-mac-address = [00 00 00 00 00 00];
^^^^^^^^^^^^^^^^^
interrupt-parent = <0x2>;
phy-handle = <0x3>;
phy-connection-type = "rgmii-id";
ptimer-handle = <0x4>;
queue-group@0 {
#address-cells = <0x1>;
#size-cells = <0x1>;
reg = <0xb0000 0x1000>;
rx-bit-map = <0xff>;
tx-bit-map = <0xff>;
interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
};
};
I also have been checking the live device map to find this:
root@GHS-AP3:~# hexdump -C /proc/device-tree/soc@ffe00000/ethernet@b0000/local-mac-address
00000000 00 04 9f ef 01 01 |......|
00000006
root@GHS-AP3:~# hexdump -C /proc/device-tree/soc@ffe00000/ethernet@b1000/local-mac-address
*
root@GHS-AP3:~# hexdump -C /proc/device-tree/soc@ffe00000/ethernet@b2000/local-mac-address
*
My conclussion is that U-Boot most likely finds the device and (as no valid MAC-address is provided)
falls back to the default MAC provided by the old code, the kernel then receives thee modified
device map from U-Boot and assumes this is the correct MAC for the device despite it obviously isn't.
This can be seen at
target/linux/mpc85xx/patches-3.10/140-powerpc-85xx-tl-wdr4900-v1-support.patch
The enetaddr is filled up by using the device tree data by the process_boot_dtb
function and used by the platform_fixups function to set the eth0 address
(by calling dt_fixup_mac_address_by_alias("ethernet0", enetaddr); ).
But instead we should be used the device address which to my understanding is
provided in the mtd.
Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>
SVN-Revision: 43074
All platforms which are using 3.10.x at the moment are upgraded.
Changelogs:
https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.50https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.51https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.52https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.53https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.54https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.55https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.56https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.57https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.58
A new symbol 'X86_16BIT' appeared in 3.10.52 with commit 34273f41d57ee8d854dcd2a1d754cbb546cb548f
("x86-espfix-make-it-possible-to-disable-16-bit-support.patch")
I defaults to 'unset', but it's worth a discussion to enable it
("turn off support for any 16-bit software").
Also removed the patch 0db3db45f5bd6df4bdc03bbd5dec672e16164c4e
("fix build failure on memcpy() in decompress.c")
and is obsolete by commit 29593fd5a8149462ed6fad0d522234facdaee6c8 upstream.
included in kernel 3.10.56
compile tested on all platforms with:
make tools/install
make toolchain/install
make target/linux/compile
user@box:~/user/openwrt$ cat /tmp/log.txt
[Wed Oct 22 00:36:02 CEST 2014] ./smoketest.sh: ar71xx - OK
[Wed Oct 22 00:53:22 CEST 2014] ./smoketest.sh: ar7 - OK
[Wed Oct 22 01:08:27 CEST 2014] ./smoketest.sh: au1000 - OK
[Wed Oct 22 01:21:43 CEST 2014] ./smoketest.sh: avr32 - OK
[Wed Oct 22 01:37:47 CEST 2014] ./smoketest.sh: cns21xx - OK
[Wed Oct 22 01:52:05 CEST 2014] ./smoketest.sh: cns3xxx - OK
[Wed Oct 22 02:10:23 CEST 2014] ./smoketest.sh: gemini - OK
[Wed Oct 22 02:29:07 CEST 2014] ./smoketest.sh: ixp4xx - OK
[Wed Oct 22 02:44:01 CEST 2014] ./smoketest.sh: malta - OK
[Wed Oct 22 02:55:57 CEST 2014] ./smoketest.sh: mpc85xx - OK
[Wed Oct 22 03:07:56 CEST 2014] ./smoketest.sh: orion - OK
[Wed Oct 22 03:24:30 CEST 2014] ./smoketest.sh: ppc40x - OK
[Wed Oct 22 03:40:19 CEST 2014] ./smoketest.sh: ppc44x - OK
[Wed Oct 22 03:55:29 CEST 2014] ./smoketest.sh: realview - OK
[Wed Oct 22 04:09:47 CEST 2014] ./smoketest.sh: sparc - OK
[Wed Oct 22 04:23:37 CEST 2014] ./smoketest.sh: x86 - OK
[Wed Oct 22 04:35:56 CEST 2014] ./smoketest.sh: xburst - OK
run tested on x86, au1000, ar71xx, mpc85xx and brcm47xx
Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>
SVN-Revision: 43049
replace all occurences of LINUX_VERSION with the cleaner
approach. future kernel upgrades must mostly touch only
one file. the only platform left is netlogic, because it
uses a intermediate kernel 3.14.16
Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>
SVN-Revision: 43047
This is required due to 306-mips_mem_functions_performance.patch, just
add a memmove() implementation to satisfy the lzma2 decompressor code.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 43036
According to the ticket #18152 it also uses NAND with 0x20000 erase size
and 0x800 page size.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 43008
Fix sysupgrade to determine the correct boot block device to use if
/proc/cmdline contains a PARTUUID root.
Change the preinit move_config() hook to use the UUID scanning code
from sysupgrade in order to avoid code duplication.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 42968
Enable the required squashfs and block2mtd support in the kernel in order
to be able to actually boot them.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 42967
If the underlying block device is a USB device it might require some
time to settle, observed when booting a squashfs image from sd card
on an Alix APU board.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 42966
Fix the move_config() procedure to properly find the corresponding disk if
the rootfs was mounted by PARTUUID instead of a device node.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 42946
This kmod is required by the Alix APU 1D4 to be reachable after
installing an x86-64 image.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 42945
We still don't have a smart sysupgrade method, but at least we can use
UBI which provides some protection for rootfs (SquashFS).
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 42941
UBI requires PEBs to be formatted (with a valid UBI header) or empty
(0xFF), however CFE doesn't clear blocks after flashing the image. To
workaround this problem, teach UBI to recognize EOF mark in a similar
way JFFS2 handles that in OpenWrt.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 42940
This change configures grub to mount the rootfs by PARTUUID instead of the
device path if CONFIG_TARGET_ROOTFS_PARTNAME is unset.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 42936
This patch changes the code of the Wi-Fi On/Off button on the TP-Link WR1043ND v2
from KEY_WLAN to KEY_RFKILL (and renames a few constants to match). The reason
for this change is, that the KEY_WIFI button code is not recognized by the
hotplug subsystem. This means that the userspace is not notified about the
button being pressed which effectively renders it useless.
Signed-off-by: Josef Gajdusek <atx@atx.name>
SVN-Revision: 42922
The installation process on nand-based boards using ubi
like the BTHOMEHUBV2B makes use of a ramdisk image, so it
makes sense to generate this by default.
Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>
SVN-Revision: 42920
Currently JFFS2 end-of-filesystem marker 0xdeadc0de is included the
computation of image's MD5 checksum as part of the seama header. But
OpenWrt will erase blocks including and after the marker thus
invalidating the checksum after the first boot.
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
SVN-Revision: 42915
Qihoo C301 has 2 flash chips of which one is used as primary and the
other is used as backup. OEM U-Boot will try to boot an activeregion N
with imageNstatus=0 and imageNtrynum <= imagemaxtry. If such a region
is found, bootloader will try to increment imageNtrynum and boot it.
This patch tries to reset imageNtrynum after each successful boot (if
the boot process reaches the execution of /etc/init.d/done).
root@OpenWrt:/# hexdump -C -n 128 /dev/mtdblock9
00000000 9e f3 63 91 61 63 74 69 76 65 72 65 67 69 6f 6e |..c.activeregion|
00000010 3d 31 00 69 6d 61 67 65 31 73 74 61 74 75 73 3d |=1.image1status=|
00000020 30 00 69 6d 61 67 65 32 73 74 61 74 75 73 3d 30 |0.image2status=0|
00000030 00 69 6d 61 67 65 32 74 72 79 6e 75 6d 3d 30 00 |.image2trynum=0.|
00000040 69 6d 61 67 65 6d 61 78 74 72 79 3d 33 00 69 6d |imagemaxtry=3.im|
00000050 61 67 65 31 74 72 79 6e 75 6d 3d 30 00 00 00 00 |age1trynum=0....|
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
SVN-Revision: 42914
[base-files] shell-scripting: fix wrong usage of '==' operator
normally the '==' is used for invoking a regex parser and is a bashism.
all of the fixes just want to compare a string. the used busybox-ash
will silently "ignore" this mistake, but make it portable/clean at least.
this patch does not change the behavior/logic of the scripts.
Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>
SVN-Revision: 42911