A method and system for overriding selected ROM code functions or adding
new ROM code functions within a processing system. A system designer
determines an existing ROM address for the selected existing code
function or a desired ROM address for the new code function. The system
designer then programs a patch to replace the selected existing code
function or programs a new code function. The patch or new code function
is then loaded into a first memory. A loader module is also programmed
and loaded into the first memory. Upon system boot-up, the loader module
transfers any patches or new code functions within the first memory into
a second memory that is memory-mapped to the ROM. This second memory can
be accessed by the processor at a faster rate than the processor can
access ROM. During a processor request cycle, the processor first
examines the second memory for the presence of a desired ROM code
function. If a patch or a new code function that has been transferred
into the second memory maps to the location of the desired code function
in ROM, then the processor will fetch the patch or new code function from
the second memory.