mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
ep93xx: add support for 3.3
Compile tested only. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31895 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
59
target/linux/ep93xx/patches-3.3/001-ep93xx_cpuinfo.patch
Normal file
59
target/linux/ep93xx/patches-3.3/001-ep93xx_cpuinfo.patch
Normal file
@@ -0,0 +1,59 @@
|
||||
This patch puts the EP93xx chip revision and unique ID into /proc/cpuinfo.
|
||||
This is necessary to be able to set a unique MAC address for DHCP purposes
|
||||
by adding a line to /etc/network/interfaces:
|
||||
|
||||
# Generate a unique locally-assigned MAC address from the CPU serial number
|
||||
pre-up ifconfig eth0 hw ether `sed -n 's/^Serial.* 000000/02/p' /proc/cpuinfo`
|
||||
|
||||
It uses the chip revision reading code in the ep93xx-chip-revision patch.
|
||||
|
||||
Really, this is wrong, since /proc/cpuinfo should report the revision and
|
||||
serial number of the ARM920T processor, while these are the rev and serial
|
||||
of the EP93xx SoC. In a future kernel (>2.6.34) there may be a new file
|
||||
/proc/socinfo for this information.
|
||||
|
||||
-martinwguy 14 May 2010
|
||||
|
||||
--- a/arch/arm/kernel/setup.c
|
||||
+++ b/arch/arm/kernel/setup.c
|
||||
@@ -54,6 +54,12 @@
|
||||
#include <asm/unwind.h>
|
||||
#include <asm/memblock.h>
|
||||
|
||||
+#if defined(CONFIG_ARCH_EP93XX)
|
||||
+#include <mach/io.h>
|
||||
+#include <mach/ep93xx-regs.h>
|
||||
+#include <mach/platform.h>
|
||||
+#endif
|
||||
+
|
||||
#if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
|
||||
#include "compat.h"
|
||||
#endif
|
||||
@@ -1087,9 +1093,16 @@ static int c_show(struct seq_file *m, vo
|
||||
seq_puts(m, "\n");
|
||||
|
||||
seq_printf(m, "Hardware\t: %s\n", machine_name);
|
||||
+#if defined(CONFIG_ARCH_EP93XX)
|
||||
+ seq_printf(m, "Revision\t: %04x\n",
|
||||
+ ep93xx_chip_revision());
|
||||
+ seq_printf(m, "Serial\t\t: %016x\n",
|
||||
+ *((unsigned int *)EP93XX_SECURITY_UNIQID));
|
||||
+#else
|
||||
seq_printf(m, "Revision\t: %04x\n", system_rev);
|
||||
seq_printf(m, "Serial\t\t: %08x%08x\n",
|
||||
system_serial_high, system_serial_low);
|
||||
+#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
--- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
|
||||
+++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
|
||||
@@ -97,6 +97,8 @@
|
||||
#define EP93XX_I2S_BASE EP93XX_APB_IOMEM(0x00020000)
|
||||
|
||||
#define EP93XX_SECURITY_BASE EP93XX_APB_IOMEM(0x00030000)
|
||||
+#define EP93XX_SECURITY_REG(x) (EP93XX_SECURITY_BASE + (x))
|
||||
+#define EP93XX_SECURITY_UNIQID EP93XX_SECURITY_REG(0x2440)
|
||||
|
||||
#define EP93XX_GPIO_PHYS_BASE EP93XX_APB_PHYS(0x00040000)
|
||||
#define EP93XX_GPIO_BASE EP93XX_APB_IOMEM(0x00040000)
|
||||
Reference in New Issue
Block a user