Author: imp
Date: Thu Feb 10 23:36:39 2011
New Revision: 218528
URL: http://svn.freebsd.org/changeset/base/218528

Log:
  Add 'generic' flash images.  This is for projects producing generic
  images that are of a certain size.  The geometery is bogus, but that
  doesn't matter since the new packet mode onviates the need to get the
  geometry right.

Modified:
  head/tools/tools/nanobsd/FlashDevice.sub

Modified: head/tools/tools/nanobsd/FlashDevice.sub
==============================================================================
--- head/tools/tools/nanobsd/FlashDevice.sub    Thu Feb 10 22:36:23 2011        
(r218527)
+++ head/tools/tools/nanobsd/FlashDevice.sub    Thu Feb 10 23:36:39 2011        
(r218528)
@@ -203,10 +203,52 @@ sub_FlashDevice () {
                        ;;
                esac
                ;;
+       # Generic flash media.  It assumes that we're booting using packet
+       # mode so the HEADS and SECTS don't matter.  The truncation of the
+       # size to a slightly lower number is intentional to be conservative
+       # (eg, 1 sector smaller than N GB is always smaller than any flash
+       # claiming to be N GB, but wastes a little space sometimes when 1GB
+       # really means 1GiB).  This is intended to be used when producing
+       # generic images for anybody to boot.  Media sizes are specified 'Xg'
+       # for X GB (10^9 bytes) flash or Xm for X MB (10^6 bytes) flash.
+       # Power of 2 variants can be specified with gi or mi for GiB and MiB
+       # sizeed flash and don't try to be conservative (use with caution).
+       generic)
+               case $a2 in
+               *.*)    # Catch unsupported 1.5g case, since expr can't
+                       # cope with floats.
+                       echo "Unsupported generic size $a2"
+                       exit 2
+                       ;;
+               *m)
+                       NANO_HEADS=16
+                       NANO_SECTS=63
+                       NANO_MEDIASIZE=`expr -e ${a2%m} \* 1000000 / 512`
+                       ;;
+               *g)
+                       NANO_HEADS=16
+                       NANO_SECTS=63
+                       NANO_MEDIASIZE=`expr -e ${a2%g} \* 1000000000 / 512`
+                       ;;
+               *mi)
+                       NANO_HEADS=16
+                       NANO_SECTS=63
+                       NANO_MEDIASIZE=`expr -e ${a2%mi} \* 1024 \* 1024 / 512`
+                       ;;
+               *gi)
+                       NANO_HEADS=16
+                       NANO_SECTS=63
+                       NANO_MEDIASIZE=`expr -e ${a2%gi} \* 1024 \* 1024 \* 
1024 / 512`
+                       ;;
+               *)
+                       echo "Unsupported generic size $a2"
+                       exit 2
+                       ;;
+               esac
+               ;;
        *)
                echo "Unknown Flash manufacturer"
                exit 2
                ;;
        esac
 }
-
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to