From owner-svn-src-all@FreeBSD.ORG Thu Nov 24 07:37:20 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 140D6106566C; Thu, 24 Nov 2011 07:37:20 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DF1F88FC08; Thu, 24 Nov 2011 07:37:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAO7bJxb083617; Thu, 24 Nov 2011 07:37:19 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAO7bJss083615; Thu, 24 Nov 2011 07:37:19 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201111240737.pAO7bJss083615@svn.freebsd.org> From: Adrian Chadd Date: Thu, 24 Nov 2011 07:37:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227926 - head/sys/mips/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Nov 2011 07:37:20 -0000 Author: adrian Date: Thu Nov 24 07:37:19 2011 New Revision: 227926 URL: http://svn.freebsd.org/changeset/base/227926 Log: Now that I've brought up FreeBSD via flash, I've discovered that the second-last 64k seems to be the default firmware board configuration area. Since I have no idea whether uboot uses it or not - and it's prefixed with an atheros eeprom signature (0xaa55), I figure the safest thing to do is mark it as read-only. I've modified my local tplink firmware building program to generate a board configuration section - which is separate to this partition. It's located in the 64k _before_ this particular 64k. The firmware build program from OpenWRT never initialises those values and the firmware images from tplink also leave it 0x0, so I don't currently know what the exact, correct details should be. Modified: head/sys/mips/conf/TP-WN1043ND.hints Modified: head/sys/mips/conf/TP-WN1043ND.hints ============================================================================== --- head/sys/mips/conf/TP-WN1043ND.hints Thu Nov 24 07:33:41 2011 (r227925) +++ head/sys/mips/conf/TP-WN1043ND.hints Thu Nov 24 07:37:19 2011 (r227926) @@ -26,7 +26,8 @@ hint.ath.0.eepromaddr=0x1fff1000 # 128k: uboot # 1024k: kernel # 4096k: rootfs -# 2880k: unknown +# 2816: unknown +# 64k: board config? # 64k: ART # # from printenv: @@ -37,8 +38,9 @@ hint.ath.0.eepromaddr=0x1fff1000 # So: # 128k: uboot # 2048k: kernel -# 5888k: rootfs -# (todo: 64k: config) +# 5824k: rootfs +# 64k: config +# 64k: board config? # 64k: ART hint.map.0.at="flash/spi0" @@ -55,19 +57,38 @@ hint.map.1.readonly=1 hint.map.2.at="flash/spi0" hint.map.2.start=0x00220000 -#hint.map.2.end=0x007e0000 -hint.map.2.end=0x007f0000 +hint.map.2.end=0x007c0000 hint.map.2.name="rootfs" hint.map.2.readonly=1 -#hint.map.3.at="flash/spi0" -#hint.map.3.start=0x007e0000 -#hint.map.3.end=0x007f0000 -#hint.map.3.name="cfg" -#hint.map.3.readonly=1 +hint.map.3.at="flash/spi0" +hint.map.3.start=0x007c0000 +hint.map.3.end=0x007d0000 +hint.map.3.name="cfg" +hint.map.3.readonly=0 +# I'm not sure what this is! +# +# It does however start with "55 aa" which is an AR5416 EEPROM +# magic value, followed by what looks like a set of ethernet +# MAC addresses, then a bunch of what looks like my local firmware +# board configuration. +# +# For now, I'm going to leave this particular chunk of flash +# alone. +# hint.map.4.at="flash/spi0" -hint.map.4.start=0x007f0000 -hint.map.4.end=0x00800000 -hint.map.4.name="art" +hint.map.4.start=0x007d0000 +hint.map.4.end=0x007e0000 +hint.map.4.name="unknown" hint.map.4.readonly=1 + +# This is radio calibration section. It is (or should be!) unique +# for each board, to take into account thermal and electrical differences +# as well as the regulatory compliance data. +# +hint.map.5.at="flash/spi0" +hint.map.5.start=0x007f0000 +hint.map.5.end=0x00800000 +hint.map.5.name="art" +hint.map.5.readonly=1