From: Christopher H. <ch...@us...> - 2003-01-09 01:47:52
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv4430/src/blob Modified Files: badge4.c Log Message: Add new-style partition table for BadgePAD 4 Index: badge4.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/badge4.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- badge4.c 4 Jan 2003 02:11:42 -0000 1.11 +++ badge4.c 9 Jan 2003 01:47:50 -0000 1.12 @@ -36,6 +36,7 @@ #include <blob/i2c.h> #include <blob/i2c-gpio.h> #include <blob/spd.h> +#include <blob/partition.h> #define DEBUG @@ -54,7 +55,7 @@ private: &badge4_i2c_bus_gpio_private }; -/* flash descriptor for Badge4 flash */ +/* flash descriptor for BadgePAD 4 flash */ /* 1 x Intel 28F320C3BA100 Advanced+ Boot Block Flash (32 Mbit) */ /* http://developer.intel.com/design/flcomp/datashts/29064512.pdf */ static const flash_descriptor_t badge4_flash_descriptors[] = @@ -75,6 +76,79 @@ /* NULL block */ }, }; + +/* default partition table for BadgePAD 4 */ +static const blob_partition_t badge4_default_partition_table[] = { + { + /* start of table */ + magic: BLOB_DEFAULT_PART_TABLE_MAGIC, + next: sizeof(blob_partition_t), + offset: 0x00000000, /* absolute base address */ + size: 4 * 1024 * 1024 /* total size of the flash */ + }, + { + /* blob itself */ + magic: BLOB_PART_VALID_MAGIC, + next: sizeof(blob_partition_t), + offset: BLOB_FLASH_BASE, + size: BLOB_FLASH_LEN, + name: "blob", + mem_base: BLOB_RAM_BASE + }, + { + /* parameter block */ + magic: BLOB_PART_VALID_MAGIC, + next: sizeof(blob_partition_t), + offset: PARAM_FLASH_BASE, + size: PARAM_FLASH_LEN, + name: "parameters", + flags: BLOB_PART_FLAG_PTABLE + }, +#if 0 + { + /* kernel */ + magic: BLOB_PART_VALID_MAGIC, + next: sizeof(blob_partition_t), + offset: KERNEL_FLASH_BASE, + size: KERNEL_FLASH_LEN, + name: "kernel", + flags: BLOB_PART_FLAG_LOAD | BLOB_PART_FLAG_EXEC, + mem_base: KERNEL_RAM_BASE, + entry_point: KERNEL_RAM_BASE + }, +#endif + { + /* root */ + magic: BLOB_PART_VALID_MAGIC, + next: sizeof(blob_partition_t), + offset: RAMDISK_FLASH_BASE, + size: RAMDISK_FLASH_LEN, + name: "root", + flags: BLOB_PART_FLAG_JFFS2 + }, + { + /* last entry */ + magic: BLOB_PART_LAST_MAGIC + } +}; + + + + +static void badge4_set_partition_table(void) +{ + /* the default partition table */ + default_partition_table = badge4_default_partition_table; + + /* we don't know where the flash partition table will live, so + * put the pointer at 0x0000000 and let the partition table + * parser figure out. + */ + flash_partition_table = (blob_partition_t*)0x00000000; +} + +__initlist(badge4_set_partition_table, INIT_LEVEL_OTHER_STUFF); + static void badge4_select_drivers(void) { |