mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-02-17 15:04:42 +02:00
move mmc files to drivers/mmc/
move lcm files to drivers/video/ cleanup jz_mmc output, make it more readable. Signed-off-by: Xiangfu Liu <xiangfu@sharism.cc>
This commit is contained in:
parent
d1f331bc79
commit
d2f389bd2b
@ -29,10 +29,6 @@ START = start.o
|
|||||||
SOBJS-y =
|
SOBJS-y =
|
||||||
COBJS-y = cpu.o interrupts.o jz4740.o jz_serial.o
|
COBJS-y = cpu.o interrupts.o jz4740.o jz_serial.o
|
||||||
|
|
||||||
COBJS-y += jz_mmc.o
|
|
||||||
COBJS-$(CONFIG_NANONOTE) += nanonote_gpm940b0.o
|
|
||||||
COBJS-$(CONFIG_SAKC) += nanonote_gpm940b0.o
|
|
||||||
|
|
||||||
SRCS := $(START:.o=.S) $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
|
SRCS := $(START:.o=.S) $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
|
||||||
OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
|
OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
|
||||||
START := $(addprefix $(obj),$(START))
|
START := $(addprefix $(obj),$(START))
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
#include <asm/jz4740.h>
|
#include <asm/jz4740.h>
|
||||||
#include "jz_mmc.h"
|
#include "jz_mmc.h"
|
||||||
|
|
||||||
|
#define debug(...) ;
|
||||||
|
|
||||||
#define CFG_MMC_BASE 0x80600000
|
#define CFG_MMC_BASE 0x80600000
|
||||||
static int sd2_0 = 0;
|
static int sd2_0 = 0;
|
||||||
|
|
||||||
@ -88,11 +90,10 @@ block_dev_desc_t * mmc_get_dev(int dev)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* FIXME needs to read cid and csd info to determine block size
|
* FIXME needs to read cid and csd info to determine block size
|
||||||
v * and other parameters
|
* and other parameters
|
||||||
*/
|
*/
|
||||||
static uchar mmc_buf[MMC_BLOCK_SIZE];
|
static uchar mmc_buf[1024];
|
||||||
static int mmc_ready = 0;
|
static int mmc_ready = 0;
|
||||||
static struct mmc_csd mmc_csd;
|
|
||||||
static int use_4bit; /* Use 4-bit data bus */
|
static int use_4bit; /* Use 4-bit data bus */
|
||||||
/*
|
/*
|
||||||
* MMC Events
|
* MMC Events
|
||||||
@ -364,9 +365,8 @@ int jz_mmc_exec_cmd(struct mmc_request *request)
|
|||||||
if (request->arg == 0x2) {
|
if (request->arg == 0x2) {
|
||||||
printf("Use 4-bit bus width\n");
|
printf("Use 4-bit bus width\n");
|
||||||
use_4bit = 1;
|
use_4bit = 1;
|
||||||
}
|
} else {
|
||||||
else {
|
printf("Use 1-bit bus width\n");
|
||||||
printf("Use 1-bit bus width\n");
|
|
||||||
use_4bit = 0;
|
use_4bit = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -554,29 +554,28 @@ int mmc_block_read(u8 *dst, ulong src, ulong len)
|
|||||||
|
|
||||||
struct mmc_request request;
|
struct mmc_request request;
|
||||||
struct mmc_response_r1 r1;
|
struct mmc_response_r1 r1;
|
||||||
int retval;
|
int retval = 0;
|
||||||
|
|
||||||
|
if (len == 0)
|
||||||
|
goto exit;
|
||||||
|
|
||||||
if (len == 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
mmc_simple_cmd(&request, MMC_CMD_SEND_STATUS, mmcinfo.rca, RESPONSE_R1);
|
mmc_simple_cmd(&request, MMC_CMD_SEND_STATUS, mmcinfo.rca, RESPONSE_R1);
|
||||||
retval = mmc_unpack_r1(&request, &r1, 0);
|
retval = mmc_unpack_r1(&request, &r1, 0);
|
||||||
if (retval && (retval != MMC_ERROR_STATE_MISMATCH)) {
|
if (retval && (retval != MMC_ERROR_STATE_MISMATCH))
|
||||||
return retval;
|
goto exit;
|
||||||
}
|
|
||||||
|
|
||||||
mmc_simple_cmd(&request, MMC_CMD_SET_BLOCKLEN, len, RESPONSE_R1);
|
mmc_simple_cmd(&request, MMC_CMD_SET_BLOCKLEN, len, RESPONSE_R1);
|
||||||
if ((retval = mmc_unpack_r1(&request, &r1, 0))) {
|
if ((retval = mmc_unpack_r1(&request, &r1, 0)))
|
||||||
return retval;
|
goto exit;
|
||||||
}
|
|
||||||
|
|
||||||
if (sd2_0)
|
if (sd2_0)
|
||||||
src /= len;
|
src /= len;
|
||||||
|
|
||||||
mmc_send_cmd(&request, MMC_CMD_READ_SINGLE_BLOCK, src, 1,len, RESPONSE_R1, dst);
|
mmc_send_cmd(&request, MMC_CMD_READ_SINGLE_BLOCK, src, 1,len, RESPONSE_R1, dst);
|
||||||
if ((retval = mmc_unpack_r1(&request, &r1, 0))) {
|
if ((retval = mmc_unpack_r1(&request, &r1, 0)))
|
||||||
return retval;
|
goto exit;
|
||||||
}
|
|
||||||
|
exit:
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -595,14 +594,15 @@ int xburst_mmc_read(u64 src, uchar *dst, int size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!mmc_ready) {
|
if (!mmc_ready) {
|
||||||
printf("MMC card is not ready\n");
|
printf("Please initial the MMC first\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
mmc_block_size = MMC_BLOCK_SIZE;
|
debug("---- start %s ---- \n", __func__);
|
||||||
|
|
||||||
|
mmc_block_size = mmcinfo.block_len;
|
||||||
mmc_block_address = ~(mmc_block_size - 1);
|
mmc_block_address = ~(mmc_block_size - 1);
|
||||||
|
|
||||||
//src -= CFG_MMC_BASE;
|
|
||||||
end = src + size;
|
end = src + size;
|
||||||
part_start = ~mmc_block_address & src;
|
part_start = ~mmc_block_address & src;
|
||||||
part_end = ~mmc_block_address & end;
|
part_end = ~mmc_block_address & end;
|
||||||
@ -610,30 +610,35 @@ int xburst_mmc_read(u64 src, uchar *dst, int size)
|
|||||||
aligned_end = mmc_block_address & end;
|
aligned_end = mmc_block_address & end;
|
||||||
/* all block aligned accesses */
|
/* all block aligned accesses */
|
||||||
debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
|
debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
|
||||||
src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
|
src, (ulong)dst, end, part_start, part_end, aligned_start,
|
||||||
|
aligned_end);
|
||||||
|
|
||||||
if (part_start) {
|
if (part_start) {
|
||||||
part_len = mmc_block_size - part_start;
|
part_len = mmc_block_size - part_start;
|
||||||
debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
|
debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
|
||||||
src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
|
src, (ulong) dst, end, part_start, part_end, aligned_start,
|
||||||
|
aligned_end);
|
||||||
|
|
||||||
if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
|
if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
memcpy(dst, mmc_buf+part_start, part_len);
|
memcpy(dst, mmc_buf + part_start, part_len);
|
||||||
dst += part_len;
|
dst += part_len;
|
||||||
src += part_len;
|
src += part_len;
|
||||||
}
|
}
|
||||||
debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
|
|
||||||
src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
|
|
||||||
for (; src < aligned_end; src += mmc_block_size, dst += mmc_block_size) {
|
for (; src < aligned_end; src += mmc_block_size, dst += mmc_block_size) {
|
||||||
debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
|
debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
|
||||||
src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
|
src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
|
||||||
|
|
||||||
if ((mmc_block_read((uchar *)(dst), src, mmc_block_size)) < 0) {
|
if ((mmc_block_read((uchar *)(dst), src, mmc_block_size)) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
|
debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
|
||||||
src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
|
src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
|
||||||
|
|
||||||
if (part_end && src < end) {
|
if (part_end && src < end) {
|
||||||
if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
|
if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
|
||||||
@ -641,8 +646,9 @@ int xburst_mmc_read(u64 src, uchar *dst, int size)
|
|||||||
}
|
}
|
||||||
memcpy(dst, mmc_buf, part_end);
|
memcpy(dst, mmc_buf, part_end);
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
|
|
||||||
|
debug("---- end %s ---- \n", __func__);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mmc_write(uchar *src, ulong dst, int size)
|
int mmc_write(uchar *src, ulong dst, int size)
|
||||||
@ -659,7 +665,7 @@ int mmc_write(uchar *src, ulong dst, int size)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
mmc_block_size = MMC_BLOCK_SIZE;
|
mmc_block_size = mmcinfo.block_len;
|
||||||
mmc_block_address = ~(mmc_block_size - 1);
|
mmc_block_address = ~(mmc_block_size - 1);
|
||||||
|
|
||||||
dst -= CFG_MMC_BASE;
|
dst -= CFG_MMC_BASE;
|
||||||
@ -713,10 +719,9 @@ int mmc_write(uchar *src, ulong dst, int size)
|
|||||||
|
|
||||||
ulong mmc_bread(int dev_num, ulong blknr, ulong blkcnt, ulong *dst)
|
ulong mmc_bread(int dev_num, ulong blknr, ulong blkcnt, ulong *dst)
|
||||||
{
|
{
|
||||||
ulong src;
|
int mmc_block_size = mmcinfo.block_len;
|
||||||
int mmc_block_size = MMC_BLOCK_SIZE;
|
ulong src = blknr * mmc_block_size ;//+ CFG_MMC_BASE;
|
||||||
|
|
||||||
src = blknr * mmc_block_size ;//+ CFG_MMC_BASE;
|
|
||||||
xburst_mmc_read(src, (uchar *)dst, blkcnt*mmc_block_size);
|
xburst_mmc_read(src, (uchar *)dst, blkcnt*mmc_block_size);
|
||||||
return blkcnt;
|
return blkcnt;
|
||||||
}
|
}
|
||||||
@ -767,6 +772,20 @@ static void mmc_configure_card(void)
|
|||||||
|
|
||||||
mmcinfo.block_len = 1 << mmcinfo.csd.read_bl_len;
|
mmcinfo.block_len = 1 << mmcinfo.csd.read_bl_len;
|
||||||
|
|
||||||
|
mmc_dev.if_type = IF_TYPE_SD;
|
||||||
|
mmc_dev.part_type = PART_TYPE_DOS;
|
||||||
|
mmc_dev.dev = 0;
|
||||||
|
mmc_dev.lun = 0;
|
||||||
|
mmc_dev.type = 0;
|
||||||
|
mmc_dev.blksz = mmcinfo.block_len;
|
||||||
|
mmc_dev.lba = mmcinfo.block_num;
|
||||||
|
mmc_dev.removable = 0;
|
||||||
|
|
||||||
|
printf("%s Detected: %lu blocks of %lu bytes\n",
|
||||||
|
sd2_0 == 1 ? "SDHC" : "SD",
|
||||||
|
mmc_dev.lba,
|
||||||
|
mmc_dev.blksz);
|
||||||
|
|
||||||
/* Fix the clock rate */
|
/* Fix the clock rate */
|
||||||
rate = mmc_tran_speed(mmcinfo.csd.tran_speed);
|
rate = mmc_tran_speed(mmcinfo.csd.tran_speed);
|
||||||
if (rate < MMC_CLOCK_SLOW)
|
if (rate < MMC_CLOCK_SLOW)
|
||||||
@ -846,22 +865,20 @@ static int mmc_init_card_state(struct mmc_request *request)
|
|||||||
case SD_CMD_APP_SEND_OP_COND:
|
case SD_CMD_APP_SEND_OP_COND:
|
||||||
retval = mmc_unpack_r3(request, &r3);
|
retval = mmc_unpack_r3(request, &r3);
|
||||||
if (retval) {
|
if (retval) {
|
||||||
/* Try MMC card */
|
debug("%s: try MMC card\n", __func__);
|
||||||
mmc_simple_cmd(request, SD_CMD_APP_SEND_OP_COND, MMC_OCR_ARG, RESPONSE_R3);
|
mmc_simple_cmd(request, SD_CMD_APP_SEND_OP_COND, MMC_OCR_ARG, RESPONSE_R3);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug("%s: read ocr value = 0x%08x\n", __func__, r3.ocr);
|
debug("%s: read ocr value = 0x%08x\n", __func__, r3.ocr);
|
||||||
|
|
||||||
if(!(r3.ocr & MMC_CARD_BUSY || ocr == 0)){
|
if(!(r3.ocr & MMC_CARD_BUSY || ocr == 0)){
|
||||||
udelay(10000);
|
udelay(50000);
|
||||||
mmc_simple_cmd(request, MMC_CMD_APP_CMD, 0, RESPONSE_R1);
|
mmc_simple_cmd(request, MMC_CMD_APP_CMD, 0, RESPONSE_R1);
|
||||||
}
|
} else {
|
||||||
else {
|
mmcinfo.sd = 1; /* SD Card ready */
|
||||||
/* Set the data bus width to 4 bits */
|
mmcinfo.state = CARD_STATE_READY;
|
||||||
mmcinfo.sd = 1; /* SD Card ready */
|
mmc_simple_cmd(request, MMC_CMD_ALL_SEND_CID, 0, RESPONSE_R2_CID);
|
||||||
mmcinfo.state = CARD_STATE_READY;
|
|
||||||
mmc_simple_cmd(request, MMC_CMD_ALL_SEND_CID, 0, RESPONSE_R2_CID);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -921,13 +938,7 @@ static int mmc_init_card_state(struct mmc_request *request)
|
|||||||
|
|
||||||
case MMC_CMD_SEND_CSD:
|
case MMC_CMD_SEND_CSD:
|
||||||
retval = mmc_unpack_csd(request, &mmcinfo.csd);
|
retval = mmc_unpack_csd(request, &mmcinfo.csd);
|
||||||
struct mmc_csd *csd = (struct mmc_csd *)retval;
|
mmc_ready = 1;
|
||||||
memcpy(&mmc_csd, csd, sizeof(csd));
|
|
||||||
mmc_ready = 1;
|
|
||||||
|
|
||||||
printf("MMC card is ready\n");
|
|
||||||
/* FIXME add verbose printout for csd */
|
|
||||||
|
|
||||||
/*FIXME:ignore CRC error for CMD2/CMD9/CMD10 */
|
/*FIXME:ignore CRC error for CMD2/CMD9/CMD10 */
|
||||||
if (retval && (retval != MMC_ERROR_CRC)) {
|
if (retval && (retval != MMC_ERROR_CRC)) {
|
||||||
debug("%s: unable to SEND_CSD error=%d (%s)\n",
|
debug("%s: unable to SEND_CSD error=%d (%s)\n",
|
||||||
@ -1082,14 +1093,18 @@ int mmc_unpack_csd(struct mmc_request *request, struct mmc_csd *csd)
|
|||||||
if (request->result)
|
if (request->result)
|
||||||
return request->result;
|
return request->result;
|
||||||
|
|
||||||
csd->csd_structure = (buf[1] & 0xc0) >> 6;
|
if (buf[0] != 0x3f)
|
||||||
|
return MMC_ERROR_HEADER_MISMATCH;
|
||||||
|
|
||||||
|
csd->csd_structure = (buf[1] & 0xc0) >> 6;
|
||||||
if (csd->csd_structure)
|
if (csd->csd_structure)
|
||||||
sd2_0 = 1;
|
sd2_0 = 1;
|
||||||
else
|
else
|
||||||
sd2_0 = 0;
|
sd2_0 = 0;
|
||||||
|
|
||||||
switch (csd->csd_structure) {
|
switch (csd->csd_structure) {
|
||||||
case 0 :
|
case 0 :/* Version 1.01-1.10
|
||||||
|
* Version 2.00/Standard Capacity */
|
||||||
csd->taac = buf[2];
|
csd->taac = buf[2];
|
||||||
csd->nsac = buf[3];
|
csd->nsac = buf[3];
|
||||||
csd->tran_speed = buf[4];
|
csd->tran_speed = buf[4];
|
||||||
@ -1135,7 +1150,7 @@ int mmc_unpack_csd(struct mmc_request *request, struct mmc_csd *csd)
|
|||||||
csd->file_format = (buf[15] & 0x0c) >> 2;
|
csd->file_format = (buf[15] & 0x0c) >> 2;
|
||||||
csd->ecc = buf[15] & 0x03;
|
csd->ecc = buf[15] & 0x03;
|
||||||
break;
|
break;
|
||||||
case 1 :
|
case 1 : /* Version 2.00/High Capacity */
|
||||||
csd->taac = 0;
|
csd->taac = 0;
|
||||||
csd->nsac = 0;
|
csd->nsac = 0;
|
||||||
csd->tran_speed = buf[4];
|
csd->tran_speed = buf[4];
|
||||||
@ -1164,23 +1179,6 @@ int mmc_unpack_csd(struct mmc_request *request, struct mmc_csd *csd)
|
|||||||
csd->ecc = buf[15] & 0x03;
|
csd->ecc = buf[15] & 0x03;
|
||||||
}
|
}
|
||||||
|
|
||||||
mmc_dev.if_type = IF_TYPE_SD;
|
|
||||||
mmc_dev.part_type = PART_TYPE_DOS;
|
|
||||||
mmc_dev.dev = 0;
|
|
||||||
mmc_dev.lun = 0;
|
|
||||||
mmc_dev.type = 0;
|
|
||||||
mmc_dev.blksz = 512;
|
|
||||||
mmc_dev.lba = (1 + csd->c_size) << 10;
|
|
||||||
mmc_dev.removable = 0;
|
|
||||||
|
|
||||||
printf("SD%s Detected: %lu blocks of %lu bytes (%luMB)\n",
|
|
||||||
sd2_0 == 1 ? "HC" : " ",
|
|
||||||
mmc_dev.lba,
|
|
||||||
mmc_dev.blksz,
|
|
||||||
mmc_dev.lba * mmc_dev.blksz / (1024 * 1024));
|
|
||||||
|
|
||||||
if (buf[0] != 0x3f) return MMC_ERROR_HEADER_MISMATCH;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1259,30 +1257,26 @@ int mmc_unpack_cid(struct mmc_request *request, struct mmc_cid *cid)
|
|||||||
|
|
||||||
cid->mid = buf[1];
|
cid->mid = buf[1];
|
||||||
cid->oid = PARSE_U16(buf,2);
|
cid->oid = PARSE_U16(buf,2);
|
||||||
for (i = 0 ; i < 6 ; i++)
|
for (i = 0 ; i < 5 ; i++)
|
||||||
cid->pnm[i] = buf[4+i];
|
cid->pnm[i] = buf[4+i];
|
||||||
cid->pnm[6] = 0;
|
cid->pnm[6] = 0;
|
||||||
cid->prv = buf[10];
|
cid->prv = buf[10];
|
||||||
cid->psn = PARSE_U32(buf,11);
|
cid->psn = PARSE_U32(buf,10);
|
||||||
cid->mdt = buf[15];
|
cid->mdt = buf[15];
|
||||||
|
|
||||||
printf("CID info:\n"
|
printf("Man %02x OEM 0x%04x \"%s\" %d.%d 0x%08x "
|
||||||
" mid=%d\n"
|
"Date %02u/%04u\n",
|
||||||
" oid=%d\n"
|
|
||||||
" pnm=%s\n"
|
|
||||||
" prv=%d.%d\n"
|
|
||||||
" psn=%08x\n"
|
|
||||||
" mdt=%d/%d\n",
|
|
||||||
cid->mid,
|
cid->mid,
|
||||||
cid->oid,
|
cid->oid,
|
||||||
cid->pnm,
|
cid->pnm,
|
||||||
cid->prv >> 4,
|
cid->prv >> 4,
|
||||||
cid->prv & 0xf,
|
cid->prv & 0xf,
|
||||||
cid->psn,
|
cid->psn,
|
||||||
cid->mdt >> 4,
|
cid->mdt & 0xf,
|
||||||
(cid->mdt & 0xf) + 1997);
|
(cid->mdt >> 4) + 2000);
|
||||||
|
|
||||||
if (buf[0] != 0x3f) return MMC_ERROR_HEADER_MISMATCH;
|
if (buf[0] != 0x3f)
|
||||||
|
return MMC_ERROR_HEADER_MISMATCH;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -14,7 +14,6 @@
|
|||||||
#define __MMC_JZMMC_H__
|
#define __MMC_JZMMC_H__
|
||||||
|
|
||||||
#define MMC_DEBUG_LEVEL 0 /* Enable Debug: 0 - no debug */
|
#define MMC_DEBUG_LEVEL 0 /* Enable Debug: 0 - no debug */
|
||||||
#define MMC_BLOCK_SIZE 512 /* MMC/SD Block Size */
|
|
||||||
#define ID_TO_RCA(x) ((x)+1)
|
#define ID_TO_RCA(x) ((x)+1)
|
||||||
#define MMC_OCR_ARG 0x00ff8000 /* Argument of OCR */
|
#define MMC_OCR_ARG 0x00ff8000 /* Argument of OCR */
|
||||||
|
|
@ -17,15 +17,17 @@
|
|||||||
#define CONFIG_JzRISC 1 /* JzRISC core */
|
#define CONFIG_JzRISC 1 /* JzRISC core */
|
||||||
#define CONFIG_JZSOC 1 /* Jz SoC */
|
#define CONFIG_JZSOC 1 /* Jz SoC */
|
||||||
#define CONFIG_JZ4740 1 /* Jz4740 SoC */
|
#define CONFIG_JZ4740 1 /* Jz4740 SoC */
|
||||||
#define CONFIG_NANONOTE 1
|
|
||||||
#define CONFIG_NAND_JZ4740
|
#define CONFIG_NAND_JZ4740
|
||||||
|
#define CONFIG_JZ4740_MMC
|
||||||
|
#define CONFIG_NANONOTE
|
||||||
|
|
||||||
#define BOOT_FROM_SDCARD 1
|
#define BOOT_FROM_SDCARD 1
|
||||||
#define BOOT_WITH_ENABLE_UART (1 << 1) /* Vaule for global_data.h gd->boot_option */
|
#define BOOT_WITH_ENABLE_UART (1 << 1) /* Vaule for global_data.h gd->boot_option */
|
||||||
|
|
||||||
#define CONFIG_LCD 1 /* LCD support */
|
#define CONFIG_LCD 1 /* LCD support */
|
||||||
#define LCD_BPP LCD_COLOR32 /*5:18,24,32 bits per pixel */
|
#define LCD_BPP LCD_COLOR32 /*5:18,24,32 bits per pixel */
|
||||||
#define CONFIG_SYS_WHITE_ON_BLACK 1
|
#define CONFIG_SYS_WHITE_ON_BLACK
|
||||||
|
#define CONFIG_VIDEO_GPM940B0
|
||||||
|
|
||||||
#define CONFIG_SYS_CPU_SPEED 336000000 /* CPU clock: 336 MHz */
|
#define CONFIG_SYS_CPU_SPEED 336000000 /* CPU clock: 336 MHz */
|
||||||
#define CONFIG_SYS_EXTAL 12000000 /* EXTAL freq: 12 MHz */
|
#define CONFIG_SYS_EXTAL 12000000 /* EXTAL freq: 12 MHz */
|
||||||
|
@ -219,6 +219,18 @@ index f7e7c1c..c64979f 100644
|
|||||||
|
|
||||||
debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "<UNDEFINED>");
|
debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "<UNDEFINED>");
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
|
||||||
|
index 6fa04b8..b08a800 100644
|
||||||
|
--- a/drivers/mmc/Makefile
|
||||||
|
+++ b/drivers/mmc/Makefile
|
||||||
|
@@ -32,6 +32,7 @@ COBJS-$(CONFIG_OMAP3_MMC) += omap3_mmc.o
|
||||||
|
COBJS-$(CONFIG_FSL_ESDHC) += fsl_esdhc.o
|
||||||
|
COBJS-$(CONFIG_MXC_MMC) += mxcmmc.o
|
||||||
|
COBJS-$(CONFIG_PXA_MMC) += pxa_mmc.o
|
||||||
|
+COBJS-$(CONFIG_JZ4740_MMC) += jz_mmc.o
|
||||||
|
|
||||||
|
COBJS := $(COBJS-y)
|
||||||
|
SRCS := $(COBJS:.o=.c)
|
||||||
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
|
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
|
||||||
index 28f27da..427d963 100644
|
index 28f27da..427d963 100644
|
||||||
--- a/drivers/mtd/nand/Makefile
|
--- a/drivers/mtd/nand/Makefile
|
||||||
@ -231,6 +243,18 @@ index 28f27da..427d963 100644
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
COBJS := $(COBJS-y)
|
COBJS := $(COBJS-y)
|
||||||
|
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
|
||||||
|
index 7d84fc7..39f981d 100644
|
||||||
|
--- a/drivers/video/Makefile
|
||||||
|
+++ b/drivers/video/Makefile
|
||||||
|
@@ -38,6 +38,7 @@ COBJS-$(CONFIG_SED156X) += sed156x.o
|
||||||
|
COBJS-$(CONFIG_VIDEO_SM501) += sm501.o
|
||||||
|
COBJS-$(CONFIG_VIDEO_SMI_LYNXEM) += smiLynxEM.o videomodes.o
|
||||||
|
COBJS-$(CONFIG_VIDEO_VCXK) += bus_vcxk.o
|
||||||
|
+COBJS-$(CONFIG_VIDEO_GPM940B0) += nanonote_gpm940b0.o
|
||||||
|
|
||||||
|
COBJS := $(COBJS-y)
|
||||||
|
SRCS := $(COBJS:.o=.c)
|
||||||
diff --git a/examples/standalone/mips.lds b/examples/standalone/mips.lds
|
diff --git a/examples/standalone/mips.lds b/examples/standalone/mips.lds
|
||||||
index 717b201..d4a45f8 100644
|
index 717b201..d4a45f8 100644
|
||||||
--- a/examples/standalone/mips.lds
|
--- a/examples/standalone/mips.lds
|
||||||
|
Loading…
x
Reference in New Issue
Block a user