diff options
Diffstat (limited to 'sys/dev/nand/nfc_rb.c')
-rw-r--r-- | sys/dev/nand/nfc_rb.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/nand/nfc_rb.c b/sys/dev/nand/nfc_rb.c index 64f888a..20a4026 100644 --- a/sys/dev/nand/nfc_rb.c +++ b/sys/dev/nand/nfc_rb.c @@ -49,6 +49,9 @@ __FBSDID("$FreeBSD$"); #include <dev/nand/nand.h> #include <dev/nand/nandbus.h> + +#include <powerpc/mpc85xx/mpc85xx.h> + #include "nfc_if.h" #include "gpio_if.h" @@ -128,6 +131,7 @@ rb_nand_attach(device_t dev) struct rb_nand_softc *sc; phandle_t node; uint32_t ale[2],cle[2],nce[2],rdy[2]; + u_long size,start; int err; sc = device_get_softc(dev); @@ -168,6 +172,14 @@ rb_nand_attach(device_t dev) return (ENXIO); } + start = rman_get_start(sc->sc_mem); + size = rman_get_size(sc->sc_mem); + if (law_enable(OCP85XX_TGTIF_LBC, start, size) != 0) { + bus_release_resource(dev, SYS_RES_MEMORY, sc->rid, sc->sc_mem); + device_printf(dev, "could not allocate local address window.\n"); + return (ENXIO); + } + nand_init(&sc->nand_dev, dev, NAND_ECC_SOFT, 0, 0, NULL, NULL); err = nandbus_create(dev); |