Dear Gerald,
I was reading again your answers and there are some points not fully clear.
In the "BeagleBone Black System Reference Manual" there is written:
"GPMC bus may NOT be available due to the use of those signals by the eMMC." (pag. 37).
At
pag. 61 there is a schematic view of the connection between AM3358 and
the flash. Now, only 10 MMC1 connections are used (from MMC1_DAT0 to
MMC1_DAT7, MMC1_CMD and MMC1_CLK).
By using the Schematic A6 file
(here
http://circuitco.com/support/index.php?title=BeagleBoneBlack), at
pag.3 it is possible to see that those MMC1 connections correspond to
GPMC_AD0 -> GPMC_AD7, GPMC_CSN1 and GPMC_CSN2.
Summarizing:
MMC1_DAT0 -> MMC1_DAT7 == GPMC_AD0 -> GPMC_AD7
MMC1_CMD == GPMC_CSN1
MMC1_CLK == GPMC_CSN2
Now,
if we take again the "BeagleBone Black System Reference Manual" at
pag.82 there is written how it is possible to set the connector P8. We
can suppose to be in mode 0 (which is different from the mode 0 boot
mode...I wrote it just to avoid confusion).
In that connector I have
again GPMC_AD0 -> GPMC_AD7 but I cannot used them because they are
already sent to the flash (I guess...). However, I still have some GPMC
lines that, in principle, I could use (GPMC_AD8 -> GPMC_AD15) to send
data.
Accoridng to the "AM335x ARM® Cortex™-A8 Microprocessors
(MPUs)" TRM, GPMC AD lines are for both address and data while GPMC A
lines are for address only.
Consequently, I could set an address by using:
GPIO1_16 (which is GPMC_a0)
GPIO1_17 (which is GPMC_a1)
EHRPWM1A (which is GPMC_a2)
EHRPWM1B (which is GPMC_a3)
Moreover,
I have a line GPIO2_1 (which should be a clock -> gpmc_clk_mux0)
that I could use as clock and 8 GPMC lines to send data (GPMC_AD8 ->
GPMC_AD15). If I have an external memory which does not need an address
to send out data, I could set fake a fake address on the GPMC_A lines
and send real data on the 8 GPMC AD lines.
Is that right or, as soon as I use some GPMC lines for the eMMC, the full GPMC bus becomes inaccessible?
Moreover, does the GPMC bus work with 8-bit data or, according with the description in the TRM, it requires only 16 bit data (because the ARM takes always GPMC_AD0 ->
GPMC_AD15, but the first lines of the bus are connected to the eMMC and it could mess up everything)?
Now,
we can suppose that I do not want to use the eMMC boot mode. In this
way I should free the GPMC. If I set the connector P8 in mode-1, at
pag.82 of the "BeagleBone Black System Reference Manual" I can see
GPMC_a for addressing (from a0 to a19) but I do not see GPMC_ad for
data. Where my data goes? Also here, where I am wrong?
Now, if I am in mode-1 and I want to
communicate with an external device (it could be a flash memory or a sd
card or something else) by using the mmc1_dat lines (from 0 to 7) how
can I do it, because I do not see the mmc1_cmd signal and the mmc1_clk
signal. Now, why there is the possibility to send out the mmc signals
without a clock for them? Am I missing something also here?
Thanks again for your help.