if (hFile == NULL)
return NvError_InsufficientMemory;
- NvOsDebugPrintf("%s <kernel impl>: file=%s\n", __func__, filename);
- NvOsDebugPrintf("%s <kernel impl>: calling request_firmware()\n", __func__);
+ pr_debug("%s <kernel impl>: file=%s\n", __func__, filename);
if (request_firmware(&s_FwEntry, filename, nvfw_dev.this_device) != 0)
{
pr_err("%s: Cannot read firmware '%s'\n", __func__, filename);
return NvError_FileReadFailed;
}
- NvOsDebugPrintf("%s <kernel impl>: back from request_firmware()\n", __func__);
hFile->pstart = s_FwEntry->data;
hFile->pread = s_FwEntry->data;
hFile->pend = s_FwEntry->data + s_FwEntry->size;
NvError Error = NvSuccess;
NV_ASSERT(sizeOfArgs <= MAX_ARGS_SIZE);
- NvOsDebugPrintf("%s <kernel impl>: file=%s\n", __func__, pLibName);
Error = NvRmLoadLibraryEx(hDevice, pLibName, pArgs, sizeOfArgs, NV_FALSE,
hLibHandle);
return Error;
NV_ASSERT(sizeOfArgs <= MAX_ARGS_SIZE);
- NvOsDebugPrintf("%s <kernel impl>: file=%s\n", __func__, pLibName);
-
NV_CHECK_ERROR_CLEANUP(NvRmPrivInitAvp(hDevice));
e = NvRmPrivRPCConnect(s_RPCHandle);
writel(tmp, _TEGRA_AVP_RESET_VECTOR_ADDR);
}
+void NvRmPrivXpcSendMsgAddress(void);
+
static NvError NvRmPrivInitAvp(NvRmDeviceHandle hRm)
{
u32 *stub_phys = &_tegra_avp_launcher_stub_data[AVP_LAUNCHER_MMU_PHYSICAL];
NvRmPrivResetAvp(hRm, 0x00100000ul);
NV_CHECK_ERROR_CLEANUP(NvRmPrivInitService(hRm));
+
+ NvRmPrivXpcSendMsgAddress();
+
e = NvRmPrivInitModuleLoaderRPC(hRm);
if (e != NvSuccess)
{
return NvSuccess;
}
+void NvRmPrivXpcSendMsgAddress(void)
+{
+ BUG_ON(!s_TransportInfo.MessageMemPhysAddr);
+ NvRmPrivXpcSendMessage(s_TransportInfo.hXpc,
+ s_TransportInfo.MessageMemPhysAddr);
+}
+
// allocate buffers to be used for sending/receiving messages.
static void
NvRmPrivTransportAllocBuffers(NvRmDeviceHandle hRmDevice)
NvRmMemWr32(hNewMemHandle, 0, 0xdeadf00d); // set this non-zero to throttle messages to the avp till avp is ready.
NvRmMemWr32(hNewMemHandle, MAX_MESSAGE_LENGTH + MAX_COMMAND_SIZE, 0);
- NvRmPrivXpcSendMessage(s_TransportInfo.hXpc, s_TransportInfo.MessageMemPhysAddr);
return;