# CARD_ReadRom

## Syntax

  `#include <nitro/card.h>`
  `void CARD_ReadRom(u32 dma, const void *src, void *dst, u32 len);`

## Arguments

dma | The DMA channel to use for the transfer between 0 and `MI_DMA_MAX_NUM`. If the program is running in TWL mode, the parent DMA channel can be specified in the range of `(MI_DMA_USING_NEW+0)` to `(MI_DMA_USING_NEW+MI_DMA_MAX_NUM)`. The CPU processes the transfer directly without using DMA transfer if an out-of-range channel has been specified or if `MI_DMA_NOT_USE` has been explicitly specified.
src | The transfer source CARD ROM address.
dst | Transfer destination memory address.
len | Length of data being read, in bytes.

## Return Values

None.

## Description

Synchronously reads data from a device that has ROM. This function is equivalent to calling the `CARD_ReadRomAsync` function with no callback specified and then unconditionally waiting for it to complete.

For details on internal function operations, see the explanation for the `CARD_ReadRomAsync` function.

## Note

- To use this function, you must first lock the access bus with the `CARD_LockRom` function.
- If a valid DMA channel is specified by this function, that DMA channel will not be available until transfer is complete.
- The transfer source for Card access is an IO register, so you cannot specify DMA channel 0 unless the program is running in TWL mode and the `SCFG_IsDmacFixed` function has returned `TRUE`.
- Note that this function uses interrupts internally, so processing will not complete if it continues to wait while interrupts are prohibited.

## See Also

`CARD_LockRom`
`CARD_ReadRomAsync`

## Revision History

2008/11/19 Added information about the relationship between the DMA channel range and the operating mode.
2008/01/24 Added a note on the range of DMA channels to specify.
2005/04/28 Explained that DMA channel 0 cannot be specified.
2004/11/02 Corrected argument names to match the header file.
2004/07/13 Added notes about using DMA.
2004/07/09 Revised descriptions due to function format changes.
2004/07/05 Initial version.

CONFIDENTIAL