summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2011-11-24 04:39:01 +0000
committeradrian <adrian@FreeBSD.org>2011-11-24 04:39:01 +0000
commiteb80e7ff0263c670c838fe9711bd8e99049018c7 (patch)
treef82f4611db557288aaa72c2df65f2b847c42a7e6
parent8cc7538694f9479b7c39d545e7654d4441e95842 (diff)
downloadFreeBSD-src-eb80e7ff0263c670c838fe9711bd8e99049018c7.zip
FreeBSD-src-eb80e7ff0263c670c838fe9711bd8e99049018c7.tar.gz
Flesh out a geom_map setup, so the kernel can be squeezed _onto_ the device.
The default flash layout gives only 1 megabyte for the kernel, gzipped. The uboot firmware running on this device only supports gzip, not lzma, so we actually _do_ have to try and slim the kernel down a bit. But, since I can't actually do that at the present, I'm opting to: * extend the kernel from 1mb to 2mb; * have rootfs fill the rest of that, save 64k; * eventually I'll hide a 64k config partition at the end, between the end of rootfs and the ART (radio configuration data.) The uboot firmware doesn't care about the partition layout. It just expects the kernel application image to sit at 0xbf020000 (right after the 128k uboot image.) The uboot header isn't actually read either - it's "faked" from a "tplink" flash image header. So as long as the map configuration here matches what is being written out via the tplink firmware generator, everything is a-ok.
-rw-r--r--sys/mips/conf/TP-WN1043ND13
-rw-r--r--sys/mips/conf/TP-WN1043ND.hints54
2 files changed, 61 insertions, 6 deletions
diff --git a/sys/mips/conf/TP-WN1043ND b/sys/mips/conf/TP-WN1043ND
index cc68a31..cb0d6f5 100644
--- a/sys/mips/conf/TP-WN1043ND
+++ b/sys/mips/conf/TP-WN1043ND
@@ -20,11 +20,12 @@ options MSDOSFS
options GEOM_PART_BSD
options GEOM_PART_MBR
-# Just make sure the thing boots off of the first attached SCSI device for now!
-#options ROOTDEVNAME=\"ufs:da0a\"
-# Or an MDROOT for testing.
-options MD_ROOT
-options MD_ROOT_SIZE=5120
+# uzip - to boot natively from flash
device geom_uzip
options GEOM_UZIP
-options ROOTDEVNAME=\"ufs:/dev/md0.uzip\"
+
+# Used for the static uboot partition map
+device geom_map
+
+# Boot off of the rootfs, as defined in the geom_map setup.
+options ROOTDEVNAME=\"ufs:map/rootfs.uzip\"
diff --git a/sys/mips/conf/TP-WN1043ND.hints b/sys/mips/conf/TP-WN1043ND.hints
index e43d7b9..fbaead5c 100644
--- a/sys/mips/conf/TP-WN1043ND.hints
+++ b/sys/mips/conf/TP-WN1043ND.hints
@@ -17,3 +17,57 @@ hint.arge.1.phymask=0x0
# Where the ART is
hint.ath.0.eepromaddr=0x1fff1000
+
+#
+# Define a slightly custom flash layout.
+
+# The default flash layout:
+#
+# 128k: uboot
+# 1024k: kernel
+# 4096k: rootfs
+# 2880k: unknown
+# 64k: ART
+#
+# from printenv:
+# bootargs=console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init
+# mtdparts=ar9100-nor0:128k(u-boot),1024k(kernel),4096k(rootfs),64k(art)
+
+# This isn't a lot of space!
+# So:
+# 128k: uboot
+# 2048k: kernel
+# 5888k: rootfs
+# (todo: 64k: config)
+# 64k: ART
+
+hint.map.0.at="flash/spi0"
+hint.map.0.start=0x00000000
+hint.map.0.end=0x000200000
+hint.map.0.name="uboot"
+hint.map.0.readonly=1
+
+hint.map.1.at="flash/spi0"
+hint.map.1.start=0x00020000
+hint.map.1.end=0x00220000
+hint.map.1.name="kernel"
+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.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.4.at="flash/spi0"
+hint.map.4.start=0x007f0000
+hint.map.4.end=0x00800000
+hint.map.4.name="art"
+hint.map.4.readonly=1
OpenPOWER on IntegriCloud