diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2014-12-29 13:55:59 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2014-12-29 13:55:59 +0000 |
commit | 2ea959650e5fc4a5b95bb908fbf04ab06f5d77d1 (patch) | |
tree | 446f558ffca167f97f3609154d3c70e9a0f7e931 /target/linux/ep93xx/patches-3.14/001-ep93xx_cpuinfo.patch | |
parent | 469e8adbaca6d1ebbeb07271d5b4051c5bbf4ff4 (diff) | |
download | upstream-2ea959650e5fc4a5b95bb908fbf04ab06f5d77d1.tar.gz upstream-2ea959650e5fc4a5b95bb908fbf04ab06f5d77d1.tar.bz2 upstream-2ea959650e5fc4a5b95bb908fbf04ab06f5d77d1.zip |
ep93xx: add support for kernel 3.14
This is compile tested only, please run test and report back.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 43795
Diffstat (limited to 'target/linux/ep93xx/patches-3.14/001-ep93xx_cpuinfo.patch')
-rw-r--r-- | target/linux/ep93xx/patches-3.14/001-ep93xx_cpuinfo.patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/target/linux/ep93xx/patches-3.14/001-ep93xx_cpuinfo.patch b/target/linux/ep93xx/patches-3.14/001-ep93xx_cpuinfo.patch new file mode 100644 index 0000000000..45187b31ac --- /dev/null +++ b/target/linux/ep93xx/patches-3.14/001-ep93xx_cpuinfo.patch @@ -0,0 +1,70 @@ +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 +@@ -57,6 +57,12 @@ + #include <asm/memblock.h> + #include <asm/virt.h> + ++#if defined(CONFIG_ARCH_EP93XX) ++#include <asm/io.h> ++#include <mach/platform.h> ++#include <mach/ep93xx-regs.h> ++#endif ++ + #include "atags.h" + + +@@ -1052,9 +1058,16 @@ static int c_show(struct seq_file *m, vo + } + + 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/soc.h ++++ b/arch/arm/mach-ep93xx/soc.h +@@ -82,8 +82,6 @@ + #define EP93XX_I2S_PHYS_BASE EP93XX_APB_PHYS(0x00020000) + #define EP93XX_I2S_BASE EP93XX_APB_IOMEM(0x00020000) + +-#define EP93XX_SECURITY_BASE EP93XX_APB_IOMEM(0x00030000) +- + #define EP93XX_AAC_PHYS_BASE EP93XX_APB_PHYS(0x00080000) + #define EP93XX_AAC_BASE EP93XX_APB_IOMEM(0x00080000) + +--- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h ++++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h +@@ -38,4 +38,8 @@ + #define EP93XX_UART3_PHYS_BASE EP93XX_APB_PHYS(0x000e0000) + #define EP93XX_UART3_BASE EP93XX_APB_IOMEM(0x000e0000) + ++#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) ++ + #endif |