A non-volatile memory system is presented having a boot code section,
wherein the size of the boot code section may be programmably selected.
One embodiment of the non-volatile memory system includes a memory array,
a logic unit, a control unit, and a program store. The memory array
includes multiple non-volatile memory cells (e.g., flash EEPROM cells).
The memory array is divided into memory blocks of equal size. A number of
the memory blocks are allocated for boot code storage, forming a boot
code section of the memory array. The control unit controls storage of
data within and retrieval of data from the memory array. The control unit
includes a configuration register having a boot code section size field.
The contents of the boot code section size field determine the number of
memory blocks making up the boot code section. The logic unit is coupled
between the control unit and the memory array, and receives address,
data, and control signals from an external source. The logic unit
provides the address, data, and control signals to the control unit and
to the memory array. The program store stores instructions and data which
determine the functionality of the control unit. Commands and
configuration data are conveyed to the non-volatile memory system using
predetermined sequences of bus write cycles. One embodiment of a computer
system includes a central processing unit (CPU), and expansion bus, a
memory bus, chip set logic, and the non-volatile memory system.